IyAtKi0gdGV4dCAtKi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5yYzEgLT4gVjUuNy4zLnJjMwoodGhlcmUgd2FzIG5vIG9mZmljaWFsIHJjMikKCmNvbW1pdCBlNjlhYzg3Mjg5ODdiMzM4NTJjNTAwNzY2NzAxNWE2ZDIzY2JlODViCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMCAxMTo1Nzo1OCAyMDE0IC0wODAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnJjMwoKY29tbWl0IGY2ZWIyMDEzZmQzZGI0NDRkZjY3MGI5NTYwMTBlNzdjMGZjMmIxZDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEwIDExOjMwOjAxIDIwMTQgLTA4MDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNy1wYXRjaGVzCgpjb21taXQgMTE2NTcxN2JlYTcxMWIwNzk4MzI3MDg1ZjMxYWMzZGJjNTc3YjJmYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTAgMTE6Mjk6NTggMjAxNCAtMDgwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucmMzCgpjb21taXQgZGUwZWJjZjAyN2FjY2QyMWU2NDI0MzZkOTEwNzQ0ODRmN2NlNjJkOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgNyAxNjoyMTo1MiAyMDE0IC0wODAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnJjMgoKY29tbWl0IDZiNDNiOWI5YWUzZTE3ZmMyNzQ3ZGM1MjJiZjlhMGM0YTgwMjU5NjQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDcgMTU6NDc6MTAgMjAxNCAtMDgwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCAwMWRiYjMwYjdkZDVmY2NjYTY5NTBhNTBhMDlkNWMwYjBkOTg2MmY2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiA3IDE1OjQ3OjA1IDIwMTQgLTA4MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnJjMgoKY29tbWl0IGE5MzA3YzgyNTg5ZmY2ODk1MzQxYTVhMDNlNWUwYjQzNTgzNTBjYjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDcgMDY6NTE6MzQgMjAxNCArMDEwMAoKICAgIHNubXBsaWIvc3lzdGVtLmM6IG1ha2UgdGhlIHRlc3QgZm9yIHJldHVybiBjb2RlIGZyb20gdW5hbWUgY29uZm9ybSB0byBQT1NJWC4KCmNvbW1pdCBiZDg2MzkwY2YxMzAwNjgzZTVmZmJlMTkyMmE1MjNjN2NmMjExYjBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyOCAyMDowODozOCAyMDE0ICswMjAwCgogICAgVDA2NWFnZW50ZXh0ZW5kX3NoX3NpbXBsZTogQWRkIGEgbmV3IHJlZ3Jlc3Npb24gdGVzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4zLnByZTUgLT4gVjUuNy4zLnJjMQoKY29tbWl0IDhmYzc1MTRiNTlkYzQ2YjhmM2UzNmM4MWE5MmFmMDA4ZGM4ZGMxODgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDEgMDk6NTk6MjYgMjAxNCAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5yYzEKCmNvbW1pdCAzZWE1MTQ0MjNkOTM3M2FmNzdjYmM0YjgzMzZiMTcwMTQzODY0Mzg5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAyMzoxMjo0MCAyMDE0IC0wNzAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFiYjdmMmVlYzE3M2M4ZDI2MmJmNmVmMWI3ZGViNWI3MDgzOWQxNWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDMwIDIzOjEyOjM5IDIwMTQgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnJjMQoKY29tbWl0IGJjYWFiNDhkOWQ0OTgzNjFmZGQ0NTE2NTI3NzNiM2I5NTZjN2YxMGMKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CkRhdGU6ICAgVGh1IFNlcCAyNSAwOTozNjowMCAyMDE0IC0wNDAwCgogICAgcmVtb3ZlIGJhZCBhc3NlcnQgY2hlY2sKCmNvbW1pdCA1ZDFlY2Y2ZDE1OTFhNTNlNzExYzVmZWVhMTU4ZDEwZGQ5MGZhYjNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAxIDE0OjQ2OjUwIDIwMTQgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogUG9ydCBUMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWIuYyB0byBNaW5HVwoKY29tbWl0IGFmOGMxN2U2NDgyY2I1NTIwNmM1MDI3MDk4MzY2ZjYwYWQ4ZjdjYzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDEgMTM6MjQ6MTggMjAxNCArMDIwMAoKICAgIENIQU5HRVM6IEJVRzogMjU2ODogQXZvaWQgdGhhdCBmaWxlIGRlc2NyaXB0b3JzIGFib3ZlIEZEX1NFVFNJWkUgdHJpZ2dlciBhYm9ydCgpCgpjb21taXQgNDIyNGNhYmNiMTEyZDBkNDM3ZjljYTlmNGQzNDMwNTAxZDFjODc1MApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMjIgMDY6NDk6MjggMjAxNCAtMDcwMAoKICAgIFdoZW4gZW5sYXJnaW5nIGEgbGFyZ2VfZmRfc2V0LCB1c2UgRkRfWkVSTyBpZiBwb3NzaWJsZQogICAgCiAgICBUaGUgbW9zdCBjb21tb24gY2FzZSBvZiBjcmVhdGluZyBhIGxhcmdlX2ZkX3NldCBvbiBVTklYCiAgICBpcyB0byBjcmVhdGUgaXQgd2l0aCBzaXplIHplcm8sIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGVubGFyZ2UKICAgIGl0IHRvIHNpemUgRkRfU0VUU0laRS4gIEluc3RlYWQgb2YgbG9vcGluZyBhbmQgY2FsbGluZwogICAgRkRfQ0xSKCksIHdlIGNhbiBvcHRpbWl6ZSB0aGlzIGNvbW1vbiBjYXNlIHdpdGggdGhlIE9TJ3MKICAgIEZEX1pFUk8uCgpjb21taXQgMzUyNGE5MmYyMjdlYjNlNzM2OTA4YjFmMWY1MjVkYTJkYzk0OWQyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKYW4gMjMgMTc6NDI6NDEgMjAxMCArMDAwMAoKICAgIEZpeGVkIGEgU29sYXJpcy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODAyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5NTRlYTRkNzA4NDBhYTVmNzUzYTA2ZTVkZjc2NTJiMjU4ZDkyMDQyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDIxIDA4OjAxOjQzIDIwMTAgKzAwMDAKCiAgICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgIHRvIGFjY29tb2RhdGUgdGhlIHNwZWNpZmllZCBzb2NrZXQgSUQuCiAgICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFNoaXlhbGVpLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTA2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGEwYzM3OGI1Y2IxYmJmMzVkMDVhNjIxMmE0ODNhYmRhODRhMjAxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxIDA4OjU5OjA0IDIwMTQgKzAyMDAKCiAgICBGaXggY29tbWl0IDdmNGE3Yjg5MTMzMjg5OWNlYTI2ZTk1YmUwMzM3YWFlMDE2NDg3NDI6IGRvbnQgbWl4IGNvZGUgYW5kIGRlY2xhcmF0aW9ucy4KCmNvbW1pdCAwODM3YjIxZTc5OGE5ODU2YzBhOWY0MzhlYzQ0YTgzYmVkMWY4NTM2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEF1ZyAyOSAwODoxODoyMCAyMDE0ICswMjAwCgogICAgRW1wdHkgaW5pdGlhbGl6ZXJzIGFyZSAoc2FkbHkpIG5vdCBwYXJ0IG9mIEMuCiAgICBTdG9wIHVzaW5nIHRoZW0uCgpjb21taXQgNWU0ZjZlM2Y0MzAzNWE2ODljOWZhMjg5MDI3ZWVkNjBhMjJkYmZhZgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBBdWcgMjggMTI6MTI6MjEgMjAxNCAtMDQwMAoKICAgIEFkZCBhIGRlYnVnIG1lc3NhZ2Ugd2hlbiBza2lwcGluZyBhIGtleQoKY29tbWl0IGU1NzA2MTUwYzQ1MzJkN2ZjMTgzMjcxODU2OGJiNTBiYjBmZmMwMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAzMSAxNTo0NDozMSAyMDE0ICswMjAwCgogICAgQWRkZWQgdGVzdCBmb3Igc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgd2l0aCAtT1EgY21kbGluZSBhcmd1bWVudC4KCmNvbW1pdCA3ZjRhN2I4OTEzMzI4OTljZWEyNmU5NWJlMDMzN2FhZTAxNjQ4NzQyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMzEgMTM6NDY6NDkgMjAxNCArMDIwMAoKICAgIEFkZGVkIGNoZWNrcyBmb3IgcHJpbnRpbmcgdmFyaWFibGVzIHdpdGggd3JvbmcgdHlwZXMuCiAgICAKICAgIFdoZW4gLU9RIGNvbW1hbmQgbGluZSBhcmd1bWVudCBpcyB1c2VkLCB2YXJpYWJsZSBmb3JtYXR0ZXIgcHJlZmZlcnMgdGhlIHR5cGUKICAgIG9mIHRoZSB2YXJpYmxlIHBhcnNlZCBmcm9tIGEgTUlCIGZpbGUgaW5zdGVhZCBvZiBjaGVja2luZyB0eXBlIG9mIHRoZSB2YXJpYWJsZQogICAgYXMgcGFyc2VkIGZyb20gU05NUCBtZXNzYWdlLgogICAgCiAgICBUaGlzIGNhbiBsZWFkIHRvIGNyYXNoZXMgd2hlbiBpbmNvbWluZyBwYWNrZXRzIGNvbnRhaW5zIGEgdmFyaWFibGUgd2l0aAogICAgTlVMTCB0eXBlLCB3aGlsZSB0aGUgTUlCIHNheXMgdGhlIHZhcmlhYmxlIHNob3VsZCBiZSBub24tTlVMTCwgbGlrZSBJbnRlZ2VyLgogICAgVGhlIGZvcm1hdHRlciB0aGVuIHRyaWVzIHRvIGludGVycHJldCB0aGUgTlVMTCAoZnJvbSBwYWNrZXQpIGFzIEludGVnZXIgKGZyb20KICAgIE1JQiBmaWxlKS4KCmNvbW1pdCA5YzRkZGNhOTYwODJjMTM5Y2ZjZTkyOGVlYTNjZmU3OTNkMzRmNWMyCkF1dGhvcjogSmVmZiBHZWhsYmFjaCA8amVmZmdAb3Blbm5tcy5vcmc+CkRhdGU6ICAgVGh1IEp1bCAzMSAxMTo1MjoxOCAyMDE0IC0wNDAwCgogICAgQWRkIGEgc2NhbGFyIG9iamVjdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgcHJvY2Vzc29ycyBzZWVuIGJ5IHRoZSBhZ2VudC4gUGxhY2VkIHRoaXMgaW4gdGhlIHN5c3RlbVN0YXRzIGdyb3VwIGZvciBsYWNrIG9mIGFuIG9idmlvdXNseSBiZXR0ZXIgbG9jYXRpb24uIFVwZGF0ZWQgVUNELVNOTVAtTUlCIGFjY29yZGluZ2x5LgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2NjRlZDk0M2Y2M2RmZTkzOTNlOTU5ODQwZWNkMjNjMzFjOWQ4Zjg5CkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgV2VkIEF1ZyAyNyAxNjowMjo1NyAyMDE0IC0wNDAwCgogICAgSGFuZGxlIGR1cGxpY2F0ZXMgaW4gYSBiaW5hcnlfYXJyYXkgY29udGFpbmVyCiAgICAKICAgIFRoZSBDT05UQUlORVJfS0VZX0FMTE9XX0RVUExJQ0FURVMgc2V0dGluZyBpcyBmdW5kYW1lbnRhbGx5IGZsYXdlZDsKICAgIGl0IHJlYWxseSBlZmZlY3RpdmVseSBtZWFudCAiSSBwcm9taXNlIEkgd29uJ3QgaW5zZXJ0IGR1cGxpY2F0ZXMKICAgIHNvIGRvbid0IGNoZWNrIGF0IGluc2VydCB0aW1lIi4gIEhvd2V2ZXIsIHRoZSBpcC1mb3J3YXJkLW1pYgogICAgc2V0cyB0aGlzIGZsYWcgYnV0IHJlbGllcyBvbiB0aGUgZHVwbGljYXRlIHByZXZlbnRpb24gYXQgaW5zZXJ0CiAgICB0aW1lIHVuZGVyIGNlcnRhaW4gc2NlbmFyaW9zIChlLmcuLCBtdWx0aXBsZSBhdHRhY2htZW50cyB0byB0aGUKICAgIHNhbWUgc3VibmV0IG9uIE1hY09TKSwgcmVzdWx0aW5nIGluIGEgbG9vcCBpbiBpcC1mb3J3YXJkLW1pYgogICAgaW4gdGhlc2Ugc2NlbmFyaW9zLiAgU28sIG5vdyBpdCBtZWFucyAiY2hlY2sgZm9yIGR1cGxpY2F0ZXMgYXQKICAgIGdldG5leHQgdGltZSIgLSB0aGUgYmluYXJ5IHNlYXJjaCB3aWxsIGZpbmQgYW4gYXJiaXRyYXJ5IG9uZQogICAgb2YgdGhlIGVudHJpZXMgd2l0aCB0aGUgc2FtZSBrZXksIGFuZCB3aGVuIHdlJ3ZlIGluY3JlbWVudGVkCiAgICB3ZSBoYXZlIHRvIGNoZWNrIHdoZXRoZXIgb3Igbm90IHdlJ3ZlIGFjdHVhbGx5IGluY3JlbWVudGVkIHBhc3QKICAgIGFueSBkdXBsaWNhdGVzLiAgVGhpcyBjb3N0cyBhbiBleHRyYSBrZXkgY29tcGFyZSBwZXIgZ2V0bmV4dC4KICAgIAogICAgSWYgdGhlcmUncyBhIHNjZW5hcmlvIGluIHRoZSBmdXR1cmUgd2hlcmUgYSBNSUIgaW1wbGVtZW50YXRpb24KICAgIGNhbiByZWFsbHkgZ3VhcmFudGVlIHRoYXQgaXQgaXNuJ3QgaW5zZXJ0aW5nIGR1cGxpY2F0ZXMsIHdlCiAgICBtaWdodCB3YW50IHRvIGFkZCBhICJDT05UQUlORVJfS0VZX0lfUFJPTUlTRV9JX1dPTlRfSU5TRVJUX0RVUExJQ0FURVMiLAogICAgdGhhdCBkaXNhYmxlcyB0aGUgaW5zZXJ0aW9uIGNoZWNrIGJ1dCBkb2Vzbid0IHBlcmZvcm0gdGhlIGdldG5leHQKICAgIGNoZWNrLgoKY29tbWl0IGY4MmQyZDYzNDkzZjQwNzljMTY3YmEzNmIyMDNlNDljZGEzYmRlOGQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE4IDIxOjU1OjA0IDIwMTQgKzAyMDAKCiAgICBGaXggZm9yIEZyZWVCU0Q5IGxvc2luZyBtaWItbW9kdWxlcyBsaXN0IGJlY2F1c2Ugb2YgbWlzc2luZyBOTCBpbiBzZWQgaW5wdXQuCgpjb21taXQgNTJiMDcyYmNmZjMyZTM1MTJmYmY5NTZiNzJkMWEzNTNlNTBhOTYyYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTggMjE6NTM6MzggMjAxNCArMDIwMAoKICAgIFVwZGF0ZXMgZm9yIEJGRCBtaWJzLgoKY29tbWl0IDAzZGI2N2IzMjJkNzZkNzE3YmUxN2E4N2U3NzdjOTFkZDBmZGQzYWMKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgQXVnIDEyIDIzOjU1OjA3IDIwMTQgLTA0MDAKCiAgICBJZiBzZGxfYWxlbiBpcyB0b28gbG9uZyBmb3IgdGhlIHN0YXRpYyBidWZmZXIsIGNhbGwgaXQgaW5jb21wbGV0ZSBpbnN0ZWFkIG9mIG92ZXJydW5uaW5nIHRoZSBidWZmZXIKCmNvbW1pdCA4YWU3OGRhMzkxZDViNmI2MWNjMjUxNmViMWE2NTIwYjBkYWJiNmJmCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEF1ZyAxMiAyMjo1NTo0NSAyMDE0IC0wNDAwCgogICAgVXNlIHZtX3JlZ2lvbl82NCBvbiA2NC1iaXQgYXJjaDsgY2FjaGUgbWVtb3J5IGZvciBsb25nZXIKICAgIAogICAgVGhpcyBpcyBhIHBvcnQgb2YgdGhlIEFwcGxlIHBhdGNoZXMgYXQKICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5hcHBsZS5jb20vc291cmNlL25ldF9zbm1wL25ldF9zbm1wLTE0MC4xL3BhdGNoZXMvZGFyd2luNjQucGF0Y2gKICAgIDEuIFVzZSB2bV9yZWdpb25fNjQgaW5zdGVhZCBvZiB2bV9yZWdpb24gb24gX19wcGM2NF9fIG9yIF9feDg2XzY0X18KICAgIDIuIFVzZSAzMDAgc2Vjb25kIHRpbWVvdXQgZm9yIHRoZSBjYWNoZS4KICAgIAogICAgVGhpcyBjb21tZW50IGFib3V0IHRoZSBjb2RlIGJlaW5nIGluY3JlZGlibHkgZXhwZW5zaXZlIGlzCiAgICB2ZXJ5IHRydWU6IG9uIGEgMS43IEdIeiBpNyB3aXRoIDggR0Igb2YgUkFNIChhZG1pdHRlZGx5IGEKICAgIHNtYWxsIG1hY2hpbmUpIGl0IHRvb2sgMTcgc2Vjb25kcyB0byBjYWxjdWxhdGUgYW5kCiAgICByZXR1cm4gSE9TVC1SRVNPVVJDRVMtTUlCOjpock1lbW9yeVNpemUuMC4gIE1vc3QgU05NUAogICAgY2xpZW50cyB3b3VsZCBnaXZlIHVwIGxvbmcgYmVmb3JlIGdldHRpbmcgdGhpcyBhbnN3ZXIuCgpjb21taXQgNjEzZTkzNzA0YmE5NWYzYzY0NDAxMTRlYjczYmYwOWY3Nzc1NTYwZQpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBBdWcgMTIgMjI6MzQ6MDYgMjAxNCAtMDQwMAoKICAgIGRhcndpbjEzIGFsc28gdXNlcyBrZXJuZWxfc3lzY3RsCgpjb21taXQgYzEzZGQ5N2Q3YmRkZTczMDJkMDAyNzg3ZWVmMDNkNzcyZjI5YmNkNApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBBdWcgMTIgMTI6MzA6MjMgMjAxNCAtMDcwMAoKICAgIFVzZSB0aGUgcmlnaHQgaGVhZGVyIGd1YXJkLgogICAgCiAgICBCZWxpZXZlIGl0IG9yIG5vdCwgY2xhbmcgZm91bmQgdGhpcyBkZXRhaWwgd2l0aCAtV2hlYWRlci1ndWFyZC4KCmNvbW1pdCBkNWQ0MDMwMmIwYWIzNDBlMjExYWQ3NmQ3ZjE5NWI4MDdmMzg3ZWYzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxMSAxMjozMzo1MCAyMDE0IC0wNzAwCgogICAgdXBkYXRlIHRvIG5ldyBrZXkgSUQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5wcmU0IC0+IFY1LjcuMy5wcmU1Cgpjb21taXQgZjNmMzcxYjI3NmQyNjViNDU1ZmM0OTBmY2UxOTQ3ZGFkZjg5ZTljMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgOCAxOTo0OTowNiAyMDE0IC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTUKCmNvbW1pdCA0MTgxMzJmNDNjYzQzMjMxOTY2YThiOTY3MmM2MjZmNjBiOTkxMDM5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyA4IDE0OjI0OjUyIDIwMTQgLTA3MDAKCiAgICBmaXggdGhlIHJ1bi1hdXRvY29uZiBwcm9ncmFtCgpjb21taXQgN2RiNzk1OTQ5MDc1ZWZiNDg5MzczZjUxZjcwNjYzNmZlNTRhOTgzNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgOCAxNDoyNDo1MiAyMDE0IC0wNzAwCgogICAgZml4IHRoZSBydW4tYXV0b2NvbmYgcHJvZ3JhbQoKY29tbWl0IDc4ZjFlZjgxNmRkYWQwOGU3ZDdjOWUxYjExZTRiNGFiMjZmNmU0YjAKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDggMTM6Mjg6NDcgMjAxNCAtMDcwMAoKICAgIHVzZWQgdGhlIHJpZ2h0IGF1dG9jb25mCgpjb21taXQgMWVhZWFjODAxYTM2MjViNzJiMDljN2RhNTgwMzg0MDljZDhkYzY4MQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgOCAxMzoyNjoxMSAyMDE0IC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmU1Cgpjb21taXQgN2VjZmQzZWRlMTllOWMyMjE4YzliZjU5NTljMDk1Y2U5ZmE2YzhhYgpBdXRob3I6IEJyaWFuIFNpcG9zIDxic2lwb3Nya2ZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgNiAxMDozMDo1NCAyMDE0IC0wNzAwCgogICAgRml4IGRldGVjdGlvbiBvZiBzaGEyMjQgYW5kIHNoYTM4NCwgcGF0Y2ggZnJvbSBCcmlhbiBTaXBvcwogICAgCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL2J1Z3MvMjU2NC8KICAgIAogICAgTHVja2lseSBub2JvZHkncyBuZWVkZWQgdG8gYnVpbGQgdXNpbmcgYW4gT3BlblNTTCB2ZXJzaW9uCiAgICB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBzaGEyMjQgb3Igc2hhMzg0LCBzaW5jZSB0aGUgaW52ZXJzaW9uCiAgICBvZiB0aGUgdGVzdCBoZXJlIHdvdWxkIHRyeSB0byB1c2Ugc2hhMjI0L3NoYTM4NCBzdXBwb3J0IG9ubHkKICAgIG9uIE9wZW5TU0wgdmVyc2lvbnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0hCgpjb21taXQgYTkzOTkxZWFmNTNiMTk5YjE5YzU4MmI2MzBkYTI1MTU4MzAwYTlkMQpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KRGF0ZTogICBGcmkgQXVnIDEgMTA6MDc6NDUgMjAxNCAtMDQwMAoKICAgIGZpeCAjMjQ4MiBzbm1wIHJlc3BvbnNlOiBUb28gbG9uZwoKY29tbWl0IDlmNDFkMzBiMDllN2M4NWI4MjY4MTAzY2EzMjBhYzZjYzMyZDViMDQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVsIDI2IDA4OjI4OjQzIDIwMTQgKzAyMDAKCiAgICBGaXggYnVnIDI1NDY6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbCB1c2VzIHdyb25nIHBvcnQgZm9yIHNubXB0cmFwICsgdWRwNgoKY29tbWl0IGRiMWYyMTc1NDFlMDBiNTM4MTNkOTRmNmJlZmI5YTQyZDQ4MzhlOTUKQXV0aG9yOiBKZWZmIEdlaGxiYWNoIDxqZWZmZ0BvcGVubm1zLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI1IDE2OjExOjIzIDIwMTQgLTA0MDAKCiAgICBGaXggYnVnIDI1NjI6IFdpbmRvd3MgeDY0IGJ1aWxkIGJyb2tlbiBvbiA1LjcuMy5wcmU0Cgpjb21taXQgOTc0MWYwOGU3NWI0MTYyYmIzYzhiNDQ5Mjc5ZjE4MmQ5NDlkYTM3MwpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBKdWwgMjQgMDg6MTA6NDAgMjAxNCAtMDQwMAoKICAgIFVzZSB0aGUgc3RhbmRhcmQgZXhwciAiOiIgc3ludGF4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjMucHJlMyAtPiBWNS43LjMucHJlNAoKY29tbWl0IDg2NGFiYjViYTFlYjMyNGU0MjMxNTdkYjVmYjE3MjNmODU1OTczYjIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDIzIDE1OjA3OjQxIDIwMTQgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjMucHJlNAoKY29tbWl0IDVmYzhmOTljOWY3N2RkYWRlZWFjZWRhZTdmMDZmZWExNzY3ZDRhOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDIzIDE1OjAyOjE5IDIwMTQgLTA3MDAKCiAgICBmaXggQysrIHN0eWxlIGNvbW1lbnQKCmNvbW1pdCA1NGE0YTkwYTU1MjllYTU4YWRkOWU2YWY2YTdlOGFkMDY1NDQwODI4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAyMyAxNDo0OTo0MSAyMDE0IC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmU0Cgpjb21taXQgYzBkNjY4MjZiNzFmMDU0MDNmMzZjN2Y4MjM0ZmY4ZjdlY2JkMTU5MApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMjIgMDY6NDk6MjggMjAxNCAtMDcwMAoKICAgIFdoZW4gZW5sYXJnaW5nIGEgbGFyZ2VfZmRfc2V0LCB1c2UgRkRfWkVSTyBpZiBwb3NzaWJsZQogICAgCiAgICBUaGUgbW9zdCBjb21tb24gY2FzZSBvZiBjcmVhdGluZyBhIGxhcmdlX2ZkX3NldCBvbiBVTklYCiAgICBpcyB0byBjcmVhdGUgaXQgd2l0aCBzaXplIHplcm8sIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGVubGFyZ2UKICAgIGl0IHRvIHNpemUgRkRfU0VUU0laRS4gIEluc3RlYWQgb2YgbG9vcGluZyBhbmQgY2FsbGluZwogICAgRkRfQ0xSKCksIHdlIGNhbiBvcHRpbWl6ZSB0aGlzIGNvbW1vbiBjYXNlIHdpdGggdGhlIE9TJ3MKICAgIEZEX1pFUk8uCgpjb21taXQgZGNhZDMxYWViNDQyMzY5YTZmYjUyZjRkYzdkNGY3ODFiYzU2MDA2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTcgMjM6NDA6MTMgMjAxNCArMDIwMAoKICAgIFNvbGFyaXMgZG9lcyBub3QgbGlrZSAiZ3JlcCAtRSIgb3IgImlmICEiLgogICAgUHJvcGFnYXRlIGNvbmZpZ3VyZXMgRUdSRVAgdG8gbWFuL01ha2VmaWxlLmluIGFuZCBhbHNvIHVzZWQgY29uZmlndXJlZCBTRUQuCgpjb21taXQgYTUxY2JlZGY3ZDFkNDI0MzQyYWI1Y2EzYTRiNjcyMTdhMzY0NDA5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMTUgMjE6NDU6NTQgMjAxNCArMDIwMAoKICAgIHNubXBuZXRzdGF0L2lmLmM6IHByb3Blcmx5IGRldGVjdCBzbm1wIGV4Y2VwdGlvbnMKCmNvbW1pdCBlZWU5MjUxOWYzOGU5MzdmMjI3YmVhNzcwMWRkYjExNTdjOGJjY2NjCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEp1bCAxNSAwNzoyNzoxOCAyMDE0IC0wNzAwCgogICAgQ2xvc2UgcGlwZXMgd2hlbiBmcmVlaW5nIGNvbmZpZyBhbmQga2lsbCBjaGlsZCBwcm9jZXNzIG9uIGVycm9yCiAgICAKICAgIFdoZW4gZnJlZWluZyB0aGUgY29uZmlnLCBjbG9zZSB0aGUgcGlwZXMgY29ycmVzcG9uZGluZyB0byB0aGF0CiAgICBjb25maWcsIHNvIHRoZXkgZG9uJ3QgZ2V0IGxlYWtlZC4gIEFsc28sIGlmIHdlIGhhdmUgYW4gZXJyb3IsCiAgICBzZW5kIGEgU0lHS0lMTCB0byB0aGUgY2hpbGQgcHJvY2VzcyBpbiBjYXNlIGl0IGlzIGJsb2NrZWQgYW5kCiAgICB3b24ndCBkaWUganVzdCBiZWNhdXNlIHdlIGNsb3NlZCB0aGUgcGlwZXMgdG8gaXQuCgpjb21taXQgODQzMWY5MTM1NTRlMGNjY2M0OGJlZGNlMWZkNGE4YTI4OGI2YzI3ZApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMTUgMDc6MTk6MzMgMjAxNCAtMDcwMAoKICAgIElmIHRoZSBhc3AgbG9va3VwIHJldHVybnMgTlVMTCwgZG9uJ3QgdHJ5IHRvIHVzZSBpdAogICAgCiAgICBJZiB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGFzcCwgd2Ugc2V0IHRoZSByZXN1bHQgcHJvcGVybHkKICAgIGJ1dCBzdGlsbCBmYWxsIHRocm91Z2ggYW5kIGF0dGVtcHQgdG8gdXNlIGl0LiAgSW5zdGVhZCwganVzdAogICAgY29udGludWUuCgpjb21taXQgMTQ2ZmEzODRkOGIwNWUxZTVhMmM2N2Y4OGQwZWNhMGEzMDRmYTFmMApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBKdWwgMTQgMTU6MjY6MTQgMjAxNCAtMDcwMAoKICAgIEZpeCBkZXBlbmRlbmNpZXMgZm9yIGF1dG8tZ2VuZXJhdGVkIG1hbiBwYWdlcwogICAgCiAgICBBbHNvIG1ha2Ugc3VyZSB0aGF0IHRoZSBhdXRvLWdlbmVyYXRlZCAuc28gZmlsZXMgYXJlIGxpc3RlZAogICAgaW4gdGhlIHJpZ2h0IE1ha2VmaWxlIHZhcmlhYmxlcywgYW5kIHVwZGF0ZSB0aGUgdmFyaWFibGVzCiAgICB0byBpbmNsdWRlIHRoZSBvbmVzIHRoYXQgaGFkIGJlZW4gbGVmdCBvdXQgYWxyZWFkeS4KCmNvbW1pdCA0NDMxNzI4Y2Y3YTA5NTBhZWQyOTNkNDhjMDJlNjkwMDBmNWI4M2U4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1bCAxMyAwMzowNzoyMSAyMDE0IC0wNzAwCgogICAgQUlYOiBGaXggbW9yZSBjb21waWxlciB3YXJuaW5ncwogICAgCiAgICBBdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0LCBhYm91dAogICAgdW51c2VkIHZhcmlhYmxlcyBvciBmdW5jdGlvbnMsIGFib3V0IG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcwogICAgYW5kIGFsc28gYXZvaWQgdGhhdCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIHRoYXQgdGhlIHR5cGUgb2YgdGhlCiAgICB0aGlyZCBhcmd1bWVudCBvZiBtbnRjdGwoKSBpcyB3cm9uZy4KCmNvbW1pdCA0MmE2NWYxMWUzZWQ1Njk2M2Y3OGE1YzE1NjFlZGQ2NzY1OGNjZDAwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1bCAxMyAwOTo0NzoyNiAyMDE0ICswMjAwCgogICAgUmVtb3ZlIEM5OSBsZW5ndGggc3BlY2lmaWVyICd6JyBhbmQgdXNlIGEgY2FzdCBpbnN0ZWFkCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCBiNGVhYjExMTM5ZWIxMjJjOWFkM2MxM2FiOGI5NDUzZTA0ZTQ2ODQyLgoKY29tbWl0IDM1ZDBmNTljZGQ4ODk0YjhmYmJhZDY1MzcwYjVlMzAxZTM3N2EzN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVsIDExIDIxOjI2OjMzIDIwMTQgKzAyMDAKCiAgICBVcGRhdGVkIERPQ1MtSUYtTUlCIHJlZmVyZW5jZQoKY29tbWl0IDdhNGQyZWEyYjNlMTYzZmRkOThmMDY3YWU0NDBmYWEzMTUyYzgwYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVsIDExIDIxOjI1OjI3IDIwMTQgKzAyMDAKCiAgICBVcGRhdGVkIElBTkEgbWlicwoKY29tbWl0IDAxYjNiNjY0NjQxM2MxNGEwNTA3NDI3MjZiOTdjZjMwOGI4ZmUwOWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDkgMjM6NTE6MjcgMjAxNCArMDIwMAoKICAgIEFkZCBSRkMgNzI1NyB2cGxzIG1pYnMKCmNvbW1pdCBiMGJlMWQ4YWQyY2NiY2FhMjlmZmM3Y2Y4ODRkMDI0MzhjNGMxNjY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCA5IDIzOjUwOjIxIDIwMTQgKzAyMDAKCiAgICBhZGp1c3QgZGVidWcgdG9rZW4gZm9yIG5ldHNubXBfc29ja2FkZHJfaW42XzIKCmNvbW1pdCA5OTIwZTllNzY3YjEwZjAyOWFiNGIwMjBlODI1OTY3NmQxYTMyYjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1bCA4IDEwOjI1OjIyIDIwMTQgKzAyMDAKCiAgICBBSVg6IFN1cHByZXNzIGEgY29uZmlndXJlIHdhcm5pbmcKICAgIAogICAgQXZvaWQgdGhhdCB0aGUgJ3NvcnQnIGNvbW1hbmQgY29tcGxhaW5zIGR1cmluZyB0aGUgY29uZmlndXJlIHByb2Nlc3MKICAgIHRoYXQgaXRzIGlucHV0IGlzIG5vdCB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZS4gU2VlIGFsc28gY29tbWl0CiAgICBhNjNlMzgxZDljMWM5Yzg3MjEwYmYyYjAyMmUzZDZhYzcxZDI3YTdlLgoKY29tbWl0IGI0ZWFiMTExMzllYjEyMmM5YWQzYzEzYWI4Yjk0NTNlMDRlNDY4NDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSnVsIDcgMTQ6MDQ6NDUgMjAxNCAtMDcwMAoKICAgIEFJWDogRml4IGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzCiAgICAKICAgIEF2b2lkIHRoYXQgdGhlIGZvbGxvd2luZyBjb21waWxlciB3YXJuaW5ncyBhcmUgcmVwb3J0ZWQ6CiAgICAtIEFzc2lnbm1lbnQgZGlzY2FyZHMgY29uc3QuCiAgICAtIFVudXNlZCBsb2NhbCB2YXJpYWJsZS4KICAgIC0gTWlzbWF0Y2ggYmV0d2VlbiBmb3JtYXQgc3RyaW5nIGFuZCBhcmd1bWVudCBsaXN0LgogICAgCiAgICBBbHNvIGNvcnJlY3QgdGhlIGluZGVudGF0aW9uIG9mIHR3byBTb2xhcmlzLXNwZWNpZmljIGNvZGUgc3RhdGVtZW50cy4KCmNvbW1pdCAwZGQyNzgzYjc0N2ZiOTZkNzQ5NzhlMTFjODJhNTA0YzBkZjFkNTU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1bCA2IDExOjEyOjMwIDIwMTQgKzAyMDAKCiAgICBIUCBVWCwgQ1BVIHN0YXRpc3RpY3M6IEZpeCBhbiBpbnZhbGlkIHBvaW50ZXIgZGVyZWZlcmVuY2UKICAgIAogICAgU2VlIGFsc28gY29tbWl0IDAwMzQ1ODFkZWIzZTY3NmQzMjg4MjRjODc2MzdhYWNhMzE4NTBjNmEuCgpjb21taXQgZGJkNTkzMTMyZjcxOWNjM2Q5YmI1MDE3ZWM4YmM1YzhjYmIwNjNiNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMyAyMzoyMzoyOSAyMDE0ICswMjAwCgogICAgVDA3MWNvbTJzZWM2X3NpbXBsZTogdXNlIHByaXZhdGUgaG9zdCB0byBjaGVjayBpcHY2IGFkZHJlc3MgcmVzb2x1dGlvbiB0byBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQKCmNvbW1pdCAwMDM0NTgxZGViM2U2NzZkMzI4ODI0Yzg3NjM3YWFjYTMxODUwYzZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAzMCAyMjowODozNCAyMDE0ICswMjAwCgogICAgQlVHICNhMjU1MTogZml4IG5vbi1zZXF1ZW50aWFsIGNwdSBudW1iZXJzIG9uIEhQLVVYLgogICAgVGhhbmtzIHRvIERhdmUgT2xrZXIuCgpjb21taXQgYjBmNDliYTIxZmI4MTBlZmNiMDk5MmYwMWM0ZmM1ZmQzMGNmNjlhZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdW4gMjYgMjE6NDI6NDggMjAxNCArMDIwMAoKICAgIGNwdV9wc3RhdC5jOiBmaXggbWlzc2luZyBicmVhayhzKSBpbiBzd2l0Y2ggc3RhdGVtZW50Cgpjb21taXQgYTYzZTM4MWQ5YzFjOWM4NzIxMGJmMmIwMjJlM2Q2YWM3MWQyN2E3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdW4gMjAgMTA6NTc6MzkgMjAxNCArMDIwMAoKICAgIFJlY2VudCBwYXRjaCBmcm9tIEJhcnQgKERpc3BsYXkgbW9kdWxlIG5hbWVzIHNvcnRlZCkgbWFrZSBjb25maWd1cmUgbG9zZSBhbGwgbW9kdWxlIG5hbWVzIG9uIFNvbGFyaXMgOCBhbmQgMTAuCiAgICBUaGlzIGNoYW5nZXMgdGhlIHdheSB0aGUgc29ydGluZyBpcyBkb25lLgoKY29tbWl0IDYwY2Y2YTA2ZmY3M2FlN2Q0ZjI0NTRmMmVmNDBjNTZmY2QzOTRiZmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDE4IDIyOjE5OjMyIDIwMTQgKzAyMDAKCiAgICBtYWtlIHRlc3Q6IGJhaWwgb3V0IGlmIG5ldHN0YXQgbm90IGZvdW5kLgoKY29tbWl0IGMxMGYyYWNiZmNjMzgzNGNkOTM4NjQxZGMxYTJjNzJhY2E3Zjc4NDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVuIDEwIDE2OjA2OjU5IDIwMTQgKzAyMDAKCiAgICBGaXggc3R1cGlkIGJ1ZyBpbiBwa2ctbmcgcGF0Y2gKCmNvbW1pdCBlMmRhNTQ4OWMzYmI4Mjk3NjI2MDRjOWQ0MWYwOGNiM2FlZGZkOGE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAyIDE1OjQxOjU2IDIwMTQgKzAyMDAKCiAgICBQQVRDSCAjYTEyODM6IFJlY29nbml6ZSBPcmFjbGUgQUNGUyBmaWxlIHN5c3RlbSAoVGhhbmtzIEpvaG4gSGF4YnkpCgpjb21taXQgNTRjMmNjMjY1NWMxYjZjNTQ4NWQ5OTQ0MWFlZDJhYzE2OWVlZTVmOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMiAxNToyNjowMCAyMDE0ICswMjAwCgogICAgSW5zdGFsbCBTTk1QLVRTTS1NSUIgYW5kIFNOTVAtVExTLVRNLU1JQgoKY29tbWl0IGNlMzA5MWNiYzQ4YmM0MDVjNmViMWFmN2RkYWViMzcwZWQ3ODY0NzEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDIgMTU6MjM6MjQgMjAxNCArMDIwMAoKICAgIEJVRyAjYTI1Mzc6IFN1cHBvcnQgKkJTRCBwa2ctbmcKCmNvbW1pdCA0OWU0ZTQ5YjEyYWFlMGQ4Zjc1NzI4MzkzNjVkNDZjZjkzMmJmZWM5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAyIDE1OjE4OjQ2IDIwMTQgKzAyMDAKCiAgICBGaXggRnJlZUJTRCBzeXN0ZW0gZGVmaW5lIGNoYWluCgpjb21taXQgM2M1ZTcxMjRiMzVmZDZhY2E0Mjg0ZWFjMzY1ZDc0YjY5ODEwNzg1YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdW4gMSAxMToyNzoyNSAyMDE0ICswMjAwCgogICAgQ0hBTkdFUzogQlVHOiAxMjY3IHNubXBsaWI6IHJlZ2lzdGVyX21pYl9jb250ZXh0KCkgZml4IGZvciByZWFkLW9ubHkgdmFyaWFibGVzCiAgICAKICAgIFRoaXMgaXMgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIGEgcGF0Y2ggZnJvbSBIYXJzaGEgU2hpdmFubmEuCgpjb21taXQgNTZlY2M0MzNiMDllOTg1ZjFmZGQ3ODZhYWU2MGIwNjFmZmFjMDM4MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdW4gMSAxMToxMjo0NyAyMDE0ICswMjAwCgogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IGM5Y2Y4ZmQ4NjlmMzc5MWE1OGE3MWI4YTYzZjVkNjFkNjcyOTFmYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVuIDEgMTA6MDk6MjggMjAxNCArMDIwMAoKICAgIGNvbmZpZ3VyZTogRGlzcGxheSBtb2R1bGVzIG5hbWVzIHNvcnRlZAoKY29tbWl0IDI3YTE2MDU0ZDY1NmViMTBhYmQwMzJkYmFjNjhlYmJjMjZjNzYwMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVuIDEgMDk6MjI6NTIgMjAxNCArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4OiBSZXdvcmsgbmV0bGluayBidWZmZXIgYWxpZ25tZW50CiAgICAKICAgIEJhc2VkIG9uIGEgcGF0Y2ggZnJvbSBKb3NodWEgSG9rZS4gU2VlIGFsc28KICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvYnVncy8yNTQ3Ly4KCmNvbW1pdCBiZDEzZjAwNGY2ZGMxNmRiZTU2ZWE1MzgxNjYyNDk1NzQ1ZDkzN2UxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE1heSAzMSAyMDoxNjoyMCAyMDE0ICswMjAwCgogICAgV2luZG93czogNjQtYml0IGZpeCBmb3IgYnVpbGQtYmluYXJ5LnBsCgpjb21taXQgMWZhNGRhMWM2Y2Y5Njc2MDYzMzNmN2U3N2U0MDhiN2Y1MWVmNjI1NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBNYXkgMzAgMTc6NDI6MDcgMjAxNCArMDIwMAoKICAgIFdpbmRvd3M6IFN1cHByZXNzIFZpc3VhbCBTdHVkaW8gMjAxMyB3YXJuaW5ncyBhYm91dCBzdHJ0b3VsbCgpCgpjb21taXQgYjMxYWVkZTljOGI2MzQ2MWI1MDkyZTE2ZDYyNmE2NzZiMTcyZjhhYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMjIgMjM6MDU6MTkgMjAxNCArMDIwMAoKICAgIFBBVENIICMxMjc3OiBGaXggaWZzcGVlZCBmb3IgU29sYXJpcyB6b25lcy4gVGhhbmtzIHRvIGxpam8KCmNvbW1pdCA4NjlmNzg1NTQxYTFlYTNiNDI3ODE0NTg2N2IxNTJiZWM1MGQzZWIwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEFwciAzMCAxNDo1MjozMSAyMDE0ICswMjAwCgogICAgd2luRXh0RExMOiBUcmFuc2xhdGUgU25tcEV4dGVuc2lvblF1ZXJ5KCkgUERVIHR5cGUgY29ycmVjdGx5Cgpjb21taXQgZTAxMDdjMjZiM2EwZTMwYWU4MzIzNWJiMjI1ZmViNzhhMWExNTYzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBcHIgMzAgMTU6Mzg6NTUgMjAxNCArMDIwMAoKICAgIFdpbmRvd3M6IFNpbGVuY2UgYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgM2E5Zjg3NTQyM2NjYWE4YmFlZTdlMTY0YmI4YTc1ZGQ4ZTBiNzM0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgNiAwNjoyNzoxMCAyMDE0ICswMjAwCgogICAgUEFUQ0ggIzEyNzk6IE1vZGlmaWVkIHBhdGNoIGZyb20gTW9oYW4gZm9yIGNvcmVkdW1wIGFmdGVyIGNhbGxpbmcKICAgIGZyZWUgd2l0aCBhIGJhZCByZWdleC4KCmNvbW1pdCA1MTMwMmJhNTcyODVkNGQ0Nzk5MmVkMTVhNDYwNTgwMTEyYTNlOTI0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSA2IDA2OjIxOjI0IDIwMTQgKzAyMDAKCiAgICBCVUcgIzI1MjE6IEFJWDogZG9udCBkaWUgd2hlbiBDUFUgaXMgZHluYW1pY2FsbHkgYWRkZWQgdG8gc3lzdGVtLgoKY29tbWl0IDEzMWM5M2JhOTJlNDZkZGRlYzRlYjNhODIwOGFiNWEzYzEwMjY1MDgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDYgMDY6MjA6MjggMjAxNCArMDIwMAoKICAgIENvbXBsYWluIGFib3V0IC1EIG9wdGlvbiBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQuCgpjb21taXQgOTZhN2E2YTg2ODk1ZmRiZjg5MTc5OWUzNzY5YjI3YTdlNTRhZjA4NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgNiAwNjoxOTo0MiAyMDE0ICswMjAwCgogICAgc25tcHRyYXBkLjg6IGFkZCBzb21lIG1pc3NpbmcgZm9ybWF0IHRva2VucyB0byBtYW4gcGFnZS4KCmNvbW1pdCA4MGJlOTA3YmU5ZjRmMWRmNmExNDcwZmVhZmFhOTE2YjljOWM0OTkxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEFwciAyNyAxNToyNTozMCAyMDE0ICswMjAwCgogICAgRml4IGJ1ZyAyMzEzIGZvciBjcm9zcyBjb21waWxhdGlvbi4KCmNvbW1pdCA5YWU1OTgxNTMwZmQyYmRkOWYyYTVjODZiN2Q2OTk0Yjg3MzAzM2Q3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciAyNiAyMjozNjoyNiAyMDE0ICswMjAwCgogICAgUHJlcGFyZSBmb3IgRnJlZUJTRCAxMSBhbmQgMTIKCmNvbW1pdCBlMzJmNzBiMTJmNTdkMjZkNjlkNDkxZjFjNzQyYjAxMzJhY2E3NjYwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciAyNiAyMTo0MjoyMSAyMDE0ICswMjAwCgogICAgRml4IGEgY291cGxlIG9mIHN0cnVjdCBzaXplcyB0byBiZXR0ZXIgbWF0Y2ggZGVjbGFyYXRpb24uCgpjb21taXQgN2NjMmRlYjVkOTE1ZDI1NzIzMjgzMTdkMzcwMWQzNWQ4NjFkM2Q5MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgMjYgMjE6MzQ6MjYgMjAxNCArMDIwMAoKICAgIFVzZSBpbmV0X3B0b24gb25wbGFjZSBvZiBpbmV0X2F0b24gdG8gaGVscCBwb3J0YWJpbGl0eS4KCmNvbW1pdCBhMDg3ZmM5ZjE2NDAyM2RlNDE0YjA5YmZkMzc0N2M3MmYxYmNhMDdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciAyNiAyMTozMDo1NCAyMDE0ICswMjAwCgogICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQiBhbmQgY3VycmVudCBSRkNzLgoKY29tbWl0IDg1NzAzN2E4ZDI0NTdhYzlhYTJhNTI1MTA5NTc2NDc5NzFhNDY2MzQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDI2IDIxOjI4OjAwIDIwMTQgKzAyMDAKCiAgICBQcmVwYXJlIGZvciBGcmVlQlNEIDExIGFuZCAxMi4KCmNvbW1pdCBiOTkzMDg0MTdkNGJlN2UxMzlmNjEwM2Q0NGYxMWI1NTQzM2E2YmYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1hciAxNiAwODowNDoxNSAyMDE0ICswMTAwCgogICAgQmV0dGVyIGRvY3VtZW50YXRpb24gZm9yIHRyYXAgbG9nZ2luZyBmb3JtYXRzLgoKY29tbWl0IGE2ZTRlYjI2ZjVjMDRkMTU3NjFjZWFmOTI0NTgwZTBjNDBmNzJkZmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWFyIDkgMDg6NDY6NTcgMjAxNCArMDEwMAoKICAgIHN3cnVuXyo6IFNpbXBsaWZ5IGNvbW1pdCBkYTAwYmExCgpjb21taXQgMzdhZjc5MjNiODMyZjJlYzgwODM3ZmEyOGVkY2FjOGViMGM3ZThlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgOSAwODozNDoxMiAyMDE0ICswMTAwCgogICAgc3dydW5fKjogUmVzdG9yZSBidWZmZXIgb3ZlcmZsb3cgcHJldmVudGlvbiBjb2RlIHRoYXQgd2FzIHJlbW92ZWQgaW4gZGEwMGJhMQoKY29tbWl0IGY0MzZjZTI4ZmRhM2VkYzcwMTBjZDg2ZWNmM2MzODZjNWFmNTIxOTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDggMTQ6MDc6NTcgMjAxNCArMDEwMAoKICAgIHV0aWxfZnVuYzogZml4IHNraXBwaW5nIG9mIGRpZ2l0cyB3aGljaCB3b3VsZCBydW4gb25lIHRvbyBmYXIKCmNvbW1pdCBkYTAwYmExNDJkNmI1MDQyNTU4ODlmMDllYjlmN2QyMjJlZjQwYWRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciA4IDE0OjA0OjE5IDIwMTQgKzAxMDAKCiAgICBzd3J1bl8qOiBzbnByaW50IG1heSBoYXZlIHNldCBhIHRvbyBsb25nIHN0cmluZyBsZW5ndGguIEZpeCBpdCBpZiBuZWVkZWQuCgpjb21taXQgM2IyMDJlYjA1ZWM0ZTVmNmY4ZjU0YmM4YWNiNDM3MzczZTZiNWQwMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgOCAxNDowMjoxOCAyMDE0ICswMTAwCgogICAgc3dpbnN0X2FwdDogZW5zdXJlIHJvb20gZm9yIHN0cmluZyB0ZXJtaW5hdG9yCgpjb21taXQgOGE2NjgxNGVkYWQ1YTI4ZmRiYzg2NDVmYjBlMTQ0NTliZjkxNWRhMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgOCAxNDowMDoyOCAyMDE0ICswMTAwCgogICAgbXRhX3NlbmRtYWlsOiBpc3NwYWNlIGNhbm5vdCB0YWtlIGEgY2hhciBhcmd1bWVudAoKY29tbWl0IDNlNzM0ZmIzYmRkZjExYjk5YjZiYTdkZGNiMzBhZTkzMmQ4YmEzYjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDggMTM6NTg6MDcgMjAxNCArMDEwMAoKICAgIGV4cEV4cHJlc3Npb25Db25mLCBleHBWYWx1ZTogaXNzcGFjZSBjYW5ub3QgdGFrZSBhIGNoYXIgYXJndW1lbnQuCgpjb21taXQgNzZlOGQ2ZDEwMDMyMDYyOWQ4YTIzYmU0YjAxMjg2MTk2MDBjOTE5ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDYgMDk6MjE6NTEgMjAxNCArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTI3NTogZnJvbSBWaWxpYW0gUMO6xI1pazogZml4ZWQgUGVybCB0cmFwIGhhbmRsZXIgd2hlbiBwcm9jZXNzaW5nIHRyYXAgd2l0aCBlbXB0eSBjb21tdW5pdHkgc3RyaW5nLgoKY29tbWl0IDVkMDZhNWZiYjVlZDNjYTJiNTgyMGU4ZWYyZDViNWI4OGI5ZDdkZjgKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBNb24gRmViIDMgMTE6NTg6MDMgMjAxNCAtMDgwMAoKICAgIEFsbG93IHRoZSBub2RlbWFwIHRvIGNvbnRhaW4gbXVsdGlwbGUgbm9kZXMgZm9yIG1pYnMgbGlrZSBJRi1NSUIKICAgIAogICAgSW4gdGhlIElGLU1JQiwgImludGVyZmFjZXMiIGFuZCAiaWZNSUJPYmplY3RzIiBib3RoIGNvbnRhaW4KICAgIHNpZ25pZmljYW50IHN1YnRyZWVzLiAgQWxsb3cgbm9kZW1hcCB0byBjb250YWluIGEgY29tbWEtc2VwYXJhdGVkCiAgICBsaXN0IG9mIG5vZGVzLCB0byBoYW5kbGUgTUlCcyBsaWtlIHRoaXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjMucHJlMiAtPiBWNS43LjMucHJlMwoKY29tbWl0IDU0MTY2Y2Y2YzdhOThiZjhlNWQwZGJhYmY5YjVlNWEyNTVjNGM0MjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDI1IDEyOjQ1OjE0IDIwMTQgLTA4MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjMucHJlMwoKY29tbWl0IDNkNGUzYTY2YmQwOTdlMzcyMGZlNWRlMmYyZTA1NzQxYjMzMDYzMDUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDI1IDExOjQyOjE1IDIwMTQgLTA4MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTMKCmNvbW1pdCBhMWZkNjQ3MTZmNjc5NGM1NWMzNGQ3N2U2MTgyMTAyMzhhNzNiZmExCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAxOSAxNToyMTo1NyAyMDE0IC0wODAwCgogICAgYnVnIGZpeCBmcm9tIGZlbm5lcjogZml4IElDTVAgbWliIHRhYmxlIGhhbmRsaW5nIG9uIGxpbnV4CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4zLnByZTEgLT4gVjUuNy4zLnByZTIKCmNvbW1pdCBiZjBhMWMzN2Q4YjhjNjQ0ZTgzNzA0MWQwOTBhYWJlOGZkODEzMWU4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyNSAwNzo0OTowNCAyMDE0IC0wODAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTIKCmNvbW1pdCBkZWNmZDhkNzliNTRkMjk4ZGVkOTc0MzllZmI3MTBlOGY2YmE1MjRjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyNSAwNzozMzo1MiAyMDE0IC0wODAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmUyCgpjb21taXQgOGFlY2NlZjM5YmJhZWI4YjgwMjVhNjhlYzQ3NjFiYzgyZWM5YWVhYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMjUgMDc6Mjc6NDcgMjAxNCAtMDgwMAoKICAgIE5FV1M6IHNubXBkOiBwYXRjaCAyNTI1OiBmcm9tIFJ5YW4gU3RlaW5tZXR6OiBGaXggYXJndW1lbnQgbGVuZ3RoIHBhcnNpbmcgb2YgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYgoKY29tbWl0IGIyMjJlN2EzZWVmNTljYmI2OGE0NTM0NzZjYjM2NDM0MmM3NGU2NDAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDE5IDIyOjI2OjA4IDIwMTQgKzAxMDAKCiAgICBGaXggc3BlbGluZyBlcnJvcgoKY29tbWl0IGY4ZmNiM2JjMzgxODhjY2JlOWJhY2VlNThkNmZkMmI5ODNkMDk5MjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDE5IDIyOjI0OjI2IDIwMTQgKzAxMDAKCiAgICBGaXggc3BlbGluZyBlcnJvcgoKY29tbWl0IGQyMTRkNzBjNDUyNGU2MmZjY2FmMTA4M2FiYzViYTFhNDM5YTQ2M2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDE5IDIyOjIxOjU1IDIwMTQgKzAxMDAKCiAgICBzbm1wc3RhdHVzOiBkZXRlY3QgU05NUCBleGNlcHRpb24gcmVzcG9uc2VzLgoKY29tbWl0IGJmNzVlYzY2OTY1ZDE1N2NiMDQ0MmY3ZGZmNTY1NmY5OWNkNzA2MzUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDE5IDIyOjIwOjA1IDIwMTQgKzAxMDAKCiAgICBGaXggdGVzdCBmb3IgY29tMnNlYzYgYWNjZXNzLgoKY29tbWl0IDY1NjdhMzdmYTMwMWI4ZmExYjY4MDA5ZDVhMGIzYTNjYmZiOWU4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDE3IDIxOjQ5OjEzIDIwMTQgKzAxMDAKCiAgICB0ZXN0aW5nL01ha2VmaWxlLmluOiBtYWtlIHN1cmUgJyQnIHN1cnZpdmVzIGZvciBwZXJsIHRlc3QuCgpjb21taXQgMDViNTUxYmMzMzExODVlZGExYzA4MWQzMTM4ZDBhYzYyNWIwN2Q2YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMTcgMjE6MzY6NDggMjAxNCArMDEwMAoKICAgIEZpeCBzb21lIG1hbiBwYWdlIHNwZWxsaW5ncy4KCmNvbW1pdCA4YjA1NTVkOTVjYmMyMzhjYmU5ODM2NDM5Yjg4MDcwYzgwYTljYTVlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxNyAyMTozNToyOCAyMDE0ICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZpeCBjYWxsIG9mIG1lbWNweSB3aXRoIG92ZXJsYXBwaW5nIGFyZWFzLgoKY29tbWl0IDNjNmE3YTZjOTQ3NDI0ODI0ZTcyNGUyOTQ0ODNhN2VjZDcwZDlkNDEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDE3IDIxOjMzOjQ3IDIwMTQgKzAxMDAKCiAgICByb3V0ZV9pb2N0bC5jOiBzZXQgcHJvcGVyIG1hc2sgYmVmb3JlIFNJT0NERUxSVC4KCmNvbW1pdCBmOTllZjVjZWYyMDNlYTM3ODU1M2EyYWI0OTI1ZmNkODY5ZTdmNWEzCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEZlYiAxMSAwODo0Nzo1MSAyMDE0IC0wODAwCgogICAgRGF2aWQgSmFydmllJ3MgcGF0Y2ggZm9yIGJ1ZyAyNTA3Cgpjb21taXQgZDcwZjJlOTFlMmM3MjU4ZTc2OGUzMmI2ODNkODE0YTk0MTU2NGFjMQpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBGZWIgMyAxMTo1ODowMyAyMDE0IC0wODAwCgogICAgQWxsb3cgdGhlIG5vZGVtYXAgdG8gY29udGFpbiBtdWx0aXBsZSBub2RlcyBmb3IgbWlicyBsaWtlIElGLU1JQgogICAgCiAgICBJbiB0aGUgSUYtTUlCLCAiaW50ZXJmYWNlcyIgYW5kICJpZk1JQk9iamVjdHMiIGJvdGggY29udGFpbgogICAgc2lnbmlmaWNhbnQgc3VidHJlZXMuICBBbGxvdyBub2RlbWFwIHRvIGNvbnRhaW4gYSBjb21tYS1zZXBhcmF0ZWQKICAgIGxpc3Qgb2Ygbm9kZXMsIHRvIGhhbmRsZSBNSUJzIGxpa2UgdGhpcy4KCmNvbW1pdCA5ODc4MWFlM2RhNDNiN2IxNTgzZWNkZTNlMjFiYjY1MjVhMmMwYjgwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAyNyAyMjoyNDoxOCAyMDE0ICswMTAwCgogICAgcm91dGVfaW9jdGwuYzogRml4IHNldHRpbmcgdGhlIG5ldG1hc2sgd2hlbiBjcmVhdGluZyByb3V0ZSB0aHJvdWdoCiAgICBpbmV0Q2lkclJvdXRlVGFibGUgYW5kIGlwQ2lkclJvdXRlVGFibGUuCgpjb21taXQgMmU5NDc3NzY5M2YxODUzNDc5ZGVkNjcwYmUzMDdlY2U3MTM4ZmViNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMjcgMjI6MTM6MDUgMjAxNCArMDEwMAoKICAgIEZpeCBjb21waWxlIGZvciBTb2xhcmlzIHdpdGhvdXQgSVB2Ni4KCmNvbW1pdCA4ZjY5OTFhMjExNGZkMjFiYTU1MTllZTk1NzZiZWIwODJmNjAzZGVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAyMyAxNjozMDo0NiAyMDE0ICswMTAwCgogICAgc25tcG5ldHN0YXQ6IHNlYXJjaCBpZk5hbWUgYW5kIGlmQWxpYXMgd2hlbiBsb29raW5nIGZvciBpbnRlcmZhY2UKICAgIG5hbWUgZnJvbSAtQ0kgb3B0aW9uLgoKY29tbWl0IDRhMzYwMTA0NjU5YzE2OWNlMjMyMjU2ZTEzOGQ5MzhkOTRlNDM1ZjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDIzIDE2OjI4OjMyIDIwMTQgKzAxMDAKCiAgICBsb2dtYXRjaDogZml4IG91dC1vZi1ib3VuZHMgYWNjZXNzLiBUaGFua3MgdG8gZ2NjIG9yIGNsYW5nCiAgICB3aXRoIC1mc2FuaXRpemU9YWRkcmVzcyAocmVjb21tZW5kZWQhKQoKY29tbWl0IGVlZjJmNjRiNDYzNTdiMzUzYzc5NTA0YmM1OTM1MzVlYmU3NDIxZTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDIzIDE2OjI3OjA3IDIwMTQgKzAxMDAKCiAgICBjcHVfbGludXg6IHN1cHBvcnQgc3lzdGVtcyB3aXRoIG1vcmUgdGhhbiAxMDAgY3B1cy4KCmNvbW1pdCAzYmQ2ODNjOTZkNmE4ODY0ZmJkODA3ODU3NGFlZThjZDQzMWNlMzAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxNSAxODozNjowMSAyMDE0ICswMTAwCgogICAgVXBkYXRlIG9wdGlvbnMgbGlzdHMgaW4gbWFudWFsIHBhZ2VzIGFuZCBjb21tYW5kcyBoZWxwLgoKY29tbWl0IGE1ZWZlOGRmMTdkZGM0ZjY2OTNjN2RhOWE1MmM0MDFmNGRiMmJlNjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE1IDE4OjI4OjI0IDIwMTQgKzAxMDAKCiAgICB0ZXN0IFQwMjc6IG1ha2Ugc3VyZSBpdCB3b3JrcyBhbHNvIHdoZW4gY29uZmlndXJlZCB3aXRoIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiAhPSAzLgoKY29tbWl0IDU3ZDEwODI5MDBmOWFjOTMxNDQ0MzE2YTZmOTVmMTllZGEwNjkwNzQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE1IDE4OjI2OjI0IDIwMTQgKzAxMDAKCiAgICBjcHVfbGludXg6IHJlbW92ZSByZWR1bmRhbnQgY2FzdHMuCgpjb21taXQgOWY0YzU3MjYxNDA5MTQwNGRlY2JhMGQ0ZWYxYTRjYmFmOWZjNWJkMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDkgMTM6MzU6MjcgMjAxNCArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBtb25pdG9yaW5nIGJhc2VkIG9uIG5vbi1kZWx0YSB0cmlnZ2VyLgogICAgCiAgICBzbm1wZCBjcmFzaGVkIHdpdCBmb2xsb3dpbmcgc25tcGQuY29uZjoKICAgICAgICBtb25pdG9yIC1zIC1EIC1yIDEwIC1lIExPR01BVENIIC1vIGxvZ01hdGNoQ3VycmVudENvdW50ICJMb2cgTWF0Y2giICE9IGxvZ01hdGNoQ3VycmVudENvdW50CiAgICAgICAgbG9nbWF0Y2ggTG9naW5GYWlsdXJlMSAvdmFyL2xvZy9zZWN1cmUgMTAgc3U6IC4qZmFpbC4qCiAgICAKICAgIFRoZSByZWFzb24gd2FzIHVuaXRpYWxpemVkIHZhcmlhYmxlIHN5c1VUX3ZhciBpbiBtdGVUcmlnZ2VyX3J1bigpLCBpdCB3YXMKICAgIGZpbGxlZCBvbmx5IGlmIHRoZSB0cmlnZ2VyIHdhcyBkZWx0YS12YWx1ZWQsIHdoaWxlIGl0cyB2YWx1ZSB3YXMgdXNlZCBmb3IgYWxsCiAgICB0cmlnZ2Vycy4KICAgIAogICAgV2l0aCB0aGlzIHBhdGNoLCBzeXNVVF92YXIgaXMgZmlsbGVkIGZvciBhbGwgY29kZSBicmFuY2hlcyB3aGVyZSBpdCBpcyBuZWVkZWQuCgpjb21taXQgYzc1MTJhZmU1NjQzZWNhYWU5NzQ1YWMxOTliODM5YzNhYWQ4NDU3YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTc6MzQ6NTEgMjAxMyArMDEwMAoKICAgIFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzCgpjb21taXQgYzkxZjg0MGQ4Mzk4MWY2NjBiNzUyNzRkYmNjMzg3Y2I1YzVmOTlhZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTc6Mjk6MjYgMjAxMyArMDEwMAoKICAgIFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzCgpjb21taXQgMmRkN2RiYTc2ZDFkMGI0Zjg2NjgzNGUwZmQ2MDE0OGMyODFhMTUzYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTc6MjU6MDUgMjAxMyArMDEwMAoKICAgIFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzCgpjb21taXQgNTkxNDMxZjc5OTFmODNkMjM4NWFkYmM1YTIyYzRhODk1NzZiYzMxMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTc6MjE6NTYgMjAxMyArMDEwMAoKICAgIFJlZ2VuZXJhdGUgY29uZmlndXJlIHVzaW5nIHRoZSByaWdodCBhdXRvY29uZiB2ZXJzaW9uCgpjb21taXQgODViYjRiNWM5ZjQ4OTY4NzY3MTVjYjFmMTRmNGYxYjU4MmQyMjNiZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTc6MTI6MDMgMjAxMyArMDEwMAoKICAgIFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzCgpjb21taXQgZDI1NWNhNDI2ZDFlM2Q0YmM0OGI4ZjNkYjkzNzQzNTc4ODkzNGM0MgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjkgMTI6MzU6MzAgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBdm9pZCBkdXBsaWNhdGUgYW5kIHRyYWlsaW5nIHNwYWNlcyBpbiB0aGUgZGVwZW5kZW5jeSBmaWxlcy4KCmNvbW1pdCBkMTVjZDJiOTc0M2NjY2I1MDJkZWFmZDE0M2FkZTBhYTkwY2YzMWU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAwOTowNToxMyAyMDEzICswMjAwCgogICAgTWluR1c6IEJ1aWxkIGZpeAogICAgCiAgICBBcHBhcmVudGx5IHdpdGggcmVjZW50IE1pbkdXIGhlYWRlciBmaWxlcyA8d2luc29jazIuaD4gc2hvdWxkIGJlCiAgICBpbmNsdWRlZCBpbnN0ZWFkIG9mIDx3aW5zb2NrLmg+LiBNb2RpZnkgPG5ldC1zbm1wL3R5cGVzLmg+IGFjY29yZGluZ2x5LgoKY29tbWl0IDdiYTIzZTU3MDc2NDk5ZWY4ZWViMjM4ODUzODM0NzNjY2Y0NDczNjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDE1IDEwOjU4OjI1IDIwMTMgKzAxMDAKCiAgICBXaW4zMjogYmF0Y2ggYnVpbGQ6IENoZWNrIHdoZXRoZXIgUGVybCBhcmNoaXRlY3R1cmUgbWF0Y2hlcyB0YXJnZXQgYXJjaGl0ZWN0dXJlCiAgICAKICAgIEJ1aWxkaW5nIHRoZSBQZXJsIG1vZHVsZXMgZmFpbHMgaW4gYSBzdWJ0bGUgd2F5IGlmIGUuZy4gYSAzMi1iaXQgUGVybAogICAgaW50ZXJwcmV0ZXIgaXMgcHJlc2VudCBpbiAlUEFUSCUgYW5kIGEgNjQtYml0IEMgY29tcGlsZXIgb3IgdmljZSB2ZXJzYS4KICAgIEhlbmNlIGNoZWNrIHdoZXRoZXIgUGVybCBpbnRlcnByZXRlciBhbmQgQyBjb21waWxlciB0YXJnZXQgYXJjaGl0ZWN0dXJlCiAgICBtYXRjaCBiZWZvcmUgc3RhcnRpbmcgYSBidWlsZC4KCmNvbW1pdCA2YjcwNmM1M2Q0Y2Y3NTFlNDk1YWFiNjZmZTM5ZmQ1MWMzMmNlOTMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAxNSAxMDowNjoyMSAyMDEzICswMTAwCgogICAgV2luMzI6IFZpc3VhbCBTdHVkaW8gMjAxMyBidWlsZCBmaXgKICAgIAogICAgQXBwYXJlbnRseSBWaXN1YWwgU3R1ZGlvIDIwMTMgZG9lcyBub3Qgc3VwcG9ydCBnb3RvIDx0eXBlZGVmIG5hbWU+LgogICAgSGVuY2UgcmVuYW1lIHRoZSBVSU5UIGxhYmVsLiBGb3IgY29uc2lzdGVuY3kgcmVhc29ucywgYWxzbyByZW5hbWUKICAgIHRoZSBPQ1QgbGFiZWwuCgpjb21taXQgMTNjODU5MGUzODI2OWE5MjY1ZWFkNWM4NWYwNWM4ODk0ZTg2ZDg0YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMTUgMDk6MzE6NDQgMjAxMyArMDEwMAoKICAgIFJlbW92ZSB0aGUgTkVUU05NUF9ET05UV0FJVCAvIE5FVFNOTVBfTk9TSUdOQUwgYWxpYXNlcyBmb3Igc2VuZHRvL3NlbmRtc2cgZmxhZ3MKICAgIAogICAgTm90ZTogdGhpcyBwYXRjaCBpcyBhIG1vcmUgZWxhYm9yYXRlIHZlcnNpb24gb2YgdGhlIFY1LTctcGF0Y2hlcyBjb21taXQKICAgIDg5YTUwNGZlMzMxZTA5YTU0ZjZiMDFjMjg3N2NmMDIyOTAwNzA1YTggKDIwMTEtMTItMTkpLgoKY29tbWl0IGUwZWFkMmQ1NGViZjQzNTMzZTU2MmMzNDAyZTEyMTg4Y2ZkYzA3OWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRGVjIDE0IDE4OjU0OjAxIDIwMTMgKzAxMDAKCiAgICB3aW4zMi9idWlsZC5wbDogQWRkIHN1cHBvcnQgZm9yIHRoZSBWaXN1YWwgU3R1ZGlvIDIwMTMgY29tbWFuZC1saW5lIGVudmlyb25tZW50Cgpjb21taXQgODg4NjA5NWE5OTA5MDI5M2IwNmEwNzE5ZTdiODY4ZjFlZGMxNDkzMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBEZWMgMTQgMTg6Mjk6MDEgMjAxMyArMDEwMAoKICAgIGxpYmFnZW50OiBXaW4zMiBidWlsZCBmaXggKHNlZSBhbHNvIGNvbW1pdCAwMTcyM2M2KQoKY29tbWl0IDVmMzJiNGFhYThiY2QyMmViYTljNjQ5MjIzZmUwODBkNTQ3OWJjOGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRGVjIDE0IDE3OjE3OjMwIDIwMTMgKzAxMDAKCiAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaDogQWRkIGEgbWlzc2luZyBkZWNsYXJhdGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yIC0+IFY1LjcuMy5wcmUxCgpjb21taXQgZDAxMTdhZGVlODRlZmNiNThhNWU0MTgzZjdkN2NjNmU3MDBmMDI2NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgNSAyMzozMzo1MSAyMDEzIC0wODAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTEKCmNvbW1pdCBiMWRiZGE4YmJjY2E4MjM3NzY2NGRjYTljYjZiYjA2ZjljZTYzN2EyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyA1IDIzOjMzOjM3IDIwMTMgLTA4MDAKCiAgICBSZXBsYWNlIC8vIGNvbW1lbnRzIHdpdGggLyogY29tbWVudHMKCmNvbW1pdCA5ZWUzOTZjZWMxODExNTEyZmJjYjI0NDkwYjNiZTBiOTcwZjY5ZmZiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyA1IDIzOjA2OjEzIDIwMTMgLTA4MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTEKCmNvbW1pdCA2YzM5MmZlZDZjZDVkN2EzMmVkMTBjODE3MGFlZDg1MWNlZTc3OTg1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyA1IDIzOjA0OjI1IDIwMTMgLTA4MDAKCiAgICBpbmNyZW1lbnQgdGhlIHJldmlzaW9uCgpjb21taXQgZjU0MDNlNzU2N2ViMDcxYmVkOGRhZGJhMzhhMmNkYTYwMzMyYjhmYwpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFN1biBEZWMgMSAxODoyNDoxMiAyMDEzIC0wODAwCgogICAgRG9uJ3Qgc2V0IHRoZSBpZmluZGV4IHdoZW4gc2VuZGluZyBhIG5vcm1hbCByZXBseS4KICAgIAogICAgU2V0dGluZyB0aGUgaWZpbmRleCBpbiB0aGUgSVBfUEtUSU5GTyByZXN1bHRzIGluIHNldHRpbmcKICAgIHRoZSBzb3VyY2UgYWRkcmVzcyB0b28gKGlnbm9yaW5nIHRoZSBzb3VyY2UgYWRkcmVzcyB0aGF0CiAgICB3ZSBhbHNvIHN1cHBseSkuICBUaGUgc2VxdWVuY2UgaGVyZSBpcyB0aGF0IHdlIHNlbmQgd2l0aAogICAgbm8gaW50ZXJmYWNlIHNwZWNpZmllZCBidXQgdGhlIHJlcXVlc3QncyBkZXN0aW5hdGlvbgogICAgc3BlY2lmaWVkIGFzIG91ciBzb3VyY2UuICBJZiB3ZSBnZXQgRUlOVkFMLCBpdCdzIGJlY2F1c2UKICAgIHRoZSByZXF1ZXN0J3MgZGVzdGluYXRpb24gd2FzIGEgYnJvYWRjYXN0IGFkZHJlc3Mgd2hpY2gKICAgIGlzIGFuIGludmFsaWQgc291cmNlIGFkZHJlc3MsIHNvIHdlIHRyeSBhZ2FpbiB3aXRoIHRoZQogICAgaW5jb21pbmcgaW50ZXJmYWNlJ3MgaWZfaW5kZXggYW5kIHNwZWNpZnkgdGhlIHNvdXJjZQogICAgYXMgSU5BRERSX0FOWS4KICAgIAogICAgSWYgd2Ugc3VwcGx5IHRoZSBpZmluZGV4IGluIHRoZSBmaXJzdCBjYWxsLCBhIHJlcGx5IGZyb20KICAgIGEgbXVsdGktaG9tZWQgYWdlbnQgbWF5IGNvbWUgZnJvbSBhIGRpZmZlcmVudCBzb3VyY2UgYWRkcmVzcwogICAgdGhhbiB0aGUgcmVxdWVzdCB3YXMgc2VudCB0bywgcG90ZW50aWFsbHkgY29uZnVzaW5nIGEgbWFuYWdlci4KICAgIFRoaXMgYnVnIHdhcyBmaXJzdCBpbnRyb2R1Y2VkIGluIFNWTiByMTc4NTUgYW5kIHdhcyBmaXhlZAogICAgaW4gU1ZOIHIxOTc2NzsgYWxzbyBzZWUgdGhlIG1haWxpbmcgbGlzdCB0aHJlYWQKICAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9uYW1lPUFBTkxrVGltMzdIN003QmEwMTBMbWRrMVlHWUt3UFRrRHlSS29Ecjc2dXFEVCU0MG1haWwuZ21haWwuY29tJmZvcnVtX25hbWU9bmV0LXNubXAtY29kZXJzCgpjb21taXQgMTQ0YTEzMjA4YjRmYTZmMGExY2Q5NzFmNDFhNzI3OTcxNmIyN2VlZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMjkgMDg6MDc6MjggMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmaXhpbmcgdGhlIHN0YXRzIG91dHB1dCBicm9rZSB0aGUgY29ubiBvdXRwdXQgOi0oLiBGaXhlZC4KCmNvbW1pdCBmNGU1ZWU2ZjM5NjMwYjczZjhhZDk5NDZjOTkwZTk2OTA1ODBkN2NmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE5vdiAyNyAwMToxMjowMCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RzIGZvciBhc25fcmVhbGxvY19yYnVpbGRfKmludCogYW5kIHRlc3RzIGZvciBvcGFxdWUgdW5zaWduZWQgNjQtYml0IHR5cGVzLgoKY29tbWl0IDIwZTRiMzc5MzJhOWU5Y2M1NmIzNjBhMjM2ZTlkODE4MDc5M2EyOTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTm92IDI3IDAwOjU0OjU4IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IHRoZSB0eXBlIGNoZWNrIGZvciBvcGFxdWUgdmFyaWFibGVzIHdoZW4gZGVjb2RpbmcgY291bnRlcjY0IHZhbHVlcy4KICAgIAogICAgVGhhbmtzIHRvIHJrakBzb2Z0aG9tZS5uZXQgZm9yIHJlcG9ydGluZyB0aGlzIGlzc3VlLgoKY29tbWl0IDZlNzZjYmJiMmEwNzgzZjIyZjU4ZmI3ZDMyM2U5ZjcyMTdjYzYwNGEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTm92IDI3IDAxOjAxOjA0IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCBmYWlsdXJlIHRvIHRyaWdnZXIgc2lnbiBleHRlbnNpb24gZHVlIHRvIG92ZXJsb25nIHR5cGVzCiAgICAKICAgIEluIGFzbl9yZWFsbG9jX3JidWlsZF9zaWduZWRfaW50NjQgdGhlIGFsZ29yaXRobSBhc3N1bWVzIHRoYXQgc2hpZnRpbmcKICAgIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3ZmZmZmZmZiByaWdodCBpcyBhbiBhcml0aG1ldGljIHNoaWZ0IHRoYXQgd2lsbAogICAgc2hpZnQgaW4gMSdzLiBPbiBob3N0cyB3aGVyZSBsb25nIGlzIG1vcmUgdGhhbiAzMiBiaXRzIHRoZSB1c2Ugb2YgbG9uZwogICAgZm9yICdsb3cnIGFuZCAnaGlnaCcgbWFrZXMgdGhpcyBhc3N1bXB0aW9uIGZhbHNlLgogICAgCiAgICBUaGFua3MgdG8gcmtqQHNvZnRob21lLm5ldCBmb3IgcmVwb3J0aW5nIHRoaXMgaXNzdWUuCgpjb21taXQgNGE0Yjc4ZTYzZGQ2ODg4OTJiNzM5OWI1ODRlMjZlMDQ3ZDM2NzUwMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMjcgMjI6MTY6NDQgMjAxMyArMDEwMAoKICAgIEFkZGl0aW9uYWwgZml4IGZvciBkYXJ3aW4xMwoKY29tbWl0IDkxYmQ1ZDRjNWY0MWI1NGM0NjI0Mjg4M2RiOTJhYTRlNDk0NTUyOTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDI3IDIyOjEzOjAzIDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZml4IHRydW5jYXRlZCBzdGF0aXN0aWNzIHdoZW4gdXNpbmcgLXYxCgpjb21taXQgMGNiMTRkNGU1YzM5YTA3Yzc4NDc0ODgxZTZjNzNmYTYxNzUwN2JkYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMjcgMjI6MDY6NTggMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmaXggc3RhdGlzdGljcyBmb3IgaXB2NgoKY29tbWl0IDJkNGRlZmU3N2JkZWJiYmMxYTc3M2ViOGQ0ODQ5OGI2ZjI1NThmMjMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDUgMDY6NDk6MzUgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVc2UgMCBmb3IgdGhlIGlnbm9yZWQgbnVtdmFycyBhcmd1bWVudCB0byBuZXRzbm1wX3JlZ2lzdGVyX21pYgogICAgCiAgICBUaGUgbnVtdmFycyBhcmd1bWVudCBvZiBuZXRzbm1wX3JlZ2lzdGVyX21pYiBpcyBpZ25vcmVkIGlmIHRoZSB2YXIKICAgIGFyZ3VtZW50IGlzIE5VTEwuIEluIG9yZGVyIHRvIHVuaWZ5IHRoaXMgdXNlIG9mIGl0IHdpdGggYWxsIG90aGVyIG9uZXMsCiAgICBjaGFuZ2UgaXQgZnJvbSAxIHRvIDAKCmNvbW1pdCBiOTkzM2U2MTgzYjE3MTVjOTBkN2NmNmRmYWMxODkxMDAwNzk2YmNlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE5vdiAyMiAyMzowNDowOCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcwoKY29tbWl0IGE3ODMwNzAzOGJmMGI0ODU5ZTExYmQ4NmNhMzA0OWMzMzlhYmUxMjYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDIzIDA5OjQ5OjAxIDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIGEgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKY29tbWl0IGQ4ZDYwNzhiM2U2NWI1YmExMzFkZjg0MmQ5MmM3NzQzNzM3ZmY5NTUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDE5IDA4OjA2OjM0IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYXJrIHJlZ2lzdGVyX3NpZ25hbCBhbmQgdW5yZWdpc3Rlcl9zaWduYWwgYXMgdW51c2VkLgoKY29tbWl0IGJmMDgzZjViNjljY2I5NWZmNzBlMmEyOGE3YzY0ZmVjN2Q3ZTQyMmUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE4IDIyOjQxOjI4IDIwMTMgKzAxMDAKCiAgICBQYXRjaCBhMTI3MDogbWFuIHBhZ2UgZml4dXBzICh0aG5rcyBBbGVrc2FuZHJzIFNhdmVsamV2cykKCmNvbW1pdCA2MmE2MzRjZTY3MWMzOGFkZTk3OTE3MDc3MDM5ZTM0YWUzZDkyNzM0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE5vdiAzIDE2OjAyOjM5IDIwMTMgLTA4MDAKCiAgICBXaW4zMjogVW5icmVhayB0aGUgYnVpbGQgKHNlZSBhbHNvIGNvbW1pdCAyNTNmOTA3NDMpCgpjb21taXQgYTgxM2I1MTExMjU1Zjc1ZmVmNjk0NGNlZGQ2NDhkYmY4YzM0YTlhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTEgMTc6NTQ6NDQgMjAxMyArMDEwMAoKICAgIFdpbjMyOiBwZXJsOiBBdm9pZCB0cmFuc3BvcnQgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBpbiBQZXJsIFNOTVAgYWdlbnRzCiAgICAKICAgIEF2b2lkIHRoYXQgdGhlIGZvbGxvd2luZ24gbWVzc2FnZSBpcyBwcmludGVkIGR1cmluZyBzdGFydHVwIG9mIGEgUGVybCBTTk1QCiAgICBhZ2VudDoKICAgIAogICAgbmV0c25tcF9hc3NlcnQgcyAhPSAoLTEpIGZhaWxlZCAuLlwuLlxzbm1wbGliXHRyYW5zcG9ydHNcc25tcFVEUEJhc2VEb21haW4uYzo0ODQKICAgIAogICAgU2VlIGFsc28gY29tbWl0IDM2YTdkZTcyMzBmYmJiYjUyY2MzN2NiYmVkMjgxZWI1NTk0MDRiZTkuCgpjb21taXQgYTJhM2ExYWE2N2ZmMzhkYWE4ZjEzOTUxOGFiYjM1NDg0NzVlZDU5MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgOCAyMjozMjoyOSAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZpeCB1c2FnZSBtZXNzYWdlIHRvIGJlIGNsb3NlciB0byByZWFsaXR5LiBGaXggaGFuZGxpbmcgb2YgLUNwIGFuZCAtQ2Ygb3B0aW9ucyB3aXRoIG5ldyB0YWJsZXMuCgpjb21taXQgNzI3NzQwMDEwMmRmY2E5MjFlYWMwYmQ5Y2VmODZiMzJmNTk4MDAzZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgOCAyMjozMDoxNCAyMDEzICswMTAwCgogICAgQ2xlYW4gdXAgc25tcG5ldHN0YXQgbWFuIHBhZ2UsIHJlbW92aW5nIHNvbWUgbGVmdCBvdmVyIGNydWZ0IG1hbgogICAgb3JpZ2luYWwgYnNkIG5ldHN0YXQgcGFnZS4KCmNvbW1pdCBlYjAzNzlkYjM4NTNmYWQxMzhmOTJmNDc5MmE4MDM0MTc3ZDk2MjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA0IDIyOjA5OjU1IDIwMTMgKzAxMDAKCiAgICBGaXggbGVuZ3RoIG9mIGRlZmF1bHQgcm91dGVyIGFkZGRyZXNzIHVzaW5nIHN5c2N0bC4KCmNvbW1pdCA4ZmE0NmYyOTYxM2MxNzkyYzRhMTQ0MzI5NDQyNzNiNmQ3NGUzZjNjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA0IDIyOjA3OjU2IDIwMTMgKzAxMDAKCiAgICBGaXggaGFuZGxpbmcgb2YgY29tbWFuZCBuYW1lcyB3aXRoIGJsYW5rcyBvbiBMaW51eC4KCmNvbW1pdCA2ZmNiMzgxZGNkNDYwYjc5NTU2MzM5ZWIzNmZiZTU3OWJmNDlkYzAzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA0IDIyOjA1OjU2IDIwMTMgKzAxMDAKCiAgICBBZGQgTElTUC1NSUIgdG8gcmZjbGlzdC4KCmNvbW1pdCAxYzUxMDQ3NDEwNzAyMTlmMTM4MDBkNzZhZmQ1N2EwZDYzNmMyNDNiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA0IDIxOjU0OjM2IDIwMTMgKzAxMDAKCiAgICBGaXggcGFnaW5nIHN0YXRpc3RpY3MgZm9yIE9wZW5CU0QgNS40Cgpjb21taXQgMmY1N2I4MDRlODNiOGY4OWI4OTY5NjM3ZjgzZDg4ODYwMTA4MzhmZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMzAgMjE6MzU6MzMgMjAxMyArMDEwMAoKICAgIEFkZCBkYXJ3aW4xMyBzdXBwb3J0IGZpbGUKCmNvbW1pdCA4MjNkNTFmNzliODRlMTM1OTNlNWIxYWM5YjQwNzYzNGM1NDM0NmY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMSAyMDo0OTo1MyAyMDEzICswMjAwCgogICAgRml4IG1ha2UgaW5zdGFsbCBpbiBtYW4gZGlyZWN0b3J5IGZvciBTb2xhcmlzIGNhdXNlZCBieSBWUEFUSCBvZGRpdHkuCgpjb21taXQgYzU3NTIwNGEwMjA1OTE5OTQyOGNlMTM1YmMxMmVjYjM4NWUzNjc2MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjEgMjA6NDc6MzEgMjAxMyArMDIwMAoKICAgIENoYW5nZSBhbiBvY2N1cnJlbmNlb2Ygc3ByaW50ZiB0byBzbnByaW50Zi4KCmNvbW1pdCBhMmJkYTk5NDAxOTI4MDI3OGJlZGVkNzkxN2M4NzdmY2I0NDg4NzNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMSAyMDo0NjozMCAyMDEzICswMjAwCgogICAgQmV0dGVyIHdvcmRpbmcgZm9yIHN0YXRpc3RpYyBlbnRyeS4KCmNvbW1pdCA2NjQ0YjA1ZDNjZjM0MTIzY2VkYTc0YjdiODRmMTY5NDQzNTllN2NhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMSAyMDo0NToxNSAyMDEzICswMjAwCgogICAgRml4IHdhcm5pbmdzIGZvciBsaWJubDEuCgpjb21taXQgOTQwODE2ZTAxOTE3MWEwNDE0ZWUwMGE0NmNkYTRjZTYwYmMwMWY3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBPY3QgNSAxMTowNToxMiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDEyNjU6IEZpeCBhIGJ1ZmZlciBvdmVyZmxvdyBpbiBkdW1wX3JlYWxsb2Nfb2lkX3RvX2luZXRhZGRyZXNzKCkKCmNvbW1pdCAwOTkyZWNmOGZjNWQ4NzgzNzAwNmQ0YmMzYTg2ODFlNTczNmUzNTczCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE9jdCAxNyAwNzoxNjoyMyAyMDEzICswMjAwCgogICAgcGFzc19wZXJzaXN0OiB6YXAgcG9zc2libGUgQ1IgYXQgZW5kIG9mIGxpbmUuCgpjb21taXQgZWI4OGUwMjRiNGMyNjc5OTRkZTQwNDAxZThiN2Q3N2UzMmRlYzZjZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMTUgMjE6MzM6NTYgMjAxMyArMDIwMAoKICAgIE1haW50YWluIGJ5dGUgb3JkZXIgZm9yIElQdjYgcG9ydCBudW1iZXJzIGluIHRyYW5zcG9ydCBkYXRhIChwcm9ibGVtIHN1cmZhY2VkIGluIHNubXBUYXJnZXRBZGRyRW50cnkpCgpjb21taXQgZjJlNTdiOGU2MzhhMWZjZGM4NWZkMGZkMmY2NTUyYTMzZmNhYjNmOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMTUgMjE6MTc6MjEgMjAxMyArMDIwMAoKICAgIHNubXBuZXRzdGF0OiBiZXR0ZXIgaGFuZGxpbmcgb2Ygc25tcCBleGNlcHRpb25zLgoKY29tbWl0IGUwMjgwMjk0ZTdlNmJlYmQ2MmZiYWI5OTI4YjFiNWYwMWI3MzVlNzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDE1IDIxOjE1OjM5IDIwMTMgKzAyMDAKCiAgICBGaXggRElTUExBWS1ISU5UIGZvciBuZWdhdGl2ZSB2YWx1ZXMgYW5kIGhpbnQgImQtbiIuCgpjb21taXQgMWFiYjVhMDk0ZDI3NTE0YjgxNDdiMTEyOGRiMmNkZGNiMTcwM2JiOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBOb3YgMiAxNDo0NTo0MiAyMDEyICswMTAwCgogICAgVXNlIE5FVFNOTVBfUFJJeiB0byBwcmludCBzaXplX3QgdmFsdWVzIGluIF9zZXNzX3JlYWQKCmNvbW1pdCBhY2I3MjU4OWFjYjMwMThlNDQzZjVlM2Y2NTRkZDAzZjdjMjYzMTZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAxIDE4OjQxOjUxIDIwMTMgKzAyMDAKCiAgICBBZGQgZm9yZ290dGVuIGljbXBPdXRFY2hvcyB0byBpY21wTXNnVGFibGUuCgpjb21taXQgMjUzZjkwNzQzOTE1MTAyM2E5MmEzYWM0M2E5ZjMxN2UzYTRlMTdmYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMzAgMjI6MTM6NDMgMjAxMyArMDIwMAoKICAgIFNvbGFyaXM6IHN1cHBvcnQgaWNtcE1zZ1N0YXRzVGFibGUKCmNvbW1pdCA2ZWU5MWYwNmI1YmQwZTBjYmQyYjY5ZjNkYWUwYmY2MTQxY2M5NTU2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAzMCAwNjo1OToxMCAyMDEzICswMjAwCgogICAgU29sYXJpcyBzdXBwb3J0IGZvciBJUC1GT1JXQVJELU1JQgoKY29tbWl0IDRlYmRmM2ZiMDQ0NWY5MDY3ZWNiMzgzOTRjMmRmMmJkM2I3MzgxODIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDMwIDA2OjU0OjI4IDIwMTMgKzAyMDAKCiAgICBQcm9wZXJseSBoYW5kbGUgdGhlICdiJyBkaXNwbGF5IGhpbnQuCgpjb21taXQgN2YyZWRiZjY4MzQ4Y2FiZWFmOTk1YWFiYTFiMmE3ODkzZDE4YzVlNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBdWcgMzAgMDg6NTA6MDkgMjAxMyArMDIwMAoKICAgIFJlbW92ZSBzb21lIGNvbW1lbnRlZCBvdXQgZGVmaW5lcwoKY29tbWl0IDQzNWVlMWY0MDIzY2IwMDIyNDVjM2E1NmRiZWFiYTM3YTNkM2VkYmUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgU2VwIDI4IDE0OjI2OjEwIDIwMTMgKzAyMDAKCiAgICBQYXRjaCBhMTI1OSAoYnVnIGEyNDU2KTogcHJvYmxlbXMgd2l0aCBpcENpZHJSb3V0ZVRhYmxlIG9uIDY0LWJpdCBiaWdlbmRpYW4gbWFjaGluZXMuIFRoYW5rcyB0byBDaHJpc3RvcGhlciBXdS4KCmNvbW1pdCA5YTZmNTY2MzkyYTNjZjEyZGFiNDg4YTc2ZDY5ZmM4NzNkYmVjMmFjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyAyNSAxMDoxODo1MyAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVuYW1lIG1lbWR1cCgpIGludG8gbmV0c25tcF9tZW1kdXAoKQogICAgCiAgICBSZW5hbWUgdGhlIGZ1bmN0aW9uIG1lbWR1cCgpIGRlZmluZWQgaW4gbGlibmV0c25tcC5zbyBpbnRvCiAgICBuZXRzbm1wX21lbWR1cCgpLiBUaGlzIGF2b2lkcyBjb25mbGljdHMgd2l0aCBtZW1kdXAoKSBmdW5jdGlvbnMKICAgIGRlZmluZWQgaW4gb3RoZXIgbGlicmFyaWVzIHRoYXQgZGVmaW5lIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZQogICAgbmFtZS4gQXMgYW4gZXhhbXBsZSwgaWYgV0lOUyBuYW1lIHJlc29sdXRpb24gaGFzIGJlZW4gZW5hYmxlZCB2aWEKICAgIC9ldGMvbnNzd2l0Y2guY29uZiB0aGVuIHBlcmZvcm1pbmcgYSBob3N0IG5hbWUgbG9va3VwIGNhbiB0cmlnZ2VyCiAgICBhIGNyYXNoIGluIHRoZSBTQU1CQSBXSU5TIG5hbWUgbG9va3VwIGxpYnJhcnkgYmVjYXVzZSBjYWxscyB0bwogICAgbWVtZHVwKCkgZnJvbSB0aGF0IGxpYnJhcnkgZ2V0IHJlZGlyZWN0ZWQgdG8gdGhlIGluY29tcGF0aWJsZQogICAgTmV0LVNOTVAgbWVtZHVwKCkgZnVuY3Rpb24uIFNlZSBhbHNvCiAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEwMDA3ODAgZm9yIHRoZSBkZXRhaWxzLgogICAgVGhpcyBwYXRjaCBpbnRlbnRpb25hbGx5IGNoYW5nZXMgdGhlIE5ldC1TTk1QIEFCSS4KCmNvbW1pdCAzZGRlNDE5OTg2MjVmZTBlMjQxMTlhMmUxZjQ1MDliYTNiYTJmZDlhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA1IDIwOjI3OjIyIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBMaW51eDogQlVHOiAyMjM4OiBBZGQgbGlibmwzIHN1cHBvcnQKCmNvbW1pdCBhMzc5NTdiZWU5Zjc5ZGIxOWJiYTkzZjExZmFhMDM3OTIxZDZlNTg0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAyMyAyMjoyNDoxNSAyMDEzICswMjAwCgogICAgcm91dGVfc3lzY3RsLmM6IEZpeCBmb3IgbGlua2xvY2FsIHJvdXRlcyBvbiBGcmVlQlNEIDEwCgpjb21taXQgZDlhN2Y5ZmM2Nzk0NTViMGZhMzI4ZmJhZTY3ZWMyZWUyOTA2Yjk0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTk6NDI6NTEgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBBdXRvbWF0ZSBidWlsZGluZyB0aGUgaW5zdGFsbGVyCgpjb21taXQgZWIxYTE2NDE1MDBkNmJjZjM5ZjliODQ3YTJjMDZjOWVkYTBjODhjNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTk6MzI6MzEgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhbiBpbnN0YWxsZXIgd2l0aG91dCBhZG1pbmlzdHJhdGl2ZSBwcml2aWxlZ2VzCgpjb21taXQgYTk3NzdlYzlhZmIzN2NhNjQ0MjE2NjA3OWJkNWIyZTAzNDliZTNlMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTg6MzU6NTUgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IE9wZW5TU0wgdmVyc2lvbiBjaGVjawoKY29tbWl0IDVjYjJjYzdhYjIwYjI5MGE2Yzc0NTg1Zjk4NWY5YzkxMmNkZWM4Y2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDEwOjI1OjAwIDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IFJlbW92ZSBNU1ZDIHJlZGlzdHJpYnV0YWJsZSBmaWxlcyBmcm9tIHRoZSBpbnN0YWxsZXIKCmNvbW1pdCAxNzgxMjAwNjFlY2U0OGNjZDk3YTNhZTM2Yjg4MGRhNmIxMDk1MjA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAwOTo1MDoxOCAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0OiBHZW5lcmFsaXplCgpjb21taXQgODVhMWM1MDI2ZjEwZmYxNDNmNDM3ZjAwMzg5NGE2YzRhYTE4N2E5NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTg6NDM6MDUgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBGaXggeDY0IGRldGVjdGlvbgoKY29tbWl0IGEwYzJhN2FiNDI5OTc0MzNlNzA3YzEwZjhhY2Y2MWY5MTI0NDJmNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDE3OjI4OjU0IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogRXhhbWluZSB0d28gbG9jYXRpb25zIGZvciBNaW5HVyBiaW4gZGlyCgpjb21taXQgY2YxMDA2ZTY3ZjljNzdmYmRhOTRkNDUyMWU3OGYwMDk4YzhhMGUxOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTA6MTE6MTMgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBGaXggU1NMIGJ1aWxkCgpjb21taXQgYjQ3ZjEzNmJlYThlZjU0NjhhMjBkOTQ1MmIxMjMxOGRiNmMzNDllYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTc6MDU6MzcgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBBZGQgV1NESyBzdXBwb3J0Cgpjb21taXQgMGUxOGEyMDZhYWE0OTBmZGViMmM3MGEwZTZlNTJjOTFlYjVmM2VkOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMDk6NDg6MDYgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDg1ZGYwMmI4MzYzMjBjYzQ1ZTVkMmRiNDU0ODNiYzUwODYzMTQ0NmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDEwOjAyOjIxIDIwMTMgKzAyMDAKCiAgICB3aW4zMi9Db25maWd1cmU6IEZpeCBidWlsZCB3aXRob3V0IE9wZW5TU0wKCmNvbW1pdCAzZjlhZGI5ODdiNWJmNWQyZDA5NWNmZDZlYTJkYTljZDgxZDFiZWM0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAwOToxNTo0MSAyMDEzICswMjAwCgogICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IFdpbjMyIGJ1aWxkIGZpeAoKY29tbWl0IGE2ZTE4NTFmYmU3NDdjZjE1ZWQwNzU4MDc3ODFjZTg5YTM0ZTk2YzIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDE5OjU1OjAyIDIwMTMgKzAyMDAKCiAgICBSZXN0b3JlICJDSEFOR0VTOiBXaW4zMjogcGVybDogQlVHOiAyNDg4OiBBdm9pZCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvciIKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiMjcyNTk2NGJkZTkyMWI2Mjg1ZTNhNTlhNTEyNTUyY2FlMGEwY2E1LgoKY29tbWl0IGIyNzI1OTY0YmRlOTIxYjYyODVlM2E1OWE1MTI1NTJjYWUwYTBjYTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDE5OjQ5OjU4IDIwMTMgKzAyMDAKCiAgICBSZXZlcnQgIkNIQU5HRVM6IFdpbjMyOiBwZXJsOiBCVUc6IDI0ODg6IEF2b2lkICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9yIgogICAgCiAgICBUaGlzIHBhdGNoIGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgdGhlIHY1LjQgYnJhbmNoLgoKY29tbWl0IDY0NTM3MTdmNmFjNjY1YmY1MzI3NDRhODZjZGI4OThhYWY4M2Q2YmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDE5OjM0OjI1IDIwMTMgKzAyMDAKCiAgICBBZGQgcmVwcm9kdWNlciBmb3IgYnVnIDI0ODgKCmNvbW1pdCAwZDBhNDYyOTcwMmViOWY5ZmU5OTU2YzFiYWM0YjQ0NTYxMGZmM2M3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAzMSAxNzoyMToyMiAyMDEzICswMjAwCgogICAgU2ltcGxpZnkgc25tcFRhcmdldEFkZHJfcm93U3RhdHVzQ2hlY2soKQoKY29tbWl0IDRiODdlM2NiNGQzNjc5YWI2MGMzNTNiYTRmZjMwMWY2ODQyYjg0YmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDE2OjM3OjA5IDIwMTMgKzAyMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjhleGVjZml4X3NpbXBsZTogU2ltcGxpZnkKCmNvbW1pdCA2NWM4OGUyZWNmNWRlOTM2NWM4M2M0NmVmM2JiNGNkODljZGM0NGU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAxNSAxMToxMTo0MyAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IHBlcmw6IEJVRzogMjQ4ODogQXZvaWQgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3IKCmNvbW1pdCAxYTQ4NTVkYTRiMWRkNjkzYTJiMDM3N2I5MWU5YzMzZTNjN2YyYTRkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAxNzoxMTo0NSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQlVHOiAyNDAyOiBBZGQgc3VwcG9ydCBmb3IgU05NUHYzIHRyYXBzCgpjb21taXQgM2QwNTE1NjkzZjZhMGQyOWQzOWRkMGM4NjhkMzc4Yzc0YmM0Zjg3YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMDk6MTY6MzMgMjAxMyArMDIwMAoKICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2OGV4ZWNmaXhfc2ltcGxlOiBQb3J0IHRvIE1pbkdXIGFuZCBGcmVlQlNECgpjb21taXQgNWI2ZTQzMWQ5ZjY2M2EzYzMyN2Q3MWRhYzk1MzkyY2ZkODZiMzI5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMDk6MDM6NTkgMjAxMyArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgOWYyZThmYzhkOWEyNmY1N2FiMDg5YWJhM2QxYWUyNmIzZThmMmQ1NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMTcgMjI6MzA6MzggMjAxMyArMDIwMAoKICAgIEZpeCBkZXBlbmRlbmN5IGZvciBGcmVlQlNEMTAKCmNvbW1pdCBhNTA2ZWZkZDFkYjgyNGE5ZWVlZTAzZDAwMjFjOTBmYWYzYjYyOTI0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAxNyAyMjoyOTozNCAyMDEzICswMjAwCgogICAgc25tcGRmIG1hbiBwYWdlOiBmaXggZm9ybWF0dGluZyBvZiAtQ2gvLUNIIG9wdGlvbnMKCmNvbW1pdCBhMmU5N2JlYmZjNTIxNzBmOWVjMTAzNmQyNGFhODRmNTljZjJlNTA4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAxNyAyMjoyNzo0OSAyMDEzICswMjAwCgogICAgVXBkYXRlIHRoZSBCU0QgbXVsdGktY3B1IGNvdW50ZXJzIGNvZGUgdG8gd29yayB3aXRob3V0IGNvbmZpZ3VyZSBoZWxwLgoKY29tbWl0IGM4NWQ2NGQ1NGIwNjg3OWEzYTY5MWRhZGZmYzAzYmZiMWY1OTA5NmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgU2VwIDE3IDA2OjM3OjE4IDIwMTMgKzAyMDAKCiAgICBPbmx5IHRlc3QgdGhlIGV4ZWNmaXggY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgaWYgaXQgaXMgZW5hYmxlZAoKY29tbWl0IGVkOGI2OTdjZWEwNjc5ZGU3YmU1YjNmNWQ0NjkxMzRlMWNkYWVkNTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDcgMTA6Mjc6MDIgMjAxMyArMDIwMAoKICAgIG00L2FjX2FkZF9zZWFyY2hfcGF0aC5tNDogRml4IGEgY29tbWVudAoKY29tbWl0IGY3NzljNWU5NDY3ODg1ODUyZjE2YzU1NDFhMzgwMTExZjllYWQwNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDcgMjA6Mjg6MjkgMjAxMyArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2FwdC5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MKICAgIAogICAgUmVtb3ZlIHRoZSB1bnVzZWQgdmFyaWFibGUgJ3JjJyBhbmQgZml4IGEgZm9ybWF0IHN0cmluZy4KCmNvbW1pdCBjNjQzOTYyN2QwOWY1MDNmZGM4Y2ZhMzJkODg0ZTgzNDczODMxNzU0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1hciA4IDAwOjEzOjA1IDIwMTEgKzAwMDAKCiAgICBhbGxvdyBmb3IgdjJjIFNFVCBzdXBwb3J0IHRlc3RpbmcKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNWNiZDU0MzQxYTJhNzliZjg1MzczNzdkMTEzNzI0ODNmMDg2NDdhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMTQgMTQ6Mjg6MjEgMjAxMyArMDIwMAoKICAgIHJlZ3Jlc3Npb24gdGVzdHM6IEFkZCBhIHRlc3QgZm9yIHRoZSBleGVjZml4IGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlCgpjb21taXQgMWM3NTYzNDllNGQzMWQzOWVjMmZjNTNjNjQ0MGFlNTNiM2IwM2RmMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgNyAyMDoyODo1NiAyMDEzICswMjAwCgogICAgc25tcGQ6IHVjZC1zbm1wOiBGaXggYSBwb3RlbnRpYWwgY3Jhc2ggaW4gZml4RXhlY0Vycm9yKCkKICAgIAogICAgRG8gbm90IGludGVycHJldCBhIGNvbW1hbmQgc3BlY2lmaWVkIHZpYSB0aGUgZXhlY2ZpeCBjb25maWd1cmF0aW9uCiAgICBkaXJlY3RpdmUgYXMgYSBwcmludGYoKSBmb3JtYXQgc3RyaW5nLgoKY29tbWl0IDhiMTQwZDA5NjVlMTFmNTkyMTc2OGJmMDVkMGMyYjE5NDFjMGQzMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDMxIDE3OjEwOjU1IDIwMTMgKzAyMDAKCiAgICBTTk1QLVRBUkdFVC1NSUI6IERlY2xhcmUgbG9jYWwgdmFyaWFibGVzIGF0IGZpbGUgc2NvcGUgc3RhdGljCiAgICAKICAgIEFsc28sIGRlY2xhcmUgdGhvc2UgdmFyaWFibGVzIGNvbnN0IHRoYXQgYXJlIG5vdCBtb2RpZmllZC4KCmNvbW1pdCA3YjgyYzYxZTc1M2UxNTdjNGI4Njk4MjE5MDA2ZjJmODNkZjUyODAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAzMSAxNjo1MToxNSAyMDEzICswMjAwCgogICAgU05NUC1UQVJHRVQtTUlCOiBFbGltaW5hdGUgdHdvIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgZGJjZjQ3ZGQ0ZmU1MjYyYWQwZmFkN2M5Nzc0NTIwOTU4OTU0MGM0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDExIDEwOjIxOjMyIDIwMTMgKzAyMDAKCiAgICBSZXdvcmQgdGhlIGluY2x1ZGVGaWxlIHNlYXJjaCBwcm9jZXNzIHRvIGZpdCB0aGUgaW1wbGVtZW50YXRpb24uCgpjb21taXQgODUwNzMwODVkNjdlZDY2YWI3NDYxMWM4ZTVmODEwMTkyNDkxYmE2OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgOSAyMjoyNjoyMyAyMDEzICswMjAwCgogICAgUGF0Y2ggYTEyNjM6IE1ha2UgZGF0YWJhc2UgbmFtZSBjb25maWd1cmFibGUgZm9yIHRyYXBkIHNxbCBsb2dnaW5nLgogICAgVGhhbmtzIHRvIFJvYmluIFNvbmVmb3JzLgoKY29tbWl0IDdlNzI1OGVmOGIzMmY5NzQwNDhmM2ZkMDk4YTlkYTUyNmRhMmU2MTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDkgMjI6MTc6MTUgMjAxMyArMDIwMAoKICAgIFBhdGNoIGExMjYyOiBGaXggbWVtb3J5IGVycm9yIGNhdXNlZCBieSBjb25mdXNpbmcgc2l6ZSBvZiBwb2ludGVyCiAgICB3aXRoIHNpdXplIG9mIHBvaW50ZWQgYXJlYS4gVGhhbmtzIHRvIFJvYmluIFNvbmVmb3JzLgoKY29tbWl0IDU4NmUwN2I4ZGU1MWIwNTQwMGQ1ODJmYWNkOTFkNDQxMGRkMzc3MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDMxIDE3OjA5OjU5IDIwMTMgKzAyMDAKCiAgICBzbm1wZDogQ29uc3RpZnkgYSBmZXcgYXJndW1lbnRzIG9mIE1JQiByZWdpc3RyYXRpb24gZnVuY3Rpb25zCiAgICAKICAgIE5vdGU6IHRoaXMgcGF0Y2ggZG9lcyBub3QgY2hhbmdlIHRoZSBBQkkuCgpjb21taXQgNDRjMzY3MWRkOTNmZTBmMDgyOTllNjFkMGE0MjJmZDA3MmI0OTBlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgOCAwNzozNTo0NiAyMDEzICswMjAwCgogICAgUnVuIGF1dG9yZWNvbmYKCmNvbW1pdCA2MmRhZGVmYTFiMjY4OGMwMjc5MmU5ZmQyZDNmYzMxYzc5ZWQxMWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIFNlcCA2IDExOjU0OjEzIDIwMTMgKzAyMDAKCiAgICBzd3J1bl9kYXJ3aW46IEZpeCBidWZmZXIgb3ZlcnJ1biB3aGVuIGNvbGxlY3RpbmcgaHJTV1J1blBhcmFtZXRlcnMKCmNvbW1pdCAxZTA1MjZmODVlZDYxNTY3Y2E2ZWE1M2I1NjZjNzcyOTkyMTExYzllCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCA0IDIyOjMwOjQwIDIwMTMgKzAyMDAKCiAgICBBZGQgYSBjb3VwbGUgb2YgY29udHJpYnV0b3JzIHRvIFJFQURNRQoKY29tbWl0IGVkYzYwOGViZDVkMDIxOTg2M2JjNWY2NTZkMTc3YjFkNTYxMDQ4YzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDQgMjE6NTk6MTggMjAxMyArMDIwMAoKICAgIEZpeCBhIHByaW50ZiBmb3JtYXQgd2FybmluZy4KCmNvbW1pdCBmYjI0ZjczM2NiMzE2YzM1Y2NmZGM1OWY0ODdiNjVlMGNkOTc0YzY4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCA0IDIxOjU0OjI3IDIwMTMgKzAyMDAKCiAgICBzbm1wbmV0c3RhdDogSW5kZW50IElDTVAgaGlzdG9ncmFtIGZvciByZWFkYWJpbGl0eS4KCmNvbW1pdCBmNzk0M2E1ZDU4YTZmOTUzYzc5ZmI1NWFiODk3Yzg0OTIyOGVkYjhhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCA0IDIxOjQ1OjE5IDIwMTMgKzAyMDAKCiAgICBSZWNvZ25pemUgemZzIGZpbGUgc3lzdGVtcwoKY29tbWl0IGFiNDM3MGJhZjVjY2MxNDZmOGQxYzgzOWJiMGY0MTllZTM3ZTcxYzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDIgMjE6MjE6MjUgMjAxMyArMDIwMAoKICAgIFBhdGNoIGExMjYxIChCaWxsIEZlbm5lcik6IEZpeCBjcmFzaCB3aGVuIG1pYi1pbmRleGVzIGFyZSBub3QgYWxsIHJlYWRhYmxlCgpjb21taXQgYzZjYWEzMDA3ZjYwZjZjZGVhYTEzNDE1Mjc1ODY0NWE3M2E3ZmU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMiAxOTozOToxNCAyMDEzICswMjAwCgogICAgc25tcG5ldHN0YXQ6IFByb3BlciB0ZXN0cyBmb3IgdjIvdjMgZXhjZXB0aW9uIHJlc3VsdHMgKEJ1ZyBhMjQ3NykKCmNvbW1pdCAzOTQyMGJkNDBiN2ExYmE3MjBhOWNiYjkyMjY0ZDNmOWNjMGE3ZTJmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAyMSAyMjowODo0MSAyMDEzICswMjAwCgogICAgUEFUQ0ggYTEyNjA6IFN1cHBvcnQgbXVsdGktY3B1IHVzYWdlIGZvciBGcmVlL05ldC9PcGVuLUJTRC4KICAgIFRoYW5rcyB0byBQYWJsbyBDYXJib25pIGZvciBmaXJzdCBzdGFiIGF0IHRoaXMuCgpjb21taXQgNjIzMDVjZDAyOGQ4YWJmNDMwMTIxZTkwMDhhY2M4ZjBkMTg3MWUxYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMjEgMjI6MDg6NDEgMjAxMyArMDIwMAoKICAgIFBBVENIIGExMjYwOiBTdXBwb3J0IG11bHRpLWNwdSB1c2FnZSBmb3IgRnJlZS9OZXQvT3Blbi1CU0QuCiAgICBUaGFua3MgdG8gUGFibG8gQ2FyYm9uaSBmb3IgZmlyc3Qgc3RhYiBhdCB0aGlzLgoKY29tbWl0IGNjMmZlNmJkZTZhM2MyOGIzYzFhZDE2NWM5YmEzZmMxZDU4M2MyNTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDI1IDA4OjIzOjQzIDIwMTMgKzAyMDAKCiAgICBJUC1NSUI6IEZpeCBEb3h5Z2VuIGhlYWRlciBvZiBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4oKQoKY29tbWl0IDk2MzAyYWY3ZmMzMTA4YzIwODIyNzQzMmYwZjBiNzVmM2U3YjkwNmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgQXVnIDI4IDEwOjU5OjA1IDIwMTMgKzAyMDAKCiAgICBDb3JyZWN0IGNvbnZlcnNpb24gZmFjdG9yIGZyb20gbWljcm9zZWNvbmRzIHRvIGNlbnRpc2Vjb25kcy4KCmNvbW1pdCBlOGNmNzY2ZTA4MzgzNGFmN2ZkZmVkODc3ZGJlODgxMGJmMDBhNGVhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxNzoxMSAyMDEzICswMjAwCgogICAgRml4IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbiB0byB0YWtlIGFuIGFyZ3VtZW50IGluIG5ldHdvcmsgYnl0ZSBvcmRlciBhcyBkb2t1bWVudGV0Cgpjb21taXQgYTBjNTlhM2I0NThlOGE4ZGZiMDU5YTYyNzkyZDI1YTRjNWM5ZmM5ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTkgMjI6MTQ6MTUgMjAxMyArMDIwMAoKICAgIEZpeCBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4gdG8gdGFrZSBhbiBhcmd1bWVudCBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgYXMgZG9rdW1lbnRldAoKY29tbWl0IDY2YjliZmJhNGVhZTg0OTQ0YWJmNGU2ZDA3NDg5NGFjZDA1MTNjNmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE5IDIyOjEyOjU3IDIwMTMgKzAyMDAKCiAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKCmNvbW1pdCBlYzk2YjM1ZDUwNjBjMDliOWY1M2Q0ZGVjNzNmYjc5NjVjMmFjMTQ1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxMTozNiAyMDEzICswMjAwCgogICAgRml4IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbiB0byB0YWtlIGFuIGFyZ3VtZW50IGluIG5ldHdvcmsgYnl0ZSBvcmRlciBhcyBkb2t1bWVudGV0Cgpjb21taXQgYjI3YjQ3YjU3OTg0NjllOWFiNWJkNGI1MWFjMzlkNDNmY2Q5NTYwOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBdWcgMTcgMTA6MTI6MTQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2Ugc3VyZSBUZXN0OjpIYXJuZXNzIGlzIG9mIGF0IGxlYXN0IHZlcnNpb24gMS4yMQogICAgCiAgICBUZXN0OjpIYXJuZXNzIDEuMjEgaXMgdGhlIGZpcnN0IHZlcnNpb24gdGhhdCBpbXBsZW1lbnRzIFRBUCB2MTIgd2hpY2ggYWxsb3dzCiAgICBwdXR0aW5nIHRoZSBoZWFkZXIgKDEuLk4pIGFmdGVyIHRoZSB0ZXN0cyBhbmQgc2luY2Ugb3VyIHRlc3RzIHV0aWxpemUgdGhhdAogICAgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0IHJ1bm5lciBzdXBwb3J0cyBpdC4KCmNvbW1pdCAxNGY4ZDRhZDZmMDZkMDlkODcwOTZkZDY4MTM3YTEyNWEwMzljNTYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyOSAxNzo0Mjo1NCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogQUlYOiBNYWtlIHVkcC1taWIgYnVpbGQKCmNvbW1pdCAzOGQ3N2M3YzIwYTNlNzk3OWMwOWM1MTQ0Zjg2OTM0ZWQ0NjU0MGRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyOSAxNzozOTozOCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogQUlYOiBNYWtlIHRjcC1taWIgYnVpbGQKCmNvbW1pdCA1OGZkMjNiNzExMGM5M2VlNDk2ZmZhZmU4Njg1MzljMmFmODU0M2JkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAxNiAxMDozOTowMyAyMDEzICswMjAwCgogICAgV2luMzI6IEJ1aWxkIGZpeDogRXhwb3J0IHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSBhbmQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKQoKY29tbWl0IDBhYjljZDE2NTVkNDZmOTY4ZGMxMmJkNjcxNGFjMTdiOWJjZTVlNzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDE2IDA4OjI4OjA4IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYjogQXZvaWQgdHJpZ2dlcmluZyBhbiBhc3NlcnQgc3RhdGVtZW50IGluIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCkKICAgIAogICAgVGhlIGNhY2hlIHRpbWVvdXQgZm9yIHNubXAtdXNtLWRoLW9iamVjdHMtbWliIGlzIC0xLiBBbnkgY2FjaGUgdGltZW91dAogICAgdmFsdWUgPCAwIGRpc2FibGVzIGNhY2hpbmcuIEhvd2V2ZXIsIHN0cmljdGx5IG5lZ2F0aXZlIHZhbHVlcyB0cmlnZ2VyCiAgICB0aGUgYXNzZXJ0IHN0YXRlbWVudCBpbiBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpLiBBdm9pZCB0cmlnZ2VyaW5nIHRoYXQKICAgIGFzc2VydCBzdGF0ZW1lbnQuCgpjb21taXQgMWZhNTg0YjIyMmM1NjcyNDM3OGY1Yzg1OTkzZWVlZTY1MTUyNjBhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgMTYgMTA6MDI6NDcgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBORVRTTk1QX0ZEX1NFVF9CWVRFUygpCiAgICAKICAgIFRoaXMgcGF0Y2ggYXZvaWRzIHRoYXQgdW5pdCB0ZXN0IFQwMDlsYXJnZV9mZF9zZXRfY2xpYiBjcmFzaGVzIG9uIEFJWC4KCmNvbW1pdCA5NWFjMTkwYjUyNmRiYTUyMDU2Mzc0MTFhODkyYjUyYjllZDZiOTRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1bCAyMSAxNzoxNjo0MiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogQlVHOiAyNDc2OiBzbm1wZCBmYWlscyB0byBzdGFydCBvbiBBSVgKICAgIAogICAgT24gYW4gQUlYIHN5c3RlbSB0aGVyZSBpcyBubyA8a3ZtLmg+IGhlYWRlciBmaWxlIG5vciBkbyB0aGUgL2Rldi9kbWVtCiAgICBvciAvZGV2L2RydW0gZGV2aWNlcyBleGlzdCBhbmQgaGVuY2UgRE1FTV9MT0MgaXMgbm90IGRlZmluZWQuIEF2b2lkCiAgICB0aGF0IGluaXRfa21lbSgpIGZhaWxzIGluIHRoYXQgY2FzZS4KCmNvbW1pdCA1MDQ4MWI3NjllMjlmYzVjZTZiMWU0MGNlNTY4MTg1YmIwODk4NDU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAxNiAwNzoyMjowMiAyMDEzICswMjAwCgogICAgc25tcGQ6IFJlZmFjdG9yIGluaXRfa21lbSgpCiAgICAKICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsaXR5LgoKY29tbWl0IGNkN2VmN2JlMzkxMDM1ZDlkZjA1ZWRjNmFjOWU2ZjM1MTliNDZmOGIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgQXVnIDE0IDIzOjM4OjIxIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCZSBtb3JlIHJvYnVzdCBpZiBjbG9ja19nZXR0aW1lIGZhaWxzLgogICAgCiAgICBPbiBSSEVMMyBpdCBzZWVtcyBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgKSBhbHdheXMgcmV0dXJucyBFSU5WQUwgYnV0CiAgICBpdCB3b3JrcyBmb3IgdGhlIG90aGVyIGNsb2Nrcy4KICAgIAogICAgRnVydGhlciwgdGhlIG9sZCBjb2RlIHdoaWNoIHJldHVybmVkIGEgY29uc3RhbnQgeyAwLCAwIH0gY2F1c2VkIHRoZSB0ZXN0IHN1aXRlCiAgICB0byBnZXQgc3R1Y2sgaW4gYSBsb29wIGlmIG5vIHJlc3BvbnNlIGFycml2ZWQgLSB0aHVzIHRoaXMgY29kZSBoYXZlIHRoZQogICAgYWR2YW50YWdlIG9mIHdvcmtpbmcgbGVzcyBiYWQuCgpjb21taXQgOWQ3MWZlZWEyNzFmOTFjYzliN2FkZWU2NjEzYWYxOWViYTdlYzZjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDE0IDE1OjU2OjU2IDIwMTMgKzAyMDAKCiAgICBGaXhlZCByZXR1cm4gdmFsdWUgb24gZXJyb3IuCgpjb21taXQgOTYyMWY0Y2RjNWExOWNlZTRlMTFiZjI3MDk0YWJmMzMzOWRkYzMwZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDE0IDE1OjQ4OjM5IDIwMTMgKzAyMDAKCiAgICBSZW1vdmluZyB1c2VsZXNzIGNoZWNrLCBlbnRyeS0+ZF9uYW1lIGlzIGFycmF5IGFuZCBjYW4ndCBiZSBOVUxMLgoKY29tbWl0IGU0MWMyZjU3NGMyNWQ4ZGQyNzNmMjQwNmVlZWFjMTliYzJhZTE2ZGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxMiAxNDozMDo1MSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgcGFyc2luZyBvZiBzZXF1ZW5jZXMuCiAgICAKICAgIERvbid0IG92ZXJ3cml0ZSAnZGF0YScgdmFyaWFibGUsIGl0J3MgdXNlZCB3aGVuIHBhcnNpbmcgYnVsayByZXNwb25zZXMuCgpjb21taXQgMzkwMzAzMDU5ZmJkOThiMWVlNzYyMWRkZDRhZDRjMTFkMTAwZmZmOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKdWwgMjggMjE6Mjg6MTQgMjAxMyArMDIwMAoKICAgIFJldmVydCA3OGRhYzZlMzc5NDNkMWFkOTk4NDE4OTg4MDZlYTYwYjBlZWRlNjM2IGFuZCByZXNvbHZlIGEyNDc4IGluIGEgd2F5IHRoYXQgYXZvaWRzIHRydW5jYXRpbmcgc25tcFRhcmdldEFkZHJUaW1lb3V0LgoKY29tbWl0IGU1OWQ1ZGI2ZDZlNzJkMTM0NTkxYmJhYWE2ZmFhNTliMjkzMzgxOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSnVsIDI4IDIxOjE3OjU4IDIwMTMgKzAyMDAKCiAgICBDaGVjayB0aGF0IHRoZSB0aW1lb3V0IHZhbHVlIGlzIGluIHJhbmdlLgoKY29tbWl0IDRlY2IzNmE3YWJhM2FiMGVmYTg5MzUxNjUwY2UwNTNlYmNmNDhiNmEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gSnVsIDI5IDIxOjU0OjI1IDIwMTMgKzAyMDAKCiAgICBDaGVjayB0aGF0IHNubXBUYXJnZXRBZGRyVGltZW91dCBoYW5kbGVzIHNldHRpbmcgcHJvcGVybHkKCmNvbW1pdCAxYWU4NWI2NzJlYjA3ZDBjMDFhNTRlMDZkM2RkZDRmNGRjNThmZjJlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEp1bCAyOCAxMDo0MzoxNyAyMDEzICswMjAwCgogICAgQWRkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igc25tcFRhcmdldEFkZHIKICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDZlMTNlYmI4NWU0NDA0OTg0NmVhZTdmNjBlMDUwMzc1ZjlhY2Y1OGUpCiAgICBTYW5pdGl6ZWQKCmNvbW1pdCA2YTVhMDQ3Y2JjMTFkNjJkZjA0YTk2NjY5MDhmNzY1MmIyMTdjMWFhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEF1ZyAxIDIzOjE5OjM0IDIwMTMgKzAyMDAKCiAgICBSZWluc3RhdGUgdGhlIGNoZWNrIGZvciBjcmVhdGlvbiBvZiBlbnRyaWVzIHdpdGggZW1iZWRkZWQgTlVMJ3MgaW4gdGhlIG5hbWUKCmNvbW1pdCA1MzNiYjgwYTVhNDMwNWIzNWRiYjc5NzQ0NGJkNTk2ZDdkNTk5NTFjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEF1ZyAxIDIyOjU1OjQ1IDIwMTMgKzAyMDAKCiAgICBTYW5pdGl6ZS4KICAgIAogICAgQ2hhbmdlIHRvIHVzZSBTTk1QdjMgc2luY2UgdGhhdCBpcyB3cml0ZWFibGUgaW4gVjUtNi1wYXRjaGVzLgogICAgQ2hhbmdlIHRvIGNoZWNrIHZhbHVlcyBvbiBpbmRleCAnQScKICAgIFJlbW92ZSB0aGUgY2hlY2sgZm9yIGVtYmVkZGVkIE5VTCBpbiBpbmRpY2VzLgoKY29tbWl0IGIyNGJmNDYyMjBhYWFmNTc5NGU5NDBmNWQ0NjczZGI3MTMzOWY5YzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgSnVsIDIwIDEyOjM5OjU5IDIwMTMgKzAyMDAKCiAgICBBZGQgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3MWYzMTljZDIzNDQ1YzZlMjJhNjBhMWE4NWYzMWMyYjY5MDRiM2ZiKQoKY29tbWl0IDZlMTNlYmI4NWU0NDA0OTg0NmVhZTdmNjBlMDUwMzc1ZjlhY2Y1OGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSnVsIDI4IDEwOjQzOjE3IDIwMTMgKzAyMDAKCiAgICBBZGQgc29tZSBtb3JlIHRlc3RzIGZvciBzbm1wVGFyZ2V0QWRkcgoKY29tbWl0IDA3NjlmNDIwZDhmNDI3OTkzYjEzNDBmZGI3ZWNiM2JjMDQ5ZDNmNmMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDI1IDA4OjE1OjMyIDIwMTMgKzAyMDAKCiAgICBGaXJzdCBzaG90IG9uIGhhbmRsaW5nIGNlcnRpZmljYXRlcyB3aXRoIGVtYmVkZGVkIG51bCBjaGFyYWN0ZXJzCgpjb21taXQgZDgzM2IwYzhiZTUwOWJmYTNiODAwMWFlNmY1NTIyODljZTk1NjdkMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBKdWwgMjAgMTI6NDE6NDAgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBOVUwgY2hhcmFjdGVycyBpbiB0aGUgaW5kaWNlcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQoKY29tbWl0IDcxZjMxOWNkMjM0NDVjNmUyMmE2MGExYTg1ZjMxYzJiNjkwNGIzZmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgSnVsIDIwIDEyOjM5OjU5IDIwMTMgKzAyMDAKCiAgICBBZGQgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCgpjb21taXQgZWEzOWUzNjc2NjY1YjdlOGNjNWRmZWI1YmJiY2QwYWQ0MzRhZDkxMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgMTggMDE6MzY6MjYgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIGRhdGEgYXJndW1lbnQgdG8gcmVhZF9jb25maWdfc2F2ZV9vY3RldF9zdHJpbmcgYWNjZXB0IGNvbnN0YW50IHZhbHVlcwoKY29tbWl0IDc4ZGFjNmUzNzk0M2QxYWQ5OTg0MTg5ODgwNmVhNjBiMGVlZGU2MzYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIyIDEyOjM5OjAwIDIwMTMgLTA3MDAKCiAgICBmaXggYnVnIG51bWJlciAjYTI0Nzg6IGZpeCBtaWIgcmVwcmVzZW50YXRpb24gb2YgdGltZW91dCB2YWx1ZXMKCmNvbW1pdCBhN2UzYmM4ZGRiZTM4N2ViZjZmM2Y2YjA1MGUyOTkyOTU2YmQyZTYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDoxNDo0NyAyMDEzICswMjAwCgogICAgRml4ZXMgZm9yIG1lbW9yeSBzdGF0aXN0aWNzIGZyb20gKkJTRAoKY29tbWl0IDlkYmUxMjQwM2NlYWFmZTYxN2Y3ZDQ5OTkzMzE2YTI0OWZjYmI5OWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjEzOjM2IDIwMTMgKzAyMDAKCiAgICBGaXggYSBtaXNzaW5nIG5ld2ZpbGUgaW4gYSBkZWJ1ZyBtZXNzYWdlCgpjb21taXQgMDQxZGVlZGY4MTUzN2JjNjE2OTI5ODc1M2Y5ZGNhM2Y2Y2Q2MWEzNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MTI6MTIgMjAxMyArMDIwMAoKICAgIE1ha2Ugc3VyZSB3ZSBkb24ndCBtYWtlIElQdjYgbWFzayBsb25nZXIgdGhlbiAxMjgKCmNvbW1pdCBjNjdjNzg5NDAzMzlmYWVhYjQyYjFiMWEwYTZiZTZjZDZkZmUyZTIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDowNjozMSAyMDEzICswMjAwCgogICAgSW1wbGFtZW50IGlwQWRkcmVzc1RhYmxlIGZvciAqQlNECgpjb21taXQgYjE4MWU0M2E2ZDFmNTY3YmZkMTA3MTdhNzdkZjE4NDhlM2JiMGY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MDU6MDggMjAxMyArMDIwMAoKICAgIE1hcmsgT1MgdGhyZWFkcyBhcyBzdWNoLgoKY29tbWl0IGUzNmE1Y2M1ZjIwMjcyYWZmZjQyMjhlN2U0MzkxZGQ1ZTZjMDYzYjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjAzOjM2IDIwMTMgKzAyMDAKCiAgICBGaWMgc29tZSBtYW4gcGFnZSBjcm9zcyByZWZlcmVuY2VzCgpjb21taXQgZWNmODY4MmQ4NjRkMmYwODUyNTA3ODU0Mzg1OGQzNjFiM2FkY2E1YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDEwIDEwOjQ3OjMzIDIwMTMgKzAyMDAKCiAgICBMb3dlciBpbXBvcnRhbmNlIG9mIGRlYnVnZ2luZyBtZXNzYWdlcywgdGhleSBzcGFtIHN5c2xvZy4KCmNvbW1pdCBlZjk2MzA2M2RlNDk0ODViZDkxYzEyOWUwNTNmMDZkMDc0NDQ4M2UxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgNCAxMTozNDoyNSAyMDEzICswMjAwCgogICAgRml4ZWQgc2l6ZSBvZiBuZXRsaW5rIG1lc3NhZ2UuCiAgICAKICAgIFByZXZlbnRpbmcga2VybmVsIHRvIGxvZyAnbmV0bGluazogMTIgYnl0ZXMgbGVmdG92ZXIgYWZ0ZXIgcGFyc2luZyBhdHRyaWJ1dGVzLicgbWVzc2FnZS4KCmNvbW1pdCAyZTBkMTA4NzMxM2IwZmEwODNlMmIxY2E0ODk1ZmJmMjQ4ZDYzY2E5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCA0IDIyOjA0OjEyIDIwMTMgKzAyMDAKCiAgICBSdW4gYXV0b3JlY29uZgoKY29tbWl0IGM3ZmJhNzhlMTIyNTI1NGEwZjY1NjA1ZjM4MWFlZGQ3ZDhhMjEyY2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDQgMjE6NDc6MDkgMjAxMyArMDIwMAoKICAgIFJ1biBhdXRvcmVjb25mCgpjb21taXQgNTcxYmQ0MDdmOGJlOWM5NGNjNTUyZDRkM2I3ZjViNmIwOTg0ZDIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgNCAyMTozOTo1OSAyMDEzICswMjAwCgogICAgUnVuIGF1dG9yZWNvbmYKCmNvbW1pdCA4YWE1MGVkYmE3YTJkOTY2ZDhkZmM3ZmY0ZDdjNzhlZmRkZThjNWJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCA0IDA4OjUzOjU2IDIwMTMgKzAyMDAKCiAgICBVc2UgQUNfTElOS19JRkVMU0UgaW5zdGVhZCBvZiBBQ19UUllfTElOSyBhcyB0aGUgbGF0dGVyIGlzIGRlcHJlY2F0ZWQKCmNvbW1pdCA1OWM2YWUzNDYyNWVlMDRhY2UzODI0ZWM0MDQ2MTNlMGI1MWRjMWIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEp1bCAyIDE3OjQwOjU0IDIwMTMgKzAyMDAKCiAgICBVc2UgdGhlIGNwcCBhbmQgbGlua2VyIGZsYWdzIGZyb20gbXlzcWxfY29uZmlnIHdoZW4gY2hlY2tpbmcgZm9yIG15c3FsIGhlYWRlcnMuCgpjb21taXQgZjg5Y2ZjYWZkYWUyMWZhYjUwYTcwYmRkZjE1OGZmZDllNGUwMDFkMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBKdWwgMiAxNzozOToyNSAyMDEzICswMjAwCgogICAgVXNlIHRoZSBvdXRwdXQgb2YgbXlzcWxfY29uZmlnIC0taW5jbHVkZSBpbnN0cmVhZCBvZiB0aGUgb3V0cHV0IG9mIG15c3FsX2NvbmZpZyAtLWNmbGFncyBpdG8gZmluZCBpbmNsdWRlIGZpbGVzLgogICAgCiAgICBBY2NvcmRpbmcgdG8gdGhlIG15c3FsX2NvbmZpZyBtYW4gcGFnZSwgLS1pbmNsdWRlIGlzIHJlY29tbWVuZGVkIGZvciBncmVhdGVyCiAgICBwb3J0YWJpbGl0eSBzaW5jZSAtLWNmbGFncyBtaWdodCBjb250YWluIGNvbXBpbGVyIGZsYWdzIGZvciB0aGUgY29tcGlsZXIgdGhhdAogICAgd2FzIHVzZWQgdG8gYnVpbGQgbGlibXlzcWxjbGllbnQgd2hpY2ggbWlnaHQgY2xhc2ggd2l0aCB0aGUgb25lcyB1c2VkIHRvCiAgICBidWlsZCB0aGUgYXBwbGljYXRpb24uCgpjb21taXQgNjhhNmExY2E2ZGM0Y2E4OTAxYmFjYWI1OTgzMjZhZjczYjQ0NDY1NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBKdWwgMiAxNzozMDoyOSAyMDEzICswMjAwCgogICAgT25seSBjaGVjayBmb3IgbXlzcWwvbXlzcWwuaCBvbmNlLiBSZW1vdmUgSEFWRV9NWVNRTF9NWVNRTF9IIHNpbmNlIG5vdGhpbmcgdXNlcyBpdC4KCmNvbW1pdCBhZDg3YmI2MDhiMzA1NTY3YTNjNWVhZjA0NmI3Yzk4ZWEzZTRiZGQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgNCAxMTozMDowNCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDI0NzI6IGZyb20gU3VuaWw6IGRvbid0IHVzZSBIQktUIGFzIGhlYXJ0YmVhdCBpbnRlcnZhbCBpbiBTQ1RQLU1JQjo6c2N0cEFzc29jVGFibGUuCgpjb21taXQgNGM0YTQyODFmZDViMmM2MTU2YzUxMjBmOWEyZThiNzA4ZjQ2NmNjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDQgMTE6MDg6NDggMjAxMyArMDIwMAoKICAgIGluY2x1ZGVEaXIgaXMgbm90IHByZWRpY3RhYmxlIHdpdGggcmVsYXRpdmUgcGF0aHMKCmNvbW1pdCA3OWU4ZGQyYTM3MmEyMGVlOTdkZTFjNzEwN2I1OWFkNGFhZjg5YTM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgNCAxMDo0NzoyOSAyMDEzICswMjAwCgogICAgVXBkYXRlIGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbiB3aXRoIGluY2x1ZGVGaWxlIGFuZCBpbmNsdWRlRGlyLgoKY29tbWl0IGUwZTgwNDQ4MmJlYzcwZjRjNDE2YTM1ZmNiMzIzYTQxNjk5NjVjNWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSnVsIDMgMTU6MDg6MTQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IEJVRzogMjQ3MDogQWNjZXB0IDY1NTM1IGFzIGEgdmFsaWQgSVB2NiBwb3J0IG51bWJlcgoKY29tbWl0IGRkMzMyYTAzNWU4NTNjNzJhODMyNzQ4NDY5YmFiN2I4ODJlMjdiN2MKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDIgMDc6MDA6NTEgMjAxMyArMDIwMAoKICAgIEJVRyBhIzI0NjM6IEZpeCBjb25maWd1cmUgdG8gcmVzcGVjdCBkYXRhIGZyb20gbXlzcWxfY29uZmlnLgoKY29tbWl0IDQwOGNjOTczMmMzNDYxMTFmYzFmZGEyM2UxMzZkNjA4ODNjZGI3ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAxIDE0OjI1OjQxIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBweXRob246IGNvcnJlY3RseSByZXBvcnQgZXJyb3Igd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBPSUQuCgpjb21taXQgOWEyYmZjOGY5NWQ2ZTkyNmRjYmYxNmZmNDRiNTNiMjdlMzhjODQzNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDEgMTM6NTQ6MzggMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogRml4ZWQgcmV0dXJuaW5nIG9mIGVtcHR5IHN0cmluZ3MuCiAgICAKICAgIFZhcmJpbmQgdHlwZSAoU05NUF9OT1NVQ0hPQkpFQ1QgZXRjLikgc2hvdWxkIGJlIHVzZWQgdG8gZGV0ZWN0IGVycm9ycyBpbnN0ZWFkIG9mIGxlbmd0aCBvZiB0aGUgdmFyaWFibGUgLSBpdCBjYW4gYmUgZW1wdHkgc3RyaW5nLgoKY29tbWl0IDFhMGYwNzU3NGE4MGQxZDZhNjc4OGNhZWIzOTFhMWQyZmVmOTU3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1biAyOCAxMDozNzo0NiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNob3cgTGludXgga2VybmVsIHRocmVhZHMgaW4gaHJTV1J1blRhYmxlLgoKY29tbWl0IDI2NTljMGY2YmQ4NmYwMTcxODY5ZDM0ZmY4YTdkNDgxOTRlYTRiMzEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAyMSAwOToxMzo0MSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZGVkIGJ0cmZzIHN1cHBvcnQgdG8gaHJGU1RhYmxlCgpjb21taXQgYTg0MDM5ZDBhMWQ2ZjU1MGI0NzNkMjk1OTIxMDEwZDgwZTE4ZDgzZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdW4gMjUgMTQ6NTU6MjYgMjAxMyArMDIwMAoKICAgIHNubXBfc3RyY2F0OiBkb250IHRlc3QgKmJ1ZiBiZWZvcmUgd2UgaGF2ZSB0cmllZCByZWFsbG9jCgpjb21taXQgNTU1M2VmNDM2MmQ1MjRhMDg4YjUxOWUxMzU1NjE1OGU1ZDYyNWVjNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKdW4gMyAwMjo0ODowNiAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IHByaW50ZigiJXMiLCBOVUxMKSBhcyB0aGF0IGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIuCgpjb21taXQgODk0MTZlNzlmNWM1MDU2OGU5OWMwN2ZhYjA2YTlhZTlmOTc2YmJlZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBKdW4gMjQgMjI6MjI6MDMgMjAxMyArMDIwMAoKICAgIEJVRzogQTI0NDE6IENvcnJlY3QgY29tbWVudAoKY29tbWl0IDFhM2FlNjQ3N2I4MTYzYTFiNDNiODM0YWJiMzBiMWYwMzE0NWFiNjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDIwOjI3OjM0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBIT1NULVJFU09VUkNFUy1NSUIsIGhyU1dSdW4gdGFibGU6IFBhcnNlIC9wcm9jLzxwaWQ+L3N0YXQgY29ycmVjdGx5IG9uIExpbnV4CiAgICAKICAgIFRoaXMgaXNzdWUgd2FzIHJlcG9ydGVkIGJ5IFZpbmNlbnQgQmVybmF0IDx2aW5jZW50LmJlcm5hdEBkYWlseW1vdGlvbi5jb20+LgogICAgU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1Ny8uCgpjb21taXQgZjkyZmZlOTE3YTMwMGM0MWViZTA3ZTI0YzY0MTg4NTVlNzU5ZjkzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTk6Mzc6MDMgMjAxMyArMDIwMAoKICAgIHNubXB0cmFwZDogRml4IGEgZG91YmxlIGZyZWUgaW4gYW4gZXJyb3IgcGF0aAogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgYzVmM2ExZDhiYjU4MDQ3OTliNjAyZDI3NjliMDMxZDZmYWY1ZjBlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTc6NTE6NDMgMjAxMyArMDIwMAoKICAgIHNubXBsaWI6IGhleF90b19iaW5hcnkyKCk6IFJldHVybiAtMSBpZiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlscwoKY29tbWl0IGY4ZjA4ZTFkNmQzZWM4MTk0ZmFiZDZhYjAwMmFiOTE3YWZiYTkxYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE3OjEzOjAxIDIwMTMgKzAyMDAKCiAgICBzbm1wbGliOiBTaW1wbGlmeSB0aGUgY29kZSBmb3IgZGVsZXRpbmcgYSByZXF1ZXN0IGZyb20gdGhlIHJlcXVlc3QgbGlzdAogICAgCiAgICBUaGUgZ29hbCBpcyAoaG9wZWZ1bGx5KSB0aGF0IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgY29uZnVzZQogICAgQ292ZXJpdHkgYW55bW9yZS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgZWY2ZDVjN2EwMzEzMjQ3YTZjOTQ3MzI2MTc3N2U5NjNmN2E0OTUyOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6NDg6MjIgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IHNubXBfc3RyY2F0KCk6IENoZWNrICpidWYgYmVmb3JlIHVzaW5nIGl0CiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCAyNTY2YjgzZWJlYjBlMzRlZWE5MDc5MjhjNTRjMmI0ZTc0ZmYzN2Y4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDoyMzozMyAyMDEzICswMjAwCgogICAgaHJTV0luc3RhbGxlZCB0YWJsZTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZSAoMi8yKQogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgNDljZmU0ZDg0MGM1OGUxMjAyZmEyNzFmYmU3NjBiZDc1MjZhODNhOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjM6MDMgMjAxMyArMDIwMAoKICAgIGhyU1dJbnN0YWxsZWQgdGFibGU6IENoZWNrIHN0YXQoKSByZXR1cm4gdmFsdWUgKDEvMikKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IDVkZjU0NjI2MzlmMjQzZDU5MjlmYTliYTE0ZDIwYjM3MTFmN2NhY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjIxOjE4IDIwMTMgKzAyMDAKCiAgICB1Y2Qtc25tcDogZmluZF9kZXZpY2UoKTogUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8KCmNvbW1pdCAxM2NlMTk5NmE4MmUwYjQ1OGIyNmFlMzlhYmYyMDEyZGI1OWM4YTU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDoyMDoxNSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogX2luc2VydF9uc2ZpbGUoKTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZQogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgODFhMGQ4NTkxNjNmOGQ1NDkwODUyNWI1MjI0MzI5NWQ3YjQxNDU1MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MDc6MzcgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGJhZCBmcmVlKCkKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IGQzNGM4M2U5MzQyNDE5YWVlY2ZmNWZmZDdkZWFiODM5ODdkYmViY2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjAwOjM5IDIwMTMgKzAyMDAKCiAgICBldGhlcmxpa2UtbWliLCBybW9uLW1pYjogRml4IG1hbGxvYyguLi4pIDwgMCB0ZXN0cwogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgNDNjNDQwMTc2YjNlNGY5Y2U5OTVlNDgyZWM2OTc1YmEwYzg1OWJmMwpBdXRob3I6IE1pY2hhZWwgU2hjd2FyY3ogPE1pY2hhZWwuU2hjd2FyY3pAY29tcGFzcy1lb3MuY29tPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTI6NDY6MDQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRml4IGEgZG91YmxlIGZyZWUgYXQgZXhpdAogICAgCiAgICBBIHF1b3RlIGZyb20gYSBtZXNzYWdlIGZyb20gTWljaGFlbCBTaGN3YXJjejoKICAgIAogICAgSSBhbSBydW5uaW5nIG5ldC1zbm1wIDUuNy4yIGFuZCBpdCBsb29rcyBsaWtlIHRoZXJlIGlzIGEgZG91YmxlCiAgICBmcmVlIHByb2JsZW0gaW4gc25tcHRyYXBkLCBpbiBmcmVlX3RyYXBkX2FkZHJlc3MoKSBhbmQKICAgIHBhcnNlX3RyYXBkX2FkZHJlc3MoKS4gSSBnZXQgYSBTSUdBQk9SVCBvbiB0aGUgc2Vjb25kIFNJR0hVUAogICAgKGxvb2tzIGxpa2UgaXQgZG9lcyBhIGRvdWJsZSBmcmVlIG9uIHRoZSBmaXJzdCBTSUdIVVAgYW5kIG9uCiAgICB0aGUgc2Vjb25kIGl0IGNyYXNoZXMpLgogICAgCiAgICBJIGhhdmUgdGhpcyBzbm1wdHJhcGQuY29uZiBjb25maWd1cmF0aW9uOgogICAgICBzbm1wVHJhcGRBZGRyIHVkcDoxNjIsdWRwNjoxNjIKICAgICAgYXV0aENvbW11bml0eSBsb2csZXhlY3V0ZSxuZXQgcHVibGljCiAgICAKICAgIEFuZCB0aGlzIGlzIHRoZSBiYWNrLXRyYWNlIGZyb20gZ2RiOgogICAgKioqIGdsaWJjIGRldGVjdGVkICoqKiAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZDogZnJlZSgpOiBpbnZhbGlkIG5leHQgc2l6ZSAoZmFzdCk6IDB4MDgwYzE3YTggKioqCiAgICA9PT09PT09IEJhY2t0cmFjZTogPT09PT09PT09CiAgICAvbGliL2xpYmMuc28uNlsweGY3MjA0ODQ1XQogICAgL2xpYi9saWJjLnNvLjYoY2ZyZWUrMHg5YylbMHhmNzIwNjZlY10KICAgIC9vcHQvY29tcGFzcy9iaW4vc25tcHRyYXBkKGZyZWVfdHJhcGRfYWRkcmVzcysweDJhKVsweDgwNGE2YmFdCiAgICAvdXNyL2xpYi9saWJuZXRzbm1wLnNvLjMwKGZyZWVfY29uZmlnKzB4MzIpWzB4Zjc0YWU0YzJdCiAgICAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZFsweDgwNGE1NTddCiAgICAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZFsweDgwNGJmYTldCiAgICAvbGliL2xpYmMuc28uNihfX2xpYmNfc3RhcnRfbWFpbisweGU1KVsweGY3MWIwNDU1XQogICAgCiAgICBJIGhhdmUgYSBwYXRjaCB0aGF0IGZpeGVzIHRoaXMgaXNzdWUsIGhlcmUgaXMgdGhlIGRpZmY6CiAgICBAQCAtNDQ2LDYgKzQ0Niw3IEBAIGZyZWVfdHJhcGRfYWRkcmVzcyh2b2lkKQogICAgewogICAgICAgICBpZiAoZGVmYXVsdF9wb3J0ICE9IGRkZWZhdWx0X3BvcnQpIHsKICAgICAgICAgICAgZnJlZShkZWZhdWx0X3BvcnQpOwogICAgKyAgICAgICBkZWZhdWx0X3BvcnQgPSBkZGVmYXVsdF9wb3J0OwogICAgICAgICB9CiAgICB9Cgpjb21taXQgMmRiNTQ4NWZjMWNjY2UzOWVmYTY5YTM3N2JiOGQ2ZjYyMzFlYjBiMgpBdXRob3I6IEVyaWMgUy4gUmF5bW9uZCA8ZXNyQHRoeXJzdXMuY29tPgpEYXRlOiAgIEZyaSBKdW4gMjEgMTA6NDc6MzIgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IGZyb20gIkVyaWMgUy4gUmF5bW9uZCI6IENvcnJlY3QgbWFuIHBhZ2UgbWFya3VwIHByb2JsZW0KICAgIEFtYmlndW91cyBvciBpbnZhbGlkIGJhY2tzbGFzaC4gIFRoaXMgZG9lc24ndCBjYXVzZSBncm9mZiBhIHByb2JsZW0uCiAgICBidXQgaXQgY29uZnVzZXMgZG9jbGlmdGVyIGFuZCBtYXkgY29uZnVzZSBvbGRlciB0cm9mZiBpbXBsZW1lbnRhdGlvbnMuCgpjb21taXQgZDY3NzE0NjRmMTZkYzZmZTY0ZGQyNGMwOGFmNGJlNzI1ODg1YWRhZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBKdW4gMTggMjM6NDU6MjggMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IGFwcHM6IFN0b3AgYWdlbnR4dHJhcCBmcm9tIGFjY2Vzc2luZyB0aGUgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uCiAgICBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IG1vYW5pbmcgYWJvdXQgbm90IGJlZWluZyBhbGxvd2VkIHRvIHdyaXRlIHRob3NlCiAgICBmaWxlcyBkdWUgdG8gYmFkIHBlcm1pc3Npb25zLgoKY29tbWl0IDE0YWM1ZDVkMmM0ZDlmM2E3OTlkNDAxY2MxZTQwM2E4YTI5MmQ0MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEyIDIyOjM3OjIzIDIwMTMgKzAyMDAKCiAgICBEYXJ3aW4gZml4ZXM6IFVEUCBhbmQgVENQIHRhYmxlcywgbWVtb3J5IGRhdGEsIGFuZCBzb21lIGVycm9yIGNoZWNraW5nLgoKY29tbWl0IGJhYmQzMWQxMDQ5ZTIzM2M0NTRmMWNiZDg4YmJhNzVmMmY0MDc4MWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEyIDIyOjI1OjE5IDIwMTMgKzAyMDAKCiAgICBGaXggc29tZSBtYW4gcGFnZXMgcmVmZXJlbmNlcyB0byBvdGhlciBwYWdlcwoKY29tbWl0IGJkZWZjZTA2YTFlYTFjMTQzMDgwMjcxNGZjODM3YjU1OGUxYTY3NWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEyIDIyOjIzOjU3IDIwMTMgKzAyMDAKCiAgICBVcGRhdGVkIEVOVElUWS1NSUIgaW4gcmZjIDY5MzMKCmNvbW1pdCBkZjg2M2E1MzQ4YWFiZjcxYmJjYTdiZmVmY2Y4YmViOGJiOWU3NzYyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxMiAyMjoxNzo0NiAyMDEzICswMjAwCgogICAgRml4IEJ1ZyAjMjQyNzogQ2Fubm90IHJlc29sdmUgSVB2NiBvbmx5IGhvc3RuYW1lcywgYnkgYWNjZXB0aW5nIGEgbGlzdAogICAgb2YgdHJhbnNwb3J0IGRvbWFpbnMuCgpjb21taXQgZGExZmVmMzgyNTkxZmY0NWRjOTJlYjNiOTVhNmJmZWZmOWVjZmE0ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDIxIDA5OjEzOjQxIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkZWQgYnRyZnMgc3VwcG9ydCB0byBockZTVGFibGUKCmNvbW1pdCA5MzFjODdhMDVmNWY2NjI4OTYxM2ZlZDc3YWM3ODg0NGI2MWNiNzlmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSAxNSAyMDoxODoxNCAyMDEzICswMjAwCgogICAgQlVHIDI0NTg6IEZpeCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGF1dG9fbmxpc3Qgc3RydWN0dXJlIChUaGFua3MgUnlhbiBTdGVpbm1ldHopCgpjb21taXQgOTEwNGUyYTNmMTk1NTA2YTQ3NzMzOTgzZDhjYmEzOGVkNTkyYTk4OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMTUgMjA6MTM6MDUgMjAxMyArMDIwMAoKICAgIFBBVENIIDEyNTM6IEZpeCBwYXJzaW5nIG9mIERFRlZBTCBCSVRTIChUaGFua3MgTWlrZSkKCmNvbW1pdCA4NTVlNTRlMzQ1YzU1ZWEyMmI3ZTdhYzEyYTI0OWQ3NDA5ZmJiMzA5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSAxNSAyMDoxMToyOSAyMDEzICswMjAwCgogICAgcmZjbGlzdDogYWRkIFJGQyA2OTQ1Cgpjb21taXQgMzY1MjdjZDhjY2E2NTA3MTNjODVlMDMyOGMwYzJhMWNkMDk1YzM1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXkgMTIgMTA6MDQ6MDggMjAxMyArMDIwMAoKICAgIFdpbmRvd3MsIFZpc3VhbCBTdHVkaW86IFVuYnJlYWsgY29tcGlsYXRpb24gd2l0aCB0aGUgV2luZG93cyBYUCBQbGF0Zm9ybSBTREsKICAgIAogICAgVGhpcyB3YXMgcmVwb3J0ZWQgYnkgV2ltIERldm9zCgpjb21taXQgNTE3YTU1MTIxMDJkMzM5NDg5YzlhNzBlYThkMDg3YTBlMTAwMzVhOQpBdXRob3I6IFdpbSBEZXZvcyA8V2ltLkRldm9zQG1ldWNjaS1zb2x1dGlvbnMuY29tPgpEYXRlOiAgIFN1biBNYXkgMTIgMDk6NDA6NTMgMjAxMyArMDIwMAoKICAgIFdpbmRvd3M6IFVuYnJlYWsgdGhlIFZpc3VhbCBTdHVkaW8gYnVpbGQKICAgIAogICAgInN0YXRpYyBORVRTTk1QX0lOTElORSIgdHJpZ2dlcnMgdGhlIGVycm9yIG1lc3NhZ2UgImVycm9yIEMyMTU5OiBtb3JlCiAgICB0aGFuIG9uZSBzdG9yYWdlIGNsYXNzIHNwZWNpZmllZCIsIHNvIHVzZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgaW5zdGVhZC4KCmNvbW1pdCA0ZGYwMmY5NjdkMGI5ZDE2Y2ExMmI1ODIxNWU5ODM1YmM5ZjM5MWNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE1heSA0IDE0OjU0OjQ4IDIwMTMgKzAyMDAKCiAgICBSZW1vdmUgY29tcGlsZXIgd2FybmluZyBhYm91dCBtaXNzaW5nIHByb3RvdHlwZQoKY29tbWl0IDE4ZGFmYTU4ZDgxMjE5NjFiMDU4ZDZkNDE2NzA3ZGYxZDZhMDQyYWMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTWF5IDQgMTQ6NTM6MTAgMjAxMyArMDIwMAoKICAgIFJlbW92ZSBvbmUgY29weSBvZiB0aGUgbGludXhfc3RhdGVzIGFycmF5LiBNYWtlIHRoZSB3aG9sZSB0aGluZyBjb25zdC4KCmNvbW1pdCAwMmFkODFlYTJkZTJkNDY4Nzc5NDA1N2UyZTgxMDRhNjUyMzkyNTRkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1heSAzIDA4OjA4OjAxIDIwMTMgKzAyMDAKCiAgICBSZXZlcnQgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlcyBmcm9tICdGaXggbWl4aW5nIG9mIGNvZGUgYW5kIGRlY2xhcmF0aW9ucydbMV0KICAgIGluIG9yZGVyIHRvIG5vdCB1c2UgdmFyaWFibGVzIGJlZm9yZSB0aGV5IGFyZSBzZXQgYW5kIG5vdCBpbmNyZWFzZSB0aGUKICAgIHByb2JhYmlsaXR5IGZvciBtZW1vcnkgbGVha3MuCiAgICAKICAgIDEpIHJldiBlZWZjMjVjYTY3MDVhMmQxYThmNTIxNjA3NmY0MzllMGQzZTNlZjc2Cgpjb21taXQgNGZkMDUyNWQ2YTY1YWNmZWEzZDdiNDMxYzk3ODkzZGM0NzkyN2RhOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMiAyMjo0NTo1MSAyMDEzICswMjAwCgogICAgYXV0b2NvbmYKCmNvbW1pdCA1NWRkZDgyOTVhZTY1ZTQ3ZjIyMGY0ODA3Nzk0ZmJhYzliNjlmMGZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyIDIyOjIwOjQ2IDIwMTMgKzAyMDAKCiAgICB0ZXN0aW5nOiBEb2N1bWVudCB3aHkgd2Ugc2tpcCB0ZXN0cwoKY29tbWl0IGVlZmMyNWNhNjcwNWEyZDFhOGY1MjE2MDc2ZjQzOWUwZDNlM2VmNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIgMjI6MTM6NDIgMjAxMyArMDIwMAoKICAgIEZpeCBtaXhpbmcgb2YgY29kZSBhbmQgZGVjbGFyYXRpb25zLgoKY29tbWl0IGI5NGI3MzRkZDM1M2JjZjc5M2M4YjY1YTI3M2ExMzg3YmZkMjU2ZWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIgMjI6MTI6MTEgMjAxMyArMDIwMAoKICAgIERhcndpbjogc3VwcG9ydCA2NC1iaXQgY291bnRlcnMgZm9yIGRpc2tpbyB0YWJsZQoKY29tbWl0IDhkODQxYzFkOWIxYjRlZWMyNjRkNjgyYWMxMjYwMzJhYTA4ZjJlODIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIgMjI6MDk6MTcgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IFN1cHBvcnQgbmV3IE1JQiBzdHJ1Y3R1cmVzIGFuZCBNRkQgcmV3cml0ZXMgdW5kZXIgRGFyd2luCgpjb21taXQgMjc2NDBmY2ZiMjA1MjZiZWYyZjZlYjQwYzJhNTQ1NjZkZmM2YzRjNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgMjcgMTA6NTg6MjkgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBDb3JyZWN0IHRoZSBzaXplIG9mIG9mIHRoZSBFWEFNUExFSVBBRERSRVNTIHZhbHVlIG9uIEw2NCBob3N0cwoKY29tbWl0IGViYmUyYTM5OTBlZjZkY2JkY2I5OWEzOWFkZDQ2NTM5ODM1NGMzNGMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgQXByIDIzIDA3OjI1OjIxIDIwMTMgKzAyMDAKCiAgICBidWlsZGluZzogTWFrZSAtLWVuYWJsZS1taW5pbWFsaXN0IGNvbXBpbGF0aW9uIHdvcmsgYWdhaW4KCmNvbW1pdCA0YmQ3ZDczYjFmZTYwYmI1MzZiZjM5ZWI0YTM4NTk2ZTg5NjVjM2YzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAyMjoyNTozOCAyMDEzICswMjAwCgogICAgdHlwZWNhc3QgdG8gc2lsZW5jZSB3YXJuaW5nIGZvciBmb3JtYXQKCmNvbW1pdCBkYjA3MWQwYTZmNDg3NDIxNzY5YjY5ZjIyY2NmMDljYzI0MmQ5NDU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAyMjoyMzo1MiAyMDEzICswMjAwCgogICAgT25seSBkZWNsYXJlIEhSUF9tYXhuYW1lcyB3aGVuIG5lZWRlZAoKY29tbWl0IGZhZjAwY2UzYjBmZWI0ZDM3ZmFiZWY2ZDQxMzVlMzY4MDNiMDAzNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDIyOjIyOjI0IDIwMTMgKzAyMDAKCiAgICBpcC5jOiBmaXggaW5jb25zaXN0ZW5zIGRlY2xhcmF0aW9ucyBvZiBpcF9tb2R1bGVfb2lkX2xlbgoKY29tbWl0IDdmNmI1OTUzM2NkZmEwNjQ1MGFlZTQxNTcwMjIzYjFjZGQyY2E2YjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDIyOjE5OjQ0IDIwMTMgKzAyMDAKCiAgICBSZWNvdmVyIGZyb20gZmFpbHVyZXMgaW4gbGlicGNpCgpjb21taXQgNDA5MzhhNjI2MTk1OTBiNGVhMDcxYWU4NWJhYTJmNDJhMGI3ZmNiMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDE1OjAwOjAwIDIwMTMgKzAyMDAKCiAgICBDaGVjayBpZiAnYXNuX3BhcnNlXyogJyBhY3R1YWxseSBzdWNjZWVkZWQuCiAgICAKICAgIElmIG5vdCwgZGlzY2FyZCB0aGUgcGFja2V0IGluc3RlYWQgb2YgdXNpbmcgd3JvbmcgZGF0YS4KCmNvbW1pdCBhYTRmYjk0OTAxMmQ3YzAyMmE0MzY5OTJhYzIwM2MwNjVmZDc0MjBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMTQ6NTg6NDEgMjAxMyArMDIwMAoKICAgIEludGVnZXIgdmFsdWVzIGVuY29kZWQgaW4gQkVSIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLgogICAgCiAgICBJZiBhc25fbGVuZ3RoID09IDAsIHdlIHdvdWxkIHJlYWQgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIG5leHQgdmFyYmluZCBvbiBuZXh0IGxpbmU6CiAgICAgICAgaWYgKCpidWZwICYgMHg4MCkKICAgIC0+IHJlYWRpbmcgcGFzdCB0aGUgYnVmZmVyIGlmIHRoZXJlIGlzIG5vIHN1Y2ggdmFyaWFibGUgLT4gc2lnc2Vndi4KCmNvbW1pdCBmNmVlZDZlMjM4NGNiZjg1Nzc2OGYwZWU4YzY2MDJlYjdjZDJmMDNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEFwciAyMiAwODoxODo1NCAyMDEzICswMjAwCgogICAgUmVnZW5lcmF0ZSBjb25maWd1cmUKCmNvbW1pdCBhNTg3ZDExZmI2N2ZhZDNhZjI0NTE3YTQwOGFiYzM3MDA1NjVlZGY1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEFwciAyMiAwODoxODozNSAyMDEzICswMjAwCgogICAgUmVnZW5lcmF0ZSBjb25maWd1cmUKCmNvbW1pdCBjZTNjOTIxNDEyOGIxY2RiZWJkMjk3NWRhMGYzNmE1NWUyNTg0ZmEwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEFwciAyMiAwODoxNjowMiAyMDEzICswMjAwCgogICAgUmVwb3J0IHRoZSByZXN1bHQgb2YgdGhlIFBPU0lYIHNoZWxsIHRlc3QsIG5vdCBhIGNvbnN0YW50IHllcwoKY29tbWl0IDBjODcwZjc0YjJlNDMzN2I0YmYzYjdmMTFmNTViMTJlODBkZjQ5ZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gQXByIDIyIDA4OjAwOjMyIDIwMTMgKzAyMDAKCiAgICBDaGFuZ2UgdGhlIGNoZWNrIG9mIHBlcmwgc2hlbGwgZGV0ZWN0aW9uIHRvIHdvcmsgd2l0aCBBSVggc2ggYXMgd2VsbAoKY29tbWl0IDVmMDgxOWYxMDJkMWNkZTM4OTlkMDg3MDhjOWMxMjYyNjg4OTkzMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gQXByIDEgMDc6Mzg6MDkgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHVwZGF0ZS1jb250cm9sbGVkIGNoYW5nZXMgdHJpZ2dlciBwZXJpb2RpYyBzYXZlcy4gVGhhbmtzIHRvIENsYXVzIEtsZWluIGZvciBub3RpY2luZyB0aGF0IHRoaXMgd2FzIG1pc3NpbmcuCgpjb21taXQgYThmZjI2ODgzZDYzODYxZDg3Njk4NWRkZTg5ZjM4OTE1NzdkNjAyNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMzEgMTM6MzM6MDIgMjAxMyArMDIwMAoKICAgIHNubXBkOiBNYWtlIHRoZSB1cGRhdGUgaGFuZGxlciBjYWxsIGFueSBjaGlsZCBoYW5kbGVycwoKY29tbWl0IDJiYzYyYjk3MmEyYmQwYjkxZGRkNGY3YzExZDQ3ZGJlNWJmNmZmMDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDMxIDEzOjMyOjI5IDIwMTMgKzAyMDAKCiAgICBzbm1wZDogRG8gbm90IGxlYWsgbWVtb3J5IGlmIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgoKY29tbWl0IGFlOTE0OGI1MWI5YjAyMjcwZmRkYmI3NDExMWJhMmMwMmE4ZWE2N2MKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDE2IDIyOjAzOjAwIDIwMTMgKzAyMDAKCiAgICBleHRlbmQuYzogZml4IG1pc3Npbmcgc2VtaWNvbG9uIGFuZCB3YXJuaW5nCgpjb21taXQgNDY0MjJkMTdkZmRiNDE2ZWIyNGFkN2RiNzQ1M2VjNDczZGIyMDgyMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDE2IDEzOjQ4OjI2IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgY3Jhc2ggaW4gVUNELVNOTVAtTUlCOjpleHRUYWJsZQogICAgCiAgICBzbm1wZCBjcmFzaGVkIHdoZW4gdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSBoYWQgbm8gYXJndW1lbnRzLCBpLmUuIGV4dGVuZC0+YXJncyB3YXMgTlVMTC4KCmNvbW1pdCA4YjU3YmRiMGEwOTQ3MmExNmQzYWY2OWZkMmIxMzc0YzA5ZTZhM2FkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciA4IDIwOjM2OjM1IDIwMTMgKzAyMDAKCiAgICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCgpjb21taXQgOWE5ZWEyNTdlNmViNDc4MDBkMzRmMWE4NmVjMGEyYTZlOTA4NWYzMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgOCAyMDozNToyNCAyMDEzICswMjAwCgogICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgoKY29tbWl0IDU5YTMyMTQzOThiY2ViMjJjNDhkNThjMGZlOWM1NTJiMmUxZWNiOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDggMjA6MzE6NDkgMjAxMyArMDIwMAoKICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKCmNvbW1pdCBlNGQ3MmRiMTFkM2ZiN2E0NDQyNTA5N2I1ZWMyNmI5ZjkxN2E5YzgyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciA4IDE5OjE0OjA0IDIwMTMgKzAyMDAKCiAgICBzbm1wa3NtOiBoYW5kbGUgZGVwcmVjYXRlZCBrcmI1X2F1dGhfY29uX2dldHtsb2NhbCxyZW1vdGV9c3Via2V5Cgpjb21taXQgOTlmZjk1MzY3M2Y3MzYxNDQ2M2FjZTEyMTBjNGFjMDczYTFmMmE4MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgOCAxOTowNTo0NyAyMDEzICswMjAwCgogICAgc25tcGtzbTogZml4IHNvbWUgY29uc3QgY2FzdCB3YXJuaW5ncwoKY29tbWl0IGNmMGQ0ZWYyMjRiYWQwMDA5OTUzNzA0ODNhNWM5OGRjMTc4MzlhNDEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDUgMjI6MDU6MzMgMjAxMyArMDIwMAoKICAgIEluaXRpYWxpemUgYSBjb3VwbGUgb2YgdmFyaWFibGVzIHRvIHBsZWFzZSBjbGFuZwoKY29tbWl0IDcxZjU5ZTllNmM5OGU4ZGJmYWIxZmZiMGQxZTQ2OGMxMmUzZDkyY2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDUgMjE6Mzg6NDQgMjAxMyArMDIwMAoKICAgIE1ha2Ugc3VyZSBzbm1wa3NtIGluY2x1ZGVzIGNvbV9lcnIuaCAod2hlcmV2ZXIgaXQgaXMpIHRvIGRlY2xhcmUgZXJyb3JfbWVzc2FnZQoKY29tbWl0IDhjMDFmNjQ3MjhhNDM2NTZkYzNhYzVmYmVmZGY4ZWNlYzhkYTE1MDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDUgMjE6MTM6MzAgMjAxMyArMDIwMAoKICAgIE1pbm9yIGZpeCB0byBpbmxpbmUgdG8gYWxsb3cgY29tcGlsYXRpb24gd2l0aCBjbGFuZwoKY29tbWl0IDJkYjEyZjY4OGUxZjJlZWViYjU4OWVjNzNkYTgyZWI4OTdmMzRiZDEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTWFyIDE4IDA4OjU0OjQ5IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgbG9jYWwgdHJ1dGh2YWx1ZSBoYW5kbGVyIGNhbGwgYW55IHN1YmhhbmRsZXJzIGl0IG1pZ2h0IGhhdmUuIFRoYW5rcyB0byBDbGF1cyBLbGVpbiBmb3Igbm90aWNpbmcgdGhpcyBwcm9ibGVtLgoKY29tbWl0IDkwNTEyYTMyYmQxYzJiZTVkMTdiMjNmMTA5NTYyNzgzOTVkZTM3NTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWFyIDE5IDIyOjI4OjM0IDIwMTMgKzAxMDAKCiAgICBQYXRjaCAxMjUwIGZyb20gc3RoZW46IGluY2x1ZGUgPHN5cy9wcm9jLmg+IGluIHN3cnVuX2tpbmZvLmMgZm9yIE9wZW5CU0QgNS4zCgpjb21taXQgMzkxOTM2MDBlYzM4ZGViNTEzNzlhMTA5NjQ4ZDY5ZTdlOTAwMTcwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMTo0NDo1OSAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IHByb3RvdHlwZSByb3V0ZTZwcgoKY29tbWl0IGFjY2U4Mjk2ZGM1YjY4ZDIxMmY3NDA0ZWRjMmFmZGI4YjAyODE3YzAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6Mzk6MTYgMjAxMyArMDEwMAoKICAgIGNsZWFuIHRhYnMgdHAgc3BhY2VzCgpjb21taXQgNDAyYmRhZTk2YTZkNzliM2I2M2I2NzI2MWIzN2E4NDdhYjQ4MTdlMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMTozNzo0MyAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZhbGwgYmFjayB0byBpcHY0Um91dGVUYWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKCmNvbW1pdCBlNjkxN2UzNzJhMDZkZGQ3NzYxYjMxMDNiMzI5YmNmNjk2ZTkzYTFmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjI5OjQ0IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogc2hvdyBBUyBpbiByb3V0aW5nIHRhYmxlIGlmIGF2YWlsYWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKCmNvbW1pdCA5ZWI4ZDBmOTA3ZWQ4ZDc4ZGU5MGRjZjY2MjNjMzMwNjA5OTNmMmEwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjI4OjI2IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZWFybHkgZGV0ZWN0IGlmIHdlIHdhbnQgaXB2NCByb3V0ZSB0YWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKCmNvbW1pdCA0MDgzNzM0ZWY3ZjRiZWFmMWI5YTEzMjU3MzhiYTE4NWViN2NjNzE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjI1OjUzIDIwMTMgKzAxMDAKCiAgICBGaXggbWlzcGxhY2VkIG5ld2xpbmVzIGluIGVycm9yIG1lc3NhZ2VzCgpjb21taXQgNWIwZWQzYjc2ZjZlNDY2OWYyMzhiNWM4MmNkM2NjNmNiNmNhYTVjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgNSAxNzoxNjoyNiAyMDEzICswMTAwCgogICAgVW5pdCB0ZXN0IFQwMTQ6IEZpeCBhIEN5Z3dpbiBidWlsZCB3YXJuaW5nCgpjb21taXQgMTA2YWQyNDUwZjJiNzg4NDhmMjkyYWQwMzQ0NWE5N2M3Zjg3ZTZmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgNSAxNzoxNzowNSAyMDEzICswMTAwCgogICAgVW5pdCB0ZXN0IFQwMTQ6IEluaXRpYWxpemUgdmFyaWFibGVzIHByb3Blcmx5Cgpjb21taXQgYTdkZWE1NzM0ODU5MzE1NjEwNTFhMjAxOTAyN2Q3ZWQwOWQxNTU2NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNCAyMjozNTowNiAyMDEzICswMTAwCgogICAgcmZjbGlzdDogYWRkIEc5OTh4IG1pYnMKCmNvbW1pdCA0NjA0Y2Y2MWU3Y2Y2ZWE2NGU3ODJmNGEzZDcyZDRmYjAyNGMxZjliCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA0IDIyOjIzOjIzIDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdCAtQ3M6IGNvbnNpc3RlbnQgZmllbGQgd2lkdGhzIGZvciBzdGF0aXN0aWNzLiBEb2N1bWVudAogICAgc25tcG5ldHN0YXQgLUNzcyB2YXJpYW50LgoKY29tbWl0IDRhYTkyMTU3Y2U1NWQxZTUyOGQ3ZGU1MjQ5MWQzZWI3MDIwODY5ZTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDQgMjI6MTc6MTkgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0LjE6IHJlbW92ZSBpbnZhbGlkIHJlZmVyZW5jZXMgdG8gcm91dGluZyBzdGF0aXN0aWNzIG91dHB1dC4KCmNvbW1pdCA3NTFmNGE2YzdmYzg5YTVjZjJiMjg3OWY2ZjkxNWIzMTQ2NmEwNGI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA0IDIyOjE0OjI5IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZmFsbCBiYWNrIGZpcnN0IHRvIGlwQ2lkclJvdXRlVGFibGUuIFRoYW5rcyB0bwogICAgQmlsbCBGZW5uZXIgZm9yIGluaXRpYWwgcGF0Y2ggZm9yIHRoaXMuCgpjb21taXQgOTNjODZlNmUxY2YzMDFiZDI2OWZkZmZiNWU5YWFhY2U4YWExOTNmNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBKYW4gMyAwNzoyMTowMyAyMDEyICswMTAwCgogICAgRG8gbm90IGxlYWsgbWVtb3J5IG9uIGVycm9yCiAgICAKICAgIElmIGFsbG9jYXRpb24gb2YgaWluZm8gZmFpbHMgdGhlbiB0YWJsZV9pbmZvIGlzIGxlYWtlZC4KICAgIERlYWxsb2NhdGUgdGFibGVfaW5mbyBpbiB0aGlzIGNhc2UuCgpjb21taXQgMzZhN2RlNzIzMGZiYmJiNTJjYzM3Y2JiZWQyODFlYjU1OTQwNGJlOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjUgMjA6NDA6MDkgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IEFkZCBtdWx0aWhvbWluZyBzdXBwb3J0CiAgICAKICAgIE9uIFdpbmRvd3MgVmlzdGEgLyBXaW5kb3dzIFNlcnZlciAyMDA4IGFuZCBsYXRlciBpdCBpcyBwb3NzaWJsZSB0byBhZGQKICAgIG11bHRpaG9taW5nIHN1cHBvcnQgYnkgdXNpbmcgdGhlIElQX1BLVElORk8gc29ja2V0IG9wdGlvbi4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jCgpjb21taXQgN2JiYWJhYjIzNjJkYWE2ZDc2YWQ3MzAzM2IzZjMyYjJjYmE3MjUzZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMjIgMTg6NTU6NDcgMjAxMyArMDEwMAoKICAgIFJld29yayBJUF9QS1RJTkZPIC8gSVBfUkVDVkRTVEFERFIgZGV0ZWN0aW9uCiAgICAKICAgIERldGVjdCBJUF9QS1RJTkZPIC8gSVBfUkVDVkRTVEFERFIgc3VwcG9ydCBkdXJpbmcgdGhlIGNvbmZpZ3VyZQogICAgcGhhc2UgaW5zdGVhZCBvZiByZXBlYXRpbmcgdGhlIGZvbGxvd2luZyB0ZXN0IGluIGVpZ2h0IGRpZmZlcmVudAogICAgcGxhY2VzOgogICAgCiAgICAgI2lmIChkZWZpbmVkKGxpbnV4KSAmJiBkZWZpbmVkKElQX1BLVElORk8pKSBcCiAgICAgICAgIHx8IGRlZmluZWQoSVBfUkVDVkRTVEFERFIpICYmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfRkxBR1MKICAgICAuLi4KICAgICAjZW5kaWYKICAgIAogICAgVHdvIHNpZGUtZWZmZWN0cyBvZiB0aGlzIHBhdGNoIGFyZToKICAgICogSVBfUEtUSU5GTyBzdXBwb3J0IGlzIGVuYWJsZWQgb24gQ3lnd2luLgogICAgKiBzZXRzb2Nrb3B0KElQX1JFQ1ZEU1RBRERSKSBpcyBubyBsb25nZXIgaW52b2tlZCBvbiBXaW5kb3dzIHdoZW4KICAgICAgYnVpbHQgd2l0aCBWaXN1YWwgU3R1ZGlvIG9yIE1pbkdXLWdjYy4KCmNvbW1pdCAxYTE5NmFkOWYxNTE3ODY4YjkzYTZiZWM5M2EwY2ZlMWQyOWUyODNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEZlYiAyMyAxNDowMzoyOSAyMDEzICswMTAwCgogICAgVGVzdGluZzogTWFrZSB1bml0IHRlc3QgVDAxNCBtb3JlIHJvYnVzdAoKY29tbWl0IDliZTIyYWFhZjgzOTM3MTNmYmMzOTAyNWY3MDIxMTFmNTBmMWU0ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRmViIDIzIDExOjAzOjIwIDIwMTMgKzAxMDAKCiAgICBXaW5kb3dzOiBBdm9pZCBjb2xsaXNpb25zIHdpdGggdGhlIFdpbmRvd3MgVmlzdGEgb3IgbGF0ZXIgU0RLCgpjb21taXQgMGI2YmZlZjJjYTlhZTllMWMyYmVhZmU3MDAxMDBmYWU1ZjZmNGMxYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBGZWIgMjMgMTE6MjA6MjMgMjAxMyArMDEwMAoKICAgIGluZXRfbnRvcCgpIC8gaW5ldF9wdG9uKCk6IENvbnZlcnQgcHJvdG90eXBlcyBmcm9tIEsmUiB0byBBTlNJIEMKCmNvbW1pdCAyYmI1MWQ3MWVlYzRlNzg5OTgyYzJhNzQxMTg2ZGNlNmRmMjM4NTQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAyMDo1OToyNSAyMDEzICswMTAwCgogICAgUmVkdWNlIHRoZSB0aW1lIG5lZWRlZCB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgKHdhcyBlbmxhcmdlZCBieSBjb21taXQgYjNkNWVkODcpCgpjb21taXQgY2Y2NDBjY2Q2OGU5NjM2ODA1Yjc1MDc5OTI4YzcyNzdmYTI2MDgzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMTE6NTU6MDMgMjAxMyArMDAwMAoKICAgIFVuaXQgdGVzdCBUMDE0OiBBY2NlcHQgImxvY2FsaG9zdC5sb2NhbGRvbWFpbiIgdG9vCgpjb21taXQgYmRhNDM1NzM3NWFkMjk5Y2YxODQ3NTc5ZTFhMWJjM2M2MTE4OTVjMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMTY6MDc6NDEgMjAxMyArMDEwMAoKICAgIFJlZ3Jlc3Npb24gdGVzdCBUMDYwOiBFc2NhcGUgYmFja3NsYXNoZXMgcGFzc2VkIHRvIENPTkZJR1RSQVBECgpjb21taXQgNmI1ZDc4NGY0ZDZkMDAwMzkwMDE0ZDEyMGYxNWI5MzczNjJmOGMwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMjA6MzM6MDIgMjAxMyArMDEwMAoKICAgIFB5dGhvbiBiaW5kaW5nczogRml4IGEgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNmQyNThlZmEyYWNjYWRmY2NjNTBkODZiZDQ2Mzc5NzQ1NDQ5Y2E0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMTU6Mjc6MTkgMjAxMyArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDJjMmUxZjQxNjM5M2Q0ODVmOWFjOTBjODdmNzIwNjVjNjY4YjczMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDE1OjQ4OjM0IDIwMTMgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMWJjNzk5ZGU2Y2FiMDEwYjI1YzBjNGQzZjUxNTViNWZiYWY1MjdmMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMjA6MDU6MTQgMjAxMyArMDEwMAoKICAgIFB5dGhvbiBiaW5kaW5nczogRml4IHRoZSBvdXQtb2YtYm91bmRzIHdyaXRlCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAyMzQxNThiOGU4NGNjMjA0Y2JhYzk2ZTZlOWJlNjk1OTYzNTQwNGI4Cgpjb21taXQgNGY0ZWFlYjkyMGFkMTVjOTI5YzY2NzgyY2MwYTY0MjkxMmNhYmQwNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE3IDEyOjI0OjI2IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IGZpeGVkIElQQUREUkVTUyBzaXplIG9uIDY0Yml0IHN5c3RlbXMuCgpjb21taXQgNDg2ZjExZGRlZTlmMWMyZGQ4MDU2NDQ5ZTkwMzFlMjRiODY0Njg3MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRmViIDIxIDEwOjA2OjEyIDIwMTMgKzAxMDAKCiAgICBBZGRlZCBJRVRGIEJTRCBsaWNlbnNlIGZvciBNSUIgZmlsZXMuCiAgICAKICAgIE1JQnMgaW5jbHVkZWQgaW4gTmV0LVNOTVAgdGFrZW4gZnJvbSBJRVRGIERvY3VtZW50cyBhcmUgY29uc2lkZXJlZAogICAgQ29kZSBDb21wb25lbnRzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgSUVURiBUcnVzdCBMaWNlbnNlIFBvbGljeSwgYXMgZm91bmQKICAgIGhlcmU6CiAgICAKICAgIGh0dHA6Ly90cnVzdGVlLmlldGYub3JnL2xpY2Vuc2UtaW5mby8KCmNvbW1pdCBkMjRlZmIwNDc3OGQ4NzBlZmEyNzM5NDkzOTQ5ZGI2NWYzZmRkNGYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxMiAyMDo0NDo0NiAyMDEzICswMTAwCgogICAgU29sYXJpczogRml4IGZldGNoaW5nIG9mIGxhcmdlIGNodW5rcyBvZiBkYXRhIChsYXJnZXIgdGhhbiBvbmUgYnVmZmVyKQogICAgVGhpcyBmaXhlcyBwcm9ibGVtIHdpdGggbWFueSBpbnRlcmZhY2VzLCBidXQgY291bGQgYWxzbyBmaXggb3RoZXIgbGFyZ2UgdGFibGVzLgoKY29tbWl0IDQ1MDAxZmQ5OGM3MjlkZjlmZjA1MzYyN2M0MTZhYjVmMmU0YzYwZjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDEyIDIwOjM5OjUwIDIwMTMgKzAxMDAKCiAgICBGaXggYnVnIDIyODYsMjQzOTogQm91bmQgYnVmZmVyc2l6ZSBmb3Igc3dydW4gZGF0YSBvbiBGcmVlQlNECgpjb21taXQgOWJkMDQxM2JmYmRjZDg0NTQxM2MxMzViYmZmODc3MWZhNzEzMDgwOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDExIDExOjU3OjAxIDIwMTMgKzAxMDAKCiAgICBFeHBsaWNpdGx5IGVudW1lcmF0ZSBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgCiAgICBUaGUgZ2VuZXJpYyBjb25mIGFuZCBsb2NhbC5jb25mIGV4dGVuc2lvbnMgd2VyZSBpbnRlcnByZXRlZCBhcyBteS5zbm1wLmNvbmYgYW5kIG15Lm90aGVyLnNubXAubG9jYWwuY29uZiBieSBzb21lIGN1c3RvbWVycy4KCmNvbW1pdCAwYmRkMDk4ODlkMDgxMWY4NjRkZjEzMWI4NDRmMjBiMDAzOTIwNjJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiA3IDAwOjA1OjAzIDIwMTMgKzAxMDAKCiAgICBzbm1wX2NsaWVudC5jOjpuZXRzbm1wX3F1ZXJ5X3dhbGs6IGhhbmRsZSBTTk1QdjIgZXhjZXB0aW9uIHJlc3VsdHMKCmNvbW1pdCA4NjRiNGFjYThkZmE0ODBhNzhiNzQ1ZmFlMjA5MWVkYzUzNzNhMGM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiA2IDE2OjAwOjU0IDIwMTMgKzAxMDAKCiAgICBzbm1wdHJhcGQ6IEFkZCAtWCBvcHRpb24gdG8gZGlzYWJsZSBBZ2VudFgKCmNvbW1pdCAxMTJmM2Q0ZmE1MzZiMmM1MzFkMDc4MDY3NjE5ODkxNWExZjU4MTc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiA2IDE1OjU5OjUzIDIwMTMgKzAxMDAKCiAgICByZmNsaXN0OiBBZGQgUkJSSURHRS1NSUIKCmNvbW1pdCBjMGE2NTQ5NTk3OTQ3ZjI5YzM2ZWZhZGIwNDkyN2ZmNjkwMTg5ZWJhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAzMCAxNTo1MzoxNSAyMDEzICswMTAwCgogICAgUlVOVEVTVFM6IGRvbid0IHRyYXAgb24gU0lHQ0hMRC4gSXQgY29uZnVzZXMgZGFzaCwgbWtzaCBhbmQgbWF5YmUgb3RoZXIgc2hlbGxzLgogICAgKGRhc2ggaXMgL2Jpbi9zaCBvbiBVYnVudHUpCgpjb21taXQgYjk1YWMzODZlNmMyMzU2YTFlYzI5ZjFjNDA5YjJlYzNlOTAxNTljMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMjkgMDg6NTk6MDEgMjAxMyArMDEwMAoKICAgIHJmY2xpc3Q6IGFkZCBURUQtTUlCCgpjb21taXQgMjNiZGY2ZDI2ZjQzMzdkMDdlYTZlOTkwMWE3NzM4ZDExODZkMTZkNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMjkgMDg6NTg6MDcgMjAxMyArMDEwMAoKICAgIHNubXBkZjogYWRkIC1DSCBhcyBhbHRlcm5hdGl2ZSB0byAtQ2gKCmNvbW1pdCA0MDI1OGU5YzA2MGFlY2FjNjU1NWFlZGZmM2U3MGJkZTdkMmFiODQ2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAyOCAxNzowNTowOCAyMDEzICswMTAwCgogICAgVDA3MmNvbTJzZWN1bml4X3NpbXBsZTogYXdrIHN0cmluZyBpbmRpY2VzIHN0YXJ0IGF0IDEhCiAgICBGaXggdGVzdCB0byB3b3JrIHdpdGggbWF3ayAoZGVmYXVsdCBmb3IgRGViaWFuL1VidW50dSkKCmNvbW1pdCBlMzdmMmI2YmRmZmE3YWZhYTFkYzBiOGFlZTU2NWE0ZGE4MmQ2ZmU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyNSAxNjoyNDoxMCAyMDEzICswMTAwCgogICAgc25tcGRmOiBBZGQgLUNoIChodW1hbiB1bml0cykgb3B0aW9uCgpjb21taXQgN2E0MDdhZDM0NTA1ZWQ0ZGJhYTJlODRlMDZhMWRiZjQ4YzNjNzdlNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjUgMTU6Mjg6NDMgMjAxMyArMDEwMAoKICAgIHNubXBkZjogSGFuZGxlIFNOTVAgKHYyYy92MykgZXhjZXB0aW9ucwoKY29tbWl0IGM3MzljYjM4NzVmYjVkNGNhZDQxMzg2NjFjYzBhNDE3MTM4NGMzNDEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDI1IDEwOjE0OjAyIDIwMTMgKzAxMDAKCiAgICBBcHBseSBwYXRjaCMxMjQ2OiBGaXggcGFzc2luZyBhIFNFVCBvZiBhIHN0cmluZyB0byBub3QgY3V0IGl0IGF0CiAgICBmb3VyIGNoYXJhY3RlcnMgdG8gYSBwYXNzL3Bhc3NfcGVyc2lzdCBoZWxwZXIuCgpjb21taXQgMjM0MTU4YjhlODRjYzIwNGNiYWM5NmU2ZTliZTY5NTk2MzU0MDRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE3IDEyOjI0OjI2IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IGZpeGVkIElQQUREUkVTUyBzaXplIG9uIDY0Yml0IHN5c3RlbXMuCgpjb21taXQgOWUwYTBlMzVkOGQxYjM2ZmE0N2NlYzkzOGQ2Yzg3NGRlMDA3MWJiNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSmFuIDkgMjI6Mzc6NDcgMjAxMyArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMTIzOTogRml4IG1lbW9yeSBsZWFrCgpjb21taXQgNTU2MDVlZTM0NTJhZWY1YWFiZTRlZDE1YTgzMzc0YTk3NzI4ZTY0YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDkgMDk6MjY6NTYgMjAxMyArMDEwMAoKICAgIEZpeGVkIG1lbW9yeSBsZWFrIG9uIGZhaWxlZCByZWFsbG9jLgoKY29tbWl0IGEzMmNhOTNhOWI5MTY3NGE4YzFlODllMWEzODNhNzYxMzZiOGFjMzgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEphbiA4IDE2OjQyOjU0IDIwMTMgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTI0MDogRml4IGRlYWxsb2NhdGlvbiBvZiBpbnRlZ2VyIGluZGV4ZXMKCmNvbW1pdCA4NzY4MWYwZmIyODVhMDIxNjM2ZTA2YTZmMjM1MWQ3NjQwOWVlYmM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEphbiA1IDE1OjA2OjEyIDIwMTMgKzAxMDAKCiAgICBBdm9pZCB1c2luZyAibG9jYWwiIHNpbmNlIFNvbGFyaXMnIC9iaW4vc2ggZG9lcyBub3QgdW5kZXJzdGFuZCBpdAoKY29tbWl0IDU5YjRkNDBmMzk3MGJhODJmM2RmMmEzOTk5NzEyNTRiMDQ4Mjc0NDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDQgMTg6MDA6NTMgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2Ugd2luRXh0RExMIHdvcmsgb24gNjQtYml0IFdpbmRvd3Mgc3lzdGVtcwoKY29tbWl0IDM5NTk3MTA2MDM4ZjZlMWM1ZWQ0OWIzZmNlMDAyMWE2YzU5ZWMxZmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDQgMTg6MDU6MzggMjAxMyArMDEwMAoKICAgIHdpbkV4dERMTDogQWRkIG1vcmUgZGVidWdnaW5nCgpjb21taXQgODVjZTkwNjI5MTFkMzFiNDJlMGMxZTEzNWFiZDNiZGE4MTNlMzAwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNCAxODowMjozMCAyMDEzICswMTAwCgogICAgd2luRXh0RExMOiBJbnZva2UgU25tcEV4dGVuc2lvbkNsb3NlKCkgYmVmb3JlIHVubG9hZGluZyBhbiBleHRlbnNpb24gYWdlbnQKCmNvbW1pdCA3ZTAzMTIyOTU0MzU3OWQzN2IwMDYyOTZlMmY0NDU0ODJkMDUxMmNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEphbiA1IDEzOjA0OjAyIDIwMTMgKzAxMDAKCiAgICB3aW5FeHRETEw6IFJlbW92ZSBzb3VyY2UgZmlsZSB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oCgpjb21taXQgMmU4OTYyNGU1NWU3MzU1Nzg2MjU5NGYxZjUyNWY5ZGZmYzgyNzk4NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNCAyMjoyNjo0NyAyMDEzICswMTAwCgogICAgU29sYXJpcyAvYmluL3NoIGRvZXMgbm90IHVuZGVyc3RhbmQgJ2xvY2FsJyBidWlsdGluLgoKY29tbWl0IDYyNTdkZWE0ODI3ZTg1YzdhZjg0NWFlOWNkZWQ0OGQ0NGFhN2JiM2QKQXV0aG9yOiBKYW4gUG9rb3Ju776D7729IDxqcG9rb3JueUByZWRoYXQuY29tPgpEYXRlOiAgIFRodSBEZWMgMjAgMTQ6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBjb21tZW50IHR5cG9zIGluIGV4YW1wbGUuYwogICAgCiAgICBQYXRjaCBmcm9tIFBva29ybu++g++9vSA8anBva29ybnkgYXQgcmVkaGF0LmNvbT4KCmNvbW1pdCA5ZGZjNDRjOTFkN2EyOWE0YzQzZjc3OTA4NWRkZTM0YzVmZTZkNWFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiAzIDEwOjMwOjI3IDIwMTMgKzAxMDAKCiAgICBNaW5HVywgdGVzdCBoYXJuZXNzOiBGaXggYSBsb2cgbWVzc2FnZQoKY29tbWl0IDFkMDk5YzdiOTE5ZWYyNWVmYTAzYzE0YWE3N2NjYmVjOGU1YmIwMDkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDMgMTA6MjQ6NDggMjAxMyArMDEwMAoKICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBXaW5kb3dzOiBGaXggdXNhZ2UgdGV4dAoKY29tbWl0IGYwMjFlNmZkNGJjMmFjYjZmZmFjMzM5ZDNmMzhlNGMxNWJiNWJkN2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEgMTc6NTM6MTYgMjAxMyArMDEwMAoKICAgIE1pbkdXOiBVcGRhdGUgdGVzdCBoYXJuZXNzLiBJbnN0YWxsYXRpb24gb2YgcHNsaXN0LmV4ZSBpcyBub3cgcmVxdWlyZWQuCgpjb21taXQgNGJjM2MwNTQ3ZTBiMzNlZWE3MWYzYzFhMDllZmRkNTk2OWQ3ZTI3OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBEZWMgMzEgMTc6MjQ6MzMgMjAxMiArMDEwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBFbmFibGUgaW4gTVNWQyBiYXRjaCBidWlsZAoKY29tbWl0IGU5ZWZiMjAwOTU0NjhlNjQxNTdiODRmMThiNmNjZDk5MWUxMDgyZTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEgMTU6MDQ6MzcgMjAxMyArMDEwMAoKICAgIFdpbmRvd3M6IExpbmsgd2l0aCBzbm1wYXBpLmxpYiBhbmQgbWdtdGFwaS5saWIgZXZlbiBpZiBub3QgdXNpbmcgdGhlIHBsYXRmb3JtIFNESwoKY29tbWl0IDkwMGFhZThlYTY5M2ZiODQwZDU3NTI2ZmI2NzFkMjE1Zjg2NWJlZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEgMDE6MzM6MDEgMjAxMyAtMDgwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMzYzZTNmYTFhNDNjYTYyMjNmZTNiMDgwOGU2NjI5NWIzZDkzODZiOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMSAwMToyNzo0MiAyMDEzIC0wODAwCgogICAgdWNkLXNubXAvZGxtb2Q6IEFkZCBkbG1vZC5jIHRvIE1TVkMgcHJvamVjdAoKY29tbWl0IGUzNTQyYzA0YTg0NjE3ODU3Njg4YWI4ZTg3MThjZGM0YzZhNjhjZjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEgMDk6MTQ6MzMgMjAxMyArMDEwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBSZW1vdmUgbW9yZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDFlM2IwYWUyYjAyY2YxZmFjY2FkNDg5NmJjM2JkYmVhMWRiNGE2OGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRGVjIDMxIDEzOjE5OjM2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBQb3J0ZWQgdWNkLXNubXAvZGxtb2QgdG8gTWluR1cgLyBNU1ZDCgpjb21taXQgOTg2ZmI5Yjg1ZTEzODNiODFlYWVhNDBkMmNiN2MxNDQ5MmRkYmRhYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBEZWMgMzEgMTI6MzI6NTYgMjAxMiArMDEwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUgKGJhY2twb3J0IGNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwKQoKY29tbWl0IDc5OGI3M2NmNTllMzY4N2Y2NWJkNTRhN2E4YWMyOWZlMjQ5OGM2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDE3IDEzOjA1OjUzIDIwMDkgKzAwMDAKCiAgICBVbmJyZWFrIHRoZSBNaW5HVyBidWlsZCBmb3IgdGhlIDUuNCBicmFuY2ggLSB0aW1lcmFkZCgpIGlzIG5vdCBBTlNJIEMKICAgIAogICAgUmVtb3ZlIERJRkZUSU1FVkFMKCkgYmVjYXVzZSBpdCdzIGJ1Z2d5OiBpbiAiZGlmZi50dl91c2VjID4gMTAwMDAwMEwiIHRoZSAiPiIKICAgIHNob3VsZCBoYXZlIGJlZW4gIj49IiBpbnN0ZWFkLgogICAgCiAgICBUaGlzIGlzIGEgcGFydGlhbCBiYWNrcG9ydCBvZiBjb21taXQgODU4NTA5YzllMTk5OGY2ZDI2ZTkwY2I2MjJlNGIxN2ViMjQ4OGE0Zi4KCmNvbW1pdCAxZTU1NmNjNzc0MGMwNjM2N2ZmMzM2MWFhOTZiZjQ1MzM5YzJlOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAzMCAxNzo1OTo0NCAyMDEyICswMTAwCgogICAgdWNkLXNubXAvZGxtb2Q6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDUxZGZhNmU2N2ZkODQ4N2I4ODgyYzE2MzJlODExMTk1ZDk0OTZlNDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDMwIDEwOjQyOjE2IDIwMTIgKzAxMDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogTWVudGlvbiBsaWJyYXJ5IHBhdGggaW4gZXJyb3IgbWVzc2FnZXMKCmNvbW1pdCAwMmEzNTdkNmI5NTM4YTQ4ODk2MzY4OTAwYmJiNTkzZGJiNGRjMzc0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAzMCAxMDo0MDo1NSAyMDEyICswMTAwCgogICAgdWNkLXNubXAvZGxtb2Q6IFJlbW92ZSBhIHN1cGVyZmx1b3VzIGluaXRpYWxpemVyCgpjb21taXQgZWY3NDg4NDViMTRjMDk1MDQ5ZWQ1NDgwM2VhNzRjZjQ1N2VmZDE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMzAgMDk6NTc6MzggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IEZpeCBlbnZpcm9ubWVudCBzZXBhcmF0b3IgaW4gc25tcGQvc25tcHRyYXBkL3NubXB0cmFuc2xhdGUgaGVscCB0ZXh0LiBSZXBvcnRlZCBieSBKYXNvbiBNY0NvbGx1bSA8am1jY29sbHVtQGNvbXRlY2hlZmRhdGEuY29tPi4KCmNvbW1pdCBiYzBhYmFlNTVkZDg2N2RiYmY0ZTQyZTY3YTM2MjM0MDg4YzkzNzcxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAyIDA5OjI1OjMzIDIwMTMgLTA4MDAKCiAgICBjb3B5cmlnaHQgdXBkYXRlCgpjb21taXQgNDA4NmFmOTViMjk4ZjFjZjEzMGQwOGRlYjdlMDkwMDU4YjMyMWFmOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjAgMDc6Mzc6MTQgMjAxMiArMDEwMAoKICAgIEZpeCB0aGUgTUlCIG5hbWVzIHRvIGFjdHVhbGx5IHdvcmsKCmNvbW1pdCA3OTUyNzRmYzIxZTFiYTAzZWZiZTliNjA0MmM2YTM1MTNkODlkZWJmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMCAwNzoyNDo0NyAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgYW5kIHZhbHVlIGNoZWNraW5nIGZvciBpcERlZmF1bHRUVEwsIGlwdjZJcERlZmF1bHRIb3BMaW1pdAoKY29tbWl0IDQzOWQ1MGM2NzllOWYwOWIxMDZiZmRmNjRmOGNjNzY2NDE5ZTEzNDQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIwIDA3OjI0OjE2IDIwMTIgKzAxMDAKCiAgICBGaXggaWNtcE1zZ1N0YXRzVGFibGUgZm9yIFNvbGFyaXMKCmNvbW1pdCAwMDdhN2QyNGJjNWYyNzkzOTJmZDBlYzQzNjE0NzdjZDhmMTRlNWFmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAxOSAyMjoxNDowNiAyMDEyICswMTAwCgogICAgZ2l0IGlnbm9yZSB0aWxkZSBmaWxlcwoKY29tbWl0IGFmZjAyZjI0ZTE5OGEyOTIzMTI3M2Q0OTQ4MjBkZDZlMzU0MTU1Y2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRGVjIDE3IDIyOjQ0OjE4IDIwMTIgKzAxMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIvYXV0b2NvbmYKCmNvbW1pdCA5Y2ZkNjgwZjJmMmY0NWNmNzZjZDQyMTY2OTNiODYyZmFhMjdjYmMxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIERlYyAxNyAyMjo0MjowMCAyMDEyICswMTAwCgogICAgQ29uZmlnIGNoZWNrIGZvciBCU0QgdWRwc3RhdC51ZHBzX2lwYWNrZXRzCgpjb21taXQgNTNjMmZkZDViNjYwMjExNDRhZDI2NTM5YjUzYmU5YzE1OTNiNDg4NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBEZWMgMTcgMjI6Mjc6MDMgMjAxMiArMDEwMAoKICAgIEFkZCBTRCBzdXBwb3J0IGZvciBpcC1mb3J3YXJkLW1pYgoKY29tbWl0IGNhN2IxN2E0MWQ0ZDE2YmQyN2FhY2Y5MjExNmJlYTM1NjJlZWVhMzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIERlYyAxNyAxMjo0MDozMiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHVzZSBjYWNoZSBmb3IgZHNrVGFibGUgdG8gc3BlZWQgaXQgdXAuCiAgICAKICAgIFVDRC1TTk1QOjpkc2tUYWJsZSB3YXMgc2xvdyBvbiBORlMgbW91bnRzLiBOb3cgaXQgdXNlcyBmc3lzIGNhY2hlCiAgICB0byByZWxvYWQgbW91bnRzIGV2ZXJ5IDUgc2Vjb25kcy4KCmNvbW1pdCAwYjcxODE4NGUwNzBkMjU3NGMwOWIxOGY1Njg5NTBhOGM5ZmY3NjU5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxNiAyMDo1NzoyOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYXBwczogU3RvcCB1c2luZyBzbm1wX3BlcnJvciB3aGVuIGxvZ2dpbmcgYWZ0ZXIgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qgc2V0IHNubXBfZXJybm8uCgpjb21taXQgN2VkY2UwYzMxMWE3ZGQ1NDI4ZTBlZGI3MDFkYWJlOWRjNzlkMDk2NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTUgMTI6NDA6MTAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIHRoZSAtd2l0aG91dCBvcHRpb25zIHRvIHJwbWJ1aWxkIHdvcmsKCmNvbW1pdCBjNjAzNzU0OGZiNGI0Nzk5NjMzMGZlMWJjMWU4MjY1YWNlYTVkZDU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIERlYyAxMCAwMDo0MTo0MiAyMDEyICswMTAwCgogICAgVGhlIHByb3BlciByb3V0ZXIgZmlsZXMgZm9yIEJTRAoKY29tbWl0IDJiMzU5ZTQ1MDk4NmJiODc0NGJiZmYyMWUwY2FiNDkzYWNhY2VhOTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjM6MDI6MDIgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0CiAgICBDb29wZXIuIFBhcnRpYWxseSBmdW5kZWQgYnkgQ2lzY28gSXJvbnBvcnQuCgpjb21taXQgOWEwNDQxMjhlOGIzMzE3OTYyMjExNjYzNTg3NjllYjA1MzVkZmMxZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMjozNjoyMSAyMDEyICswMTAwCgogICAgU3VwcG9ydCBmb3IgaXBOZXRUb01lZGlhVGFibGUgZm9yICpCU0QuIE1vc3Qgb2YgdGhlIGNvZGUgYnkgR2FycmV0dCBDb29wZXIuCiAgICBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgoKY29tbWl0IGY5Y2IyOThkZDIwZWY2ZDRiYzY4M2NlMDY3ZjIzMzA3MzdiZTRlMDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjI6MTc6MjIgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgZm9yIGlwRGVmYXVsdFJvdXRlclRhYmxlIGZvciAqQlNELiBNb3N0IG9mIHRoZSBjb2RlIGJ5IEdhcnJldHQKICAgIENvb3Blci4gUGFydGlhbGx5IGZ1bmRlZCBieSBDaXNjbyBJcm9ucG9ydC4KCmNvbW1pdCAxZGVlNDE1NjJjNTRlMGI1NGIzMDFhMzc4MzhiM2JhNjUwOWRjYzM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIxOjU0OjE0IDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGZvciBpcFN5c3RlbVN0YXRzVGFibGUgZm9yICpCU0QuIE1vc3Qgb2YgdGhlIGNvZGUgYnkgR2FycmV0dCBDb29wZXIuCiAgICBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgoKY29tbWl0IDNkYmFiYzk3MDY4YjZjNjkwYjNmZGY5N2I1YWIzYWUwZDllYWIyOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjE6NDc6NDUgMjAxMiArMDEwMAoKICAgIENoYW5nZSBzb21lIGRlYnVnIG91dHB1dCBpbnRvIGVycm9yIGxvZ2dpbmcuIEZhaWx1cmUgdG8gZXhwYW5kIDMyIHRvIDY0CiAgICBJUyBhbiBlcnJvci4KCmNvbW1pdCA5MDczNjBlMDlmZmYzMzkwZDYyNjlmOGNiNDc0MGJkYmNkOTU4MTY2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIxOjQ1OjQ0IDIwMTIgKzAxMDAKCiAgICBGaXggc29tZSBsYWJlbHMgZm9yIG5ldHN0YXQgaWNtcCBvdXRwdXQuCgpjb21taXQgOWYyZjA1NDA1YzdiYjQ5OWViZTA4MzliMGQ3OWJhMjVjNjFjMGY1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOTo0OTo1MSAyMDEyICswMTAwCgogICAgUnVubmluZyBhdXRvY29uZgoKY29tbWl0IGQyN2YzNjQ1MjU4M2QyOTFmMjU1ZWYwOTBlMmFlYWVhZjM5YTllMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6NDk6MDIgMjAxMiArMDEwMAoKICAgIFJ1bm5pbmcgYXV0b2NvbmYKCmNvbW1pdCA1NjM1MmMyZWJlOTU0MWY2YWJmOWQyYjllYmM0NzA1ZDgxOGQ4OWI4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjQ4OjIxIDIwMTIgKzAxMDAKCiAgICBSdW5uaW5nIGF1dG9jb25mCgpjb21taXQgMzk3OTIzZTBhYWUxMzg1YTBhZjNhODAzZTYwZWJlODEyNGY5NjFkMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOToyNjoyMSAyMDEyICswMTAwCgogICAgRml4ZXMgZm9yIGNvbmZpZ3VyZSBvZiBrc20gbW9kdWxlLiBQcmV2aW91c2x5IGtzbSBoYWQgdG8gYmUgdGhlCiAgICBmaXJzdCBzZWN1cml0eSBtb2R1bGUgaW4gbGlzdCB0byBiZSBpbmNsdWRlZC4KCmNvbW1pdCA0MzBkMTBkMjk2YjhkOGM5OGEzYWFmZDI3YThjNmZmNGY2NDA4MTE0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjI0OjM5IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGluZyB3aGljaCBoYXMgcHJldmVudGVkIGtzbSBtb2R1bGUgZnJvbSBjb21waWxpbmcgZm9yIG1hbnkgeWVhcnMgOi0oCiAgICBBbHNvIHNvbWUgZml4ZXMgdG8gc3VwcG9ydCBIZWltZGFsIEtlcmJlcm9zLiBUaGlzIHN1cHBvcnRzIEZyZWUvTmV0QlNELgoKY29tbWl0IGJmZjgzMmFiMjQ4ZTA4NjI4YmU0NmViZjc2MTExOTExZTdmMzllNTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6MTc6MjIgMjAxMiArMDEwMAoKICAgIEFkYXB0IGZvciBsb25nZXIgbGluZXMgZnJvbSAvcHJvYy9uZXQvdGNwNi4gQW5kIGlzc3VlIGFuIGVycm9yIGlmCiAgICBpdCBoYXBwZW5zIHRvIGZhaWwgYWdhaW4uIFBhdGNoIGZyb20gYnVnICMyNDI1IChUaGFua3MgWmhpeHUgTGl1KQoKY29tbWl0IDk2ODdlNGQ1MDc4MWJhMDE2ODQxNmYxNWM0ZjJkOWZjODM3MTA1MGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6MTU6NDggMjAxMiArMDEwMAoKICAgIGljbXAgc3VwcG9ydCBmaWxlcyBmb3IgKkJTRCAoZXhjZXB0TmV0QlNEKQoKY29tbWl0IGYyMTViYTFlMzdhOGMzZTA3Njk1OGVmZDgzYzBmNWQzOTNhMTRjMjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6MTM6MjQgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgZm9yIGljbXBTdGF0c1RhYmxlL2ljbXBNc2dTdGF0c1RhYmxlIGZvciAqQlNEIGFuZCBTb2xhcmlzCgpjb21taXQgYTdiN2MzYzBjM2JlM2Y2Y2YyZDA5ZjY0NzBkM2ZhMDg2MTUzZDAzNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMzAgMTU6MzU6MzMgMjAxMiArMDEwMAoKICAgIFNodWZmbGUgaW4gcHJlcGFyYXRpb24gZm9yIGJyb2FkZXIgc3VwcG9ydCBmb3IgaWNtcFN0YXRzL2ljbXBNc2dTdGF0cwoKY29tbWl0IGJkMjk2YWMxODQyMzUwM2VkYThlZmZlYjg2YWZiMTllMDAxNDM4ODkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDMwIDE1OjM0OjUyIDIwMTIgKzAxMDAKCiAgICBTaHVmZmxlIGluIHByZXBhcmF0aW9uIGZvciBicm9hZGVyIHN1cHBvcnQgZm9yIGljbXBTdGF0cy9pY21wTXNnU3RhdHMKCmNvbW1pdCAyZTIzZWEwZjI5M2JiOGU5Y2VhZjU2MzZkYjdiN2QwN2Y2ZDYyYzdhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiAyMCAyMzozMzo1OCAyMDEyICswMTAwCgogICAgQWRkIG1pc3Npbmcgc3NJT1Jhd1NlbnQvcmVjZWl2ZWQgZm9yIFNvbGFyaXMuCgpjb21taXQgNTllZWJjNDFhOTQzNTgxMTA3M2ZlYzUwZDc2ZGQ2YWVmOWRkNThhNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgMjAgMjM6MzI6NTMgMjAxMiArMDEwMAoKICAgIEFkZCBzb21lIGVycm9yIGNoZWNraW5nIHRvIGdpdHRvb2xzCgpjb21taXQgODBiMTgzNzU4MjY2NTM2MjZjMmQ3MDQ1MWMyYjU0YTFjNTBhM2NlNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgMTMgMTM6NTU6NDcgMjAxMiArMDEwMAoKICAgIFJlbWVtYmVyIHRvIGluaXQgdGhlIHN5c3RlbXN0YXRzIHByb3ZpZGVyCgpjb21taXQgNzQzY2I2NjcxODkwNDk3OWY1NTg5NTQ3MjUwMTU4NGMzMGM2NmYxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ5OjE1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjcmFzaCB3aGVuIE1ENSBhbmQvb3IgU0hBLTEgaGFzaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IE9wZW5TU0wuCgpjb21taXQgMTg5OGNmYzcxYmRiM2Y0YTE2ODVjNmQyMWI1NGRkMWEzNDgyNTkxYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDg6MTUgMjAxMiArMDEwMAoKICAgIE9wZW5CU0QgNS4yIHN1cHBvcnQuCgpjb21taXQgZGQ1M2ZmYmFmZWIzMWNkZTYxNmE4OTk0OWU3MGUzZDVmZTBjYzFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ2OjQzIDIwMTIgKzAxMDAKCiAgICBGYWxsIGJhY2sgdG8gU0hBLTEgaWYgTUQ1IGlzIG5vdCBhdmFpbGFibGUuCiAgICAKICAgIE9uIHBhcmFub2lkIHN5c3RlbXMgd2hlcmUgTUQ1IGlzIGRpc2FibGVkIHVzZSBTSEEtMSBpbnN0ZWFkIG9mIE1ENSBhbmQgZG9uJ3QgY3Jhc2guCgpjb21taXQgZWE4Zjc0YzgxZjgyYzEwNWI5ZmMwMTk2NWFkY2UxNGIwZDgxODZkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDY6MzQgMjAxMiArMDEwMAoKICAgIEZpeCBOZXRCU0QgbWVtb3J5IGRhdGEgdHlwaW5nCgpjb21taXQgZGRlM2EzNWJhYWViNjgzY2YxNDQxYTE2YTE1NDQxZjhiNDU2YzUyMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ1OjI3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBjcmFzaCB3aGVuIE1ENSBoYXNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgT3BlblNTTC4KCmNvbW1pdCBiNzdiNjdkOGQ2MjlmNzg1NjM5ZTQwMmZhNGZiZWU2Y2NmZTE4ZmE1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0NDo0OSAyMDEyICswMTAwCgogICAgS2VybmVsIHByb2Nlc3NlcyBpbiBEcmFnb25GbHksIGFuZCBmaXhlZCBjcHUgdXNhZ2UgZGF0YQoKY29tbWl0IGQ2YzYyMDEyYzgwODJmYzg4NmY3NDdlMGUyYzliYjhhNmM2NmM2NjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQxOjU1IDIwMTIgKzAxMDAKCiAgICBEaXNraW8gZm9yIE9wZW5CU0QsIGFuZCBzb21lIGNsZWFuLXVwIGZvciBGcmVlQlNEL0RyYWdvbkZseQoKY29tbWl0IDRhNWUwZjRjOTVmYjZjZDEyM2E0OTAxNzg3Mzc2ZTQ0N2QzMzJjMDIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDE0OjIzOjQ4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBhZGRlZCBzaW1mcyAoT3BlblZaIGZpbGVzeXN0ZW0pIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUuCgpjb21taXQgMmEwY2QzNWFjZjMzMjVhNmZkYzBhMTA0MjNmNTRjYjhiNWNlNTIyYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgU2VwIDEzIDE1OjI1OjUyIDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaW5maW5pdGUgbG9vcCB3aGVuIFNJR1RFTSBhcnJpdmVzIGluIG1pZGRsZSBvZiBpbnRlcm5hbCBxdWVyeSBwcm9jZXNzaW5nLgogICAgCiAgICBXaGVuIHNubXBkIHN0YXJ0cyBpbnRlcm5hbCBxdWVyeSwgZS5nLiBmb3IgJ21vbml0b3InIGNvbmZpZyBvcHRpb25zLCBpdCBjYWxscwogICAgbmV0c25tcF9xdWVyeV93YWxrKCkuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgZWl0aGVyIGVycm9yIG9jY3VycyBvciB0aGUKICAgIGludGVybmFsIHJlcXVlc3QgaXMgcHJvY2Vzc2VkLiBBbmQgaWYgU0lHVEVSTSBjb21lcyB0byB0aGlzIGxvb3AsIHRoZSByZXF1ZXN0CiAgICBpcyBub3QgbWFya2VkIGFzIGZhaWxlZC4KICAgIAogICAgUGF0Y2ggb3JpZ2luYWxseSBmcm9tIE1hc2FoaXJvIE1hdHN1eWEsIG1tYXRzdXlhIFthdF0gcmVkaGF0LmNvbQoKY29tbWl0IGJjNDQ5YzBmODVhZTlmYTA4YWM0ZmNlNjcyODJmNDhlYjdhYjE5ODQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxMCAxMzoyNTozOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHZhbHVlIG9mIFVDRC1TTk1QLU1JQjo6ZXh0Q29tbWFuZCB0byBjb250YWluIGZ1bGwgY29tbWFuZCBsaW5lLgogICAgCiAgICBNSUIgZGVzY3JpcHRpb24gb2YgVUNELVNOTVAtTUlCOjpleHRDb21tYW5kIHN1Z2dlc3RzIGl0IHNob3VsZCBjb250YWlsIGZ1bGwgY29tbWFuZCBsaW5lLgogICAgQWxzbyBpbiBOZXQtU05NUCA1LjMuMi4yLCB3aG9sZSBjb21tYW5kIGxpbmUgd2FzIHNob3duLgoKY29tbWl0IGEzOTc4ZjJjYzIwNTZjOTdhNGMzZjMzOGY3MDlhMjAyOTFhZWQ0NzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDA2OjQ4OjM3IDIwMTIgKzAxMDAKCiAgICBQcm9wZXIgaGFuZGxpbmcgb2YgY29uZmlndXJlLWdlbmVyYXRlZCBzbm1wY29uZgoKY29tbWl0IDBmNDY5OTI5MjRkZTVhNGFiMDc2M2E4ZDQ0YTFjZWNlNGE5OTFkODAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDUgMjE6MTY6MzcgMjAxMiArMDEwMAoKICAgIFBhdGNoIGZvciBPcGVuQlNEIDUuMiAoUGF0Y2ggMzU1OTQyMCkKCmNvbW1pdCA5ZWQwYjJlMGFjMGM4ZTU0OWI4ZjlhNTg0NWU5ZDFmYWFjYWI3M2M1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiA1IDIwOjA4OjQxIDIwMTIgKzAxMDAKCiAgICByZmM2Nzc5Cgpjb21taXQgYWVmNzZjYTBjYmEyY2E1NmY2YWExZGI1YzViNThhNTQ5MzlmMzg5YgpBdXRob3I6IHFxc2hrYSA8cXFzaGthQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDMxIDIwOjAwOjA0IDIwMTIgKzAxMDAKCiAgICBBZ2VudFgsIElQWDogUmVzdG9yZSBkZWZhdWx0IHBvcnQgKGJ1ZyAjMzU4MjI4MykuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYy4KCmNvbW1pdCBkN2Q5OGU1YWE5ZWU4Y2E3OTE4Yjc2NzUwNDNkNDc5Y2Y3N2I4M2M0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAxIDEwOjMzOjA2IDIwMTEgKzAyMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgbG9jYWwvc25tcGNvbmYKCmNvbW1pdCA3MWQ4M2JhNDExN2EyY2ZiNzg3NGU5MTgzMmU0NTk3M2RhNDJlZTk4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAxIDEwOjM0OjMwIDIwMTEgKzAyMDAKCiAgICBXaW4zMiwgTVNWQzogTWFrZSBidWlsZC5iYXQgd29yayBhZ2FpbiBub3cgdGhhdCBFTlZfU0VQQVJBVE9SIGlzIGNvbmZpZ3VyYWJsZQoKY29tbWl0IDVlNTAwMDgyNzI4ZjQ1MzU5NWY1MDI0ZDI0MTIwOGM1MWYwOGQyMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDI5IDE4OjEyOjQxIDIwMTIgKzAxMDAKCiAgICBSRUFETUUud2luMzI6IFJlbW92ZSByZWZlcmVuY2UgdG8gdGhlIG5vIGxvbmdlciBzdXBwb3J0ZWQgQ3lnd2luIGNvbXBpbGVyIG9wdGlvbiAtLW1uby1jeWd3aW4KCmNvbW1pdCAxYTM2ZGVlMTY1YjhiZDdkZjNlZjY5NGI3YzNmMjYyMWE1NDQ5ZGFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEF1ZyAzMCAyMDo1NDowMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQsIHNubXB0cmFwZCBhbmQgYXBwczogTWFrZSBFTlZfU0VQQVJBVE9SX0NIQVIgY29uZmlndXJhYmxlCgpjb21taXQgMGUxY2E0NWE2ZjhkOGFjZjQ0YWEyMWEwMDlhOWU1MTE5MmU4NDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBPY3QgMjggMTA6MTE6MjIgMjAxMiAtMDcwMAoKICAgIHNubXBuZXRzdGF0OiBGaXggTVNWQyBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDRhNmQwMzc4YTM5MTY1NzFjZTc2MDRjNGEzZDU0YThjOTZhOGY4MDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gT2N0IDI4IDA5OjU0OjEyIDIwMTIgLTA3MDAKCiAgICBXaW5kb3dzOiBWaXN1YWwgU3R1ZGlvIDYgYnVpbGQgZml4IGZvciBzdHJsY2F0KCkKCmNvbW1pdCA0MWI0OGE2MzcwOTUyYmY0YjEyZDM0ZmIwNWVjNTVmYjA3MDJlOGNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE9jdCAyOCAxNDozNzo1MiAyMDEyICswMTAwCgogICAgV2luZG93czogTWFrZSBzbm1wbmV0c3RhdCBidWlsZCBhZ2FpbgoKY29tbWl0IDI0NTFmODI2NDc5ODgxYTQ5MjZmY2Y4ODg1NWY1ODI1ODVlYjgxM2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gT2N0IDI4IDEwOjIzOjE3IDIwMTIgKzAxMDAKCiAgICB3aW4zMi9idWlsZC5wbDogUmVkdWNlIGNvZGUgcmVkdW5kYW5jeQoKY29tbWl0IDZlOTkzODg2ODNhNmM4NTQwMzVmMDQyYTlkMDdjMDcyMzExN2U4YTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gT2N0IDI4IDA5OjQxOjIwIDIwMTIgKzAxMDAKCiAgICBXaW5kb3dzLCBiYXRjaCBidWlsZDogUmVtb3ZlIHRoZSBvYnNvbGV0ZSB2YXJpYWJsZSAiU1NMIgoKY29tbWl0IDc1NDRhZGM1YTFjNzY4ODllNGE5ZWQ1MWU5NmQyMmQwMmZkNTY5NWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDIyIDE1OjM1OjA0IDIwMTIgKzAwMDAKCiAgICBORVdTOiBXaW5kb3dzOiBQb3J0IGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlIHRvIFZpc3VhbCBTdHVkaW8gMjAxMCBhbmQgbGF0ZXIKICAgIAogICAgRnJvbSBWaXN1YWwgU3R1ZGlvIDIwMTAgb24gaXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNwZWNpZnkKICAgIGluY2x1ZGUgb3IgbGlicmFyeSBkaXJlY3RvcmllcyBnbG9iYWxseSAtIHRoZXNlIGhhdmUgdG8gYmUgc3BlY2lmaWVkCiAgICBwZXIgcHJvamVjdC4gSGVuY2UgdHdvIGFkZGl0aW9uYWwgbWVudSBlbnRyaWVzIGluIGJ1aWxkLmJhdCB0aGF0CiAgICBhbGxvdyB0byBzcGVjaWZ5IHRoZXNlIGRpcmVjdG9yaWVzLgoKY29tbWl0IDFiOGE3OWMxYzJlYjEzZjhiMjA3YzEyYWE2ZTcxYTI5ZmYwMDM5NmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDIyIDE5OjEwOjA3IDIwMTIgKzAwMDAKCiAgICB3aW4zMi9Db25maWd1cmU6IEZhY3RvciBvdXQgY29tbW9uIGNvZGUKCmNvbW1pdCAyYWY3YTczYjBjYThjZGJkMzZhN2YxOWRkOGU1NTc2NGM4NDk4NTUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAyNyAxODoyNzo0MiAyMDEyICswMjAwCgogICAgV2luZG93czogTWFrZSBzbm1wbmV0c3RhdCBidWlsZCBhZ2FpbiAoc2VlIGFsc28gY29tbWl0IGFhNTkxMmI4OTg2Y2RlNzQwOTBiYTE1YmUxOTY0MjYzMDlhMWUxZjApCgpjb21taXQgZmE5OGI0Y2JkNmRjMTVhYTkyNjE2NmVlZjA0ZDViYzhkZmJhYWFkNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBPY3QgMjYgMDc6NTY6MDYgMjAxMiArMDIwMAoKICAgIENvcGUgd2l0aCBhZGRpdGlvbmFsIHN0YXRpc3RpY3MgaW4gL3Byb2MvbmV0L3NjdHAvc25tcCBpbiBSSDYKCmNvbW1pdCA1NDI5MGJlZGUzMzgxNjRjYTY1YTNlZWQyMjRmYTUwNDBkN2RkODU3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAyNiAwNzo1MDoxMSAyMDEyICswMjAwCgogICAgQmV0dGVyIGNsZWFudXAgb2YgImV4ZWMiIGNvbmZpZyB0byBhdm9pZCBjcmFzaCBkdXJpbmcgcmVsb2FkIG9mIGNvbmZpZwoKY29tbWl0IDgyYWEyNDY2NzExOTRmMDRiZTUyYzYyMWU5ZjgzZDBmYWJkMjRmYTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI0IDE1OjMwOjExIDIwMTIgKzAyMDAKCiAgICBEb24ndCBtaXggY29kZSBhbmQgZGVjbGFyYXRpb25zIQoKY29tbWl0IDRlOWVhODQ1NTkyZmZmOGIyYWFlNWQzMThkY2FiZjQxZjk1NzA2MzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI0IDE1OjI1OjM1IDIwMTIgKzAyMDAKCiAgICBEb24ndCBtaXggY29kZSBhbmQgZGVjbGFyYXRpb25zIQoKY29tbWl0IDIxZDVjNjc4NWU5MTZiNTEwMTQ0MGVkMWE0ZjcxYjQxYmEyZWI4MDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI0IDA5OjI3OjIzIDIwMTIgKzAyMDAKCiAgICBSZW1lbWJlciB0byBmcmVlIHRoZSBkZXNjcmlwdGlvbiAoaWYgc2F2ZWQpIGR1cmluZyB1bmxvYWRfYWxsX21pYnMKICAgIChwYXRjaCAzNTY1OTIyKQoKY29tbWl0IDJiOTk0MGNhNTZmYzhkM2Q2MTBlZmQyZWJhOWFlNGViYjc0MWU2NzEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI0IDA2OjQxOjQ2IDIwMTIgKzAyMDAKCiAgICBDbGVhbiB1cCBkaXNraW8gY29uZmlnIGJlZm9yZSByZWxvYWRpbmcuCgpjb21taXQgZjc3NjhmYjY0M2JlMjgyZDYzNTI4OWI1N2Y4OGEwN2QwNzA0ODdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBPY3QgMjMgMTE6NDg6MzEgMjAxMiArMDIwMAoKICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldHguYzogRWxpbWluYXRlIGRlYWQgY29kZSAoc2VlIGFsc28gY29tbWl0IGFhNTkxMmI4KQoKY29tbWl0IDY0YzU2ZjI3YzVlZDQzMmNlOGRlNDRlMjU3OWNhMGM4MDZhNTE3ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDIyIDE3OjQ1OjE5IDIwMTIgKzAwMDAKCiAgICBidWlsZC5wbDogRWxpbWluYXRlIGEgdGVtcG9yYXJ5IHZhcmlhYmxlCgpjb21taXQgMzBhNWQwMTNhODBlOWZkNTBiOGZkMGY3MGZmZDk2ZmYyNmI2ZTQ1NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMjA6Mjk6MDkgMjAxMiArMDIwMAoKICAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgoKY29tbWl0IGY0MGQ0NDA2ODkwNjdlZjZjNGRhN2RkYWRmYjM3M2E0NTIxOTdmYmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDIyIDE5OjQ3OjA2IDIwMTIgKzAyMDAKCiAgICB3aW4zMi9Db25maWd1cmU6IFN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UKCmNvbW1pdCBkMzRlMDU3Nzc5Y2IzMmU5NDMyNDA4OWRjNDYyNTYzODMwOWNmZTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAyMiAxODozNjo1OSAyMDEyICswMjAwCgogICAgd2luMzIvYnVpbGQucGw6IFN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UKCmNvbW1pdCAzMGRhZWYxODYwMzk3ZjA0NWM0MDU1Y2Q2MWQ2NjNkMjkwZGQ0N2YyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxODozMjozOCAyMDEyICswMjAwCgogICAgRml4IE1TWVMga2lsbC9wc2tpbGwgY29uZnVzaW9uCgpjb21taXQgMTRiZTkxMzJiOTExNThiMDUxMjA3MTBiMWZmNmE0YjJhY2NjNTMxZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTg6MTA6NDQgMjAxMiArMDIwMAoKICAgIEZpeCBuZXQwL25ldHggY29uZnVzaW9uCgpjb21taXQgODEwN2E2MzUyZGYyNDc4NjYwOTk0ZWYxMDNkNTI4MDFhNjYwN2NjOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTc6MDM6NDcgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGVycm9ycwoKY29tbWl0IGFhNTkxMmI4OTg2Y2RlNzQwOTBiYTE1YmUxOTY0MjYzMDlhMWUxZjAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE2OjU4OjUwIDIwMTIgKzAyMDAKCiAgICBJbXBsZW1lbnQgdGhlIG1vZGVybiBJUCB2ZXJzaW9uIGFnbm9zdGljIHRhYmxlIGluIHNubXBuZXRzdGF0LgogICAgSWYgdGhlIG1vZGVybiB0YWJsZSBpcyBub3QgYXZhaWxhYmxlIChvciB0aGUgLUNMIG9wdGlvbiBpcyB1c2VkKQogICAgZmFsbCBiYWNrIHRvIHRoZSBsZWdhY3kgdGFibGVzLgoKY29tbWl0IDFhMzRkMjI0OWVmMGQyMjE1ZTU4ODZmOWIzYzk3ZWNmYTdlYjUxOTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE2OjM5OjQxIDIwMTIgKzAyMDAKCiAgICBQaWNrIHVwIGlmRGVzY3IgZnJvbSBpZlhUYWJsZSB3aGVuIGF2YWlsYWJsZSwgYW5kIHVzZSB0aGF0IGFzIHRoZSBuYW1lLgogICAgVmVyeSB1c2VmdWwgaWYgcGNpLXV0aWxzIHdlcmUgYXZhbGFibGUgd2hlbiBjb21waWxpbmcgdGhlIGFnZW50IGFzIHRoZQogICAgbmFtZSBvdGhlcndpc2Ugd2lsbCBiZSB0aGUgdmVyeSBvYnNjdXJlIGNoaXAgbmFtZQoKY29tbWl0IGI0Y2FmNTQzY2ZmN2RiYThmOWFjY2EyYjllYTg4YzliNzlkYzM5ZWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE2OjMyOjEyIDIwMTIgKzAyMDAKCiAgICBQaWNrIHVwIEhDIG9jdGV0cyBhbmQgTWNhc3RPY3RldHMgZnJvbSAvcHJvYy9uZXQvbmV0c3RhdCBvZiBjdXJyZW50IFJIRUw2CiAgICBhbmQgRmVkb3JhIGtlcm5lbHMuCgpjb21taXQgYzY1NWZjZTc4NDUzMmE1MjNmN2RiNTgyZDBjZDA3ZGVlNGFkN2FjNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTY6MjU6NTkgMjAxMiArMDIwMAoKICAgIFRyeSB0byBiZXR0ZXIgY2xhc3NpZnkgTGludXgga2VybmVsIHRocmVhZHMgYXMgaHJTV1J1blR5cGU9T3MKCmNvbW1pdCBlMWE4Yzk1Y2E1NWY1Njk1ODVjODhlMTc0YTQzZjZkNDEyOWM0MzlkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyMCAwOTo1OTo0MSAyMDEyICswMjAwCgogICAgQ29ycmVjdCB0aGUgbmVzdGluZyBvcmRlciBvZiB0aGUgZG94eWdlbiBlbmQgc2VjdGlvbiBjb21tZW50IGFuZCB0aGUgZmVhdHVyZSByZW1vdmFsIGVuZGlmLgoKY29tbWl0IGY2N2FkZjJhMzdhOGMxODJlYWNiY2ZlNTJkNWI3ODkxOTFhNjU5MjkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMTY6MzI6NDcgMjAxMiAtMDcwMAoKICAgIHJlbW92ZSByZWxlYXNlIHJlcXVpcmVtZW50cwoKY29tbWl0IDNlNTQzMzAzOTNjY2M4NjUyNWVkNmZiOWEwZmMxOWMwNjgzMDY2MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5lQHJlZGhhdC5jb20+CkRhdGU6ICAgVHVlIE9jdCA5IDA2OjM0OjEwIDIwMTIgLTA3MDAKCiAgICBmaXggZG91YmxlLW5lZ2F0aXZlIHR5cG8KICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucmMzIC0+IFY1LjcuMgoKY29tbWl0IDUwNTRiNTcwNjE5ZGYwYTgxOTU4YTA0NWJlZjEzNWIyMDIwNWYwMzYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMTU6MjY6MDUgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMgoKY29tbWl0IDU2YTc5N2ZmM2U3MWRjODg2NDY3ZDE3Y2UwMjViMDIzN2M4YzFjYzMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMTQ6NDI6MjMgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIKCmNvbW1pdCAwODEzZjhiNjJkZjBlODQ0MGZmZWYxNjFjZTEzNGZmOTQ1NWU3ZGU5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZUByZWRoYXQuY29tPgpEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMzo1OCAyMDEyIC0wNzAwCgogICAgZml4IGRvdWJsZS1uZWdhdGl2ZSB0eXBvCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGE2YTg4OTI3NTM0Njg0ZTI3NWNjZjBlNzgwNTEzMDk0YTczZmM2YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMDY6MzE6MjEgMjAxMiAtMDcwMAoKICAgIEFJWCBuZXQtc25tcDUuNy4xIGhyU1dSdW5QYXRoIG5vdCBjb21wbGV0ZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA1OGE0ZDg4MzkwMjFmNzcyYzM1YTczMmJkMDk2ZDFlMjkwZGMwYTYyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCA5IDA2OjMwOjU3IDIwMTIgLTA3MDAKCiAgICBBSVggbmV0LXNubXA1LjcuMSBoclNXUnVuUGF0aCBub3QgY29tcGxldGUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjI2ZWFiZWM0ZWE5OGU1MzU5MDg5NzkwODU4NDc5YTU5YTI2Y2RjYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgMzAgMjM6MzA6MjggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1vdmUgdGhlIGNoZWNrIHRoYXQgdGhlIHBkdSB2YXJpYWJsZSBpcyBub24tTlVMTCB0byBiZWZvcmUgdGhlIGZpcnN0IGRlcmVmZXJlbmNlIG9mIGl0LgoKY29tbWl0IDY4YWFiNTcyYzJkMjc0NmI1MWE5NWViYTExMDU2OGMzOGIwNTA4MDgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI1IDE5OjA3OjQyIDIwMTIgLTA3MDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNy1wYXRjaGVzCgpjb21taXQgMGE0MTUzM2IxYjQ5ZjAwZDczNTdhM2QyYmVhNWRmYTc1ZThlZGNkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBTZXAgMjQgMDA6MDc6MTkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB0ZXN0IGNhc2VzIGZvciBzbm1wX3NlcnZpY2UKCmNvbW1pdCBhNjFiNDhkNzhlMTFkOTQ1ZGVmNDZmZGUwZjdkNTVmNzkxOWMzMzVhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCAyMyAwNzo1MzowOSAyMDEyICswMjAwCgogICAgUHJlZmVyIGNvcHlfbndvcmRfY29uc3Qgb3ZlciBjb3B5X253b3JkKE5FVFNOTVBfUkVNT1ZFX0NPTlNUCgpjb21taXQgOWJmZmM1NDEzZDBkODgyMzk4YjA2ZjQxMDlhYzgwN2FmMmY3ODM0NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgMjMgMDA6Mjk6NDQgMjAxMiArMDIwMAoKICAgIFNpbXBsaWZ5IGxvZ2dpbmcgdGhyb3VnaCB0aGUgdXNlIG9mIG5ldHNubXBfY29uZmlnX2Vycm9yCgpjb21taXQgZDA5ZDUzYTBmYTZkZjYzYjIxZTZmMTI3MzFiZWU1MWEzNjI0ZTg1ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBTZXAgMjIgMjE6MzA6MDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBjcmFzaCBvbiBpbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgoKY29tbWl0IDAyZGNlNmY0M2I5OWY4NTk0MTYyNzkyOGMxYTUwMjJkNjcyNWQxMjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgU2VwIDIyIDIxOjI4OjUxIDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgdHJ1bmNhdGUgc2luZ2xlIGRlZmF1bHQgdHJhbnNwb3J0IGRvbWFpbnMKCmNvbW1pdCAyMTFlM2M3MDYyNTk2NTQ0MWIyYTAyOWE2MTEzODAyOTc0NjczYzQzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAxMToyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNyYXNoIGZyb20gZW1wdHkgdmFsdWVzIGluIC0tdG9rZW49dmFsdWUgYXJndW1lbnRzCgpjb21taXQgYWYzZDJkOTczYjFlOGUyOWQyMDVkOGEwN2FjZDgyYjFmODU0ODE5ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBTZXAgMjIgMTA6MzA6MTYgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCB0aGUgc3ltYm9sIE5FVFNOTVBfUFJJbyB0byBoZWxwIGluIHByaW50aW5nIG9pZCB2YWx1ZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucmMyIC0+IFY1LjcuMi5yYzMKCmNvbW1pdCA4YjQ1MjkyMzAxZjAzNDlmZmI2OWQ0ZmQ4NTk1ZjJkNWIxOTllNmI2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNSAxOTozNTozOSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnJjMwoKY29tbWl0IDBjYmZmYjU2NWU2MmFlZjkzN2ZjNzAwZDhkM2MzYjhjNjVkZGZhNjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI1IDE5OjA3OjQwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnJjMwoKY29tbWl0IDQwNTA1OTcxYWRkNmEzYjZmNTk1NGNmYmRlNTMyNzQ5YmZiY2IxNmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjM0OjM3IDIwMTIgLTA3MDAKCiAgICBmaXggZm9yIGhpZGRlbiBDTVNHX3h4eCBtYWNyb3Mgb24gQUlYCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDYwZjBhOWU5ODNhYjgyN2M4MjRlMzk3ZDYyYWVmZjQ4YTYwZjAxMzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjMxOjEyIDIwMTIgLTA3MDAKCiAgICBGaXggcHN0YXQgbWVtb3J5IGxlYWsgb24gaHB1eCAxMWkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMTNiZDRkNTZiYWE5ODg2MDE4YTAwNDc3ZTMyMTRlYmUwMjcwNWZmZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MzE6MDQgMjAxMiAtMDcwMAoKICAgIEZpeCBwc3RhdCBtZW1vcnkgbGVhayBvbiBocHV4IDExaQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwODA1NDIwODEzZGUxNTZjN2ZjNTE0MjUzNGZiNDIwYTBmY2MzNTcyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzoyODo1OSAyMDEyIC0wNzAwCgogICAgZml4ZXMgQVQgY29kZSBvbiBocHV4IDExaQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBiZGIzYjE0NjM4MGRiMTMxNmNhYmQ1OGI3MDQ0MzZlN2VlY2RkOWY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzoyODo1MCAyMDEyIC0wNzAwCgogICAgZml4ZXMgQVQgY29kZSBvbiBocHV4IDExaQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlOTM2Y2Y4MTBhNDczNzkxNTZkOTEzYTcxNGUzODE2MTgxYTBkM2RiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzoyNToyMCAyMDEyIC0wNzAwCgogICAgZml4ZXMgZGlzQXZhaWwgb24gRnJlZUJTRCB1ZnMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjA4YWI1Nzg4N2U1NTY2ZTYzNTA5YTNmN2U1ZDBhM2UyODkyZjRhNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MjU6MDIgMjAxMiAtMDcwMAoKICAgIGZpeGVzIGRpc0F2YWlsIG9uIEZyZWVCU0QgdWZzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnJjMSAtPiBWNS43LjIucmMyCgpjb21taXQgMDdmOTE0NTY0ZTA5NzIyNGQ2Nzc1MTVjMmY1ZmQxZjNjMGM5ZWI0MgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1NDo0MiAyMDEyIC0wNzAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFlZTIxN2MwN2VhOWYzNGEzMjI2OGU5NjZjN2VjZWYwMzZlYzRhOTYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgU2VwIDEgMDk6NTQ6MzggMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucmMyCgpjb21taXQgMTE5YjBkM2NmMTJjOTdjYTNjNzRkNmQxZTcyMzE5NjcwYTgzNzhhYQpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1MTowOCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU2MDQ3MzogZnJvbSBmZW5uZXI6IEhhbmRsZSBUaW1lVGlja3Mgd2hlbiBwcmV0dHktcHJpbnRpbmcgT0lECiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGM5NGM2MmVhMGVkY2ViYmZiYjczZmFiNmVjZGRjNjc5Zjc2OTRkYWIKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgU2VwIDEgMDk6NTE6MDggMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1NjA0NzM6IGZyb20gZmVubmVyOiBIYW5kbGUgVGltZVRpY2tzIHdoZW4gcHJldHR5LXByaW50aW5nIE9JRAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2ZDdmOWViMGRlY2RiOTY4MjgzNmZmZDAzZjE5NzQyMTk3YWQ4N2RiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAyOSAyMToxNDo0NiAyMDEyICswMjAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBvdmVycnVuIGluIGZzeXNfZ2V0ZnNzdGF0cy5jIChwYXRjaCAzNTU5NDE3KQoKY29tbWl0IGYyMzVlZThiMzJlZWQxZGUzZjFlNDIwMmVmNDViNjM3N2ZiY2UxNjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDI5IDIxOjA3OjE0IDIwMTIgKzAyMDAKCiAgICBGaXggZm9yIGhyU3RvcmFnZVRhYmxlIG9uIEFJWCAoYnVnIDM1NTcxNTkpCgpjb21taXQgNzhjYzlkNWNjZDg2YjE3MDYyMmFhYzU0M2MzNDVjMDIwNzU1Yzc4YQpBdXRob3I6IHN0aGVuIDxzdGhlbjIzOTM0QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE3OjE4OjA5IDIwMTIgLTA3MDAKCiAgICBhZGQgbWlzc2luZyBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgdW5kZXIgbmV0L29wZW4tYnNkCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDRlZjlkY2Q4MGIwYmRhMWUxOGI3ZTM0OWEwOGJjMGYyMmE3ZTc1NWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDI4IDE3OjE2OjM3IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBPcGVuQlNEOiBQQVRDSCAzNTU5NDE0OiBmcm9tIG5iYTogc3VwcG9ydCBPcGVuQlNEIGZvciBocl9zd2luc3QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMGI1NjlmY2NlYTk0MTRjNTBjZmQ2YjBlODNlMTgzMWJhMTI5MWNlMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTQ6NDUgMjAxMiAtMDcwMAoKICAgIGFkZCBtaXNzaW5nIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyB1bmRlciBuZXQvb3Blbi1ic2QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMWQzYzdiZTdmYTdhMzhmZDNmYzM5NzIwYmI1Y2I3MGY4YmQ3MTE2MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTQ6MjIgMjAxMiAtMDcwMAoKICAgIGFkZCBtaXNzaW5nIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyB1bmRlciBuZXQvb3Blbi1ic2QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZmY0Mzg0MzNhY2EwOTZiYmJlYTI5ZGQzMGRmZDVjNTUyMzc2MWE3MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTY6NTA6NDYgMjAxMiAtMDcwMAoKICAgIEZpeCByZWFsIG1lbW9yeSByZXBvcnRpbmcgb24gQlNEIHN5c3RlbXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYzQyOWE0ZjM5ODRkYWU3OTFlMzA3ZGY3MDIyNTFmOTZlZjA0N2Q4OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTY6NDk6MTAgMjAxMiAtMDcwMAoKICAgIEZpeCByZWFsIG1lbW9yeSByZXBvcnRpbmcgb24gQlNEIHN5c3RlbXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNDFkOTgwYzAxNTU2NGRiN2YyMmY3NjMxOTBmNjFhYzBkNTZiYTNiMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgMjQgMTQ6MzU6NTMgMjAxMiArMDAwMAoKICAgIFdpbmRvd3M6IFVuYnJlYWsgRExMIGJ1aWxkCgpjb21taXQgMjc5MzkyM2JmZTJiMDI2ZmNhZWFmNTM4YWU1MDNmMTA1Y2IzMTViYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMyAyMjoyNjoyMCAyMDExICswMDAwCgogICAgYWRkZWQgbWlzc2luZyBUTFNUQ1AgbWVudGlvbiBpbiB0aGUgaGVscCBvdXRwdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5wcmUzIC0+IFY1LjcuMi5yYzEKCmNvbW1pdCA5ZWM1YzU5OTc4MDI1MWRjZDMxNTVmOWFjOTgwNmVjZTdlZDZiYTIyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEF1ZyAxMSAxMjowMDozNyAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnJjMQoKY29tbWl0IDMzNThiNjViMTFlMmMwZWU3MTJmNjA5ZjAyMDcxMjYwZjc1ZjliYjMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXVnIDExIDExOjM5OjM4IDIwMTIgLTA3MDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNy1wYXRjaGVzCgpjb21taXQgNDg0OWE0MzBkYWFmYjkxYzdhNjFiZmJiYzE3ZjkyOTllNThmY2Y2NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBdWcgMTEgMTE6Mzk6MzUgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucmMxCgpjb21taXQgMWJjMjY4NDI4ZTgyOTg1MmM5ZWYwYTc5NTUyY2E0MDQ1YWRkMjhhMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAyMjo0Mjo1MiAyMDEyICswMjAwCgogICAgTWFrZSBzdXJlIHdlIGhhdmUgYW4gaW5pdGlhbGl6ZWQga3ZtIHN0cnVjdHVyZSB3aGVuIHF1ZXJ5aW5nIHByb2MgdGFibGUgb24gQlNELgoKY29tbWl0IDdlNjdjNTAzOGI2YWFiZmRhMTkzOWVhODFkOTQwYjI0MDAwY2ZiNTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDE0OjI3OjA4IDIwMTIgKzAyMDAKCiAgICBSZW1vdmVkIGVycm9yIG1lc3NhZ2Ugd2hlbiBmaWxlIGNhbm5vdCBiZSBvcGVuZWQuCiAgICAKICAgIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgY2FsbGVyLCBub3QgaW4gdGhlIGZ1bmN0aW9uLiBUaGVyZSBpcyBvbmx5IG9uZSBjYWxsZXIgbm93LCB1ZHBfZW5kcG9pbnRfbGludXguYy4KCmNvbW1pdCA1OWIwZGUwYjhmYTczZWI0MDMwMDZjZWU3NWZmODY1MWUxNTg1ZTI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxNDoyMzoxNCAyMDEyICswMjAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9ycyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBmOTVkZjYzNDFiMWQwNjI0OTQ0M2U1MTZiNTlhNDNjZGZhM2Q0Nzc3LgogICAgCiAgICBUaGlzIGlzIGVtYmFyYXNzaW5nLCBJIGNvbXBpbGVkIHRoZSBzb3VyY2VzIHdpdGhvdXQgLS1lbmFibGUtaXB2Ni4gU29ycnkgZm9yIGluY29udmVuaWVuY2UuCgpjb21taXQgNWQ3ZWRhZGQ0NzYxNjgwYjY2ZDFkZjNiZmRlN2NhNWIxNmNhNWExNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6NDY6MzUgMjAxMiArMDIwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBmOTVkZjYzNDFiMWQwNjI0OTQ0M2U1MTZiNTlhNDNjZGZhM2Q0Nzc3LgoKY29tbWl0IDQzYzk3YmJhYWYyMTFmNGM3ZjdjNzA0Y2ZjYjkwMWRmYmY4MzQ4NzQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDEyOjMwOjA5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnRXJyb3IgZXhwYW5kaW5nIFhYWCB0byA2NGJpdHMnIG1lc3NhZ2VzLgoKY29tbWl0IDhlNWNmMmE3MmE0NmNkNDgzZDIyZTYyOTBhNmM4YzRjMjZhZjZhZDIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDEyOjI1OjQ4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiByZW1vdmVkIGNvdW50ZXItNjQgZXJyb3IgbWVzc2FnZXMuCiAgICAKICAgIFRoZXNlIG1lc3NhZ2VzIGRvIG5vdCBzYXkgZW55dGhpbmcgdXNlZnVsLCBjYWxsZXIgc2hvdWxkIGNoZWNrIHRoZWlyIHJldHVybiB2YWx1ZSBhbmQgcmVwb3J0IGl0LgoKY29tbWl0IGY5NWRmNjM0MWIxZDA2MjQ5NDQzZTUxNmI1OWE0M2NkZmEzZDQ3NzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDEyOjAxOjI1IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcmVtb3ZlZCBlcnJvciBsb2cgbWVzc2FnZXMgd2hlbiBJUHY2IGlzIGRpc2FibGVkLgoKY29tbWl0IDE4ZGFjZThlNGEzNmIwODNkNmVmNzE3NzM1YzYzZTdmNDAyMjRkYjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDEwOjQxOjQ1IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBhZGRlZCBDVkZTIChDZW50cmFWaXNpb24gRmlsZSBTeXN0ZW0pIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUuCgpjb21taXQgOTBmNDMxYjQ1ZDIxNTA2NDI3YmMwYmQxZDRlZTY5ZTBiOGVhMzBiYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMzoxMDo1MCAyMDEyICswMjAwCgogICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCIHZlcnNpb25zCgpjb21taXQgOWU3YTBiOWU1ODBkM2IxZWE2MTk4YTc0MTRjODE2YzIzYjEyM2IxMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjoyNzoxNiAyMDEyICswMjAwCgogICAgVXNlIGEgd3JraW5nIGF3ayBmb3IgU29sYXJpcwoKY29tbWl0IDBlMzkyMmFlMjFlNGI3ZWM1Mzg4NjdhZmQyMmNlNzRkNzQxZTBmMWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjI6MTc6MzQgMjAxMiArMDIwMAoKICAgIGZpeCBwcm90b3R5cGUgZm9yIGtsb29rdXAKCmNvbW1pdCBhMjIxMDk3MTFhNmQxZWMxNGI2YTNmMWNhYzIyMWQ3MDI2M2YxMDRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIyOjA4OjEzIDIwMTIgKzAyMDAKCiAgICBmaXggcHJvdG90eXBlcyBmb3Iga2xvb2t1cAoKY29tbWl0IGFjMDYyOTcyYzU4NTE3NGY5NWQ3YmE4N2FhNWVjNTRjNDJmZGVjNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjI6MDA6MjYgMjAxMiArMDIwMAoKICAgIGZpeCBwcm90b3R5cGVzIGZvciBrbG9va3VwCgpjb21taXQgN2NkZDhlYmVmOTUwN2ZlNzY2MTA3Y2E5ZmVlMDU0YzQ0Y2MwYmFjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBBdWcgNSAwODoxMzo1OSAyMDEyICswMDAwCgogICAgTWFrZSBzbm1wX2FsYXJtX3Jlc2V0KCkgdXNlIHRoZSBtb25vdG9uaWMgY2xvY2suIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IDM3YmE3ZTIuCgpjb21taXQgMDIzZjYxZWE3ODNiZmNjNTNmZTkwYWE2NjU0NWM1YWVhMmRiODA2MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgOCAxNjoyNjo1NCAyMDEyICswMDAwCgogICAgRml4IGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBjb21taXQgMDI4NjE0ZWNmMmQ2NzM5ODY5OWRjM2JkNzg0MDI5ZjMzNjBmMmUxMwoKY29tbWl0IGNkODIwOTQ5YTE0OTFhZjEwM2E4NTU1ZjZiZGFlMDQ4NTFmM2QyODUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDggMTY6MTY6NDMgMjAxMiArMDAwMAoKICAgIFVuZG8gYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IGNvbW1pdCAzN2JhN2UyMGE1MjFmYmYwNDU4YTBjNzdlZWEyZTVlMzZiZDdlYzBhCgpjb21taXQgZjE0MzAwOGNjYzU3ZWExMGNiYjg4YWIzNTU0ODIyYjE3YjYyNzBhYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBBdWcgNSAwODo0NTo0MiAyMDEyICswMDAwCgogICAgTWFrZSBnZXRfZXhlY19vdXRwdXQoKSB3b3JrIG9uIGJpZyBlbmRpYW4gc3lzdGVtcy4KICAgIAogICAgVW5kbyBBUEkgYnJlYWthZ2UgaW50cm9kdWNlZCBieSBjb21taXQgNzM3NGI4NGZlNGMyZWY4NDk3ZmRlM2RhZTgwYTY5YWE4OWViYTE5Yy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5wcmUyIC0+IFY1LjcuMi5wcmUzCgpjb21taXQgODQzMjJlMGRjMmE4OTc0NjQ2NTQyZDk4ODFiYzAxYjQzZGMzYTEyZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTY6MjQ6MDcgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5wcmUzCgpjb21taXQgOGZlYzdhODFkNjEzM2E1ZjA1ZWQzNGE1YWY5ODA2YWY1ZDEyODIyMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTU6NTc6NTYgMjAxMiAtMDcwMAoKICAgIGZpeCB0aGUgYXNzZXJ0IGNoZWNrIHRvIGFsbG93IGZvciBzb21lIGtub3duIGFzc2VydHMKCmNvbW1pdCBkZmRlNmQyZGRkNTE5YzhjMmFlMTc4ODc3NGZkZjkwZDhiZWEwMmIxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAxMDowODoyNCAyMDEyIC0wNzAwCgogICAgaW5jbHVkZSBlcnJuby5oIGFuZCBkb24ndCB1c2UgY29udGludWUgb3V0c2lkZSBhIGxvb3AKCmNvbW1pdCA3Y2ZmZTAyMjJjZDk4YTIxZTMwZjQ0YzNkZjlmMGQ5MGJmMDk2ZmU5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNDoxMzo1MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUzCgpjb21taXQgMjJhZjdmZDQ2Nzc2YThkYjIzNjJlODhhY2IxYjY5YjE2NWMwMzRiNgpBdXRob3I6IGJsZW50eiA8YmxlbnR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEzOjUyOjQwIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhaXg6IFBBVENIIDM0MDM0MzM6IGZyb20gYmxlbnR6OiBJc3N1ZXMgd2l0aCBoclNXUnVuTmFtZSBhbmQgUGFyYW1ldGVycyBvbiBBSVgKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNTE2YjlmODI3NWI4ZGIwM2NkYzQxMDc4ZTY1YzIxNzAzMDlhM2Y4YgpBdXRob3I6IEp1bGllbiBQaW5vbiA8anBpbm9uQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEzOjI1OjMxIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBwZXJsOiBQQVRDSCAzNDEyOTM5OiBmcm9tIGpwaW5vbjogUmVwYWlyIHRrbWliCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDhmMjMwZjQwMWM2NGQ4MjI4ODNhYzQ0NDYyNGEyYzJmZDcxMjhkOGUKQXV0aG9yOiBIYXJzaGEgU2hpdmFubmEgPG5hYW51aHNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjI6MTEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1NTI3NDU6IGZyb20gbmFhbnVoczogZml4IHRvIHN1cHBvcnQgMzIgY2hhcnMgZm9yIFZBQ00gbmFtZXMgYXMgcGVyIFJGQy0yNTc1CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDM0MDA4ZDMyYWVmNDNkOGJiZTEwMDBmYjliZjk0NjQyYzA1MTRmNmYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEzOjIwOjMxIDIwMTIgLTA3MDAKCiAgICBmaXggdGhlIGFnZW50eCBwaW5nIHBhdGNoIHNvIGl0IHdvcmtzIHdpdGggdGhlIG5ld2VyIGFsYXJtIHN0cnVjdHVyZSBuYW1lcwoKY29tbWl0IDk2MjY3NjM5NGQzZmU1NTdlYWQ5MTA1N2I0ZDc4MDIyNmRjMGQ2YjMKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxtaWpvc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMjo0ODowMSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MTQwNTE6IGZyb20gbWlqb3M6IHNubXAtYnJpZGdlLW1pYjogZml4IGZvciBkb3QxZEJhc2VUYWJsZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAzN2JhN2UyMGE1MjFmYmYwNDU4YTBjNzdlZWEyZTVlMzZiZDdlYzBhCkF1dGhvcjogVmluY2VudCBCZXJuYXQgPHZiZXJuYXRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTI6Mjc6MjggMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDgxNjg2OiBmcm9tIHZiZXJuYXQ6IERvbnQgcGluZyBtYXN0ZXIgYWdlbnQgdW5sZXNzIHRoZXJlIGlzIG5vIGluY29taW5nIHRyYWZmaWMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMmJlNWZlYWRiMDU0MDg0NmUwZTNhZGEyN2VmYjk3ODk0YTRjYmQ1MgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMDc6Mjk6MTcgMjAxMiAtMDcwMAoKICAgIGFkZGVkIGEgZGFyd2luIDEyIHZlcnNpb24KCmNvbW1pdCAxZjliY2QyMWU3YzJkNWVmZmI2MmFhMDFiN2I4N2U0M2RjODYyMTRjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTQ6NDM6MjcgMjAxMiArMDIwMAoKICAgIEZpeGVkIFNDVFAtTUlCOjpzY3RwQXNzb2NQcmltUHJvY2VzcywgdGhlIGxpc3Qgb2YgcHJvY2Vzc2VzIHdhcyBub3QgaW5pdGlhbGl6ZWQuCgpjb21taXQgNDhiZTVlODlhYTA0YWRiMGRmN2UwOTRiMmZlNDYzMDE1NDI5ZmM5OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEzOjQ4OjMxIDIwMTIgKzAyMDAKCiAgICBBZGRlZCBsb2cgbWVzc2FnZSB3aGVuIGlwVGFibGUgbWlzc2VzIHNvbWUgaW50ZXJmYWNlcy4KCmNvbW1pdCA3NTIzZjBmMDFiYTRkYjY1YWMxNjQ3YTIzMjI4Y2YwNmMwYjcyYTAzCkF1dGhvcjogTWFyaXVzeiBDZWllciA8bWNlaWVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDEwOjE5OjMzIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTM2NjkyOiBmcm9tIG1jZWllcjogY3JlYXRlIGEgdW5pdCB0ZXN0IGZvciByZWFkX2NvbmZpZyBBUElzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGMwN2I4ZDliMzc3MGI2MTVjOGUxNjJkYmRmNzY0MzgwNWYzNzJkNzUKQXV0aG9yOiBNYXJpdXN6IENlaWVyIDxtY2VpZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MTg6NDIgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1MzY2OTI6IGZyb20gbWNlaWVyOiBGaXggZm9yIGNhbGxiYWNrIGNhbGxpbmcgd2hlbiB1bnJlZ2lzdGVyaW5nIGNvbmZpZyBoYW5kbGVyCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDVjMjQyNGYwN2Q4NWMwYzRmNzlkNmM1ZmFmNjRkN2YzZWU4NjE3MjYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDEwOjA4OjQyIDIwMTIgLTA3MDAKCiAgICBkb24ndCBkdXBsaWNhdGUgc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBkZWYKCmNvbW1pdCA3Mzc0Yjg0ZmU0YzJlZjg0OTdmZGUzZGFlODBhNjlhYTg5ZWJhMTljCkF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDA5OjQxOjE3IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzgzOTcwOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsZSBlcnJvciBvbiBGcmVlQlNEIDkueC9QT1NJWGlmeSBhdXRvX25saXN0LCBldGMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjcwZDk2ZTc4NjU5MGZkZDMwYTE2YTMzMDBjMGVkNWJkNmU1MzIxNApBdXRob3I6IE1hcmsgUnVzayA8dXNlcl9pZD0zNDk4OTVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjM6Mzk6MjIgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDI0OTMzOiBmcm9tIHVzZXJfaWQ9MzQ5ODk1OiBVc2UgTkVUU05NUF9EU19BR0VOVF9BR0VOVFhfVElNRU9VVCBmb3IgdGhlIGRlZmF1bHQgdGltZW91dAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmMWVhZWMxNWVmNjAzYjhjZTU0MjkzMmZmZGJkODc4OGMzZDFhY2M1CkF1dGhvcjogRGFuaWVsIEhvYmkgPGhvYmlkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjI4OjAxIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzUzMDc5NDogZnJvbSBob2JpZDogcGFzcy9wYXNzX3BlcnNpc3Q6IHVucmVnaXN0ZXIgTUlCIHdpdGggY29ycmVjdCBwcmlvcml0eQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBkNzgzYWQ5OTBlOTE0YzBlZTFjOThkMGE5M2E0MjllYjJiMmY0OTk3CkF1dGhvcjogRG91ZyBNYW5sZXkgPHRla2thbWFuZW5kbGVzc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMzoyNTo0MCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzUyNjU5OTogZnJvbSB0ZWtrYW1hbmVuZGxlc3M6IEEgYnVnZ3kgU05NUHYzIGFnZW50IGNhbiBjYXVzZSBhIG5ldC1zbm1wIGNsaWVudCB0byBoYW5nCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU5ODUxNTIwYzE4ZDdlZDE3MjQwNGEzN2RjMGRjN2ExMzZiZmFlZGQKQXV0aG9yOiBEYW5pZWwgRXZlcnMgPGRhbmllbC1ldmVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMzoxNDoxOSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU0ODI1NzogZnJvbSBkYW5pZWwtZXZlcnM6IGZpeCBmb3IgcmVjdXJzaXZlIHB0aHJlYWQgbXV0ZXhlcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlN2EzNzY3OGMyYjczNTlhZmQ0NGEzMDdlODI0YzFmN2Q3YTBjODdkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMTozNTozNSAyMDEyIC0wNzAwCgogICAgTkVXUzogb3N4OiBwYXRjaDogMzUxNDA0OSBmcm9tIHR3b2JpdHMtZ2l0aHViOiBmaXggY29tcGlsYXRpb24gb24gZGFyd2luMTEKCmNvbW1pdCAxMjIxNDI2YWJhZDE1YjliMmZjZWU4ZjFlMzJhYjUyZWYyNjkyOTUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTQ6MTg6MjQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IFBBVENIRVM6IDM1Mjk1NDE6IERvbid0IHJlZmVyIHRvIGludGVybmFsICdteScgdmFyaWFibGVzIGZyb20gZXh0ZXJuYWwgc2NyaXB0cwogICAgCiAgICBGaXggcHJvdmlkZWQgYnkgTGV6eiBHaWxlcwoKY29tbWl0IDljMDZjMjIwMmRjMDU2NzAzYzgwOTU5YTBlY2E5YTcxNjg0YzI4ZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMzoyOTozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogTGludXg6IFBBVENIRVM6IDM1MzY0MjA6IEVuc3VyZSBzbmQvcmN2IG1lbW9yeSBidWZmZXJzIGFyZSBzdWl0YWJseSBhbGlnbmVkCiAgICAKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFR5bGVyIE9sbXN0ZWFkCgpjb21taXQgODliODJjNTVmOWVmZDJlOGFiOGM2ZDY1ZmE1NjdjNWIxZmFjMTg0MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEzOjE0OjA3IDIwMTIgKzAxMDAKCiAgICAiSWRsZSIgcHJvY2Vzc2VzIChpLmUuIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGNyZWF0ZWQpIGFyZSBwcm9iYWJseQogICAgYmVzdCByZWdhcmRlZCBhcyAid2FpdGluZyBmb3IgYW4gZXZlbnQiIHRvIGJlY29tZSBydW5uYWJsZSAtIGkuZS4gJ25vdFJ1bm5hYmxlKDMpJwogICAgVGhhdCBldmVudCBiZWluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgY3JlYXRpb24gcHJvY2Vzcy4KICAgICAgIEl0J3MgYXJndWFibGUgd2hldGhlciBvciBub3QgdGhleSBhcmUgc3RyaWN0bHkgImxvYWRlZCIsIGJ1dAogICAgdGhpcyBmZWVscyBsZXNzIG1pc2xlYWRpbmcgdGhhbiByZXBvcnRpbmcgdGhlbSBhcyAnaW52YWxpZCg0KScKCmNvbW1pdCA2ZTc4MGE1YmYwZDY0YmY0N2RmYmY0NzlhZTdmNTZjMTBmZjgxNjZlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTI6NTc6NTQgMjAxMiArMDEwMAoKICAgIENsYXJpZnkgbWVhbmluZyBvZiBoclNXUnVuU3RhdHVzICdpbnZhbGlkKDQpJwogICAgRW5zdXJlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBhbHRlcm5hdGl2ZXMgZG9uJ3QgY29uZnVzZSBjb2RlIHN5bnRheAoKY29tbWl0IDk5YjM1M2Y3MjUzYTViYjM4Yjg2ZjMxYzI3MDhlMTZiMzRhNDZjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMjo1MDo1MSAyMDEyICswMTAwCgogICAgQWRkaXRpb25hbCBwYXRjaCBmcm9tIFBhdGNoIElEICMzNTQzMDAwCgpjb21taXQgZDBlMDNmZTRhMjM2OTQ1ZGFmNDJhZjdhNDcwOTRlNjg2ZjliZGI5ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEyOjQxOjAyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzU0MzAwMDogVmFyaW91cyBmaXhlcyB0byBSbW9uIGNvZGUKICAgIFN1cHBsaWVkIGJ5IFBhdHJpY2sgUml0dGVyCgpjb21taXQgNjYzMmEyYjliOWZhZDFhMGIwZDZiYWVkZjJhMmIzOTFmNWQ0ZTkxNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDE0OjM5OjQyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDM1MTcwMzA6IEVuc3VyZSBsYXJnZSB0YWJsZXMgYXJlIHdhbGtlZCBwcm9wZXJseQoKY29tbWl0IGI4ZDE2NjA0ZGJiMmY4MGViZTI4NTIzMjJhYTgzMzYxYTAzMjM3OTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxNDoxOTowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYXBwczogQlVHOiAzNTI5NzY4OiBCZSBtb3JlIGNhcmVmdWwgd2hlbiBzdHJpcHBpbmcgb2ZmIG51bWVyaWMgc3VmZml4ZXMKCmNvbW1pdCAwYjNhZDQ0ZWM0YzFiOWY0MWRjM2VmNzBlNmEzOGE1M2VmMjY4YWRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTM6MzQ6MTAgMjAxMiArMDEwMAoKICAgIEZpeCBjb21tZW50cyBkZXNjcmliaW5nIEZyZWVCU0QgcmVsYXRpb25zaGlwcwoKY29tbWl0IDhjZjdhODkxODdhOTk2ZmFmZjA0MDQxNDk4NmZmYTVkNzhkNTY4M2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMzoyMTo1NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMzUzMjIzNDogRml4IHR5cG8gaW4gbGlidG9vbCBzY3JpcHQKICAgIChhZGRyZXNzZWQgcHJvcGVybHkgaW4gbGlidG9vbCAyLjQuMikKCmNvbW1pdCA0MjU4ZDg1MmNhN2I2YWVhZTkzYWQ3MzA2NGQ0M2FhODA3ZWI2MTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTM6MTY6MjAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGRvYzogQlVHOiAzNTM1MjY5OiBEb2N1bWVudCB1c2Ugb2YgW3NubXBdIGZvciBjbGllbnQtc2lkZSB0b29scy4KCmNvbW1pdCAyNmVkNDBjYmQwN2NmMjcxYTljZmM0NTE3ZDk2NDc3NDcxMmFkNzdjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTI6NTc6NTYgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgbG9jYWwgcm9sbHVwIG9mIHBhdGNoZXMgd2l0aG91dCBmaXJzdCBzeW5jaHJvbmlzaW5nIHdpdGggZXh0ZW5hbCByZXBvLgoKY29tbWl0IDkwNGM0NDJkNjBjNWI5OWFhY2Q3ZjYwMzA3YzI4Njg0ZWZhZTg1NGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMjo1MzozNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDM1MzU5Njc6IEZpeCBtZW1vcnkgbGVhayAtIHNubXBfe3Nlc3NffWVycm9yIGFsbG9jYXRlcyB0aGUgb3V0cHV0IGJ1ZmZlcgoKY29tbWl0IDU5N2VjZGE2OGVlMmI1ODBiNjY2Mjg4OTc3YjA0YWExMzMyMDc1MTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMjoxNzoxNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNTQwNjIxOiBkaXN0OiBBZGQgbWlzc2luZyBQcm92aWRlczogdG8gbmV0LXNubXAtcGVybG1vZHMgUlBNIHNwZWMKCmNvbW1pdCA0M2Q1YmEyMjRjM2YyOWZkOGU3ZmQxZDA2MGExNzA0NWFhZDdlZmYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTE6MjU6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMzU0MTAxMjogRml4IGhhbmRsaW5nIG9mIGdldHRhYmxlIGNvbHVtbnMKCmNvbW1pdCBiYzI5M2FjYWQ4ZDM0ODdjZGRlZjNjNzBjZWE3NDM2OGYzNGQ5MzU0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTE6MjA6MjAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM1NDM4NjQ6IFJlbW92ZSBleHRyYW5lb3VzIGZ1bmN0aW9uIHR5cGUKICAgIChhbmQgZml4IGEgcmVsYXRlZCB0eXBvKQoKY29tbWl0IDAyODYxNGVjZjJkNjczOTg2OTlkYzNiZDc4NDAyOWYzMzYwZjJlMTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAyNCAxNTozNzoxNiAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHNubXBkIGV4aXRpbmcgc2hvcnRseSBhZnRlciBzdGFydCBkdWUgdG8gaW5jb21pbmcgc2lnbmFsLgoKY29tbWl0IDRkMzg4OTVmNDU5YTFkZjI0ZjY4YzRhNjBlNGNhZjZhNzc4ZDhjMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyNyAwOTozNTo0NCAyMDEyIC0wNDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHJlbW92ZWQgbGltaXQgb2YgJ2V4ZWMnIGFuZCAnc2gnIGVudHJpZXMgaW4gc25tcGQuY29uZgogICAgCiAgICBVc2UgZHluYW1pYyAocmUpYWxsb2NhdGlvbiBpbnN0ZWFkLgoKY29tbWl0IGRjZWVhY2M5OThmZTIzMjI4ODJlN2VlZGVjMGE3MWE3OWRjNDk0YWIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEp1bCAyNCAwOTowMDoyMyAyMDEyICswMTAwCgogICAgRG9uJ3QgYmUgc3VycHJpc2VkIGlmIHRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHZhcmlvdXMgZmlsZXMKCmNvbW1pdCA1NmMzYzA3ODMzNmNiZjFiZjA5ZmQxYjAxMDc4YTkwMzA3MTc2MTNlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwODo0NzoxMyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMzA3OiBDb3JyZWN0IHN5c09SSUQgZm9yIHNubXBNUERTdGF0cy4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCA2MWVjZWRjMDgzZjg4MWRiOGE5YTUwZDUwYmRlZWQzNjYyNGVkMzA3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwMDoyMToyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMTg4OiBDb3JyZWN0IHN5c09SRGVzY3IgZm9yIHNubXBVc21NSUIuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCgpjb21taXQgMmY5ZWRlNDE5ZjQwZTg0OGEyNDI1Mzg5Mjg4Y2FjMGUyMzMxYjk5MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDE5IDE3OjEwOjUyIDIwMTIgKzAxMDAKCiAgICBGaXggZXhhbXBsZSAncnN5bmMnIGNvbW1hbmQgZm9yIGZ1bGwgcmVsZWFzZXMKCmNvbW1pdCA2ZGQ3ODg0ZDk5ZTc1NmUyZjIyYjY4ODgyM2NlMWIxZDUyNmFkMTY2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTU6NTk6NTkgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMgoKY29tbWl0IDk3NjY5NmExMjhlNTdiNTEyYmY3YWQ0MDBkMDAyMzY4YjRhOWE4NzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNDozNDozMSAyMDEyICswMTAwCgogICAgVjUtNi1wYXRjaGVzIG91dCBvZiBSZWxlYXNlIENhbmRpZGF0ZQoKY29tbWl0IDU3YzU2OGQzZDM5ODE3MmM1NTQxZmIzMWJiNzVkMThmY2NlMmUyNmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNDozNDoxNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMgoKY29tbWl0IDczZDkwNmJjN2M5ODUwNmZhMmI0ZDZkMjkwZjdiM2JlYmEyZTRhMGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxMToxMjo1OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yCgpjb21taXQgNDJiNWFmYjNjZDZkMDZhZGI0MjZmMWRiYWE5ODM1OGYyYjJlOGE1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDEwOjQ2OjQ3IDIwMTIgKzAxMDAKCiAgICBWNS01LXBhdGNoZXMgb3V0IG9mIFJlbGVhc2UgQ2FuZGlkYXRlCgpjb21taXQgOGJkNDQwYzQzZTM2NWEwYjc3ZDQ3ZjU4MmNhZGU5Zjk3YzdiZmNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDEwOjQ2OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yCgpjb21taXQgNmUwODU1YTMxNTcxOTg0OTk0MTFhYzUyYjQ2ZDVmMzJhYWQ1YjlmYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDA5OjUxOjMyIDIwMTIgKzAxMDAKCiAgICBBZGQgbWlzc2luZyByZXR1cm4gdHlwZSBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKY29tbWl0IDA3ZDgyNWU4YmIzNWVlYTlhYzZiMWNiODJjYmIyMzRmZTY2YjFhYjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAwOTo1MTozMiAyMDEyICswMTAwCgogICAgQWRkIG1pc3NpbmcgcmV0dXJuIHR5cGUgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb24KCmNvbW1pdCA1ZGI3MDAzNmVmNjc1NjM1NjQ3ZTViN2M3MjUzNDU2ODM4ODM2NjQ3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNDo1NTozOCAyMDEyIC0wNzAwCgogICAgZG9uJ3QgdXNlIC0tcmViYXNlCgpjb21taXQgZDRjMTU0OTU5M2NlMmMyY2FlYjk4ZTVmOGFiZmQ3YTVhZTVhMDI3MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI3IDA5OjM1OjQ0IDIwMTIgLTA0MDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcmVtb3ZlZCBsaW1pdCBvZiAnZXhlYycgYW5kICdzaCcgZW50cmllcyBpbiBzbm1wZC5jb25mCiAgICAKICAgIFVzZSBkeW5hbWljIChyZSlhbGxvY2F0aW9uIGluc3RlYWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucHJlMSAtPiBWNS43LjIucHJlMgoKY29tbWl0IGZmY2U0OWZiMWFiNGE3OGQ0ZjI5NDdiZTA2ZDYyMGYxNDI0NTI4ZmQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE3OjEyOjMxIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTIKCmNvbW1pdCBiZDdjNzI5NzE4NzgxOGU1ZWVmNzMyNzY2N2U0YTgxZjZjOWZjODliCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNDo1NTozOCAyMDEyIC0wNzAwCgogICAgZG9uJ3QgdXNlIC0tcmViYXNlCgpjb21taXQgYTcxNTMxMmUyY2U0OWQ0ZGE5M2ZjMTQwY2MzOWZjMTAwYjBiNzk3OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTU6NDc6MjIgMjAxMiAtMDcwMAoKICAgIHVwZGF0ZWQgZm9yIHRoZSBwcmV2aW91cyA1LjcuMi5wcmUxIHJlbGVhc2UKCmNvbW1pdCAxNzI3NzY4OWI2MjlmNDU4NmQ1ZDcxNGQ4N2NlNmJjMTFmODg3NjY4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNDo1NTozOCAyMDEyIC0wNzAwCgogICAgZG9uJ3QgdXNlIC0tcmViYXNlCgpjb21taXQgNjc4NmZmYzc2ZmFjZjc0NmFmYjZhZjI1MTU4Zjc5NDA2NTZhYjM5YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKdWwgMTEgMDg6NDc6MTMgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjMwNzogQ29ycmVjdCBzeXNPUklEIGZvciBzbm1wTVBEU3RhdHMuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCgpjb21taXQgZjBlMzVkNjFmOTI1OGRjNjA4ZGE5YmY3MThhZjE0NTdhODU5ZmExOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKdWwgMTEgMDA6MjE6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjE4ODogQ29ycmVjdCBzeXNPUkRlc2NyIGZvciBzbm1wVXNtTUlCLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgoKY29tbWl0IDUyMDZkMjVkNGNiOTRkNGIwZGQzMzFhNWE0MTEzZDRkODc3ODJjNDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIgMTI6MTQ6MzkgMjAxMiAtMDcwMAoKICAgIGJldHRlciBkZXNjcmlwdGlvbiBvZiAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBmOTI4NTMyODE0NzdlZTcyNGE1MWE5OTY3ZjM3ZDNmMWRkMWIwZjdlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyIDEyOjA5OjUwIDIwMTIgLTA3MDAKCiAgICByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb25zIGNhdXNpbmcgYSBwcm9ibGVtCgpjb21taXQgNWJlMjczNjg3NTE2OTFmYzFhYjU1ZmU2MmI0MTA2ZDhkOTliODcwNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMiAxMjowNjo1OCAyMDEyIC0wNzAwCgogICAgYWZ0ZXIgcHVsbGluZyBhbGwgdGhlIGJyYW5jaGVzLCBzd2l0Y2ggYmFjayB0byB0aGUgaW5pdGlhbCBvbmUKCmNvbW1pdCA4MjU5NmE2OWY1Y2U1M2Q1YTZmMGFmNDIxNWM5OGQ2MTg0ZGFiNGQ0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MDQ6NTAgMjAxMiArMDEwMAoKICAgIFVucGljayBtZXJnZSBjb25mbGljdC4KICAgIChOb3Qgc3VyZSB3aHkgdGhpcyB3YXNuJ3QgZmxhZ2dlZCB1cCBlYXJsaWVyIC0gb3IgbWF5YmUgSSBqdXN0IG1pc3NlZCBpdCEpCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiMDViZDc4ZjlmMjM0YmI1N2EwMGI1NGM1YmZiMWRlMzJhMDlmNGE0KQoKY29tbWl0IDZhMDc1YWU0OTRjNzZiODJlZWE5NjMyN2NmNTI0MmRmMDQ4NzQzZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxNDoyMTowOCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMwoKY29tbWl0IGEzN2U3ZTAyOTQ1MTQ3YmZlNmNhZGI5NTcxNzA2YzZiMmVjNzQzYmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxNDoxNzo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMwoKY29tbWl0IGIwNWJkNzhmOWYyMzRiYjU3YTAwYjU0YzViZmIxZGUzMmEwOWY0YTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxNDowNDo1MCAyMDEyICswMTAwCgogICAgVW5waWNrIG1lcmdlIGNvbmZsaWN0LgogICAgKE5vdCBzdXJlIHdoeSB0aGlzIHdhc24ndCBmbGFnZ2VkIHVwIGVhcmxpZXIgLSBvciBtYXliZSBJIGp1c3QgbWlzc2VkIGl0ISkKCmNvbW1pdCA0ZDE1NzQyYzc1MGE5NmE0ZGJiM2RhODc0NzQxYWUxNTI0ODlmOGQ1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NTg6MDcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBmNmI1ZTMzNzZlZDNhOGU5ZWFmNzRiN2Q2ODIyYjNhNzY1NzcyZWU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NTc6NTYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMzCgpjb21taXQgNWNmYjA4MTExMjdhNjUzZGZmMGY0ZTUzYWQ2MDI5ZTIyOThhNmM2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgZTcyZTIwNWZkY2VmNzg3ZWY4NDBjOGM5MjhlZDI3MzUxYTY5NTQ0YgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjU4OjA3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgZjc5YTU0ZjI0NzI1MDhiMTY3ZDk3N2YzNjdjMzg2NGI1NjIxZTg5ZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjQyOjUzIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMzCgpjb21taXQgNTZlZjVmMGRiNTFjZmQ1NTIyNmY4MmY5NGYzZjNkMjQ1MGU0ZmViNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjM5OjMyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMzCgpjb21taXQgYWYxZDAwYWIwMjQ2Mjc1ZGFkYjVmMGNkM2EyM2E3N2Q1ZjU1OThjZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgZjE4Nzc2ZDYzYTUxNjAyMDMxN2U1ODg3NWFiMjQzNTJkNWRiODY1MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjI2IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMwoKY29tbWl0IGZlMTA3Nzk0ZTc0MDBkMjM5ZThhZjNkYThiNGEzZmJlZjA2YjVkYTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzoyODozNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDBmODRmYmNmNzE5OTViZGRhZmFiNTAwZDg3YzljNWE2ZjQ2MWE3MzQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMjoyOTozNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0Nzk3NDA6IEZpeCBoclNXUnVuUGVyZiBzdGF0aXN0aWNzCgpjb21taXQgMWUzYmI2MDYwYmU2MTU2ZDNmZjMxNmM1YTdlNGZkN2YwNWUzN2NmZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEyOjExOjU2IDIwMTIgKzAxMDAKCiAgICBORVdTOiBzbm1wZDogQlVHOiAzNTMyMDkwOiBGaXggaGlnaCBpZkluZGV4IHZhbHVlcyBjcmFzaGluZyBockRldmljZURlc2NyCgpjb21taXQgZTg2NjNmYWM4Yjg4NjYzMjgyNjY5NzI2YTA4ZjE2ZGIxNmI1ZjRkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDE4IDEzOjMwOjI1IDIwMTIgKzAyMDAKCiAgICBSZXZlcnQgIkNITkFHRVM6IHNubXBkOiBmaXhlZCBzbm1wZCBleGl0aW5nIHNob3J0bHkgYWZ0ZXIgc3RhcnQgZHVlIHRvIGluY29taW5nIHNpZ25hbC4iCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjExYTRlOTNmNTBkOGE1NDRmODM1ZjM3NmMzYTRiOGMwNjQxYTMxYSwKICAgIHdlJ3JlIGluIFJDLXBoYXNlIGFuZCBjb2RlIGlzIGZyb3plbgogICAgCiAgICAoc29ycnkgZm9yIG5vaXNlKQoKY29tbWl0IGIxMWE0ZTkzZjUwZDhhNTQ0ZjgzNWYzNzZjM2E0YjhjMDY0MWEzMWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAxMSAxNjoyNjowOSAyMDEyICswMjAwCgogICAgQ0hOQUdFUzogc25tcGQ6IGZpeGVkIHNubXBkIGV4aXRpbmcgc2hvcnRseSBhZnRlciBzdGFydCBkdWUgdG8gaW5jb21pbmcgc2lnbmFsLgoKY29tbWl0IGE1NzAyMzhkNThlYjVhOTk2YjU2ZjAxYTI3YTE4ZGY2ZjM3ZDBmNjAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAxMSAxNDoyMDoyNSAyMDEyICswMjAwCgogICAgTW9yZSBwcmVjaXNlbHkgZGVzY3JpYmUgLWMgb3B0aW9uLgoKY29tbWl0IDQ4Y2MzOWYxYWEwZmE2Y2U5NTVlZjc2YjI1ZGI4ZjlkY2EwNmI4MGQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDk6Mjc6MTAgMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgODEwMTg1YWUwYjBjZDJhZDRkNDI0YTFiYTc3NWVmNWNlYWY1MGYwMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwOToyNDoxOSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCA2MjcxNDcxZTAxMjgyZjM2NzU3MjRlYWYxMzU4Y2ViMGU5NWRkZDRlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjQwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTEKCmNvbW1pdCBmY2I3ODJhYTg4OTMxMzRjNzQxNGE5MjZkOTI2ODU5NGY3MjViOTE1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjE4IDIwMTIgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjIucHJlMQoKY29tbWl0IGUzYmNkODdjNzJmY2VhNzcwNmU4NjhiNWFjZTc1Mjk2MDkzZjc0OTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowOTo0MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBkODEzY2UyZWVlZmM2ODIyOWNmY2FmMjA2MDMyNDRjZGQ2ZDA5ZDNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDc6NTIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZmE3YmQ1ODFlMzc4MzY4NWRiMzljOWI0ZWFmODQ3YmU1YWM4NmZkMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUzOjEwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgMDczOWUyMzgyZDMxMTQ2YWNhMzIwNTI0NGNmNzA3ODhiNDBhNDI4ZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUxOjQ1IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgZDlhMTU0NDVhYTc0ZjUzMTZiZmM3MTFjMTU1ODQ2Nzg3MmMyOTU4YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMyCgpjb21taXQgYmNhYmQyYzk1NDJkYmViZDFkMzE5YjQ0OTQ0MTNiZGNjYTA2NjE0ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgYjQ3Mzg5OGMwYzVhYzllYjQ3YzdjMDVhM2Y3NDVlNGZmMmE3NmFhYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgoKY29tbWl0IDEzMTQyOWU3MDYyZmJhYTY1YjgyYWZmZWQxZmI5MmRmMmMwY2M4MTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFjODExMGIzM2I4MTA1Y2E2MTkwOTQ1YTM1ZmU3YWU5MDMyNTJkNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMTozOCAyMDEyICswMTAwCgogICAgQXZvaWQgcGVybCB2ZXJzaW9uaW5nIHByb2JsZW1zIHdoZW4gc2V0dGluZyB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKCmNvbW1pdCA1MDhlY2UxNmU2ZjZmNDk1NjJkYTIwNDc5MmFlMDY0NDI2OTk5NGQxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjA6NTggMjAxMiArMDEwMAoKICAgIEZpeCBoYW5kbGluZyBvZiBkaXN0L3JlbGVhc2UgbWVyZ2UKCmNvbW1pdCA1YjhhODU0N2IxYTQ3ZDJmNWIyMDdmNDhmMjQ5NmU0MjQxZDkwMmM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MTA6NDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA2YzMyOTE0YmYyOGQ2OTVkZjM0OWRjYTI2OWU0ODhiNTAxNzAwMzE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDc6MjIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA5ZjVhODJhNWFmZGJiM2RhZWIyZmQ0MzdhMzA5ZjBiOGQzNTdjZjRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDU6MzkgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAzOTIwM2YyOTQ3N2EzYmVkZjAxMmQ0MTEzNWQ4YWJkNmJjYWQwOGIxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NTQ6MjcgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAxN2U3OWVmMGZhZDc5NjA5YzViYTJmZWI0ZThiOWViNWQ3ZGI2ODg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCA1ODIxYmU1YmJiNDAxOGRlZDI4MmZiYmJkNDgzMGNmMmVlYWRkOWUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDU6NTkgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMyCgpjb21taXQgM2YyMTExZGU2NzMzYTA0ZTEyZDkxMGQzMDZhMzRkNjcxZTAwODc2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgY2NmOGZmMmM0ZGI2MDEyMmQ0MTMwMmU0YWViNzAwZTBiODY4MTA1ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDI4IDEwOjE4OjQzIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNTI2NTk5OiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCgpjb21taXQgYzgxYzg0ODM5OTA5MTFmNDc0MzVkMzAwNTI1NWQ5MWMzN2FiOTJiMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDk6MjYgMjAxMiArMDIwMAoKICAgIEZpeCBCU0QgdGhhdCBkb3dubm90IGFsd2F5cyBsaWtlIElQX1NFTkRTUkNBRERSIC0gc28gcmV0cnkgd2l0aG91dAoKY29tbWl0IGZmY2UxZjJkYzJmOGIzMWFiZDAxZjkzYjI2ZGE3OGY0NzI2YTFlNjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjAzOjU4IDIwMTIgKzAyMDAKCiAgICBGaXggT1MgbWlzc2luZyBNU0dfRE9OVFdBSVQgKEFJWCkuIEJhY2twb3J0IGZyb20gNS43Cgpjb21taXQgYzU3NTIxNjg1MDE4NWI1NjQ1NGRhZDAyNTNlMzE2NDk3OWUxMzUxMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTM6NTY6MDEgMjAxMiArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0Cgpjb21taXQgNTgwNTg3ODc0OWMwODA2MmRlYmYwYTlkNzk4ZDA4ZmI5MTZjYWEyZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXkgMjcgMDY6MjM6MTkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBkZWJ1ZyB0YWcKCmNvbW1pdCBkMWE0MmJiY2M3YjE0NzMwYzlhNmQ5OWM0ZjA0NzA5Nzg0M2E1NDliCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1heSAyNSAwOTowMjoyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQoKY29tbWl0IDFmYmYzMzcxMWExOWVhYzk3MzlhZDIzZjZmNjI1MWVhY2M0MWYxYzQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1NDo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAzNTI1OTk4OiBEb24ndCB1c2UgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSBpbiBlcnJvciBtZXNzYWdlCgpjb21taXQgMzJjMTY4NmI2N2RjODVjNGExODk1NzYzNjMwNjU2MDlkZmVkNWU2MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjUyOjU2IDIwMTIgKzAxMDAKCiAgICBBdHRlbXB0IHRvIG1hcmsgcmVsZWFzZS1jYW5kaWRhdGUgYnJhbmNoZXMgYXMgc3VjaC4KICAgIE9taXQgZmluYWwtcmVsZWFzZS1vbmx5IHN0ZXBzIHdoZW4gcHJlcGFyaW5nIHByZU4vcmNOIHJlbGVhc2VzCiAgICAoUmVsaWVzIG9uIGEgdHdlYWsgdG8gdGhlIE1ha2VyZWxlYXNlIHBlcmwgbW9kdWxlcykKCmNvbW1pdCA0YzU2MzNmMTYwM2U0YmQwM2VkMDVjMzdkNzgyZWM4OTExNzU5YzQ3CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAZnJlZXNubXAuY29tPgpEYXRlOiAgIE1vbiBNYXkgMTQgMTE6NDA6MDYgMjAxMiAtMDQwMAoKICAgIE5FV1M6IHNubXA6IEJVRzogMzUyNjU0OTogQ1ZFLTIwMTItMjE0MSBBcnJheSBpbmRleCBlcnJvciBsZWFkaW5nIHRvIGNyYXNoCgpjb21taXQgNjVkZDgzYzIyNTVlZTU4ZWRiZjBlMjU4NjNlNTViNThhNDExMzY3OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MzA6NDIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBhYzRiYzY1ZTI5MDlmM2JkODVmMzJmMDRiNTA0ZmE2NWQyZjY0NTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoyODowNiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGI3NDk5NDg2NDE5NTExOWVkYjZlMTljODUxNDdmYWMwMGJjYjkzZTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjEzOjQ2IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMQoKY29tbWl0IDkxMzUwMDkyYzQ2ZTY2ZDA2ZDc0MTQzZjQ4MTY0NzNkYjRkMjUxNjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE5OjU2OjMzIDIwMTIgKzAxMDAKCiAgICBNYXJrIHZlcnNpb24tc3BlY2lmaWMgY2hhbmdlcyBfYmVmb3JlXyBwdXNoaW5nIHRvIGNlbnRyYWwgcmVwb3NpdG9yeQoKY29tbWl0IDcyNDFhY2NkNzBiODJkMGZjZDQ0ZDVhNTIzOGIyZWU5NDQ1OTAwZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUzOjE3IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgN2M3OTZhMTVhMWQxYmI4NWZlZWE5NDBiZDRlMzUxNjg3NzkyMDkxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTA6NDkgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAwN2UyNjhiZmI2NGIwZWM2NDViM2Y3ZTg3MjY2OTg0ZjkyMTdjZjEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo0NDozNyAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDE2ZWFhZjZjM2JhMTQ1OTZjYTllZmFmNGIxMTRmMWI3MDlmNDJiNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI5OjAzIDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgYzcyOTQ2OWVmMTIxNTQ5MzBjZjlkMTU5NjdlMTYxODZmYjQ0NWYzMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjc6MjAgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMxCgpjb21taXQgMTQyNTcxZDNjZWEwOGYwYzA3MmQyNGMxZDM5YTQzYzc0NDZmOGNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgZWJhODZiNmY3YWZmMjYxZWUwZTYxMzM0ZGY3MGRlNzE1NmU1YzNjYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgNWMwZjY0ZDZkYjJiNTkzZjdjYzBlZDJkNGY1NWI3YzU5MmI3NzRhOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MjU6MTUgMjAxMiArMDIwMAoKICAgIE9ubHkgb3V0cHV0IGNwdSB3YXJuaW5ncyBvbmNlLgoKY29tbWl0IGVlNThlNDgyN2I5ZmExNmU2NjM1Y2EwMDNlOGE0ZjExZGNiNWZiN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjE3OjQyIDIwMTIgKzAyMDAKCiAgICBGaXggc3BlbGluZyBpbiBlcnJvcm1lc3NhZ2UuCgpjb21taXQgMDNmNDg1ZGYyMmYyMGUxNDljZmFlOTRjNTdjYjgyZmVlY2I1ZDc0YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTI6MTEgMjAxMiArMDIwMAoKICAgIE5vdCBhbGwgTGludXhlcyB1c2UgcnBtIChkZWJpYW4vdWJ1bnR1IGNvbWVzIHRvIG1pbmQpCgpjb21taXQgOTMwODM4MjI0Zjc4MTY5NmJkMzUyMjVmMjI1NjkzNDc0MTZmMWIxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTA6MTUgMjAxMiArMDIwMAoKICAgIENoZWNrIG5lZWQgZm9yIC1sbSB0byB1c2Ugcm91bmQvZXhwCgpjb21taXQgYTA2MDljZjFmM2E2OTE3ZDI2MzcyNTczMjI0OGNkOTM3YTQ1YWQ5NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwODo0MDo0NCAyMDEyICswMjAwCgogICAgUmVtb3ZlIGxpbWl0YXRpb24gb24gY29uZmlndXJhdGlvbiBsaW5lIGxlbmd0aC4KCmNvbW1pdCAzMDU5NzMzMzhhNjNhZTU0YzVlMDJhODYyNmZiZTlhODA2NGRjYjdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjMyOjE5IDIwMTIgKzAyMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLgoKY29tbWl0IGNjYWI0ZTlkM2VkNDI0YzM5ZDBkYzI3YmU2M2ZhNzZjNzQ2MWVhODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MTU6MjIgMjAxMiArMDIwMAoKICAgIEludGVybmFsaXplIHRoZSBuYW1lIGFuZCBsaW5lIG51bWJlciBvZiB0aGUgY3VycmV0IGNvbmZpZ3VyYXRpb24gZmlsZQoKY29tbWl0IGNmODc0YWQ3YjlkYWY0ZmNjMGQ0NmNkZDAzNDQ3NGI0NzgwMDUzNDEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgQXByIDYgMjE6NDc6MjggMjAxMiArMDIwMAoKICAgIFJlcGxhY2UgI2lmIChBKSBCICNlbHNlIEIgI2VuZGlmIHdpdGggQi4KCmNvbW1pdCBlZjllYTY0MWJjMjkwZWVjNTA2ODViNjA1MTliMzFiZWU4YjE0YTY5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowNDowNiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCAzNWFiYTE5NTlkZTExOWYxZmI4OTIwM2MzNzEwOWFhNmYwZTIxYzU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowMDo0MCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCBlNDFmYmFmZjE4YWM5MDk1Y2Y0YTczOWEwNmVjMzlhMWE2Y2NmZGMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMDozNTozNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUyCgpjb21taXQgMTM3ZmU1ODJkNmNjNTYxMTQzMGRhYjQ2ZWYxNDRlZmQ4NGNmYzgwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgQXByIDYgMjA6NDY6NTYgMjAxMiArMDEwMAoKICAgIFJldmVydCBjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwogICAgKHNubXBfc3RvcmVfbmVlZGVkKCkgQVBJIGlzIG5vdCBhdmFpbGFibGUgaW4gNS5bNDVdLngpCgpjb21taXQgMmI3ZTY0Mjg4YzAxYThhMDYyMDI2YzUyMWNhMzFhNWU4ODVmMzBjYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MTI6MTIgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgN2U5NWQ4MGI2OTgwNTEyNTk2NDVjMDc0YTUzZmZkMjY0YTZmYTkxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MDY6NTYgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMWE5YjdiN2MwMmUyZGVlZmU5OTRkNTk1YTdjYzFkZDJmZmJlZWUxZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTU6NTE6MjAgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoICdyZWNlbnQnIGhlYWRlciBzaHVmZmxpbmcKICAgIEJhY2twb3J0IG9mIGM1M2Q4YzM1MjVmNTkwZjIyMTNkMzViMGRhOTQxMjM4NjJmM2UzNjYgZnJvbSBWNS01LXBhdGNoZXMKICAgIChQYXRjaCAjMzM2MzMwOCAtIG9taXR0aW5nIHR3ZWFrcyB0byBjb25maWd1cmUpCgpjb21taXQgM2Q5ZGRiNDFlMjYzYmMxYTc4ZjlmOTQ0MGI4ZDRhZDRmODZjODJlMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MzY6MTggMjAxMiArMDEwMAoKICAgIEZpeCB0eXBvCiAgICBCYWNrcG9ydCBvZiA1YjcwMmIwMjRiNjAxNzZkN2Y1Njk5YjkyZTU1ZGE1MGE4ZGVhZTcxIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMGQzNWM2MDk1NjRiNjZhMWZmZTgxNTU2ZDM3YWRmMDUwM2MzODljZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MTU6MDggMjAxMiArMDEwMAoKICAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mIE5FVFNOTVBfUFJJbwogICAgKHVzZWQgaW4gYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jKQoKY29tbWl0IGE3OTE0MWE0MTk5NTNkMDEwYTY5ODllOGI4OGY0ZGYxMjczOTRkMzgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA5OjE5OjI2IDIwMTIgKzAxMDAKCiAgICBIZWFkZXIgZmlkZGxpbmcgZm9yIEZyZWVCU0QsT3BlbkJTRCxEcmFnb25mbHkKICAgIEJhY2twb3J0IG9mIGY3YjBkZTE1MTgwMDJjNmU4ZjliOTRlZjNkZWI4ODgyZTFlOTMzOGUgZnJvbSBWNS03LXBhdGNoZXMKCmNvbW1pdCBhZGY3NGJmNzUzZDM5NzAzNTdhZmQ2MzM4MDMyNTYyNDFkOWM3Yjg3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwODoyMDo0NiAyMDEyICswMTAwCgogICAgRml4IElQdjYgVENQICYgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0IChpbmNsdWRpbmcgT3BlbkJTRCkKICAgIEJhY2twb3J0IG9mIGNvbW1pdHMgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgogICAgICBhbmQgNTBkNzNmMGQ1NmZlMjJjNTkwNTMwYjNlMzA1ZDQxZGNkYWMzY2UwMCBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGQ5NTU1YWNiOWY0N2MzYWE4ZmRlNGJjMjBhNDRkN2NhNjE4MWE4YTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWFyIDI1IDE4OjQ4OjEyIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCBkYW5nbGluZyBwb2ludGVycyAoYmFzZWQgb24gcGF0Y2ggMzUwMzI1OSkKCmNvbW1pdCA4MmE4YjQ3ZWU5NmU1ZDI5YTJiN2FjM2NhMDA3MjJkNzM3ZDViNDc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMTo1NiAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMDozOCAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBjZWNkNDg2OWRlYjY4ZjNkNGM3MWU3NjhkNWI0MGRkNTc2NDQ2OTI1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjoyOTozMSAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBhMWE0NTEzYmQzZTRlNjE0MjAwZjZkYjVhMDJmNjFkNmM4ZWVmYjMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6NDc6NDUgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFja3BvcnQgb2YgZ2l0IGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDliZGJjY2ExMjJjMzdkYTMwNGZjNmFhNjkzOTcyOTQ3NWY5MGY1ZmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTozMDo0OSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrLXBvcnQgb2YgR0lUIGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTo0MToyNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0OTU2OTc6IFN0b3JlIHBlcnNpc3RlbnQgc25tcFRhcmdldCB0YWJsZSBjaGFuZ2VzCgpjb21taXQgMWY3NWYzNzdkMGRiMDE3NTRjMGMxNjFkYzQ0MzczMDgxYmVlZjUyMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjE0OjA2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBQQVRDSEVTOiAzNDg5Mzg3OiBJbnN0YWxsIEZyZWVCU0QgMTAgaGVhZGVyIGZpbGUgKHBsdXMgb3RoZXIgbWlzc2luZyB2ZXJzaW9ucykKCmNvbW1pdCAzZDcyYzllNzhmMmFkODE3YzlkMWQ4Mjk3NzMyN2JiYjIwZDYzYWI5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MDY6MzEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzQ4Nzg2NzogRG9uJ3Qgc2tpcCBtaXNzaW5nIGlmWFRhYmxlIGVudHJpZXMgKGlmQ29ubmVjdG9yUHJlc2VudCBGQUxTRSkKCmNvbW1pdCAxMjkwNjU3OGFiMzBjZjc3NmQwODBjMGVmMzAyNWIzMDMzNGQ3NjU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNjoxNzo0NSAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBGaXggZXZlbiBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGNjZmQ1Y2E2ZmUxMDMxM2Q2MTgxZDI0YmJiMTc5NzgyNWE5N2RhMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjUxOjE2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEVsaW1pbmF0ZSBkdXBsaWNhdGUgY29kZQoKY29tbWl0IDlmZGEyNjY4NzIyZjA4ZGRiZmRkNjdhMjIzOWQ4YjAyMWRiNjRhODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjQ4OjQ2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IFdyaXRlIGEgbG9vcCBhcyBhIGxvb3AKCmNvbW1pdCBjYmMxOGViNzYzYmE2ZGY2OWVmNzA2NjhhNTRkNzViZjM1ZTc5NTAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNToyNDowOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDM6MjQgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHJlYWRpbmcgZnJlZWQgbWVtb3J5IHdoZW4gZGVsZXRpbmcgYSByb3cgZnJvbSBhIHRhYmxlCgpjb21taXQgYTZiZTczOTU2NmYzMTBkNzQ0MWZkN2Y1NDk4OWUzOTQ0NmY3YTE0MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDI6MjggMjAxMiArMDIwMAoKICAgIEV4dGVuZCBESVNNQU4tUElORy1NSUIgdGVzdAoKY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIxOjAzOjQxIDIwMTIgKzAyMDAKCiAgICBGaXggZm9yIERyYWdvbkZseSAzCgpjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjA6NTk6NTMgMjAxMiArMDIwMAoKICAgIERyYWdvbkZseSBuZWVkcyBfS0VSTkVMX1NUUlVDVFVSRVMgdG8gY29tcGlsZSBpcHY2IGNvZGUKCmNvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CkF1dGhvcjogRGF2aWQgSW1ob2ZmIDxkaW1ob2ZmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjQ3OjE3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzNTEwNDU0OiBBbGxvdyB0aGUgdXNlIG9mIDAuMC4wLjAvMCBhcyBhbGlhcyBmb3IgZGVmYXVsdAoKY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjIxOjM4IDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MTA6NTIgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUgcGVybCB0byBkbyBwYXNzX3BlcnNpc3QgdGVzdAoKY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXIuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDY6NDAgMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUBuYmEtbGludXguc2Iuc3RhdHNiaWJsaW90ZWtldC5kaz4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjAxOjM3IDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBmaW5kIHBhc3MgaGVscGVycyBmb3IgdGVzdGluZy4KCmNvbW1pdCBmZTI2YTNjNGYyOWYwNDZiZjY1ZWQ1MmU5ZDk0MDU0YjY3NWZiYzRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTowNDo0MiAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBMaW1pdCBzb3VyY2UgY29kZSBsaW5lcyB0byA4MCBjb2x1bW5zCgpjb21taXQgNzQ1YmFmY2RjYzljOGU4NDYxNmQ0ZTI3NGRiMmEzODRiZjIzNGRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDg6NTU6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZyBpbXBsZW1lbnRhdGlvbiBpbmRlcGVuZGVudCBvZiBudHBkIGNsb2NrIGp1bXBzCgpjb21taXQgZGE2OTI1ZTY3NjNjYWRiZTAyZjRhOGJiZmU2OGEzNjJlNTM1YWQ1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6Mzg6MzYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTRkaXNtYW5waW5nbWliX3NpbXBsZQoKY29tbWl0IGZhNjA2ZGQ3Y2E2YWZmOTMwOGQ0ZThiMDFiYmNkZTE0OGY0NDEyNzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjQ5OjIxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmdpbmcgbG9jYWwgaW50ZXJmYWNlIGFkZHJlc3NlcyB3b3JrCgpjb21taXQgNjE3YTgzYmE3OTk1NzVjODRjNjZmNmIxYzQ4MGVmNjMzMTYxYTY0YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6Mjg6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBhIHNvY2tldCBsZWFrIHRyaWdnZXJlZCBieSBwaW5naW5nIGEgcmVtb3RlIGhvc3QKCmNvbW1pdCA2MjVmNTVjMjcyZWM2MjgxZTM4ZDhlMzBlYjUzZmQ1MTUxNmIwMGFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTo1NDo1NSAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHZhcmlhYmxlIGludG8gYSBzdGFjayB2YXJpYWJsZQoKY29tbWl0IGI0OGYxOWFkNGI0YWE2OGMzZTE2ZTJhNzJkZjM3YjljMGNkMzZjNGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI0OjA3IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEFkZCBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgpjb21taXQgZDc0Y2IzOTY2MTc1ODkyNTYyZjVlM2E5YjE2ODNhY2JhMmMyMmUwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDU6MTggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBzZXZlcmFsIG1lbW9yeSBsZWFrcwoKY29tbWl0IDBiMWE3NzY3NDY3OGNjOWExNWJlM2U3NzAwZDNjZWY2NTBlZDAyYzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEyOjAwOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEbyBub3Qgc2VuZCB0aGUgY29udGVudHMgb2YgdGhlIHN0YWNrIG92ZXIgdGhlIG5ldHdvcmsKCmNvbW1pdCAxMzkwMjNjZDNhYjUxNjMxY2MxMGUyODY2ZDcxYWJjZjk5YWU0YzFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1NjowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG9uJ3QgY2FsbCBleGl0KCkgdXBvbiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgpjb21taXQgMTY5YjZhYWE3YjYxODI3Y2MxYWQwYjNhZWVhZTNhNzIyOWRkMjVkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTM6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBJUHY2IHNvY2tldCBsZWFrIGluIGVycm9yIHBhdGhzCgpjb21taXQgYTBiZTMyYWQwNTNhNzFmYTk2MTM0ZDU1ZTU0MmJiMDdkNGYwMjk3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDM6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHRoYXQgaG9zdCBuYW1lIHJlc29sdXRpb24gZmFpbHVyZSBjYXVzZXMgYSBjcmFzaAoKY29tbWl0IGJmOWJmZjY0NTU2Nzg3ZDc2NmVlMmVmMmQ1NzhhZmI5MjA3MTlmM2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUxOjU1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IHByaW50ZigpIHN0YXRlbWVudHMgaW50byBzbm1wX2xvZygpIGFuZCBERUJVR01TRygpLXN0YXRlbWVudHMuCgpjb21taXQgNWQ3NGMwMTI0NTUyM2E5ZDhkYjFlZGEyN2QxZWZhZTJlYmMxMDRmYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6NDA6MDIgMjAxMiArMDEwMAoKICAgIE5ldyBNSUI6IFZSUlBWMy1NSUIKCmNvbW1pdCA1YjM4ZjA2MmI5OWI2ZWYzNjcwOGUyYzdkZTQ5NjVhMzE5MjYxMmU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozNDo0OCAyMDEyICswMTAwCgogICAgRm9yIHNhZmV0eSwgc2l6ZW9mIHRoZSByaWdodCB2YXJpYWJsZSBpbiBtZW1jcHkKCmNvbW1pdCBlNWY4Mjc4MmRhMDVlZmE3YzBlNmRjMmJmNWE0MWVlMTE4NjhmNDY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMzoyMSAyMDEyICswMTAwCgogICAgRml4IGZvciBoclNXUnVuIGRhdGEgZm9yIEZyZWVCU0QKCmNvbW1pdCA4MzI3NTY1ZTgyMzI3MGQxMGE0NTA0NTY4ZWRiZTViNWFlMzIzYTU1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMTo1NCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgdmFyaWFibGVzIGZvciBPcGVuQlNEL05ldEJTRAoKY29tbWl0IDE3MGY2ZjAyN2JmNGY5MTc0YjcwNzM1MzBkYTRkMDdmNDAwYmJhNTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjI4OjU4IDIwMTIgKzAxMDAKCiAgICBNb3ZlIGRlY2xhcmF0aW9ucyBpbiBmcm9udCBvZiBzdGF0ZW1lbnRzCgpjb21taXQgZGJiNDU3M2I2OWZhZTg1Y2RjOTMxYjI4OTJiNWNlNGU1YjE2YjMyMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MjM6MzYgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUga2VybmVsX25ldGJzZCBmb3IgTmV0QlNENgoKY29tbWl0IGYxMTY4MWYxNWFhZDdkOWE1MmZhMjk4MTJlY2JiNTA3ZjFiN2ZlMjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozNjozOCAyMDEyICswMDAwCgogICAgQ2hlY2sgZm9yIG9sZCB0YXJiYWxscyAoYW5kIHVucGFja2VkIGRpc3RyaWJ1dGlvbnMpIGJlZm9yZSBzdGFydGluZy4KICAgIFRoZXNlIGNhbiBjb25mdXNlIHN0ZXBzIHN1Y2ggYXMgIm1ha2UgZGVwZW5kY2hlY2siLCB0aGF0IGRvIGEgJ2ZpbmQnCiAgICBvbiB0aGUgY3VycmVudCB0cmVlLCBhbmQgd291bGQgZGVzY2VuZCBpbnRvIHN1Y2ggdW5wYWNrZWQgc291cmNlIHRyZWVzLgoKY29tbWl0IDQ3MGRjZDRiNmMzZmYxMWZmMGEzNTMyYTczNDBhNTZjZmZkNjkwOTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozMjoxMyAyMDEyICswMDAwCgogICAgRG9uJ3QgcnVuICJtYWtlIGRvY3M7IG1ha2UgbWFuY3AiIGlmIHRoZXJlJ3Mgbm8gTWFrZWZpbGUgcHJlc2VudAoKY29tbWl0IGM5YWM0MjAzNDNlMTZkZjJiNzA2NWY1YmYyNzkwZGY0NGUyNDdmYmEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDoyNjoxMCAyMDEyICswMDAwCgogICAgQWxsb3cgZGlzdHJpYnV0aW9uIGFzIHBhcnQgb2Ygbm9ybWFsIE5ldC1TTk1QIHBhY2thZ2VzLgoKY29tbWl0IDU5OTlmNjBjNTc3MjNmMjNmM2MyNTRhZjU3ZmRiMTBhZjMwMWE4ZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDE4IDE5OjAzOjA4IDIwMTIgKzAxMDAKCiAgICBSZWdlbmVyYXRlCgpjb21taXQgMjc1ZDIwNDAzNmE2MDdlM2RmNTBlODQ0N2Q0YmM3NTVlOWRiMDJmZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMjE6Mjk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSAtLWRpc2FibGUtYXBwbGljYXRpb25zLy0tZGlzYWJsZS1hZ2VudCB0b2dldGhlciB3aXRoIC0tZW5hYmxlLW1pbmltYWxpc3QKCmNvbW1pdCBiZGNjYzg3NTcxMDI5NWFhY2Y1MGY3MWViMWMxZDJlZTk3ZjMzNmZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAyMDoxMDo1OCAyMDEyICswMTAwCgogICAgRG8gbm90IGRlY2xhcmUgdGhlIGxvY2FsIHZhcmlhYmxlcyBmb3Igb3BhcXVlX3NwZWNpYWxfdHlwZXMgdW5sZXNzIHRoYXQgb3B0aW9uIGlzIHNldC4KCmNvbW1pdCBiODBhNjdkYTA1MmFkY2ExYjVhNjQ0ZGI4M2E3ODJlMTVjMjIzN2MzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAxOTo1MDowMyAyMDEyICswMTAwCgogICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKCmNvbW1pdCBlZmFlODZiYmE1OTYyNDkxZDQyYjc3YjkzNTE5MWEzZWIyNWRkOTM5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE1hciAxNCAwMTowNTozMyAyMDEyICswMTAwCgogICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCiAgICAKICAgIENvbW1pdCBkMzVhMTg2MDIxN2U3MjNlNGY4NjZkZDk4ZWY2NjIxNjY1OTM0YzRhIGFjY2lkZW50YWxseSByZXZlcnRlZAogICAgCiAgICA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwIChocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZSkKICAgIDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIgKENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcykKICAgIDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMgKFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlKQogICAgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYiAocGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcpCiAgICAKICAgIGFuZCBwYXJ0IG9mCiAgICAKICAgIDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIgKEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMpCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyB0aG9zZSByZXZlcnRzLgoKY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDExIDIwOjU3OjM4IDIwMTIgKzAxMDAKCiAgICBBbGxvdyBtYWtlIHRlc3Qgd2hlcmUgdGhlIHNvdXJjZSBwYXRoIGNvbnRhaW5zIHRoZSBzdHJpbmcgTmV0LVNOTVAgdG8gc3VjY2VlZC4KCmNvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE1hciA5IDA4OjA0OjU5IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgNAoKY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEzOjA0OjA3IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjQzOjE5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjMzOjAzIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucHJlMQoKY29tbWl0IDBlZjM0ZTY1MTlkZmNiODJjOTdkZjg0Mjc1NDdjMDhkY2Y4MWU2OWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA4IDEwOjExOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgc25tcGQgJy1kJyBvcHRpb24uCiAgICAKICAgIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgoKY29tbWl0IDhlNjk3NDJmMTQzZTRmYzExMTk2ZTViMmVkNjZjOGY3ZjUzZmQwMmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjIxIDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKCmNvbW1pdCBjNGUwMGI4YzNlMTAxMGNkY2FiNWU2YzAyZDYwZDc1ZGY5YzZkY2YyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDowNSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAzOTQ5MDEwNGEzYWI1ODIzNWFhY2UyZjlkODcxYzI2NmRjNDQ4NWVlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCgogICAgaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UKCmNvbW1pdCBjZTg1ODMyOTMyY2NkOTE2YzQyMzE5MTE0YzQwODg1YTQ2NmE5ZDBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKCiAgICBNb3JlIGZpeGVzIGZvciBTb2xhcmlzIHNoCgpjb21taXQgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzIGluc3RlYWQgb2YgMC4wLjAuMC4gTWFrZXMgdGVzdCBUMTYwc25tcG5ldHN0YXQgcGFzcyBhZ2Fpbi4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YS4KCmNvbW1pdCA1MTg5MTdlOWYzOWY3YTlkM2MzYmYzYTg2NWU4YWMwZTMwMjZkNjAwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgMjY1MTkwOWNjY2VhYmZjZmFkYWY5NDJjMDI0NTBlMjhmZTgzN2RjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgOSAxMjowNDowNCAyMDEwICswMDAwCgogICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU0MWYxMTVlNDAzMDRjOTQxYmExN2Q2N2UyNDcxMDcyMmQ5MDc0MWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTM6Mzk6MTcgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtdyBhbmQgLXEgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2UuCgpjb21taXQgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzoyMCAyMDEyICswMTAwCgogICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiBSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSBpZiBpdCBpc24ndCBuZWVkZWQuCgpjb21taXQgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAwOToyMjozMSAyMDEyICswMTAwCgogICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlIG9wdGlvbnMuCgpjb21taXQgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzozOSAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA0NGFhMjY1ODkxY2Q1NjNmN2Y0MTE0ZWYyNWRjZjdhYWYzYjE0ZTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgZGFlNGUxNmJlODYxMTc4NjFmNjNkMWEyZjk4MWFkMzYxNDE4ZjVjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDI4ZjYyMjZmMmUyMjhiOGNhMjQ4NDg5NzM1Zjg2NTAyYjJjY2UwYTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0MDAyMmE2OTc5NTgyNTljY2ZiYjNmZWQ0NGViM2M0NzJmNWU4MzdlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1hciA0IDEwOjM3OjQxIDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIHNoIGRvZXMgbm90IHVuZGVyc3RhbmQgInRlc3QgLWUiCgpjb21taXQgNzczYWYwYzQyZTA3N2JlYmRhZWNmMWMwY2FmMzkzMjg1YTc2ODhmMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNzoxOTozMCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgbnNyb2xsdXAgY29tcGxpY2F0aW9ucwoKY29tbWl0IGVlNzEwNDljM2UyMWMxZDBlMzQyNDI5NzEzNjY1MmJiZTBlMzlkODUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTY6NDk6NDEgMjAxMiArMDEwMAoKICAgIG1pYmdyb3VwL2ljbXAuYzogYWRqdXN0IGlmZGVmcyB0byBtYWtlIGl0IGNvbXBpbGUgb24gQlNEJ3MKCmNvbW1pdCBjZTk2MDAzNjFlNjY1ZGRlMTdhZjlkOGFiMTZkN2NlODVkYzA1NjQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM5OjU1IDIwMTIgKzAxMDAKCiAgICBkb3QzU3RhdHNUYWJsZSBoYXMgYnVncyA6LSgKCmNvbW1pdCBkZmZhY2Y2ZmEwNzU1ZTE3MDBjYmFjMjViODQ0MTg1YWJkODA3YTBhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM4OjEwIDIwMTIgKzAxMDAKCiAgICBwYXNzcGVyc2lzdCB0ZXN0IG5lZWRzIC91c3IvYmluL3BlcmwKCmNvbW1pdCA4NzI2OTk1YzdhOGFlZjY3NGM0ZjE2NGIxODcxYzM3YmJkY2RhZDUwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM2OjU4IDIwMTIgKzAxMDAKCiAgICBncmVwIC13IGZhaWxzIHdpdGggT3BlbkJTRCBhbmQgU29sYXJpcyAxMC02NAoKY29tbWl0IDFlYjQ3NDViMjNjYzNhODM5ODY0ZTdmNmVhMjgzNTViMDU2NmViNjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzU6NDkgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgL3Vzci94cGc0L2Jpbi9ncmVwIHRvIHVuZGVyc3RhbmQgLXEKCmNvbW1pdCA5OTU0YjRiNzQxZmQ4YzYzZDYxMjhiZDA1MjcyOThjOGU0ZTk4OWZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM0OjQ1IDIwMTIgKzAxMDAKCiAgICBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcHJvcGVyIHNyY2RpciBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKCmNvbW1pdCA3ODM2OTAwMmJlMjcxMWYwYWE4NzZiNjRhNGUxMGIwOTBjYzI0MWNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjMzOjMxIDIwMTIgKzAxMDAKCiAgICBOb3QgYWxsIG1ha2UgdmVyc2lvbnMgZGVmaW5lICQoUk0pCgpjb21taXQgOTQyNDViMjlhM2NkYTg5NDc1YzZlYWI1ZDk0OTNjNjY1N2ZmMzhlMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToyNDoyNCAyMDEyICswMTAwCgogICAgTWFrZSBhdXRvY29uZiAyLjY4IGhhcHB5Cgpjb21taXQgNDRhY2Q2YzI4NWZiNTYxNGI0Yzk2MTFiMWFiZGVjYTlkZDI4ZTRiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToxMjo0NyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIG9mIG1pYiBtb2R1bGUgZnN5c19nZXRmc3N0YXRzCgpjb21taXQgMWZhMWZlZTM2OTNmNjdiODIwMjIzODA2YjNkNzNhZmQ0YzUwZWMxOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMiAwMTozNzoyMCAyMDEyICswMTAwCgogICAgU2lsZW5jZSBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgOTMyNjNiOThhNWRiMzQ0Y2YyYzRkNDg5YzQzOTcxZTdiMjljZGIwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTM6Mzc6MjAgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNWExNzU0MjhiOTczZDJlYTg1NTNlMjlmZWNmOTRjZjE1NjZhYTg1OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDg6MTggMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMzY0Mjc2YTFjNWFhNjZjYWEyM2ViNWI3ZjExMWZkZWI1YWY3MWZhNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDU6MTAgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNzM1OTgzNDAxNzJlZmY3NTcyOWE2ZDU3MTkyYjgxNzFkNWJiZjAwZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6NTYgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucHJlMQoKY29tbWl0IGYzMjE0NDAyNjcyY2ExOTlmZDUzMWU2NjEyMmJmOTZjNGQ5YTRlYjcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjM5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDJlNzRhY2I2ZjE5ZTQ3MjljZWRlMGFiNDNlOTMxOTYxY2IyM2FhZWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDk6MTg6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBEbyBub3QgaW5zdGFsbCB0aGUgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIHRoYXQgd2VyZSByZW1vdmVkIGluIDUuNwoKY29tbWl0IGI3MTA5NjQ2Yjk1YTcwNzEzZDFhZDk5MWQ0MWJjY2Q1N2MwYmIzZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDg6NDg6NDggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyBpbnRyb2R1Y2VkIGluIDUuNgoKY29tbWl0IDQzMmNiYjdhNTUwMWFiOTBkNjZkMGE4M2U3MzFlNzM0M2JjMDRiMzcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRmViIDI1IDEwOjEzOjE1IDIwMTIgKzAxMDAKCiAgICBDb3JyZWN0IHR5cG9zCgpjb21taXQgNmE2YzliYmM3NTg0ZjE5NmExMTg1Y2MxOTM1MjA0ZjEyMDY4MTFlZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBGZWIgMjkgMDg6NTU6MzUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycwoKY29tbWl0IGQ1MTVlMmE2ZTRjMmExYzRkODQ3MzRjYzdiMmQwYjJmYzVhODk0YWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1NjoyMSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0ODc5MTk6IEZpeCBjb21waWxhdGlvbiB3aGVuIGNhY2hpbmcgaXMgZGlzYWJsZWQKCmNvbW1pdCBhZjgzNjhlZDg4OThhNzhkMDg2OGI0N2FmNDZiYzlkYjA3ZDFjNzY0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTA6NTYgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0MTQ3NzM6IEVuY29kZSBpbnRlZ2VyIHZhbHVlIHVzaW5nIEFTTl9JTlRFR0VSCgpjb21taXQgMTllMjcxNTgwN2ZlMDZmZDBiYWVkZjg4MTY1MDExYWVlOTMzZTc1NQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE0OjA1OjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVR1M6IDM0OTA3MDg6IENsYXJpZnkgdXNlIG9mIGNvbW1vbiBjb21tYW5kLWxpbmUgb3B0aW9ucwoKY29tbWl0IDY1Zjc5NjJmOTMyYzliNzVjNWJiYmIwNDdkMWUyNmFlNjA5NzhlNTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMjoyMzozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0ODk2MzE6IEZpeCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIG1vbml0b3JpbmcgZmxhZwoKY29tbWl0IGFjMTY2MDUxYjZhMDkyZGQ0YTU5NDMyNmVjODVlMmY2OTliNjI1NDcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMTo1Nzo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQlVHUzogMzQ3NDU5MDogRG9uJ3QgbWF0Y2ggdW5kZXJzY29yZXMgd2l0aGluIHRoZSBzb3VyY2Ugcm9vdCBmaWxlbmFtZQoKY29tbWl0IDg3OWJmNzA3OWQzNGZhNDZmNmZjZjU0YTAxYzg1MDBiZWFlY2U1OWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDo0NDo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0NjAzNjQ6IEZpeCB1c2Ugb2YgYmxvY2sgZmFjdG9yIHdoZW4gZGV0ZWN0aW5nIGVycm9yIGNvbmRpdGlvbnMKCmNvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MjI6MjAgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB1c2luZyAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MDM6MjUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1NDE2ODogY29uZmlndXJlOiBGaXggYnVpbGRpbmcgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMDk6Mjc6MTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIGJhYnktc3RlcHMgd2hlbiBjb21waWxlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydC4KICAgIEluc3BpcmVkIGJ5IGJ1ZyAjMzQ1NDE2OAoKY29tbWl0IGVjNmEyMzAzMGU1YTIwNzJjMTljMThjMWQ5YzEyNDM4N2RhNTZiN2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDI3IDE4OjQyOjU4IDIwMTIgKzAwMDAKCiAgICBBZGQgLWxydCB0byBORVRTTk1QTElCUyBzdWNoIHRoYXQgY2xvY2tfZ2V0dGltZSgpIGNhbiBiZSBmb3VuZAoKY29tbWl0IGYxMzMyMDUwMDI5NGJiMjQwZjYzYzZkZDdkMmU5YTIyMDhlYjc0MGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNjo1Mjo1MSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb21waWxlZCB1c2luZyAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6NTQ6NDUgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydCAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgMDFjOTMwZWRjYzI1NzAwZDZiNWZiMDM3NmY1NWEyNjQyNWUxM2ZiMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjE3OjIyIDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCA5NDg0ZDgzMjAzYzRlMmQ4MjA0MTZiZTY2NWZhODMzYWE3MDQ0NGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAyNCAxNDowMDozMiAyMDEyICswMTAwCgogICAgUmV3b3JrIGNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzLgoKY29tbWl0IDJiN2YxMzQ5NTIyODYzNWQ4MTZlNThiMjE3NGRjMTI0ZGQwY2YzOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI0IDA3OjQzOjIyIDIwMTIgLTA4MDAKCiAgICBzZXQgTUVSR0VfQVVUT0VESVQgYmVmb3JlIG1lcmdpbmcgdG8gYXZvaWQgdGhlIGZ1dHVyZSBnaXQgMS43LjEwIGZvcmNlZCBtc2cKCmNvbW1pdCBlMWI5MTBiMGJlOTM0MzU4NmFlOWVkYmE2ZjQ2MDQwYWYzMTVmY2RkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDoyNzo1NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGluaXRfYWdlbnQoKSArIGluaXRfa21lbSgpOiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW5zdGVhZCBvZiBpbnZva2luZyBleGl0KCkgaWYgYWNjZXNzIHRvIGtlcm5lbCB2aXJ0dWFsIG1lbW9yeSBpcyBkZW5pZWQKCmNvbW1pdCA0NjNlZWQyMTIwZjlkMTkxYmMyMjY3MzQ5NmE0OWU4MTc0NjY0ZTRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDowMzozMSAyMDEyICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAoKY29tbWl0IGMzNmFiNzFhNGUwOTZmMTZjYzVhNTU1MzNmMDgwYzlhOTQwMDk5MTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA4OjUzOjU2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCgpjb21taXQgZWRlYmRkYmE5MzBmOGIxNDcyZmEwYmQyMGZjNDEzZWY4Y2Y0NjRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTE6MzE6NDYgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvUlVOVEVTVFM6IEZpeCBhIGJhc2hpc20KCmNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNjo1ODo0NyAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0ICVsZCB2ZXJzdXMgdGltZV90IG9uIHN5c3RlbXMgd2hlcmUgdGltZV90IGlzIGEgc3lub255bSBmb3IgbG9uZyBsb25nIGluc3RlYWQgb2YgbG9uZy4KCmNvbW1pdCBkODk3OGVjYzgyMTFiZTdjMWU3OTA1ZjFlMjE1YmIwNmRlZDI2NmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMjozMjoyNSAyMDEyICswMTAwCgogICAgRml4IHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jIGZpbGUgaGVhZGVyCgpjb21taXQgYWE3NjZkMTk2ZTUyODdmNmNhNzliNThhMzQ1YjAyNDI2MGFiYTM1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTc6MDc6MTMgMjAxMiArMDEwMAoKICAgIElGLU1JQjogZG8gbm90IHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yICg+PiAzMiBvZiBhIDMyLWJpdCB2YXJpYWJsZSkgd2hlbiB1cGRhdGluZyBhIGNvdW50ZXIgYW5kIGlmaV9pcGFja2V0cyBpcyBhIDMyLWJpdCB2YXJpYWJsZQoKY29tbWl0IGMzZmI2ZGQ5ZTZiOTllOTU0MjQ5MzE4ODk4Nzg3MWZjNTAxN2NiM2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA5OjQ1OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIG9uIHN5c3RlbXMgd2hlcmUgbW9kZV90IGlzIHVuc2lnbmVkCgpjb21taXQgZjhhM2VmMGQzZDRlNTMwMjc5OTAwMTAxMDQ5YjhkZTk4YTQ0YTZmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0ODo1MiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYiArIHNubXBkICsgc25tcHdhbGs6IEF2b2lkIHRoYXQgc3lzdGVtIGNsb2NrIGNoYW5nZXMgKGUuZy4gYnkgbnRwZCkgYWZmZWN0IGNvZGUgdGhhdCBuZWVkcyByZWxhdGl2ZSB0aW1lCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzdXJlIHRoYXQgdGhlIHJhbmdlIG9mIHRoZSBTTk1QdjMgdmFyaWFibGUgc25tcEVuZ2luZVRpbWUgaXMgMC4uMjE0NzQ4MzY0NyBvbiBhbGwgc3VwcG9ydGVkIHN5c3RlbXMgaW5zdGVhZCBvZiAwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soKSwgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigpLCBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKICAgIENIQU5HRVM6IHNubXBsaWI6IERlcHJlY2F0ZSBhdGltZV9kaWZmKCksIGF0aW1lX25ld01hcmtlcigpLCBhdGltZV9yZWFkeSgpLCBhdGltZV9zZXRNYXJrZXIoKSwgbWFya2VyX3R0aWNrcygpLCBuZXRzbm1wX21hcmtlcl91cHRpbWUoKSwgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpLCB0aW1ldmFsX3R0aWNrcygpLCB1YXRpbWVfZGlmZigpLCB1YXRpbWVfaGRpZmYoKSBhbmQgdWF0aW1lX3JlYWR5KCkuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBzdHJ1Y3QgdGltZXZhbCBtZW1iZXJzIG9mIGRhdGEgc3RydWN0dXJlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSBhIHdhbGwgY2xvY2sgdGltZSBidXQgdGhhdCBkbyBub3cgY29udGFpbiBhIG1vbm90b25pYyBjbG9jayB2YWx1ZQoKY29tbWl0IGMxOTc2MGYzMzMzYzkyZmFjNWQ1MGU5NzY4Y2RmOTM5MjE4YmM0ODcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDE1IDA5OjQ1OjAzIDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXB2My5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCBhNmRiMjM5OTQ1ZTE5NWRlNWE5MGZhMTgzNzAwYjI3YTZlY2IyOGQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiA3IDAwOjExOjE0IDIwMTIgKzAxMDAKCiAgICBGaXggcG9zc2libGUgbWVtb3J5IGxlYWsgZnJvbSByZWNlbnQgZGVjbGFyYXRpb25zIHBhdGNoCgpjb21taXQgMGZiYmI5YTllMjkwNmE3YWY5NTY5NTcwNjFkNDg1ODc0NDYyYWVhOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo0MzowNCAyMDEyICswMTAwCgogICAgRG8gbm90IG1peCBkZWNsYXJhdGlvbnMgYW5kIHN0YXRlbWVudHMKCmNvbW1pdCBmMzA4ZDViYWZiMDVkNzhlZDQwMzBjNGVjZmYzMjRiNmNiZGE2ODBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDZmMGZjMWI3ZmMyNmEyMjU3NjNiYzY1Y2NhNTIwYTFjNTlmMDI1MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo1NDozMiAyMDEyICswMTAwCgogICAgc2VuZG1zZyBkb2VzIG5vdCBsaWtlIElQX1NFTkRTUkNBRERSIGlmIGFkZHIgaXMgSU5BRERSX0FOWQoKY29tbWl0IGRlYmFjNDk4ZmU4NDEwMTEwMTA3YTJmZTY0ZjhhZmI3NDhlZGFhMDcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDE2OjQ4OjA5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhZGRlZCBPQ0ZTMiAoT3JhY2xlIENsdXN0ZXIgRlMpIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUKCmNvbW1pdCBmYWZjOTljZDg5ZTczZWM3ZTAwYmY3MzYwZDBiNGZhNjE5NDRhNGY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE4OjM0IDIwMTIgKzAxMDAKCiAgICBTaW1wbGlmeSBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQoKY29tbWl0IDdhZjIwMTNkZThiZjFiMzc5YzA3NmRiNGUxMDQ1MDhlMTc4NzRkM2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTU6NTggMjAxMiArMDEwMAoKICAgIEZpeCBvcmRlciBvZiBmZWF0dXJlICNpZm5kZWYgYW5kIERveHlnZW4gY29tbWVudCBibG9jawoKY29tbWl0IGJiZDY3ZjYzNTMwZjVlZjBiZmM5NDhmYzU4ZGZlNmE5M2Y4Zjg2NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0MmE2NmFlZmYyNWI5ZTllZjYzNWE0MDRhZDJmNTIxMmY5ZThjZjBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ3OjU0IDIwMTIgKzAxMDAKCiAgICBSZW5hbWUgdHdvIGZ1bmN0aW9uIGFyZ3VtZW50cwoKY29tbWl0IDNmZTcyYjNiOTliN2U0YjJiOTgyMzYzZGZjNGYyZDhkMTNmNDA1OTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTM6NDk6MjIgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc25tcF9zZWxlY3RfaW5mbygpIGRvY3VtZW50YXRpb24gdG8gRG94eWdlbiBmb3JtYXQKCmNvbW1pdCBlOWRiMjY2YWU0OGQwNWE3YTZjYjVkNzFiNGJkZWE3YWQ4MDhlZjVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE3OjU3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X25leHRfYWxhcm1fdGltZSgpCgpjb21taXQgZDA4MDQ0Y2I5ZTU3MDJmYmY1NDllMTQ0MjVmNDI3OTQyNTlkOGEyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAwOTozODowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKCmNvbW1pdCBhMDVjMjdjMjcxMWNiNDE1ODJhM2I0YzMxZTM4YjBlOTM1MzBiNjJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjUxOjMzIDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50Cgpjb21taXQgOTEwZDdiMGQ5OTE4MzYwOWI5NTI5YjA0YzNmMjkzMzBlYjY2MTAyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDozODoxMiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCkgYnkgbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkKCmNvbW1pdCA0M2E4M2Y2YzZhOTZjYzIzMTZiNzBlZWNhY2YxMjdlYjY5MTNjN2E3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE5OjE1IDIwMTIgKzAxMDAKCiAgICBVc2UgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaW5zdGVhZCBvZiBtZW1jcHkoKSBmb3IgY29weWluZyBzdHJ1Y3QgdGltZXZhbAoKY29tbWl0IDJmZTU3OWVmYjFjYjNhNzRmODI4MDNjYTMyMzkyOGY2YjhlNGI1YzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTQ6MDQ6MDIgMjAxMiArMDEwMAoKICAgIE1ha2UgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jIGJ1aWxkIGFnYWluIG9uIG5vbi1MaW51eCBzeXN0ZW1zLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZS4KCmNvbW1pdCA4ODFkZTZhYjczNTUyNzdhNWMxMTZhMDA4ZmJlNTEzMjkzYjA1MDM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDEwOjA4OjIxIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBSbW9uIE1JQiBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IDQ2Mjk5MzNjMGQzYjNmOWY0YmE1ODM1MzRmNzlhMzdmYjk2MzM4MTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMjA6MDU6MzEgMjAxMiArMDAwMAoKICAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGU5YjVhM2RlZTZmOWFmYWI4YjkwYTI5MzkyMDQwNjMyYjA3NWFkN2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTY6NTY6NTUgMjAxMiArMDEwMAoKICAgIFVzZSBTTk1QX01JTigpIGluc3RlYWQgb2YgbWluKCkKCmNvbW1pdCBhZTQ1MmM3N2I0MTExMzlkNmI1ODAwZmZjZjg4ZDQ4ZTliNDc5MmE4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjIzOjM4IDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IGM3ZDExZmEwMGY5OTk1ZGRiOWZlM2Q0OTk0YTNlOTc5MGRhMmUxODkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MTg6NDAgMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcgcGFydGlhbGx5LgoKY29tbWl0IDAwZmQ2MjcyMGVjNDU0ZjVhNjkwZGU0ZmViYTA4MjIzY2ZiMmMzZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDg6NDQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogQXZvaWQgY3Jhc2ggZHVyaW5nIHNodXRkb3duIGR1ZSB0byBpbnZva2luZyBwZXJsX2Rlc3RydWN0KE5VTEwpCgpjb21taXQgZDllMjI5ZDgxYWJlYWYxOTFlZjJjY2IwNzc4NDI4ODVjMjMwZDYyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0Nzo0MSAyMDEyICswMTAwCgogICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgZGVjbGFyYXRpb24KCmNvbW1pdCAxZTJlMmFmNmNhZTgzMGYzODFlODdhMjQ0ZDAyOWViODZiZjNmY2NlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEzOjIwOjM3IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbDogQWRkIGVycm9yIGNoZWNraW5nCgpjb21taXQgMjQxYTE0MWUzMWYxNjg0ZmM2Y2Y3MGNjNGEwMGNjZTYzNmZkMzUyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToyODozNyAyMDEyICswMTAwCgogICAgTWFrZSBjb25maWd1cmUtdGltZSBFVlBfTURfQ1RYX2NyZWF0ZSgpIGRldGVjdGlvbiB3b3JrIG9uIHRoZSA1LjQgYnJhbmNoLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MC4KCmNvbW1pdCA2ZDlkMTRmZWFhYTJkMGZlYzY4YjRkMTU4OTQ0ZDMyY2IwNGZmMWJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjEyOjAwIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCBicmVhayB0aGUgYnVpbGQgb24gdGhlIDUuNCBicmFuY2ggZnJvbSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCA4YWJlNDllMzBjOTdjODk4M2U4M2I0NWEzNWM3MTZmZTkxZjY2YmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxIDExOjU2OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiB0aGUgRElTTUFOIE1JQiBpbXBsZW1lbnRhdGlvbnMuCgpjb21taXQgZjlmYjBhNTMzMzc1ZTE0ZGMzNzAwMjVhMGIyZmJjNzYxYmYyN2JlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAwOTo1NjowMiAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmciIGJlY2F1c2UgaXQncyB3cm9uZy4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzLgoKY29tbWl0IGNhNGE0ZmUyNWVmZDI3MTRmOGYxOTYxYjk3ODU2NjE2NTYzZjQyYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTA6MjE6NDkgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBweXRob24vYnVpbGQKCmNvbW1pdCAxM2FkYTU2NTU4YjQ0ZTI4ZDEzNTVjMGRjZTFkOTIxZjM3NDZkNTQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NTM6NDkgMjAxMiArMDEwMAoKICAgIFJldmVydCAiUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIiAtIHRoZXJlICppcyogTkVUU05NUF9QUklvIGluIFY1LTYrIGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZC4KCmNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDJmYjk5YmU5YWE4NmE2Y2EzNDliODZkNGVmOGJjNzI2ZWQ5ZjJhODIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1ODozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgZTVjMzU1ODllMGJmNDE2YmZkMDM2YmQ0NjhmNDJhYWVhYjI1ZTc4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU1OjU2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTE6MjYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVycm9yIGhhbmRsaW5nIGluIGluaXRfaWNtcCgpLgoKY29tbWl0IGMzMDM1NDlhNTlmYThjMmYyMGE5ZDhiZjFlOTg1ZmJjOGFiZGU2YTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo0NjoyOSAyMDEyICswMTAwCgogICAgUmV3b3JrZWQgX3JlZ2lzdGVyX2V4dGVuZCgpIGVycm9yIGhhbmRsaW5nLgoKY29tbWl0IDljMjBlMjdhNzAyNmZjMDMwZGEzYjMyOGI5YTJlMWI0ZjM2NjcwY2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMToyOCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMjJmZDBiZmMyZGYwZTFmNjAyMGRjM2M1MGE3NTNkZGYyOGE0NTk5YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIwOjIyIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA1ZDYxZTU3YmFmNTgwYzc4MjUyYzBhYmIwMDk4YzA3YmIwNWFmMTdjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MTc6MDUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNjM2VlYWU4MGQ3OTZmMjc1OTdjOTAxZTdmZjIwNDZjNzY5ZWY0YjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowODowOSAyMDEyICswMTAwCgogICAgTWFyayByb3dyZXFfY3R4IGFzIGZyZWVkIHNvIG5leHQgaXRlcmF0aW9uIGFsbG9jYXRlcyBuZXcgb25lIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgZnJlZWQgb25lLgoKY29tbWl0IGFmOWFiZDUzYzIzMzdjOTBhNjkxYTdiMDQ0ZmYzZjk3YzEwMDMxNjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNToxMCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgY2Y5NDY1ZjU0MTgxZTYyZTIxYTliMTAyMTkxMzExMDdhM2QyZWJmNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA0OjA2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3ODcxZjJiMDliOGI1MmYzNGE5ZTU3Nzg0MjY2NDU5MDUzMTY1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDI6NTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDdhMzdmMzNkMzEwYzk1OTg2MDdiYzMyM2Q5YmRiZjkxYWFmNzJjOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMDo1MSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2U0NWY3MDI2MjQ5ZTQ1MzUwZWRhYWM4NTMzNzQyM2FhMGU5NWQ4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCA2MTkzNjc2MmU2NDFjMThkYjc1YWE1MTI1YTMzZTc3NmM2NzdhZGM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MTM6MzkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGZyZWVpbmcgcmVnaW5mbyB0d2ljZSBvbiBlcnJvciBpbiBhIHRlbXBsYXRlIGFuZCBhbGwgaXRzIGluc3RhbmNlcy4KCmNvbW1pdCA0OTY0Mzc0MzA0MTVmYmFmZWIxY2NkNDc3NGYxY2EwMGQ2MjdlYTFmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAxMTowNDoxMyAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzIGludHJvZHVjZWQgb24gVjUuNiBicmFuY2gKCmNvbW1pdCA1YjRhMjRjZGNlZTFiYzNkODI2MzNjY2FmZWI5NmZjZTk1MzQ5YzU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMjoyNyAyMDEyICswMTAwCgogICAgdW5pdCB0ZXN0czogZml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCBjYmYxYzkxYmFmNzE5MWJlNWZhMjdkODFiY2Y4NzE0MzMxYTJjMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDo0MiAyMDEyICswMTAwCgogICAgVXNlIHNubXBUYXJnZXRQYXJhbVRhYmxlX2Rpc3Bvc2UoKSB0byBmcmVlIGEgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0LgogICAgCiAgICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmLgoKY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjMxIDIwMTIgKzAxMDAKCiAgICBIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAzYTc2YjQzZTExZmZmYWRhNjMyZmNjYjg0OGFiNTAwZTg3NmFkNDhiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNjoyMTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBBdm9pZCB0aGF0IGFuIFNOTVAgc2V0IHdpdGggVXNlRW51bXMgZW5hYmxlZCBjYXVzZXMgYSBzZWdtZW50YXRpb24gZmF1bHQKCmNvbW1pdCA4NGRlYzlmYTkyYjBhYTJkNThlYjcwMjAzMzBmNGY5OGU1MTU0MzIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDozODoyMSAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IG1vc3QgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCAzOGNmMjE4YzNmMWE3Mjc3ODZlMjI3YTVkM2ZiMTg2ZmQwZjFhMTVmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6NTA6MTMgMjAxMiArMDEwMAoKICAgIEZpeCBhIHR5cG8KCmNvbW1pdCA0NTQxMjIyNDQxMjJiZmRiNmY2N2NhYjMxMjU2ZDdiNDYzNzJlOWUxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MzA6MTggMjAxMiArMDEwMAoKICAgIEZyZWUgdG1TdGF0ZVJlZiBvbiBlcnJvcnMuCgpjb21taXQgMDExOTAyMmRhYTU5YzczYmZlYzBkYTIzODZkMDYyOGYxNGU2ZGFiNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIGZpbmdlcnByaW50IHdoZW4gaXQncyBub3QgbmVlZGVkLgoKY29tbWl0IDBlODRjZDMwM2EwODI2N2RlYzc4ZjZkODFjOWJiMDdlM2Q4M2ExMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0ODoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDYzZGM4NDZhNzk0OWNlNjk3YjNlMjhjNTQzZGMxMTA1ZTYzYTIyNTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowODoyOCAyMDEyICswMTAwCgogICAgRnJlZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludC4KCmNvbW1pdCBjZTFmMjg0YTYzZWI4MTY0NGIzZTMyNjA2Y2JlMzliNjdlMWRmZjJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6Mzc6MDkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3ZTIxNDEzY2E2ZjJlZmQ3YTNhZmI2MmM2MmI2NDQ4ODFiOGJkMWU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDY6MzAgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGFsbG9jYXRlIGFuZCBmcmVlIGVuZ2luZUlELgoKY29tbWl0IDM0Yzk2Mjg4MjYwN2MzNjM4YTJmYTI1YTJhYzUzMTQ5MmQ3MWM3ODcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzozNzoyNSAyMDEyICswMTAwCgogICAgRnJlZSBsb2NhbGx5IGFsbG9jYXRlZCB0bVN0YXRlUmVmLgoKY29tbWl0IGY1N2FlNTMxZGM1NjU4YWJjZDY1YjE2Mjc2MTU1MjUyMzhkMTZkMmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoyMDoyNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDUzNmJjNTc1NTZjMzE0MTU2MWVhNGExOTQ4MTBiMTYyOTBhNjkxZWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoxNTo0NyAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nLgoKY29tbWl0IGEwNzc3ZDMwN2RiY2FmMjE5ZWUwMTg0YTBmYmFiOWQ0ZTVkNmFhMGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowMTo0NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDhiOTdhNzFjOGU3OTU5NDI4ZWI0ZDRlOGQ5MGU5MDk2ZDQzZmYwOWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1NzoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJjMTUwN2MyMjAzMDU0OWFlNjYwYzBlMjExZmJkYzVjNzVlYzVjNTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1Mzo0NyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDY1ZjJiN2JjZDRmZTAzOTA2YWExYTExNWFiNjBhODliOGFlOTMzZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1MTozNiAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlcyBvbiBlcnJvci4KCmNvbW1pdCAwZTUyZTRmNjZkNDQ3NjZiZWEzNzQ3MzU1NmM3OGU1MjE5Yjk1NDYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDU6MzMgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDI6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3NDhkYTg0YjFmZDY1NGUzMzhiYzcwMWU4ZjllNWRhMjI5MTg3ZjFjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MzI6MDQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBlYjIxNzE0NmZkNTQwMzZlYTQyMDJiZmVmNzhiYmY3NzRkN2UzODJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MjM6MTAgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA5YmEzOGVlYzY2MTM4ZWMxZjYxM2VhOGQwNGUxNTgxMzBjNzEyMWJjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTg6NTUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkOWQ5MzhkMzAxOGMyN2Y1MzI3N2JjNWU1OTU3ODUwMDQ5MGMxZDA5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTY6MzggMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZSBvbiBlcnJvci4KCmNvbW1pdCBkNWU4MTdkNWJkNTE4ZDlhYzZhMGQ2MGUwZTE0MWRkNjRmMjdhZDE5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTQ6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYWU2OGYwNTlkZjlkNzRiMDc0ZDEyZjU5YzE4NDc0NjZlZDU3NmNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MDM6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBhMDBmM2Q0NjExMjFiNTQ1YWVkNzJhYzEyYjI0Mzg3OTFkY2ZjNGJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6NTg6MzkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1OTg4NGJiNGQzNWFkMTM3NDdmZmE2NzIzNDM2ZGNhNTg3YTlhYjc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDk6MTIgMjAxMiArMDEwMAoKICAgIEluIGFib3ZlIGNvZGUsIG9sZW5ndGggaXMgY2hlY2tlZCwgc28gbGV0J3MgY2hlY2sgaXQgYWxzbyBoZXJlLgoKY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+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+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxNzowOCAyMDEyICswMTAwCgogICAgRml4ZWQgcGxhdXNpYmxlIHN0cmluZyBvdmVyZmxvdyBiZWZvcmUgcGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCmNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTE6MDIgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgKGluc2VjdXJlKSBTTk1QX01BWFBBVEggaW4gbWtkaXJoaWVyKCkKCmNvbW1pdCA4MDE2ODkwYTQ0NWY2YTdlMmE4NzNhMDQ4NzNkNGUyN2I2ZWU2NGUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6NDg6MzQgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIGludGVnZXIgc2l6ZSBvbiA2NCBiaXQgcGxhdGZvcm0uCgpjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjMxOjM2IDIwMTIgKzAxMDAKCiAgICBTZWN1cmUgbWtzdGVtcCgpIHdpdGggdW1hc2soKSAtIG9uIHNvbWUgaW1wbGVtZW50YXRpb25zIGl0IGRvZXMgbm90IHNldCAwNjAwIHBlcm1pc3Npb25zIGF1dG9tYXRpY2FsbHkuCgpjb21taXQgMjAyNTIzY2E3MDRiZDcyMmRjMWFjMGUxZTZiMGU0YjRlNTQyNDQ5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjExOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nICdjJyBiZWZvcmUgTlVMTCBjaGVjay4KCmNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MDg6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgMmY0ZTZhY2Q3MTQxODNmMDE1Yjc2MzY1N2Y4ZjA4NDU5MzM1N2UyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTA6Mzg6MTYgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IElnbm9yZSBwZXJsLyoueW1sIGZpbGVzCgpjb21taXQgYzM2NWQ4MGMxNmMyZDE3YjE2MDAxMWU4YzFmOWNiOTU4OTU0ZTlkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMDg6MzQ6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRG8gbm90IGludm9rZSBzaHV0ZG93bl9wZXJsKCkgZnJvbSBpbnNpZGUgdGhlIFNJR1RFUk0gaGFuZGxlciBzaW5jZSB0aGF0IGZhaWxzIGlmIFNJR1RFUk0gaXMgcmVjZWl2ZWQgd2hpbGUgYSBQZXJsIGhhbmRsZXIgaXMgYWN0aXZlLiBCYXNlZCBvbiBhIHBhdGNoIHBvc3RlZCBieSBKb2VsIEF2bmkgPGphdm5pQGFydWJhbmV0d29ya3MuY29tPgoKY29tbWl0IGQwNTlmYjg3OGIxNDM2NTk5OTUzY2VhNWEwNzc0OTlkZGNkY2JjYjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTc6MDM6NTUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0MDc1MjogSUYtTUlCOiBSZXBvcnQgaW50ZXJmYWNlIHNwZWVkIGNvcnJlY3RseSBmb3IgRXRoZXJuZXQgaW50ZXJmYWNlcyBpZiBvdGhlciB0aGFuIDEwIE1icHMsIDEwMCBNYnBzLCAxIEdicHMsIDIuNSBHYnBzIG9yIDEwIEdicHMuIEFkZCBzdXBwb3J0IGZvciBOSUNzIGZhc3RlciB0aGFuIDY1IEdicHMuCgpjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNjoxNyAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzCgpjb21taXQgZTMyNWVjYmZjZTc3ZjAwYWM1Y2Y2ZmJkOTU3Zjk1NDk1ZjYxYzU5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCgogICAgU3VwcHJlc3MgdW5pbnRlcmVzdGluZyBEb3h5Z2VuIHdhcm5pbmdzCgpjb21taXQgYmU5MTYxZDNhNTg5OGU4NjM3NjdmOTI2NjEzNDg2MTI2YzJjYmY2NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjozNTozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIG1hbmlwdWxhdGluZyA2NC1iaXQgbnVtYmVycy4KCmNvbW1pdCA4NmU0YzJiZTA4NTJhMGExM2IwNjAzMDc1NzIwYjMyNjRlYzcwZGRlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjI5OjExIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIGl0IGV4cGxpY2l0IHRoYXQgTUFYX1NVQklEIGlzIGFuIHVuc2lnbmVkIGNvbnN0YW50Cgpjb21taXQgMzdlMjcyZDhmN2I3MTgwYmExNDBmYTM4NmE1ZmYwNTg5NjhhMDhhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxODoyMTo0OCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IElGLU1JQjo6aWZUeXBlOiBSZXBvcnQgdHlwZSAiaW5maW5pYmFuZCAoMTk5KSIgZm9yIEluZmluaUJhbmQgaW50ZXJmYWNlcyBpbnN0ZWFkIG9mIHR5cGUgIm90aGVyICgxKSIuCgpjb21taXQgMjY5OTMyZmEzMmM3Y2Q0Nzk1NzQ4OTY5OGUwOWJlZTMxZjYzYjdhZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNDo0MiAyMDEyICswMTAwCgogICAgRml4IGFuIE1TVkMgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDBkMWMyMWY5OTkxZDEzMDlkMDU3ZTNlNDA1NmQ1NDdkZjdkNDBlY2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTY6MDY6MzEgMjAxMiArMDEwMAoKICAgIE1ha2UgZGVjbGFyYXRpb24gYW5kIGRlZmluaXRpb24gb2Ygc3RybGNhdCgpIGNvbnNpc3RlbnQuCgpjb21taXQgMGMzZDRkYmIwYTljZjViMzU5ZjcwYjJmMTk5MTU0OTU1NTRmODQwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNToyMzoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogV2luMzI6IHNubXBkOiBSZW1vdmUgZGxtb2QKCmNvbW1pdCA4OTNlY2M5N2I1ODc2NjEwNDViZWNiZTA5YTMyMGMxYmNiYzcxYzdjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM2OjU5IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdCgpIHRvIHRoZSBNU1ZDIGJ1aWxkIGluZnJhc3RydWN0dXJlLgoKY29tbWl0IDNkMTI2NDIyZTYyNTcwMmI5ZDNmYTA2NzZhOTdlYzVjYjIwZDlkMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MDE6MDYgMjAxMiArMDEwMAoKICAgIE1ha2Ugd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggY29uc2lzdGVudCB3aXRoIGl0cyAuaW4gZmlsZQoKY29tbWl0IGFmNTNiNzZjMmZmYTc1MWUzOTU4ZDBmYzVkODI3OWY3OGMyYzFjMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6NDM6NTUgMjAxMiArMDEwMAoKICAgIFNraXAgVDA2NnBhc3Nfc2ltcGxlIGFuZCBUMDY3cGFzc3BlcnNpc3Rfc2ltcGxlIG9uIE1pbkdXCgpjb21taXQgMzVhOTJlNjkzZDEzM2E1YjExZTllOWI1OTlkYmY0N2VkZWY0OTMzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAwODoxNjozNiAyMDEyICswMTAwCgogICAgUmVtb3ZlIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYyBhZ2Fpbiwgd2hpY2ggd2FzIGFkZGVkIGFjY2lkZW50YWxseSB3aGlsZSByZXNvbHZpbmcgbWVyZ2UgY29uZmxpY3RzIChjb21taXQgMWQ3OGY3ZDViNThhZWQyYjUyYzRkMzg2YTdiYTgwYTQ0NzExYmFjYSkKCmNvbW1pdCBhOWIwNzNlYTNiNmNlZGY3MTNlMzA1ZTdiMTVmMjhhZTU3YmZkZjFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE3OjQ3OjExIDIwMTIgKzAwMDAKCiAgICBGaXggNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgN2U4OTBkYWQ5NWY1NjYwNjllZTI4MDIxNWE0ZmVhM2YwZTJlMzk4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNjozODo1MCAyMDEyICswMTAwCgogICAgQXZvaWQgYSBTSUdTRUdWIGlmIGNwID09IE5VTEwuIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4LgoKY29tbWl0IDFmNjIwMGNmZTFiMGIyN2ViYjA5M2ExNjA2YjU5MmY5ZTk2ODRiZTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6NTM6MzQgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNgoKY29tbWl0IGMzMTI2YjE0MzkyMWZhYmVhYzQ0MjE2NmVjYTViNWI3NDJmZDQyYzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6MDI6MzkgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbW9zdCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS41Cgpjb21taXQgYjI0ZWU3YzkwOTY1N2RiNDNiZDhjNWQ4YzAxMDU1Y2EwODgzYzljZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwODo0MDozOSAyMDEyICswMTAwCgogICAgRWxpbWluYXRlIG1vc3Qgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgY2FsbHMKICAgIAogICAgVXNpbmcgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgaXMgZXJyb3IgcHJvbmUgLS0gc2VlIGFsc28KICAgIGh0dHA6Ly93d3cuZ3JhdGlzb2Z0LnVzL3RvZGQvcGFwZXJzL3N0cmxjcHkuaHRtbC4gSGVuY2UgcmVwbGFjZQogICAgYWxsIGludm9jYXRpb25zIG9mIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpLiBSZXBsYWNlCiAgICBzdHJuY3B5KGRzdCwgc3JjLCBuKSBjYWxscyBieToKICAgICogc3RybGNweShkc3QsIHNyYywgbikgaWYgdGhlIGdvYWwgd2FzIHRvIGF2b2lkIG91dHB1dCBidWZmZXIgb3ZlcmZsb3cuCiAgICAqIHNwcmludGYoZHN0LCAiJS4qcyIsIG4sIHNyYykgdG8gY29weSBhIHByZWZpeCBvZiBzcmMgdG8gZHN0IG9yIGlmIHNyYyBpcwogICAgICAgIG5vdCAnXDAnLXRlcm1pbmF0ZWQuCiAgICAqIG1lbWNweShkc3QsIHNyYywgbikgaWYgc3RybGVuKHNyYykgPj0gbiBhbmQgbiA8IHNpemUgb2YgZHN0LgogICAgKiBzdHJjcHkoZHN0LCBzcmMpIGlmIG4gPiBzdHJsZW4oc3JjKSBhbmQgbiA8IHNpemUgb2YgZHN0LgoKY29tbWl0IDZkOTViYzQxNDk0NzI5MzEwMDU0NzVjMzBhNTQxZmVkNTUzNGRhMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTE6MTk6MTYgMjAxMiArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyB0cmlnZ2VyZWQgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIHhzIHNvdXJjZSBmaWxlcwoKY29tbWl0IGJhZDA2MDBmNmVjOTQ0ZWY4NDU1ZTMyN2NlNzg0YjliMDdkMjQ3YzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MTMgMjAxMiArMDEwMAoKICAgIEFkZCBjb25maWd1cmUgdGVzdCBmb3Igc29ja2FkZHJfdW4uc3VuX3BhdGggc3VjaCB0aGF0IHRoZSBjb20yc2VjIHRlc3QgaXMgcnVuCgpjb21taXQgOTJhMzJhYzQ4NjZhNWVkYzdmMzQ3ZDM3OTQyYmYwMjhkZTAyNzYyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoyOSAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA4M2U0YzBlMzA0ZjYxN2NjYWM2NjEwZWRkNzRkMTcwNjc5N2JiZjUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE1OjM3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgYSB0ZXN0IGZvciBzZV9zdG9yZV9saXN0KCkKCmNvbW1pdCA0ZmFlNTg1MjEwM2VjMzg5M2FkNDg4YmMwZDkwNWNhNjkxNDU5NWVmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE3OjE1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSB0aGUgc2Vfc3RvcmVfZW51bV9saXN0KCkgaW1wbGVtZW50YXRpb24KCmNvbW1pdCBiMzIyMmJiMjc1ZjJmMjM0NmUwZmQwNDc4YWZhMmVmYjYwMDc3M2U1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE2OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZWNsYXJlICJ0eXBlIiBhcmd1bWVudCBvZiBzZV9zdG9yZV9saXN0KCkgLyBzZV9zdG9yZV9zbGlzdCgpIC8gc2Vfc3RvcmVfZW51bV9saXN0KCkgY29uc3QKCmNvbW1pdCAwMjJmODQwZmJmY2IwZTI2YjA4ZjBlNTU3MjgyMzFmNjExNDk1ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE5OjU1OjU2IDIwMTIgKzAwMDAKCiAgICBBdm9pZCB0aGF0IFZhbGdyaW5kIGNvbXBsYWlucyBhYm91dCBzZW5kaW5nIFVEUCBkYXRhCgpjb21taXQgNjcyYTgwOWMyMjhlOTU1MGI5OWI4OTEwYmU3NWQwYjE2MTk4NTQwMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzozMzowOSAyMDEyICswMDAwCgogICAgRml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAyNGZmMjYwYWQ4OWNlMmFhMzYxYTU1YzdjNzJlOTE2MDMxZGVmZTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjExOjI0IDIwMTIgKzAxMDAKCiAgICBDaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBzbm1wX3NldF92YXJfdmFsdWUoKSBhbmQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKCkgZnJvbSB1X2NoYXIqIHRvIHZvaWQqLCBsaWtlIG9uIG1vcmUgcmVjZW50IGJyYW5jaGVzCgpjb21taXQgYzZjYTczN2ZiNDZmOTBhNGJkYTVkNDM3MzRhYWMzNGU4MzdhMDVmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMTMgMTk6MDc6MzcgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBmNTA0Y2UyZDc0YTRiYzg4ZjY4Y2M5NTE1ZmE3MDUzMzczY2IxNWI1LgogICAgKEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUgcGVybCBzdWJkaXJlY3RvcnkuIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4pCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCXBlcmwvQVNOL0FTTi54cwogICAgCXBlcmwvT0lEL09JRC54cwogICAgCXBlcmwvU05NUC9TTk1QLnhzCiAgICAJcGVybC9hZ2VudC9hZ2VudC54cwoKY29tbWl0IGQyMTJkYzk4NGVjMzRlNGQyMzA2MjVlNDZlNThiMGM2MjhhNTBkZjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6NDY6NDkgMjAxMiArMDEwMAoKICAgIFNOTVAueHMgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGJhY2VlYmIxMGQ4Y2FmNWRiNjNjYzM2OTM1ZmVkNjVlZTkzMTAyOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6MjI6NDQgMjAxMiArMDEwMAoKICAgIEFkZCBkZWNsYXJhdGlvbiBmb3Igc2h1dGRvd25fc25tcE5vdGlmeVRhYmxlKCkKCmNvbW1pdCBmN2Y5NjZhYmQ2ZDI4NDliMTMzMTI1MmFmZTVjNDczZTVjNDBiMzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE0OjI0OjMzIDIwMTIgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2hlcy4KCmNvbW1pdCAzMDNjMDE1YmNmZTlhZjBiMTU0ZTk4ODFjN2I0ZjQ0OWUwOGYzMGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIyOjA2OjIzIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZDNlYjJiNWNlZDIyYTg0ODAwNTNjZTQzYWNmOTczOTcyOTA1NTQwNAogICAgKFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudCAvIGZpeCBmb3JtYXQgc3RyaW5nIG1pc21hdGNoZXMsCiAgICBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L2FnZW50X3N5c09SVGFibGUuYwogICAgCWFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwogICAgCWFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgKCmNvbW1pdCBkOTViNDA0MDY5MTZiZGE1YjQ4YjVhNjEzMWJlYzI3Yjg2NmIwYTc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIxOjU5OjIwIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBhMmE3MzE2YzMxMGYwZmNjMzcyODY3M2ZhMDQ3MDUxYzIzYjcxOTYwCiAgICAoVHJpdmlhbCB3YXJuaW5nIGZpeGVzLCBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgIAlhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMKICAgIAlhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jCiAgICAJYWdlbnQvc25tcGQuYwogICAgCXNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jCgpjb21taXQgZDg2YzQ3ZjAwM2ZkYzE5MmJjZTdiNDZhYzRmMDZiMDllMzg3YzEyYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6Mjk6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwbwoKY29tbWl0IGJlZTRkNzljZjRlYjdlMGE0NTM5N2Y1OWI1Mjk4ZGE2MzNhOGUxYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjE0OjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KCmNvbW1pdCAzZGMwZTAwYTJmZDhlMzRmZTFhZTMzZWNhYmYzNmUxNDY0NjBhMzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjo0MDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgJ3Rva2VuJyBpcyB1c2VkLgoKY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjI4OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBvZmYtYnktb25lIG1lbXNldC4KCmNvbW1pdCAwZjUzNjk1MDQ0ZGQzZjBjMzUwNzc1M2UzZjhjMjlkOTdlOTY4NzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAzIDIxOjM4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhcHBzL3NubXB0bHMuYwogICAgCWFwcHMvc25tcHRyYXBkX2xvZy5jCiAgICAJc25tcGxpYi9kaXJfdXRpbHMuYwogICAgCXNubXBsaWIvc25tcF9jbGllbnQuYwogICAgCXNubXBsaWIvc25tcF9vcGVuc3NsLmMKICAgIAlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jCgpjb21taXQgMDE1MzgwNWM5OWI5MTk3MzY1OTM1YzVkMTFhZTljM2Q0YmZhYTBmMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0ODo0MSAyMDEyICswMTAwCgogICAgRml4IGEgc2V0LWJ1dC1ub3QtdXNlZCB3YXJuaW5nCgpjb21taXQgM2Y4ODg1ZmJlZTk0MDc3NDhmYzJmMDU3MzcyOGExMWJhMmJjMDIzYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDI4IDA1OjUxOjEzIDIwMDkgKzAwMDAKCiAgICBSZXR1cm4gYSB2YWx1ZSBmcm9tIHNwcmludF9yZWFsbG9jX3ZhbHVlIGV2ZW4gaWYgbm8gc3VidHJlZSBpcyBsb2NhdGVkLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzU3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiMWVhYWYzMDIzNjlmZDQ1NTJlOGZlZTdiNmE4MDUwOTFlYzBhOWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozODo1MSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZmluZF9zZWNfbW9kKCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjMxOjIyIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBzbm1wX3Nlc3NfdHJhbnNwb3J0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDVkMWQwYTc0NGFiMzBjOGU2NDVjM2I4NTA2Y2JiZDJjY2ViM2QyNzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjA0OjQ4IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBuZXRzbm1wX2V4dHJhY3RfaXRlcmF0b3JfY29udGV4dCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCAyOTllYTlhODljM2YxNzU4YTc3NDhiYjliMzQxMWY2MmYyYzcwZjg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1NDo1NSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZm9wZW4oKSByZXR1cm4gdmFsdWUsIGp1c3QgaW4gY2FzZSBvZiBzb21lIHJhY2UuCgpjb21taXQgOTBmMWFlNjc1NzkxNzQ4MTYzNmVlZjc3MTAwY2FlZWI1M2VkZmUwMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDowNjo1NiAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQuYy4gU291cmNlOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9jdnN3ZWIuY2dpL3NyYy9saWIvbGliYy9zdHJpbmcvc3RybGNhdC5jLgoKY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjUwOjU2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBzdHJyY2hyIHJldHVybiB2YWx1ZSBjaGVjaywganVzdCB0byBiZSBzdXJlLgoKY29tbWl0IDE5OWEwNTExZjZlYjBlZjNmZjFkOWY5MjJiNzkwYWI2N2RmZGUwMWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MzE6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBzbXV4OiBzaW1wbGlmeSBzbXV4X2xpc3RfZGV0YWNoKCkKCmNvbW1pdCBkODgzNTczYWE3M2UwZjVmYzE4OGFjZWRlZTY0NTFmOTVkYWU5MDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjIzOjA2IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGludHJvZHVjZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgN2I3YTNlYjI1MDA1MjdlYWExNjk5Mjg3YTZjYTZmY2M0Y2MyZTA4YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0MDowMiAyMDEyICswMTAwCgogICAgRml4IGEgYnVpbGQgZXJyb3IgY2F1c2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDJiNmMxMTlmZWQ0ODQ4ZGE2NjYzYzExZjBjMmNiZGMyOTkyMWI1YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjUxOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbmV0c25tcF9kc19nZXRfaW50KCkgZXJyb3JzLgoKY29tbWl0IDZjZTUzNjBjYWE0YzlkZTUxYWRlNTc4NzllODNmOTZiZDA0YjRjNWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjQyOjIzIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2aWV3LgoKY29tbWl0IGIzYmM1NGJlZDMxNjkwYTg1ZGYyYWNmYmYzMjk2ZGE5M2E5ZTg5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjIzOjE3IDIwMTIgKzAxMDAKCiAgICBDaGVjayBzb2NrZXQoKSByZXN1bHQuCiAgICBBbHNvIGNsb3NlIHRoZSBzb2NrZXQgb24gZXJyb3IuCgpjb21taXQgOTIwNzVmNTFjZDQ1YTM4Y2EzODc2MGIzZmZlODJlMTY1NTllOWMyZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MTg6MjYgMjAxMiArMDEwMAoKICAgIENoZWNrIG9wZW4oKSByZXN1bHQuCgpjb21taXQgNjY2NWQ1ZmUyZmM1NjlkNmZhODU0ZDFkNzhlMzQ3YmJhYzY5ZTA3MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjI6MjIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgYTY2NDhjNTQ1M2UxZWY4ZGFjNTdhMzhlZmNjMDBjY2U1M2JmOWU0ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjA6MjcgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgZDY4ZGNhZTBmMThkNTU0NTcxYWVmMzIxOTQ0YTUyOTA1NDhkZGU4NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTY6MTEgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZmI2ZjgwYzBmZTNiYTM2ZTU2ZjViOTExYTQ3ZTNmNmYzMmJhMjY2ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTQ6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGV4aXQgY29kZSBvZiBlbmNvZGVfa2V5Y2hhbmdlIHdpdGggd3JvbmcgYXJndW1lbnRzLgogICAgQWxzbyBhZGRlZCBhIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDMxMzBlMjRmZGMyMzI0NjRkZDdiYjIxNmY0NmNhZmEyZTBlNzc1YTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA5OjU0IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBtaXNzaW5nIGJyZWFrCgpjb21taXQgMThjMTI2YTk1NjVjYjRkNjlkNzUxM2I5NDRhMjEwNTU4ODA0NWQzNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDc6MjkgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgNmQzMWM4MjA3MGEyYzY4ZmUzYzUxOWU5ZDU2ZmEyNzc5NTU0ZDAxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDE6NTMgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZGM2ZjBlMmU1NDliNGNkMDYxZWJjMTkwMDg0YjFmYzc3YTU1ZjQwZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzI6NTkgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgZGFiMzI4NjdlZDBiOTkzMDFlZmQ3YjhkODUyYWQxMjg4YTE4NGJlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzA6MzMgMjAxMiArMDEwMAoKICAgIEZpeGVkIFFVSVRGVU4gdXNhZ2UuCgpjb21taXQgYjFhMmJjZjY0NjE1ZWI2NmJjMjRkNWJlNDk1MGU0NTAxMjk2MjA0NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTg6MDMgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYjJiMWM4NTFiOTRmZWQzN2MzODZlYWExYmZlYWQ1Yzc3Njk2ZTNlZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTQ6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6NTg6NDYgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGZvciBmYWlsZWQgcmVnaXN0ZXJfbWliLgoKY29tbWl0IDU5NDlmMDU1YzE2YWU2NTA2MTVhYWU3YTFmZWUzZjJkN2IxNmQ5NDAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjI5OjU5IDIwMTIgKzAxMDAKCiAgICBNYWtlIE1JQiBmaWxlIHBhcnNpbmcgYW5kIGRldGVjdGlvbiBtb3JlIHN0cmljdCAtIExBQkVMIGlzIHJlcXVpcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgTUlCIGZpbGVzLgoKY29tbWl0IGU0YjY3MzY4M2M2OGJhOGIzYWJjMDQwYjkxMjVlYzMwNDY0M2NjN2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjM6MDA6MjQgMjAxMiArMDEwMAoKICAgIEFzc3VtZSB0aGF0IGxpYmRsIG1pZ2h0IGJlIGluIEFHRU5UTElCUyBvciBTTk1QTElCUyBzbyBwcmVhZGQgdGhlbS4KCmNvbW1pdCBiMTNjMWU1N2JlZGJhNzliODA2MTAzYzc0ZjE5MjFkNTNhNzA2YjM4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIyOjU1OjA2IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgcmVxdWlyZSB1Y2Qtc25tcC9kbG1vZCB1bmxlc3MgaXQgd2lsbCB3b3JrLgoKY29tbWl0IDI3ZGNlYTBkNWY4MDFkZjQ5NGFiMmNiNWM1YzBlYmU1NGViMGRjZDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjQ4OjI5IDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgcGF0aHMgZm9yIHRlc3QgcmVzdHJ1Y3R1cmUKCmNvbW1pdCAxNGI2MGU4NWExYjU3MDBlOTNkMTI2ZTJmMjkxZDVjNDg1ZjM0ZTM2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDoxNDoyOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRsbW9kIG1vZHVsZSBmYWlsIHJhdGhlciB0aGFuIGdlbmVyYXRlIGEgZHVtbXkgbW9kdWxlIGlmIHRoZSBkbG9wZW4gZnVuY3Rpb24gaXNuJ3QgYXZhaWxhYmxlLgoKY29tbWl0IDk4YTk3NTM4ZmMxZTlmZjQ2YjYwZDVkOTY5MzQ3NDQ0NTc4Mzc4YzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDEzOjM1OjEzIDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgdGhlIHBhdGhzIHRvIHN1cHBvcnQgdGVzdGluZyBldmVuIGlmIGJ1aWxkZGlyICE9IHNyY2RpcgoKY29tbWl0IDg4ZjBhZjNjZmI5MTZhZTU4NjNjYzI5ODYwNzFkNDM1ZjIwYzMwNjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDExOjM3OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZXMgJ3AnIGFuZCAnbGVuJy4KCmNvbW1pdCAwODE1YTc1MzZjNzZmN2U0ODQyNjM4NjgzZjY3NDg5NGExYThjZTE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6NDI6NTQgMjAxMSArMDAwMAoKICAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIFNldFVuZG8gcHJvY2Vzc2luZwogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDU0NDAKCmNvbW1pdCBlYjJhYjIzNzQyY2E4NmMwYjg5Y2NmZTkxZWI2ZWEzNzRiZjNhY2MxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6Mzc6MzEgMjAxMSArMDAwMAoKICAgIENoZWNrIGZvciB0aGUgZXhwZWN0ZWQgZXJyb3IgKEVQSVBFKSBvbiBjbG9zdXJlLgogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDc0NDQKCmNvbW1pdCBhYWMxMGJjNGYwNTNjMDE0ZjM4MmQ2NTkzZmMzMmFiOTVlMGIxYTU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTI6NTk6NTIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0NjM3Njc6IEhhbmRsZSBwYXJzaW5nIHN1YmlkZW50aWZpZXJzID4gMl4zMQoKY29tbWl0IGJiYzAyZTM2ZTkwYzFhYWI3ODk4NTYyZjk2M2Y1Y2FkYjI2ZTEwYmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNzoxNToxNiAyMDExICswMDAwCgogICAgTW92ZSBwYXNzL3Bhc3NfcGVyc2lzdCB0ZXN0cyB0byB0aGUgbmV3IGxvY2F0aW9uCgpjb21taXQgMzg5OGMwNGZkNmY4OTg2NzA2MmZkZmViZjM2ODU3YWI2MTljMDQ1MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE2OjUzOjI0IDIwMTEgKzAwMDAKCiAgICBBZGQgdGVzdHMgZm9yIHBhc3MvcGFzc19wZXJzaXN0LCBzdXBwbGllZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGQ1ZWUzZjBhMWE2M2JiMTc1MmM3NGNiY2E1NWFhM2Q0MGJmOWJmMTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo1ODo1MSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc0NDQ6IEZpeCBTSUdfUElQRSBoYW5kbGluZwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAyYTE3YjM3NDMwYzE4NTI5OThjMzU4OGU1NDdkN2ViNjFjMDZkYTcxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NDU6MzggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQ0MDogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgQWdlbnRYIGVycm9ycwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBmZTU4YTBlNWY0ZDRlMmUyZWNiY2I0NzM4MmIwOGNiMWU0ZGYzNTJjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MTY6MjMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0NTY3NzA6IEhhbmRsZSAob2Jzb2xldGUpIFVJbnRlZ2VyIHR5cGUgcHJvcGVybHkKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMWJlOGNmMDhhNjdhOTE4NTVmZWUxZWM0YTJkOGUwODdjNzgxMjQ1NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjA0OjEwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0Mzc6IExvZyBBZ2VudFggZGlzY29ubmVjdGlvbnMKICAgIChpbiBsaW5lIHdpdGggY29ubmVjdGlvbnMpIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMDY4MDM3Mjg5MTA3ZmFhMmJhM2Y1Y2QyZmIwMGMxOTQ5NGJiOWEwNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBIYW5kbGUgYW55IEdFVE5FWFQgcmVxdWVzdCBPSUQsIG5vdCBqdXN0IGEgc2ltcGxlIHdhbGsuCgpjb21taXQgYTc0ZmE1Mjg5ODMxMjNkMzU1YThjZGNhYTc3ZGQ0ZWI0YjhjNjk1OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjAwOjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBwYXNzOiBQQVRDSEVTOiAzNDkzOTQ6IEJyaW5nIHBhc3NfcGVyc2lzdHRlc3Qgc2NyaXB0IGludG8gbGluZSB3aXRoIHBhc3N0ZXN0KgogICAgKGkuZS4gdXNpbmcgdGhlIGxlZ2l0aW1hdGUgc3RydWN0dXJlIG9mIE5FVC1TTk1QLVBBU1MtTUlCKQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBiYmU2NDllYmZhNjFlYTIyMzk5MTcwYjM2Yjk5ZGIzMGExZGU4MDEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTY6NTQ6MzggMjAxMSArMDAwMAoKICAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGUgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cwogICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgc3RydWN0dXJlIGZvciBvdXRwdXQuICBCYWNrcG9ydCBvZiBTVk4KICAgIHJldmlzaW9uIDE3NjMyICh3aGljaCB1cGRhdGVkICdwYXNzdGVzdC5wbCcgYnV0IG1pc3NlZCAncGFzc3Rlc3QnKQogICAgQ29ycmVjdCBpbiBicmFuY2hlcyA1LjUgYW5kIGFib3ZlCgpjb21taXQgODJkMDZjNzI0N2IyMmM4YjAxZDQ1YmY1NTA0MWQyZjFlNjQyN2Q0OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjQ1OjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzY3MTogRml4IG92ZXJyaWRlIGhhbmRsaW5nIG9mIE9JRCB2YWx1ZXMKICAgIFBhdGNoIHN1cHBsaWVkIGJ5IFBoaWxsaXAgTydEb25uZWxsCgpjb21taXQgYmE0YTljZTUxYzk2MDBmOWZkYTE2OGYxZTZlZmYzMmExZGI2M2NiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjI0OjI2IDIwMTEgKzAwMDAKCiAgICBUd2VhayAtLWRpc2FibGUtc25tcC1zZXQgY2hhbmdlcwoKY29tbWl0IDgyN2M4YjI4ODMwMTcxZmFhOWM2MWQ1M2VmY2E5ZWI2NjAwNTYxYzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMToyNTo0MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzNDMzODQ2OiBGaXggZm9yIHVzZSB3aXRoIHB5dGhvbiAyLjQKCmNvbW1pdCBmOThhNTRhOTljYWY3YjQ2YjEwMGE5MjBkYjk0MmNiY2E5YzQzOTI2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTA6MTA6MzYgMjAxMSArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IDIzMGRmMTRmOTRjMzczNmZmMzQzNzlhNGUyODFlZWEzNTNiNDdmODAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gRGVjIDI2IDIzOjM0OjIzIDIwMTEgKzAxMDAKCiAgICBEbyBub3QgYXNzaWduIHRtU3RhdGVSZWYgdHdpY2UKCmNvbW1pdCBjOTZiM2I0ZDg1MzBhZDVlMGVmYjAzZjI0ZGFiNWU1ZjFhNDYwMDMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxODoyMSAyMDExICswMTAwCgogICAgQ29ycmVjdCB1c2UtYWZ0ZXItZnJlZS4KCmNvbW1pdCBjNTk3OGM4OWNkZTI0NDBmNGQyMGRhZGJjOWQxZGQ4ZGI1NjJkNTZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxNTo0NCAyMDExICswMTAwCgogICAgQ29ycmVjdCBkb3VibGUtZnJlZS4KICAgIAogICAgbmV0c25tcF90bHN0bUFkZHJfYWRkIHRha2VzIG93bmVyc2hpcCBvZiBpdCdzIGFyZ3VtZW50IHNvIGNhbGxpbmcgZnJlZSBvbiB0aGUKICAgIGFyZ3VtZW50IG9uIGZhaWx1cmUgaXMgaW5jb3JyZWN0LgoKY29tbWl0IGMxMzljYTEyM2I0NGJiM2I5YjZiZjkyMWUxNjA5Y2M0NWY2M2E2NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjo1NTozMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1OTogRml4IHNwYXJzZWx5IGF1Z21lbnRpbmcgdHJpZ2dlciB0YWJsZXMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzRhZTAyMWIyZTYzODQ0MzcwODFjNTYyM2YzNjBjODg5NjM5MDE4OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI5OjU0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIEJhc2VkIG9uIG1pYjJjIHBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzZhY2NmOGM2NjI1NGZhOGM0ODc2N2VkN2RlYzc5NWRkYWZjNTIyZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI3OjExIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYTYxODI2YWQ4Y2E1NDY2MWQxZDkwOTcxMjUwM2JkM2E4YjMyZWVkMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMjIgMTg6MzU6NDYgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgICAKICAgIG15TWF0Y2ggaXMgdW51c2VkIGFzIG5tYXRjaCBpcyB6ZXJvIGFuZCBhbHNvIHNpbmNlIHJlZ2V4QnVmZmVyIGlzIGNyZWF0ZWQKICAgIHdpdGggUkVHX05PU1VCIHNldC4KCmNvbW1pdCBiYTRmYzgwZmUyY2ZkNWE1ZDg5MjMwZDhmMzcwM2U0ZmUwMWU2MDE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjIgMTk6MjQ6NDAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTCiAgICBBbHNvIG1vdmUgdmFyaW91cyBGU1R5cGUgZGVmaW5pdGlvbnMgdG8gdGhlIGFwcHJvcHJpYXRlIGJsb2NrcwoKY29tbWl0IGI1YWM0YTA0ZGNkNTQ3MGQwOGQwMzMyMWFiY2QxZTk4MjYyMWU2ZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDJiMzdlNGU4ZjI1MGEwZDg4MjExOTlhNzRhYzNmNGU1YjdiN2JhYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMTo1MSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDNkMDgzNDUxNTZjNDE5MzMzZGU5NjlmMTNkMjFmY2VjN2UxOGU5NGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMjoyOSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IGNkODU5YWQ1MWM0ZjE4ZDViMGZjNjlkZDY2OWZjYjA1MWM3OTg5NjkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTozMyAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbWVtbW92ZSBzaXplCgpjb21taXQgMzBmZjU4ZDA5ZDRjOWQ1NDM4YmI2MjEwNTRmZDdhZDdhMmE1OTdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjA3OjE5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBsZW5ndGggb2YgYnVmZmVyIHdoZW4gcHJpbnRpbmcgQVNOX0JJVF9TVFIKCmNvbW1pdCA2YzE0ODdlMWQzNjBkM2QyNjBhMzljYjFmNWIxNWRhOTc4Mzk1MDUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDc6MzQgMjAxMSArMDEwMAoKICAgIEZpeGVkIHBvdGVudGlhbCBmcmVlIG9mIHVuaW5pdGlhbGl6ZWQgcG9pbnRlciBpbiBlcnJvciBjYXNlcwoKY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NDo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW5pdGlhbGl6ZWQgdmFsdWVzIGluIHVkcFRhYmxlCgpjb21taXQgYzQ0NjA4Njc5Yjg5NzUxMTc2ZjI4YTJlNTRkNTI4MmI0NmUyYTA1YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjU2OjEzIDIwMTEgKzAxMDAKCiAgICBVc2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIGFuZCBtYW51YWwgY2xlYXJpbmcKCmNvbW1pdCBhMDVjNWY5NTEzNDYxODI0ZTc5MDNhZTlhZTlhNmMzMzg2ZTMzODc5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NDA6NTAgMjAxMSArMDEwMAoKICAgIEZpeGVkIHByaW50aW5nIG9mIHVuaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gc2Vuc29yc19nZXRfbGFiZWwoKSBmYWlscwoKY29tbWl0IGU0YTVlZGM3MjM5M2JkM2RlOWJmMTJiY2ViYTlkODNiYmY3ZGU3MGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDozMToyNSAyMDExICswMTAwCgogICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBmYWUyZTViODM1YjhkZjFlYWU0N2U0Y2ViYjRlYjQwNGQ3MjgyMzc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzE6MjEgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pdGlhbGl6ZWQgaWlkIGluIGVycm9yIGNhc2VzIGFuZCB3aXRoIGRlYnVnIGluZm8gZW5hYmxlZC4KCmNvbW1pdCA5ZDU4ZjgxYTkyMzljZmJjZmM4ZWJjZTM2N2QyMWU5YjNkY2IwMjhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzM6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCAwYmM4YzA4ZWRlYWU3YWUwOTVmMTE2MjU4YzIwYWU1NzY3ZDYwNjUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MjA6NTIgMjAxMSArMDEwMAoKICAgIEZpeGVkIHJldHVybmluZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdzdGF0dXMnIHdoZW4gc3MgPT0gTlVMTAoKY29tbWl0IDczMDRjNTNjZjhhZGVlOGVjY2VmMWE4ZjI2NzU2ZmMwN2YwOTg3MjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDE4IDIzOjMxOjUzIDIwMTEgKzAxMDAKCiAgICBPbiBzb2xhcmlzIDEwIHRlc3QgaW4gL2Jpbi9zaCBkb2Vzbid0IHN1cHBvcnQgdGhlIC1lIHRlc3QuIFJlcGxhY2UgaXQgd2l0aCAtZgoKY29tbWl0IDhjZDNiZTYwZDY5M2M5YzM2ZmZiOTdkM2Q5YmNiNDljMWI0YWJlMzUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDE3IDA4OjUyOjI0IDIwMTEgKzAxMDAKCiAgICBBdm9pZCByZXBldGl0aW9uIG9mIHRoZSBjb21wbGV4IGV4cHJlc3Npb24gZGV0ZXJtaW5pbmcgaWYgaXQgaXMgcG9zc2libGUgdG8gZ2V0IHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLgogICAgCiAgICBUaGlzIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gcGxhdGZvcm1zIGxpa2UgU29sYXJpcyAxMCB0aGF0IGRlZmluZQogICAgSVBfUkVDVkRTVEFERFIgYnV0IGxhY2sgZWl0aGVyIG9mIG1zZ2hkci5tc2dfY29udHJvbCBhbmQgbXNnaGRyLm1zZ19mbGFncy4KCmNvbW1pdCA5NTNmMmUzZDQyNWVkZTNiODYzYTJlN2NjYjBiNGJjODYyOTI4YjU3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiA1IDIyOjEzOjA3IDIwMTEgKzAxMDAKCiAgICBNb3ZlIHRoZSB1c2Ugb2YgX3NlbmR0byBhbmQgX3JlY3Zmcm9tIGJlbG93IHRoZWlyIGRlZmluaXRpb25zLgoKY29tbWl0IDY4YTExNzNjNDZjZjc3NjAxNDI2Y2YzOTFkOWE4NTI3OTRmMjA1N2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDIwIDIwOjA1OjE4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBvdXQgdGhlIGNtZXNnIGJ1ZmZlciBzaXplCgpjb21taXQgNDYxZGQxNmYzYjI2NDczMjJjZGNlNjM2MzA4MWNjNDRiYTVhNDliNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMjYgMjE6NTE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1lcmdlIHRvZ2V0aGVyIHRoZSBMaW51eCBhbmQgKkJTRCB2ZXJzaW9uIG9mIHNyYyBwb3J0IHNlbmRpbmcuCgpjb21taXQgN2FjY2I2OWJhYTFmYzBiNmEzNDM5ZDJlNTQ5Yzg2ZGEzNDUzYmFkMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MzA6MzEgMjAxMSArMDEwMAoKICAgIFVzZSBhIGJhcmUgc3RydWN0IGlvdmVjIGluIGluc3RlYWQgb2YgYSBvbmUgZWxlbWVudCBhcnJheS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gbWFrZSBfcmVjdmZyb20gbW9yZSBzaW1pbGFyIHRvIF9zZW5kdG8uCgpjb21taXQgMzk4NTJjZDRjODVlZjJiZmM3NWNkZWEyODI1MjYxZWU5M2U3NjhjMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjk6MjAgMjAxMSArMDEwMAoKICAgIEFkZCBjb21tZW50IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGNhbGwgdG8gZ2V0c29ja25hbWUgYWZ0ZXIgYWxtb3N0IHJlbW92aW5nIGl0LgoKY29tbWl0IDFiMjkyY2EyN2VhYjVjYWE3M2ZlYWFhODNkYzljMTJhYmMwZjJlNzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI3OjU5IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUuCgpjb21taXQgYmM4Nzk1NzFlY2E5NTIwYmMxMzJmODQwYzNlNjU5ZDM3OTMxNDRkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MjU6MzYgMjAxMSArMDEwMAoKICAgIEludHJvZHVjZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvIGVhc2UgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIHNlcnZlciBhZGRyZXNzLgoKY29tbWl0IGI3ZWVhNmNmZmJkODcyOTMyY2UyYzA0ZmVmYjZmNDNkZTMzOWYzNzQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE4OjMzIDIwMTEgKzAxMDAKCiAgICBSZW5hbWUgdGhlIGNtZXNncHRyIHZhcmlhYmxlIHRvIGNtLgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGluY3JlYXNlIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29kZS4KCmNvbW1pdCAwYTc0NjFlNzI4ODA1YzYyYTFjYWI5ZDg3YmZjNzRjNzkyN2E5ZmNjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxNToyMiAyMDExICswMTAwCgogICAgRmFjdG9yIG91dCBhIGNvbW1vbiBsb29wIGluIHJlY3Ztc2cgb3B0aW9uIHByb2Nlc3NpbmcuCgpjb21taXQgYjNjNjI0OGQwMjAxYWIxNjEwODQwZDZkMGU3NDliM2I2YzRhZDc5MgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTM6NDMgMjAxMSArMDEwMAoKICAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgTGludXggYW5kIEJTRCByZWN2bXNnIG9wdGlvbiBwYXJzaW5nIHNvbWV3aGF0LgoKY29tbWl0IDM1NjQwMGQ2MjkwYTQyM2I1MmViZWVhNWE1ZTk3NmZiMTViYjczYjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjA0OjU2IDIwMTEgKzAxMDAKCiAgICBVc2UgQ01TR19EQVRBIG9uIHRoZSByZXN1bHQgb2YgQ01TR19GSVJTVC9ORVhUSERSLCBub3Qgb24gdGhlIGJ1ZmZlci4KCmNvbW1pdCAzYjM1MTcwOGM2MmRlNDZhYTFiOTBlZDIzMmNmZDhjN2M1YjAyMjMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEyOjAwOjMyIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgYSBjYXN0Cgpjb21taXQgZGU5MjUwZDlkYWU5NzI3YTZjYzdmNjQ3Njg4ZGRkZjFiODU5NzEyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMTo1ODowNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3ByaW50X21pYl9vaWQoKSB0cmVhdCBPSUQgY29tcG9uZW50cyBhcyB1bnNpZ25lZCBpbnN0ZWFkIG9mIHNpZ25lZCBpbnRlZ2VycwoKY29tbWl0IDBlMzNiM2I2ZDU4NTRhNGJhYzE1ZDRlYTVlMDE2YzUzZDE2MWQwY2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTA6MDI6MjggMjAxMSArMDEwMAoKICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgYjdlNTBkNWY5YTY3NTU5ODJkMmFmMzE5MTQ3M2NiMzQ2NDNiYzAzZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwODozNzoyMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVkdWNlIG92ZXJoZWFkIG9mIGNvbmZpZyBmaWxlIHBhcnNpbmcKCmNvbW1pdCA3M2M5ZWU0MmQyOGFmZTJlMTA3YTdkNjYxNmI2ZDAxMTg5MGMzNmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA5OjA5OjU5IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDNkYjk3OTYyYjM3ZWIxMmQyNTRkNjFlNmJlMjM0YjA2YTM5MWM4YmIKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgRGVjIDggMDc6NDM6NDUgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzNDUzODY4OiBmcm9tICJCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4iOiBGYWN0b3IgY29tbW9uIGNvZGUgaW50byBwYXNzX2NvbW1vbgogICAgCiAgICBNb3ZlIHRoZSBjb2RlIGZvciBwb3JtYXR0aW5nIGFuZCBwcmludGluZyB2YWx1ZXMgZnJvbSBwYXNzIGFuZCBwYXNzX3BlcnNpc3QKICAgIGludG8gcGFzc19jb21tb24uCgpjb21taXQgYjY1NjhjODNmMTc1NmU5YTY1NDM0ZWRlZWViNDBkMjNkZGJiYjY1MgpBdXRob3I6IGNjY2hpdSA8Y2NjaGl1QHNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDcgMTY6MjU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1MjA2OTogRml4IHNubXB0cmFwX29pZCBkZWNsYXJhdGlvbiBpbiBtaWIyYyBnZW5lcmF0ZWQgY29kZQogICAgCiAgICBUaGlzIGJ1ZyB3YXMgaW50cm9kdWNlZCBjb25zaWRlcmFibGUgdGltZSBhZ28uIEl0IGRpZCBhbHJlYWR5IGV4aXN0IGF0IHRoZQogICAgdGltZSB0aGUgNS42IGJyYW5jaCB3YXMgY3JlYXRlZCAoc2VlIGFsc28gY29tbWl0CiAgICAwZWMwODhhZmEyN2NmZGE0ZTZlYTc4YWFlN2NmYzU1MDc1NjRlZGRlKS4KCmNvbW1pdCBkNDk0ZGI2NGMyMDhiNGRjNjI4MTMxMzJmODg2M2JkNWMxYTM5ZDc3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM4OjE3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEVsaW1pbmF0ZSBhbiB1bnVzZWQgdmFyaWFibGUgKE5vdykKCmNvbW1pdCAyOGYyNTYxYmMyOTM1ZDhlMWNiZjQ2ZDI4MjAxNTgxNzNlN2E0Y2Y0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM3OjExIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KCmNvbW1pdCAzOTZlMTIyZGRjNDJhOTE2ZjA2YTAyODg0YzBlOGEyNThlZGJlMjM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDA5OjMyOjE2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWF0Y2ggZWFjaCBnZXRwd25hbSgpL2dldHB3dWlkKCkgY2FsbCB3aXRoIGFuIGVuZHB3ZW50KCkgY2FsbCBhbmQgZWFjaCBnZXRncmVudCgpIGNhbGwgd2l0aCBhbiBlbmRncmVudCgpIGNhbGwuCgpjb21taXQgM2VmZWZiYzAwMjQzOTk3ODZmOGI2OGIxZTkzYjBhOGZkZGRkYzdkYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDo0MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCA3ZjA1ZGFhOGUwZTBmNTMzYjBmMTJhM2UxY2YwNzY0MTUxOTkwOWQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDExOjU4OjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDQ5Mzk6IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdCBzcHJpbnRfcmVhbGxvY19vY3RldF9zdHJpbmcoKSBlbWJlZHMgdW5wcmludGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIGJpbmFyeSB6ZXJvZXMgaW4gaXRzIG91dHB1dC4gVGhpcyBiZWhhdmlvciBjb3VsZCBjYXVzZSB0cnVuY2F0ZWQgb3V0cHV0IGluIHNubXB0cmFwZC4KCmNvbW1pdCBkYjhmNTU4ZmQyZjNiN2MxMDllYTNhMWMyMTMzYjc1YjZmOGNiMmFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeDogcGFzcyB1bnNpZ25lZCBjaGFycyB0byBpc3ByaW50KCkgaW5zdGVhZCBvZiBzaWduZWQgY2hhcnMuCgpjb21taXQgODAwZGMxMDI4ZTdlMGNkOGNjMTRkODRkZDMxNzIzZDQ3YWMwNzNkYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMSAxMDoxODo1OCAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgaGludCB2YXJpYWJsZQoKY29tbWl0IDgzZWE0YTA4MGM5MGE3NGI5NzQzZDNmMjRjZjBkNGI4YTFlOGM4NDkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDI3IDIxOjE2OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBxb3MKCmNvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowNDowMSAyMDExICswMTAwCgogICAgUmVtb3ZlICNkZWZpbmUgdmFsKHgpIF9fU1RSSU5HKHgpIGFuZCBjaGFuZ2UgdmFsKHgpIGludG8gX19TVFJJTkcoeCkuCgpjb21taXQgMmYzNzliMGU0ZWNhZGZhNGU1NDFlMzAwNWM4ZmM4MjgxODgyYjc0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTU6NTg6NDcgMjAxMSArMDEwMAoKICAgIEZvbGxvdy11cCBmb3IgY29tbWl0IDFhYTcwNGU6IHVuYnJlYWsgdGhlIE1TVkMgYnVpbGQKCmNvbW1pdCA2NGVmMGY3MTEyNzYxNzgzNzAyN2ZiMmNmYWYxNzRiOTViYTc5ZTBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDoxOTo1MCAyMDExICswMTAwCgogICAgQWRkIFNOTVA6OnJlZ2lzdGVyX2RlYnVnX3Rva2VucygpCgpjb21taXQgN2JlYWQ5Y2E5MTdjNjc1NjZkNWVkOThhYjUwN2JiYzAyODE2MjE3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDg6MDggMjAxMSArMDEwMAoKICAgIEFnZW50WCBzdWJhZ2VudDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCmNvbW1pdCAwZWQ3MTU0MWY4N2U3ZDc4YmM5OThlZWJkYTMyMTdjNTllMWRmODMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMzoxOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIERveHlnZW4tc3R5bGUgZnVuY3Rpb24gaGVhZGVyIGZvciBuZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kIG5ldHNubXBfY2xlYXJfZGVmYXVsdF90YXJnZXQoKS4KCmNvbW1pdCA4YzI5NzJiNjFlNDAxNjliNDdjNTA5ODhiNmFlOWU4YzI4NWY4NGY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMjo1NCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQoKY29tbWl0IDVkZjJiYWM2YmQ3MTc3OTkzMTFmMDAxYWM3YjczZGI4OGYxMWJkZGEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjU5OjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBPbmx5IHRyYW5zZm9ybSB0aGUgYWRkcmVzcyB0byBwcmludGFibGUgZm9ybSB3aGVuIG5lZWRlZC4KCmNvbW1pdCAxNzFlOGQ0OGQ0YWYwNDAxM2NmZjhmZDI4ZjUzNDFhMmFlZjIxZDg4CkF1dGhvcjogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTY6NDk6NDYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXAtYnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLgogICAgCiAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcgZGF0YSBpbnRlcnByZXRhdGlvbi4KICAgIHNubXAtYnJpZGdlLW1pYiBvYnRhaW5zIHRoZSBpZmluZGV4IHZhbHVlIGZyb20gdGhlIHN5c2ZzCiAgICBhdHRyaWJ1dGUgJ2lmaW5kZXgnIFRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3lzZnMgYXR0cmlidXRlCiAgICBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KICAgIGluY29ycmVjdCBkYXRhIGRpc3BsYXllZCB0byB0aGUgdXNlci4KICAgIAogICAgZS5nLgogICAgICAgICQgPiBzbm1wd2FsayBsb2NhbGhvc3QgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMgogICAgICAgIEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIgPSBJTlRFR0VSOiA1NAogICAgCiAgICBhY2NvcmRpbmcgdG8gdGhlIHN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYKICAgIAogICAgICAgICQgPiBjYXQgL3N5cy9jbGFzcy9uZXQvPGRldmljZT4vaWZpbmRleAogICAgICAgIDM2CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KCmNvbW1pdCA4MmUzOWZiNjcwNmRmOTBlY2YyZmM5ZTEwYWRhMmI5NjJlZTE5NmYzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTI6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEZpeCBtdWx0aS1saW5lIGNhc2UgdGVzdGluZyBvZiBpbmNvbWluZyBPSUQKCmNvbW1pdCBiMTVkYTFhNDUxNjA2MTEwNWExZWFjNzQ1MGNmNjUwZWM0NDI2NmIyCkF1dGhvcjogTmlrb2xheSBEZW5ldiA8bmRlbmV2QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjI5OjQ5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCgpjb21taXQgN2Y0N2Y1MmU0ODFiYWE5YWFmYjU3ODQyNDRiMGRkMjY1M2U3ZGNmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgMjggMDg6NTE6MzkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBTTk1QX0FMTE9DX1RZUEVERUYgdG8gYWxsb2NhdGUgdHJhbnNwb3J0cyBpbiBvcmRlciB0byBhdm9pZCB0aGUgc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCgpjb21taXQgY2Y4NjAzOWUzMDg2MjI1YzMwODViYjlhZGYwODhiOGJhNWJhNjk3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTU6MDI6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliIHBhc3MuCgpjb21taXQgMWE4N2U3NmUwMGVlM2Q1Y2QzN2EwN2JmYzNkODQ0OTBkM2MyYTRlYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTQ6NTU6NDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCgpjb21taXQgODg2N2ZkMWRjZmU3MmI1OWQwNzMyMmZmMzhhNjk5YjY2ZWM0ZjMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMDk6NDQ6MzggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCiAgICAKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgTkVUU05NUF9MQVJHRV9GRF9aRVJPKCkgdXNlIG1lbXNldCgpIG9uIFVuaXggc3lzdGVtcyBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGxvb3AuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMgbmV0c25tcF9sYXJnZV9mZF9jbHIoKSBkb2Vzbid0IHRyeSB0byByZWFkIG1lbW9yeSBpdCBpc24ndCBhbGxvd2VkIHRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfaXNfc2V0KCkgcmV0dXJuIGZhbHNlIG9uIFVuaXggc3lzdGVtcyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgc2hyaW5rIGJlaGF2aW9yIGNvcnJlY3QuCgpjb21taXQgMjNkYjBjZjA5YjhiMGVhYjM3Yjc0OWVmMGMzYzNmMzA2OTAwMjQ1YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMjEgMjM6MDI6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBjYXN0aW5nIHR2X3VzZWMgdG8gaW50IHdoaWNoIG1heSBiZSB0b28gc2hvcnQKCmNvbW1pdCA4MGVlNDAyMmU1MzRlNjRhYWQ1YTVmMjcxOTI4NDNiNDJhY2I4NWUwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOToxNDowMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogTW92ZSBuZXRzbm1wX3Bhc3Nfc3RyX3RvX2Vycm5vIHRvIHBhc3NfY29tbW9uIGFuZCByZW5hbWUgaXQgdG8gbmV0c25tcF9pbnRlcm5hbF9wYXNzX3N0cl90b19lcnJubwoKY29tbWl0IDBiYWE5Mjk2YzA3MmJiMzczNTc2MGIwZGQ5OTJmMmQxZDNjYTI3ZmEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjA1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBDb3JyZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgdWNkLXNubXAvcGFzcyBhbmQgdWNkLXNubXAvcGFzc19wZXJzaXN0Cgpjb21taXQgMWFhNzA0ZTRhMjk0NDMwYjI4ZTM5YjZmOWU0NjgzYjhhNDhiY2UwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDg6MzU6MjEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGYWN0b3Igb3V0IGFzYzJiaW4gYW5kIGJpbjJhc2MuIEFkZCBhIG5ldHNubXBfaW50ZXJuYWxfIHByZWZpeCB0byB0aGVtCgpjb21taXQgY2RhOGZlOTEwMTNmMTJjYmY2NGEwNzc1YWJiNTU3MjAwMzVhZjkzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDA6NTU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBDYWxsIHNubXBfb2lkdHJlZV9jb21wYXJlIGluc3RlYWQgb2Ygc25tcF9vaWRfbWluX2NvbXBhcmUKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc25tcF9vaWRfbWluX2NvbXBhcmUgc2luY2UgaXQgaXMgaW50ZXJuYWwgYW5kIHVudXNlZAoKY29tbWl0IDg1Zjg5M2UyYjYwNWU2N2Y5YmQwNDQzYzc0ZTJlZDI2OWFhNjg1NjQKQXV0aG9yOiBOaWtpIERlbmV2IDxuaWtpX2RAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMTcgMjI6NDI6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpCiAgICAKICAgIFRoaXMgaHVuayBmZWxsIG9mIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIHdhcyBtZXJnZWQuCgpjb21taXQgNWM5MTNlNTQ2NTZhZTAwOTZiMWZlYjZkYTk4YjVmYzljYTgxZjI3NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzM6MDcgMjAxMSArMDEwMAoKICAgIERlZmluZSB0aGUgZnVsbCBOZXRCU0QgaGllcmFyY2h5IGRvd253YXJkcwoKY29tbWl0IGI4ODE4NDFiZDA0OTNkZDcxZDYzMjU5YmRkZWQ0NDliMDZmMDJjMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMwOjMzIDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgY2EyOTRjZjc1YmJjOGU5MGRiZjQ0ZWU0MDQ3ODkzNWU5MWRiMTQ4NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTg6MDMgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgY2QzMmMyZGZmMDZiOWI0NTJjYzE4ZDU1MmQyZjIyMzQwOTJjODI5YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTc6MDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgd2FybmluZwoKY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE1OjU4IDIwMTEgKzAxMDAKCiAgICBNb3JlIG5lZWRzIGZvciBORVRTTk1QX1BSSW8gZm9ybWF0IHNwZWNpZmllcgoKY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE0OjI2IDIwMTEgKzAxMDAKCiAgICBGaXggdXNpbmcgY2hhciBhcyBhcnJheSBpbmRleCAoY3R5cGUuaCkKCmNvbW1pdCA4NDUyOWU2MzIwYTg5ZDk3ZjEzMTRhZWJhZDgwNjI1NWQyYTFiMThjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzowMDo1NyAyMDExICswMTAwCgogICAgRml4IG1pc3NpbmcgZm9ybWF0IGZvciBGcmVlQlNEIDQKCmNvbW1pdCA0YmQwMzUyOTU1YTI1NTFiZmUwMjMwOGRkMTM0YjkxMjhjOThiOWU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1OTozNiAyMDExICswMTAwCgogICAgRml4IHBhcmFudGhlc2lzIHByb2JsZW0KCmNvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1ODozNCAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGE0ZGI5ZjlmYzEzZDIxZWNmZjQ4OGViNDEwMzc2ZWRkYTZjMjgyMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjQzOjM0IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjM3OjQ5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MKCmNvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMToyNzo1MyAyMDExICswMTAwCgogICAgUmVhbGx5IHVwLXRvLWRhdGUgbWlicwoKY29tbWl0IDBlODZjNzgxZjM5ODliZjAyMmM4OTkzYTExODYxN2I3NGE3NTQyMGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE3OjE5IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGdldCBTaG1lbSBmcm9tIC9wcm9jL21lbWluZm8gZm9yIDIuNiAob3IgbmV3ZXIpIGtlcm5lbHMKCmNvbW1pdCBiZjI2NGQxNWRlZDdhY2JiZjJlMzg3MWI5OGZkMWZjZWY0M2Q5ZWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNjoxNiAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBjbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA1N2ZmOGE0MGJhZTVkOWJjYWQxNjA4OTE0MmE5Y2YzMjhjOWZhMWY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNDo1NyAyMDExICswMTAwCgogICAgZGlzbWFuL3BpbmcsIGRpc21hbi90cmFjZXJvdXRlOiBDbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxMzo1MyAyMDExICswMTAwCgogICAgVXAtdG8tZGF0ZSBsaXN0IG9mIFJGQ3Mgd2l0IG1pYnMKCmNvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMTUgMTA6NTc6MzQgMjAxMSArMDAwMAoKICAgIERvbid0IHRyeSB0byBpbnN0YWxsIGFuIGVtcHR5IGxpc3Qgb2YgbWFuIHBhZ2VzIChNQU4zKQoKY29tbWl0IGJhNjE5ODA0ZTU5NzhhOGRmNzU0ODQ0ZWZjY2E1MmI2OWI1MDE1ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEzOjM0OjIwIDIwMTEgKzAxMDAKCiAgICBNaW5HVzogTWFrZSBzdXJlIHRoYXQgdGhlIGJhY2tzbGFzaGVzIGluIHRoZSBwc2tpbGwgbWVzc2FnZSBhcmUgZGlzcGxheWVkLgoKY29tbWl0IDkyM2VlY2M1MDdmNzUwNDNiNjBjNWU2ODA1M2E0ZjM5NmFiMGIwZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEyOjM2OjM4IDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeCBmb3Igc3lzdGVtcyB3aGVyZSB1aW50NjRfdCA9IHVuc2lnbmVkIGxvbmcgKGUuZy4gUkhFTCA2LjEveDg2XzY0KQoKY29tbWl0IDQzNGJmYzFmNzQ1NzU1MGI2Zjg3ZDViY2Q1MTEyNzZiMjcwYjU5NjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMToyMjo1MyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gTWFydGluIFdpbGNrOiBmaXhlZCBzbm1wZCBjcmFzaGluZyB3aXRoICdzZWxlY3Q6IGJhZCBmaWxlIGRlc2NyaXB0b3InLgogICAgCiAgICBPbiAzMi1iaXQgc3lzdGVtcywgc25tcGQgZGllcyB3aXRoIGFmb3JlbWVudGlvbmVkIG1lc3NhZ2Ugd2hlbiB1c2luZyBmaWxlIGRlc2NyaXB0aW9ucyA+IDMyLCBlLmcuIHdoZW4gaGF2aW5nID4zMiBBZ2VudFggc3ViYWdlbnRzLgoKY29tbWl0IGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAxOjIxIDIwMTEgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCgpjb21taXQgZWFjYTc5ODNlMzY1NWFiNjk2ZmNjNDQ2MWNhMGNlZGJhYzZjZTY5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDA6MTIgMjAxMSArMDEwMAoKICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAoKY29tbWl0IDhhZDZjNTNmZGVjNWFkZWFlNGU1MmYxNzUxZWNlYzRhMzQ1YmFiMDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU5OjAxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVpZyAjMzQzNjUyNzogYXJwX25ldGxpbms6IGZpeCBkeWluZyByZWxvYWQgb2YgY2FjaGUKCmNvbW1pdCAzNzhmZmVkMDNiYTc5YTgzNDZkNmM2Mjc4MWUyZGRmNWNlOTJhNDc4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1NTo0MyAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzNjUyODogc3dpbnN0X3BrZ2luZm86IHJlY292ZXIgZnJvbSBOVUxMIHJldHVybiBmcm9tIG9wZW5kaXIKCmNvbW1pdCBkN2FkOGY1ZjlmM2Y2N2YxNmY2NWMyNTE1ZDExZTE5NGQyY2RkMTJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDowNDo0MSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQ3lnd2luOiBNYWtlIGRhdGVfbl90aW1lKCkgcHJvZHVjZSB0aW1lIHpvbmUgaW5mb3JtYXRpb24KCmNvbW1pdCBiYTM1YzUwYjJmNDU5YmQ5YzExZWQ1OWNjN2QxYjE2MjE1NjQ0ZmEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDoxNzowNCAyMDExICswMTAwCgogICAgUmVwbGFjZSBBQ19UUllfTElOSygpIGJ5IEFDX0xJTktfSUZFTFNFKCkKICAgIAogICAgTm90ZTogdGhlc2UgY2hhbmdlcyBkbyBub3QgYWZmZWN0IHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdC4KCmNvbW1pdCBmNjE1YmYyNGY1ZDBmMjNjZTkzMDFkYTU1NjE4NGQ2NDYwNzQwNDU2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMyOjQ5IDIwMTEgKzAxMDAKCiAgICBGaXMgQnVnICMzNDM0ODI0OiBTSUdTRUdWIHdoZW4gcmVhZGluZyBkaXNrIGRpcmVjdGl2ZSBhZnRlciBTSUdIVVAKCmNvbW1pdCBhOTRhMTc5ZDkzNDBmNTFmYTdjMjM0MzE2MzBiYzBmZmQ2ZDc1OWU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMwOjUxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDMzNjE2OiBkb250IHRyZWF0IERhdGVBbmRUaW1lIGFzIGEgc3RyaW5nCgpjb21taXQgYjI5ZTQxNjQ1MzFkMjU4ZmUzNGE2ZmUyYjllMWVjNjBjNTZmOTU0NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgNyAwMToyNTo1NyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGUyMjFlNjVmZGMxYzY4ZjE5Njg2NTE3MTdkY2M5Y2NmYjY0MTQ3ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTU6MDU6MDAgMjAxMSArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyBhYm91dCBjb252ZXJ0aW5nIHNvY2thZGRyX2luICogaW50byBzb2NrYWRkciAqLgogICAgCiAgICBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgYTBhZjM4NS4KCmNvbW1pdCAyZTdlOWVkYTBiMGQ2MmE3NjQ1YTlhOGY3MGVmM2ZiNmYzZGQ2OTQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDExOjE3OjQ4IDIwMTEgKzAxMDAKCiAgICBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncy4KCmNvbW1pdCAzNDYyZWJjZGQwYjdjMjk4Y2IxNWMzMDk5NzM2ZjRmOTUyMjU3ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCAyOCAxNjowNzoxNSAyMDExICswMjAwCgogICAgUmVtb3ZlIHRob3NlIHN1cGVyZmx1b3VzIHBhcmVudGhlc2VzIHRoYXQgdHJpZ2dlciBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgM2U1ZmVkZDNlN2QxZWYzMTY4MzYwNGJmNzNkYzU2ZTk0NGNhZDM0OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDMgMDk6NDU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIGFmdGVyIDMwIGRheXMgb2YgdXB0aW1lLgogICAgCiAgICBBZnRlciAzMCBkYXlzLCB2YWx1ZXMgZnJvbSAvcHJvYy9zdGF0IChvbiBMaW51eCkgY2FuIGdldCBiaWdnZXIgdGhhbiAzMmJpdHMgYW5kIHNubXBkIGNhbGN1bGF0aW9ucyBtaWdodCByZW5kZXIgY291bnRlcnMgbGlrZSBzc0NwdVVzZXIgbmVnYXRpdmUgb3IgemVybywgd2hpbGUgdGhlIHJlYWwgdmFsdWUgaXMgaGlnaGVyLiBUaGVyZWZvcmUgdGhlIGNvdW50ZXJzIHNob3VsZCBiZSB0cmFja2VkIGFzIHRoZSBsYXJnZXN0IGludGVnZXIgYXZhaWxhYmxlLgoKY29tbWl0IDBmYzgyMjFiMjQ5ODhjNGFlNjE4MGVkNDJiODZiOTg1MmZkNTg2YWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjI6NTk6MDggMjAxMSArMDEwMAoKICAgIGRza0luZGV4IHdhcyBvZmYgYnkgb25lCgpjb21taXQgYTViMjg4MjllNjRkNWYzYjg3ZTRiOWIxZWY4Y2MyMDRmMzNhNjFiNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMToyNTowNyAyMDExICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAkQVdLIHRvIGdldCBhIHVzYWJsZSBuYXdrCgpjb21taXQgMjgwMWEyMTM5ZjI3MDIxZTFhYjE1ZTM2MmUyZDNkNjI0ZmZhYTQ5NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NTU6NTMgMjAxMSArMDEwMAoKICAgIFBhdGNoICMzNDA2MzY0OiBGaXggdW5zdGFibGUgZGF0YSBmb3IgTmV0QlNELgoKY29tbWl0IDgyMWE1OGQxMTJkN2FjNDk1MTQ5ZTI2MmQ3MDQ0MTJiYTI4MDA0MzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjQzOjUyIDIwMTEgKzAxMDAKCiAgICBGaXggaXB2NiBzdGF0aXN0aWNzIGxvb3BpbmcgdG9vIGZhciB3aGVuIHNjYW5uaW5nIGludGVyZmFjZXMuCiAgICBGaXggVENQIHNlc3Npb24gdGFibGUgcmVwZWF0aW5nIGRhdGEgZnJvbSBmaXJzdCBlbnRyeSBmb3IgYWxsLgoKY29tbWl0IDM0OTU5MWQwM2UxN2E1NWI0M2VhY2M2YTY4N2IwMmZkOGQ0ZTk1MjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gT2N0IDMxIDA4OjU5OjM3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHBlcmwgc3VwcG9ydCB3aXRob3V0IHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcy4KCmNvbW1pdCAxZWM3MTEwZTcyYmNlMTU2MWY3NDY1MTc0NTlkNmYwNDMwMTZiNjBlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAzMCAxOTowNTozMCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgYXNuMSB0ZXN0IHBhc3MgZXZlbiBpZiBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMgYXJlIHJlbW92ZWQuCgpjb21taXQgNmQyNjkxOGFmNTVhYTM2NjJhNzIwNTQyZGU3N2JiZjM5YjBhM2U5MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMjkgMDg6MzQ6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBEaXNhYmxlIHRoZSBzdXBwb3J0IGZvciBpbnRlZ2VyNjQgaW4gcGFzcyBzY3JpcHRzIGlmIGNvbXBpbGluZyB3aXRob3V0IG9wYXF1ZS1zcGVjaWFsLXR5cGVzLgoKY29tbWl0IDI5YmY2OWQ3MDQyNGYzNTlkOWM4N2YwN2E5NjRhMDk5NDE1NjQ5YTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCiAgICAKICAgIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBjb21taXQgOWY2NTNmNy4KCmNvbW1pdCAyY2M5NTA0YjliYjg2MjViOTRiZTZjZGE3ZTYwOTkzZDA1OWNkOTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDI4NTA2OiBGaXggbmV0c25tcF9nZXRob3N0YnlhZGRyKCkKICAgIAogICAgVGhpcyBwYXRjaCBzaG91bGQgZml4IHRoZSByZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4NWQ5NmM0IChNYXkgMTMsIDIwMTEpLgoKY29tbWl0IDliNDI3YjM1M2YxY2ViOGZlODdlNmZjOGVkM2I2Y2ZhYjNjZTdmMjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDI3IDA4OjIwOjAwIDIwMTEgKzAyMDAKCiAgICBNaW5HVzogQXZvaWQgY29uZnVzaW9uIGJldHdlZW4gTWluR1cncyBraWxsLmV4ZSBhbmQgdGhlIFN5c0ludGVybmFscyBwc2tpbGwuZXhlCgpjb21taXQgMmM0NWY5MmNmY2I1YjA1ZTA0OTIyNmE1YTc4ODNhMGIxMDYwMTFhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBwYXNzaW5nIGEgY29uc3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIGFjY2VwdGluZyBhIG5vbi1jb25zdCBwb2ludGVyLgoKY29tbWl0IDI3NWQyM2VkZmRlYmUwNTc3YjA4NDIxZTRjNmM5MzZhZTM5YjdmZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2V0LWJ1dC1ub3QtdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA0NDk1ZTE3YzA3OGFjNjk5N2E5YzdmYTFhODhkYjA2NDRlOTE5NDkxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IDEzOTUyZjZiZWU5ZjQwODg2N2FiNmQyZmRmZGRlNGYyODQwNzQ5NTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogZnJvbSBTaWRkaGVzaCBQb3lhcmVrYXI6IHByb3Blcmx5IGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBpbiBhIHN1YmFnZW50IHdoZW4gd2UgcmVjb25uZWN0IHRvIG1hc3Rlci4KICAgIAogICAgQW4gc25tcCBzdWJhZ2VudCBsaW5rZWQgYWdhaW5zdCBuZXQtc25tcC1saWJzIG1heSBjcmFzaCBpZiBpdCBoYW5kbGVzIGEKICAgIHJlc3BvbnNlIHdoaWNoIGhhcyBtYWdpYyByZWZlcnJpbmcgdG8gYW4gb2xkZXIgZGlzY29ubmVjdGVkIG1haW4gc2Vzc2lvbi4gVGhpcwogICAgbWF5IGhhcHBlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgYXR0ZW1wdHMgdG8gY2xlYW4gdXAgb2xkIHJlcXVlc3RzIG9uIHJlY29ubmVjdGlvbiBvZiB0aGUgZGlzY29ubmVjdGVkIG1hc3RlcgogICAgc2Vzc2lvbi4KCmNvbW1pdCBhZTA1MjQ3MmIyMjcyMGQwODM2OWU4NTEyN2RiMjE0MjQ1ZGYyZTNmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMjUgMTY6MTU6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIHNlZ21lbnRhdGlvbiBmYXVsdCB3aGVuIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAgCiAgICBXaGVuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlciBmYWlscywgaXQgZnJlZXMgaXRzIHJlZ2luZm8gLT4gbnNhaHJfREVTVFJPWSAoYW5kIGFueSBvdGhlciBmdW5jdGlvbikgbXVzdCBub3QgZGVyZWZlcmVuY2UgaXQuCgpjb21taXQgYzE5OWJmOTFiNjIzOWYyNmIyYWFiMzRlODU3NWUwZjBkZjljZGU5YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDI0IDE0OjI1OjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogeGZzLCBqZnMgYW5kIHZ4ZnMgZmlsZXN5c3RlbXMgYXJlIG5vdyByZWNvZ25pemVkIGluIGhyU3RvcmFnZVRhYmxlCgpjb21taXQgNzQ3ZmRjNzFlNjRkMDllMDgwOTI4ZWJiYjRkMDRjYmRlMzkwNjc5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMTU6NTc6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdlcnJvciBmaW5kaW5nIHJvdyBpbmRleCBpbiBfaWZYVGFibGVfY29udGFpbmVyX3Jvd19yZXN0b3JlJyBtZXNzYWdlLgogICAgCiAgICBUaGUgbWVzc2FnZSBpcyBzaG93cyB1cCB3aGVuIHNubXBkIGlzIHN0YXJ0ZWQgYW5kIHRoZXJlIGlzIGRpZmZlcmVudCBzZXQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHRoYW4gaXQgd2FzIHdoZW4gc25tcGQgd2FzdCBsYXN0IHN0b3BwZWQuIFRoaXMgaXMgY29tbW9uIG9uIHBwcC1zZXJ2ZXJzIG9yIHZpcnR1YWwgaG9zdHMuCgpjb21taXQgMjUwZjY5OGU1OWVhYjlmMWZmZDMzMmZmNTlmZGI3MmVhMGRmMDZmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMjMgMDg6NTE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIHRoZSB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBjb2RlIHdvcmsgYWdhaW4KICAgIAogICAgUHJldmlvdXNseSB0aGUgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHByb2Nlc3NpbmcgY29kZSByYW4gd2l0aAogICAgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HIHNldC4gSW4gdGhpcyBtb2RlIHRoZSBmaWxlIG5ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oCiAgICBpcyByZXF1aWVyZWQuIFRoYXQgZmlsZSBpcyBjcmVhdGVkIGR1cmluZyB0aGUgZmlyc3QgbWFrZSBydW4sIGFuZCB0aGF0IGhhcHBlbnMKICAgIGFmdGVyIGNvbmZpZ3VyZSBpcyBydW4uCiAgICBDaGFuZ2UgdGhpcyB0byB1bmRlZmluZSBORVRTTk1QX01JTklNQUxfQ09ERSwgZWZmZWN0aXZlbHkgdHVybmluZyBvZmYgZmVhdHVyZQogICAgc3VwcG9ydCBkdXJpbmcgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gbWFrZSBpdCB3b3JrIGF0IGFsbC4KCmNvbW1pdCA2ZWY2OTA3NjQyMjQ3YzY2M2I5Yjg5NjRiOWZkNDRhMjExZGJjYWE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyMCAyMDozMDo1NCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQwODM5ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy4KICAgIAogICAgVGhpcyBtZW1vcnkgbGVhayB3YXMgaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICA5YmYzZDk2ZDk2YThlY2Q0YTVmYzM1YzMyNmRjOTM3NDY3MDAyYjZjOiBJbml0aWFsIEhBTAogICAgaW1wbGVtZW50YXRpb24gb2YgRmlsZVN5c3RlbSBpbmZvcm1hdGlvbiAoTWFyY2ggNywgMjAwOCkuCgpjb21taXQgY2Y4MmI4OTRiMjIxN2MyNmVkYzZmMTM1NjM1MWM5MzI0MTU2MDRlMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBPY3QgMTUgMTQ6NDU6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyMzkxNTogQ2hhbmdlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgYmFjayBmcm9tIDAgdG8gNQogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgdmlhIGNvbW1pdCA2Y2FjMDUwIChNYXkgNSwgMjAxMSwKICAgIGFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgaW4KICAgIHNubXBkLmNvbmYpLgoKY29tbWl0IGMxMWFkYWExMjkxNWFiZmVlNjI5YmI2YzAyNmMyMWYyMTg1YjIxNmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjI0OjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBjb21waWxpbmcgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gd2l0aCB0aGUgTWluR1cgZ2NjIGNvbXBpbGVyIHRyaWdnZXJzIHdhcm5pbmdzIGFib3V0ICJwcmFnbWEgY29tbWVudCIuCgpjb21taXQgYjE3YTcyYTc5MzQ4M2FlZTRhNWJiMmYyZTJjN2Y0ZmQ4Njk4MTdlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjI6MjAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYXVzZSB0cm91YmxlIHdoZW4gaW5jbHVkaW5nIHRoaXMgaGVhZGVyIGluIGEgcGFja2FnZSB0aGF0IHVzZXMgdGhlIEdOVSBhdXRvdG9vbHMuCgpjb21taXQgNjY0ZDNhZTEwN2Q3NTQwNTFiOGM0MjI3OWQ0NTlhYTU3YTFiZTFjMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTY6NDc6MTYgMjAxMSArMDIwMAoKICAgIE1pbkdXLCBod19mc3lzOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIGEgZGVidWcgc3RhdGVtZW50LgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGFuIGlzc3VlIGludHJvZHVjZWQgaW4gY29tbWl0IDc2ZmYyNWQuCgpjb21taXQgMjExZGNiNDkzMDY1NjFlMzViYTNjMjEzYmU3Y2ZhMjU3YjQwYThlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTU6NTI6NDMgMjAxMSArMDIwMAoKICAgIEF2b2lkIHRoYXQgZ2NjIDQuNiBjb21wbGFpbnMgYWJvdXQgc2V0IGJ1dCBub3QgdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA5ZjY1M2Y3M2U1YWE3MGYwYmVmMTE3NDYzMmU5NTU5NGY4N2Y2NjlmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgoKY29tbWl0IDRjODNiOTIyOWE3NDU0ZjM0ZjZmZjc1ZjY5ZTY3ZTQwMzBjNDE5YjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNldCB0aGUgcnBhdGggZm9yIGxpYnBlcmwuc28gaW4gbGlibmV0c25tcG1pYnMuc28gc3VjaCB0aGF0IHRoZSBkeW5hbWljIGxpbmtlciBjYW4gZmluZCBsaWJwZXJsLnNvIHdpdGhvdXQgcmVxdWlyaW5nIHRoZSB1c2VyIHRvIG1vZGlmeSB0aGUgZHluYW1pYyBsaW5rZXIgc2V0dGluZ3MuCiAgICAKICAgIFRoaXMgY2hhbmdlIGluIGFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQKICAgIGxhdGVyIGJ1dCBub3Qgb24gdGhlIDUuNCBicmFuY2guIFRoYXQgaXMgYmVjYXVzZSB0aGUgNS40IGJyYW5jaCB1c2VzCiAgICBhbiBvbGRlciB2ZXJzaW9uIG9mIGxpYnRvb2wgdGhhdCBwcm9wYWdhdGVzIHRoZSBycGF0aCBvZiBkZXBlbmRlbnQKICAgIGxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQogICAgbGlidG9vbCBtYW51YWwuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcmVzZW50IGluIGxpYnRvb2wgdmVyc2lvbiAxCiAgICBidXQgbm90IGluIGxpYnRvb2wgdmVyc2lvbiAyLiBGb3IgbW9yZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFib3V0CiAgICBkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKICAgICJScGF0aElzc3VlIiBvbiB0aGUgRGViaWFuIHdpa2kgKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCgpjb21taXQgODkyNWM5MTJkMjYzOTc1MmE4NGJjZmZlZWYxYjcwYTgxMDI2NDQ5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoyMToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjogQWRkIG1pc3NpbmcgYnJhY2UgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCmNvbW1pdCA3NmZmMjVkOWJmOTc1NzllNzIxMzEwMjA2NWZkNTA5NmYwNDlhNGM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjEzOjE4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN0b3JhZ2VUYWJsZTogZml4IGJ1ZyBpbiBoYW5kbGluZyBsYXJnZSBmaWxlc3lzdGVtcywgd2hlcmUgbGFyZ2UgbWVhbnMgYWJvdmUgOCBUQiAoPSAyKiozMSAqIDQwOTYgYnl0ZXMpLgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0CiAgICA3MWQ4MjkzZjM4N2E2Y2Q2NmJiMGRiYjEzYzBmNTAxNzRkMmU2NzhiLgogICAgRm9yIHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0LCBzZWUgYWxzbwogICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/ZnVuYz1kZXRhaWwmYXRpZD0xMTI2OTQmYWlkPTM0MTk4MjUmZ3JvdXBfaWQ9MTI2OTQuCgpjb21taXQgODY2MDMzZGI5OTA0ZmZiMTIwM2YyODNmODM4MDkyZTRjZjY4ZGU2YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwNzozMzoyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzcHVyaW91cyAjZW5kaWYgdGhhdCBzZWVtcyB0byBiZSB0aGUgcmVzdWx0IG9mIGEgbWlzbWVyZ2UuCgpjb21taXQgMjBmNGYzMjY3ZWUyMGQ1NTcwNWI3YTQzNzg5ODc5YzEwM2Y5NjYyMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwMDowODo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBtaXNzaW5nIGVuZCBjb21tZW50cyB0byBmZWF0dXJlIGlmbmRlZnMuCgpjb21taXQgZTVkZTJjYzU3YmYzMDRmMzMyMGNhZDAwMzRkMmVhMmQ4YWVkYzQzNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwOToxNToxMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IExvZyBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSBpZiBlbWJlZGRlZCBwZXJsIGluaXRpYWxpemF0aW9uIGZhaWxzCgpjb21taXQgNWVlZjk5OTBkZTI4ZjYzMTExZTZjMDkzYmUwZjNjN2FlMmQ1MTNhMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NTo0OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIGFnZW50Ojp1cHRpbWUoKQoKY29tbWl0IDY4MTBlZDQyZjliYzU2MDc1MGQ2ZGJmYjdlNTBiNmUyYWMxMTg5OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDExOjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBDeXdpbjogYWdlbnQ6IEltcGxlbWVudCBnZXRfdXB0aW1lKCkgc3VjaCB0aGF0IHF1ZXJ5aW5nIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTeXN0ZW1VcHRpbWUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlLgoKY29tbWl0IDk3MTcyYjMxMWQyMGY0NDQxYzdhN2U5MDA5MmI1OWMxZTBkYTk5ZjcKQXV0aG9yOiBUaG9tYXMgSmFyb3NjaCA8dGphcm9zY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NjozOSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogUEFUQ0g6IDM0MTg2NDk6IEhPU1QtUkVTT1VSQ0VTLU1JQjogVXNlIHBjbG9zZSgpIGluc3RlYWQgb2YgZmNsb3NlKCkgdG8gY2xvc2UgYSBwaXBlLgoKY29tbWl0IDY1OTE5MzdhZGI4NTAwMGMyNzA2OWM0YmU4NGNmNDY4ODgzOGViY2QKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTY6MTg6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzIHdlbGwuCgpjb21taXQgYjljODAxMmVjMDM1YmMwODRmMTc1ODc2ZmVjYzM3NTE5NWY5YmU4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNDowMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCB0YXJnZXQgdG8gYnVpbGQgYWdlbnR4dHJhcCBmcm9tIHRoZSB0b3BsZXZlbAoKY29tbWl0IDk5NTY0N2MwY2ZlMDA0MTIyNjJjYzU3OTdiZGZhZTlkMDBiNzBjNzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTU6NDQ6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgdGhlIHVzZSBvZiAtTCBmbGFncyBmb3IgaW50ZXJuYWwgbGlicmFyaWVzIGFzIGl0IGNvbmZ1c2VzIGxpYnRvb2wuCgpjb21taXQgOTNkYzEyMzVhMGRiNThmZmQyOTYxN2NmZjAwZGMxMTI2Mzc4MDIwMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMTozMTo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgbWFrZSBhcHBzIHdvcmsgYWdhaW4KICAgIAogICAgYXBwcyBpbmNsdWRlIHNubXB0cmFwZCBhbmQgdGhhdCByZXF1aXJlIHRoZSBhZ2VudCBsaWJyYXJpZXMgYXMgd2VsbC4KCmNvbW1pdCBiYTQxNDg4ZWQ0NGNkMjNjMjU5NjNkNGZjNTZjNDc2ODUzYjJhYjU5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjI5OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogV2hlbiB5b3Ugc2F5IG1ha2UgbGlicyB5b3UgZXhwZWN0IGFsbCB0aGUgbGlicyB0byBiZSBidWlsdC4KICAgIAogICAgVGhpcyBpcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHNubXB0cmFwZCB0YXJnZXQgYXQgdGhlIHRvcCBsZXZlbCB3aGljaCBvYnZpb3VzbHkKICAgIGV4cGVjdGVkIGJvdGggbGlicyB0byBiZSBidWlsdCBhbmQgc28gZmFpbGVkIHRvIGNvbXBpbGUgYmVmb3JlIHRoaXMgcGF0Y2guCgpjb21taXQgMzA1N2M3M2UwOTM0NzNiZTQ2MjU0YmNkZmI0Y2E3ODhlNDMyZDFiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDMwIDA3OjMyOjUyIDIwMDggKzAwMDAKCiAgICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbiBNYWtlZmlsZS4KICAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgogICAgCiAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCiAgICB0aHJlYWRlZCBjYXNlIG9mIG1ha2UgbWlibGliIGFzIHdlbGwuCgpjb21taXQgNmVhZTM0MGZhMmE2NDA4NjU5Mjk4MmNjNTI3MzViYzAxNDg3ZDk3OApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMSAxOTozMzo1MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbGVuY2UgbGliYnNkIDAuMy4wIG5hZ2dpbmcKICAgIAogICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKICAgIHRyaWVzIHRvIG1ha2UgeW91IGluY2x1ZGUgYnNkL25saXN0LmggaW5zdGVhZC4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBkb24ndAogICAgbmVlZCB0aGF0IGNvbXBhdGliaWxpdHkgbGlicmFyeSBhcyB3ZSBrbm93IGhvdyB0byBkbyBpdCBvdXJzZWxmIHNvIGl0IGJlY29tZXMKICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCiAgICBlcnJvciBhbmQgdGhlbiBmaWd1cmVzIG91dCB0aGF0IHRoZXJlIGlzIG5vIHVzYWJsZSBubGlzdC5oIGFuZCBpZ25vcmVzIGl0CiAgICBmb3IgdGhlIGZ1dHVyZS4KCmNvbW1pdCBhYzM4Y2I1MzFiZWU1MGVkYzhkNGM4MzRmMzAwNWY1OTkyYzc3MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxOTowMzowMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogRW5hYmxlIHNlbmRpbmcgU05NUHYyIHRyYXBzIHdpdGggYW4gZW1wdHkgdmFyYmluZCBsaXN0Cgpjb21taXQgYTc1ZGUyOTcxNTI3YWMyZDJlODEyMDI0Mjk4NjAyYmIyNDEyZjMzNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCA4NDhmNjMwMGVmZTM4NDkyZmI0NTQ0NTFhMDMwZjBiN2U2ZmY4YzlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IGMxMzc0NDczZWNkOGVjOWUwMzEwMDEzODYxZWUxOGM4M2U1ZDZjNWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgU2VwIDMwIDAzOjI5OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQcm90ZWN0IHRoZSB1c2Ugb2YgJE9TVFlQRSB0byBlbnN1cmUgdGhhdCAndGVzdCcgZ2V0IGVub3VnaCBwYXJhbWV0ZXJzLgoKY29tbWl0IDdlOTdhMjA2MzNhNTdlYWUzOWQwMTViMjMzMzk0NjNjMzJmNWY4NDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIyOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBDb252ZXJ0IHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYyBpbnRvIHR3byB1bml0IHRlc3RzCgpjb21taXQgOWMwZGQ5ODE3NjQ1NzM0MmZmZmFhNWU3NGQ4MDJlMzE0NWVkNzBlNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMDg6NTY6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB1bml0IHRlc3QgZm9yIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCgpjb21taXQgNWZkMjZlNGZhM2UwMDBlYTljODFjMzhhYjk3NWI3OTQ2ZWZlMjE1NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjggMTc6NDk6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBBdm9pZCB0aGF0IG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpIGZhaWx1cmUgdHJpZ2dlcnMgYSBkb3VibGUgZnJlZS4KICAgIAogICAgRml4ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgYWE0ZDQ3YzI2MDllNTI4MThjOWNkZjFhOGUyMjA1ZGU5YTMzNWEwYSAoc3ZuIHIxOTUxNSkuCgpjb21taXQgZDIyNTJkMDE2NjkzODA3MzI2ZjcyYjY2MTIzNjQ5ZGVhMDBhZjkxNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlcXVpcmUgYSBzZW1pY29sb24gYWZ0ZXIgT0soKSwgT0tGKCkgYW5kIFBMQU4oKQogICAgCiAgICBBbHNvLCBsZXQgT0tGKCkgZW1pdCBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dCBzdWNoIHRoYXQgYWxsIG91dHB1dCBpdAogICAgcHJvZHVjZXMgaXMgdmlzaWJsZSBpbiB0aGUgb3V0cHV0IG9mICJtYWtlIHRlc3QiLgoKY29tbWl0IDE0MjE5MjRiNDg1MjE0MjE5MmM1YmI5ZTkzZGRiZmVkNjllOTA4ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDIxIDIyOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCB3YWl0aW5nIGluZGVmaW5pdGVseSBpZiBhIHNlc3Npb24gaGFzIHRpbWVvdXQgemVybwoKY29tbWl0IDVmMjdmNGY3NGFlMmJkNWJhZjUwM2NmMzA2YjRmOWEyODQxYTU3Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MzI6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBydW5uZXIKCmNvbW1pdCAwOTcwMzk1OGNjNWVhODQ1OTI5YWUxOWVmOWUwODA0YWVjYWE1MTJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMjo0Mjo0MSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQXZvaWQgZmFsc2UgbmVnYXRpdmUgZm9yIFQxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSBjYXVzZWQgYnkgdGhlIHRlc3QgcmVzdWx0IGJlaW5nIHByZXNlbnQgaW4gdGhlIGhleCBkdW1wICgibW9zdGx5X2hhcm1sZXNzIikKCmNvbW1pdCA0MzkzMDAyNzlmNmYzMTQzODYzOGQyZjIyMmMyNGMzYzg0MWZhNmFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMToxNjozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1pY3JvLW9wdGltaXplIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzCiAgICAKICAgIFRoaXMgbWFrZXMgdGhlIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzIGNhcnJpZWQgb3V0IGJ5IHRoZQogICAgY29uZmlndXJlIHNjcmlwdCBzbGlnaHRseSBmYXN0ZXIsIGVzcGVjaWFsbHkgb24gdGhvc2Ugc3lzdGVtcyB3aGVyZQogICAgZm9yaygpIGlzIGV4cGVuc2l2ZSAoQ3lnd2luKS4KCmNvbW1pdCBiYmM2ODAwMDRhMTM3NjAzOGRmZGM0MTcyZGJlN2I5ZTMxMWZiYTY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAxMDoxNDo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGVzdCBUMTMwc25tcHYxdmFjbWdldF9zaW1wbGUgcGFzcwoKY29tbWl0IDcwYjA2Y2Y3ODkyMDhlYWE4OTBiZmJjZDYzOGJkYjc3NWY4MTcwNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjUwOjU3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiB0ZXN0aW5nOiBwZXJsOiBGaXggYW4gaW5jb3JyZWN0IG1lc3NhZ2UgcHJpbnRlZCB3aGlsZSBydW5uaW5nIHRoZSBQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCgpjb21taXQgNzBiY2M4ZGUyZDBmYzkyYmJiODQ4MTgyMzYzMGZhYjliYzg3YWY3NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMTYgMTY6MTQ6MjQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBPYnRhaW4gdGhlIE1TWVMgcGF0aCBmcm9tIHRoZSBlbnZpcm9ubWVudAoKY29tbWl0IDYyNjI3NWUyZDFhY2FmYWU3MTQ0YTMzZWQzMDFhNDBmNTk2YjM3YjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDE0IDEzOjE0OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgc3VwZXJmbHVvdXMgbGluayBsaWJyYXJpZXMgZnJvbSBwcm9qZWN0IGZpbGVzICgqLmRzcCkKCmNvbW1pdCAzOGZjM2NhYTllZWIzODAwMjU0YjRmNmFkNmY4ZjQ3NjRjMGY4M2RiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTozNDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2NhbGxiYWNrX2FjY2VwdCgpIHJldHVybiAtMSAoZmFpbHVyZSkgaW5zdGVhZCBvZiAwIChTVERJTl9GSUxFTk8pCgpjb21taXQgNmM4YzdlOGFjYThmYzJlZWI1MjAxMGFlM2U5ZmVlNmRkODNlZjc4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMTMgMDk6NTg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBvYnNvbGV0ZSBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbigpIGRlY2xhcmF0aW9uCgpjb21taXQgMDg2MGQxMWZkOGZjNWRiZGFhYWUyMjYxZmFlMmMwN2ZiOWMyYzgyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzo1NDo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogQXZvaWQgdGhhdCB0aGUgdHlwZWRlZnMgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjb25mbGljdCB3aXRoIHRob3NlIGluIDxzdGRpbnQuaD4gZnJvbSB0aGUgbXNpbnR0eXBlcyBwcm9qZWN0Cgpjb21taXQgZjhhMDM2ZjYzZmY2OGYwODM0MzYxMjBlMGFiZDQ3OGI2OTJhMmY2MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzoyMTowNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCgpjb21taXQgODM2YTIzZTEwY2E4MTBjMzg5OTkwMmQzMjU4NzYxNmE5ZDEyMDNkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTg6Mzg6MTMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IExpbmsgd2l0aCBwcm9wZXIgbGliZWF5MzIgbGlicmFyeQoKY29tbWl0IDdiMDdmZDZjZGVmNDllYzdiYjA0YjE2NmUyYTRmYmIzN2I1ODI4NDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTE6MTA6MzggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSBhbiBpbmNvcnJlY3QgY29tbWVudCBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoCgpjb21taXQgOThmNmQyOWQ5ODFmZjhlNjA3NjAwYzYzZGFkYjI0MDUzNTYyOTgwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDo0OTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBJU0RFRklORUQoKSBjaGVjayBmb3IgYW4gZXhhY3QgbWF0Y2ggaW5zdGVhZCBvZiBhIHByZWZpeCBtYXRjaAoKY29tbWl0IDUyY2QwMDMxYTMxZjY5MmYxMzI2M2E5NGMzMzVkMDZiZTE0NTQ4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRob3NlIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBmb3Igd2hpY2ggU05NUENPTkZQQVRIIGFuZC9vciBTTk1QX1BFUlNJU1RFTlRfRElSIG1hdHRlcgoKY29tbWl0IGY1Y2Q4OWJkMzM1NmRkNzRlMTU1NmMwYjUwOTY2YTY0M2YxOTIwODUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBmcmFtZXdvcmsKCmNvbW1pdCBkZWVkZDUyYzgzNGE2NDQ4ODUyYTA2Nzg1NTM2ZTEzODY1OTY5Njk0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMIGJpbmFyeSBkaXN0cmlidXRpb25zCgpjb21taXQgZDU1YmQ0ZTA1NDlmMDNiNmZkMzI1NjJjMmFhN2ZlMzkyNzJhOWVmNwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTkgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IGFjMmFlZDNjOTRiYjJlYmI0NzNhZjBhMWUyMGYwNTYxYWQ2Mjk5NTYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjExIDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCA0MDA3OTIwNTk2N2I4ZTVhZWVkYjE5ZmEzY2IyZTdiMmY3OTg4NTc3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNyAyMTo1Mzo0NyAyMDExIC0wNzAwCgogICAgbWFrZSBkZXBlbmQKCmNvbW1pdCBjZjE0YTIyODU4M2FmZjNjNWFiMmYwZDQ0YzJmNGMwZmE1YmQ2NmFmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNyAyMTo1MzoxOCAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xCgpjb21taXQgMTAxNGRkOGRmYjQ4YTViZDA1M2YwNDU0MWViOTcyOGYwYmUwN2Y0NwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6NDU6MDQgMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMQoKY29tbWl0IDE4ZDExNmJhMzg4YzFkYzk0OTUyODg4NGJiMDA2OThmMWJhY2FhOTQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjExOjUyIDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xCgpjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBdm9pZCB0aGF0IHNubXBkIGNyYXNoZXMgaWYgc3RhcnRlZCBvbiBhIHN5c3RlbSB3aXRoIGFub3RoZXIgT3BlblNTTCBsaWJyYXJ5IHZlcnNpb24gdGhhbiB0aGUgb25lIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGguCgpjb21taXQgYTVmMDY0ZGQ4Mjk5NmUyYmUzZjFlOTYxNjcwM2FkMDM5NWZiNWFiYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBTZXAgMjIgMDc6MzM6MDEgMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5yYzMKCmNvbW1pdCA1Njk3OTRmY2ViOTllZWQ3YmU4MTdjNjRmODVjZDk0NWNhZjk5NTkyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAwNzoyMDowNyAyMDExIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzMKCmNvbW1pdCBjNTVmNjA4ZjE2ZjE2MGY1ZTc5ZGMwNTdmODg3OGRlZjQ2Mjk3M2UxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBTZXAgMjIgMTA6MzU6MjQgMjAxMSArMDEwMAoKICAgIEZpeCB0aGUgY29kZSBmb3IgcG9wdWxhdGluZyB0aGUgdGFibGVfdGRhdGEgY2FjaGUsCiAgICBhbmQgY2xhcmlmeSBhcmVhcyBuZWVkaW5nIE1JQi1zcGVjaWZpYyBhZGRpdGlvbnMuCgpjb21taXQgMTM3NjNjZjJjNzFiZjkzZmVjMDk2ZWVlMDA0ODU3YzE1YjJjZmZmZgpBdXRob3I6IFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAxMDowNjo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6IENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMKICAgIHRvIGF2b2lkIGludGVnZXIgYXJpdGhtZXRpYyBlcnJvcnMuCiAgICAoQ29kZSBiYXNlZCBvbiBwYXRjaCwgcmF0aGVyIHRoYW4gYXBwbGllZCB2ZXJiYXRpbSkKCmNvbW1pdCBlZTBkM2FkYjA3ODI5MWI3NDNjOWVjYjc2ZDIwYjU5MWI3YjE1OTcyCkF1dGhvcjogU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDA5OjU4OjM5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjogQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYwogICAgdG8gYXZvaWQgaW50ZWdlciBvdmVyZmxvdyBlcnJvcnMuCiAgICAoQ29kZSBiYXNlZCBvbiB0aGUgc3VibWl0dGVkIHBhdGNoLCByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQoKY29tbWl0IDM2N2RhMTRmY2RiMTQ2NTkyZGU2N2MxZDY5OTdhMDk3NzQyNTk2NzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDIyIDA4OjA5OjE3IDIwMTEgKzAyMDAKCiAgICBUaGUgb25seSBjaGFuZ2UgYmV0d2VlbiBWNS43LnJjMSBhbmQgVjUuNy4xLnJjMiBpcyB0aGUgdmVyc2lvbiBudW1iZXIuIE1ha2UgdGhpcyBjbGVhciBpbiB0aGUgQ2hhbmdlTG9nIGZpbGUuCgpjb21taXQgYzI3NmVlYjhmMDQ1NWEwODcwYzRiNDc4ZGRlNjQ4ZTg2NTI5YWRkMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjEgMTM6NTE6NTggMjAxMSAtMDcwMAoKICAgIGNoYW5nZWxvZyB1cGRhdGUKCmNvbW1pdCA2MzA1MDgzODY2NmY2NDVmYzMwNmRjMmVlNGY3M2Y1ZWZjZTYzZmVkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyMSAxMzozODoxOCAyMDExIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzIKCmNvbW1pdCBiYmUyYzE5YTAxZWNlYzAyNGY3NDFlMmU1NDcwMWFlNjIxMmY0YzNlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCA0IDE0OjQ0OjM4IDIwMTEgKzAyMDAKCiAgICBUaGlzIHNob3VsZCBoYXZlIGdvbmUgb25seSB0byBtYXN0ZXIuCiAgICAKICAgIFJldmVydCAiQ0hBTkdFUzogYnVpbGRpbmc6IENvcnJlY3QgZGVwZW5kZW5jaWVzIC0gc2luY2UgYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluIGJ1aWxkZGlyLCBub3Qgc3JjZGlyIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDllZmE0NjdhOTcyYmI2ZTFjN2ZiZGFmMmUyNzQyOWQyOWY0YWI4OWUuCgpjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgNCAxNDowMDoxMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IENvcnJlY3QgZGVwZW5kZW5jaWVzIC0gc2luY2UgYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluIGJ1aWxkZGlyLCBub3Qgc3JjZGlyCgpjb21taXQgNzgzNTk2NGQzNTkzZTVjNmExYWU3ZGUwYjQxMTRiN2RmMWFlMGZlMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MjE6NTEgMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5yYzEKCmNvbW1pdCBjYjZhMGMwYmQ2ZjhjMmM3Y2Q1ZmQ4NjA4MGRjNjMyNGU3ZjczODU4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOToyMDozNSAyMDExIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4xLnJjMQoKY29tbWl0IGU1ZmYyZWI4M2JiYmVkOTJkYWM3NTFjNWE2NjQzZDc4ZjgzN2NmOWMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjE5OjQ2IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnQKCmNvbW1pdCBjYjFmNWNmZmM2ZmI1MmMyYTZjMGY3YjQwOGFmZWI0N2ZjZmU1NWU0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOTowOTo1NiAyMDExIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzEKCmNvbW1pdCA0MjJiMDgyYTk1OTNjYTljNjVhYWM0NDllNmQxMjhhOWU5N2U5NGZiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOTowNjo1NiAyMDExIC0wNzAwCgogICAgYWRkZWQgNyBhcyBhIHJjIHNlcmllcyBicmFuY2gKCmNvbW1pdCA3MWMwZDc2NTA0OTM3MTA2MzFmYTA4ZDVkYzRkYWQ1MDFhOWFhNzcxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxNjozNzo0MSAyMDExIC0wNzAwCgogICAgZGVhbCBwcm9wZXJseSB3aXRoIGludmVydGVkIGVycm9yIGNhc2VzCgpjb21taXQgY2Y0Y2Y3ZjMyYWQ1OGYzMjZmZmVkNTA0OTQ1ODMyMzE2NDhkNzlkMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MDg6MDkgMjAxMSAtMDcwMAoKICAgIGFkZGVkIC5mdCBhbmQgLmZ0LjEgZm9yIGZlYXR1cmUgZmlsZXMKCmNvbW1pdCA0MWIyY2RlMTlkMjIyMDliNDgzMjA3NjE0ZTAyNzQ4M2MzNzA2ODc3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMTowMzoxNSAyMDExIC0wNzAwCgogICAgYXV0by1kZXRlcm1pbmUgcGF0Y2ggYXJndW1lbnRzIGlmIHBvc3NpYmxlIGZvciBuc3BhdGNodHJ5Cgpjb21taXQgOTZiYjU4OWMyZTUwNTQ4OTBlOTg3MDVhYjVmNDMwOGFlNmExMzBiYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTA6MTM6MDYgMjAxMSAtMDcwMAoKICAgIG1ha2UgaXQgc28gdGhlIGdpdCBjb21taXQgbGluZSBjYW4gYmUgY3V0L3Bhc3RlIHdpdGhvdXQgbGluZWJyZWFrcwoKY29tbWl0IDNmZTM2ZjdhZDcxYzA4ZTEyODZjZThlNDg3ZTkzNTJlMjdjZDk2Y2MKQXV0aG9yOiBSb25hbGQgV2FobCA8cndhLWNvQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDEwOjEyOjExIDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzk0NTg2OiBmcm9tIHJ3YS1jbzogZmlsZSBkZXNjcmlwdG9yIGxlYWsgaW4gcmVhZF9jb25maWcgKCtmaXgpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDZlNTRjNDEzMWFmNzMxZmY5MDQ2N2E3NWJjYzgxN2M5NTdmOGY3MmEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDA5OjU1OjE0IDIwMTEgLTA3MDAKCiAgICBkZXNjcmliZSB0aGF0IG5zcm9sbHVwIG5lZWRzIHRvIGJlIHJ1biBub3cuCgpjb21taXQgODZlZmVlMjM0MzJjY2IwZDJlMGM3MzZkMzRkYzEwNTExMzBjZGMwZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgQXVnIDMwIDEwOjUyOjMwIDIwMTEgKzAxMDAKCiAgICBBcHBhcmVudGx5IElSSVggaGFzIGEgZGlmZmVyZW50IEFQSSBmb3Igc3RhdGZzCgpjb21taXQgZjdlMjFmMjYzMzM5MGI3YTI3YzUwMjI3YmVlNmQ4Njk2YWUzZmJjZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMjkgMTY6MDE6MzEgMjAxMSAtMDcwMAoKICAgIGRvbid0IHByb3ZpZGUgYSBmZWF0dXJlIHdoZW4geW91ciBhIGNoaWxkIG9mIGFub3RoZXIgZmVhdHVyZQoKY29tbWl0IGNhYzIzYzBiMjU3NGU3MjgwYmQxMjhjNjIyNjg3NWFkMGY2YjRiZmMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDA5OjM4OjE0IDIwMTEgKzAyMDAKCiAgICBNYWtlIHN1cmUgdGhhdCBmZWF0dXJlLWRldGFpbHMuaCBleGlzdHMgYmVmb3JlIHRyeWluZyB0byBpbmNsdWRlIGl0Cgpjb21taXQgNzgxZjRjZTJhY2IzNzE1NjA3OTdkOGIyOWE4OWVkMDY3NGU5MzVmOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMDk6MzY6MzYgMjAxMSArMDIwMAoKICAgIFVzZSB0aGUgZmVhdHVyZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgdGFyZ2V0IHdoZW4gYnVpbGRpbmcgdGhlIGZlYXR1cmUgc2V0Cgpjb21taXQgMTFiZmY0NzJjYTdiMWZjZmYwYzE2MTg3YTFiOGExMzA5M2JjOTFjNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMjkgMDA6MzM6NTUgMjAxMSArMDIwMAoKICAgIHRoZSBpcml4NiBidWlsZCBvbmx5IGRlZmluZXMgaXJpeDYsIG5vdCBpcml4Cgpjb21taXQgM2M3M2ExNDA3YTA4MWQ0MmViZGQ5MWRmYmNiMWU0ZjE1MmI3ZGY0YQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMjkgMDA6MDU6MTMgMjAxMSArMDIwMAoKICAgIHJlLWFkZCBzb2NrYWRkcl91bi5zdW5fcGF0aCBjb25maWd1cmUgY2hlY2sgKGxvc3QgaW4gcHJldmlvdXMgY29tbWl0KQoKY29tbWl0IDJlM2YwMmUwM2FlZDEyNTM4NGJhNGZlM2Q4MzQ5NGQ0M2YzYTI5ZTkKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDI4IDIzOjUzOjMwIDIwMTEgKzAyMDAKCiAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMgZG9lc24ndCBidWlsZCBvbiBJUklYIHlldAoKY29tbWl0IGY5NWFhMzEzNzdkNTcyYjA0OWIwYjMxNmRiYjE2M2JmN2FjYTkzZDUKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDI4IDIzOjI1OjQwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGRzIG1zZ19jb250cm9sL21zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChiYWNrcG9ydCkKCmNvbW1pdCA3ZjQ3ZDkzNzY1YWEzNWE1ODY4N2ViOWI0ZjlmNzAwZTQzNDNlMTNjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMToxMTozNSAyMDExIC0wNzAwCgogICAgYWRkZWQgcmVxdWlyZWQgZmVhdHVyZXMgZm9yIG1mZCBoYW5kbGluZwoKY29tbWl0IDliMmU0MmE2ZTA1NTBmYjc4OWM2MDdjMzUyMDg4MGQ0ZGJjMGNmMjQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjA4OjA5IDIwMTEgLTA3MDAKCiAgICBhZGRlZCAuZnQgYW5kIC5mdC4xIGZvciBmZWF0dXJlIGZpbGVzCgpjb21taXQgMzNkY2JmNTZmYzA2MjZhM2U0ZjEzNTkwOTViZDIxN2QxYTU2Nzc5NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MDc6NTggMjAxMSAtMDcwMAoKICAgIG5vX3dyaXRlX3N1cHBvcnQgc3VwcG9ydGVkCgpjb21taXQgOTdkNDJlZmQ3NjkzN2NlN2U0YmM0OGE3MmVkNWExMTBlNDIzMTAyZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTA6MDg6NTEgMjAxMSAtMDcwMAoKICAgIGhhbmRsZSBuby13cml0ZS1zdXBwb3J0IHdpdGggaWZkZWZzCgpjb21taXQgZWE4YmVkNzllODFjNDJlMzNjYmYzN2NhNmYzYzAzYzU0OTk4N2IyMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMjUgMDY6NTY6MjIgMjAxMSAtMDcwMAoKICAgIGltcG9ydCBzdGRlcnIKCmNvbW1pdCBmZDZkODA0ZGMzZTcwM2M0MDU5ZGJlNzc1MDAxYTNiZTliOTMzMDlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAyNSAwNjo1NTozOCAyMDExIC0wNzAwCgogICAgdXNlID4+IHRvIHByaW50IHRvIHN0ZGVycgoKY29tbWl0IGNlZTAzNTljNmZhZTJiODVkN2I5MzE4NTllNTE3ZDg5Y2UwNzIyYmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyMyAyMzo0MzoxOSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGQ6IERvIG5vdCBnZW5lcmF0ZSBhbiBvdXRwdXQgZmlsZSBvbiBmYWlsdXJlCiAgICAKICAgIG1ha2Ugc3VwcG9zZXMgdGhhdCBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkIGlmIHRoZSBjb21tYW5kIGZhaWxlZC4gQ2hhbmdlCiAgICBmZWF0dXJlLXJlbW92ZSB0byBmb2xsb3cgdGhhdCBwcmVzdW1wdGlvbi4KCmNvbW1pdCBmZTM5ZTcyODhjYTkzMGQyYzlhYWE4MzAxY2M5ZDk1ZjBjMzhmMzZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMjE6NDg6MTcgMjAxMSArMDIwMAoKICAgIENvcnJlY3QgdHlwbwoKY29tbWl0IDFmMDgyYTMxY2QxMzhmMWY1ZTI3YmU2ZDkwYTFkNTc5MGRjMGZmZTQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjM1OjQyIDIwMTEgKzAyMDAKCiAgICBtYWtlIHN1cmUgdGhhdCBfS0VSTkVMIGlzIGRlZmluZWQgdG8gMSBzbyB0aGF0ICIjaWYgX0tFUk5FTCIgd29ya3Mgb24gc3lzdGVtcyB0aGF0IG5lZWQgaXQgKGUuZy4gSVJJWCkKCmNvbW1pdCAyNmJiMjQ3MGMxMDZmODM0NDQyYTJhZGJjNzYxMWJmMTY2NTdmYmRmCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyMyAyMzoyMjo0NCAyMDExICswMjAwCgogICAgbWFrZSBzdXJlIHRoYXQgX0tFUk5FTCBpcyBkZWZpbmVkIHRvIDEgc28gdGhhdCAiI2lmIF9LRVJORUwiIHdvcmtzIG9uIHN5c3RlbXMgdGhhdCBuZWVkIGl0IChlLmcuIElSSVgpCgpjb21taXQgZmM1NTYwYzA1Zjg0ODMyMWRhMGNhMGMyZTg3MDAxZDVmMjI5NTE2NwpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMjIgMTg6NTQ6MzAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZCBtc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkciAoZS5nLiBJUklYKQoKY29tbWl0IDk2ZWEyZDFhOGViZmZiMzQ4NjczYTg2NWQ0ODZmMzFlNjM1ZTYyYmQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAxOjUxOjQ5IDIwMTEgKzAyMDAKCiAgICBhdXRvcmVjb25mCgpjb21taXQgMWEyNjQ4ZWFmNzFjYjAxODk1MTU5NjY4OWM1MTU4OGRjYTgwNjNjNQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDE6NDg6NTcgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCAzZjJmNjFiMGU2MTNkNjEwNWVjZjJjZWIzOTVkZTBiZGUzN2YzY2UzCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMTo0NzoxMyAyMDExICswMjAwCgogICAgYXV0b3JlY29uZgoKY29tbWl0IGI2MmNiMDg2NGY1NzdiYTg1NTczZDBkMjUwZDEyYTM5Mzg3YzA3YjQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAwOjU1OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhaXg6IGVsaW1pbmF0ZSBjb25maWd1cmUgd2FybmluZyByZWdhcmRpbmcgbGlicGVyZnN0YXQuaCBvbiBBSVggNi4xIGFuZCB1cAoKY29tbWl0IDcxYjkwYjZmMjE3OTQ0YjRmZmMxODM2ZTUxNjBkNDBlMzNiNDQyM2QKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAwOjQwOjI4IDIwMTEgKzAyMDAKCiAgICBmaXggYnJva2VuIGxpbmUgd3JhcAoKY29tbWl0IDViNTkwMGE0ZjdkZmVlNmUxZWM4NjllMzIzMTBiODBjYTZmYjIzZmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDEyOjI4OjA3IDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMgoKY29tbWl0IDNiN2UyZTM5OTQ5Zjg4ZDljNTZlZDVmOTk0MDI4Yjk0ODE2YWI3NWMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDEyOjIzOjI4IDIwMTEgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjEucHJlMgoKY29tbWl0IGVjZTYzYmZlNDk5YzYzMGJkYWFlNjIwMDY0OGQyOTE4MGNlM2ExNzkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDEyOjAzOjE3IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnByZTIKCmNvbW1pdCAyOGI1NDA3MDUxNDc1M2U4ZDhhYmI3MThiMjI0ZDY1N2FiN2E4YWI4CkF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDExOjQ5OjU2IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBCU0Q6IFBBVENIIDMzODM5NjU6IGZyb20geWFiZXJhdW5leWE6IEZpeCBpZi1taWIgYWdlbnQgY29tcGlsZSB3YXJuaW5ncyBvbiAqQlNECiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGY3M2U2MzY0YmIzNDA3MDYyMmU5ZjQ0ODhjZDA0ODdkMmZiNzQwMmEKQXV0aG9yOiBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAxMTo0NToyOSAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDMzODkyMjg6IGZyb20gd3VsZjIwMDE6IGluY29tcGxldGUgY29tbWl0IChwYXRjaCAzMzg2NjMzOiBmaXggaW50ZWdlciBvdmVyZmxvdykKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTZjZjgyMDZmMGM2NzY1MDAwMWUzNGI1MjZiMzdmNjRlNGE1OTI5YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMDk6NDY6MzMgMjAxMSAtMDcwMAoKICAgIFBhdGNoIGZyb20gQ2xhdXMgS2xlaW4gb24gLWNvZGVycyBmb3IgZml4aW5nIG1hbiBwYWdlIHR5cG9zCgpjb21taXQgNmE4NDFkNTY1MThhNzI3MTk2ZTY2YjU5ZTdlNWIzMzA0ZjU0YjBhMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMDg6MzE6MDYgMjAxMSAtMDcwMAoKICAgIGNoYW5nZWQgY2xpZW50YWRkciBzbyBpdCByZWdpc3RlcnMgYXMgcHJlLW1pYiB0byBiZSBwaWNrZWQgdXAgYmVmb3JlIHRoZSB0cmFuc3BvcnRzIGdldCBjcmVhdGVkCgpjb21taXQgYzAyMTMxZTViMzVkMjk2NzU1YmFlYzk5YmQzNjMyMDVhODYzMDdkZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTcgMDk6MzQ6MDAgMjAxMSAtMDcwMAoKICAgIGRldGVjdCByZWFsbHkgb2xkIHZlcnNpb25zIG9mIExvbmcucG0KCmNvbW1pdCA1MDBkNmRlMDZhYTRmZjMzMGFlZTRkNzQ5YTRjYzM3N2JlYzg5ZTA5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAxNyAxODoxMTo0NyAyMDExICswMjAwCgogICAgRml4IHRoZSBsb2cgbWVzc2FnZSB0aGF0IHJlcG9ydHMgdGhhdCBnZXRob3N0YnlhZGRyKCkgaXMgbWlzc2luZwoKY29tbWl0IDY1ODA1NTZjYzdiZDgzM2FmNzMxYjYyY2UxZWQyMDE3NTY0ZmU3ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDE3IDE4OjA4OjAxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBzbm1wdHJhcGQ6IE1ha2UgdGhlIElQIGFkZHJlc3MgdG8gaG9zdG5hbWUgY29udmVyc2lvbiB3b3JrCgpjb21taXQgM2NiM2YxZWRlMzg4ZDg0ZTM5MmUxZDgxNWQ1OTk0YTRiZjBmMTBmOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBBdWcgMTQgMDc6NTk6MjUgMjAxMSArMDIwMAoKICAgIFdpbmRvd3MsIGJ1aWxkLmJhdDogUmVzdG9yZSBvcmlnaW5hbCBidWlsZCBhbmQgaW5zdGFsbCBvcmRlci4gQXBwYXJlbnRseSB0aGUgY29ycmVjdCBuZXRzbm1wLmRsbCBpcyB1c2VkIGR1cmluZyB0aGUgUGVybCB0ZXN0cyBieSBzZXR0aW5nIFBBVEggcHJvcGVybHkuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzFiNWEwMzBkOGYwNDg3NmNkNWI5YWYwMDhjODc5Y2M0NjhiMjEyZi4KCmNvbW1pdCBkYWZmNDlkOWIzMzY5ZWZjYzg3ZjA1ZGM4NTkxMzYyZTgxYTQ1ZmRmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAxODo0Mzo0OCAyMDExICswMjAwCgogICAgV2luZG93czogTWFrZSB0aGUgUGVybCBhZ2VudCBtb2R1bGUgd29yayBhZ2FpbiB3aXRoIHRoZSBvcmlnaW5hbCBTTk1QX0ZSRUUoKSBkZWZpbml0aW9uLgoKY29tbWl0IDNjNzNiNDgzOGU2MDViMTUwYmMzMTczMTNmMTRlYjMzNDQ0NzI5ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDE3OjM4OjI3IDIwMTEgKzAyMDAKCiAgICBSZXZlcnQgdGhlIHR3byBtb3N0IHJlY2VudCBTTk1QX0ZSRUUoKSBjaGFuZ2VzIChjb21taXRzIDQ3YzhlZjFiODljNmNjYjQyNDdkOTYzMzQ3NzkyNTkwOGM2OGMxYTUgYW5kIDdmNDJkMGQ5MzMyMDQ4NDE1MjI3MTQyN2NjOTgwOGNiZGE0OWJiZDApLgoKY29tbWl0IDNlNTBjM2UwMGU5ZjMyMWZiNzA4YmM1NzllYjRkYzFhMGYxZTdjNGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDExOjMxOjQwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcGFzc19wZXJzaXN0OiAgRml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbnRyb2R1Y2VkIGluIGNvbW1pdCAzMWZhMDdjZDlmZmRlNDZkNDFkMmI1ODM4YzNmYzRkMDE1NDhiZmI1LgogICAgCiAgICBUaGUgZm9sbG93aW5nIHJhY2UgY29uZGl0aW9uIGNvdWxkIGhhcHBlbjoKICAgIC0gQSBzeXN0ZW0gY2FsbCBmYWlscyBhbmQgZXJybm8gaXMgc2V0IGFjY29yZGluZ2x5IGJ5IHRoZSBDIGxpYnJhcnkuCiAgICAtIFNJR0NITEQgaGFuZGxlciBpbnZva2VzIGEgc3lzdGVtIGNhbGwgdGhhdCBmYWlscyBhbmQgaGVuY2Ugb3ZlcndyaXRlcyBlcnJuby4KICAgIC0gU0lHQ0hMRCBoYW5kbGVyIGxlYXZlcy4KICAgIC0gb3JpZ2luYWwgY29udGV4dCBjaGVja3MgZXJybm8gYW5kIGZpbmRzIHRoZSB2YWx1ZSBmcm9tIHRoZSBzeXN0ZW0gY2FsbCBpbnZva2VkCiAgICAgIGJ5IHRoZSBTSUdDSExEIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIGNhbGwgdGhhdCBmYWlsZWQgb3JpZ2luYWxseS4KICAgIAogICAgT3RoZXIgZml4ZXMgaW5jbHVkZWQgaW4gdGhpcyBwYXRjaDoKICAgIC0gUmVuYW1lZCBkZWluaXRfcGFzc19wZXJzaXN0KCkgaW50byBzaHV0ZG93bl9wYXNzX3BlcnNpc3QoKSBzdWNoIHRoYXQgdGhpcwogICAgICBmdW5jdGlvbiBnZXRzIGNhbGxlZCBkdXJpbmcgYWdlbnQgc2h1dGRvd24uCiAgICAtIE1hZGUgc3VyZSB0aGF0IHNodXRkb3duX3Bhc3NfcGVyc2lzdCgpIGlzIGNhbGxlZCBieSB0aGUgV2luZG93cyBzbm1wZC5leGUgdG9vLgogICAgLSBXaW5kb3dzOiBhdm9pZCBjYWxsaW5nIENsb3NlSGFuZGxlKElOVkFMSURfSEFORExFX1ZBTFVFKS4KICAgIC0gV2luZG93czogYXZvaWQgdGhhdCBjbG9zaW5nIGEgcGFzc19wZXJzaXN0IHBpcGUgdHJpZ2dlcnMgYSBjcmFzaC4KICAgIC0gV2luZG93czogcGFzc19wZXJzaXN0OiBjbG9zZSBoYW5kbGVzIG9mIGZpbmlzaGVkIHByb2Nlc3Nlcy4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIAl3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmgKCmNvbW1pdCBlMTQ3ZTRiOTY3NTUyMDdkZTFjZTMwOTkwZDY3YjRiN2M3NmRkNDgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODozOToxNCAyMDExICswMjAwCgogICAgVW5icmVhayB0aGUgV2luZG93cyBidWlsZC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDFlMTAwMGE4ODE1OTIxYjVlYzJlNzk5N2I1MzU5MmE1NDRiM2RmYzIuCgpjb21taXQgYzFiNWEwMzBkOGYwNDg3NmNkNWI5YWYwMDhjODc5Y2M0NjhiMjEyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IGJ1aWxkaW5nIChidWlsZC5iYXQpOiBJbnN0YWxsIG5ldHNubXAuZGxsIGJlZm9yZSBydW5uaW5nIHRoZSBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgc3VjaCB0aGF0IHRoZSByZWdyZXNzaW9uIHRlc3RzIGFyZSBydW4gd2l0aCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIG5ldHNubXAuZGxsLgoKY29tbWl0IDFlOWQyMDAzYmFlZDIyN2Y2OGI2ODUyOGYxZTk3ZTZmNWVhODZjMWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBwZXJsIChidWlsZC5iYXQpOiBXaGVuIGluc3RhbGxpbmcgZGV2ZWxvcG1lbnQgZmlsZXMsIGluc3RhbGwgdGhlIFBEQiBmaWxlcyB0b28uCgpjb21taXQgYThkOTQwMDdlMzJkMDM3MTA2OTJjOGYxYjQxN2Q1YmRmZTM2NTBmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEZpeCBQZXJsIHJlZ3Jlc3Npb24gdGVzdCBmYWlsdXJlcwogICAgCiAgICBBbGwgUGVybCByZWdyZXNzaW9uIHRlc3RzIHBhc3Mgbm93IG9uIExpbnV4IGFuZCBvbiBXaW5kb3dzIChNU1ZDKS4KCmNvbW1pdCBiNmQwYjQ5MDE4MWM2ZGY4YzExZWNmMTU1ZjFlNmVhZjExYjFlYzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUGVybCByZWdyZXNzaW9uIHRlc3RzOiBEb24ndCBmYWlsIHNraXBwZWQgdGVzdHMuCgpjb21taXQgY2EzYWNmMmIwNzAzOWQ5NmExMTdmMDkwZjdlYzc2YjZlOGI1NDFlOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEFkZCBTTk1QOjpnZXRlbnYoKSBhbmQgU05NUDo6c2V0ZW52KCkuCgpjb21taXQgNTY3NTllNWFkNTM3ZjAxYjRhNTFlN2ZmOTk5NGVjNGI1NWMzMjEzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBuZXRzbm1wX3NldGVudigpLgoKY29tbWl0IDk4NDNlNWJjZjQ3Mjg3N2U4NWIwMzFiNWU1ZGFmYWE5ZDVmYzYzYzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBkb2N1bWVudCBob3cgdG8gdXNlIG9uIFdpbmRvd3MKCmNvbW1pdCA2MDU3ODY2YjczYTAyMjc3MWU5MGU5OTY3ZGQyNWJkYzcxOTJmYmRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgU2V0IGV4ZWN1dGUgZmxhZyBvbiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0IHN1Y2ggdGhhdCB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoYXQgZmlsZSB3b3JrCgpjb21taXQgYzJkYWY1OTQwZjIxYTEzZTg5ODlkZDA1NWIxN2YzMTgxMTEyZjg1NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IEZpeCBhIHN1cHByZXNzaW9uIHBhdHRlcm4KCmNvbW1pdCAxZjBhOTI4YTI5MTNjZmE3ZjVjZWFhZjQ2OTZjNjlmYmRjNjg3NjIxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAxMiAwOTowOToxMSAyMDExIC0wNzAwCgogICAgYWRkZWQgdGhlIG1pc3NpbmcgLWUgb3B0aW9uIHRvIHRoZSBjcmVhdGVVc2VyIGRvY3MKCmNvbW1pdCAxZTEwMDBhODgxNTkyMWI1ZWMyZTc5OTdiNTM1OTJhNTQ0YjNkZmMyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEF1ZyAxMSAxNTo0NjozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBidWlsZCBhZ2Fpbi4KCmNvbW1pdCA5N2Q2NDMyZjk1ZTFjZGNmNmZkODVlN2NhMWQwYzU1NTdlYjZkOTE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEF1ZyAxMSAxODoxNjo0NCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogcGVybDogTWFrZSBzdXJlIHRoYXQgdGhlIGNvbnN0YW50IFNOTVBfREVGQVVMVF9SRVRSSUVTIGlzIHJlY29nbml6ZWQuCiAgICAKICAgIENIQU5HRVM6IHBlcmw6IFNOTVAgbW9kdWxlOiBBZGQgY29uc3RhbnRzIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfUkVDRUlWRURfTUVTU0FHRSBhbmQgTkVUU05NUF9DQUxMQkFDS19PUF9USU1FRF9PVVQuCiAgICAKICAgIFdoZW4gdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBhcmUgYnVpbHQgb24gV2luZG93cyB3aXRoIE1TVkMgb3IgTWluR1cgaXQKICAgIGlzIHBvc3NpYmxlIHRoYXQgZWFjaCB0aGVzZSBhcmUgbGlua2VkIHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDCiAgICBydW50aW1lIGxpYnJhcnkgdGhhbiB0aGUgUGVybCBpbnRlcnByZXRlciBpdHNlbGYuIEluIHRoYXQgY2FzZSB0aGUgImVycm5vIgogICAgdmFyaWFibGUgdXNlZCBpbnNpZGUgLnhzIHNvdXJjZSBmaWxlcyBpcyBhbm90aGVyIHZhcmlhYmxlIHRoYW4gdGhlICQhIHZhcmlhYmxlCiAgICBpbiAucG0gZmlsZXMuIE9yOiBhc3NpZ25tZW50cyB0byAiZXJybm8iIGluIGEgLnhzIGZpbGUgZG8gbm90IG1vZGlmeSB0aGUgIiQhIgogICAgUGVybCB2YXJpYWJsZSBUaGlzIHBhdGNoIGF2b2lkcyB1c2luZyAiZXJybm8iIGJ5IG1vZGlmeWluZyB0aGUgZGlmZmVyZW50CiAgICBjb25zdGFudCgpIGZ1bmN0aW9ucyBzdWNoIHRoYXQgdGhlc2UgcmV0dXJuIGEgdHdvLWVsZW1lbnQgYXJyYXkgaW5zdGVhZCBvZgogICAgcmV0dXJuaW5nIGEgc2NhbGFyIGFuZCBzZXR0aW5nIGVycm5vLgoKY29tbWl0IDc2OTA4OTRiN2I4NDY0ZjA1YzdjOTAyYmQ3Y2Y3NTFjYzI2OTk3N2EKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDEwIDA5OjI2OjM3IDIwMTEgLTA3MDAKCiAgICBkb24ndCBhc3NlcnQgb24gYSBkb3VibGUgaW5pdDsganVzdCBkb24ndCBkbyBpdCB0d2ljZQoKY29tbWl0IDQ3YzhlZjFiODljNmNjYjQyNDdkOTYzMzQ3NzkyNTkwOGM2OGMxYTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDEwIDE2OjQ0OjM2IDIwMTEgKzAyMDAKCiAgICBTTk1QX0ZSRUUoKTogY2FzdCBhcmd1bWVudCB0byAodm9pZCAqKSBiZWZvcmUgcGFzc2luZyBpdCB0byBuZXRzbm1wX2ZyZWUoKQoKY29tbWl0IDAyMjAzOTJkODk5YTljYWI3MDFmNzRhZjEyMDMwYmIxZDRjYzVlMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDEgMTM6MDI6MTUgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IElnbm9yZSAqLmV4ZSBmaWxlcyBnZW5lcmF0ZWQgYnkgdGhlIFdpbjMyIGJ1aWxkCgpjb21taXQgMDM0NGRmOTJlNDYyZjNiZWM5OTQ2MDhjMzM4MWZjYTUzNDhhYmNkYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxNToxMjo1NSAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50cwoKY29tbWl0IDA5YTY2MWQ1ZGM2MGM3MzBmZTAzODRiMDJlZDY3MjgzMGVmNzRlMzAKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTU6MTI6NTUgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudHMKCmNvbW1pdCA2OWNiNDJhNGVhMDU4M2NlNmY1ZmY4ZjgzODM1MTZkMzRiYzRjMzQ0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDE1OjEyOjU1IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnRzCgpjb21taXQgNDQ3ZGRjNjZkOTBkZDllNWMzMTA1YjI2OGI2YTYzYmZjNTgwYjkyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXVnIDggMjI6MDM6NTggMjAxMSArMDEwMAoKICAgIERlZmluZSBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuCiAgICAoYXMgcGVyIEFsZXgnIGJ1aWxkIGluc3RydWN0aW9ucykKCmNvbW1pdCBiMGE2MmViMTk3NjNhYjRmMGI3NzY0MzAyNDJhNjExN2NjYWU1ZGQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBdWcgOCAyMTo1OToxNyAyMDExICswMTAwCgogICAgRGVmaW5lIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4KICAgIChhcyBwZXIgQWxleCcgYnVpbGQgaW5zdHJ1Y3Rpb25zKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4xIC0+IFY1LjcuMi5wcmUxCgpjb21taXQgODEwMTg1YWUwYjBjZDJhZDRkNDI0YTFiYTc3NWVmNWNlYWY1MGYwMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwOToyNDoxOSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCA2MjcxNDcxZTAxMjgyZjM2NzU3MjRlYWYxMzU4Y2ViMGU5NWRkZDRlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjQwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTEKCmNvbW1pdCBmY2I3ODJhYTg4OTMxMzRjNzQxNGE5MjZkOTI2ODU5NGY3MjViOTE1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjE4IDIwMTIgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjIucHJlMQoKY29tbWl0IGUzYmNkODdjNzJmY2VhNzcwNmU4NjhiNWFjZTc1Mjk2MDkzZjc0OTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowOTo0MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBkODEzY2UyZWVlZmM2ODIyOWNmY2FmMjA2MDMyNDRjZGQ2ZDA5ZDNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDc6NTIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZmE3YmQ1ODFlMzc4MzY4NWRiMzljOWI0ZWFmODQ3YmU1YWM4NmZkMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUzOjEwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgMDczOWUyMzgyZDMxMTQ2YWNhMzIwNTI0NGNmNzA3ODhiNDBhNDI4ZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUxOjQ1IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCgpjb21taXQgZDlhMTU0NDVhYTc0ZjUzMTZiZmM3MTFjMTU1ODQ2Nzg3MmMyOTU4YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMyCgpjb21taXQgYmNhYmQyYzk1NDJkYmViZDFkMzE5YjQ0OTQ0MTNiZGNjYTA2NjE0ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgYjQ3Mzg5OGMwYzVhYzllYjQ3YzdjMDVhM2Y3NDVlNGZmMmE3NmFhYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgoKY29tbWl0IDEzMTQyOWU3MDYyZmJhYTY1YjgyYWZmZWQxZmI5MmRmMmMwY2M4MTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFjODExMGIzM2I4MTA1Y2E2MTkwOTQ1YTM1ZmU3YWU5MDMyNTJkNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMTozOCAyMDEyICswMTAwCgogICAgQXZvaWQgcGVybCB2ZXJzaW9uaW5nIHByb2JsZW1zIHdoZW4gc2V0dGluZyB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKCmNvbW1pdCA1MDhlY2UxNmU2ZjZmNDk1NjJkYTIwNDc5MmFlMDY0NDI2OTk5NGQxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjA6NTggMjAxMiArMDEwMAoKICAgIEZpeCBoYW5kbGluZyBvZiBkaXN0L3JlbGVhc2UgbWVyZ2UKCmNvbW1pdCA1YjhhODU0N2IxYTQ3ZDJmNWIyMDdmNDhmMjQ5NmU0MjQxZDkwMmM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MTA6NDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA2YzMyOTE0YmYyOGQ2OTVkZjM0OWRjYTI2OWU0ODhiNTAxNzAwMzE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDc6MjIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA5ZjVhODJhNWFmZGJiM2RhZWIyZmQ0MzdhMzA5ZjBiOGQzNTdjZjRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDU6MzkgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAzOTIwM2YyOTQ3N2EzYmVkZjAxMmQ0MTEzNWQ4YWJkNmJjYWQwOGIxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NTQ6MjcgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAxN2U3OWVmMGZhZDc5NjA5YzViYTJmZWI0ZThiOWViNWQ3ZGI2ODg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCA1ODIxYmU1YmJiNDAxOGRlZDI4MmZiYmJkNDgzMGNmMmVlYWRkOWUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDU6NTkgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMyCgpjb21taXQgM2YyMTExZGU2NzMzYTA0ZTEyZDkxMGQzMDZhMzRkNjcxZTAwODc2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgY2NmOGZmMmM0ZGI2MDEyMmQ0MTMwMmU0YWViNzAwZTBiODY4MTA1ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDI4IDEwOjE4OjQzIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNTI2NTk5OiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCgpjb21taXQgYzgxYzg0ODM5OTA5MTFmNDc0MzVkMzAwNTI1NWQ5MWMzN2FiOTJiMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDk6MjYgMjAxMiArMDIwMAoKICAgIEZpeCBCU0QgdGhhdCBkb3dubm90IGFsd2F5cyBsaWtlIElQX1NFTkRTUkNBRERSIC0gc28gcmV0cnkgd2l0aG91dAoKY29tbWl0IGZmY2UxZjJkYzJmOGIzMWFiZDAxZjkzYjI2ZGE3OGY0NzI2YTFlNjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjAzOjU4IDIwMTIgKzAyMDAKCiAgICBGaXggT1MgbWlzc2luZyBNU0dfRE9OVFdBSVQgKEFJWCkuIEJhY2twb3J0IGZyb20gNS43Cgpjb21taXQgYzU3NTIxNjg1MDE4NWI1NjQ1NGRhZDAyNTNlMzE2NDk3OWUxMzUxMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTM6NTY6MDEgMjAxMiArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0Cgpjb21taXQgNTgwNTg3ODc0OWMwODA2MmRlYmYwYTlkNzk4ZDA4ZmI5MTZjYWEyZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXkgMjcgMDY6MjM6MTkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBkZWJ1ZyB0YWcKCmNvbW1pdCBkMWE0MmJiY2M3YjE0NzMwYzlhNmQ5OWM0ZjA0NzA5Nzg0M2E1NDliCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1heSAyNSAwOTowMjoyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQoKY29tbWl0IDFmYmYzMzcxMWExOWVhYzk3MzlhZDIzZjZmNjI1MWVhY2M0MWYxYzQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1NDo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAzNTI1OTk4OiBEb24ndCB1c2UgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSBpbiBlcnJvciBtZXNzYWdlCgpjb21taXQgMzJjMTY4NmI2N2RjODVjNGExODk1NzYzNjMwNjU2MDlkZmVkNWU2MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjUyOjU2IDIwMTIgKzAxMDAKCiAgICBBdHRlbXB0IHRvIG1hcmsgcmVsZWFzZS1jYW5kaWRhdGUgYnJhbmNoZXMgYXMgc3VjaC4KICAgIE9taXQgZmluYWwtcmVsZWFzZS1vbmx5IHN0ZXBzIHdoZW4gcHJlcGFyaW5nIHByZU4vcmNOIHJlbGVhc2VzCiAgICAoUmVsaWVzIG9uIGEgdHdlYWsgdG8gdGhlIE1ha2VyZWxlYXNlIHBlcmwgbW9kdWxlcykKCmNvbW1pdCA0YzU2MzNmMTYwM2U0YmQwM2VkMDVjMzdkNzgyZWM4OTExNzU5YzQ3CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAZnJlZXNubXAuY29tPgpEYXRlOiAgIE1vbiBNYXkgMTQgMTE6NDA6MDYgMjAxMiAtMDQwMAoKICAgIE5FV1M6IHNubXA6IEJVRzogMzUyNjU0OTogQ1ZFLTIwMTItMjE0MSBBcnJheSBpbmRleCBlcnJvciBsZWFkaW5nIHRvIGNyYXNoCgpjb21taXQgNjVkZDgzYzIyNTVlZTU4ZWRiZjBlMjU4NjNlNTViNThhNDExMzY3OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MzA6NDIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBhYzRiYzY1ZTI5MDlmM2JkODVmMzJmMDRiNTA0ZmE2NWQyZjY0NTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoyODowNiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGI3NDk5NDg2NDE5NTExOWVkYjZlMTljODUxNDdmYWMwMGJjYjkzZTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjEzOjQ2IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMQoKY29tbWl0IDkxMzUwMDkyYzQ2ZTY2ZDA2ZDc0MTQzZjQ4MTY0NzNkYjRkMjUxNjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE5OjU2OjMzIDIwMTIgKzAxMDAKCiAgICBNYXJrIHZlcnNpb24tc3BlY2lmaWMgY2hhbmdlcyBfYmVmb3JlXyBwdXNoaW5nIHRvIGNlbnRyYWwgcmVwb3NpdG9yeQoKY29tbWl0IDcyNDFhY2NkNzBiODJkMGZjZDQ0ZDVhNTIzOGIyZWU5NDQ1OTAwZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUzOjE3IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgN2M3OTZhMTVhMWQxYmI4NWZlZWE5NDBiZDRlMzUxNjg3NzkyMDkxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTA6NDkgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAwN2UyNjhiZmI2NGIwZWM2NDViM2Y3ZTg3MjY2OTg0ZjkyMTdjZjEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo0NDozNyAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDE2ZWFhZjZjM2JhMTQ1OTZjYTllZmFmNGIxMTRmMWI3MDlmNDJiNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI5OjAzIDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgYzcyOTQ2OWVmMTIxNTQ5MzBjZjlkMTU5NjdlMTYxODZmYjQ0NWYzMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjc6MjAgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMxCgpjb21taXQgMTQyNTcxZDNjZWEwOGYwYzA3MmQyNGMxZDM5YTQzYzc0NDZmOGNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgZWJhODZiNmY3YWZmMjYxZWUwZTYxMzM0ZGY3MGRlNzE1NmU1YzNjYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAoKICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCiAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCgpjb21taXQgNWMwZjY0ZDZkYjJiNTkzZjdjYzBlZDJkNGY1NWI3YzU5MmI3NzRhOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MjU6MTUgMjAxMiArMDIwMAoKICAgIE9ubHkgb3V0cHV0IGNwdSB3YXJuaW5ncyBvbmNlLgoKY29tbWl0IGVlNThlNDgyN2I5ZmExNmU2NjM1Y2EwMDNlOGE0ZjExZGNiNWZiN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjE3OjQyIDIwMTIgKzAyMDAKCiAgICBGaXggc3BlbGluZyBpbiBlcnJvcm1lc3NhZ2UuCgpjb21taXQgMDNmNDg1ZGYyMmYyMGUxNDljZmFlOTRjNTdjYjgyZmVlY2I1ZDc0YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTI6MTEgMjAxMiArMDIwMAoKICAgIE5vdCBhbGwgTGludXhlcyB1c2UgcnBtIChkZWJpYW4vdWJ1bnR1IGNvbWVzIHRvIG1pbmQpCgpjb21taXQgOTMwODM4MjI0Zjc4MTY5NmJkMzUyMjVmMjI1NjkzNDc0MTZmMWIxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTA6MTUgMjAxMiArMDIwMAoKICAgIENoZWNrIG5lZWQgZm9yIC1sbSB0byB1c2Ugcm91bmQvZXhwCgpjb21taXQgYTA2MDljZjFmM2E2OTE3ZDI2MzcyNTczMjI0OGNkOTM3YTQ1YWQ5NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwODo0MDo0NCAyMDEyICswMjAwCgogICAgUmVtb3ZlIGxpbWl0YXRpb24gb24gY29uZmlndXJhdGlvbiBsaW5lIGxlbmd0aC4KCmNvbW1pdCAzMDU5NzMzMzhhNjNhZTU0YzVlMDJhODYyNmZiZTlhODA2NGRjYjdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjMyOjE5IDIwMTIgKzAyMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLgoKY29tbWl0IGNjYWI0ZTlkM2VkNDI0YzM5ZDBkYzI3YmU2M2ZhNzZjNzQ2MWVhODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MTU6MjIgMjAxMiArMDIwMAoKICAgIEludGVybmFsaXplIHRoZSBuYW1lIGFuZCBsaW5lIG51bWJlciBvZiB0aGUgY3VycmV0IGNvbmZpZ3VyYXRpb24gZmlsZQoKY29tbWl0IGNmODc0YWQ3YjlkYWY0ZmNjMGQ0NmNkZDAzNDQ3NGI0NzgwMDUzNDEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgQXByIDYgMjE6NDc6MjggMjAxMiArMDIwMAoKICAgIFJlcGxhY2UgI2lmIChBKSBCICNlbHNlIEIgI2VuZGlmIHdpdGggQi4KCmNvbW1pdCBlZjllYTY0MWJjMjkwZWVjNTA2ODViNjA1MTliMzFiZWU4YjE0YTY5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowNDowNiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCAzNWFiYTE5NTlkZTExOWYxZmI4OTIwM2MzNzEwOWFhNmYwZTIxYzU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMTowMDo0MCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKCmNvbW1pdCBlNDFmYmFmZjE4YWM5MDk1Y2Y0YTczOWEwNmVjMzlhMWE2Y2NmZGMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMDozNTozNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUyCgpjb21taXQgMTM3ZmU1ODJkNmNjNTYxMTQzMGRhYjQ2ZWYxNDRlZmQ4NGNmYzgwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgQXByIDYgMjA6NDY6NTYgMjAxMiArMDEwMAoKICAgIFJldmVydCBjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwogICAgKHNubXBfc3RvcmVfbmVlZGVkKCkgQVBJIGlzIG5vdCBhdmFpbGFibGUgaW4gNS5bNDVdLngpCgpjb21taXQgMmI3ZTY0Mjg4YzAxYThhMDYyMDI2YzUyMWNhMzFhNWU4ODVmMzBjYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MTI6MTIgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgN2U5NWQ4MGI2OTgwNTEyNTk2NDVjMDc0YTUzZmZkMjY0YTZmYTkxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTY6MDY6NTYgMjAxMiArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCiAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMWE5YjdiN2MwMmUyZGVlZmU5OTRkNTk1YTdjYzFkZDJmZmJlZWUxZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTU6NTE6MjAgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoICdyZWNlbnQnIGhlYWRlciBzaHVmZmxpbmcKICAgIEJhY2twb3J0IG9mIGM1M2Q4YzM1MjVmNTkwZjIyMTNkMzViMGRhOTQxMjM4NjJmM2UzNjYgZnJvbSBWNS01LXBhdGNoZXMKICAgIChQYXRjaCAjMzM2MzMwOCAtIG9taXR0aW5nIHR3ZWFrcyB0byBjb25maWd1cmUpCgpjb21taXQgM2Q5ZGRiNDFlMjYzYmMxYTc4ZjlmOTQ0MGI4ZDRhZDRmODZjODJlMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MzY6MTggMjAxMiArMDEwMAoKICAgIEZpeCB0eXBvCiAgICBCYWNrcG9ydCBvZiA1YjcwMmIwMjRiNjAxNzZkN2Y1Njk5YjkyZTU1ZGE1MGE4ZGVhZTcxIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgMGQzNWM2MDk1NjRiNjZhMWZmZTgxNTU2ZDM3YWRmMDUwM2MzODljZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMTA6MTU6MDggMjAxMiArMDEwMAoKICAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mIE5FVFNOTVBfUFJJbwogICAgKHVzZWQgaW4gYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jKQoKY29tbWl0IGE3OTE0MWE0MTk5NTNkMDEwYTY5ODllOGI4OGY0ZGYxMjczOTRkMzgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA5OjE5OjI2IDIwMTIgKzAxMDAKCiAgICBIZWFkZXIgZmlkZGxpbmcgZm9yIEZyZWVCU0QsT3BlbkJTRCxEcmFnb25mbHkKICAgIEJhY2twb3J0IG9mIGY3YjBkZTE1MTgwMDJjNmU4ZjliOTRlZjNkZWI4ODgyZTFlOTMzOGUgZnJvbSBWNS03LXBhdGNoZXMKCmNvbW1pdCBhZGY3NGJmNzUzZDM5NzAzNTdhZmQ2MzM4MDMyNTYyNDFkOWM3Yjg3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwODoyMDo0NiAyMDEyICswMTAwCgogICAgRml4IElQdjYgVENQICYgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0IChpbmNsdWRpbmcgT3BlbkJTRCkKICAgIEJhY2twb3J0IG9mIGNvbW1pdHMgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgogICAgICBhbmQgNTBkNzNmMGQ1NmZlMjJjNTkwNTMwYjNlMzA1ZDQxZGNkYWMzY2UwMCBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGQ5NTU1YWNiOWY0N2MzYWE4ZmRlNGJjMjBhNDRkN2NhNjE4MWE4YTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTWFyIDI1IDE4OjQ4OjEyIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCBkYW5nbGluZyBwb2ludGVycyAoYmFzZWQgb24gcGF0Y2ggMzUwMzI1OSkKCmNvbW1pdCA4MmE4YjQ3ZWU5NmU1ZDI5YTJiN2FjM2NhMDA3MjJkNzM3ZDViNDc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMTo1NiAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjozMDozOCAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBjZWNkNDg2OWRlYjY4ZjNkNGM3MWU3NjhkNWI0MGRkNTc2NDQ2OTI1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAyOSAyMjoyOTozMSAyMDEyICswMjAwCgogICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKCmNvbW1pdCBhMWE0NTEzYmQzZTRlNjE0MjAwZjZkYjVhMDJmNjFkNmM4ZWVmYjMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6NDc6NDUgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFja3BvcnQgb2YgZ2l0IGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDliZGJjY2ExMjJjMzdkYTMwNGZjNmFhNjkzOTcyOTQ3NWY5MGY1ZmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTozMDo0OSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrLXBvcnQgb2YgR0lUIGNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhKQoKY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTo0MToyNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0OTU2OTc6IFN0b3JlIHBlcnNpc3RlbnQgc25tcFRhcmdldCB0YWJsZSBjaGFuZ2VzCgpjb21taXQgMWY3NWYzNzdkMGRiMDE3NTRjMGMxNjFkYzQ0MzczMDgxYmVlZjUyMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjE0OjA2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBQQVRDSEVTOiAzNDg5Mzg3OiBJbnN0YWxsIEZyZWVCU0QgMTAgaGVhZGVyIGZpbGUgKHBsdXMgb3RoZXIgbWlzc2luZyB2ZXJzaW9ucykKCmNvbW1pdCAzZDcyYzllNzhmMmFkODE3YzlkMWQ4Mjk3NzMyN2JiYjIwZDYzYWI5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MDY6MzEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzQ4Nzg2NzogRG9uJ3Qgc2tpcCBtaXNzaW5nIGlmWFRhYmxlIGVudHJpZXMgKGlmQ29ubmVjdG9yUHJlc2VudCBGQUxTRSkKCmNvbW1pdCAxMjkwNjU3OGFiMzBjZjc3NmQwODBjMGVmMzAyNWIzMDMzNGQ3NjU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNjoxNzo0NSAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBGaXggZXZlbiBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGNjZmQ1Y2E2ZmUxMDMxM2Q2MTgxZDI0YmJiMTc5NzgyNWE5N2RhMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjUxOjE2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEVsaW1pbmF0ZSBkdXBsaWNhdGUgY29kZQoKY29tbWl0IDlmZGEyNjY4NzIyZjA4ZGRiZmRkNjdhMjIzOWQ4YjAyMWRiNjRhODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjQ4OjQ2IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IFdyaXRlIGEgbG9vcCBhcyBhIGxvb3AKCmNvbW1pdCBjYmMxOGViNzYzYmE2ZGY2OWVmNzA2NjhhNTRkNzViZjM1ZTc5NTAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNToyNDowOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDM6MjQgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHJlYWRpbmcgZnJlZWQgbWVtb3J5IHdoZW4gZGVsZXRpbmcgYSByb3cgZnJvbSBhIHRhYmxlCgpjb21taXQgYTZiZTczOTU2NmYzMTBkNzQ0MWZkN2Y1NDk4OWUzOTQ0NmY3YTE0MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTM6NDI6MjggMjAxMiArMDIwMAoKICAgIEV4dGVuZCBESVNNQU4tUElORy1NSUIgdGVzdAoKY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIxOjAzOjQxIDIwMTIgKzAyMDAKCiAgICBGaXggZm9yIERyYWdvbkZseSAzCgpjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjA6NTk6NTMgMjAxMiArMDIwMAoKICAgIERyYWdvbkZseSBuZWVkcyBfS0VSTkVMX1NUUlVDVFVSRVMgdG8gY29tcGlsZSBpcHY2IGNvZGUKCmNvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CkF1dGhvcjogRGF2aWQgSW1ob2ZmIDxkaW1ob2ZmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjQ3OjE3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzNTEwNDU0OiBBbGxvdyB0aGUgdXNlIG9mIDAuMC4wLjAvMCBhcyBhbGlhcyBmb3IgZGVmYXVsdAoKY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjIxOjM4IDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MTA6NTIgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUgcGVybCB0byBkbyBwYXNzX3BlcnNpc3QgdGVzdAoKY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXIuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDY6NDAgMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUBuYmEtbGludXguc2Iuc3RhdHNiaWJsaW90ZWtldC5kaz4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjAxOjM3IDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBmaW5kIHBhc3MgaGVscGVycyBmb3IgdGVzdGluZy4KCmNvbW1pdCBmZTI2YTNjNGYyOWYwNDZiZjY1ZWQ1MmU5ZDk0MDU0YjY3NWZiYzRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTowNDo0MiAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBMaW1pdCBzb3VyY2UgY29kZSBsaW5lcyB0byA4MCBjb2x1bW5zCgpjb21taXQgNzQ1YmFmY2RjYzljOGU4NDYxNmQ0ZTI3NGRiMmEzODRiZjIzNGRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDg6NTU6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZyBpbXBsZW1lbnRhdGlvbiBpbmRlcGVuZGVudCBvZiBudHBkIGNsb2NrIGp1bXBzCgpjb21taXQgZGE2OTI1ZTY3NjNjYWRiZTAyZjRhOGJiZmU2OGEzNjJlNTM1YWQ1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6Mzg6MzYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTRkaXNtYW5waW5nbWliX3NpbXBsZQoKY29tbWl0IGZhNjA2ZGQ3Y2E2YWZmOTMwOGQ0ZThiMDFiYmNkZTE0OGY0NDEyNzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjQ5OjIxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmdpbmcgbG9jYWwgaW50ZXJmYWNlIGFkZHJlc3NlcyB3b3JrCgpjb21taXQgNjE3YTgzYmE3OTk1NzVjODRjNjZmNmIxYzQ4MGVmNjMzMTYxYTY0YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6Mjg6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBhIHNvY2tldCBsZWFrIHRyaWdnZXJlZCBieSBwaW5naW5nIGEgcmVtb3RlIGhvc3QKCmNvbW1pdCA2MjVmNTVjMjcyZWM2MjgxZTM4ZDhlMzBlYjUzZmQ1MTUxNmIwMGFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTo1NDo1NSAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHZhcmlhYmxlIGludG8gYSBzdGFjayB2YXJpYWJsZQoKY29tbWl0IGI0OGYxOWFkNGI0YWE2OGMzZTE2ZTJhNzJkZjM3YjljMGNkMzZjNGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI0OjA3IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEFkZCBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgpjb21taXQgZDc0Y2IzOTY2MTc1ODkyNTYyZjVlM2E5YjE2ODNhY2JhMmMyMmUwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDU6MTggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBzZXZlcmFsIG1lbW9yeSBsZWFrcwoKY29tbWl0IDBiMWE3NzY3NDY3OGNjOWExNWJlM2U3NzAwZDNjZWY2NTBlZDAyYzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEyOjAwOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEbyBub3Qgc2VuZCB0aGUgY29udGVudHMgb2YgdGhlIHN0YWNrIG92ZXIgdGhlIG5ldHdvcmsKCmNvbW1pdCAxMzkwMjNjZDNhYjUxNjMxY2MxMGUyODY2ZDcxYWJjZjk5YWU0YzFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1NjowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG9uJ3QgY2FsbCBleGl0KCkgdXBvbiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgpjb21taXQgMTY5YjZhYWE3YjYxODI3Y2MxYWQwYjNhZWVhZTNhNzIyOWRkMjVkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTM6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBJUHY2IHNvY2tldCBsZWFrIGluIGVycm9yIHBhdGhzCgpjb21taXQgYTBiZTMyYWQwNTNhNzFmYTk2MTM0ZDU1ZTU0MmJiMDdkNGYwMjk3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDM6NDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIHRoYXQgaG9zdCBuYW1lIHJlc29sdXRpb24gZmFpbHVyZSBjYXVzZXMgYSBjcmFzaAoKY29tbWl0IGJmOWJmZjY0NTU2Nzg3ZDc2NmVlMmVmMmQ1NzhhZmI5MjA3MTlmM2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUxOjU1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBDb252ZXJ0IHByaW50ZigpIHN0YXRlbWVudHMgaW50byBzbm1wX2xvZygpIGFuZCBERUJVR01TRygpLXN0YXRlbWVudHMuCgpjb21taXQgNWQ3NGMwMTI0NTUyM2E5ZDhkYjFlZGEyN2QxZWZhZTJlYmMxMDRmYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6NDA6MDIgMjAxMiArMDEwMAoKICAgIE5ldyBNSUI6IFZSUlBWMy1NSUIKCmNvbW1pdCA1YjM4ZjA2MmI5OWI2ZWYzNjcwOGUyYzdkZTQ5NjVhMzE5MjYxMmU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozNDo0OCAyMDEyICswMTAwCgogICAgRm9yIHNhZmV0eSwgc2l6ZW9mIHRoZSByaWdodCB2YXJpYWJsZSBpbiBtZW1jcHkKCmNvbW1pdCBlNWY4Mjc4MmRhMDVlZmE3YzBlNmRjMmJmNWE0MWVlMTE4NjhmNDY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMzoyMSAyMDEyICswMTAwCgogICAgRml4IGZvciBoclNXUnVuIGRhdGEgZm9yIEZyZWVCU0QKCmNvbW1pdCA4MzI3NTY1ZTgyMzI3MGQxMGE0NTA0NTY4ZWRiZTViNWFlMzIzYTU1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODozMTo1NCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgdmFyaWFibGVzIGZvciBPcGVuQlNEL05ldEJTRAoKY29tbWl0IDE3MGY2ZjAyN2JmNGY5MTc0YjcwNzM1MzBkYTRkMDdmNDAwYmJhNTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjI4OjU4IDIwMTIgKzAxMDAKCiAgICBNb3ZlIGRlY2xhcmF0aW9ucyBpbiBmcm9udCBvZiBzdGF0ZW1lbnRzCgpjb21taXQgZGJiNDU3M2I2OWZhZTg1Y2RjOTMxYjI4OTJiNWNlNGU1YjE2YjMyMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MjM6MzYgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUga2VybmVsX25ldGJzZCBmb3IgTmV0QlNENgoKY29tbWl0IGYxMTY4MWYxNWFhZDdkOWE1MmZhMjk4MTJlY2JiNTA3ZjFiN2ZlMjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozNjozOCAyMDEyICswMDAwCgogICAgQ2hlY2sgZm9yIG9sZCB0YXJiYWxscyAoYW5kIHVucGFja2VkIGRpc3RyaWJ1dGlvbnMpIGJlZm9yZSBzdGFydGluZy4KICAgIFRoZXNlIGNhbiBjb25mdXNlIHN0ZXBzIHN1Y2ggYXMgIm1ha2UgZGVwZW5kY2hlY2siLCB0aGF0IGRvIGEgJ2ZpbmQnCiAgICBvbiB0aGUgY3VycmVudCB0cmVlLCBhbmQgd291bGQgZGVzY2VuZCBpbnRvIHN1Y2ggdW5wYWNrZWQgc291cmNlIHRyZWVzLgoKY29tbWl0IDQ3MGRjZDRiNmMzZmYxMWZmMGEzNTMyYTczNDBhNTZjZmZkNjkwOTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyMSAxMjozMjoxMyAyMDEyICswMDAwCgogICAgRG9uJ3QgcnVuICJtYWtlIGRvY3M7IG1ha2UgbWFuY3AiIGlmIHRoZXJlJ3Mgbm8gTWFrZWZpbGUgcHJlc2VudAoKY29tbWl0IGM5YWM0MjAzNDNlMTZkZjJiNzA2NWY1YmYyNzkwZGY0NGUyNDdmYmEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDoyNjoxMCAyMDEyICswMDAwCgogICAgQWxsb3cgZGlzdHJpYnV0aW9uIGFzIHBhcnQgb2Ygbm9ybWFsIE5ldC1TTk1QIHBhY2thZ2VzLgoKY29tbWl0IDU5OTlmNjBjNTc3MjNmMjNmM2MyNTRhZjU3ZmRiMTBhZjMwMWE4ZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDE4IDE5OjAzOjA4IDIwMTIgKzAxMDAKCiAgICBSZWdlbmVyYXRlCgpjb21taXQgMjc1ZDIwNDAzNmE2MDdlM2RmNTBlODQ0N2Q0YmM3NTVlOWRiMDJmZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMjE6Mjk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSAtLWRpc2FibGUtYXBwbGljYXRpb25zLy0tZGlzYWJsZS1hZ2VudCB0b2dldGhlciB3aXRoIC0tZW5hYmxlLW1pbmltYWxpc3QKCmNvbW1pdCBiZGNjYzg3NTcxMDI5NWFhY2Y1MGY3MWViMWMxZDJlZTk3ZjMzNmZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAyMDoxMDo1OCAyMDEyICswMTAwCgogICAgRG8gbm90IGRlY2xhcmUgdGhlIGxvY2FsIHZhcmlhYmxlcyBmb3Igb3BhcXVlX3NwZWNpYWxfdHlwZXMgdW5sZXNzIHRoYXQgb3B0aW9uIGlzIHNldC4KCmNvbW1pdCBiODBhNjdkYTA1MmFkY2ExYjVhNjQ0ZGI4M2E3ODJlMTVjMjIzN2MzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAxNiAxOTo1MDowMyAyMDEyICswMTAwCgogICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKCmNvbW1pdCBlZmFlODZiYmE1OTYyNDkxZDQyYjc3YjkzNTE5MWEzZWIyNWRkOTM5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIE1hciAxNCAwMTowNTozMyAyMDEyICswMTAwCgogICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCiAgICAKICAgIENvbW1pdCBkMzVhMTg2MDIxN2U3MjNlNGY4NjZkZDk4ZWY2NjIxNjY1OTM0YzRhIGFjY2lkZW50YWxseSByZXZlcnRlZAogICAgCiAgICA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwIChocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZSkKICAgIDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIgKENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcykKICAgIDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMgKFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlKQogICAgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYiAocGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcpCiAgICAKICAgIGFuZCBwYXJ0IG9mCiAgICAKICAgIDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIgKEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMpCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyB0aG9zZSByZXZlcnRzLgoKY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWFyIDExIDIwOjU3OjM4IDIwMTIgKzAxMDAKCiAgICBBbGxvdyBtYWtlIHRlc3Qgd2hlcmUgdGhlIHNvdXJjZSBwYXRoIGNvbnRhaW5zIHRoZSBzdHJpbmcgTmV0LVNOTVAgdG8gc3VjY2VlZC4KCmNvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE1hciA5IDA4OjA0OjU5IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgNAoKY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEzOjA0OjA3IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjQzOjE5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjMzOjAzIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucHJlMQoKY29tbWl0IDBlZjM0ZTY1MTlkZmNiODJjOTdkZjg0Mjc1NDdjMDhkY2Y4MWU2OWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA4IDEwOjExOjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgc25tcGQgJy1kJyBvcHRpb24uCiAgICAKICAgIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgoKY29tbWl0IDhlNjk3NDJmMTQzZTRmYzExMTk2ZTViMmVkNjZjOGY3ZjUzZmQwMmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjIxIDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKCmNvbW1pdCBjNGUwMGI4YzNlMTAxMGNkY2FiNWU2YzAyZDYwZDc1ZGY5YzZkY2YyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDowNSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAzOTQ5MDEwNGEzYWI1ODIzNWFhY2UyZjlkODcxYzI2NmRjNDQ4NWVlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCgogICAgaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UKCmNvbW1pdCBjZTg1ODMyOTMyY2NkOTE2YzQyMzE5MTE0YzQwODg1YTQ2NmE5ZDBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKCiAgICBNb3JlIGZpeGVzIGZvciBTb2xhcmlzIHNoCgpjb21taXQgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzIGluc3RlYWQgb2YgMC4wLjAuMC4gTWFrZXMgdGVzdCBUMTYwc25tcG5ldHN0YXQgcGFzcyBhZ2Fpbi4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YS4KCmNvbW1pdCA1MTg5MTdlOWYzOWY3YTlkM2MzYmYzYTg2NWU4YWMwZTMwMjZkNjAwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgMjY1MTkwOWNjY2VhYmZjZmFkYWY5NDJjMDI0NTBlMjhmZTgzN2RjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgOSAxMjowNDowNCAyMDEwICswMDAwCgogICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU0MWYxMTVlNDAzMDRjOTQxYmExN2Q2N2UyNDcxMDcyMmQ5MDc0MWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTM6Mzk6MTcgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtdyBhbmQgLXEgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2UuCgpjb21taXQgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzoyMCAyMDEyICswMTAwCgogICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiBSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSBpZiBpdCBpc24ndCBuZWVkZWQuCgpjb21taXQgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAwOToyMjozMSAyMDEyICswMTAwCgogICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlIG9wdGlvbnMuCgpjb21taXQgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzozOSAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA0NGFhMjY1ODkxY2Q1NjNmN2Y0MTE0ZWYyNWRjZjdhYWYzYjE0ZTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgZGFlNGUxNmJlODYxMTc4NjFmNjNkMWEyZjk4MWFkMzYxNDE4ZjVjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDI4ZjYyMjZmMmUyMjhiOGNhMjQ4NDg5NzM1Zjg2NTAyYjJjY2UwYTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0MDAyMmE2OTc5NTgyNTljY2ZiYjNmZWQ0NGViM2M0NzJmNWU4MzdlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1hciA0IDEwOjM3OjQxIDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIHNoIGRvZXMgbm90IHVuZGVyc3RhbmQgInRlc3QgLWUiCgpjb21taXQgNzczYWYwYzQyZTA3N2JlYmRhZWNmMWMwY2FmMzkzMjg1YTc2ODhmMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNzoxOTozMCAyMDEyICswMTAwCgogICAgQ2xlYW4gdXAgbnNyb2xsdXAgY29tcGxpY2F0aW9ucwoKY29tbWl0IGVlNzEwNDljM2UyMWMxZDBlMzQyNDI5NzEzNjY1MmJiZTBlMzlkODUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTY6NDk6NDEgMjAxMiArMDEwMAoKICAgIG1pYmdyb3VwL2ljbXAuYzogYWRqdXN0IGlmZGVmcyB0byBtYWtlIGl0IGNvbXBpbGUgb24gQlNEJ3MKCmNvbW1pdCBjZTk2MDAzNjFlNjY1ZGRlMTdhZjlkOGFiMTZkN2NlODVkYzA1NjQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM5OjU1IDIwMTIgKzAxMDAKCiAgICBkb3QzU3RhdHNUYWJsZSBoYXMgYnVncyA6LSgKCmNvbW1pdCBkZmZhY2Y2ZmEwNzU1ZTE3MDBjYmFjMjViODQ0MTg1YWJkODA3YTBhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM4OjEwIDIwMTIgKzAxMDAKCiAgICBwYXNzcGVyc2lzdCB0ZXN0IG5lZWRzIC91c3IvYmluL3BlcmwKCmNvbW1pdCA4NzI2OTk1YzdhOGFlZjY3NGM0ZjE2NGIxODcxYzM3YmJkY2RhZDUwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM2OjU4IDIwMTIgKzAxMDAKCiAgICBncmVwIC13IGZhaWxzIHdpdGggT3BlbkJTRCBhbmQgU29sYXJpcyAxMC02NAoKY29tbWl0IDFlYjQ3NDViMjNjYzNhODM5ODY0ZTdmNmVhMjgzNTViMDU2NmViNjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzU6NDkgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgL3Vzci94cGc0L2Jpbi9ncmVwIHRvIHVuZGVyc3RhbmQgLXEKCmNvbW1pdCA5OTU0YjRiNzQxZmQ4YzYzZDYxMjhiZDA1MjcyOThjOGU0ZTk4OWZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM0OjQ1IDIwMTIgKzAxMDAKCiAgICBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcHJvcGVyIHNyY2RpciBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKCmNvbW1pdCA3ODM2OTAwMmJlMjcxMWYwYWE4NzZiNjRhNGUxMGIwOTBjYzI0MWNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjMzOjMxIDIwMTIgKzAxMDAKCiAgICBOb3QgYWxsIG1ha2UgdmVyc2lvbnMgZGVmaW5lICQoUk0pCgpjb21taXQgOTQyNDViMjlhM2NkYTg5NDc1YzZlYWI1ZDk0OTNjNjY1N2ZmMzhlMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToyNDoyNCAyMDEyICswMTAwCgogICAgTWFrZSBhdXRvY29uZiAyLjY4IGhhcHB5Cgpjb21taXQgNDRhY2Q2YzI4NWZiNTYxNGI0Yzk2MTFiMWFiZGVjYTlkZDI4ZTRiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMToxMjo0NyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIG9mIG1pYiBtb2R1bGUgZnN5c19nZXRmc3N0YXRzCgpjb21taXQgMWZhMWZlZTM2OTNmNjdiODIwMjIzODA2YjNkNzNhZmQ0YzUwZWMxOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMiAwMTozNzoyMCAyMDEyICswMTAwCgogICAgU2lsZW5jZSBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgOTMyNjNiOThhNWRiMzQ0Y2YyYzRkNDg5YzQzOTcxZTdiMjljZGIwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTM6Mzc6MjAgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNWExNzU0MjhiOTczZDJlYTg1NTNlMjlmZWNmOTRjZjE1NjZhYTg1OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDg6MTggMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMzY0Mjc2YTFjNWFhNjZjYWEyM2ViNWI3ZjExMWZkZWI1YWY3MWZhNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTE6NDU6MTAgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5wcmUxCgpjb21taXQgNzM1OTgzNDAxNzJlZmY3NTcyOWE2ZDU3MTkyYjgxNzFkNWJiZjAwZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6NTYgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucHJlMQoKY29tbWl0IGYzMjE0NDAyNjcyY2ExOTlmZDUzMWU2NjEyMmJmOTZjNGQ5YTRlYjcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjM5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDJlNzRhY2I2ZjE5ZTQ3MjljZWRlMGFiNDNlOTMxOTYxY2IyM2FhZWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDk6MTg6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBEbyBub3QgaW5zdGFsbCB0aGUgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIHRoYXQgd2VyZSByZW1vdmVkIGluIDUuNwoKY29tbWl0IGI3MTA5NjQ2Yjk1YTcwNzEzZDFhZDk5MWQ0MWJjY2Q1N2MwYmIzZWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgTWFyIDEgMDg6NDg6NDggMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyBpbnRyb2R1Y2VkIGluIDUuNgoKY29tbWl0IDQzMmNiYjdhNTUwMWFiOTBkNjZkMGE4M2U3MzFlNzM0M2JjMDRiMzcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRmViIDI1IDEwOjEzOjE1IDIwMTIgKzAxMDAKCiAgICBDb3JyZWN0IHR5cG9zCgpjb21taXQgNmE2YzliYmM3NTg0ZjE5NmExMTg1Y2MxOTM1MjA0ZjEyMDY4MTFlZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBGZWIgMjkgMDg6NTU6MzUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEJ1ZyAzMTUyODQxOiBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycwoKY29tbWl0IGQ1MTVlMmE2ZTRjMmExYzRkODQ3MzRjYzdiMmQwYjJmYzVhODk0YWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1NjoyMSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0ODc5MTk6IEZpeCBjb21waWxhdGlvbiB3aGVuIGNhY2hpbmcgaXMgZGlzYWJsZWQKCmNvbW1pdCBhZjgzNjhlZDg4OThhNzhkMDg2OGI0N2FmNDZiYzlkYjA3ZDFjNzY0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTA6NTYgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0MTQ3NzM6IEVuY29kZSBpbnRlZ2VyIHZhbHVlIHVzaW5nIEFTTl9JTlRFR0VSCgpjb21taXQgMTllMjcxNTgwN2ZlMDZmZDBiYWVkZjg4MTY1MDExYWVlOTMzZTc1NQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE0OjA1OjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVR1M6IDM0OTA3MDg6IENsYXJpZnkgdXNlIG9mIGNvbW1vbiBjb21tYW5kLWxpbmUgb3B0aW9ucwoKY29tbWl0IDY1Zjc5NjJmOTMyYzliNzVjNWJiYmIwNDdkMWUyNmFlNjA5NzhlNTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMjoyMzozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0ODk2MzE6IEZpeCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIG1vbml0b3JpbmcgZmxhZwoKY29tbWl0IGFjMTY2MDUxYjZhMDkyZGQ0YTU5NDMyNmVjODVlMmY2OTliNjI1NDcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMTo1Nzo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQlVHUzogMzQ3NDU5MDogRG9uJ3QgbWF0Y2ggdW5kZXJzY29yZXMgd2l0aGluIHRoZSBzb3VyY2Ugcm9vdCBmaWxlbmFtZQoKY29tbWl0IDg3OWJmNzA3OWQzNGZhNDZmNmZjZjU0YTAxYzg1MDBiZWFlY2U1OWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDo0NDo0MSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0NjAzNjQ6IEZpeCB1c2Ugb2YgYmxvY2sgZmFjdG9yIHdoZW4gZGV0ZWN0aW5nIGVycm9yIGNvbmRpdGlvbnMKCmNvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MjI6MjAgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB1c2luZyAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6MDM6MjUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1NDE2ODogY29uZmlndXJlOiBGaXggYnVpbGRpbmcgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKCmNvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMDk6Mjc6MTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIGJhYnktc3RlcHMgd2hlbiBjb21waWxlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydC4KICAgIEluc3BpcmVkIGJ5IGJ1ZyAjMzQ1NDE2OAoKY29tbWl0IGVjNmEyMzAzMGU1YTIwNzJjMTljMThjMWQ5YzEyNDM4N2RhNTZiN2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDI3IDE4OjQyOjU4IDIwMTIgKzAwMDAKCiAgICBBZGQgLWxydCB0byBORVRTTk1QTElCUyBzdWNoIHRoYXQgY2xvY2tfZ2V0dGltZSgpIGNhbiBiZSBmb3VuZAoKY29tbWl0IGYxMzMyMDUwMDI5NGJiMjQwZjYzYzZkZDdkMmU5YTIyMDhlYjc0MGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNjo1Mjo1MSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb21waWxlZCB1c2luZyAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6NTQ6NDUgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydCAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgMDFjOTMwZWRjYzI1NzAwZDZiNWZiMDM3NmY1NWEyNjQyNWUxM2ZiMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjE3OjIyIDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCA5NDg0ZDgzMjAzYzRlMmQ4MjA0MTZiZTY2NWZhODMzYWE3MDQ0NGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAyNCAxNDowMDozMiAyMDEyICswMTAwCgogICAgUmV3b3JrIGNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzLgoKY29tbWl0IDJiN2YxMzQ5NTIyODYzNWQ4MTZlNThiMjE3NGRjMTI0ZGQwY2YzOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI0IDA3OjQzOjIyIDIwMTIgLTA4MDAKCiAgICBzZXQgTUVSR0VfQVVUT0VESVQgYmVmb3JlIG1lcmdpbmcgdG8gYXZvaWQgdGhlIGZ1dHVyZSBnaXQgMS43LjEwIGZvcmNlZCBtc2cKCmNvbW1pdCBlMWI5MTBiMGJlOTM0MzU4NmFlOWVkYmE2ZjQ2MDQwYWYzMTVmY2RkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDoyNzo1NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGluaXRfYWdlbnQoKSArIGluaXRfa21lbSgpOiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW5zdGVhZCBvZiBpbnZva2luZyBleGl0KCkgaWYgYWNjZXNzIHRvIGtlcm5lbCB2aXJ0dWFsIG1lbW9yeSBpcyBkZW5pZWQKCmNvbW1pdCA0NjNlZWQyMTIwZjlkMTkxYmMyMjY3MzQ5NmE0OWU4MTc0NjY0ZTRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAxMDowMzozMSAyMDEyICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAoKY29tbWl0IGMzNmFiNzFhNGUwOTZmMTZjYzVhNTU1MzNmMDgwYzlhOTQwMDk5MTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA4OjUzOjU2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCgpjb21taXQgZWRlYmRkYmE5MzBmOGIxNDcyZmEwYmQyMGZjNDEzZWY4Y2Y0NjRhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTE6MzE6NDYgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvUlVOVEVTVFM6IEZpeCBhIGJhc2hpc20KCmNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNjo1ODo0NyAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0ICVsZCB2ZXJzdXMgdGltZV90IG9uIHN5c3RlbXMgd2hlcmUgdGltZV90IGlzIGEgc3lub255bSBmb3IgbG9uZyBsb25nIGluc3RlYWQgb2YgbG9uZy4KCmNvbW1pdCBkODk3OGVjYzgyMTFiZTdjMWU3OTA1ZjFlMjE1YmIwNmRlZDI2NmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMjozMjoyNSAyMDEyICswMTAwCgogICAgRml4IHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jIGZpbGUgaGVhZGVyCgpjb21taXQgYWE3NjZkMTk2ZTUyODdmNmNhNzliNThhMzQ1YjAyNDI2MGFiYTM1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTc6MDc6MTMgMjAxMiArMDEwMAoKICAgIElGLU1JQjogZG8gbm90IHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yICg+PiAzMiBvZiBhIDMyLWJpdCB2YXJpYWJsZSkgd2hlbiB1cGRhdGluZyBhIGNvdW50ZXIgYW5kIGlmaV9pcGFja2V0cyBpcyBhIDMyLWJpdCB2YXJpYWJsZQoKY29tbWl0IGMzZmI2ZGQ5ZTZiOTllOTU0MjQ5MzE4ODk4Nzg3MWZjNTAxN2NiM2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA5OjQ1OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIG9uIHN5c3RlbXMgd2hlcmUgbW9kZV90IGlzIHVuc2lnbmVkCgpjb21taXQgZjhhM2VmMGQzZDRlNTMwMjc5OTAwMTAxMDQ5YjhkZTk4YTQ0YTZmYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0ODo1MiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYiArIHNubXBkICsgc25tcHdhbGs6IEF2b2lkIHRoYXQgc3lzdGVtIGNsb2NrIGNoYW5nZXMgKGUuZy4gYnkgbnRwZCkgYWZmZWN0IGNvZGUgdGhhdCBuZWVkcyByZWxhdGl2ZSB0aW1lCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzdXJlIHRoYXQgdGhlIHJhbmdlIG9mIHRoZSBTTk1QdjMgdmFyaWFibGUgc25tcEVuZ2luZVRpbWUgaXMgMC4uMjE0NzQ4MzY0NyBvbiBhbGwgc3VwcG9ydGVkIHN5c3RlbXMgaW5zdGVhZCBvZiAwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soKSwgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigpLCBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKICAgIENIQU5HRVM6IHNubXBsaWI6IERlcHJlY2F0ZSBhdGltZV9kaWZmKCksIGF0aW1lX25ld01hcmtlcigpLCBhdGltZV9yZWFkeSgpLCBhdGltZV9zZXRNYXJrZXIoKSwgbWFya2VyX3R0aWNrcygpLCBuZXRzbm1wX21hcmtlcl91cHRpbWUoKSwgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpLCB0aW1ldmFsX3R0aWNrcygpLCB1YXRpbWVfZGlmZigpLCB1YXRpbWVfaGRpZmYoKSBhbmQgdWF0aW1lX3JlYWR5KCkuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBzdHJ1Y3QgdGltZXZhbCBtZW1iZXJzIG9mIGRhdGEgc3RydWN0dXJlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSBhIHdhbGwgY2xvY2sgdGltZSBidXQgdGhhdCBkbyBub3cgY29udGFpbiBhIG1vbm90b25pYyBjbG9jayB2YWx1ZQoKY29tbWl0IGMxOTc2MGYzMzMzYzkyZmFjNWQ1MGU5NzY4Y2RmOTM5MjE4YmM0ODcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDE1IDA5OjQ1OjAzIDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXB2My5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCBhNmRiMjM5OTQ1ZTE5NWRlNWE5MGZhMTgzNzAwYjI3YTZlY2IyOGQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiA3IDAwOjExOjE0IDIwMTIgKzAxMDAKCiAgICBGaXggcG9zc2libGUgbWVtb3J5IGxlYWsgZnJvbSByZWNlbnQgZGVjbGFyYXRpb25zIHBhdGNoCgpjb21taXQgMGZiYmI5YTllMjkwNmE3YWY5NTY5NTcwNjFkNDg1ODc0NDYyYWVhOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo0MzowNCAyMDEyICswMTAwCgogICAgRG8gbm90IG1peCBkZWNsYXJhdGlvbnMgYW5kIHN0YXRlbWVudHMKCmNvbW1pdCBmMzA4ZDViYWZiMDVkNzhlZDQwMzBjNGVjZmYzMjRiNmNiZGE2ODBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDZmMGZjMWI3ZmMyNmEyMjU3NjNiYzY1Y2NhNTIwYTFjNTlmMDI1MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAyMDo1NDozMiAyMDEyICswMTAwCgogICAgc2VuZG1zZyBkb2VzIG5vdCBsaWtlIElQX1NFTkRTUkNBRERSIGlmIGFkZHIgaXMgSU5BRERSX0FOWQoKY29tbWl0IGRlYmFjNDk4ZmU4NDEwMTEwMTA3YTJmZTY0ZjhhZmI3NDhlZGFhMDcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDE2OjQ4OjA5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhZGRlZCBPQ0ZTMiAoT3JhY2xlIENsdXN0ZXIgRlMpIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUKCmNvbW1pdCBmYWZjOTljZDg5ZTczZWM3ZTAwYmY3MzYwZDBiNGZhNjE5NDRhNGY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE4OjM0IDIwMTIgKzAxMDAKCiAgICBTaW1wbGlmeSBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQoKY29tbWl0IDdhZjIwMTNkZThiZjFiMzc5YzA3NmRiNGUxMDQ1MDhlMTc4NzRkM2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTU6NTggMjAxMiArMDEwMAoKICAgIEZpeCBvcmRlciBvZiBmZWF0dXJlICNpZm5kZWYgYW5kIERveHlnZW4gY29tbWVudCBibG9jawoKY29tbWl0IGJiZDY3ZjYzNTMwZjVlZjBiZmM5NDhmYzU4ZGZlNmE5M2Y4Zjg2NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0MmE2NmFlZmYyNWI5ZTllZjYzNWE0MDRhZDJmNTIxMmY5ZThjZjBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ3OjU0IDIwMTIgKzAxMDAKCiAgICBSZW5hbWUgdHdvIGZ1bmN0aW9uIGFyZ3VtZW50cwoKY29tbWl0IDNmZTcyYjNiOTliN2U0YjJiOTgyMzYzZGZjNGYyZDhkMTNmNDA1OTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTM6NDk6MjIgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc25tcF9zZWxlY3RfaW5mbygpIGRvY3VtZW50YXRpb24gdG8gRG94eWdlbiBmb3JtYXQKCmNvbW1pdCBlOWRiMjY2YWU0OGQwNWE3YTZjYjVkNzFiNGJkZWE3YWQ4MDhlZjVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE3OjU3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X25leHRfYWxhcm1fdGltZSgpCgpjb21taXQgZDA4MDQ0Y2I5ZTU3MDJmYmY1NDllMTQ0MjVmNDI3OTQyNTlkOGEyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAwOTozODowNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKCmNvbW1pdCBhMDVjMjdjMjcxMWNiNDE1ODJhM2I0YzMxZTM4YjBlOTM1MzBiNjJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjUxOjMzIDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50Cgpjb21taXQgOTEwZDdiMGQ5OTE4MzYwOWI5NTI5YjA0YzNmMjkzMzBlYjY2MTAyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDozODoxMiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCkgYnkgbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkKCmNvbW1pdCA0M2E4M2Y2YzZhOTZjYzIzMTZiNzBlZWNhY2YxMjdlYjY5MTNjN2E3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDExOjE5OjE1IDIwMTIgKzAxMDAKCiAgICBVc2UgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaW5zdGVhZCBvZiBtZW1jcHkoKSBmb3IgY29weWluZyBzdHJ1Y3QgdGltZXZhbAoKY29tbWl0IDJmZTU3OWVmYjFjYjNhNzRmODI4MDNjYTMyMzkyOGY2YjhlNGI1YzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTQ6MDQ6MDIgMjAxMiArMDEwMAoKICAgIE1ha2UgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jIGJ1aWxkIGFnYWluIG9uIG5vbi1MaW51eCBzeXN0ZW1zLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZS4KCmNvbW1pdCA4ODFkZTZhYjczNTUyNzdhNWMxMTZhMDA4ZmJlNTEzMjkzYjA1MDM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDEwOjA4OjIxIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBSbW9uIE1JQiBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IDQ2Mjk5MzNjMGQzYjNmOWY0YmE1ODM1MzRmNzlhMzdmYjk2MzM4MTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMjA6MDU6MzEgMjAxMiArMDAwMAoKICAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGU5YjVhM2RlZTZmOWFmYWI4YjkwYTI5MzkyMDQwNjMyYjA3NWFkN2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTY6NTY6NTUgMjAxMiArMDEwMAoKICAgIFVzZSBTTk1QX01JTigpIGluc3RlYWQgb2YgbWluKCkKCmNvbW1pdCBhZTQ1MmM3N2I0MTExMzlkNmI1ODAwZmZjZjg4ZDQ4ZTliNDc5MmE4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjIzOjM4IDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IGM3ZDExZmEwMGY5OTk1ZGRiOWZlM2Q0OTk0YTNlOTc5MGRhMmUxODkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MTg6NDAgMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcgcGFydGlhbGx5LgoKY29tbWl0IDAwZmQ2MjcyMGVjNDU0ZjVhNjkwZGU0ZmViYTA4MjIzY2ZiMmMzZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDg6NDQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogQXZvaWQgY3Jhc2ggZHVyaW5nIHNodXRkb3duIGR1ZSB0byBpbnZva2luZyBwZXJsX2Rlc3RydWN0KE5VTEwpCgpjb21taXQgZDllMjI5ZDgxYWJlYWYxOTFlZjJjY2IwNzc4NDI4ODVjMjMwZDYyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0Nzo0MSAyMDEyICswMTAwCgogICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgZGVjbGFyYXRpb24KCmNvbW1pdCAxZTJlMmFmNmNhZTgzMGYzODFlODdhMjQ0ZDAyOWViODZiZjNmY2NlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEzOjIwOjM3IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbDogQWRkIGVycm9yIGNoZWNraW5nCgpjb21taXQgMjQxYTE0MWUzMWYxNjg0ZmM2Y2Y3MGNjNGEwMGNjZTYzNmZkMzUyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToyODozNyAyMDEyICswMTAwCgogICAgTWFrZSBjb25maWd1cmUtdGltZSBFVlBfTURfQ1RYX2NyZWF0ZSgpIGRldGVjdGlvbiB3b3JrIG9uIHRoZSA1LjQgYnJhbmNoLgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MC4KCmNvbW1pdCA2ZDlkMTRmZWFhYTJkMGZlYzY4YjRkMTU4OTQ0ZDMyY2IwNGZmMWJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjEyOjAwIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCBicmVhayB0aGUgYnVpbGQgb24gdGhlIDUuNCBicmFuY2ggZnJvbSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCA4YWJlNDllMzBjOTdjODk4M2U4M2I0NWEzNWM3MTZmZTkxZjY2YmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxIDExOjU2OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiB0aGUgRElTTUFOIE1JQiBpbXBsZW1lbnRhdGlvbnMuCgpjb21taXQgZjlmYjBhNTMzMzc1ZTE0ZGMzNzAwMjVhMGIyZmJjNzYxYmYyN2JlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAwOTo1NjowMiAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmciIGJlY2F1c2UgaXQncyB3cm9uZy4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzLgoKY29tbWl0IGNhNGE0ZmUyNWVmZDI3MTRmOGYxOTYxYjk3ODU2NjE2NTYzZjQyYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTA6MjE6NDkgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBweXRob24vYnVpbGQKCmNvbW1pdCAxM2FkYTU2NTU4YjQ0ZTI4ZDEzNTVjMGRjZTFkOTIxZjM3NDZkNTQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NTM6NDkgMjAxMiArMDEwMAoKICAgIFJldmVydCAiUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIiAtIHRoZXJlICppcyogTkVUU05NUF9QUklvIGluIFY1LTYrIGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZC4KCmNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDJmYjk5YmU5YWE4NmE2Y2EzNDliODZkNGVmOGJjNzI2ZWQ5ZjJhODIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1ODozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgZTVjMzU1ODllMGJmNDE2YmZkMDM2YmQ0NjhmNDJhYWVhYjI1ZTc4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU1OjU2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTE6MjYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVycm9yIGhhbmRsaW5nIGluIGluaXRfaWNtcCgpLgoKY29tbWl0IGMzMDM1NDlhNTlmYThjMmYyMGE5ZDhiZjFlOTg1ZmJjOGFiZGU2YTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo0NjoyOSAyMDEyICswMTAwCgogICAgUmV3b3JrZWQgX3JlZ2lzdGVyX2V4dGVuZCgpIGVycm9yIGhhbmRsaW5nLgoKY29tbWl0IDljMjBlMjdhNzAyNmZjMDMwZGEzYjMyOGI5YTJlMWI0ZjM2NjcwY2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMToyOCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMjJmZDBiZmMyZGYwZTFmNjAyMGRjM2M1MGE3NTNkZGYyOGE0NTk5YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIwOjIyIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA1ZDYxZTU3YmFmNTgwYzc4MjUyYzBhYmIwMDk4YzA3YmIwNWFmMTdjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MTc6MDUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNjM2VlYWU4MGQ3OTZmMjc1OTdjOTAxZTdmZjIwNDZjNzY5ZWY0YjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowODowOSAyMDEyICswMTAwCgogICAgTWFyayByb3dyZXFfY3R4IGFzIGZyZWVkIHNvIG5leHQgaXRlcmF0aW9uIGFsbG9jYXRlcyBuZXcgb25lIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgZnJlZWQgb25lLgoKY29tbWl0IGFmOWFiZDUzYzIzMzdjOTBhNjkxYTdiMDQ0ZmYzZjk3YzEwMDMxNjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNToxMCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgY2Y5NDY1ZjU0MTgxZTYyZTIxYTliMTAyMTkxMzExMDdhM2QyZWJmNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA0OjA2IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3ODcxZjJiMDliOGI1MmYzNGE5ZTU3Nzg0MjY2NDU5MDUzMTY1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDI6NTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDdhMzdmMzNkMzEwYzk1OTg2MDdiYzMyM2Q5YmRiZjkxYWFmNzJjOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMDo1MSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2U0NWY3MDI2MjQ5ZTQ1MzUwZWRhYWM4NTMzNzQyM2FhMGU5NWQ4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCA2MTkzNjc2MmU2NDFjMThkYjc1YWE1MTI1YTMzZTc3NmM2NzdhZGM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MTM6MzkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGZyZWVpbmcgcmVnaW5mbyB0d2ljZSBvbiBlcnJvciBpbiBhIHRlbXBsYXRlIGFuZCBhbGwgaXRzIGluc3RhbmNlcy4KCmNvbW1pdCA0OTY0Mzc0MzA0MTVmYmFmZWIxY2NkNDc3NGYxY2EwMGQ2MjdlYTFmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAxMTowNDoxMyAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzIGludHJvZHVjZWQgb24gVjUuNiBicmFuY2gKCmNvbW1pdCA1YjRhMjRjZGNlZTFiYzNkODI2MzNjY2FmZWI5NmZjZTk1MzQ5YzU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMjoyNyAyMDEyICswMTAwCgogICAgdW5pdCB0ZXN0czogZml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCBjYmYxYzkxYmFmNzE5MWJlNWZhMjdkODFiY2Y4NzE0MzMxYTJjMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDo0MiAyMDEyICswMTAwCgogICAgVXNlIHNubXBUYXJnZXRQYXJhbVRhYmxlX2Rpc3Bvc2UoKSB0byBmcmVlIGEgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0LgogICAgCiAgICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmLgoKY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjMxIDIwMTIgKzAxMDAKCiAgICBIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAzYTc2YjQzZTExZmZmYWRhNjMyZmNjYjg0OGFiNTAwZTg3NmFkNDhiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNjoyMTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBBdm9pZCB0aGF0IGFuIFNOTVAgc2V0IHdpdGggVXNlRW51bXMgZW5hYmxlZCBjYXVzZXMgYSBzZWdtZW50YXRpb24gZmF1bHQKCmNvbW1pdCA4NGRlYzlmYTkyYjBhYTJkNThlYjcwMjAzMzBmNGY5OGU1MTU0MzIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDozODoyMSAyMDEyICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IG1vc3QgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCAzOGNmMjE4YzNmMWE3Mjc3ODZlMjI3YTVkM2ZiMTg2ZmQwZjFhMTVmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6NTA6MTMgMjAxMiArMDEwMAoKICAgIEZpeCBhIHR5cG8KCmNvbW1pdCA0NTQxMjIyNDQxMjJiZmRiNmY2N2NhYjMxMjU2ZDdiNDYzNzJlOWUxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MzA6MTggMjAxMiArMDEwMAoKICAgIEZyZWUgdG1TdGF0ZVJlZiBvbiBlcnJvcnMuCgpjb21taXQgMDExOTAyMmRhYTU5YzczYmZlYzBkYTIzODZkMDYyOGYxNGU2ZGFiNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIGZpbmdlcnByaW50IHdoZW4gaXQncyBub3QgbmVlZGVkLgoKY29tbWl0IDBlODRjZDMwM2EwODI2N2RlYzc4ZjZkODFjOWJiMDdlM2Q4M2ExMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0ODoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDYzZGM4NDZhNzk0OWNlNjk3YjNlMjhjNTQzZGMxMTA1ZTYzYTIyNTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowODoyOCAyMDEyICswMTAwCgogICAgRnJlZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludC4KCmNvbW1pdCBjZTFmMjg0YTYzZWI4MTY0NGIzZTMyNjA2Y2JlMzliNjdlMWRmZjJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6Mzc6MDkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3ZTIxNDEzY2E2ZjJlZmQ3YTNhZmI2MmM2MmI2NDQ4ODFiOGJkMWU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDY6MzAgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGFsbG9jYXRlIGFuZCBmcmVlIGVuZ2luZUlELgoKY29tbWl0IDM0Yzk2Mjg4MjYwN2MzNjM4YTJmYTI1YTJhYzUzMTQ5MmQ3MWM3ODcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzozNzoyNSAyMDEyICswMTAwCgogICAgRnJlZSBsb2NhbGx5IGFsbG9jYXRlZCB0bVN0YXRlUmVmLgoKY29tbWl0IGY1N2FlNTMxZGM1NjU4YWJjZDY1YjE2Mjc2MTU1MjUyMzhkMTZkMmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoyMDoyNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDUzNmJjNTc1NTZjMzE0MTU2MWVhNGExOTQ4MTBiMTYyOTBhNjkxZWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzoxNTo0NyAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nLgoKY29tbWl0IGEwNzc3ZDMwN2RiY2FmMjE5ZWUwMTg0YTBmYmFiOWQ0ZTVkNmFhMGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzowMTo0NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDhiOTdhNzFjOGU3OTU5NDI4ZWI0ZDRlOGQ5MGU5MDk2ZDQzZmYwOWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1NzoyNiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJjMTUwN2MyMjAzMDU0OWFlNjYwYzBlMjExZmJkYzVjNzVlYzVjNTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1Mzo0NyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDY1ZjJiN2JjZDRmZTAzOTA2YWExYTExNWFiNjBhODliOGFlOTMzZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMjo1MTozNiAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlcyBvbiBlcnJvci4KCmNvbW1pdCAwZTUyZTRmNjZkNDQ3NjZiZWEzNzQ3MzU1NmM3OGU1MjE5Yjk1NDYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDU6MzMgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6NDI6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA3NDhkYTg0YjFmZDY1NGUzMzhiYzcwMWU4ZjllNWRhMjI5MTg3ZjFjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MzI6MDQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBlYjIxNzE0NmZkNTQwMzZlYTQyMDJiZmVmNzhiYmY3NzRkN2UzODJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MjM6MTAgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA5YmEzOGVlYzY2MTM4ZWMxZjYxM2VhOGQwNGUxNTgxMzBjNzEyMWJjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTg6NTUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBkOWQ5MzhkMzAxOGMyN2Y1MzI3N2JjNWU1OTU3ODUwMDQ5MGMxZDA5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTY6MzggMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZSBvbiBlcnJvci4KCmNvbW1pdCBkNWU4MTdkNWJkNTE4ZDlhYzZhMGQ2MGUwZTE0MWRkNjRmMjdhZDE5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MTQ6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYWU2OGYwNTlkZjlkNzRiMDc0ZDEyZjU5YzE4NDc0NjZlZDU3NmNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTU6MDM6MTcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCBhMDBmM2Q0NjExMjFiNTQ1YWVkNzJhYzEyYjI0Mzg3OTFkY2ZjNGJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6NTg6MzkgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1OTg4NGJiNGQzNWFkMTM3NDdmZmE2NzIzNDM2ZGNhNTg3YTlhYjc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDk6MTIgMjAxMiArMDEwMAoKICAgIEluIGFib3ZlIGNvZGUsIG9sZW5ndGggaXMgY2hlY2tlZCwgc28gbGV0J3MgY2hlY2sgaXQgYWxzbyBoZXJlLgoKY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+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+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxNzowOCAyMDEyICswMTAwCgogICAgRml4ZWQgcGxhdXNpYmxlIHN0cmluZyBvdmVyZmxvdyBiZWZvcmUgcGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCmNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTE6MDIgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgKGluc2VjdXJlKSBTTk1QX01BWFBBVEggaW4gbWtkaXJoaWVyKCkKCmNvbW1pdCA4MDE2ODkwYTQ0NWY2YTdlMmE4NzNhMDQ4NzNkNGUyN2I2ZWU2NGUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6NDg6MzQgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIGludGVnZXIgc2l6ZSBvbiA2NCBiaXQgcGxhdGZvcm0uCgpjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjMxOjM2IDIwMTIgKzAxMDAKCiAgICBTZWN1cmUgbWtzdGVtcCgpIHdpdGggdW1hc2soKSAtIG9uIHNvbWUgaW1wbGVtZW50YXRpb25zIGl0IGRvZXMgbm90IHNldCAwNjAwIHBlcm1pc3Npb25zIGF1dG9tYXRpY2FsbHkuCgpjb21taXQgMjAyNTIzY2E3MDRiZDcyMmRjMWFjMGUxZTZiMGU0YjRlNTQyNDQ5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjExOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nICdjJyBiZWZvcmUgTlVMTCBjaGVjay4KCmNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MDg6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgMmY0ZTZhY2Q3MTQxODNmMDE1Yjc2MzY1N2Y4ZjA4NDU5MzM1N2UyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTA6Mzg6MTYgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IElnbm9yZSBwZXJsLyoueW1sIGZpbGVzCgpjb21taXQgYzM2NWQ4MGMxNmMyZDE3YjE2MDAxMWU4YzFmOWNiOTU4OTU0ZTlkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMDg6MzQ6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRG8gbm90IGludm9rZSBzaHV0ZG93bl9wZXJsKCkgZnJvbSBpbnNpZGUgdGhlIFNJR1RFUk0gaGFuZGxlciBzaW5jZSB0aGF0IGZhaWxzIGlmIFNJR1RFUk0gaXMgcmVjZWl2ZWQgd2hpbGUgYSBQZXJsIGhhbmRsZXIgaXMgYWN0aXZlLiBCYXNlZCBvbiBhIHBhdGNoIHBvc3RlZCBieSBKb2VsIEF2bmkgPGphdm5pQGFydWJhbmV0d29ya3MuY29tPgoKY29tbWl0IGQwNTlmYjg3OGIxNDM2NTk5OTUzY2VhNWEwNzc0OTlkZGNkY2JjYjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTc6MDM6NTUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0MDc1MjogSUYtTUlCOiBSZXBvcnQgaW50ZXJmYWNlIHNwZWVkIGNvcnJlY3RseSBmb3IgRXRoZXJuZXQgaW50ZXJmYWNlcyBpZiBvdGhlciB0aGFuIDEwIE1icHMsIDEwMCBNYnBzLCAxIEdicHMsIDIuNSBHYnBzIG9yIDEwIEdicHMuIEFkZCBzdXBwb3J0IGZvciBOSUNzIGZhc3RlciB0aGFuIDY1IEdicHMuCgpjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNjoxNyAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzCgpjb21taXQgZTMyNWVjYmZjZTc3ZjAwYWM1Y2Y2ZmJkOTU3Zjk1NDk1ZjYxYzU5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCgogICAgU3VwcHJlc3MgdW5pbnRlcmVzdGluZyBEb3h5Z2VuIHdhcm5pbmdzCgpjb21taXQgYmU5MTYxZDNhNTg5OGU4NjM3NjdmOTI2NjEzNDg2MTI2YzJjYmY2NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjozNTozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIG1hbmlwdWxhdGluZyA2NC1iaXQgbnVtYmVycy4KCmNvbW1pdCA4NmU0YzJiZTA4NTJhMGExM2IwNjAzMDc1NzIwYjMyNjRlYzcwZGRlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjI5OjExIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIGl0IGV4cGxpY2l0IHRoYXQgTUFYX1NVQklEIGlzIGFuIHVuc2lnbmVkIGNvbnN0YW50Cgpjb21taXQgMzdlMjcyZDhmN2I3MTgwYmExNDBmYTM4NmE1ZmYwNTg5NjhhMDhhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxODoyMTo0OCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IElGLU1JQjo6aWZUeXBlOiBSZXBvcnQgdHlwZSAiaW5maW5pYmFuZCAoMTk5KSIgZm9yIEluZmluaUJhbmQgaW50ZXJmYWNlcyBpbnN0ZWFkIG9mIHR5cGUgIm90aGVyICgxKSIuCgpjb21taXQgMjY5OTMyZmEzMmM3Y2Q0Nzk1NzQ4OTY5OGUwOWJlZTMxZjYzYjdhZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNDo0MiAyMDEyICswMTAwCgogICAgRml4IGFuIE1TVkMgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDBkMWMyMWY5OTkxZDEzMDlkMDU3ZTNlNDA1NmQ1NDdkZjdkNDBlY2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTY6MDY6MzEgMjAxMiArMDEwMAoKICAgIE1ha2UgZGVjbGFyYXRpb24gYW5kIGRlZmluaXRpb24gb2Ygc3RybGNhdCgpIGNvbnNpc3RlbnQuCgpjb21taXQgMGMzZDRkYmIwYTljZjViMzU5ZjcwYjJmMTk5MTU0OTU1NTRmODQwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNToyMzoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogV2luMzI6IHNubXBkOiBSZW1vdmUgZGxtb2QKCmNvbW1pdCA4OTNlY2M5N2I1ODc2NjEwNDViZWNiZTA5YTMyMGMxYmNiYzcxYzdjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM2OjU5IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdCgpIHRvIHRoZSBNU1ZDIGJ1aWxkIGluZnJhc3RydWN0dXJlLgoKY29tbWl0IDNkMTI2NDIyZTYyNTcwMmI5ZDNmYTA2NzZhOTdlYzVjYjIwZDlkMTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MDE6MDYgMjAxMiArMDEwMAoKICAgIE1ha2Ugd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggY29uc2lzdGVudCB3aXRoIGl0cyAuaW4gZmlsZQoKY29tbWl0IGFmNTNiNzZjMmZmYTc1MWUzOTU4ZDBmYzVkODI3OWY3OGMyYzFjMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6NDM6NTUgMjAxMiArMDEwMAoKICAgIFNraXAgVDA2NnBhc3Nfc2ltcGxlIGFuZCBUMDY3cGFzc3BlcnNpc3Rfc2ltcGxlIG9uIE1pbkdXCgpjb21taXQgMzVhOTJlNjkzZDEzM2E1YjExZTllOWI1OTlkYmY0N2VkZWY0OTMzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAwODoxNjozNiAyMDEyICswMTAwCgogICAgUmVtb3ZlIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYyBhZ2Fpbiwgd2hpY2ggd2FzIGFkZGVkIGFjY2lkZW50YWxseSB3aGlsZSByZXNvbHZpbmcgbWVyZ2UgY29uZmxpY3RzIChjb21taXQgMWQ3OGY3ZDViNThhZWQyYjUyYzRkMzg2YTdiYTgwYTQ0NzExYmFjYSkKCmNvbW1pdCBhOWIwNzNlYTNiNmNlZGY3MTNlMzA1ZTdiMTVmMjhhZTU3YmZkZjFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE3OjQ3OjExIDIwMTIgKzAwMDAKCiAgICBGaXggNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgN2U4OTBkYWQ5NWY1NjYwNjllZTI4MDIxNWE0ZmVhM2YwZTJlMzk4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNjozODo1MCAyMDEyICswMTAwCgogICAgQXZvaWQgYSBTSUdTRUdWIGlmIGNwID09IE5VTEwuIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4LgoKY29tbWl0IDFmNjIwMGNmZTFiMGIyN2ViYjA5M2ExNjA2YjU5MmY5ZTk2ODRiZTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6NTM6MzQgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNgoKY29tbWl0IGMzMTI2YjE0MzkyMWZhYmVhYzQ0MjE2NmVjYTViNWI3NDJmZDQyYzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTU6MDI6MzkgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbW9zdCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS41Cgpjb21taXQgYjI0ZWU3YzkwOTY1N2RiNDNiZDhjNWQ4YzAxMDU1Y2EwODgzYzljZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwODo0MDozOSAyMDEyICswMTAwCgogICAgRWxpbWluYXRlIG1vc3Qgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgY2FsbHMKICAgIAogICAgVXNpbmcgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgaXMgZXJyb3IgcHJvbmUgLS0gc2VlIGFsc28KICAgIGh0dHA6Ly93d3cuZ3JhdGlzb2Z0LnVzL3RvZGQvcGFwZXJzL3N0cmxjcHkuaHRtbC4gSGVuY2UgcmVwbGFjZQogICAgYWxsIGludm9jYXRpb25zIG9mIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpLiBSZXBsYWNlCiAgICBzdHJuY3B5KGRzdCwgc3JjLCBuKSBjYWxscyBieToKICAgICogc3RybGNweShkc3QsIHNyYywgbikgaWYgdGhlIGdvYWwgd2FzIHRvIGF2b2lkIG91dHB1dCBidWZmZXIgb3ZlcmZsb3cuCiAgICAqIHNwcmludGYoZHN0LCAiJS4qcyIsIG4sIHNyYykgdG8gY29weSBhIHByZWZpeCBvZiBzcmMgdG8gZHN0IG9yIGlmIHNyYyBpcwogICAgICAgIG5vdCAnXDAnLXRlcm1pbmF0ZWQuCiAgICAqIG1lbWNweShkc3QsIHNyYywgbikgaWYgc3RybGVuKHNyYykgPj0gbiBhbmQgbiA8IHNpemUgb2YgZHN0LgogICAgKiBzdHJjcHkoZHN0LCBzcmMpIGlmIG4gPiBzdHJsZW4oc3JjKSBhbmQgbiA8IHNpemUgb2YgZHN0LgoKY29tbWl0IDZkOTViYzQxNDk0NzI5MzEwMDU0NzVjMzBhNTQxZmVkNTUzNGRhMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTE6MTk6MTYgMjAxMiArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyB0cmlnZ2VyZWQgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIHhzIHNvdXJjZSBmaWxlcwoKY29tbWl0IGJhZDA2MDBmNmVjOTQ0ZWY4NDU1ZTMyN2NlNzg0YjliMDdkMjQ3YzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MTMgMjAxMiArMDEwMAoKICAgIEFkZCBjb25maWd1cmUgdGVzdCBmb3Igc29ja2FkZHJfdW4uc3VuX3BhdGggc3VjaCB0aGF0IHRoZSBjb20yc2VjIHRlc3QgaXMgcnVuCgpjb21taXQgOTJhMzJhYzQ4NjZhNWVkYzdmMzQ3ZDM3OTQyYmYwMjhkZTAyNzYyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoyOSAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA4M2U0YzBlMzA0ZjYxN2NjYWM2NjEwZWRkNzRkMTcwNjc5N2JiZjUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE1OjM3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgYSB0ZXN0IGZvciBzZV9zdG9yZV9saXN0KCkKCmNvbW1pdCA0ZmFlNTg1MjEwM2VjMzg5M2FkNDg4YmMwZDkwNWNhNjkxNDU5NWVmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE3OjE1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSB0aGUgc2Vfc3RvcmVfZW51bV9saXN0KCkgaW1wbGVtZW50YXRpb24KCmNvbW1pdCBiMzIyMmJiMjc1ZjJmMjM0NmUwZmQwNDc4YWZhMmVmYjYwMDc3M2U1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDA5OjE2OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZWNsYXJlICJ0eXBlIiBhcmd1bWVudCBvZiBzZV9zdG9yZV9saXN0KCkgLyBzZV9zdG9yZV9zbGlzdCgpIC8gc2Vfc3RvcmVfZW51bV9saXN0KCkgY29uc3QKCmNvbW1pdCAwMjJmODQwZmJmY2IwZTI2YjA4ZjBlNTU3MjgyMzFmNjExNDk1ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE5OjU1OjU2IDIwMTIgKzAwMDAKCiAgICBBdm9pZCB0aGF0IFZhbGdyaW5kIGNvbXBsYWlucyBhYm91dCBzZW5kaW5nIFVEUCBkYXRhCgpjb21taXQgNjcyYTgwOWMyMjhlOTU1MGI5OWI4OTEwYmU3NWQwYjE2MTk4NTQwMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzozMzowOSAyMDEyICswMDAwCgogICAgRml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAyNGZmMjYwYWQ4OWNlMmFhMzYxYTU1YzdjNzJlOTE2MDMxZGVmZTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjExOjI0IDIwMTIgKzAxMDAKCiAgICBDaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBzbm1wX3NldF92YXJfdmFsdWUoKSBhbmQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKCkgZnJvbSB1X2NoYXIqIHRvIHZvaWQqLCBsaWtlIG9uIG1vcmUgcmVjZW50IGJyYW5jaGVzCgpjb21taXQgYzZjYTczN2ZiNDZmOTBhNGJkYTVkNDM3MzRhYWMzNGU4MzdhMDVmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMTMgMTk6MDc6MzcgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBmNTA0Y2UyZDc0YTRiYzg4ZjY4Y2M5NTE1ZmE3MDUzMzczY2IxNWI1LgogICAgKEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUgcGVybCBzdWJkaXJlY3RvcnkuIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4pCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCXBlcmwvQVNOL0FTTi54cwogICAgCXBlcmwvT0lEL09JRC54cwogICAgCXBlcmwvU05NUC9TTk1QLnhzCiAgICAJcGVybC9hZ2VudC9hZ2VudC54cwoKY29tbWl0IGQyMTJkYzk4NGVjMzRlNGQyMzA2MjVlNDZlNThiMGM2MjhhNTBkZjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6NDY6NDkgMjAxMiArMDEwMAoKICAgIFNOTVAueHMgY29tcGlsZXIgd2FybmluZyBmaXhlcwoKY29tbWl0IGJhY2VlYmIxMGQ4Y2FmNWRiNjNjYzM2OTM1ZmVkNjVlZTkzMTAyOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTY6MjI6NDQgMjAxMiArMDEwMAoKICAgIEFkZCBkZWNsYXJhdGlvbiBmb3Igc2h1dGRvd25fc25tcE5vdGlmeVRhYmxlKCkKCmNvbW1pdCBmN2Y5NjZhYmQ2ZDI4NDliMTMzMTI1MmFmZTVjNDczZTVjNDBiMzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE0OjI0OjMzIDIwMTIgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2hlcy4KCmNvbW1pdCAzMDNjMDE1YmNmZTlhZjBiMTU0ZTk4ODFjN2I0ZjQ0OWUwOGYzMGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIyOjA2OjIzIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZDNlYjJiNWNlZDIyYTg0ODAwNTNjZTQzYWNmOTczOTcyOTA1NTQwNAogICAgKFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudCAvIGZpeCBmb3JtYXQgc3RyaW5nIG1pc21hdGNoZXMsCiAgICBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L2FnZW50X3N5c09SVGFibGUuYwogICAgCWFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwogICAgCWFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCiAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgKCmNvbW1pdCBkOTViNDA0MDY5MTZiZGE1YjQ4YjVhNjEzMWJlYzI3Yjg2NmIwYTc5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSA2IDIxOjU5OjIwIDIwMDkgKzAwMDAKCiAgICBCYWNrcG9ydCBhMmE3MzE2YzMxMGYwZmNjMzcyODY3M2ZhMDQ3MDUxYzIzYjcxOTYwCiAgICAoVHJpdmlhbCB3YXJuaW5nIGZpeGVzLCBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgIAlhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMKICAgIAlhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jCiAgICAJYWdlbnQvc25tcGQuYwogICAgCXNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jCgpjb21taXQgZDg2YzQ3ZjAwM2ZkYzE5MmJjZTdiNDZhYzRmMDZiMDllMzg3YzEyYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6Mjk6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwbwoKY29tbWl0IGJlZTRkNzljZjRlYjdlMGE0NTM5N2Y1OWI1Mjk4ZGE2MzNhOGUxYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjE0OjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KCmNvbW1pdCAzZGMwZTAwYTJmZDhlMzRmZTFhZTMzZWNhYmYzNmUxNDY0NjBhMzFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjo0MDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgJ3Rva2VuJyBpcyB1c2VkLgoKY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjI4OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBvZmYtYnktb25lIG1lbXNldC4KCmNvbW1pdCAwZjUzNjk1MDQ0ZGQzZjBjMzUwNzc1M2UzZjhjMjlkOTdlOTY4NzJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAzIDIxOjM4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKICAgIAlhcHBzL3NubXB0bHMuYwogICAgCWFwcHMvc25tcHRyYXBkX2xvZy5jCiAgICAJc25tcGxpYi9kaXJfdXRpbHMuYwogICAgCXNubXBsaWIvc25tcF9jbGllbnQuYwogICAgCXNubXBsaWIvc25tcF9vcGVuc3NsLmMKICAgIAlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jCgpjb21taXQgMDE1MzgwNWM5OWI5MTk3MzY1OTM1YzVkMTFhZTljM2Q0YmZhYTBmMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0ODo0MSAyMDEyICswMTAwCgogICAgRml4IGEgc2V0LWJ1dC1ub3QtdXNlZCB3YXJuaW5nCgpjb21taXQgM2Y4ODg1ZmJlZTk0MDc3NDhmYzJmMDU3MzcyOGExMWJhMmJjMDIzYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDI4IDA1OjUxOjEzIDIwMDkgKzAwMDAKCiAgICBSZXR1cm4gYSB2YWx1ZSBmcm9tIHNwcmludF9yZWFsbG9jX3ZhbHVlIGV2ZW4gaWYgbm8gc3VidHJlZSBpcyBsb2NhdGVkLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzU3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiMWVhYWYzMDIzNjlmZDQ1NTJlOGZlZTdiNmE4MDUwOTFlYzBhOWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozODo1MSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZmluZF9zZWNfbW9kKCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjMxOjIyIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBzbm1wX3Nlc3NfdHJhbnNwb3J0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDVkMWQwYTc0NGFiMzBjOGU2NDVjM2I4NTA2Y2JiZDJjY2ViM2QyNzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjA0OjQ4IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBuZXRzbm1wX2V4dHJhY3RfaXRlcmF0b3JfY29udGV4dCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCAyOTllYTlhODljM2YxNzU4YTc3NDhiYjliMzQxMWY2MmYyYzcwZjg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1NDo1NSAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgZm9wZW4oKSByZXR1cm4gdmFsdWUsIGp1c3QgaW4gY2FzZSBvZiBzb21lIHJhY2UuCgpjb21taXQgOTBmMWFlNjc1NzkxNzQ4MTYzNmVlZjc3MTAwY2FlZWI1M2VkZmUwMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDowNjo1NiAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQuYy4gU291cmNlOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9jdnN3ZWIuY2dpL3NyYy9saWIvbGliYy9zdHJpbmcvc3RybGNhdC5jLgoKY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjUwOjU2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBzdHJyY2hyIHJldHVybiB2YWx1ZSBjaGVjaywganVzdCB0byBiZSBzdXJlLgoKY29tbWl0IDE5OWEwNTExZjZlYjBlZjNmZjFkOWY5MjJiNzkwYWI2N2RmZGUwMWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MzE6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBzbXV4OiBzaW1wbGlmeSBzbXV4X2xpc3RfZGV0YWNoKCkKCmNvbW1pdCBkODgzNTczYWE3M2UwZjVmYzE4OGFjZWRlZTY0NTFmOTVkYWU5MDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjIzOjA2IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGludHJvZHVjZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgN2I3YTNlYjI1MDA1MjdlYWExNjk5Mjg3YTZjYTZmY2M0Y2MyZTA4YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAwOTo0MDowMiAyMDEyICswMTAwCgogICAgRml4IGEgYnVpbGQgZXJyb3IgY2F1c2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDJiNmMxMTlmZWQ0ODQ4ZGE2NjYzYzExZjBjMmNiZGMyOTkyMWI1YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjUxOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbmV0c25tcF9kc19nZXRfaW50KCkgZXJyb3JzLgoKY29tbWl0IDZjZTUzNjBjYWE0YzlkZTUxYWRlNTc4NzllODNmOTZiZDA0YjRjNWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjQyOjIzIDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2aWV3LgoKY29tbWl0IGIzYmM1NGJlZDMxNjkwYTg1ZGYyYWNmYmYzMjk2ZGE5M2E5ZTg5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjIzOjE3IDIwMTIgKzAxMDAKCiAgICBDaGVjayBzb2NrZXQoKSByZXN1bHQuCiAgICBBbHNvIGNsb3NlIHRoZSBzb2NrZXQgb24gZXJyb3IuCgpjb21taXQgOTIwNzVmNTFjZDQ1YTM4Y2EzODc2MGIzZmZlODJlMTY1NTllOWMyZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MTg6MjYgMjAxMiArMDEwMAoKICAgIENoZWNrIG9wZW4oKSByZXN1bHQuCgpjb21taXQgNjY2NWQ1ZmUyZmM1NjlkNmZhODU0ZDFkNzhlMzQ3YmJhYzY5ZTA3MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjI6MjIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgYTY2NDhjNTQ1M2UxZWY4ZGFjNTdhMzhlZmNjMDBjY2U1M2JmOWU0ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjA6MjcgMjAxMiArMDEwMAoKICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCgpjb21taXQgZDY4ZGNhZTBmMThkNTU0NTcxYWVmMzIxOTQ0YTUyOTA1NDhkZGU4NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTY6MTEgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZmI2ZjgwYzBmZTNiYTM2ZTU2ZjViOTExYTQ3ZTNmNmYzMmJhMjY2ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTQ6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGV4aXQgY29kZSBvZiBlbmNvZGVfa2V5Y2hhbmdlIHdpdGggd3JvbmcgYXJndW1lbnRzLgogICAgQWxzbyBhZGRlZCBhIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDMxMzBlMjRmZGMyMzI0NjRkZDdiYjIxNmY0NmNhZmEyZTBlNzc1YTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA5OjU0IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBtaXNzaW5nIGJyZWFrCgpjb21taXQgMThjMTI2YTk1NjVjYjRkNjlkNzUxM2I5NDRhMjEwNTU4ODA0NWQzNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDc6MjkgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgNmQzMWM4MjA3MGEyYzY4ZmUzYzUxOWU5ZDU2ZmEyNzc5NTU0ZDAxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDE6NTMgMjAxMiArMDEwMAoKICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgZGM2ZjBlMmU1NDliNGNkMDYxZWJjMTkwMDg0YjFmYzc3YTU1ZjQwZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzI6NTkgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgZGFiMzI4NjdlZDBiOTkzMDFlZmQ3YjhkODUyYWQxMjg4YTE4NGJlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MzA6MzMgMjAxMiArMDEwMAoKICAgIEZpeGVkIFFVSVRGVU4gdXNhZ2UuCgpjb21taXQgYjFhMmJjZjY0NjE1ZWI2NmJjMjRkNWJlNDk1MGU0NTAxMjk2MjA0NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTg6MDMgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYjJiMWM4NTFiOTRmZWQzN2MzODZlYWExYmZlYWQ1Yzc3Njk2ZTNlZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTM6MTQ6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCgpjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6NTg6NDYgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGZvciBmYWlsZWQgcmVnaXN0ZXJfbWliLgoKY29tbWl0IDU5NDlmMDU1YzE2YWU2NTA2MTVhYWU3YTFmZWUzZjJkN2IxNmQ5NDAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjI5OjU5IDIwMTIgKzAxMDAKCiAgICBNYWtlIE1JQiBmaWxlIHBhcnNpbmcgYW5kIGRldGVjdGlvbiBtb3JlIHN0cmljdCAtIExBQkVMIGlzIHJlcXVpcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgTUlCIGZpbGVzLgoKY29tbWl0IGU0YjY3MzY4M2M2OGJhOGIzYWJjMDQwYjkxMjVlYzMwNDY0M2NjN2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjM6MDA6MjQgMjAxMiArMDEwMAoKICAgIEFzc3VtZSB0aGF0IGxpYmRsIG1pZ2h0IGJlIGluIEFHRU5UTElCUyBvciBTTk1QTElCUyBzbyBwcmVhZGQgdGhlbS4KCmNvbW1pdCBiMTNjMWU1N2JlZGJhNzliODA2MTAzYzc0ZjE5MjFkNTNhNzA2YjM4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIyOjU1OjA2IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgcmVxdWlyZSB1Y2Qtc25tcC9kbG1vZCB1bmxlc3MgaXQgd2lsbCB3b3JrLgoKY29tbWl0IDI3ZGNlYTBkNWY4MDFkZjQ5NGFiMmNiNWM1YzBlYmU1NGViMGRjZDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjQ4OjI5IDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgcGF0aHMgZm9yIHRlc3QgcmVzdHJ1Y3R1cmUKCmNvbW1pdCAxNGI2MGU4NWExYjU3MDBlOTNkMTI2ZTJmMjkxZDVjNDg1ZjM0ZTM2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDoxNDoyOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRsbW9kIG1vZHVsZSBmYWlsIHJhdGhlciB0aGFuIGdlbmVyYXRlIGEgZHVtbXkgbW9kdWxlIGlmIHRoZSBkbG9wZW4gZnVuY3Rpb24gaXNuJ3QgYXZhaWxhYmxlLgoKY29tbWl0IDk4YTk3NTM4ZmMxZTlmZjQ2YjYwZDVkOTY5MzQ3NDQ0NTc4Mzc4YzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDEzOjM1OjEzIDIwMTEgKzAxMDAKCiAgICBBZGp1c3QgdGhlIHBhdGhzIHRvIHN1cHBvcnQgdGVzdGluZyBldmVuIGlmIGJ1aWxkZGlyICE9IHNyY2RpcgoKY29tbWl0IDg4ZjBhZjNjZmI5MTZhZTU4NjNjYzI5ODYwNzFkNDM1ZjIwYzMwNjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDExOjM3OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZXMgJ3AnIGFuZCAnbGVuJy4KCmNvbW1pdCAwODE1YTc1MzZjNzZmN2U0ODQyNjM4NjgzZjY3NDg5NGExYThjZTE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6NDI6NTQgMjAxMSArMDAwMAoKICAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIFNldFVuZG8gcHJvY2Vzc2luZwogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDU0NDAKCmNvbW1pdCBlYjJhYjIzNzQyY2E4NmMwYjg5Y2NmZTkxZWI2ZWEzNzRiZjNhY2MxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTQ6Mzc6MzEgMjAxMSArMDAwMAoKICAgIENoZWNrIGZvciB0aGUgZXhwZWN0ZWQgZXJyb3IgKEVQSVBFKSBvbiBjbG9zdXJlLgogICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDc0NDQKCmNvbW1pdCBhYWMxMGJjNGYwNTNjMDE0ZjM4MmQ2NTkzZmMzMmFiOTVlMGIxYTU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjkgMTI6NTk6NTIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0NjM3Njc6IEhhbmRsZSBwYXJzaW5nIHN1YmlkZW50aWZpZXJzID4gMl4zMQoKY29tbWl0IGJiYzAyZTM2ZTkwYzFhYWI3ODk4NTYyZjk2M2Y1Y2FkYjI2ZTEwYmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNzoxNToxNiAyMDExICswMDAwCgogICAgTW92ZSBwYXNzL3Bhc3NfcGVyc2lzdCB0ZXN0cyB0byB0aGUgbmV3IGxvY2F0aW9uCgpjb21taXQgMzg5OGMwNGZkNmY4OTg2NzA2MmZkZmViZjM2ODU3YWI2MTljMDQ1MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE2OjUzOjI0IDIwMTEgKzAwMDAKCiAgICBBZGQgdGVzdHMgZm9yIHBhc3MvcGFzc19wZXJzaXN0LCBzdXBwbGllZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGQ1ZWUzZjBhMWE2M2JiMTc1MmM3NGNiY2E1NWFhM2Q0MGJmOWJmMTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo1ODo1MSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc0NDQ6IEZpeCBTSUdfUElQRSBoYW5kbGluZwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAyYTE3YjM3NDMwYzE4NTI5OThjMzU4OGU1NDdkN2ViNjFjMDZkYTcxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NDU6MzggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQ0MDogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgQWdlbnRYIGVycm9ycwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBmZTU4YTBlNWY0ZDRlMmUyZWNiY2I0NzM4MmIwOGNiMWU0ZGYzNTJjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MTY6MjMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0NTY3NzA6IEhhbmRsZSAob2Jzb2xldGUpIFVJbnRlZ2VyIHR5cGUgcHJvcGVybHkKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMWJlOGNmMDhhNjdhOTE4NTVmZWUxZWM0YTJkOGUwODdjNzgxMjQ1NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjA0OjEwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0Mzc6IExvZyBBZ2VudFggZGlzY29ubmVjdGlvbnMKICAgIChpbiBsaW5lIHdpdGggY29ubmVjdGlvbnMpIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMDY4MDM3Mjg5MTA3ZmFhMmJhM2Y1Y2QyZmIwMGMxOTQ5NGJiOWEwNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBIYW5kbGUgYW55IEdFVE5FWFQgcmVxdWVzdCBPSUQsIG5vdCBqdXN0IGEgc2ltcGxlIHdhbGsuCgpjb21taXQgYTc0ZmE1Mjg5ODMxMjNkMzU1YThjZGNhYTc3ZGQ0ZWI0YjhjNjk1OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE3OjAwOjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBwYXNzOiBQQVRDSEVTOiAzNDkzOTQ6IEJyaW5nIHBhc3NfcGVyc2lzdHRlc3Qgc2NyaXB0IGludG8gbGluZSB3aXRoIHBhc3N0ZXN0KgogICAgKGkuZS4gdXNpbmcgdGhlIGxlZ2l0aW1hdGUgc3RydWN0dXJlIG9mIE5FVC1TTk1QLVBBU1MtTUlCKQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBiYmU2NDllYmZhNjFlYTIyMzk5MTcwYjM2Yjk5ZGIzMGExZGU4MDEyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTY6NTQ6MzggMjAxMSArMDAwMAoKICAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGUgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cwogICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgc3RydWN0dXJlIGZvciBvdXRwdXQuICBCYWNrcG9ydCBvZiBTVk4KICAgIHJldmlzaW9uIDE3NjMyICh3aGljaCB1cGRhdGVkICdwYXNzdGVzdC5wbCcgYnV0IG1pc3NlZCAncGFzc3Rlc3QnKQogICAgQ29ycmVjdCBpbiBicmFuY2hlcyA1LjUgYW5kIGFib3ZlCgpjb21taXQgODJkMDZjNzI0N2IyMmM4YjAxZDQ1YmY1NTA0MWQyZjFlNjQyN2Q0OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjQ1OjE4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzY3MTogRml4IG92ZXJyaWRlIGhhbmRsaW5nIG9mIE9JRCB2YWx1ZXMKICAgIFBhdGNoIHN1cHBsaWVkIGJ5IFBoaWxsaXAgTydEb25uZWxsCgpjb21taXQgYmE0YTljZTUxYzk2MDBmOWZkYTE2OGYxZTZlZmYzMmExZGI2M2NiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEzOjI0OjI2IDIwMTEgKzAwMDAKCiAgICBUd2VhayAtLWRpc2FibGUtc25tcC1zZXQgY2hhbmdlcwoKY29tbWl0IDgyN2M4YjI4ODMwMTcxZmFhOWM2MWQ1M2VmY2E5ZWI2NjAwNTYxYzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMToyNTo0MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzNDMzODQ2OiBGaXggZm9yIHVzZSB3aXRoIHB5dGhvbiAyLjQKCmNvbW1pdCBmOThhNTRhOTljYWY3YjQ2YjEwMGE5MjBkYjk0MmNiY2E5YzQzOTI2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTA6MTA6MzYgMjAxMSArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IDIzMGRmMTRmOTRjMzczNmZmMzQzNzlhNGUyODFlZWEzNTNiNDdmODAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gRGVjIDI2IDIzOjM0OjIzIDIwMTEgKzAxMDAKCiAgICBEbyBub3QgYXNzaWduIHRtU3RhdGVSZWYgdHdpY2UKCmNvbW1pdCBjOTZiM2I0ZDg1MzBhZDVlMGVmYjAzZjI0ZGFiNWU1ZjFhNDYwMDMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxODoyMSAyMDExICswMTAwCgogICAgQ29ycmVjdCB1c2UtYWZ0ZXItZnJlZS4KCmNvbW1pdCBjNTk3OGM4OWNkZTI0NDBmNGQyMGRhZGJjOWQxZGQ4ZGI1NjJkNTZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxNTo0NCAyMDExICswMTAwCgogICAgQ29ycmVjdCBkb3VibGUtZnJlZS4KICAgIAogICAgbmV0c25tcF90bHN0bUFkZHJfYWRkIHRha2VzIG93bmVyc2hpcCBvZiBpdCdzIGFyZ3VtZW50IHNvIGNhbGxpbmcgZnJlZSBvbiB0aGUKICAgIGFyZ3VtZW50IG9uIGZhaWx1cmUgaXMgaW5jb3JyZWN0LgoKY29tbWl0IGMxMzljYTEyM2I0NGJiM2I5YjZiZjkyMWUxNjA5Y2M0NWY2M2E2NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjo1NTozMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1OTogRml4IHNwYXJzZWx5IGF1Z21lbnRpbmcgdHJpZ2dlciB0YWJsZXMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzRhZTAyMWIyZTYzODQ0MzcwODFjNTYyM2YzNjBjODg5NjM5MDE4OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI5OjU0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIEJhc2VkIG9uIG1pYjJjIHBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzZhY2NmOGM2NjI1NGZhOGM0ODc2N2VkN2RlYzc5NWRkYWZjNTIyZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI3OjExIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYTYxODI2YWQ4Y2E1NDY2MWQxZDkwOTcxMjUwM2JkM2E4YjMyZWVkMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMjIgMTg6MzU6NDYgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgICAKICAgIG15TWF0Y2ggaXMgdW51c2VkIGFzIG5tYXRjaCBpcyB6ZXJvIGFuZCBhbHNvIHNpbmNlIHJlZ2V4QnVmZmVyIGlzIGNyZWF0ZWQKICAgIHdpdGggUkVHX05PU1VCIHNldC4KCmNvbW1pdCBiYTRmYzgwZmUyY2ZkNWE1ZDg5MjMwZDhmMzcwM2U0ZmUwMWU2MDE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjIgMTk6MjQ6NDAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTCiAgICBBbHNvIG1vdmUgdmFyaW91cyBGU1R5cGUgZGVmaW5pdGlvbnMgdG8gdGhlIGFwcHJvcHJpYXRlIGJsb2NrcwoKY29tbWl0IGI1YWM0YTA0ZGNkNTQ3MGQwOGQwMzMyMWFiY2QxZTk4MjYyMWU2ZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDJiMzdlNGU4ZjI1MGEwZDg4MjExOTlhNzRhYzNmNGU1YjdiN2JhYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMTo1MSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDNkMDgzNDUxNTZjNDE5MzMzZGU5NjlmMTNkMjFmY2VjN2UxOGU5NGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMjoyOSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IGNkODU5YWQ1MWM0ZjE4ZDViMGZjNjlkZDY2OWZjYjA1MWM3OTg5NjkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTozMyAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbWVtbW92ZSBzaXplCgpjb21taXQgMzBmZjU4ZDA5ZDRjOWQ1NDM4YmI2MjEwNTRmZDdhZDdhMmE1OTdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjA3OjE5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBsZW5ndGggb2YgYnVmZmVyIHdoZW4gcHJpbnRpbmcgQVNOX0JJVF9TVFIKCmNvbW1pdCA2YzE0ODdlMWQzNjBkM2QyNjBhMzljYjFmNWIxNWRhOTc4Mzk1MDUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDc6MzQgMjAxMSArMDEwMAoKICAgIEZpeGVkIHBvdGVudGlhbCBmcmVlIG9mIHVuaW5pdGlhbGl6ZWQgcG9pbnRlciBpbiBlcnJvciBjYXNlcwoKY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NDo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW5pdGlhbGl6ZWQgdmFsdWVzIGluIHVkcFRhYmxlCgpjb21taXQgYzQ0NjA4Njc5Yjg5NzUxMTc2ZjI4YTJlNTRkNTI4MmI0NmUyYTA1YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjU2OjEzIDIwMTEgKzAxMDAKCiAgICBVc2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIGFuZCBtYW51YWwgY2xlYXJpbmcKCmNvbW1pdCBhMDVjNWY5NTEzNDYxODI0ZTc5MDNhZTlhZTlhNmMzMzg2ZTMzODc5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NDA6NTAgMjAxMSArMDEwMAoKICAgIEZpeGVkIHByaW50aW5nIG9mIHVuaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gc2Vuc29yc19nZXRfbGFiZWwoKSBmYWlscwoKY29tbWl0IGU0YTVlZGM3MjM5M2JkM2RlOWJmMTJiY2ViYTlkODNiYmY3ZGU3MGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDozMToyNSAyMDExICswMTAwCgogICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBmYWUyZTViODM1YjhkZjFlYWU0N2U0Y2ViYjRlYjQwNGQ3MjgyMzc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzE6MjEgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pdGlhbGl6ZWQgaWlkIGluIGVycm9yIGNhc2VzIGFuZCB3aXRoIGRlYnVnIGluZm8gZW5hYmxlZC4KCmNvbW1pdCA5ZDU4ZjgxYTkyMzljZmJjZmM4ZWJjZTM2N2QyMWU5YjNkY2IwMjhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzM6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCAwYmM4YzA4ZWRlYWU3YWUwOTVmMTE2MjU4YzIwYWU1NzY3ZDYwNjUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MjA6NTIgMjAxMSArMDEwMAoKICAgIEZpeGVkIHJldHVybmluZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdzdGF0dXMnIHdoZW4gc3MgPT0gTlVMTAoKY29tbWl0IDczMDRjNTNjZjhhZGVlOGVjY2VmMWE4ZjI2NzU2ZmMwN2YwOTg3MjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDE4IDIzOjMxOjUzIDIwMTEgKzAxMDAKCiAgICBPbiBzb2xhcmlzIDEwIHRlc3QgaW4gL2Jpbi9zaCBkb2Vzbid0IHN1cHBvcnQgdGhlIC1lIHRlc3QuIFJlcGxhY2UgaXQgd2l0aCAtZgoKY29tbWl0IDhjZDNiZTYwZDY5M2M5YzM2ZmZiOTdkM2Q5YmNiNDljMWI0YWJlMzUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDE3IDA4OjUyOjI0IDIwMTEgKzAxMDAKCiAgICBBdm9pZCByZXBldGl0aW9uIG9mIHRoZSBjb21wbGV4IGV4cHJlc3Npb24gZGV0ZXJtaW5pbmcgaWYgaXQgaXMgcG9zc2libGUgdG8gZ2V0IHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLgogICAgCiAgICBUaGlzIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gcGxhdGZvcm1zIGxpa2UgU29sYXJpcyAxMCB0aGF0IGRlZmluZQogICAgSVBfUkVDVkRTVEFERFIgYnV0IGxhY2sgZWl0aGVyIG9mIG1zZ2hkci5tc2dfY29udHJvbCBhbmQgbXNnaGRyLm1zZ19mbGFncy4KCmNvbW1pdCA5NTNmMmUzZDQyNWVkZTNiODYzYTJlN2NjYjBiNGJjODYyOTI4YjU3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiA1IDIyOjEzOjA3IDIwMTEgKzAxMDAKCiAgICBNb3ZlIHRoZSB1c2Ugb2YgX3NlbmR0byBhbmQgX3JlY3Zmcm9tIGJlbG93IHRoZWlyIGRlZmluaXRpb25zLgoKY29tbWl0IDY4YTExNzNjNDZjZjc3NjAxNDI2Y2YzOTFkOWE4NTI3OTRmMjA1N2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDIwIDIwOjA1OjE4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBvdXQgdGhlIGNtZXNnIGJ1ZmZlciBzaXplCgpjb21taXQgNDYxZGQxNmYzYjI2NDczMjJjZGNlNjM2MzA4MWNjNDRiYTVhNDliNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMjYgMjE6NTE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1lcmdlIHRvZ2V0aGVyIHRoZSBMaW51eCBhbmQgKkJTRCB2ZXJzaW9uIG9mIHNyYyBwb3J0IHNlbmRpbmcuCgpjb21taXQgN2FjY2I2OWJhYTFmYzBiNmEzNDM5ZDJlNTQ5Yzg2ZGEzNDUzYmFkMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MzA6MzEgMjAxMSArMDEwMAoKICAgIFVzZSBhIGJhcmUgc3RydWN0IGlvdmVjIGluIGluc3RlYWQgb2YgYSBvbmUgZWxlbWVudCBhcnJheS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gbWFrZSBfcmVjdmZyb20gbW9yZSBzaW1pbGFyIHRvIF9zZW5kdG8uCgpjb21taXQgMzk4NTJjZDRjODVlZjJiZmM3NWNkZWEyODI1MjYxZWU5M2U3NjhjMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjk6MjAgMjAxMSArMDEwMAoKICAgIEFkZCBjb21tZW50IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGNhbGwgdG8gZ2V0c29ja25hbWUgYWZ0ZXIgYWxtb3N0IHJlbW92aW5nIGl0LgoKY29tbWl0IDFiMjkyY2EyN2VhYjVjYWE3M2ZlYWFhODNkYzljMTJhYmMwZjJlNzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI3OjU5IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUuCgpjb21taXQgYmM4Nzk1NzFlY2E5NTIwYmMxMzJmODQwYzNlNjU5ZDM3OTMxNDRkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MjU6MzYgMjAxMSArMDEwMAoKICAgIEludHJvZHVjZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvIGVhc2UgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIHNlcnZlciBhZGRyZXNzLgoKY29tbWl0IGI3ZWVhNmNmZmJkODcyOTMyY2UyYzA0ZmVmYjZmNDNkZTMzOWYzNzQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE4OjMzIDIwMTEgKzAxMDAKCiAgICBSZW5hbWUgdGhlIGNtZXNncHRyIHZhcmlhYmxlIHRvIGNtLgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGluY3JlYXNlIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29kZS4KCmNvbW1pdCAwYTc0NjFlNzI4ODA1YzYyYTFjYWI5ZDg3YmZjNzRjNzkyN2E5ZmNjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxNToyMiAyMDExICswMTAwCgogICAgRmFjdG9yIG91dCBhIGNvbW1vbiBsb29wIGluIHJlY3Ztc2cgb3B0aW9uIHByb2Nlc3NpbmcuCgpjb21taXQgYjNjNjI0OGQwMjAxYWIxNjEwODQwZDZkMGU3NDliM2I2YzRhZDc5MgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTM6NDMgMjAxMSArMDEwMAoKICAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgTGludXggYW5kIEJTRCByZWN2bXNnIG9wdGlvbiBwYXJzaW5nIHNvbWV3aGF0LgoKY29tbWl0IDM1NjQwMGQ2MjkwYTQyM2I1MmViZWVhNWE1ZTk3NmZiMTViYjczYjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjA0OjU2IDIwMTEgKzAxMDAKCiAgICBVc2UgQ01TR19EQVRBIG9uIHRoZSByZXN1bHQgb2YgQ01TR19GSVJTVC9ORVhUSERSLCBub3Qgb24gdGhlIGJ1ZmZlci4KCmNvbW1pdCAzYjM1MTcwOGM2MmRlNDZhYTFiOTBlZDIzMmNmZDhjN2M1YjAyMjMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEyOjAwOjMyIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgYSBjYXN0Cgpjb21taXQgZGU5MjUwZDlkYWU5NzI3YTZjYzdmNjQ3Njg4ZGRkZjFiODU5NzEyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMTo1ODowNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3ByaW50X21pYl9vaWQoKSB0cmVhdCBPSUQgY29tcG9uZW50cyBhcyB1bnNpZ25lZCBpbnN0ZWFkIG9mIHNpZ25lZCBpbnRlZ2VycwoKY29tbWl0IDBlMzNiM2I2ZDU4NTRhNGJhYzE1ZDRlYTVlMDE2YzUzZDE2MWQwY2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTA6MDI6MjggMjAxMSArMDEwMAoKICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgYjdlNTBkNWY5YTY3NTU5ODJkMmFmMzE5MTQ3M2NiMzQ2NDNiYzAzZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwODozNzoyMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVkdWNlIG92ZXJoZWFkIG9mIGNvbmZpZyBmaWxlIHBhcnNpbmcKCmNvbW1pdCA3M2M5ZWU0MmQyOGFmZTJlMTA3YTdkNjYxNmI2ZDAxMTg5MGMzNmVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA5OjA5OjU5IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDNkYjk3OTYyYjM3ZWIxMmQyNTRkNjFlNmJlMjM0YjA2YTM5MWM4YmIKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgRGVjIDggMDc6NDM6NDUgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzNDUzODY4OiBmcm9tICJCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4iOiBGYWN0b3IgY29tbW9uIGNvZGUgaW50byBwYXNzX2NvbW1vbgogICAgCiAgICBNb3ZlIHRoZSBjb2RlIGZvciBwb3JtYXR0aW5nIGFuZCBwcmludGluZyB2YWx1ZXMgZnJvbSBwYXNzIGFuZCBwYXNzX3BlcnNpc3QKICAgIGludG8gcGFzc19jb21tb24uCgpjb21taXQgYjY1NjhjODNmMTc1NmU5YTY1NDM0ZWRlZWViNDBkMjNkZGJiYjY1MgpBdXRob3I6IGNjY2hpdSA8Y2NjaGl1QHNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDcgMTY6MjU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ1MjA2OTogRml4IHNubXB0cmFwX29pZCBkZWNsYXJhdGlvbiBpbiBtaWIyYyBnZW5lcmF0ZWQgY29kZQogICAgCiAgICBUaGlzIGJ1ZyB3YXMgaW50cm9kdWNlZCBjb25zaWRlcmFibGUgdGltZSBhZ28uIEl0IGRpZCBhbHJlYWR5IGV4aXN0IGF0IHRoZQogICAgdGltZSB0aGUgNS42IGJyYW5jaCB3YXMgY3JlYXRlZCAoc2VlIGFsc28gY29tbWl0CiAgICAwZWMwODhhZmEyN2NmZGE0ZTZlYTc4YWFlN2NmYzU1MDc1NjRlZGRlKS4KCmNvbW1pdCBkNDk0ZGI2NGMyMDhiNGRjNjI4MTMxMzJmODg2M2JkNWMxYTM5ZDc3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM4OjE3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEVsaW1pbmF0ZSBhbiB1bnVzZWQgdmFyaWFibGUgKE5vdykKCmNvbW1pdCAyOGYyNTYxYmMyOTM1ZDhlMWNiZjQ2ZDI4MjAxNTgxNzNlN2E0Y2Y0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjM3OjExIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KCmNvbW1pdCAzOTZlMTIyZGRjNDJhOTE2ZjA2YTAyODg0YzBlOGEyNThlZGJlMjM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDA5OjMyOjE2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWF0Y2ggZWFjaCBnZXRwd25hbSgpL2dldHB3dWlkKCkgY2FsbCB3aXRoIGFuIGVuZHB3ZW50KCkgY2FsbCBhbmQgZWFjaCBnZXRncmVudCgpIGNhbGwgd2l0aCBhbiBlbmRncmVudCgpIGNhbGwuCgpjb21taXQgM2VmZWZiYzAwMjQzOTk3ODZmOGI2OGIxZTkzYjBhOGZkZGRkYzdkYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDo0MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCA3ZjA1ZGFhOGUwZTBmNTMzYjBmMTJhM2UxY2YwNzY0MTUxOTkwOWQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDExOjU4OjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDQ5Mzk6IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdCBzcHJpbnRfcmVhbGxvY19vY3RldF9zdHJpbmcoKSBlbWJlZHMgdW5wcmludGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIGJpbmFyeSB6ZXJvZXMgaW4gaXRzIG91dHB1dC4gVGhpcyBiZWhhdmlvciBjb3VsZCBjYXVzZSB0cnVuY2F0ZWQgb3V0cHV0IGluIHNubXB0cmFwZC4KCmNvbW1pdCBkYjhmNTU4ZmQyZjNiN2MxMDllYTNhMWMyMTMzYjc1YjZmOGNiMmFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeDogcGFzcyB1bnNpZ25lZCBjaGFycyB0byBpc3ByaW50KCkgaW5zdGVhZCBvZiBzaWduZWQgY2hhcnMuCgpjb21taXQgODAwZGMxMDI4ZTdlMGNkOGNjMTRkODRkZDMxNzIzZDQ3YWMwNzNkYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMSAxMDoxODo1OCAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgaGludCB2YXJpYWJsZQoKY29tbWl0IDgzZWE0YTA4MGM5MGE3NGI5NzQzZDNmMjRjZjBkNGI4YTFlOGM4NDkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDI3IDIxOjE2OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBxb3MKCmNvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowNDowMSAyMDExICswMTAwCgogICAgUmVtb3ZlICNkZWZpbmUgdmFsKHgpIF9fU1RSSU5HKHgpIGFuZCBjaGFuZ2UgdmFsKHgpIGludG8gX19TVFJJTkcoeCkuCgpjb21taXQgMmYzNzliMGU0ZWNhZGZhNGU1NDFlMzAwNWM4ZmM4MjgxODgyYjc0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTU6NTg6NDcgMjAxMSArMDEwMAoKICAgIEZvbGxvdy11cCBmb3IgY29tbWl0IDFhYTcwNGU6IHVuYnJlYWsgdGhlIE1TVkMgYnVpbGQKCmNvbW1pdCA2NGVmMGY3MTEyNzYxNzgzNzAyN2ZiMmNmYWYxNzRiOTViYTc5ZTBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDoxOTo1MCAyMDExICswMTAwCgogICAgQWRkIFNOTVA6OnJlZ2lzdGVyX2RlYnVnX3Rva2VucygpCgpjb21taXQgN2JlYWQ5Y2E5MTdjNjc1NjZkNWVkOThhYjUwN2JiYzAyODE2MjE3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDg6MDggMjAxMSArMDEwMAoKICAgIEFnZW50WCBzdWJhZ2VudDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCmNvbW1pdCAwZWQ3MTU0MWY4N2U3ZDc4YmM5OThlZWJkYTMyMTdjNTllMWRmODMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMzoxOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIERveHlnZW4tc3R5bGUgZnVuY3Rpb24gaGVhZGVyIGZvciBuZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kIG5ldHNubXBfY2xlYXJfZGVmYXVsdF90YXJnZXQoKS4KCmNvbW1pdCA4YzI5NzJiNjFlNDAxNjliNDdjNTA5ODhiNmFlOWU4YzI4NWY4NGY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMjo1NCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQoKY29tbWl0IDVkZjJiYWM2YmQ3MTc3OTkzMTFmMDAxYWM3YjczZGI4OGYxMWJkZGEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjU5OjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBPbmx5IHRyYW5zZm9ybSB0aGUgYWRkcmVzcyB0byBwcmludGFibGUgZm9ybSB3aGVuIG5lZWRlZC4KCmNvbW1pdCAxNzFlOGQ0OGQ0YWYwNDAxM2NmZjhmZDI4ZjUzNDFhMmFlZjIxZDg4CkF1dGhvcjogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTY6NDk6NDYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXAtYnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLgogICAgCiAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcgZGF0YSBpbnRlcnByZXRhdGlvbi4KICAgIHNubXAtYnJpZGdlLW1pYiBvYnRhaW5zIHRoZSBpZmluZGV4IHZhbHVlIGZyb20gdGhlIHN5c2ZzCiAgICBhdHRyaWJ1dGUgJ2lmaW5kZXgnIFRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3lzZnMgYXR0cmlidXRlCiAgICBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KICAgIGluY29ycmVjdCBkYXRhIGRpc3BsYXllZCB0byB0aGUgdXNlci4KICAgIAogICAgZS5nLgogICAgICAgICQgPiBzbm1wd2FsayBsb2NhbGhvc3QgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMgogICAgICAgIEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIgPSBJTlRFR0VSOiA1NAogICAgCiAgICBhY2NvcmRpbmcgdG8gdGhlIHN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYKICAgIAogICAgICAgICQgPiBjYXQgL3N5cy9jbGFzcy9uZXQvPGRldmljZT4vaWZpbmRleAogICAgICAgIDM2CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KCmNvbW1pdCA4MmUzOWZiNjcwNmRmOTBlY2YyZmM5ZTEwYWRhMmI5NjJlZTE5NmYzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTI6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEZpeCBtdWx0aS1saW5lIGNhc2UgdGVzdGluZyBvZiBpbmNvbWluZyBPSUQKCmNvbW1pdCBiMTVkYTFhNDUxNjA2MTEwNWExZWFjNzQ1MGNmNjUwZWM0NDI2NmIyCkF1dGhvcjogTmlrb2xheSBEZW5ldiA8bmRlbmV2QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjI5OjQ5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCgpjb21taXQgN2Y0N2Y1MmU0ODFiYWE5YWFmYjU3ODQyNDRiMGRkMjY1M2U3ZGNmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgMjggMDg6NTE6MzkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBTTk1QX0FMTE9DX1RZUEVERUYgdG8gYWxsb2NhdGUgdHJhbnNwb3J0cyBpbiBvcmRlciB0byBhdm9pZCB0aGUgc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCgpjb21taXQgY2Y4NjAzOWUzMDg2MjI1YzMwODViYjlhZGYwODhiOGJhNWJhNjk3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTU6MDI6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliIHBhc3MuCgpjb21taXQgMWE4N2U3NmUwMGVlM2Q1Y2QzN2EwN2JmYzNkODQ0OTBkM2MyYTRlYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMTQ6NTU6NDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCgpjb21taXQgODg2N2ZkMWRjZmU3MmI1OWQwNzMyMmZmMzhhNjk5YjY2ZWM0ZjMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMDk6NDQ6MzggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCiAgICAKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgTkVUU05NUF9MQVJHRV9GRF9aRVJPKCkgdXNlIG1lbXNldCgpIG9uIFVuaXggc3lzdGVtcyBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGxvb3AuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMgbmV0c25tcF9sYXJnZV9mZF9jbHIoKSBkb2Vzbid0IHRyeSB0byByZWFkIG1lbW9yeSBpdCBpc24ndCBhbGxvd2VkIHRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfaXNfc2V0KCkgcmV0dXJuIGZhbHNlIG9uIFVuaXggc3lzdGVtcyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgc2hyaW5rIGJlaGF2aW9yIGNvcnJlY3QuCgpjb21taXQgMjNkYjBjZjA5YjhiMGVhYjM3Yjc0OWVmMGMzYzNmMzA2OTAwMjQ1YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMjEgMjM6MDI6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBjYXN0aW5nIHR2X3VzZWMgdG8gaW50IHdoaWNoIG1heSBiZSB0b28gc2hvcnQKCmNvbW1pdCA4MGVlNDAyMmU1MzRlNjRhYWQ1YTVmMjcxOTI4NDNiNDJhY2I4NWUwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOToxNDowMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogTW92ZSBuZXRzbm1wX3Bhc3Nfc3RyX3RvX2Vycm5vIHRvIHBhc3NfY29tbW9uIGFuZCByZW5hbWUgaXQgdG8gbmV0c25tcF9pbnRlcm5hbF9wYXNzX3N0cl90b19lcnJubwoKY29tbWl0IDBiYWE5Mjk2YzA3MmJiMzczNTc2MGIwZGQ5OTJmMmQxZDNjYTI3ZmEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjA1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBDb3JyZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgdWNkLXNubXAvcGFzcyBhbmQgdWNkLXNubXAvcGFzc19wZXJzaXN0Cgpjb21taXQgMWFhNzA0ZTRhMjk0NDMwYjI4ZTM5YjZmOWU0NjgzYjhhNDhiY2UwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDg6MzU6MjEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGYWN0b3Igb3V0IGFzYzJiaW4gYW5kIGJpbjJhc2MuIEFkZCBhIG5ldHNubXBfaW50ZXJuYWxfIHByZWZpeCB0byB0aGVtCgpjb21taXQgY2RhOGZlOTEwMTNmMTJjYmY2NGEwNzc1YWJiNTU3MjAwMzVhZjkzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDA6NTU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBDYWxsIHNubXBfb2lkdHJlZV9jb21wYXJlIGluc3RlYWQgb2Ygc25tcF9vaWRfbWluX2NvbXBhcmUKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc25tcF9vaWRfbWluX2NvbXBhcmUgc2luY2UgaXQgaXMgaW50ZXJuYWwgYW5kIHVudXNlZAoKY29tbWl0IDg1Zjg5M2UyYjYwNWU2N2Y5YmQwNDQzYzc0ZTJlZDI2OWFhNjg1NjQKQXV0aG9yOiBOaWtpIERlbmV2IDxuaWtpX2RAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMTcgMjI6NDI6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpCiAgICAKICAgIFRoaXMgaHVuayBmZWxsIG9mIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIHdhcyBtZXJnZWQuCgpjb21taXQgNWM5MTNlNTQ2NTZhZTAwOTZiMWZlYjZkYTk4YjVmYzljYTgxZjI3NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzM6MDcgMjAxMSArMDEwMAoKICAgIERlZmluZSB0aGUgZnVsbCBOZXRCU0QgaGllcmFyY2h5IGRvd253YXJkcwoKY29tbWl0IGI4ODE4NDFiZDA0OTNkZDcxZDYzMjU5YmRkZWQ0NDliMDZmMDJjMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMwOjMzIDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgY2EyOTRjZjc1YmJjOGU5MGRiZjQ0ZWU0MDQ3ODkzNWU5MWRiMTQ4NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTg6MDMgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgY2QzMmMyZGZmMDZiOWI0NTJjYzE4ZDU1MmQyZjIyMzQwOTJjODI5YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTc6MDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgd2FybmluZwoKY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE1OjU4IDIwMTEgKzAxMDAKCiAgICBNb3JlIG5lZWRzIGZvciBORVRTTk1QX1BSSW8gZm9ybWF0IHNwZWNpZmllcgoKY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE0OjI2IDIwMTEgKzAxMDAKCiAgICBGaXggdXNpbmcgY2hhciBhcyBhcnJheSBpbmRleCAoY3R5cGUuaCkKCmNvbW1pdCA4NDUyOWU2MzIwYTg5ZDk3ZjEzMTRhZWJhZDgwNjI1NWQyYTFiMThjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzowMDo1NyAyMDExICswMTAwCgogICAgRml4IG1pc3NpbmcgZm9ybWF0IGZvciBGcmVlQlNEIDQKCmNvbW1pdCA0YmQwMzUyOTU1YTI1NTFiZmUwMjMwOGRkMTM0YjkxMjhjOThiOWU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1OTozNiAyMDExICswMTAwCgogICAgRml4IHBhcmFudGhlc2lzIHByb2JsZW0KCmNvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1ODozNCAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGE0ZGI5ZjlmYzEzZDIxZWNmZjQ4OGViNDEwMzc2ZWRkYTZjMjgyMzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjQzOjM0IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjM3OjQ5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MKCmNvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMToyNzo1MyAyMDExICswMTAwCgogICAgUmVhbGx5IHVwLXRvLWRhdGUgbWlicwoKY29tbWl0IDBlODZjNzgxZjM5ODliZjAyMmM4OTkzYTExODYxN2I3NGE3NTQyMGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE3OjE5IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGdldCBTaG1lbSBmcm9tIC9wcm9jL21lbWluZm8gZm9yIDIuNiAob3IgbmV3ZXIpIGtlcm5lbHMKCmNvbW1pdCBiZjI2NGQxNWRlZDdhY2JiZjJlMzg3MWI5OGZkMWZjZWY0M2Q5ZWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNjoxNiAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBjbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA1N2ZmOGE0MGJhZTVkOWJjYWQxNjA4OTE0MmE5Y2YzMjhjOWZhMWY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNDo1NyAyMDExICswMTAwCgogICAgZGlzbWFuL3BpbmcsIGRpc21hbi90cmFjZXJvdXRlOiBDbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxMzo1MyAyMDExICswMTAwCgogICAgVXAtdG8tZGF0ZSBsaXN0IG9mIFJGQ3Mgd2l0IG1pYnMKCmNvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMTUgMTA6NTc6MzQgMjAxMSArMDAwMAoKICAgIERvbid0IHRyeSB0byBpbnN0YWxsIGFuIGVtcHR5IGxpc3Qgb2YgbWFuIHBhZ2VzIChNQU4zKQoKY29tbWl0IGJhNjE5ODA0ZTU5NzhhOGRmNzU0ODQ0ZWZjY2E1MmI2OWI1MDE1ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEzOjM0OjIwIDIwMTEgKzAxMDAKCiAgICBNaW5HVzogTWFrZSBzdXJlIHRoYXQgdGhlIGJhY2tzbGFzaGVzIGluIHRoZSBwc2tpbGwgbWVzc2FnZSBhcmUgZGlzcGxheWVkLgoKY29tbWl0IDkyM2VlY2M1MDdmNzUwNDNiNjBjNWU2ODA1M2E0ZjM5NmFiMGIwZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTm92IDE0IDEyOjM2OjM4IDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeCBmb3Igc3lzdGVtcyB3aGVyZSB1aW50NjRfdCA9IHVuc2lnbmVkIGxvbmcgKGUuZy4gUkhFTCA2LjEveDg2XzY0KQoKY29tbWl0IDQzNGJmYzFmNzQ1NzU1MGI2Zjg3ZDViY2Q1MTEyNzZiMjcwYjU5NjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMToyMjo1MyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gTWFydGluIFdpbGNrOiBmaXhlZCBzbm1wZCBjcmFzaGluZyB3aXRoICdzZWxlY3Q6IGJhZCBmaWxlIGRlc2NyaXB0b3InLgogICAgCiAgICBPbiAzMi1iaXQgc3lzdGVtcywgc25tcGQgZGllcyB3aXRoIGFmb3JlbWVudGlvbmVkIG1lc3NhZ2Ugd2hlbiB1c2luZyBmaWxlIGRlc2NyaXB0aW9ucyA+IDMyLCBlLmcuIHdoZW4gaGF2aW5nID4zMiBBZ2VudFggc3ViYWdlbnRzLgoKY29tbWl0IGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAxOjIxIDIwMTEgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCgpjb21taXQgZWFjYTc5ODNlMzY1NWFiNjk2ZmNjNDQ2MWNhMGNlZGJhYzZjZTY5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDA6MTIgMjAxMSArMDEwMAoKICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAoKY29tbWl0IDhhZDZjNTNmZGVjNWFkZWFlNGU1MmYxNzUxZWNlYzRhMzQ1YmFiMDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU5OjAxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVpZyAjMzQzNjUyNzogYXJwX25ldGxpbms6IGZpeCBkeWluZyByZWxvYWQgb2YgY2FjaGUKCmNvbW1pdCAzNzhmZmVkMDNiYTc5YTgzNDZkNmM2Mjc4MWUyZGRmNWNlOTJhNDc4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1NTo0MyAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzNjUyODogc3dpbnN0X3BrZ2luZm86IHJlY292ZXIgZnJvbSBOVUxMIHJldHVybiBmcm9tIG9wZW5kaXIKCmNvbW1pdCBkN2FkOGY1ZjlmM2Y2N2YxNmY2NWMyNTE1ZDExZTE5NGQyY2RkMTJjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDowNDo0MSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQ3lnd2luOiBNYWtlIGRhdGVfbl90aW1lKCkgcHJvZHVjZSB0aW1lIHpvbmUgaW5mb3JtYXRpb24KCmNvbW1pdCBiYTM1YzUwYjJmNDU5YmQ5YzExZWQ1OWNjN2QxYjE2MjE1NjQ0ZmEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAxMCAxNDoxNzowNCAyMDExICswMTAwCgogICAgUmVwbGFjZSBBQ19UUllfTElOSygpIGJ5IEFDX0xJTktfSUZFTFNFKCkKICAgIAogICAgTm90ZTogdGhlc2UgY2hhbmdlcyBkbyBub3QgYWZmZWN0IHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdC4KCmNvbW1pdCBmNjE1YmYyNGY1ZDBmMjNjZTkzMDFkYTU1NjE4NGQ2NDYwNzQwNDU2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMyOjQ5IDIwMTEgKzAxMDAKCiAgICBGaXMgQnVnICMzNDM0ODI0OiBTSUdTRUdWIHdoZW4gcmVhZGluZyBkaXNrIGRpcmVjdGl2ZSBhZnRlciBTSUdIVVAKCmNvbW1pdCBhOTRhMTc5ZDkzNDBmNTFmYTdjMjM0MzE2MzBiYzBmZmQ2ZDc1OWU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiA5IDIwOjMwOjUxIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDMzNjE2OiBkb250IHRyZWF0IERhdGVBbmRUaW1lIGFzIGEgc3RyaW5nCgpjb21taXQgYjI5ZTQxNjQ1MzFkMjU4ZmUzNGE2ZmUyYjllMWVjNjBjNTZmOTU0NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBOb3YgNyAwMToyNTo1NyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGUyMjFlNjVmZGMxYzY4ZjE5Njg2NTE3MTdkY2M5Y2NmYjY0MTQ3ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTU6MDU6MDAgMjAxMSArMDEwMAoKICAgIEZpeCB3YXJuaW5ncyBhYm91dCBjb252ZXJ0aW5nIHNvY2thZGRyX2luICogaW50byBzb2NrYWRkciAqLgogICAgCiAgICBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgYTBhZjM4NS4KCmNvbW1pdCAyZTdlOWVkYTBiMGQ2MmE3NjQ1YTlhOGY3MGVmM2ZiNmYzZGQ2OTQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDExOjE3OjQ4IDIwMTEgKzAxMDAKCiAgICBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncy4KCmNvbW1pdCAzNDYyZWJjZGQwYjdjMjk4Y2IxNWMzMDk5NzM2ZjRmOTUyMjU3ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCAyOCAxNjowNzoxNSAyMDExICswMjAwCgogICAgUmVtb3ZlIHRob3NlIHN1cGVyZmx1b3VzIHBhcmVudGhlc2VzIHRoYXQgdHJpZ2dlciBhIGNsYW5nIHdhcm5pbmcuCgpjb21taXQgM2U1ZmVkZDNlN2QxZWYzMTY4MzYwNGJmNzNkYzU2ZTk0NGNhZDM0OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDMgMDk6NDU6MjcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIGFmdGVyIDMwIGRheXMgb2YgdXB0aW1lLgogICAgCiAgICBBZnRlciAzMCBkYXlzLCB2YWx1ZXMgZnJvbSAvcHJvYy9zdGF0IChvbiBMaW51eCkgY2FuIGdldCBiaWdnZXIgdGhhbiAzMmJpdHMgYW5kIHNubXBkIGNhbGN1bGF0aW9ucyBtaWdodCByZW5kZXIgY291bnRlcnMgbGlrZSBzc0NwdVVzZXIgbmVnYXRpdmUgb3IgemVybywgd2hpbGUgdGhlIHJlYWwgdmFsdWUgaXMgaGlnaGVyLiBUaGVyZWZvcmUgdGhlIGNvdW50ZXJzIHNob3VsZCBiZSB0cmFja2VkIGFzIHRoZSBsYXJnZXN0IGludGVnZXIgYXZhaWxhYmxlLgoKY29tbWl0IDBmYzgyMjFiMjQ5ODhjNGFlNjE4MGVkNDJiODZiOTg1MmZkNTg2YWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjI6NTk6MDggMjAxMSArMDEwMAoKICAgIGRza0luZGV4IHdhcyBvZmYgYnkgb25lCgpjb21taXQgYTViMjg4MjllNjRkNWYzYjg3ZTRiOWIxZWY4Y2MyMDRmMzNhNjFiNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMToyNTowNyAyMDExICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAkQVdLIHRvIGdldCBhIHVzYWJsZSBuYXdrCgpjb21taXQgMjgwMWEyMTM5ZjI3MDIxZTFhYjE1ZTM2MmUyZDNkNjI0ZmZhYTQ5NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NTU6NTMgMjAxMSArMDEwMAoKICAgIFBhdGNoICMzNDA2MzY0OiBGaXggdW5zdGFibGUgZGF0YSBmb3IgTmV0QlNELgoKY29tbWl0IDgyMWE1OGQxMTJkN2FjNDk1MTQ5ZTI2MmQ3MDQ0MTJiYTI4MDA0MzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjQzOjUyIDIwMTEgKzAxMDAKCiAgICBGaXggaXB2NiBzdGF0aXN0aWNzIGxvb3BpbmcgdG9vIGZhciB3aGVuIHNjYW5uaW5nIGludGVyZmFjZXMuCiAgICBGaXggVENQIHNlc3Npb24gdGFibGUgcmVwZWF0aW5nIGRhdGEgZnJvbSBmaXJzdCBlbnRyeSBmb3IgYWxsLgoKY29tbWl0IDM0OTU5MWQwM2UxN2E1NWI0M2VhY2M2YTY4N2IwMmZkOGQ0ZTk1MjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gT2N0IDMxIDA4OjU5OjM3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHBlcmwgc3VwcG9ydCB3aXRob3V0IHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcy4KCmNvbW1pdCAxZWM3MTEwZTcyYmNlMTU2MWY3NDY1MTc0NTlkNmYwNDMwMTZiNjBlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAzMCAxOTowNTozMCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgYXNuMSB0ZXN0IHBhc3MgZXZlbiBpZiBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMgYXJlIHJlbW92ZWQuCgpjb21taXQgNmQyNjkxOGFmNTVhYTM2NjJhNzIwNTQyZGU3N2JiZjM5YjBhM2U5MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMjkgMDg6MzQ6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBEaXNhYmxlIHRoZSBzdXBwb3J0IGZvciBpbnRlZ2VyNjQgaW4gcGFzcyBzY3JpcHRzIGlmIGNvbXBpbGluZyB3aXRob3V0IG9wYXF1ZS1zcGVjaWFsLXR5cGVzLgoKY29tbWl0IDI5YmY2OWQ3MDQyNGYzNTlkOWM4N2YwN2E5NjRhMDk5NDE1NjQ5YTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCiAgICAKICAgIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBjb21taXQgOWY2NTNmNy4KCmNvbW1pdCAyY2M5NTA0YjliYjg2MjViOTRiZTZjZGE3ZTYwOTkzZDA1OWNkOTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDI4NTA2OiBGaXggbmV0c25tcF9nZXRob3N0YnlhZGRyKCkKICAgIAogICAgVGhpcyBwYXRjaCBzaG91bGQgZml4IHRoZSByZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4NWQ5NmM0IChNYXkgMTMsIDIwMTEpLgoKY29tbWl0IDliNDI3YjM1M2YxY2ViOGZlODdlNmZjOGVkM2I2Y2ZhYjNjZTdmMjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDI3IDA4OjIwOjAwIDIwMTEgKzAyMDAKCiAgICBNaW5HVzogQXZvaWQgY29uZnVzaW9uIGJldHdlZW4gTWluR1cncyBraWxsLmV4ZSBhbmQgdGhlIFN5c0ludGVybmFscyBwc2tpbGwuZXhlCgpjb21taXQgMmM0NWY5MmNmY2I1YjA1ZTA0OTIyNmE1YTc4ODNhMGIxMDYwMTFhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBwYXNzaW5nIGEgY29uc3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIGFjY2VwdGluZyBhIG5vbi1jb25zdCBwb2ludGVyLgoKY29tbWl0IDI3NWQyM2VkZmRlYmUwNTc3YjA4NDIxZTRjNmM5MzZhZTM5YjdmZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2V0LWJ1dC1ub3QtdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA0NDk1ZTE3YzA3OGFjNjk5N2E5YzdmYTFhODhkYjA2NDRlOTE5NDkxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IDEzOTUyZjZiZWU5ZjQwODg2N2FiNmQyZmRmZGRlNGYyODQwNzQ5NTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogZnJvbSBTaWRkaGVzaCBQb3lhcmVrYXI6IHByb3Blcmx5IGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBpbiBhIHN1YmFnZW50IHdoZW4gd2UgcmVjb25uZWN0IHRvIG1hc3Rlci4KICAgIAogICAgQW4gc25tcCBzdWJhZ2VudCBsaW5rZWQgYWdhaW5zdCBuZXQtc25tcC1saWJzIG1heSBjcmFzaCBpZiBpdCBoYW5kbGVzIGEKICAgIHJlc3BvbnNlIHdoaWNoIGhhcyBtYWdpYyByZWZlcnJpbmcgdG8gYW4gb2xkZXIgZGlzY29ubmVjdGVkIG1haW4gc2Vzc2lvbi4gVGhpcwogICAgbWF5IGhhcHBlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgYXR0ZW1wdHMgdG8gY2xlYW4gdXAgb2xkIHJlcXVlc3RzIG9uIHJlY29ubmVjdGlvbiBvZiB0aGUgZGlzY29ubmVjdGVkIG1hc3RlcgogICAgc2Vzc2lvbi4KCmNvbW1pdCBhZTA1MjQ3MmIyMjcyMGQwODM2OWU4NTEyN2RiMjE0MjQ1ZGYyZTNmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMjUgMTY6MTU6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIHNlZ21lbnRhdGlvbiBmYXVsdCB3aGVuIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAgCiAgICBXaGVuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlciBmYWlscywgaXQgZnJlZXMgaXRzIHJlZ2luZm8gLT4gbnNhaHJfREVTVFJPWSAoYW5kIGFueSBvdGhlciBmdW5jdGlvbikgbXVzdCBub3QgZGVyZWZlcmVuY2UgaXQuCgpjb21taXQgYzE5OWJmOTFiNjIzOWYyNmIyYWFiMzRlODU3NWUwZjBkZjljZGU5YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDI0IDE0OjI1OjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogeGZzLCBqZnMgYW5kIHZ4ZnMgZmlsZXN5c3RlbXMgYXJlIG5vdyByZWNvZ25pemVkIGluIGhyU3RvcmFnZVRhYmxlCgpjb21taXQgNzQ3ZmRjNzFlNjRkMDllMDgwOTI4ZWJiYjRkMDRjYmRlMzkwNjc5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMTU6NTc6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdlcnJvciBmaW5kaW5nIHJvdyBpbmRleCBpbiBfaWZYVGFibGVfY29udGFpbmVyX3Jvd19yZXN0b3JlJyBtZXNzYWdlLgogICAgCiAgICBUaGUgbWVzc2FnZSBpcyBzaG93cyB1cCB3aGVuIHNubXBkIGlzIHN0YXJ0ZWQgYW5kIHRoZXJlIGlzIGRpZmZlcmVudCBzZXQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHRoYW4gaXQgd2FzIHdoZW4gc25tcGQgd2FzdCBsYXN0IHN0b3BwZWQuIFRoaXMgaXMgY29tbW9uIG9uIHBwcC1zZXJ2ZXJzIG9yIHZpcnR1YWwgaG9zdHMuCgpjb21taXQgMjUwZjY5OGU1OWVhYjlmMWZmZDMzMmZmNTlmZGI3MmVhMGRmMDZmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMjMgMDg6NTE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIHRoZSB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBjb2RlIHdvcmsgYWdhaW4KICAgIAogICAgUHJldmlvdXNseSB0aGUgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHByb2Nlc3NpbmcgY29kZSByYW4gd2l0aAogICAgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HIHNldC4gSW4gdGhpcyBtb2RlIHRoZSBmaWxlIG5ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oCiAgICBpcyByZXF1aWVyZWQuIFRoYXQgZmlsZSBpcyBjcmVhdGVkIGR1cmluZyB0aGUgZmlyc3QgbWFrZSBydW4sIGFuZCB0aGF0IGhhcHBlbnMKICAgIGFmdGVyIGNvbmZpZ3VyZSBpcyBydW4uCiAgICBDaGFuZ2UgdGhpcyB0byB1bmRlZmluZSBORVRTTk1QX01JTklNQUxfQ09ERSwgZWZmZWN0aXZlbHkgdHVybmluZyBvZmYgZmVhdHVyZQogICAgc3VwcG9ydCBkdXJpbmcgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gbWFrZSBpdCB3b3JrIGF0IGFsbC4KCmNvbW1pdCA2ZWY2OTA3NjQyMjQ3YzY2M2I5Yjg5NjRiOWZkNDRhMjExZGJjYWE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyMCAyMDozMDo1NCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQwODM5ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy4KICAgIAogICAgVGhpcyBtZW1vcnkgbGVhayB3YXMgaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICA5YmYzZDk2ZDk2YThlY2Q0YTVmYzM1YzMyNmRjOTM3NDY3MDAyYjZjOiBJbml0aWFsIEhBTAogICAgaW1wbGVtZW50YXRpb24gb2YgRmlsZVN5c3RlbSBpbmZvcm1hdGlvbiAoTWFyY2ggNywgMjAwOCkuCgpjb21taXQgY2Y4MmI4OTRiMjIxN2MyNmVkYzZmMTM1NjM1MWM5MzI0MTU2MDRlMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBPY3QgMTUgMTQ6NDU6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyMzkxNTogQ2hhbmdlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgYmFjayBmcm9tIDAgdG8gNQogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgdmlhIGNvbW1pdCA2Y2FjMDUwIChNYXkgNSwgMjAxMSwKICAgIGFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHJldHJpZXMgaW4KICAgIHNubXBkLmNvbmYpLgoKY29tbWl0IGMxMWFkYWExMjkxNWFiZmVlNjI5YmI2YzAyNmMyMWYyMTg1YjIxNmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjI0OjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBjb21waWxpbmcgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gd2l0aCB0aGUgTWluR1cgZ2NjIGNvbXBpbGVyIHRyaWdnZXJzIHdhcm5pbmdzIGFib3V0ICJwcmFnbWEgY29tbWVudCIuCgpjb21taXQgYjE3YTcyYTc5MzQ4M2FlZTRhNWJiMmYyZTJjN2Y0ZmQ4Njk4MTdlNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjI6MjAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYXVzZSB0cm91YmxlIHdoZW4gaW5jbHVkaW5nIHRoaXMgaGVhZGVyIGluIGEgcGFja2FnZSB0aGF0IHVzZXMgdGhlIEdOVSBhdXRvdG9vbHMuCgpjb21taXQgNjY0ZDNhZTEwN2Q3NTQwNTFiOGM0MjI3OWQ0NTlhYTU3YTFiZTFjMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTY6NDc6MTYgMjAxMSArMDIwMAoKICAgIE1pbkdXLCBod19mc3lzOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIGEgZGVidWcgc3RhdGVtZW50LgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGFuIGlzc3VlIGludHJvZHVjZWQgaW4gY29tbWl0IDc2ZmYyNWQuCgpjb21taXQgMjExZGNiNDkzMDY1NjFlMzViYTNjMjEzYmU3Y2ZhMjU3YjQwYThlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTU6NTI6NDMgMjAxMSArMDIwMAoKICAgIEF2b2lkIHRoYXQgZ2NjIDQuNiBjb21wbGFpbnMgYWJvdXQgc2V0IGJ1dCBub3QgdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA5ZjY1M2Y3M2U1YWE3MGYwYmVmMTE3NDYzMmU5NTU5NGY4N2Y2NjlmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgoKY29tbWl0IDRjODNiOTIyOWE3NDU0ZjM0ZjZmZjc1ZjY5ZTY3ZTQwMzBjNDE5YjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNldCB0aGUgcnBhdGggZm9yIGxpYnBlcmwuc28gaW4gbGlibmV0c25tcG1pYnMuc28gc3VjaCB0aGF0IHRoZSBkeW5hbWljIGxpbmtlciBjYW4gZmluZCBsaWJwZXJsLnNvIHdpdGhvdXQgcmVxdWlyaW5nIHRoZSB1c2VyIHRvIG1vZGlmeSB0aGUgZHluYW1pYyBsaW5rZXIgc2V0dGluZ3MuCiAgICAKICAgIFRoaXMgY2hhbmdlIGluIGFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQKICAgIGxhdGVyIGJ1dCBub3Qgb24gdGhlIDUuNCBicmFuY2guIFRoYXQgaXMgYmVjYXVzZSB0aGUgNS40IGJyYW5jaCB1c2VzCiAgICBhbiBvbGRlciB2ZXJzaW9uIG9mIGxpYnRvb2wgdGhhdCBwcm9wYWdhdGVzIHRoZSBycGF0aCBvZiBkZXBlbmRlbnQKICAgIGxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQogICAgbGlidG9vbCBtYW51YWwuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcmVzZW50IGluIGxpYnRvb2wgdmVyc2lvbiAxCiAgICBidXQgbm90IGluIGxpYnRvb2wgdmVyc2lvbiAyLiBGb3IgbW9yZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFib3V0CiAgICBkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKICAgICJScGF0aElzc3VlIiBvbiB0aGUgRGViaWFuIHdpa2kgKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCgpjb21taXQgODkyNWM5MTJkMjYzOTc1MmE4NGJjZmZlZWYxYjcwYTgxMDI2NDQ5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoyMToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjogQWRkIG1pc3NpbmcgYnJhY2UgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCmNvbW1pdCA3NmZmMjVkOWJmOTc1NzllNzIxMzEwMjA2NWZkNTA5NmYwNDlhNGM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjEzOjE4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN0b3JhZ2VUYWJsZTogZml4IGJ1ZyBpbiBoYW5kbGluZyBsYXJnZSBmaWxlc3lzdGVtcywgd2hlcmUgbGFyZ2UgbWVhbnMgYWJvdmUgOCBUQiAoPSAyKiozMSAqIDQwOTYgYnl0ZXMpLgogICAgCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0CiAgICA3MWQ4MjkzZjM4N2E2Y2Q2NmJiMGRiYjEzYzBmNTAxNzRkMmU2NzhiLgogICAgRm9yIHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0LCBzZWUgYWxzbwogICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/ZnVuYz1kZXRhaWwmYXRpZD0xMTI2OTQmYWlkPTM0MTk4MjUmZ3JvdXBfaWQ9MTI2OTQuCgpjb21taXQgODY2MDMzZGI5OTA0ZmZiMTIwM2YyODNmODM4MDkyZTRjZjY4ZGU2YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwNzozMzoyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzcHVyaW91cyAjZW5kaWYgdGhhdCBzZWVtcyB0byBiZSB0aGUgcmVzdWx0IG9mIGEgbWlzbWVyZ2UuCgpjb21taXQgMjBmNGYzMjY3ZWUyMGQ1NTcwNWI3YTQzNzg5ODc5YzEwM2Y5NjYyMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwMDowODo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBtaXNzaW5nIGVuZCBjb21tZW50cyB0byBmZWF0dXJlIGlmbmRlZnMuCgpjb21taXQgZTVkZTJjYzU3YmYzMDRmMzMyMGNhZDAwMzRkMmVhMmQ4YWVkYzQzNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwOToxNToxMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IExvZyBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSBpZiBlbWJlZGRlZCBwZXJsIGluaXRpYWxpemF0aW9uIGZhaWxzCgpjb21taXQgNWVlZjk5OTBkZTI4ZjYzMTExZTZjMDkzYmUwZjNjN2FlMmQ1MTNhMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NTo0OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIGFnZW50Ojp1cHRpbWUoKQoKY29tbWl0IDY4MTBlZDQyZjliYzU2MDc1MGQ2ZGJmYjdlNTBiNmUyYWMxMTg5OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDExOjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBDeXdpbjogYWdlbnQ6IEltcGxlbWVudCBnZXRfdXB0aW1lKCkgc3VjaCB0aGF0IHF1ZXJ5aW5nIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTeXN0ZW1VcHRpbWUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlLgoKY29tbWl0IDk3MTcyYjMxMWQyMGY0NDQxYzdhN2U5MDA5MmI1OWMxZTBkYTk5ZjcKQXV0aG9yOiBUaG9tYXMgSmFyb3NjaCA8dGphcm9zY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAwODo0NjozOSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogUEFUQ0g6IDM0MTg2NDk6IEhPU1QtUkVTT1VSQ0VTLU1JQjogVXNlIHBjbG9zZSgpIGluc3RlYWQgb2YgZmNsb3NlKCkgdG8gY2xvc2UgYSBwaXBlLgoKY29tbWl0IDY1OTE5MzdhZGI4NTAwMGMyNzA2OWM0YmU4NGNmNDY4ODgzOGViY2QKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTY6MTg6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzIHdlbGwuCgpjb21taXQgYjljODAxMmVjMDM1YmMwODRmMTc1ODc2ZmVjYzM3NTE5NWY5YmU4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNDowMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCB0YXJnZXQgdG8gYnVpbGQgYWdlbnR4dHJhcCBmcm9tIHRoZSB0b3BsZXZlbAoKY29tbWl0IDk5NTY0N2MwY2ZlMDA0MTIyNjJjYzU3OTdiZGZhZTlkMDBiNzBjNzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTU6NDQ6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgdGhlIHVzZSBvZiAtTCBmbGFncyBmb3IgaW50ZXJuYWwgbGlicmFyaWVzIGFzIGl0IGNvbmZ1c2VzIGxpYnRvb2wuCgpjb21taXQgOTNkYzEyMzVhMGRiNThmZmQyOTYxN2NmZjAwZGMxMTI2Mzc4MDIwMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMTozMTo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgbWFrZSBhcHBzIHdvcmsgYWdhaW4KICAgIAogICAgYXBwcyBpbmNsdWRlIHNubXB0cmFwZCBhbmQgdGhhdCByZXF1aXJlIHRoZSBhZ2VudCBsaWJyYXJpZXMgYXMgd2VsbC4KCmNvbW1pdCBiYTQxNDg4ZWQ0NGNkMjNjMjU5NjNkNGZjNTZjNDc2ODUzYjJhYjU5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjI5OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogV2hlbiB5b3Ugc2F5IG1ha2UgbGlicyB5b3UgZXhwZWN0IGFsbCB0aGUgbGlicyB0byBiZSBidWlsdC4KICAgIAogICAgVGhpcyBpcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHNubXB0cmFwZCB0YXJnZXQgYXQgdGhlIHRvcCBsZXZlbCB3aGljaCBvYnZpb3VzbHkKICAgIGV4cGVjdGVkIGJvdGggbGlicyB0byBiZSBidWlsdCBhbmQgc28gZmFpbGVkIHRvIGNvbXBpbGUgYmVmb3JlIHRoaXMgcGF0Y2guCgpjb21taXQgMzA1N2M3M2UwOTM0NzNiZTQ2MjU0YmNkZmI0Y2E3ODhlNDMyZDFiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDMwIDA3OjMyOjUyIDIwMDggKzAwMDAKCiAgICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbiBNYWtlZmlsZS4KICAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgogICAgCiAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCiAgICB0aHJlYWRlZCBjYXNlIG9mIG1ha2UgbWlibGliIGFzIHdlbGwuCgpjb21taXQgNmVhZTM0MGZhMmE2NDA4NjU5Mjk4MmNjNTI3MzViYzAxNDg3ZDk3OApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMSAxOTozMzo1MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbGVuY2UgbGliYnNkIDAuMy4wIG5hZ2dpbmcKICAgIAogICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKICAgIHRyaWVzIHRvIG1ha2UgeW91IGluY2x1ZGUgYnNkL25saXN0LmggaW5zdGVhZC4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBkb24ndAogICAgbmVlZCB0aGF0IGNvbXBhdGliaWxpdHkgbGlicmFyeSBhcyB3ZSBrbm93IGhvdyB0byBkbyBpdCBvdXJzZWxmIHNvIGl0IGJlY29tZXMKICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCiAgICBlcnJvciBhbmQgdGhlbiBmaWd1cmVzIG91dCB0aGF0IHRoZXJlIGlzIG5vIHVzYWJsZSBubGlzdC5oIGFuZCBpZ25vcmVzIGl0CiAgICBmb3IgdGhlIGZ1dHVyZS4KCmNvbW1pdCBhYzM4Y2I1MzFiZWU1MGVkYzhkNGM4MzRmMzAwNWY1OTkyYzc3MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxOTowMzowMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogRW5hYmxlIHNlbmRpbmcgU05NUHYyIHRyYXBzIHdpdGggYW4gZW1wdHkgdmFyYmluZCBsaXN0Cgpjb21taXQgYTc1ZGUyOTcxNTI3YWMyZDJlODEyMDI0Mjk4NjAyYmIyNDEyZjMzNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCA4NDhmNjMwMGVmZTM4NDkyZmI0NTQ0NTFhMDMwZjBiN2U2ZmY4YzlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IGMxMzc0NDczZWNkOGVjOWUwMzEwMDEzODYxZWUxOGM4M2U1ZDZjNWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgU2VwIDMwIDAzOjI5OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQcm90ZWN0IHRoZSB1c2Ugb2YgJE9TVFlQRSB0byBlbnN1cmUgdGhhdCAndGVzdCcgZ2V0IGVub3VnaCBwYXJhbWV0ZXJzLgoKY29tbWl0IDdlOTdhMjA2MzNhNTdlYWUzOWQwMTViMjMzMzk0NjNjMzJmNWY4NDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIyOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBDb252ZXJ0IHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYyBpbnRvIHR3byB1bml0IHRlc3RzCgpjb21taXQgOWMwZGQ5ODE3NjQ1NzM0MmZmZmFhNWU3NGQ4MDJlMzE0NWVkNzBlNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMDg6NTY6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCB1bml0IHRlc3QgZm9yIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCgpjb21taXQgNWZkMjZlNGZhM2UwMDBlYTljODFjMzhhYjk3NWI3OTQ2ZWZlMjE1NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjggMTc6NDk6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBBdm9pZCB0aGF0IG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpIGZhaWx1cmUgdHJpZ2dlcnMgYSBkb3VibGUgZnJlZS4KICAgIAogICAgRml4ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgYWE0ZDQ3YzI2MDllNTI4MThjOWNkZjFhOGUyMjA1ZGU5YTMzNWEwYSAoc3ZuIHIxOTUxNSkuCgpjb21taXQgZDIyNTJkMDE2NjkzODA3MzI2ZjcyYjY2MTIzNjQ5ZGVhMDBhZjkxNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlcXVpcmUgYSBzZW1pY29sb24gYWZ0ZXIgT0soKSwgT0tGKCkgYW5kIFBMQU4oKQogICAgCiAgICBBbHNvLCBsZXQgT0tGKCkgZW1pdCBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dCBzdWNoIHRoYXQgYWxsIG91dHB1dCBpdAogICAgcHJvZHVjZXMgaXMgdmlzaWJsZSBpbiB0aGUgb3V0cHV0IG9mICJtYWtlIHRlc3QiLgoKY29tbWl0IDE0MjE5MjRiNDg1MjE0MjE5MmM1YmI5ZTkzZGRiZmVkNjllOTA4ZmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDIxIDIyOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCB3YWl0aW5nIGluZGVmaW5pdGVseSBpZiBhIHNlc3Npb24gaGFzIHRpbWVvdXQgemVybwoKY29tbWl0IDVmMjdmNGY3NGFlMmJkNWJhZjUwM2NmMzA2YjRmOWEyODQxYTU3Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MzI6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBydW5uZXIKCmNvbW1pdCAwOTcwMzk1OGNjNWVhODQ1OTI5YWUxOWVmOWUwODA0YWVjYWE1MTJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMjo0Mjo0MSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQXZvaWQgZmFsc2UgbmVnYXRpdmUgZm9yIFQxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSBjYXVzZWQgYnkgdGhlIHRlc3QgcmVzdWx0IGJlaW5nIHByZXNlbnQgaW4gdGhlIGhleCBkdW1wICgibW9zdGx5X2hhcm1sZXNzIikKCmNvbW1pdCA0MzkzMDAyNzlmNmYzMTQzODYzOGQyZjIyMmMyNGMzYzg0MWZhNmFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyNyAxMToxNjozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1pY3JvLW9wdGltaXplIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzCiAgICAKICAgIFRoaXMgbWFrZXMgdGhlIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzIGNhcnJpZWQgb3V0IGJ5IHRoZQogICAgY29uZmlndXJlIHNjcmlwdCBzbGlnaHRseSBmYXN0ZXIsIGVzcGVjaWFsbHkgb24gdGhvc2Ugc3lzdGVtcyB3aGVyZQogICAgZm9yaygpIGlzIGV4cGVuc2l2ZSAoQ3lnd2luKS4KCmNvbW1pdCBiYmM2ODAwMDRhMTM3NjAzOGRmZGM0MTcyZGJlN2I5ZTMxMWZiYTY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAxMDoxNDo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGVzdCBUMTMwc25tcHYxdmFjbWdldF9zaW1wbGUgcGFzcwoKY29tbWl0IDcwYjA2Y2Y3ODkyMDhlYWE4OTBiZmJjZDYzOGJkYjc3NWY4MTcwNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjUwOjU3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiB0ZXN0aW5nOiBwZXJsOiBGaXggYW4gaW5jb3JyZWN0IG1lc3NhZ2UgcHJpbnRlZCB3aGlsZSBydW5uaW5nIHRoZSBQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCgpjb21taXQgNzBiY2M4ZGUyZDBmYzkyYmJiODQ4MTgyMzYzMGZhYjliYzg3YWY3NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMTYgMTY6MTQ6MjQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBPYnRhaW4gdGhlIE1TWVMgcGF0aCBmcm9tIHRoZSBlbnZpcm9ubWVudAoKY29tbWl0IDYyNjI3NWUyZDFhY2FmYWU3MTQ0YTMzZWQzMDFhNDBmNTk2YjM3YjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDE0IDEzOjE0OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgc3VwZXJmbHVvdXMgbGluayBsaWJyYXJpZXMgZnJvbSBwcm9qZWN0IGZpbGVzICgqLmRzcCkKCmNvbW1pdCAzOGZjM2NhYTllZWIzODAwMjU0YjRmNmFkNmY4ZjQ3NjRjMGY4M2RiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTozNDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2NhbGxiYWNrX2FjY2VwdCgpIHJldHVybiAtMSAoZmFpbHVyZSkgaW5zdGVhZCBvZiAwIChTVERJTl9GSUxFTk8pCgpjb21taXQgNmM4YzdlOGFjYThmYzJlZWI1MjAxMGFlM2U5ZmVlNmRkODNlZjc4MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMTMgMDk6NTg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBvYnNvbGV0ZSBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbigpIGRlY2xhcmF0aW9uCgpjb21taXQgMDg2MGQxMWZkOGZjNWRiZGFhYWUyMjYxZmFlMmMwN2ZiOWMyYzgyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzo1NDo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogQXZvaWQgdGhhdCB0aGUgdHlwZWRlZnMgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjb25mbGljdCB3aXRoIHRob3NlIGluIDxzdGRpbnQuaD4gZnJvbSB0aGUgbXNpbnR0eXBlcyBwcm9qZWN0Cgpjb21taXQgZjhhMDM2ZjYzZmY2OGYwODM0MzYxMjBlMGFiZDQ3OGI2OTJhMmY2MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgOCAxMzoyMTowNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCgpjb21taXQgODM2YTIzZTEwY2E4MTBjMzg5OTkwMmQzMjU4NzYxNmE5ZDEyMDNkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTg6Mzg6MTMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IExpbmsgd2l0aCBwcm9wZXIgbGliZWF5MzIgbGlicmFyeQoKY29tbWl0IDdiMDdmZDZjZGVmNDllYzdiYjA0YjE2NmUyYTRmYmIzN2I1ODI4NDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTE6MTA6MzggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSBhbiBpbmNvcnJlY3QgY29tbWVudCBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoCgpjb21taXQgOThmNmQyOWQ5ODFmZjhlNjA3NjAwYzYzZGFkYjI0MDUzNTYyOTgwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDo0OTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBJU0RFRklORUQoKSBjaGVjayBmb3IgYW4gZXhhY3QgbWF0Y2ggaW5zdGVhZCBvZiBhIHByZWZpeCBtYXRjaAoKY29tbWl0IDUyY2QwMDMxYTMxZjY5MmYxMzI2M2E5NGMzMzVkMDZiZTE0NTQ4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRob3NlIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBmb3Igd2hpY2ggU05NUENPTkZQQVRIIGFuZC9vciBTTk1QX1BFUlNJU1RFTlRfRElSIG1hdHRlcgoKY29tbWl0IGY1Y2Q4OWJkMzM1NmRkNzRlMTU1NmMwYjUwOTY2YTY0M2YxOTIwODUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBmcmFtZXdvcmsKCmNvbW1pdCBkZWVkZDUyYzgzNGE2NDQ4ODUyYTA2Nzg1NTM2ZTEzODY1OTY5Njk0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMIGJpbmFyeSBkaXN0cmlidXRpb25zCgpjb21taXQgZDU1YmQ0ZTA1NDlmMDNiNmZkMzI1NjJjMmFhN2ZlMzkyNzJhOWVmNwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTkgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IGFjMmFlZDNjOTRiYjJlYmI0NzNhZjBhMWUyMGYwNTYxYWQ2Mjk5NTYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjExIDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjEgLT4gVjUuNy4yLnByZTIKCmNvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQoKY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQoKY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTA6MTIgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIxOjM4IDIwMTIgKzAxMDAKCiAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAoKY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMDo1OCAyMDEyICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQoKY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMToxMDo0OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNzoyMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNTozOSAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo1NDoyNyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NTo1OSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKCmNvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgMjggMTA6MTg6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKCmNvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowOToyNiAyMDEyICswMjAwCgogICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0Cgpjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDM6NTggMjAxMiArMDIwMAoKICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKCmNvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxMzo1NjowMSAyMDEyICswMjAwCgogICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKCmNvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1heSAyNyAwNjoyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZwoKY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDI1IDA5OjAyOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKCiAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgoKY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgpjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCgogICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCgpjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCgogICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgoKY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKCmNvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCgogICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCiAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKCmNvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZwogICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcwogICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKCmNvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCgogICAgRml4IHR5cG8KICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCgogICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCiAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFkZjc0YmY3NTNkMzk3MDM1N2FmZDYzMzgwMzI1NjI0MWQ5YzdiODcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKCiAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQogICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCiAgICAgIGFuZCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQoKY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDEyOTA2NTc4YWIzMGNmNzc2ZDA4MGMwZWYzMDI1YjMwMzM0ZDc2NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEZpeCBldmVuIG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCgpjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAoKY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjNzcyNTE5MjQ3OGFlYzAxOGZiNGFlZmE2MDk0NmUwNGE0MDZjMDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgcmVhZGluZyBmcmVlZCBtZW1vcnkgd2hlbiBkZWxldGluZyBhIHJvdyBmcm9tIGEgdGFibGUKCmNvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCgogICAgRXh0ZW5kIERJU01BTi1QSU5HLU1JQiB0ZXN0Cgpjb21taXQgOGE5YjU3MjkxNDUzY2I4YWVjMjhlNzY2YzU5NDcwMWVkMTljNGZjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IDMKCmNvbW1pdCBlNWM5YTMyZjc5ZWFjMmU4NTUyN2M5Y2YwNTA4N2NkYWU5YjM1YTZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCgogICAgRHJhZ29uRmx5IG5lZWRzIF9LRVJORUxfU1RSVUNUVVJFUyB0byBjb21waWxlIGlwdjYgY29kZQoKY29tbWl0IGNkNDNiYzA5YTM5YmQ5N2ZmNWU3MTlhMmNlMjMyY2U0MjQ2MDBhNjUKQXV0aG9yOiBEYXZpZCBJbWhvZmYgPGRpbWhvZmZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Cgpjb21taXQgZTJmYzE1ZjllNWE2ZTNlMzZiZTVmNDg5NjAxY2JmNmJmNzMxOTE3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA0MzJmZTNkZGY1NGYyYzk4ZjkzNjk1OTQ2OWNiOWIwMTRkNTk5ZjA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBwZXJsIHRvIGRvIHBhc3NfcGVyc2lzdCB0ZXN0Cgpjb21taXQgMzdkMjc3MGNmNTBjOTgwMjNlZWJhOTBlMjVkMzcyYmZmNzMxNmFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlci5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDg2YTk0OGQ4NjkxZTg4MWQ1NTU5MWRjYWJkZGMyNzM5Y2U3MmIzMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQG5iYS1saW51eC5zYi5zdGF0c2JpYmxpb3Rla2V0LmRrPgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgoKY29tbWl0IGZlMjZhM2M0ZjI5ZjA0NmJmNjVlZDUyZTlkOTQwNTRiNjc1ZmJjNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKCmNvbW1pdCA3NDViYWZjZGNjOWM4ZTg0NjE2ZDRlMjc0ZGIyYTM4NGJmMjM0ZGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKCmNvbW1pdCBkYTY5MjVlNjc2M2NhZGJlMDJmNGE4YmJmZTY4YTM2MmU1MzVhZDVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCgpjb21taXQgZmE2MDZkZDdjYTZhZmY5MzA4ZDRlOGIwMWJiY2RlMTQ4ZjQ0MTI3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKCmNvbW1pdCA2MTdhODNiYTc5OTU3NWM4NGM2NmY2YjFjNDgwZWY2MzMxNjFhNjRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAoKY29tbWl0IDYyNWY1NWMyNzJlYzYyODFlMzhkOGUzMGViNTNmZDUxNTE2YjAwYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCgpjb21taXQgYjQ4ZjE5YWQ0YjRhYTY4YzNlMTZlMmE3MmRmMzdiOWMwY2QzNmM0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCmNvbW1pdCBkNzRjYjM5NjYxNzU4OTI1NjJmNWUzYTliMTY4M2FjYmEyYzIyZTA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCgpjb21taXQgMGIxYTc3Njc0Njc4Y2M5YTE1YmUzZTc3MDBkM2NlZjY1MGVkMDJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yawoKY29tbWl0IDEzOTAyM2NkM2FiNTE2MzFjYzEwZTI4NjZkNzFhYmNmOTlhZTRjMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKCmNvbW1pdCAxNjliNmFhYTdiNjE4MjdjYzFhZDBiM2FlZWFlM2E3MjI5ZGQyNWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKCmNvbW1pdCBhMGJlMzJhZDA1M2E3MWZhOTYxMzRkNTVlNTQyYmIwN2Q0ZjAyOTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCgpjb21taXQgYmY5YmZmNjQ1NTY3ODdkNzY2ZWUyZWYyZDU3OGFmYjkyMDcxOWYzYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAoKICAgIFJlZ2VuZXJhdGUKCmNvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMvLS1kaXNhYmxlLWFnZW50IHRvZ2V0aGVyIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdAoKY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgZGVjbGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBvcGFxdWVfc3BlY2lhbF90eXBlcyB1bmxlc3MgdGhhdCBvcHRpb24gaXMgc2V0LgoKY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDE5OjUwOjAzIDIwMTIgKzAxMDAKCiAgICBDaGVjayB0aGF0IHRoZSBkYXRhIGV4aXN0IGJlZm9yZSB0cnlpbmcgdG8gcmVhZCBpdAoKY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTWFyIDE0IDAxOjA1OjMzIDIwMTIgKzAxMDAKCiAgICBQYXJ0aWFsbHkgcmV2ZXJ0ICJNZXJnZSByZW1vdGUgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvIFY1LTctcGF0Y2hlcyIKICAgIAogICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCiAgICAKICAgIDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAgKGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlKQogICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQogICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCiAgICAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiIChwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZykKICAgIAogICAgYW5kIHBhcnQgb2YKICAgIAogICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKICAgIAogICAgVGhpcyByZXZlcnRzIHRob3NlIHJldmVydHMuCgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDRiOTRkNzk2OTE4YTRlZWFlNjhhYjIxYWE1M2Q0NDRhOGI1YzI5MjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgY29tcGlsYXRpb24gb24gRnJlZUJTRCA0Cgpjb21taXQgMTBmZTZiODMzMjRhZDM3ZDE4YjkzN2NjOGM2ZGU5NGRlNTM0ZDAzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgZTExMjJlZGMxYTVmZTc5NzZiMDY1MDQ0MTM0ZDM5ZTdkYjU5ODVlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgYTYxM2QzYTgzNDkxMjIwNmQxYmE1OTcxZTQ0MWEzZWE2YjM2YWYyMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMGVmMzRlNjUxOWRmY2I4MmM5N2RmODQyNzU0N2MwOGRjZjgxZTY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KICAgIAogICAgTm93IGl0IGR1bXBzIHBhY2tldHMgYWdhaW4uCgpjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMQoKY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjA1IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU5OjM4IDIwMTIgKzAxMDAKCiAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQoKY29tbWl0IGNlODU4MzI5MzJjY2Q5MTZjNDIzMTkxMTRjNDA4ODVhNDY2YTlkMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTY6NDAgMjAxMiArMDEwMAoKICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKCmNvbW1pdCAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE1OjA4OjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgoKY29tbWl0IDUxODkxN2U5ZjM5ZjdhOWQzYzNiZjNhODY1ZThhYzBlMzAyNmQ2MDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTQ6MDQ6NTQgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiA5IDEyOjA0OjA0IDIwMTAgKzAwMDAKCiAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTQxZjExNWU0MDMwNGM5NDFiYTE3ZDY3ZTI0NzEwNzIyZDkwNzQxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KCmNvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlIGlmIGl0IGlzbid0IG5lZWRlZC4KCmNvbW1pdCA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2Ugb3B0aW9ucy4KCmNvbW1pdCAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDQ0YWEyNjU4OTFjZDU2M2Y3ZjQxMTRlZjI1ZGNmN2FhZjNiMTRlOWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDQwMDIyYTY5Nzk1ODI1OWNjZmJiM2ZlZDQ0ZWIzYzQ3MmY1ZTgzN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAidGVzdCAtZSIKCmNvbW1pdCA3NzNhZjBjNDJlMDc3YmViZGFlY2YxYzBjYWYzOTMyODVhNzY4OGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBuc3JvbGx1cCBjb21wbGljYXRpb25zCgpjb21taXQgZWU3MTA0OWMzZTIxYzFkMGUzNDI0Mjk3MTM2NjUyYmJlMGUzOWQ4NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCgogICAgbWliZ3JvdXAvaWNtcC5jOiBhZGp1c3QgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSBvbiBCU0QncwoKY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAoKICAgIGRvdDNTdGF0c1RhYmxlIGhhcyBidWdzIDotKAoKY29tbWl0IGRmZmFjZjZmYTA3NTVlMTcwMGNiYWMyNWI4NDQxODVhYmQ4MDdhMGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAoKICAgIHBhc3NwZXJzaXN0IHRlc3QgbmVlZHMgL3Vzci9iaW4vcGVybAoKY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAoKICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0Cgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAoKICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKCmNvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKCiAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKCmNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKCmNvbW1pdCAxZmExZmVlMzY5M2Y2N2I4MjAyMjM4MDZiM2Q3M2FmZDRjNTBlYzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKCiAgICBTaWxlbmNlIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCA5MzI2M2I5OGE1ZGIzNDRjZjJjNGQ0ODljNDM5NzFlN2IyOWNkYjAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCgpjb21taXQgZjMyMTQ0MDI2NzJjYTE5OWZkNTMxZTY2MTIyYmY5NmM0ZDlhNGViNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMmU3NGFjYjZmMTllNDcyOWNlZGUwYWI0M2U5MzE5NjFjYjIzYWFlYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43Cgpjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42Cgpjb21taXQgNDMyY2JiN2E1NTAxYWI5MGQ2NmQwYTgzZTczMWU3MzQzYmMwNGIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAoKICAgIENvcnJlY3QgdHlwb3MKCmNvbW1pdCA2YTZjOWJiYzc1ODRmMTk2YTExODVjYzE5MzUyMDRmMTIwNjgxMWVkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCgpjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAoKY29tbWl0IGFmODM2OGVkODg5OGE3OGQwODY4YjQ3YWY0NmJjOWRiMDdkMWM3NjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQxNDc3MzogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKCmNvbW1pdCAxOWUyNzE1ODA3ZmUwNmZkMGJhZWRmODgxNjUwMTFhZWU5MzNlNzU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCgpjb21taXQgNjVmNzk2MmY5MzJjOWI3NWM1YmJiYjA0N2QxZTI2YWU2MDk3OGU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ4OTYzMTogRml4IGluY29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgbW9uaXRvcmluZyBmbGFnCgpjb21taXQgYWMxNjYwNTFiNmEwOTJkZDRhNTk0MzI2ZWM4NWUyZjY5OWI2MjU0NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBCVUdTOiAzNDc0NTkwOiBEb24ndCBtYXRjaCB1bmRlcnNjb3JlcyB3aXRoaW4gdGhlIHNvdXJjZSByb290IGZpbGVuYW1lCgpjb21taXQgODc5YmY3MDc5ZDM0ZmE0NmY2ZmNmNTRhMDFjODUwMGJlYWVjZTU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ2MDM2NDogRml4IHVzZSBvZiBibG9jayBmYWN0b3Igd2hlbiBkZXRlY3RpbmcgZXJyb3IgY29uZGl0aW9ucwoKY29tbWl0IDAzNGYxYzU3MmY2ODNlYTQyODU4MzA3NDQ3MWU1ZDVkMTNiNTE4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IDM2NDIzZTIxMGJmYjY1ZWYxMjFjNmE2NmFlYzQzOGM3YzIzN2QzZGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDU0MTY4OiBjb25maWd1cmU6IEZpeCBidWlsZGluZyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IGVlZDBiY2JjNDNmZWExODI1OWYwZjYzYjIwODFiNmQxMDUzNWEwNTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgYmFieS1zdGVwcyB3aGVuIGNvbXBpbGVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0LgogICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4Cgpjb21taXQgZWM2YTIzMDMwZTVhMjA3MmMxOWMxOGMxZDljMTI0Mzg3ZGE1NmI3YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAoKICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCgpjb21taXQgZjEzMzIwNTAwMjk0YmIyNDBmNjNjNmRkN2QyZTlhMjIwOGViNzQwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGM0Mjc2YjYyMzJjMjkxNDVjMDM5ODg0ZTZiNWE2YjZkYTRiOTM4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAwMWM5MzBlZGNjMjU3MDBkNmI1ZmIwMzc2ZjU1YTI2NDI1ZTEzZmIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDI0IDE0OjAwOjMyIDIwMTIgKzAxMDAKCiAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCgpjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjQgMDc6NDM6MjIgMjAxMiAtMDgwMAoKICAgIHNldCBNRVJHRV9BVVRPRURJVCBiZWZvcmUgbWVyZ2luZyB0byBhdm9pZCB0aGUgZnV0dXJlIGdpdCAxLjcuMTAgZm9yY2VkIG1zZwoKY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjI3OjU0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAoKY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjAzOjMxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgc3ltYm9sIE5FVFNOTVBfRVhJVF9PTl9CQURfS0xSRUFECgpjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IHNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKCmNvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCgogICAgdGVzdGluZy9SVU5URVNUUzogRml4IGEgYmFzaGlzbQoKY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgJWxkIHZlcnN1cyB0aW1lX3Qgb24gc3lzdGVtcyB3aGVyZSB0aW1lX3QgaXMgYSBzeW5vbnltIGZvciBsb25nIGxvbmcgaW5zdGVhZCBvZiBsb25nLgoKY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKCiAgICBGaXggc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMgZmlsZSBoZWFkZXIKCmNvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCgogICAgSUYtTUlCOiBkbyBub3QgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgKD4+IDMyIG9mIGEgMzItYml0IHZhcmlhYmxlKSB3aGVuIHVwZGF0aW5nIGEgY291bnRlciBhbmQgaWZpX2lwYWNrZXRzIGlzIGEgMzItYml0IHZhcmlhYmxlCgpjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKCmNvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQogICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCgpjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKCmNvbW1pdCAwZmJiYjlhOWUyOTA2YTdhZjk1Njk1NzA2MWQ0ODU4NzQ0NjJhZWE5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cwoKY29tbWl0IGYzMDhkNWJhZmIwNWQ3OGVkNDAzMGM0ZWNmZjMyNGI2Y2JkYTY4MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0NmYwZmMxYjdmYzI2YTIyNTc2M2JjNjVjY2E1MjBhMWM1OWYwMjUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKCiAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCgpjb21taXQgZGViYWM0OThmZTg0MTAxMTAxMDdhMmZlNjRmOGFmYjc0OGVkYWEwNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQoKY29tbWl0IGZhZmM5OWNkODllNzNlYzdlMDBiZjczNjBkMGI0ZmE2MTk0NGE0ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAoKICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCgpjb21taXQgN2FmMjAxM2RlOGJmMWIzNzljMDc2ZGI0ZTEwNDUwOGUxNzg3NGQzZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCgogICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjQ2OjI5IDIwMTIgKzAxMDAKCiAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCgpjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIxOjI4IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjA6MjIgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToxNzowNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCgogICAgSW4gYWJvdmUgY29kZSwgb2xlbmd0aCBpcyBjaGVja2VkLCBzbyBsZXQncyBjaGVjayBpdCBhbHNvIGhlcmUuCgpjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIGNvbnRleHQgaWYgaXQncyBOVUxMLgoKY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVmZXJlbmNlIE5VTEwuCgpjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKCiAgICBEb24ndCBjbG9zZSBOVUxMIGZpbGUuCgpjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTCB3aGVuIGEgdHJhbnNwb3J0IGRvZXMgbm90IGhhdmUgZl9mbXRhZGRyLgoKY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBpZiBhIHJlZ2lzdHJhdGlvbiB3YXMgcmVhbGx5IGZvdW5kLgoKY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB3aGVuIGRpZmZsZW4gaXMgU01VWF9NQVhfUFJJT1JJVFkgKHdoaWNoIGlzIGhpZ2hseSB1bmxpa2VseSwgYnV0Li4uKQoKY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3NpbmcgdmFsdWUgaW4gc2V0RXZlbnQuCgpjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKCiAgICBEZXJlZmVyZW5jZSBlcmVnIG9ubHkgaWYgaXQgaXMgbm90IE5VTEwuCgpjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKCiAgICBBcyBwZXIgYWJvdmUgY29kZSwgdGVtcGxhdGVfdjJwZHUgY2FuIGJlIE5VTEwsIHNvIGNoZWNrIGl0IGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCgogICAgVXBkYXRlZCBsYXN0IGZpeCB0byBuZXcgZXJyb3IgcmVwb3J0aW5nIHN0eWxlLgoKY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgc2lnc2VndiB3aGVuIGVtcHR5IGNvbmZpZyBsaW5lIGlzIHBhcnNlZC4KCmNvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAoKICAgIEZpeGVkIChoaWdobHkgdGhlb3JldGljYWwpIHNpZ3NlZ3Ygd2hlbiBzcC0+c2VjdXJpdHlFbmdpbmVJRCBpcyBOVUxMLgoKY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCgogICAgQWRkZWQgTlVMTCBhbmQgbGVuIGNoZWNrIGp1c3QgaW4gY2FzZSBzb21lb25lIHByb3ZpZGVzIHZhbHVlID0gTlVMTCBhbmQgbm96ZXJvIGxlbiAoLT4gTlVMTCBpcyB0aGVuIGRlcmVmZXJlbmNlZCkuCgpjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKCiAgICBFeHRlbmQgdGhlIE5VTEwgY2hlY2ssIGkuZS4gcmV0dXJuIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtb3ZlLgoKY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgc3BhcnRhJ3MgY29weXJpZ2h0Cgpjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAoKICAgIHB1bGxlZCBmdWxsIGNvcHkgb2YgZXh0cmFjdG5ld3MgZnJvbSBtYXN0ZXIKCmNvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHRvIGNoYW5nZSB0byB0aGUgbmV3ZXIgbG9nIGdlbmVyYXRpbmcvcGFyc2luZwoKY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKCiAgICBjb25mbGljdGluZyBtZXJnZSBmcm9tIG1hc3RlciBmb3IgZXh0cmFjdG5ld3MKCmNvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1TQ0hFRFVMRVItTUlCOiBIYW5kbGUgMzItY2hhcmFjdGVyIHNjaGVkQ29udGV4dE5hbWUgdmFsdWVzIGNvcnJlY3RseS4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCgpjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjM5OjM3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgoKY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMzoyMSAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMTozMiAyMDEyICswMTAwCgogICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgoKY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMTozMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDA6MjIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjU4OjE0IDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDozOToyOCAyMDEyICswMTAwCgogICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgoKY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDoyNTowNiAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDowNzo0MyAyMDEyICswMTAwCgogICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgoKY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0NDo0MyAyMDEyICswMTAwCgogICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgoKY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0MzoxOSAyMDEyICswMTAwCgogICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KCmNvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6MzI6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KICAgIExpbnV4IG1hbiBwYWdlIGZvciBmY2xvc2UoMykgc2F5czogSW4gZWl0aGVyIGNhc2UgYW55IGZ1cnRoZXIgYWNjZXNzIChpbmNsdWRpbmcgYW5vdGhlciBjYWxsIHRvIGZjbG9zZSgpKSB0byB0aGUgc3RyZWFtIHJlc3VsdHMgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoKY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogU2tpcCB0ZXN0IFQwNjUgaWYgbm90IHN0YXJ0ZWQgZnJvbSBpbnNpZGUgYW4gTVNZUyBzaGVsbAoKY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCgogICAgTW92ZWQgZGVidWcgb3B1dHB1dCBiZWZvcmUgcmV0dXJuLgoKY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cnRvdWxsKCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCgogICAgQ29udmVydCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMToKICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgM2I2ODY1NjYyOTZkZDg3YmM0MmI3ZjExNjlkYWFjZGIzYzQ1Y2M1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAoKICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTE6NDI6NDIgMjAxMiArMDEwMAoKICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAoKY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDA5OjI1OjUxIDIwMTAgKzAwMDAKCiAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNThkZWU3MmZiMzQ3ZTI2MDBhMGE3YmQyMWYyMzI3MGQzYTAwZjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50Cgpjb21taXQgNTM5NmJmZTAzMmM4Y2JjNzNjOGZmNWQ0YjA4NWViYWRhOWY1OTg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgZmViM2FmMjhkY2FlMjIwMTVhZTg2NWEyZTVkZDhjNDE2ZTk5OTFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgYjdlMWFhMjU1YmFlNGEzNDUzZjllY2E2NDRhODc2NjM0MzUxZjExZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKiBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgIAlhcHBzL3NubXB0cmFwZC5jCiAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYwogICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAgCXNubXBsaWIvc3lzdGVtLmMKCmNvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMTo0NDo1MyAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMTQgMjM6MTI6MDUgMjAwOSArMDAwMAoKICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjdhM2UyZWNjYjk1ZjljOWQwODA5ZWZjYmRkY2Q4NjZlZTMwNjJkNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IgTkVUU05NUF9SRU1PVkVfQ09OU1QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMzozNToxMSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTE6NTc6NTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9zbm1wX3BlcmwuYwogICAgCXNubXBsaWIvc25tcF9zZXJ2aWNlLmMKCmNvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCgogICAgVW5icmVhayBuZXRzbm1wX21rdGVtcCgpIGFuZCBtYWtlX3RlbXAoKS4KICAgIAogICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCiAgICBBbHNvIHJlcGxhY2UgYSBzdHJuY3B5KCkgY2FsbCBieSBhIGNhbGwgdG8gc3RybGNweSgpIGFuZCByZXBsYWNlIHRoZQogICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgoKY29tbWl0IDIxMDE4NWMxNWQwZDY1ZjBlYTk4YjVlM2MyZTA3NzZmNjIyMmQxNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgogICAgCiAgICBBbHNvLCBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBjbGVhbnVwIGNvZGUgaW4gZnVuY3Rpb24KICAgIG1rZGlyaGllcigpLgoKY29tbWl0IDhiYjRlODZhYmNmOThmZjI4NzQ4YWYwYWY4OWM5OGU2NGQ1Y2Q5NjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgoKY29tbWl0IDY2ODAxNDdiMTM4ZWMxMTRmODFjNWQxMjhhYzkzNTBjODQ1MGQwODEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKCiAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcwoKY29tbWl0IDNhYWQxNWFlNTYwYWM4NTdlNzNjOTA3NjRlOTAzZTdjYTAyYjMyOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKCmNvbW1pdCBmYmExODhlZTgyMDEwYjJmMmQ4Y2EyZTQyNmJhNjU0NDk5YWIzZDBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAoKICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCgpjb21taXQgMjFkMjVkODZiOGU0OTA0ZDc5OGRjOGM5NmRhZGU5ZTUwNDg0NTdhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KCmNvbW1pdCBkMzY5MzE4NDFiMmZjMmNlYmM2MzY0YjI5NDkxMjlhMGFkNDJhZDFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgoKY29tbWl0IDBlZmRkMDIyZGEwOWFmMWI1ZTE2MTcxZmE3YTJiNTIzYzVkNmVjNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDU2MGJjNmMwOWI3NTE1NTZlZmQ2YjRjNDQ5NTc1MWIxMDlhOTNmOTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgODI5MWQ3YzViOTJhMzFkZDRmNTgyYjQ5N2Q0YjJhMDg1MzM2N2E1NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCgpjb21taXQgODhlMWYzNGRlNzMwMDU3NWZhNmRhYjg1N2VjZGRiMjQyYTg3ZGU4MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYmUxMzc1YTk5MjZlYmUwY2Q1Yjc4YTQwNDVjM2JkMTFjODM2NjRiMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgoKY29tbWl0IDFjYjI0NjI1MzcyMDYyYjE0YzcxZDdkZDUxZTIwZmVmNzczZTI3NDMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCgpjb21taXQgODRjODA3ZWUwMzI1MWU1NDg1NmU4M2Q2MmQwNmVhMDhiOGRmNTI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYzMxMGUzOTBiNWRkMDVmMjRiZTdlYjE5MDRjNzRlNDEyNTljOTNkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNDYwMGQxMTQzNGU4M2I4NjUzY2Y5ZjgxM2EzZDhiNjMwNDU1YjQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQoKY29tbWl0IDgwMTY4OTBhNDQ1ZjZhN2UyYTg3M2EwNDg3M2Q0ZTI3YjZlZTY0ZTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCgogICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KCmNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAoKICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KCmNvbW1pdCAyMDI1MjNjYTcwNGJkNzIyZGMxYWMwZTFlNmIwZTRiNGU1NDI0NDk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgoKY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAyZjRlNmFjZDcxNDE4M2YwMTViNzYzNjU3ZjhmMDg0NTkzMzU3ZTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKCmNvbW1pdCBjMzY1ZDgwYzE2YzJkMTdiMTYwMDExZThjMWY5Y2I5NTg5NTRlOWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+Cgpjb21taXQgZDA1OWZiODc4YjE0MzY1OTk5NTNjZWE1YTA3NzQ5OWRkY2RjYmNiNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KCmNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKCmNvbW1pdCBlMzI1ZWNiZmNlNzdmMDBhYzVjZjZmYmQ5NTdmOTU0OTVmNjFjNTliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKCiAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKCmNvbW1pdCBiZTkxNjFkM2E1ODk4ZTg2Mzc2N2Y5MjY2MTM0ODYxMjZjMmNiZjY3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgoKY29tbWl0IDg2ZTRjMmJlMDg1MmEwYTEzYjA2MDMwNzU3MjBiMzI2NGVjNzBkZGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKCmNvbW1pdCAzN2UyNzJkOGY3YjcxODBiYTE0MGZhMzg2YTVmZjA1ODk2OGEwOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KCmNvbW1pdCAyNjk5MzJmYTMyYzdjZDQ3OTU3NDg5Njk4ZTA5YmVlMzFmNjNiN2FmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6MTQ6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgoKY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjQwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCgpjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6Mjg6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgoKY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFwcHMvc25tcHRscy5jCiAgICAJYXBwcy9zbm1wdHJhcGRfbG9nLmMKICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCiAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAJc25tcGxpYi9zbm1wX29wZW5zc2wuYwogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKCmNvbW1pdCAwMTUzODA1Yzk5YjkxOTczNjU5MzVjNWQxMWFlOWMzZDRiZmFhMGYzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKCiAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKCmNvbW1pdCAzZjg4ODVmYmVlOTQwNzc0OGZjMmYwNTczNzI4YTExYmEyYmMwMjNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAoKICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3NTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIxZWFhZjMwMjM2OWZkNDU1MmU4ZmVlN2I2YTgwNTA5MWVjMGE5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAoKICAgIFR3ZWFrIC0tZGlzYWJsZS1zbm1wLXNldCBjaGFuZ2VzCgpjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDM0MzM4NDY6IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAoKY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAoKICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQoKY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IHVzZS1hZnRlci1mcmVlLgoKY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IGRvdWJsZS1mcmVlLgogICAgCiAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQogICAgYXJndW1lbnQgb24gZmFpbHVyZSBpcyBpbmNvcnJlY3QuCgpjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDU5OiBGaXggc3BhcnNlbHkgYXVnbWVudGluZyB0cmlnZ2VyIHRhYmxlcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNGFlMDIxYjJlNjM4NDQzNzA4MWM1NjIzZjM2MGM4ODk2MzkwMTg4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjc6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgIAogICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAogICAgd2l0aCBSRUdfTk9TVUIgc2V0LgoKY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MDIzNzY6IGZyb20gTGVvbmFyZG8gQ2hpcXVpdHRvOiBSZWNvZ25pc2UgUmVpc2VyRlMKICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCgpjb21taXQgYjVhYzRhMDRkY2Q1NDcwZDA4ZDAzMzIxYWJjZDFlOTgyNjIxZTZlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgMmIzN2U0ZThmMjUwYTBkODgyMTE5OWE3NGFjM2Y0ZTViN2I3YmFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgM2QwODM0NTE1NmM0MTkzMzNkZTk2OWYxM2QyMWZjZWM3ZTE4ZTk0ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgY2Q4NTlhZDUxYzRmMThkNWIwZmM2OWRkNjY5ZmNiMDUxYzc5ODk2OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKCmNvbW1pdCAzMGZmNThkMDlkNGM5ZDU0MzhiYjYyMTA1NGZkN2FkN2EyYTU5N2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgoKY29tbWl0IDZjMTQ4N2UxZDM2MGQzZDI2MGEzOWNiMWY1YjE1ZGE5NzgzOTUwNTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCgogICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCgpjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKCmNvbW1pdCBjNDQ2MDg2NzliODk3NTExNzZmMjhhMmU1NGQ1MjgyYjQ2ZTJhMDVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAoKICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZwoKY29tbWl0IGEwNWM1Zjk1MTM0NjE4MjRlNzkwM2FlOWFlOWE2YzMzODZlMzM4NzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCgogICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCgpjb21taXQgZTRhNWVkYzcyMzkzYmQzZGU5YmYxMmJjZWJhOWQ4M2JiZjdkZTcwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKCiAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGZhZTJlNWI4MzViOGRmMWVhZTQ3ZTRjZWJiNGViNDA0ZDcyODIzNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgoKY29tbWl0IDlkNThmODFhOTIzOWNmYmNmYzhlYmNlMzY3ZDIxZTliM2RjYjAyOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcwoKY29tbWl0IDBiYzhjMDhlZGVhZTdhZTA5NWYxMTYyNThjMjBhZTU3NjdkNjA2NTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCgogICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCgpjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAoKICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCgpjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAoKICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCiAgICAKICAgIFRoaXMgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBwbGF0Zm9ybXMgbGlrZSBTb2xhcmlzIDEwIHRoYXQgZGVmaW5lCiAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgoKY29tbWl0IDk1M2YyZTNkNDI1ZWRlM2I4NjNhMmU3Y2NiMGI0YmM4NjI5MjhiNTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAoKICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCgpjb21taXQgNjhhMTE3M2M0NmNmNzc2MDE0MjZjZjM5MWQ5YTg1Mjc5NGYyMDU3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKCmNvbW1pdCA0NjFkZDE2ZjNiMjY0NzMyMmNkY2U2MzYzMDgxY2M0NGJhNWE0OWI1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KCmNvbW1pdCA3YWNjYjY5YmFhMWZjMGI2YTM0MzlkMmU1NDljODZkYTM0NTNiYWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCgogICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyB0byBtYWtlIF9yZWN2ZnJvbSBtb3JlIHNpbWlsYXIgdG8gX3NlbmR0by4KCmNvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCgogICAgQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgY2FsbCB0byBnZXRzb2NrbmFtZSBhZnRlciBhbG1vc3QgcmVtb3ZpbmcgaXQuCgpjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZS4KCmNvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCgogICAgSW50cm9kdWNlIHRlbXBvcmFyeSB2YXJpYWJsZXMgdG8gZWFzZSB0aGUgZXh0cmFjdGlvbiBvZiB0aGUgc2VydmVyIGFkZHJlc3MuCgpjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAoKICAgIFJlbmFtZSB0aGUgY21lc2dwdHIgdmFyaWFibGUgdG8gY20uCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgoKY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE1OjIyIDIwMTEgKzAxMDAKCiAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KCmNvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxMzo0MyAyMDExICswMTAwCgogICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCgpjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MDQ6NTYgMjAxMSArMDEwMAoKICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgoKY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTI6MDA6MzIgMjAxMSArMDEwMAoKICAgIFJlbW92ZSBhIGNhc3QKCmNvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDExOjU4OjA0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCgpjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMDowMjoyOCAyMDExICswMTAwCgogICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA4OjM3OjIyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZwoKY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDk6MDk6NTkgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBEZWMgOCAwNzo0Mzo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCiAgICAKICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAogICAgaW50byBwYXNzX2NvbW1vbi4KCmNvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCkF1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgNyAxNjoyNToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCiAgICAKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCiAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgIDBlYzA4OGFmYTI3Y2ZkYTRlNmVhNzhhYWU3Y2ZjNTUwNzU2NGVkZGUpLgoKY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRWxpbWluYXRlIGFuIHVudXNlZCB2YXJpYWJsZSAoTm93KQoKY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogTW92ZSB0aGUgbWFpbiBsb29wIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbgoKY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZCBlYWNoIGdldGdyZW50KCkgY2FsbCB3aXRoIGFuIGVuZGdyZW50KCkgY2FsbC4KCmNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0NDkzOTogQlVHOiAxNzk2ODg2OiBzbm1wbGliOiBBdm9pZCB0aGF0IHNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgb3IgYmluYXJ5IHplcm9lcyBpbiBpdHMgb3V0cHV0LiBUaGlzIGJlaGF2aW9yIGNvdWxkIGNhdXNlIHRydW5jYXRlZCBvdXRwdXQgaW4gc25tcHRyYXBkLgoKY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4OiBwYXNzIHVuc2lnbmVkIGNoYXJzIHRvIGlzcHJpbnQoKSBpbnN0ZWFkIG9mIHNpZ25lZCBjaGFycy4KCmNvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBoaW50IHZhcmlhYmxlCgpjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIHFvcwoKY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgI2RlZmluZSB2YWwoeCkgX19TVFJJTkcoeCkgYW5kIGNoYW5nZSB2YWwoeCkgaW50byBfX1NUUklORyh4KS4KCmNvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCgogICAgRm9sbG93LXVwIGZvciBjb21taXQgMWFhNzA0ZTogdW5icmVhayB0aGUgTVNWQyBidWlsZAoKY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKCiAgICBBZGQgU05NUDo6cmVnaXN0ZXJfZGVidWdfdG9rZW5zKCkKCmNvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCgogICAgQWdlbnRYIHN1YmFnZW50OiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgRG94eWdlbi1zdHlsZSBmdW5jdGlvbiBoZWFkZXIgZm9yIG5ldHNubXBfcmVnaXN0ZXJfZGVmYXVsdF90YXJnZXQoKSBhbmQgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgoKY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCgpjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE9ubHkgdHJhbnNmb3JtIHRoZSBhZGRyZXNzIHRvIHByaW50YWJsZSBmb3JtIHdoZW4gbmVlZGVkLgoKY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcC1icmlkZ2UtbWliOiBGaXggaW5kZXggaW50ZXJwcmV0YXRpb24uCiAgICAKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgogICAgc25tcC1icmlkZ2UtbWliIG9idGFpbnMgdGhlIGlmaW5kZXggdmFsdWUgZnJvbSB0aGUgc3lzZnMKICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bwogICAgaW5jb3JyZWN0IGRhdGEgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgogICAgCiAgICBlLmcuCiAgICAgICAgJCA+IHNubXB3YWxrIGxvY2FsaG9zdCBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yCiAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CiAgICAKICAgIGFjY29yZGluZyB0byB0aGUgc3lzZnMgYXR0cmlidXRlIHRoZSB2YWx1ZSBpcyAzNgogICAgCiAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CiAgICAgICAgMzYKICAgIAogICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgoKY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAyOSAxMjoyNzo0NiAyMDExICswMDAwCgogICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAoKY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6Mjk6NDkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiAyOCAwODo1MTozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KCmNvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNTowMjo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KCmNvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNDo1NTo0MiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKCmNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAwOTo0NDozOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KICAgIAogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KCmNvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCgogICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAoKY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCgpjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKCmNvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KCmNvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCgpjb21taXQgODVmODkzZTJiNjA1ZTY3ZjliZDA0NDNjNzRlMmVkMjY5YWE2ODU2NApBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAxNyAyMjo0MjozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KCmNvbW1pdCA1YzkxM2U1NDY1NmFlMDA5NmIxZmViNmRhOThiNWZjOWNhODFmMjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCgogICAgRGVmaW5lIHRoZSBmdWxsIE5ldEJTRCBoaWVyYXJjaHkgZG93bndhcmRzCgpjb21taXQgYjg4MTg0MWJkMDQ5M2RkNzFkNjMyNTliZGRlZDQ0OWIwNmYwMmMzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBjYTI5NGNmNzViYmM4ZTkwZGJmNDRlZTQwNDc4OTM1ZTkxZGIxNDg3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCBjZDMyYzJkZmYwNmI5YjQ1MmNjMThkNTUyZDJmMjIzNDA5MmM4MjljCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCB3YXJuaW5nCgpjb21taXQgODgzMTM2YzJiMmZhMDczOWY0MzdhOGNmYjY2MTRhY2NjNzZlMjY4ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAoKICAgIE1vcmUgbmVlZHMgZm9yIE5FVFNOTVBfUFJJbyBmb3JtYXQgc3BlY2lmaWVyCgpjb21taXQgYjgwODRhN2NjYzkwOWI2ZDZkYjdjMGU4ZTU5NmQ3ODY3MWY1Njc4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAoKICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQoKY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggbWlzc2luZyBmb3JtYXQgZm9yIEZyZWVCU0QgNAoKY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKCiAgICBGaXggcGFyYW50aGVzaXMgcHJvYmxlbQoKY29tbWl0IGZlNjI2OWIxOTAwY2Y0NGRjMjdhMTk5YTc2MWQxNWEwMWMzZjMwOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgYTRkYjlmOWZjMTNkMjFlY2ZmNDg4ZWI0MTAzNzZlZGRhNmMyODIzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncwoKY29tbWl0IDI1Y2ZjMTk2MmFlNTc2Y2NiMTU1OGRhMWUzZWY4YjZjMTdmNjNjMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKCiAgICBSZWFsbHkgdXAtdG8tZGF0ZSBtaWJzCgpjb21taXQgMGU4NmM3ODFmMzk4OWJmMDIyYzg5OTNhMTE4NjE3Yjc0YTc1NDIwYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogZ2V0IFNobWVtIGZyb20gL3Byb2MvbWVtaW5mbyBmb3IgMi42IChvciBuZXdlcikga2VybmVscwoKY29tbWl0IGJmMjY0ZDE1ZGVkN2FjYmJmMmUzODcxYjk4ZmQxZmNlZjQzZDllYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGNsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDU3ZmY4YTQwYmFlNWQ5YmNhZDE2MDg5MTQyYTljZjMyOGM5ZmExZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKCiAgICBkaXNtYW4vcGluZywgZGlzbWFuL3RyYWNlcm91dGU6IENsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDhhMjUwMmExNWMzMjE3Yjk1OTM5YTNjODM2MTY3ZDIzMGFjMzVmMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKCiAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwoKY29tbWl0IGRjZGQ3MDIxMTFkOGRhNWY1MzgwNGNmY2YwZGZkYWQ3MzE0NjhiZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCgogICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCgpjb21taXQgYmE2MTk4MDRlNTk3OGE4ZGY3NTQ4NDRlZmNjYTUyYjY5YjUwMTVmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAoKICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCgpjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCgpjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBNYXJ0aW4gV2lsY2s6IGZpeGVkIHNubXBkIGNyYXNoaW5nIHdpdGggJ3NlbGVjdDogYmFkIGZpbGUgZGVzY3JpcHRvcicuCiAgICAKICAgIE9uIDMyLWJpdCBzeXN0ZW1zLCBzbm1wZCBkaWVzIHdpdGggYWZvcmVtZW50aW9uZWQgbWVzc2FnZSB3aGVuIHVzaW5nIGZpbGUgZGVzY3JpcHRpb25zID4gMzIsIGUuZy4gd2hlbiBoYXZpbmcgPjMyIEFnZW50WCBzdWJhZ2VudHMuCgpjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDE6MjEgMjAxMSArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKCmNvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMDoxMiAyMDExICswMTAwCgogICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCgpjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTk6MDEgMjAxMSArMDEwMAoKICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZTIyMWU2NWZkYzFjNjhmMTk2ODY1MTcxN2RjYzljY2ZiNjQxNDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCgogICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCiAgICAKICAgIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCBhMGFmMzg1LgoKY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAoKICAgIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzLgoKY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdGhvc2Ugc3VwZXJmbHVvdXMgcGFyZW50aGVzZXMgdGhhdCB0cmlnZ2VyIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuCiAgICAKICAgIEFmdGVyIDMwIGRheXMsIHZhbHVlcyBmcm9tIC9wcm9jL3N0YXQgKG9uIExpbnV4KSBjYW4gZ2V0IGJpZ2dlciB0aGFuIDMyYml0cyBhbmQgc25tcGQgY2FsY3VsYXRpb25zIG1pZ2h0IHJlbmRlciBjb3VudGVycyBsaWtlIHNzQ3B1VXNlciBuZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHRyYWNrZWQgYXMgdGhlIGxhcmdlc3QgaW50ZWdlciBhdmFpbGFibGUuCgpjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCgogICAgZHNrSW5kZXggd2FzIG9mZiBieSBvbmUKCmNvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKCmNvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCgogICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCgpjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NDM6NTIgMjAxMSArMDEwMAoKICAgIEZpeCBpcHY2IHN0YXRpc3RpY3MgbG9vcGluZyB0b28gZmFyIHdoZW4gc2Nhbm5pbmcgaW50ZXJmYWNlcy4KICAgIEZpeCBUQ1Agc2Vzc2lvbiB0YWJsZSByZXBlYXRpbmcgZGF0YSBmcm9tIGZpcnN0IGVudHJ5IGZvciBhbGwuCgpjb21taXQgMzQ5NTkxZDAzZTE3YTU1YjQzZWFjYzZhNjg3YjAyZmQ4ZDRlOTUyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgcGVybCBzdXBwb3J0IHdpdGhvdXQgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzLgoKY29tbWl0IDFlYzcxMTBlNzJiY2UxNTYxZjc0NjUxNzQ1OWQ2ZjA0MzAxNmI2MGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBhc24xIHRlc3QgcGFzcyBldmVuIGlmIHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcyBhcmUgcmVtb3ZlZC4KCmNvbW1pdCA2ZDI2OTE4YWY1NWFhMzY2MmE3MjA1NDJkZTc3YmJmMzliMGEzZTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nIHdpdGhvdXQgb3BhcXVlLXNwZWNpYWwtdHlwZXMuCgpjb21taXQgMjliZjY5ZDcwNDI0ZjM1OWQ5Yzg3ZjA3YTk2NGEwOTk0MTU2NDlhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KICAgIAogICAgVGhpcyBpcyBhIGJhY2twb3J0IG9mIGNvbW1pdCA5ZjY1M2Y3LgoKY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0Mjg1MDY6IEZpeCBuZXRzbm1wX2dldGhvc3RieWFkZHIoKQogICAgCiAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCgpjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjcgMDg6MjA6MDAgMjAxMSArMDIwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKCmNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAxMDo0MjoyOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCgpjb21taXQgMjc1ZDIzZWRmZGViZTA1NzdiMDg0MjFlNGM2YzkzNmFlMzliN2ZkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzM6MDkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcwoKY29tbWl0IDQ0OTVlMTdjMDc4YWM2OTk3YTljN2ZhMWE4OGRiMDY0NGU5MTk0OTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMyOjQ2IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgMTM5NTJmNmJlZTlmNDA4ODY3YWI2ZDJmZGZkZGU0ZjI4NDA3NDk1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI2IDE0OjA1OjE2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgCiAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQogICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCiAgICBtYXkgaGFwcGVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCiAgICBzZXNzaW9uLgoKY29tbWl0IGFlMDUyNDcyYjIyNzIwZDA4MzY5ZTg1MTI3ZGIyMTQyNDVkZjJlM2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCiAgICAKICAgIFdoZW4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyIGZhaWxzLCBpdCBmcmVlcyBpdHMgcmVnaW5mbyAtPiBuc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KCmNvbW1pdCBjMTk5YmY5MWI2MjM5ZjI2YjJhYWIzNGU4NTc1ZTBmMGRmOWNkZTliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiB4ZnMsIGpmcyBhbmQgdnhmcyBmaWxlc3lzdGVtcyBhcmUgbm93IHJlY29nbml6ZWQgaW4gaHJTdG9yYWdlVGFibGUKCmNvbW1pdCA3NDdmZGM3MWU2NGQwOWUwODA5MjhlYmJiNGQwNGNiZGUzOTA2Nzk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ2Vycm9yIGZpbmRpbmcgcm93IGluZGV4IGluIF9pZlhUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUnIG1lc3NhZ2UuCiAgICAKICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KCmNvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyMyAwODo1MToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgogICAgCiAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCiAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKICAgIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBmaXJzdCBtYWtlIHJ1biwgYW5kIHRoYXQgaGFwcGVucwogICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCiAgICBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlIGl0IHdvcmsgYXQgYWxsLgoKY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDA4Mzk4OiBGaXggYSBtZW1vcnkgbGVhayBpbiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLgogICAgCiAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIDliZjNkOTZkOTZhOGVjZDRhNWZjMzVjMzI2ZGM5Mzc0NjcwMDJiNmM6IEluaXRpYWwgSEFMCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KCmNvbW1pdCBjZjgyYjg5NGIyMjE3YzI2ZWRjNmYxMzU2MzUxYzkzMjQxNTYwNGUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCB2aWEgY29tbWl0IDZjYWMwNTAgKE1heSA1LCAyMDExLAogICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgogICAgc25tcGQuY29uZikuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNjo0NzoxNiAyMDExICswMjAwCgogICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDlmNjUzZjczZTVhYTcwZjBiZWYxMTc0NjMyZTk1NTk0Zjg3ZjY2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCgpjb21taXQgNGM4M2I5MjI5YTc0NTRmMzRmNmZmNzVmNjllNjdlNDAzMGM0MTliNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KICAgIAogICAgVGhpcyBjaGFuZ2UgaW4gYWdlbnQvTWFrZWZpbGUuaW4gaXMgbmVjZXNzYXJ5IG9uIHRoZSA1LjUgYnJhbmNoIGFuZAogICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAogICAgbGlicmFyaWVzLiBUaGlzIGlzIGNhbGxlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY3kgdHJhY2tpbmcgaW4gdGhlCiAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KCmNvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAoKY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCiAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KCmNvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KCmNvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KCmNvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKCmNvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBkZXBlbmRlbmNpZXMgb24gQEZFQVRVUkVUQVJHU0AgdG8gbWFrZSB0aGUgc3VidGFyZ2V0IHdvcmsgYXMgd2VsbC4KCmNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCgpjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSB0aGUgdXNlIG9mIC1MIGZsYWdzIGZvciBpbnRlcm5hbCBsaWJyYXJpZXMgYXMgaXQgY29uZnVzZXMgbGlidG9vbC4KCmNvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBtYWtlIGFwcHMgd29yayBhZ2FpbgogICAgCiAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgoKY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6Mjk6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgogICAgCiAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQogICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KCmNvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMDc6MzI6NTIgMjAwOCArMDAwMAoKICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgogICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCiAgICAKICAgIEJhY2twb3J0IHRoaXMgdG8gVjUtNCBhcyBpdCBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uIGluIHRoZSBzaW5nbGUKICAgIHRocmVhZGVkIGNhc2Ugb2YgbWFrZSBtaWJsaWIgYXMgd2VsbC4KCmNvbW1pdCA2ZWFlMzQwZmEyYTY0MDg2NTkyOTgyY2M1MjczNWJjMDE0ODdkOTc4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogU2lsZW5jZSBsaWJic2QgMC4zLjAgbmFnZ2luZwogICAgCiAgICBJZiB5b3UgaGF2ZSBsaWJic2QgMC4zLjAgaW5zdGFsbGVkIHRoZW4gdGhlaXIgdmVyc2lvbiBvZiBubGlzdC5oIHdhcm5zIGFuZAogICAgdHJpZXMgdG8gbWFrZSB5b3UgaW5jbHVkZSBic2Qvbmxpc3QuaCBpbnN0ZWFkLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGRvbid0CiAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcwogICAgcHVyZSBuYWdnaW5nLiBUaGlzIHBhdGNoIGFkZHMgYSBkZWZpbmUgdGhhdCBjaGFuZ2VzIHRoZSB3YXJuaW5nIGludG8gYW4KICAgIGVycm9yIGFuZCB0aGVuIGZpZ3VyZXMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gdXNhYmxlIG5saXN0LmggYW5kIGlnbm9yZXMgaXQKICAgIGZvciB0aGUgZnV0dXJlLgoKY29tbWl0IGFjMzhjYjUzMWJlZTUwZWRjOGQ0YzgzNGYzMDA1ZjU5OTJjNzcxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKCmNvbW1pdCBhNzVkZTI5NzE1MjdhYzJkMmU4MTIwMjQyOTg2MDJiYjI0MTJmMzM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IDg0OGY2MzAwZWZlMzg0OTJmYjQ1NDQ1MWEwMzBmMGI3ZTZmZjhjOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgYzEzNzQ0NzNlY2Q4ZWM5ZTAzMTAwMTM4NjFlZTE4YzgzZTVkNmM1YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCgpjb21taXQgN2U5N2EyMDYzM2E1N2VhZTM5ZDAxNWIyMzMzOTQ2M2MzMmY1Zjg0OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKCmNvbW1pdCA5YzBkZDk4MTc2NDU3MzQyZmZmYWE1ZTc0ZDgwMmUzMTQ1ZWQ3MGU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKCmNvbW1pdCA1ZmQyNmU0ZmEzZTAwMGVhOWM4MWMzOGFiOTc1Yjc5NDZlZmUyMTU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgCiAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KCmNvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCiAgICAKICAgIEFsc28sIGxldCBPS0YoKSBlbWl0IGEgc2luZ2xlIGxpbmUgb2Ygb3V0cHV0IHN1Y2ggdGhhdCBhbGwgb3V0cHV0IGl0CiAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCgpjb21taXQgMTQyMTkyNGI0ODUyMTQyMTkyYzViYjllOTNkZGJmZWQ2OWU5MDhmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCgpjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgoKY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQoKY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKICAgIAogICAgVGhpcyBtYWtlcyB0aGUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMgY2FycmllZCBvdXQgYnkgdGhlCiAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCiAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgoKY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDEwOjE0OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCgpjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKCmNvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAxNiAxNjoxNDoyNCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50Cgpjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMTQgMTM6MTQ6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQoKY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKCmNvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KCmNvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKCmNvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KCmNvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEp1bCAxNCAxODozODoxMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5Cgpjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMToxMDozOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKCmNvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjQ5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCgpjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCgpjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawoKY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKCmNvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDIxOjQ5OjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQXZvaWQgdGhhdCBzbm1wZCBjcmFzaGVzIGlmIHN0YXJ0ZWQgb24gYSBzeXN0ZW0gd2l0aCBhbm90aGVyIE9wZW5TU0wgbGlicmFyeSB2ZXJzaW9uIHRoYW4gdGhlIG9uZSBpdCBoYXMgYmVlbiBidWlsdCB3aXRoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzMgLT4gVjUuNy4xCgoyMDExLTA5LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMQoKCjIwMTEtMDktMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5yYzMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMyIC0+IFY1LjcuMS5yYzMKCjIwMTEtMDktMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMwoKCjIwMTEtMDktMjIgIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgMDdmNjFhMDJhMjQwOTA5NmU1Yzk2MmNkMjExMTI2Mzk2YWQwOWQyYiBNZXJnZTogZWUwZDNhZAoKIGJkYTMyNGIgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgVGh1CiBTZXAgMjIgMTA6Mzk6NTkgMjAxMSArMDEwMAoKMjAxMS0wOS0yMiAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCBjNTVmNjA4ZjE2ZjE2MGY1ZTc5ZGMwNTdmODg3OGRlZjQ2Mjk3M2UxIEF1dGhvcjogRGF2ZQoKIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgVGh1IFNlcCAyMiAxMDozNToyNCAyMDExCiArMDEwMAoKMjAxMS0wOS0yMiAgU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjoKCiBDYWxjdWxhdGUgZGlzayBwZXJjZW50YWdlIHVzYWdlIHZpYSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljIHRvCiBhdm9pZCBpbnRlZ2VyIGFyaXRobWV0aWMgZXJyb3JzLiAgKENvZGUgYmFzZWQgb24gcGF0Y2gsIHJhdGhlciB0aGFuCiBhcHBsaWVkIHZlcmJhdGltKQoKMjAxMS0wOS0yMiAgU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjoKCiBDYWxjdWxhdGUgZGlzayBwZXJjZW50YWdlIHVzYWdlIHZpYSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljIHRvCiBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93IGVycm9ycy4gIChDb2RlIGJhc2VkIG9uIHRoZSBzdWJtaXR0ZWQgcGF0Y2gsCiByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQoKMjAxMS0wOS0yMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIENoYW5nZUxvZzogVGhlIG9ubHkgY2hhbmdlIGJldHdlZW4gVjUuNy5yYzEgYW5kIFY1LjcuMS5yYzIgaXMgdGhlCgogdmVyc2lvbiBudW1iZXIuIE1ha2UgdGhpcyBjbGVhciBpbiB0aGUgQ2hhbmdlTG9nIGZpbGUuCgoyMDExLTA5LTIxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiBjaGFuZ2Vsb2cgdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMSAtPiBWNS43LjEucmMyCgoyMDExLTA5LTIxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzIKCgoyMDExLTA5LTA0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogOiBjb21taXQgNGQ2ZGVmZGFlNzJjMzViMTA4MDA3NjE4MDMxM2QyOTEwNTY4NDc1YiBNZXJnZTogZDNhNzU4YwoKIDNiN2ZkYzQgQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4KIFNlcCA0IDE0OjQ2OjAyIDIwMTEgKzAyMDAKCjIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiA6IGNvbW1pdCBiYmUyYzE5YTAxZWNlYzAyNGY3NDFlMmU1NDcwMWFlNjIxMmY0YzNlIEF1dGhvcjogTWFnbnVzCgogRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4gU2VwIDQgMTQ6NDQ6MzggMjAxMQogKzAyMDAKCjIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiA6IGNvbW1pdCBkM2E3NThjZjMwMjU0YjgwNzA2YTQzZjE5MWMxNTIzOGIyY2I3M2M5IE1lcmdlOiBjMTA3Y2UwCgogMjI3ZGJkNyBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1bgogU2VwIDQgMTQ6MDg6MzUgMjAxMSArMDIwMAoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IDllZmE0NjdhOTcyYmI2ZTFjN2ZiZGFmMmUyNzQyOWQyOWY0YWI4OWUgQXV0aG9yOiBNYWdudXMKCiBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1biBTZXAgNCAxNDowMDoxMiAyMDExCiArMDIwMAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5wcmUyIC0+IFY1LjcuMS5yYzEKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZm9yIDUuNy4xLnJjMQoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzogZml4IEMrKyBjb21tZW50CgoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMxCgoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGMxMDdjZTA3ODQwOWQyNjViOWIyMThkNDlmMzgxNWI3OTVkYjFkYzMgTWVyZ2U6IGVhNGIzYjIKCiA5MTVhYThkIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDMwIDE5OjA3OjA3IDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0MjJiMDgyYTk1OTNjYTljNjVhYWM0NDllNmQxMjhhOWU5N2U5NGZiIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgQXVnIDMwCiAxOTowNjo1NiAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZWE0YjNiMjNmMzUwNTgzZTU2MjYzMjhiNTM2N2U2YzYxNzI1NWY5NSBNZXJnZTogYmNmMzhiOAoKIGIzNGQ1ZGMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMzAgMTY6Mzg6MjUgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDcxYzBkNzY1MDQ5MzcxMDYzMWZhMDhkNWRjNGRhZDUwMWE5YWE3NzEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBBdWcgMzAKIDE2OjM3OjQxIDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiMTNmNGQ4ODg2YjZhNGU3M2JjMDdkZjJiOTBkMWE2MTE1Y2YzZGZjIE1lcmdlOiBmN2UyMWYyCgogNjRlOTc3OCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxMTowOTozMCAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjVkMmE0M2Y5N2E1OTg1OGM5NDRlYmEyMjkwYjU5YjkzYzIzMGE2YSBNZXJnZTogODZlZmVlMgoKIGNmNGNmN2YgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMzAgMTE6MDk6MjkgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXV0by1kZXRlcm1pbmUgcGF0Y2ggYXJndW1lbnRzIGlmCgogcG9zc2libGUgZm9yIG5zcGF0Y2h0cnkKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2UgaXQgc28gdGhlIGdpdCBjb21taXQgbGluZSBjYW4KCiBiZSBjdXQvcGFzdGUgd2l0aG91dCBsaW5lYnJlYWtzCgoyMDExLTA4LTMwICBSb25hbGQgV2FobCA8cndhLWNvQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzk0NTg2OiBmcm9tCgogcndhLWNvOiBmaWxlIGRlc2NyaXB0b3IgbGVhayBpbiByZWFkX2NvbmZpZyAoK2ZpeCkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGRlc2NyaWJlIHRoYXQgbnNyb2xsdXAgbmVlZHMgdG8gYmUgcnVuIG5vdy4KCgoyMDExLTA4LTMwICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IDJiOTJhMGExZTNhMDYxOGM1MTVlYmQ5MDIyNzFiOTVjMDg5MzFhZmEgTWVyZ2U6IGEwODYzNDcKCiA4NmVmZWUyIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIFR1ZQogQXVnIDMwIDExOjI4OjE0IDIwMTEgKzAxMDAKCjIwMTEtMDgtMzAgIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOiBBcHBhcmVudGx5IElSSVggaGFzIGEKCiBkaWZmZXJlbnQgQVBJIGZvciBzdGF0ZnMKCjIwMTEtMDgtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IGRvbid0IHByb3ZpZGUgYSBmZWF0dXJlIHdoZW4geW91ciBhCgogY2hpbGQgb2YgYW5vdGhlciBmZWF0dXJlCgoyMDExLTA4LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvCgogVjUtNy1wYXRjaGVzCgoyMDExLTA4LTI4ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogYXBwcy9NYWtlZmlsZS5pbjogVXNlIHRoZSBmZWF0dXJlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSB0YXJnZXQKCiB3aGVuIGJ1aWxkaW5nIHRoZSBmZWF0dXJlIHNldAoKMjAxMS0wOC0yOSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaDogdGhlIGlyaXg2IGJ1aWxkIG9ubHkgZGVmaW5lcwoKIGlyaXg2LCBub3QgaXJpeAoKMjAxMS0wOC0yOSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHJlLWFkZCBzb2NrYWRkcl91bi5zdW5fcGF0aAoKIGNvbmZpZ3VyZSBjaGVjayAobG9zdCBpbiBwcmV2aW91cyBjb21taXQpCgoyMDExLTA4LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oOiAKCiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMgZG9lc24ndCBidWlsZCBvbiBJUklYIHlldAoKMjAxMS0wOC0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGEwODYzNDc5ZDgwOTYyYzY1Mjk0N2RmZGVlMTFiZGQxMzZjMGUwMTMgTWVyZ2U6IDUyNTA4OTMKCiBmOTVhYTMxIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBTdW4gQXVnIDI4IDIzOjM3OjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXgKCiBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkcyBtc2dfY29udHJvbC9tc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkcgogKGJhY2twb3J0KQoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzogYWRkZWQgcmVxdWlyZWQgZmVhdHVyZXMgZm9yCgogbWZkIGhhbmRsaW5nCgoyMDExLTA4LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogLmdpdGlnbm9yZTogYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcwoKCjIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOiBub193cml0ZV9zdXBwb3J0IHN1cHBvcnRlZAoKCjIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6IGhhbmRsZSBuby13cml0ZS1zdXBwb3J0IHdpdGgKCiBpZmRlZnMKCjIwMTEtMDgtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1MjUwODkzMjdhYmE3ZDAxZDYzM2M2MzRjNmI2ZjA2ZGU0MmFjYmI4IE1lcmdlOiAxYmIyMzRhCgogMDRmZDcxYSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyAyNSAwNjo1NzoyMSAyMDExIC0wNzAwCgoyMDExLTA4LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZWE4YmVkNzllODFjNDJlMzNjYmYzN2NhNmYzYzAzYzU0OTk4N2IyMiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyAyNQogMDY6NTY6MjIgMjAxMSAtMDcwMAoKMjAxMS0wOC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weTogdXNlID4+IHRvIHByaW50IHRvIHN0ZGVycgoKCjIwMTEtMDgtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZTogQ0hBTkdFUzogYnVpbGQ6IERvIG5vdCBnZW5lcmF0ZQoKIGFuIG91dHB1dCBmaWxlIG9uIGZhaWx1cmUgbWFrZSBzdXBwb3NlcyB0aGF0IG5vIG91dHB1dCBpcyBnZW5lcmF0ZWQgaWYgdGhlIGNvbW1hbmQgZmFpbGVkLgogQ2hhbmdlIGZlYXR1cmUtcmVtb3ZlIHRvIGZvbGxvdyB0aGF0IHByZXN1bXB0aW9uLgoKMjAxMS0wOC0yMSAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlOiBDb3JyZWN0IHR5cG8KCgoyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMWJiMjM0YTZjYzM2ZTZhNGVmYmUzZmIyOWM0ODAyMTBkYzJiOWMxMyBNZXJnZTogMzVhOThjMwoKIDFmMDgyYTMgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMjMgMjM6Mzg6MDcgMjAxMSArMDIwMAoKMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOiBtYWtlIHN1cmUgdGhhdAoKIF9LRVJORUwgaXMgZGVmaW5lZCB0byAxIHNvIHRoYXQgIiNpZiBfS0VSTkVMIiB3b3JrcyBvbiBzeXN0ZW1zIHRoYXQKIG5lZWQgaXQgKGUuZy4gSVJJWCkKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAzNWE5OGMzZDdjNWEzYzVkZjM1NmFkZDllOGI4MDgyODc4OTliNjlhIE1lcmdlOiAxZjM3ZjU3CgogYTI3Zjc0NCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAyMyAyMzozMDoyNyAyMDExICswMjAwCgoyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjZiYjI0NzBjMTA2ZjgzNDQ0MmEyYWRiYzc2MTFiZjE2NjU3ZmJkZiBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEF1ZyAyMyAyMzoyMjo0NAogMjAxMSArMDIwMAoKMjAxMS0wOC0yMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYXV0b3JlY29uZgoKCjIwMTEtMDgtMjIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGQgbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIgKGUuZy4gSVJJWCkKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGF1dG9yZWNvbmYKCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogYXV0b3JlY29uZgoKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiNjJjYjA4NjRmNTc3YmE4NTU3M2QwZDI1MGQxMmEzOTM4N2MwN2I0IEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gQXVnIDIxIDAwOjU1OjMzCiAyMDExICswMjAwCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzFiOTBiNmYyMTc5NDRiNGZmYzE4MzZlNTE2MGQ0MGUzM2I0NDIzZCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEF1ZyAyMSAwMDo0MDoyOAogMjAxMSArMDIwMAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5wcmUxIC0+IFY1LjcuMS5wcmUyCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGZvciA1LjcuMS5wcmUyCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5wcmUyCgoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDAzMDUzNDc5NjA0YmM4M2VmYmVhNTc5YjQ1NjJiMTgzMWNlYTFjYjYgTWVyZ2U6IGY3M2U2MzYKCiBkOTRkZjM5IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDE4IDExOjU3OjQ2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyOGI1NDA3MDUxNDc1M2U4ZDhhYmI3MThiMjI0ZDY1N2FiN2E4YWI4IEF1dGhvcjogR2FycmV0dAoKIENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgMTgKIDExOjQ5OjU2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMTggIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzM4OTIyODoKCiBmcm9tIHd1bGYyMDAxOiBpbmNvbXBsZXRlIGNvbW1pdCAocGF0Y2ggMzM4NjYzMzogZml4IGludGVnZXIKIG92ZXJmbG93KSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOiBQYXRjaCBmcm9tIENsYXVzIEtsZWluIG9uIC1jb2RlcnMgZm9yIGZpeGluZwoKIG1hbiBwYWdlIHR5cG9zCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBjaGFuZ2VkIGNsaWVudGFkZHIgc28gaXQgcmVnaXN0ZXJzIGFzIHByZS1taWIKCiB0byBiZSBwaWNrZWQgdXAgYmVmb3JlIHRoZSB0cmFuc3BvcnRzIGdldCBjcmVhdGVkCgoyMDExLTA4LTE3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzAyMTMxZTViMzVkMjk2NzU1YmFlYzk5YmQzNjMyMDVhODYzMDdkZCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAxNwogMDk6MzQ6MDAgMjAxMSAtMDcwMAoKMjAxMS0wOC0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IEZpeCB0aGUgbG9nIG1lc3NhZ2UgdGhhdCByZXBvcnRzIHRoYXQKCiBnZXRob3N0YnlhZGRyKCkgaXMgbWlzc2luZwoKMjAxMS0wOC0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDE4MmUxZGMwYzNlYWNmYTRlOWNjZGIyODYwMGZmMGYyMzcwMjExYWUgTWVyZ2U6IDQ5OWI3OTYKCiA1MTdiNmIwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMTcgMTg6MDk6MzAgMjAxMSArMDIwMAoKMjAxMS0wOC0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDY1ODA1NTZjYzdiZDgzM2FmNzMxYjYyY2UxZWQyMDE3NTY0ZmU3ZWIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMTcgMTg6MDg6MDEgMjAxMSArMDIwMAoKMjAxMS0wOC0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDQ5OWI3OTZjYmQ3ODA2NWMzMzU0Nzc5MTM2YmQzZDlkMWY1NDhhNTggTWVyZ2U6IDA0MThmZjAKCiBhOWNiMjY3IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZwogMTQgMDg6MDI6MzggMjAxMSArMDIwMAoKMjAxMS0wOC0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDNjYjNmMWVkZTM4OGQ4NGUzOTJlMWQ4MTVkNTk5NGE0YmYwZjEwZjkgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcgMTQgMDc6NTk6MjUgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6IFdpbmRvd3M6CgogTWFrZSB0aGUgUGVybCBhZ2VudCBtb2R1bGUgd29yayBhZ2FpbiB3aXRoIHRoZSBvcmlnaW5hbCBTTk1QX0ZSRUUoKQogZGVmaW5pdGlvbi4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwNDE4ZmYwY2RhMjE0MTFhNDdmYTg5NzhjM2UwZDA0M2ExOWQyNGI2IE1lcmdlOiAyNmIwYWEzCgogM2M3M2I0OCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKIDEzIDE4OjQyOjA1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogUmV2ZXJ0IHRoZSB0d28gbW9zdCByZWNlbnQKCiBTTk1QX0ZSRUUoKSBjaGFuZ2VzIChjb21taXRzCiA0N2M4ZWYxYjg5YzZjY2I0MjQ3ZDk2MzM0Nzc5MjU5MDhjNjhjMWE1IGFuZAogN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCkuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMjZiMGFhMzAxMGZhMTgyYjYwMzlhOGMyY2FkOGNjYjQ1NzE2NTJkZSBNZXJnZTogMmYzZDYwNwoKIDBjOGUxYTkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnCiAxMyAxMTo0MzoyMCAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgM2U1MGMzZTAwZTlmMzIxZmI3MDhiYzU3OWViNGRjMWEwZjFlN2M0ZCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZyAxMyAxMTozMTo0MCAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmYzZDYwNzlkYzM2YWFkOTU1OWQ5MWM1YzMyNGUyY2U1MzU1NzNkZCBNZXJnZTogZTMyYWE5NwoKIGZmMTczNGQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnCiAxMyAwOTowODowNiAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTE0N2U0Yjk2NzU1MjA3ZGUxY2UzMDk5MGQ2N2I0YjdjNzZkZDQ4MyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZyAxMyAwODozOToxNCAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogd2luMzIvYnVpbGQucGw6IENIQU5HRVM6IFdpbmRvd3M6IGJ1aWxkaW5nIChidWlsZC5iYXQpOiBJbnN0YWxsCgogbmV0c25tcC5kbGwgYmVmb3JlIHJ1bm5pbmcgdGhlIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBzdWNoIHRoYXQgdGhlCiByZWdyZXNzaW9uIHRlc3RzIGFyZSBydW4gd2l0aCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIG5ldHNubXAuZGxsLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHdpbjMyL01ha2VmaWxlLmluOiBDSEFOR0VTOiBXaW5kb3dzOiBwZXJsIChidWlsZC5iYXQpOiBXaGVuCgogaW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcywgaW5zdGFsbCB0aGUgUERCIGZpbGVzIHRvby4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgcGVybC9TTk1QL3QvYXN5bmMudCwgcGVybC9TTk1QL3QvY29uZi50LCBwZXJsL1NOTVAvdC9taWIudCwgCiAgICAgIHBlcmwvYWdlbnQvdGVzdC5wbDogQ0hBTkdFUzogdGVzdGluZzogRml4IFBlcmwgcmVncmVzc2lvbiB0ZXN0CgogZmFpbHVyZXMgQWxsIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIG5vdyBvbiBMaW51eCBhbmQgb24gV2luZG93cyAoTVNWQykuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9TTk1QL3QvYXN5bmMudCwgcGVybC9TTk1QL3QvYnVsa3dhbGsudDogQ0hBTkdFUzogdGVzdGluZzoKCiBQZXJsIHJlZ3Jlc3Npb24gdGVzdHM6IERvbid0IGZhaWwgc2tpcHBlZCB0ZXN0cy4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6IENIQU5HRVM6IHBlcmw6IEFkZAoKIFNOTVA6OmdldGVudigpIGFuZCBTTk1QOjpzZXRlbnYoKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEFkZCBuZXRzbm1wX3NldGVudigpLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IGRvY3VtZW50IGhvdyB0bwoKIHVzZSBvbiBXaW5kb3dzCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogU2V0IGV4ZWN1dGUgZmxhZyBvbiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0Cgogc3VjaCB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhhdCBmaWxlIHdvcmsKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBGaXggYSBzdXBwcmVzc2lvbiBwYXR0ZXJuCgoKMjAxMS0wOC0xMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGUzMmFhOTc3NDIyMzJjZWQzYTcyZjhiODQ1YWNlNWNlM2Q1M2I4ZGYgTWVyZ2U6IDRhZGZlYzgKCiA4NmZiZDMzIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBGcmkgQXVnIDEyIDA5OjExOjE0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMTIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBhNzNlYjQwZWMyNjNhMGZkZjUzYTc0ZTcyMGRkZjQxYzRhN2VlM2Q0IE1lcmdlOiA3NjkwODk0CgogMjk0MGVlMyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogRnJpIEF1ZyAxMiAwOToxMToxMyAyMDExIC0wNzAwCgoyMDExLTA4LTEyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMWYwYTkyOGEyOTEzY2ZhN2Y1Y2VhYWY0Njk2YzY5ZmJkYzY4NzYyMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEF1ZyAxMgogMDk6MDk6MTEgMjAxMSAtMDcwMAoKMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDRhZGZlYzgxMjE2ZjZjNWJmMjVjOWFjNmIyYjc0NzhkMWJlOGU4NDIgTWVyZ2U6IDI4MWI4NjkKCiAyOTQwZWUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogMTEgMTg6NTc6MjkgMjAxMSArMDIwMAoKMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFlMTAwMGE4ODE1OTIxYjVlYzJlNzk5N2I1MzU5MmE1NDRiM2RmYzIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgMTEgMTU6NDY6MzIgMjAxMSArMDIwMAoKMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDI4MWI4Njk2MWIxMDI2NmRkZjM4ODM5NDJkNGRjM2I2Yjk4ZDMyMjcgTWVyZ2U6IGQ4ZDIyNWMKCiBmMTgxMDk5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogMTEgMTg6NDY6MDYgMjAxMSArMDIwMAoKMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogTWVyZ2UgVjUtNC1wYXRjaGVzLgoKCjIwMTEtMDgtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmM6IGRvbid0IGFzc2VydCBvbiBhIGRvdWJsZQoKIGluaXQ7IGp1c3QgZG9uJ3QgZG8gaXQgdHdpY2UKCjIwMTEtMDgtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkOGQyMjVjYTM0YThmMjI3NTIxNTNhY2I3OTQ0Zjk0MzVmNTY0ZDJjIE1lcmdlOiAwNmI0MTg2CgogNDdjOGVmMSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcKIDEwIDE4OjA1OjIxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogU05NUF9GUkVFKCk6IGNhc3QgYXJndW1lbnQgdG8KCiAodm9pZCAqKSBiZWZvcmUgcGFzc2luZyBpdCB0byBuZXRzbm1wX2ZyZWUoKQoKMjAxMS0wOC0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDA2YjQxODY1ZWMzMDJjMzkzMWIxMDgzZDNmZGU4OWY5MzQ1ZWMwNmYgTWVyZ2U6IDExNDI2ZmIKCiBhNGY2YWM3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDkgMDY6NDQ6NDEgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDExNDI2ZmIzYzZmMzI3ODIwYjliYjg2YTc2ZWNjOWUyYzM3ZTc5MzQgTWVyZ2U6IDAzNDRkZjkKCiA5YmYwNjgxIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDkgMDY6NDQ6MTEgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDliZjA2ODEyMThlZGY0M2NkYjVmYzY4ZjE3MjEyM2JjNGEyZDAxODggTWVyZ2U6IGY5ZGI2MTEKCiBjY2IwZWI2IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZwogOSAwODoxOTozMyAyMDExICswMjAwCgoyMDExLTA4LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGU3ZTM0OGVjZTAzZDIzODBjMmE4ODA2ZWJiYWQ1ZDliNTQ4NzY4MiBNZXJnZTogZDUzOGJjYgoKIGNjYjBlYjYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiA5IDA4OjA3OjIyIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwMjIwMzkyZDg5OWE5Y2FiNzAxZjc0YWYxMjAzMGJiMWQ0Y2M1ZTJlIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDEgMTM6MDI6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUxCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZToKCiA1LjcuMS5wcmUxCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjZjRjY2U0YzE4OWNmNDdmNGM0ODlkYjQzYjdmYTUxMGY4OTA2YTFhIE1lcmdlOiBkZjkxYTlmCgogOTNlOTdkYyBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24KIEF1ZyA4IDIyOjE1OjI4IDIwMTEgKzAxMDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAKICAgICAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCgogX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbiAoYXMgcGVyIEFsZXgnIGJ1aWxkCiBpbnN0cnVjdGlvbnMpCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCgogX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbiAoYXMgcGVyIEFsZXgnIGJ1aWxkCiBpbnN0cnVjdGlvbnMpCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGYxNmRjMjIyMWU5OTNkZDNjNjY2NTBkNWU4NzI1NzdmZmU2YzAxYiBNZXJnZTogNzE0YmM4MgoKIDhlNWEyOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMzo1Njo0MyAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmZhMDViMDUxYWMzZTJiMTk3MTk1YTk5ODljYzdhOTFmZThkOTI4MiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEzOjU1OjM4CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IDcxNGJjODJmYTAxZTIxYTM2NTU4MjQ5NjNmYTU0ZTliODA0MmZmYjAgTWVyZ2U6IDZmZThmZTUKCiAzZWYxZGI1IEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjE6MjE6NDYgMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCBiNDUxNjA3ZGNhMDE1YzExMWU5NmZkZmViMmRkYjA2NjFmYjRmNzI0IEF1dGhvcjogRGF2ZQoKIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEKICswMTAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNmZlOGZlNTI5NGE0NWJjN2U0ZWEzNzUxYTFhZDdhYTQ3YjVjYWJiMiBNZXJnZTogMzY0ZjhmZgoKIGY2OWFiZTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIyOjAyOjM4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMjE6NTY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDM2NGY4ZmZhZWI5MGI0ZWIwMTY1ZmM4NTU2ODhjZDA2MjY2MzI3OTQgTWVyZ2U6IDMyODcyOTUKCiA3YWJiOTI2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTE6MjQ6MjYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGlzcGxheSB0aGUgYnJhbmNoIHdlJ2xsIGNvbW1pdCB0bwoKCjIwMTEtMDgtMDggIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzM4NjYzMzoKCiBmcm9tIHd1bGYyMDAxOiBmaXggaW50ZWdlciBvdmVyZmxvdyBpbiBkaXNrIHBlcmNlbnQgY2FsY3VsYXRpb25zIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg0YTc3NWQwNTU3ZmVhOTc1NzBlNDE3MTVhMzE2NDk3MGI0YzAzYTIgTWVyZ2U6IDZmZmYxYzEKCiBkMzczYzRmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAyMDoxMjozMiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzODcxMzk6IGZyb20KCiB5YWJlcmF1bmV5YTogQXZvaWQgc2VnZmF1bHQgaWYgdHJhcHNlc3MgdHJhbnNwb3J0IGVsZW1lbnQgY2FudCBiZQogcGFyc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbnNzZnBhdGNoYXBwbHk6IHNwbGl0IHRoZQoKIGRpc3BsYXllZCBnaXQgY29tbWl0IGNvbW1hbmQgaW50byBtdWx0aXBsZSBzZWdtZW50cwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMzg2OTYxOgoKIE1ha2UgU05NUCBHRVQgd29yayBpbiBhbiBBZ2VudFggc3ViYWdlbnQgaWYgd3JpdGUgc3VwcG9ydCBpcwogZGlzYWJsZWQgdmlhIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAoTWFyayBSdXNrKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCgogdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QKIGVxdWFsIHRvIC0xLgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDZmZmYxYzFhZTUxYjA2YzlkODBmYWYxNTM3M2E5NjNkMTczZjE0ZTggTWVyZ2U6IDgzN2M1MmUKCiA4Y2M5MDA0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6NTg6NTkgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDhjYTdmZjFlNjkyY2FlYzQxODZiNzg4YzlhZTJkMjdiZTIxMzI5MGYgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMDozMzo1NgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI4ZjUyOWNiYTI3YzAxMTRiNGNiNzM0MGNmZDQ0OTUwNGZhMDc1MDYgTWVyZ2U6IDA4MjJmMmQKCiA1NTZlOTM4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDU6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IGZ1bmN0aW9uIG5hbWUgdHlwbwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyOTg4MmEwNzhhOTU5YTBmNzhiMDNlMDE5NjhmMWQxN2I3ZjZhMjk5IE1lcmdlOiA1ZTliZDJmCgogMDQwOWMwYSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjAzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZSBvZiBwdWxsL3B1c2gKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEKCiBjbGVhbiByZXBvCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuZXcgZnVuY3Rpb24gIm5zbWFrZWFsbCIgdG8gdGVzdAoKIGJ1aWxkaW5nIG9uIGV2ZXJ5IGJyYW5jaAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGVmYXVsdCB0byBtZXJnZQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8KCiBWNS03LXBhdGNoZXMKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogQ0hBTkdFUzogV2luZG93czogQXZvaWQgdGhhdCBpZgoKIHRoZSBOZXQtU05NUCBQZXJsIG1vZHVsZXMgaGF2ZSBiZWVuIGJ1aWx0IHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mCiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB0aGFuIEFjdGl2ZVBlcmwgdGhhdCB1c2luZyBvbmUgb2YgdGhlc2UgUGVybAogbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzCiBjYXVzZWQgYnkgY29tbWl0IDNiMTRjNTljZjgyNzhkNDEwMjA3ZmY0MmRlYmRhMjYzNjQyNmE0NjggKHRoZQogbmV0c25tcF9mcmVlKCkgaW50byBTTk1QX0ZSRUUoKSBjaGFuZ2VzIGluIHRoZSAqLnhzIGZpbGVzKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlMTA5NTM5OTMwNzAzY2IzMDUyZDUyNDFiMThhYzZmYzA2MmZhYWNhIE1lcmdlOiAwYzliNmNiCgogZTQ2YjE3MCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MzQ6MTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDA5OjUwOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwYzliNmNiZTlkYmUyZWM1MjE3YTk1YjY3ODFmZDdkYzFmNmViZGE3IE1lcmdlOiBmYTZjZWY1CgogOTYzMzIwZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MTQ6MzYgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEzYjg2NTRhMjMyYzU2M2JjOTdjYzk5MjVjZDk4NTkwYTMwYzViYzUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAxNzoyNDoxOCAyMDExICswMjAwCgoyMDExLTA4LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZmE2Y2VmNWNhOTFkZjNhMGIwMzQ1NWI2ODU1OWQyYmVlMjQ4MTAxYyBNZXJnZTogZjVmZTUzNgoKIDhhZGQwZGEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnCiA3IDEwOjE4OjU0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhMGRkM2NhZjI1OTI2ZTQzNDY1NzE4YmY0MTdhNDY0YzJmYjM2MzY2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDcgMTA6MTc6MDEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IDMyIGlzIHRvbyBsaW1pdGVkIGZvcgoKIGJpZ2dlciB0YWJsZXM7IGluY3JlYXNlIHRoZSBtYXggbXNnIGNvdW50IHRvIDEyOAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSByb2xsdXAgYW5kIHN5bmMgc3VwcG9ydAoKIC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50ZWQgaG93IHRvIHVzZSBidWlsZC5iYXQgd2l0aAoKIE9wZW5TU0wgZW5hYmxlZAoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIG91dGRhdGVkIGluc3RydWN0aW9ucyBhYm91dAoKIGVkaXRpbmcgd2luMzJcbGlic25tcF9kbGxcbGlic25tcC5kZWYgZnJvbSBSRUFETUUud2luMzIKCjIwMTEtMDctMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudCBob3cgdG8gYnVpbGQgNjQtYml0CgogZXhlY3V0YWJsZXMgZm9yIHRoZSB4NjQvYW1kNjQgYXJjaGl0ZWN0dXJlCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZjVmZTUzNmU4ZmQ2YzQ4ZmUyNDNkZWNkMzFmYWM5Y2YxYzkyZjRjYyBNZXJnZTogNzg1MGVhMQoKIDgwOTI4YTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDE1OjEzOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MDkyOGE4OTA5Y2ZhYjM3ZjAxYjM5YTA3MWEzZThhZDg1OTU2MjIyIE1lcmdlOiBmMTZhMDk0CgogMGRiYzg2OSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTM6NTc6MzAgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMjo0MDozMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkCgogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUuZGVmIGFuZCBwZXJsL1NOTVAvdAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg2YzFlMmI5Njc5ZmVjMmNkNzk5YmE3NjAwNWMzZDYwZTlkNDc2MzQgTWVyZ2U6IGJjZDg2MzUKCiBmMTZhMDk0IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMjoyMDo1MCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmY4ZDRmNTc5NmNiYzFjN2U5NjdhY2RhYTgwMTliMjRmMTUyMGEzNiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjAyOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyAtIHJldmVydCBjb21taXQKCiBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzIChDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSAogMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUKIG5vaXNlKS4KCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOiAKCiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZgogc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nKQoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcwoKIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0CiAwZTY4NDJmZTA4MGNlYzg1M2IwOGNkMjMyMzAxNWFiYWJjMzgxY2UxIChDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENICiAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YKIGZyZWVkIG1lbW9yeSkuCgoyMDExLTA4LTA1ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogbWlub3IgTkVXUyBwb2xpc2gKCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmNkODYzNTA3MTM4MjI5NjNkMzc2ZWZmNTgyYTkyZjQzZTQyNmQ2YyBNZXJnZTogOWM4MTBhMwoKIDdhMjBmNzEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEwOjI4OjU1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzYWE5NDlmYmRmYzFhOTRhODM0MGFkOGJhZjhiMzE0NzU2YTBiYjlkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTA6MjY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDljODEwYTNiMzdiNjg1NzNjNDAzMzdlMjQ2ZTJmYWYyOTliNzdkMzEgTWVyZ2U6IDcxY2IyZTgKCiA2MTBkNjNmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6NDI6MDggMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk0MzkzMGUxZTEyNDM4NWZkOTQ3MzhiNmRjZGEzN2QyOWRjN2FjN2YgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAxMDo0MTo0MQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDRlZGNiODhkYWU4YjJlNTlkYzY4M2U4MGQ0MTRmYTdlY2VjMzY4ODUgTWVyZ2U6IDY1ZjNlZWYKCiAyZGQ5ZWQwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6MjQ6MTEgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTUtcGF0Y2hlcycgaW50bwoKIFY1LTUtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGJjNWNhMDNhMDRhYjE5YzYzNGEzNGQwNjBiMGIxNmI3NDg0Y2I1MjAgTWVyZ2U6IDg4ZmRkYjcKCiA5MGMwZTc1IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxOToxMzowNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYzogc25tcHVzbTogRml4IHJlY2VudGx5CgogaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOiBDSEFOR0VTOiBvcGVuYnNkOgoKIFBBVENIIDMzNTc5MzI6IGZyb20gdDBqdzJmdTBrbWc6IENsZWFuaW5nIGluIG1lbW9yeV9uZXRic2QuYyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzogQ0hBTkdFUzogYWdlbnQ6CgogUEFUQ0ggMzM4NjE0NzogZnJvbSB3dWxmMjAwMTogZml4IFVDRC1TTk1QLU1JQjo6ZHNrVXNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NzNkN2U1Y2Q0ZDQxMWJiYTIwZWI4NTM1OWQ4NzI4MDYzMzAxY2JkIE1lcmdlOiBhNGU4YjYyCgogODhmZGRiNyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI4OjIyIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyMTAxYmIyZDdhZDZkYjAzOGM3NTVhYTkxOTNjOGFjZTBkYmQ0ZjU4IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMDk6Mjg6MDYKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiBpZ25vcmUgKi5vcmlnIGFuZCAqLnJlagoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGhlbHAgb3V0cHV0IGRlc2NyaWJlcyByZWJhc2UgdnMKCiBtZXJnZSBiZXR0ZXIKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmMTI2YTE3YzZhMzA2MzQ1NWE1MTE5NDBiMDIzMDQ3YWJkOWI0OGVlIE1lcmdlOiBhZDc2NWY0CgogNzdhNDc4NCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjE2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NTJlMTcwN2YyMDllYzQ1ZTdjN2YyYTMwNDBlZjU5NWZiOWQxYWY2IE1lcmdlOiBkYzc1NWE2CgogYjM3MmU1YSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjAzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNS5oOiBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSAogICAgICAzMzU3OTI3OgoKIGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCB3aGVyZSBhcmd1bWVudHMgYXJlIHNldAoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvCgogcGFydHM6IGFwcGx5IGFuZCBjb21taXRpbmcKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHBhdGNoIHVzaW5nIC1OCgoKMjAxMS0wOC0wNCAgRGF2aWQgQXJub2xkIDxkamFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCAKICAgICAgbWFuL2ZpeHByb2MuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLAogICAgICBtYW4vc25tcGQuOC5kZWYsICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAKICAgICAgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIAogICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsIAogICAgICBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwgbWFuL3NubXB0ZXN0LjEuZGVmLCAKICAgICAgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgCiAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwgCiAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZjogQ0hBTkdFUzogbWFuOiBQQVRDSCAzMzEyODYxOiBmcm9tIGRqYTogTWFuCiAgICAgIHBhZ2VzCgogaHlwaGVuLXZzLW1pbnVzIGNsZWFudXAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IERldGVjdCAoYW5kIHJlamVjdCkgT3BlblNTTAoKIDEuMC4wCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IENvbW1hbmQtbGluZSBvcHRpb25zIGZvciBzaWxlbnQKCiBpbnN0YWxsCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEVuc3VyZSBXaW5kb3dzIHBhY2thZ2UKCiB1bmluc3RhbGxzIGNvbXBsZXRlbHkuCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODFjNjNmYjVjNWU0YWJiOWMyOWFjYTg5YmY5ZDY5NDQxMDA4NmU5NyBNZXJnZTogNGE2OTIwYQoKIGRjNzU1YTYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwODozMzozNCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcwoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IHJlbW92ZWQgYWNjaWRlbnRpYWxseSBkdXBsaWNhdGVkIGNvZGUKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKCiBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKIENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSCAzMzgzOTUxOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggLVd1bnVzZWQKIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGU4NzhhYmJkYjE4MDhlZjgzZTBhODA3NDUzNmZiNTRlMTMyMTlhOGIgTWVyZ2U6IDQwM2RlNDIKCiA4NzhmYmY0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTU6MDAgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI1MGFmYTA2ODkyZmQ4OTdhYzMxZTM4MzZhN2ZmYzllMmI0Y2Y3YjkgTWVyZ2U6IDJjMTRjMWMKCiAzYWZjNWUwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTE6MzMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDU3OGNkN2NjZTM1MWFlOGQ5MDRlYzNkODBiZTliYTZkMWQ0OGE3MTIgTWVyZ2U6IDI1OTg4YmUKCiBmM2JjNTUxIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTA6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYXV0b2NvbmYKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSAoKIDMzODM5NDk6IGZyb20geWFiZXJhdW5leWE6IEZpeCBhdXRvY29uZiB0ZXN0cyBmb3Igc3lzL21idWYuaCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZAoKIHVzZSB0aGUgcHJvcGVyIENIQU5HRVMgbGluZSBmb3JtYXQKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzCgogc3VnZ2VzdGVkIGJ5IEJhcnQgZm9yIHNwZWVkIGltcHJvdmVtZW50cwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2YTFhODllNmY2NDg5NTFhOWI4MzE5MzJkM2NjMjMwODIxZjJkMzcgTWVyZ2U6IGRjYjcxMmYKCiA4NzJlMDEzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxMjowNjoxOCAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNDQ5NjliNGU1N2MyNzE5NGU1YmQzNTdiYzQ1Mjc1ZmViODY5NWQyMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzogQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogSW52b2tlCgogU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkKIHRoZSBvcmlnaW5hbCBjb2RlIGRpZCBub3QgbWFrZSBzbm1wd2FsayB0cmlnZ2VyIGEgbWVtb3J5IGxlYWsuCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGNiNzEyZmZjODZiMzM1ODMwMDBlZjRhZTlhNTFjZWQyNWNkMTViZiBNZXJnZTogZTg1Y2ZhNQoKIDk4NjIzZWYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDExOjM2OjE3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMTE6MTk6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGU4NWNmYTU5OWIyM2I3NmQ5NzkxM2M5NmI1ZDcwM2JmZjZiYTQ5NDQgTWVyZ2U6IGIwNTZlZTYKCiBlMjFlZWYyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAwODo0NDo0MyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBDSEFOR0VTOiBhZ2VudDoKCiBBdm9pZCB0aGF0IGEgTUlCIHdhbGsgb24gdGhlIGhvc3QgcmVzb3VyY2VzIE1JQiB0cmlnZ2VycyBhIGNyYXNoIG9uCiBGZWRvcmEgMTUKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiMDU2ZWU2ZWI1MzkwOWFkMDRmMTZlYzI2ZDI2OTBkN2EwODMxOTJhIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMDc6NTk6MDQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKICAgICAgIGVzcy5jLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcHRscy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXB1c20uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWIsIHNubXBkOgoKIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGFlOGUzZWNkMmRmNGNmMzc2MjU5NDRhZGVkMWRmZTQ3MzVkNDRlZWEgTWVyZ2U6IDczMTg3Y2UKCiA5MzM1ZTE5IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgQXVnIDMgMTQ6Mzc6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDc5NGY5YTY5ZDdlYjY0MjI2ODIwMGIwYTRiMTk5MTUxZGVmNjZlZDAgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBBdWcgMyAxNDozNjoyNQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wNy0xOCAgSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzogYWdlbnQ6IGNoYW5nZQoKIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCiBUaGlzIGZpeGVzIHRoZSBidWcgd2l0aCB3cml0aW5nIHRvIHNubXBFbmFibGVBdXRoZW5UcmFwcyBpZiBzZXJ2ZXIKIGlzIGNvbXBpbGVkIGZvciA2NGJpdCAoc25tcHNldCByZXBvcnRzIHdyb25nIGxlbmd0aCkuIFRoaXMgYnVnIHdhcwogaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4gIEFjdHVhbGx5IHRoaXMgaXMgYSAnbGVzcyBlZmZvcnQnIHR5cGUgb2YgZml4IGJ1dCBJIHdvbmRlciB3aHkgd2UKIG5lZWQgYSBsb25nIHRvIHN0b3JlIGFuIElOVEVHRVIgaW4gdGhlIGZpcnN0IHBsYWNlPyBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4gU2lnbmVkLW9mZi1ieTogV2VzCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2YWQ3ZTI4ZmY5ZTVlNGViYzEzNThlZTM5Y2M5Nzk2YTQ0YTFiZWU3IE1lcmdlOiBmMjgzMmUzCgogMWUxNTRjZSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcKIDMgMTk6MTU6MjQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDYxYjE3OGYxZWU4OTUyYWEwM2FhM2IxYmE1MWY0YTY2NTVlNDdmMDEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOiBXaGl0ZXNwYWNlLW9ubHkgY2hhbmdlOiBmaXggaW5kZW50YXRpb24KCiBvZiBhbiAjaW5jbHVkZSBkaXJlY3RpdmUKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL05ldFNOTVAueHM6IENIQU5HRVM6IFBlcmw6IFJlbW92ZSBmaWxlIHBlcmwvTmV0U05NUC54cwoKIGJlY2F1c2UgaXQgYnJlYWtzIHRoZSBXaW5kb3dzIGJ1aWxkLiAgVG8gV2VzOiBpZiB5b3UgY2FuIHRlbGwgbWUgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB5b3Ugb2JzZXJ2ZWQKIEknbGwgdHJ5IHRvIGZpbmQgYSBwb3J0YWJsZSBmaXguICBUaGlzIHJldmVydHMgY29tbWl0IGQ1NDg3MWY1MjkzNjc1YzgwNThlY2NlODhmZWQ1YjY0NmM4MzYzMjMgKCJBZGRlZAogYSBib2d1cyBlbXB0eSAueHMgZmlsZSBmb3IgYnVuZGxpbmcgb24gbmV3ZXIgcGVybCB0aGF0IHdhbnRzCiAic29tZXRoaW5nIiIpLgoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmNDg5YjE5OWFkYWI0OGIxNjMzZWJjYWY1ZmY1YTdjMjJjNGNiODkgTWVyZ2U6IGY0ZWFhMDIKCiA3MmE1OWJjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZwogMiAxMDoxMTo1MyAyMDExICswMjAwCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2ZjYzBiODAzMmY4ZGE1YjdiYzMwMDU5YWYwYmE2NTZlYWU3MTA5MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyAxIDE0OjExOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW4KCgogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgZmlsZSBuYW1lcyBhbmQgcGF0dGVybnMgZm9yIG91dHB1dAoKIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIFdpbmRvd3MgYnVpbGQKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgLmdpdGlnbm9yZSwgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6IFJlbW92ZSB0d28gZ2VuZXJhdGVkIFBlcmwgZmlsZXMuCgoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY0ZWFhMDJkOWIwNzZhNjdkNzI3MmRlN2VlZjhlOWRmYmYxODliYmYgTWVyZ2U6IDQwMTI1ZDgKCiBhZGFkY2I5IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIgMDA6NTc6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczogc3VwcHJlc3MgIm9rIiB0ZXN0IG91dHB1dCBpbiBuc2IKCgoyMDExLTA4LTAxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQwMTI1ZDg1MzljZDg5Zjk1MmZiYzI0NTg4YzVlODFlOWNkODIxZmUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDEKIDEzOjU4OjMzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1YWNmMGQyY2ViMzk3Nzk2NGVkMzlmMDAzMDczYmE2NDEzOGMyZWJkIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxCiAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTc3MjJhODFmOWNiN2FhODY3MGU3YzIzODYwMTM2MmEzMTA4N2FjYyBNZXJnZTogMjQyZTE3OQoKIGFlOWFjNmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gSnVsCiAzMSAwOToxMTo0NSAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcwoKIG5vIHJlcXVpcmVtZW50IGluIHRoZSBBTlNJIEMgc3RhbmRhcmQgdGhhdCBzdGFjayB2YXJpYWJsZXMgc2hvdWxkIGJlCiBpbml0aWFsaXplZCB0byB6ZXJvLgoKMjAxMS0wNy0zMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI0MmUxNzk3YjI2OTRhMDY4OTg1NmFlMzZkMDVkMzQxM2FhZjhkNzcgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMDE6NDQ6MDkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcKCiBnZXRhZGRyaW5mbygpIGFuZCBFQUlfRkFJTCAoZS5nLiBIUC1VWCAxMC4yMC8xMS4wMCkKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxOGRmNzU5ZjE5Yjk3NWM0NDlkMDEwYmIwYTE2MjExOWJiNjgzNjBkIE1lcmdlOiA1NGE0NGNiCgogNzA1MDcxOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBKdWwKIDMwIDE2OjM5OjEzIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDIwOjUxOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxMDlmNjY5NGQ3ODhmNDhlYmQ5ZmMwYTFlOTBjNDVhYmMzN2JlYTIwIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTYXQgSnVsIDMwIDE0OjIyOjE5CiAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgN2Q4MTAwZWVkNDU5YTFmZjFhMjBjMDY3MzY0ZmE2Y2I0NzQ5MTMwOSBNZXJnZTogMTE2YzI0ZgoKIDllNDdhYzQgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFNhdCBKdWwgMzAgMDA6MjA6MDEgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucywgZGlzdC9uc2ItbmlnaHRseSwgZGlzdC9uc2ItcGFja2FnZTogbWlub3IgbnNiCgogZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTE2YzI0ZjBmN2ZiM2Y5OWJhNjQ2NzMwZjYxYzU2ZDFhZTIzYmE0MSBNZXJnZTogOTgyZmI3ZgoKIDRmYzBiOGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsCiAyOSAxMTozMToyMCAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYzQ4MTczYzA2YTllYWFkYmY4MWU2YjQ5NjJkNTVlZjBhNTRkYjI1MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAyOSAxMDoyNzozOSAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQ6IFJlcnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jOiBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYgoKIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5ODJmYjdmZDhiYWIyNWM0MzIyYWE2MmM1MDQzNzAzNmNlMjk2ZTNlIE1lcmdlOiAxZWRhNjc1CgogMzQ1ODEyOCBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBKdWwgMjggMTY6MjQ6MDMgMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEZpeCBwb3RlbnRpYWwKCiBzaWdzZWd2IHdoZW4gYW4gaWZUYWJsZSBlbnRyeSBpcyByZW1vdmVkIGFzIHJlc3VsdCBvZiBib3RoCiBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgYW5kIGludGVyZmFjZV9mYWRlb3V0IGF0IHRoZSBzYW1lIHRpbWUuCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogTWFrZSBhcHBzL3NzaHRvc25tcC5jIGJ1aWxkIGFnYWluICh3YXMgYnJva2VuIGJ5CgogY29tbWl0IDYxMjI0N2NkZjE0YzFlNzQ1YzM4NGNlZmUxZjNmZGUzZTQ0NWIzNDcgdGhhdCBjaGFuZ2VkCiBNU0dfTk9TSUdOQUwgaW50byBORVRTTk1QX05PU0lHTkFMKQoKMjAxMS0wNy0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFlZGE2NzUzYjdmZTdkM2IzZjIxN2MwOTI1NGVjMDJkMGVlMWQwY2UgTWVyZ2U6IGRiOGI4NjAKCiBhMmY5ZWNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bAogMjggMTU6MzI6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMTogCgogQ0hBTkdFUzogc25tcGQ6IFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IGludGVyZmFjZV9yZXBsYWNlX29sZCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMgaW4KIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKIGFwcGVhcnMuICBFLmcuIHJlbW92ZSBvbGQgcHBwMCBpbnRlcmZhY2Ugd2hlbiBuZXcgcHBwMCBzaG93cyB1cC4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEFsbG93IGlmVGFibGUKCiBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKIGRpc2FwcGVhcnMgKGkuZS4gaW50ZXJmYWNlX2ZhZGVvdXQgPSAwIHdvcmtzIGFzIGV4cGVjdGVkKS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldAogbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4gIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGQ2MmEwZWI5MDcwYjRkOGQ5ZmUyYmNmZGI0ZDUzZDM3ZWY4MTRmOWIgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgSnVsIDI4CiAxNDo0OTowOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYXBwcy9zc2h0b3NubXAuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkCiAgICAgIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgTVNHX0RPTlRXQUlUCgoyMDExLTA3LTI3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6IENIQU5HRVM6IHNubXBkOiBNYWtlCgogVENQLU1JQjo6dGNwQ3VyckVzdGFiIHdvcmsgYWdhaW4uIFdhcyBicm9rZW4gaW4gNS43IGJ5IHRoZQogaW50cm9kdWN0aW9uIG9mIHRoZSAiZmVhdHVyZXMiIGZlYXR1cmUuCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGZiODgwNzRmYmJjMjY4YzdmMDUwOTQ5MTUzNWFlYzVmZWNiMDU2ODQgTWVyZ2U6IGE3NDNhZTUKCiAzODIxMjczIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEp1bCAyNyAxNDo0NzoyNSAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDI3CiAxNDo0NTo0NyAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBydW4gc2lnbmFsIGhhbmRsZXJzIHdoZW4gc2VsZWN0KCkKCiBpcyBpbnRlcnJ1cHRlZC4gIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdAogYWN0dWFsbHkgZG9uZS4KCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZTk0NjZkN2Y1OWQ2NWQwNTAyNzc3MzVlNGVkOWQzMDcxOWZmNzUyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDI2IDEzOjEwOjA0IDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3NzA4Mjk2NzYwZWFmNWE4MGQ4NTQwNzQ2YzljMjQ5ODI2ZmQxYmZlIE1lcmdlOiBlYTExZTVlCgogY2Q2ZTM4MiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDI2IDE2OjIxOjQxIDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IENsYXJpZnkgYW4gSVB2NiBzb3VyY2UgY29kZSBjb21tZW50CgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgbWFuL25ldHNubXBfaGFuZGxlci4zOiBTcGVsbGluZyBmaXg6CgogZGVmaW5lZHkgLT4gZGVmaW5lZAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMzogU3BlbGxpbmcKCiBmaXg6IGFsZXZpYXRlIC0+IGFsbGV2aWF0ZQoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZDJjNDcxMzM0OTNkNWEwMGRlNmIzY2RiY2ZhYzdlOWQ0NGI2ZmZlIE1lcmdlOiBmOWNjYmM3CgogZWExMWU1ZSBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBKdWwgMjYgMTQ6MjU6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNWE4NDY0YzQyYTk0YzI1MGVlMmRmYTJhNDczMTA5YTczNDIwM2Q4IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAyNgogMTQ6MjQ6NTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yNSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmOWNjYmM3NzI2NjYxMzRkMWQxNzhiNTA1YWY5ZGRjZGQ5ZWQ0MjQ0IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1bCAyNQogMTU6MDI6MTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGIwYzBhMzU1ZDVmNjAxYTExYmU0OTE0ZmJmNzEzNzE2YWJkMzBhMjkgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDIwCiAxMzo0NDo1OSAyMDExIC0wNzAwCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGViZGQyMTZjMDc0YmY0MWNkM2EwODRiZDE0Njg5Y2YwMWM4ODdiMzEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiB1cGRhdGVkIGdpdGlnbm9yZSB0byBpZ25vcmUgYSBudW1iZXIgb2YgYXV0by1nZW5lcmF0ZWQKCiBmaWxlcwoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CgogbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkZjVmNzAwNTVjZjliZTMzZjA1ZmI1MGFiZTJmNWE4MWVhYzA5MmFkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDE5IDExOjA3OjE5IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNTk2ZjE4MjQyZGNkZmQ2Y2Y0OWM4OGRhMWQ4MzZjMTZlMjYwY2FjIE1lcmdlOiAwZjMwOWI0CgogNzBkZWU0YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDE5IDExOjMzOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDoKICAgICAgMzM2OTY4MDoKCiBmcm9tIElseWEgWWFub2s6IGNoYW5nZSBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIGZyb20gaW50IHRvIGxvbmcgc3VjaAogdGhhdCBtb2RpZnlpbmcgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCBkb2VzIG5vdCBvdmVyd3JpdGUKIG1lbW9yeSBpbiA2NC1iaXQgYnVpbGRzLgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMzNzA2NDU6CgogZnJvbSBCaWxsIEZlbm5lcjogRml4IEFnZW50WCBzdWJhZ2VudCBmb3VyIGJ5dGUgbGVhawoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczogZG8KCiBub3QgaW52b2tlIElTUlVOTklORygpIG9uIE1pbkdXLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczoKCiBjbGVhbnVwIC0gcmVtb3ZlIGNvZGUgdGhhdCBiZWNhbWUgc3VwZXJmbHVvdXMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1c6IERvIG5vdAoKIGFzc3VtZSB0aGF0IGtpbGwuZXhlIHJlcG9ydHMgdmlhIGl0cyBleGl0IHN0YXR1cyB3aGV0aGVyIHRoZQogc2lnbmFsbGVkIHByb2Nlc3Mgc3RpbGwgZXhpc3RzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogUmVtb3ZlIHRoZSBmdW5jdGlvbiBXQUlUT1JESUUoKSBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoIHNpbmNlIGl0CiBpcyBuZXZlciBpbnZva2VkLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogU2ltcGxpZnkgV0FJVEZPUigpIGluIHNpbXBsZV9ldmFsX3Rvb2xzLnNoLiBUaGUgY29kZSB0aGF0IGhhbmRsZWQKIGludm9jYXRpb24gb2YgV0FJVEZPUigpIHdpdGggemVybyBvciBvbmUgYXJndW1lbnRzIGhhcyBiZWVuIGRyb3BwZWQKIHNpbmNlIFdBSVRGT1IoKSBpcyBhbHdheXMgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIG1pbm9yIHNpbXBsaWZpY2F0aW9uLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6IENIQU5HRVM6CgogdGVzdGluZzogU2tpcCB0ZXN0IDU5IGlmIFNJR0hVUCBpcyBub3Qgc3VwcG9ydGVkLiBNYWtlcyB0ZXN0IDU5IHBhc3MKIG9uIE1pbkdXLgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXIGZpeAoKCjIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGZyYW1ld29yawoKIHJlZmFjdG9yaW5nOiBJbnRyb2R1Y2UgV0FJVEZPUk5PVENPTkQoKS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIE1ha2UgU1RPUFBST0cgc2VuZCBTSUdURVJNIHJlcGVhdGVkbHkuIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlCiBTSUdURVJNIGNvdWxkIGJlIHNlbnQgYmVmb3JlIHRoZSBTSUdURVJNIHNpZ25hbCBoYW5kbGVyIHdhcyBzZXQgdXAsCiBlc3BlY2lhbGx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIFNOTVBfVkVSQk9TRT0xIG91dHB1dCBldmVuIG1vcmUgdmVyYm9zZS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3MKCiByZWZhY3RvcmluZzogaW50cm9kdWNlIEVDSE9TRU5EU0lHVEVSTSgpIGFuZCBFQ0hPU0VORFNJR0tJTEwoKQoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEZpeCBhIGJ1ZyBpbgoKIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2ggdGhhdCB3YXMgaW50cm9kdWNlZAogaW4gY29tbWl0IDkzOGQ3NWMuCgoyMDExLTA3LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIKCiBidWlsZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogVGVzdCBvbmx5IG9uY2UgZHVyaW5nIGEgdGVzdCB3aGV0aGVyIHRoZSBzaGVsbCBzdXBwb3J0cyBzdWItc2Vjb25kCiBzbGVlcGluZyBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkuCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOiBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2VkCgogZGVmYXVsdCB0aW1lb3V0IGZyb20gMXMgdG8gMTBzIHdoZW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1bgogdW5kZXIgVmFsZ3JpbmQKCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIEFmdGVyIGhhdmluZyBzZW50IFNJR1RFUk0gdG8gc25tcGQgb3Igc25tcHRyYXBkLCB3YWl0IHVudGlsIHRoZQogcHJvY2VzcyBoYXMgc3RvcHBlZCBiZWZvcmUgc2VuZGluZyBTSUdLSUxMLiBUaGlzIHJhY2UgY29uZGl0aW9uIHdhcwogaGl0IG1vc3QgZWFzaWx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIFBJRCBmaWxlIGV4aXN0ZW5jZSBhZnRlciBoYXZpbmcgcmVhZCBpdAogaW5zdGVhZCBvZiBiZWZvcmUuIFRoaXMgZml4ZXMgdGhlIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBQSUQgZmlsZQogZGlzYXBwZWFyZWQgYWZ0ZXIgdGhlIGV4aXN0ZW5jZSBjaGVjayBhbmQgYmVmb3JlIGl0IHdhcyByZWFkLgoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCiBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgogdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIFRoaXMgcGF0Y2ggaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgZm9sbG93aW5nIHRvIFY1LjYgU1ZOIHBhdGNoZXM6IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mzc6NTAgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFiNzQ1NGJjMjgxNTY4NDcwYTEzMDA0NzZkMmVkYjRmNDExZTYwMjkgTWVyZ2U6IDhkOWRjYzgKCiA2OTBlYTdkIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMDg6MzE6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogQWRkIG1pc3NpbmcgbmV3bGluZQoKIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBJbnZva2Ugc2h1dGRvd25fcGVybCgpIHdoZW4KCiBzaHV0dGluZyBkb3duCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOiBTcGVsbGluZyBmaXg6IGJyYW5rZXQgLT4gYnJhY2tldAoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mLgoKIEZpeGVzIGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBwYXRjaAogZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSAoUlBNIDQuOSBzdXBwb3J0KQoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2MTdkODRmODNmYTY5ZWQ5ZmE5Zjk4ZWZjNGFmYWY4ODBkMTIxZjIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAoKMjAxMS0wNy0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogTWFrZQoKIG5ldHNubXBfaXB2Nl9mbXRhZGRyKCkgc2hvdyB0aGUgSVB2NiBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IEFkZCBzdXBwb3J0CiAgICAgIGZvcgoKIElQdjYgYWRkcmVzcyBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTU2NzIxYTNlNzc1NGUzODlkYWE3ZThhM2Q1NzkyODk5ZWRjOWRlMyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjoxODozMiAyMDExICswMjAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODQ0ZDRjZTg2N2JmM2FiZTdiNzUzNmM1ZGJmYmE0MDE5MzdhOGQ0YSBNZXJnZTogZWVkMDE5OAoKIDYxMDM2YTggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBKdWwgMTUgMTU6MzM6MTAgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIEZyaSBKdWwgMTUKIDE1OjMyOjQ5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogZml4IGEgdHlwbwoKCjIwMTEtMDctMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBzbm1wbGliOiAgdHdlYWsgcGF0Y2ggMzA0NDg4OCB0byByZXN0b3JlCgogcHJvcGVyIG5vbi1lcnJvciByZXR1cm4gZHVyaW5nIG1pYiBsb2FkaW5nCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QgYW5kIGZpeCB0aGUgcmVsZWFzZSBmaWxlCgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYWRkZWQgNS43IHBhdGNoZXMgdG8gdGhlIGJyYW5jaCBsaXN0CgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKCiBicmFuY2hlcwoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgNS43IHBhdGNoZXMKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzQzMTIzMWU4ZjBhMzlkMTk1MGJjNzJjMzJlMzQwMmY5MGZhODAzMCBNZXJnZTogNTZmZWU0MAoKIGEyYWMyNGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBKdWwgMTEgMTk6MzM6MTcgMjAxMSAtMDcwMAoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb3B5IG9mIHRoZQoKIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgoyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43CgoKMjAxMS0wNy0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43CgoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBSZXZlcnQgImZpeCBkdGxzdWRwCgogdHJhbnNwb3J0IGFkZHJlc3MgZm9ybWF0IGZ1bmN0aW9uIiBUaGlzIHJldmVydHMgY29tbWl0IDJhYjNhNmU2ZjJmY2MxZmYzZTVmMGZiNWRjNWQwNWU0OTg4MjBkODkuICAgLSBmb3Igc29tZSByZWFzb24gSSBzYXcgJ3JjJyBhbmQgbXkgYnJhaW4gaW50ZXJwcmV0ZWQgaXQgYXMgICAgJ3ByZS1yZWxlYXNlJy4gV2hhdCBjYW4gSSBzYXksIGl0IHdhcyBsYXRlLiA6LS8KCjIwMTEtMDctMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogZml4IGR0bHN1ZHAgdHJhbnNwb3J0CgogYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24gIC0gdXBkYXRlIGlwdjQgZm10YWRkciB0byBoYW5kbGUgc29ja2FkZHIgYW5kIHRvIGNoZWNrICAgIHNpemUgYmVmb3JlIGFzc3VtaW5nIGRhdGEgaXMgYWRkciBwYWlyICAtIG1vdmUgZHRsc3VkcCBmdW5jdGlvbnMgdG8gZXh0cmFjdCBhZGRyKHMpIHRvIHRsc2Jhc2UKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1NmZlZTQwMTE4YjIxYTlmNGRjMDJhNmYyNDdmN2RhNmZjNjlhMDA1IE1lcmdlOiBkMzkxOTRiCgogOWZmNDcxNCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEp1biAyOSAyMzoxODoxMyAyMDExIC0wNzAwCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGZpeCB0YWcgcHVzaGluZwoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHRhZyBwdXNoaW5nCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtaXNjIHB1YmxpY2F0aW9uIGZpeGVzIGZvdW5kIHdoaWxlCgogcHVibGlzaGluZwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy5yYzMKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcucmMzCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudAoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZQoKIHB1Ymxpc2hpbmcKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciB0byBhZGQgdGhlCgogbWlzc2luZyB0ZW1wbGF0ZSBpZmRlZnMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcucmMyCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LnJjMgoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA2NGI2YzY4YTg0OTMwYWIwMWUzZTE0NmM0OWYzYWI1MzgyZWZkYTNlIE1lcmdlOiAxMjdlZWMyCgogZDM5MTk0YiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEp1biAyOSAxNzoxMjo0NiAyMDExIC0wNzAwCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGY5Y2Y5YTFlMjkzZDA1YTI0Nzg2Njk0ZjY4YzA1YTJiZTEzYTliMyBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1biAyOQogMTY6MzQ6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1c2UgZ2l0MmNsIHRvIGdlbmVyYXRlIHRoZSBDaGFuZ2VMb2cgZmlsZTsKCiBuZWVkcyBtdWNoIG1vcmUgd29yay4KCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogdXNlIHRoZSBuZXcgcnVuLWF1dG9jb25mIHNjcmlwdAoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3J1bi1hdXRvY29uZjogQSBzY3JpcHQgdG8gaW52b2tlIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgdGhlCgogYXV0b2NvbmYgdG9vbAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1haW5pbmcgY29tbWFuZCBsaW5lIGNoYW5nZXMgZm9yIHN2biAtPgoKIGdpdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtYWtlIHRoZSBicmFuY2ggZWNobyBvdXRwdXQgYW5kIHN2biB1cGRhdGUKCiBjb252ZXJ0ZWQgdG8gZ2l0IGVxdWl2YWxlbnRzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHB1bGwgdGhlIGJyYW5jaCBpbmZvIGZyb20gZ2l0CgoKMjAxMS0wNi0yOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMTogVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsgd2l0aAogICAgICBsaWJyYXJ5CgogdmVyc2lvbiA0LjkKCjIwMTEtMDYtMjkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdW4gMjkKIDE2OjA3OjAwIDIwMTEgKzAyMDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IG5vdGVkIHRoYXQgdGhlIG1hc3RlciBicmFuY2ggaXMgaW4gcmMgc3RhdGUKCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgOGIyM2I0YzEzOTIzYjhjYWY0ZDRhZWQzMmE0NTA5MzM5MzRmZjQ2MSBNZXJnZTogMTUzNzgxZAoKIDQ3ZjUwNDggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBUdWUKIEp1biAyOCAxMzoxNDo1MiAyMDExIC0wNzAwCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgYWY4YjIzNTIzNGY3Mjk0NGE2NDlhNzZmMGQzMGNmZjk1YWMyZTg5NSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgVHVlIEp1biAyOCAxMzoxMToxOSAyMDExCiAtMDcwMAoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIGdpdCBtZXJnZSB3aXRoIHRoZSAtLWxvZwoKIG9wdGlvbgoKMjAxMS0wNi0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDE1Mzc4MWRiZmIyYWZjMDAwM2JhNGU1OGZmY2NhNTMwMDFlNDg2ZDYgTWVyZ2U6IGIzZTgwZGUKCiAzYzVhNDA5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bgogMjggMTk6NDM6MTMgMjAxMSArMDIwMAoKMjAxMS0wNi0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDliYzgyZTRjYTQ4MzdmMDAwNzJkYmE4NmI5NDk3YTI3MTg2OTA5ZjkgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdW4gMjggMTk6MTM6MzUgMjAxMSArMDIwMAoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgogICAqIEZBUTogV2UncmUgbm93IHVzaW5nIGdpdCEKCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgYjNlODBkZTliMDdkMjgyZmYxMWFmOGIwNmE5MWQ2NDI3OWQzMjYxZCBNZXJnZTogYzRhZDI3OAoKIDZhNWU1YTYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBNb24KIEp1biAyNyAyMTozNDo1OSAyMDExIC0wNzAwCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgMzhmZTgxNzdkNTMzMTM1YTZjYzY4MjcyNGYxNmE5MTExM2JjZDdmMyBNZXJnZTogN2Q5MTdjZgoKIGRkNThiYWYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBNb24KIEp1biAyNyAyMTozNDo1NiAyMDExIC0wNzAwCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgNWMxNzdmNTE3ZDE2ZjA1NTQ1YjI3OWQxNmYwZTRmZDU2OTZiZTY1MSBNZXJnZTogZjBkNmJmMAoKIGMyYmNlYmMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBNb24KIEp1biAyNyAyMTozNDo1NSAyMDExIC0wNzAwCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogOiBjb21taXQgOWM5NzY5NTcyZWI4YzAzYjY5NTU2YzFjNWFhYjliNGQ1NmM2ZDFkMyBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1biAyNwogMTQ6MTE6MTQgMjAxMSArMDAwMAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBmZWF0dXJlIHRvIG5vdCByb2xsCgogYnJhbmNoZXMgY3VycmVubHkgaW4gcmMgcGhhc2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnNyb2xsdXAgZnVuY3Rpb24gZm9yCgogcm9sbGluZyBicmFuY2hlcyB1cHdhcmQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogY3JlYXRlZCBhbiBuc3BhdGNoYXBwbHkgZnVuY3Rpb24KCiB0byBhcHBseSBhIHByZXZpb3VzbHkgdGVzdGVkIHBhdGNoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIG5zdHJ5cGF0Y2ggZnVuY3Rpb24gdG8KCiB0ZXN0IHBhdGNoIGFwcGxpY2F0aW9uIGFnYWluc3QgdmFyaW91cyBicmFuY2hlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgdmVyYm9zZSBvdXRwdXQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtb3JlIHByZWZpeCBjaGFuZ2VzIGFuZCBiZXR0ZXIKCiBzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgbnMgcHJlZml4ZXMgaW5zdGVhZCBvZiBnZW5lcmljCgogc25tcCBwcmVmaXhlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogCgogTWlzc2luZyBjaGVjayBmb3IgcnBtdHMuaCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsKCiB3aXRoIGxpYnJhcnkgdmVyc2lvbiA0LjkgQmFzZWQgb24gYSBwYXRjaCBieSBKYW4gU2FmcmFuZWsgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOiBQcm92aWRlIGEgZnJhbWV3b3JrIGZvciByZWFkaW5nCgogUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcKIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCiBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQogKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCiBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQogKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCiBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQogKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQoKIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKCiB0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoKIGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoKIGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAoKIG9mICVsZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCgogb2YgJWxkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBydW4gY29ycmVjdCB2ZXJzaW9uIG9mIGF1dG9jb25mIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHJhbiBhdXRvY29uZiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTAgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogSW5jbHVkZSBzdGRsaWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6IEZpeCBidWlsZCBvZiBzbm1wdXNtCgogd2hlbiBhZGRpdGlvbmFsIHNlYyBtb2R1bGVzIHJlcXVlc3RlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBJbmNsdWRlIHN0ZOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLT1gJKRYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDkgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOiBDSEFOR0VTOiBCVUc6IDMxNTE4NDU6IGZpeCBtdWx0aXBsZQoKIHJlZ2lzdHJhdGlvbnMgb2Ygc25tcCB0cmFuc3BvcnQgaGFuZGxlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDkgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOiBDSEFOR0VTOiBCVUc6IDMxNTE4NDU6IGZpeCBtdWx0aXBsZQoKIHJlZ2lzdHJhdGlvbnMgb2Ygc25tcCB0cmFuc3BvcnQgaGFuZGxlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOCAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAKICAgICAgc25tcGxpYi9zeXN0ZW0uYzogbW9yZSBkbnNzZWMgdHdlYWtzICAtIGNyZWF0ZSBhbiBhcHAtZ2xvYmFsCiAgICAgIHZhbGlkYXRvciBjb250ZXh0IGZvciB1c2Ugd2l0aCBhbGwgICAgdmFsaWRhdGlvbiByb3V0aW5lcy4gbWFpbmx5CiAgICAgIHVzZWZ1bCBmb3IgbG9uZy1saXZlZCBhcHBzLiAgIC0gdXNlIHRoZSBhcHB0eXBlIGFzIHRoZSB2YWxpZGF0b3IKICAgICAgJ3Njb3BlJywgYWxsb3dpbmcgICAgZm9yIGFwcC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIG9mIHZhbGlkYXRpb24KICAgICAgdmlhIGxpYnZhbCdzICAgIGRuc3ZhbC5jb25mIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wNyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOiBhZGQgYSBtYXggZGVmaW5lIGZvcgoKIGVhY2ggZGVmYXVsdCBzdG9yZSB0eXBlICAgbm90IGFjdHVhbGx5IHVzZWQsIGp1c3QgYSBoZWxwZnVsIHJlbWluZGVyIGZvciB0aG9zZSBhZGRpbmcgICBuZXcgaWRzIHdobyBtaWdodCBub3QgdGhpbmsgdG8gY2hlY2sgTkVUU05NUF9EU19NQVhfU1VCSURTLiAgICAodGhlIGJvb2wgbGlzdCBpcyByYXBpZGx5IGFwcHJvYWNoaW5nIHRoZSBjdXJyZW50IGxpbWl0LikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDcgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOiBtZW50aW9uIGJ1aWxkZGlyIHdoZW4KCiBjb21wbGFpbmluZyBhYm91dCBub3QgYmVpbmcgcnVuIGZyb20gc291cmNlIHRyZWUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1NOTVAvU05NUC54czogUmV2ZXJ0ZWQgcjIwMzYyOiB0aGF0IHBhdGNoIG1ha2VzIHNlbnNlIG9uIHRoZQoKIHRydW5rIGFuZCB0aGUgNS42IGJyYW5jaCBidXQgbm90IG9uIHRoZSA1LjUgbm9yIG9uIHRoZSA1LjQgYnJhbmNoLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yIGRlYnVnZ2luZwogb3V0cHV0IG9mIGFnZW50eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCiBvdXRwdXQgb2YgYWdlbnR4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yIGRlYnVnZ2luZwogb3V0cHV0IG9mIGFnZW50eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBmaXhlZCBhdXRvY29uZiB2ZXJzaW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6IFJlaW5zdGF0ZSBhbiAidW51c2VkIiBsYWJlbCB0aGF0IGlzIGFjdHVhbGx5Cgogc3RpbGwgcmVxdWlyZWQuICAocmVmZXJlbmNlZCBpbiBsaW5lIDI3MTApIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiBGaXggdHlwbyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBDSEFOR0VTLCBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGZpeCB4bWwgcXVvdGluZyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9wYXJzZS5jOiBmaXggbm9uIGV4aXN0ZW50IG1hbGxvYyBtYWNybyB0byB1c2UgY2FsbG9jCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQXBwbGllZCB0aGUgaW50ZW50IG9mIHBhdGNoIDMwNDQ4ODggdG8gYWxsb3cgYXBwbGljYXRpb25zCiB0byByZWFkIHRoZSBlcnJvciBtZXNzYWdlcyBvZiBhIE1JQiBwYXJzaW5nIGZhaWx1cmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IAoKIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IAoKIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IAoKIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IAoKIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IAoKIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoCgogb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LiAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQKIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrCiAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aAoKIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCiBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoCgogb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LiAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQKIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrCiAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1cCB0aGUgYW50ZSBhbmQgcnVuIG90aGVyIHRlc3Qgc3VpdGVzCgogYmVzaWRlcyBqdXN0IHRoZSBkZWZhdWx0IHNldCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KCiB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB1c20uYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzogQXBwbGllZCB0aGUgaW50ZW50CiAgICAgIG9mCgogcGF0Y2ggMzI5OTM4NiB3aGljaCBmaXhlcyBkdXBsaWNhdGUgZW50cmllcyBvbiBhIFNJR0hVUC4gIFRvIGFjaGlldmUKIHRoaXMgc29tZSBuZXcgaGVhZGVyX2NvbXBsZXggZnVuY3Rpb25zIG5lZWRlZCB0byBiZSBjcmVhdGVkIHRoYXQKIGRpZG4ndCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBvbGRlciBvbmVzLiAgVGhlIG5vdGlmaWNhdGlvbiBjb2RlCiBub3cgY2FsbHMgdGhlc2UgbmV3ZXIgZnVuY3Rpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oLCBwZXJsL01ha2VmaWxlLlBMOgoKIE5FV1M6IHNubXBkOiBwYXRjaCAzMTMxMzk3OiBmcm9tIHRha2V2b3M6IGh1Z2Ugc3BlZWR1cHMgb2YgdGhlCiBUQ1AvVURQIFRhYmxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvTmV0U05NUC54czogQWRkZWQgYSBib2d1cyBlbXB0eSAueHMgZmlsZSBmb3IgYnVuZGxpbmcgb24KCiBuZXdlciBwZXJsIHRoYXQgd2FudHMgInNvbWV0aGluZyIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzogQ0hBTkdFUzoKCiBzbm1wZDogcGF0Y2ggMzMwNjQ3NjogZnJvbSB0aW55cHlyYW1pZHM6IGZpeCBtZW1vcnkgbGVhayBpbiB0aGUKIHN3cnVuIGNvbnRhaW5lciBsb2FkaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOiBDSEFOR0VTOgoKIHNubXBkOiBwYXRjaCAzMzA2NDc2OiBmcm9tIHRpbnlweXJhbWlkczogZml4IG1lbW9yeSBsZWFrIGluIHRoZQogc3dydW4gY29udGFpbmVyIGxvYWRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogRm9sbG93LXVwIGZvciByMjA0NDk6IHVzZQoKIE5FVFNOTVBfUFJJbyAidSIgZm9yIHByaW50aW5nIHN1YmlkcyBpbnN0ZWFkIG9mIG9ubHkgTkVUU05NUF9QUklvLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IEZvbGxvdy11cCBmb3IgcjIwNDQ5OiB1c2UKCiBORVRTTk1QX1BSSW8gInUiIGZvciBwcmludGluZyBzdWJpZHMgaW5zdGVhZCBvZiBvbmx5IE5FVFNOTVBfUFJJby4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKCiBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZAogYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdAoKIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCiBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogTWljcm9zb2Z0CgogVmlzdWFsIFN0dWRpbzogTGluayB3aXRoIGdkaTMyLmxpYiBpZiBPcGVuU1NMIGhhcyBiZWVuIGVuYWJsZWQKIGJlY2F1c2UgZ2RpMzIubGliIGlzIGEgZGVwZW5kZW5jeSBvZiBPcGVuU1NMLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IEZvbGxvdy11cCBmb3IgcjIwNDQ4OiBzaW5jZSB0aGUKCiAib2lkIiB0eXBlZGVmIGhhcyBiZWVuIGNoYW5nZWQgYmFjayBmcm9tIHVpbnQzMl90IHRvIHVfbG9uZywgY2hhbmdlCiBORVRTTk1QX1BSSW8gZnJvbSBORVRTTk1QX1BSSTMyIGludG8gImwiLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiBGb2xsb3ctdXAgZm9yIHIyMDQ0ODogc2luY2UgdGhlCgogIm9pZCIgdHlwZWRlZiBoYXMgYmVlbiBjaGFuZ2VkIGJhY2sgZnJvbSB1aW50MzJfdCB0byB1X2xvbmcsIGNoYW5nZQogTkVUU05NUF9QUklvIGZyb20gTkVUU05NUF9QUkkzMiBpbnRvICJsIi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKCiBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0Cgogc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKCiBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogcmV2ZXJ0IE9JRCB0eXBlZGVmIHRvIHVfbG9uZyBhcwoKIGFncmVlZCB0byBvbiAtY29kZXJzIGFuZCBpbiB0aGUgYWRtaW4gbWVldGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMKCiBhZ3JlZWQgdG8gb24gLWNvZGVycyBhbmQgaW4gdGhlIGFkbWluIG1lZXRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zeXN0ZW0uYzogUmVtZW1iZXIgdG8gcmV0dXJuIGluZm8gYWxzbyB3aXRob3V0IEROU1NFQwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYzogQWRkZWQgTlVMTC1jaGVja3MKCiBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCgogYWZ0ZXIgbWFsbG9jIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYzogQWRkZWQgTlVMTC1jaGVja3MKCiBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzogQ0hBTkdFUzoKCiBhZ2VudDogQlVHOiAzMzA1MTU3OiBGaXggaXBBZGRyZXNzUHJlZml4IGhhbmRsaW5nIG9mIElQdjYgYWRkcmVzc2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOiBDSEFOR0VTOgoKIGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CgogaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogQlVHOiAzMjk1NDA3OiBGaXgKCiBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogQlVHOiAzMjk1NDA3OiBGaXgKCiBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMjM0NzU0OiBFbnN1cmUKICAgICAgb2xkCgogZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6CiAgICAgIDMyMzQ3NTQ6CgogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKICAgICAgMzIzNDc1NDoKCiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzIzNDc1NDogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcwogaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcF9hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOiBDSEFOR0VTOiBtYW46IEJVRzoKCiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CgogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZjogCgogQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZAogc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmOiAKCiBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kCiBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6IENIQU5HRVM6IG1hbjogQlVHOgoKIDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UKCiBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyoKIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLiAgKGFscmVhZHkKIGZpeGVkIGluIFY1LTUtcGF0Y2hlcyBhbmQgVjUtNC1wYXRjaGVzIGluIFNWTiByZXYuIDIwMTE1LCBkdW5ubyB3aHkKIEkgZGlkIG5vdCBwYXRjaCB0cnVuaykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UKCiBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyoKIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLiAgKGFscmVhZHkKIGZpeGVkIGluIFY1LTUtcGF0Y2hlcyBhbmQgVjUtNC1wYXRjaGVzIGluIFNWTiByZXYuIDIwMTE1LCBkdW5ubyB3aHkKIEkgZGlkIG5vdCBwYXRjaCB0cnVuaykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6CgogMzE4NDY5NzogRG9uJ3QgcmVmZXJlbmNlIGludGVybmFsIE1ENSB3aGVuIGl0J3MgZXhwbGljaXRseSBkaXNhYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6CgogMzE4NDY5NzogRG9uJ3QgcmVmZXJlbmNlIGludGVybmFsIE1ENSB3aGVuIGl0J3MgZXhwbGljaXRseSBkaXNhYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBoaW50IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6IEZvbGxvdy11cCBmb3IgcjIwNDMyOiB0ZXN0aW5nL1JVTlRFU1RTIHdpdGhvdXQKCiBhcmd1bWVudHMgd29ya3MgYWdhaW4gYXMgaXQgc2hvdWxkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogRm9sbG93LXVwIGZvciByMjA0MzI6IHRlc3RpbmcvUlVOVEVTVFMgd2l0aG91dAoKIGFyZ3VtZW50cyB3b3JrcyBhZ2FpbiBhcyBpdCBzaG91bGQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogUmFuCgogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jIHRocm91Z2ggZG9zMnVuaXguICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZTogRml4ZWQgYSB0eXBvIGluIGEKCiBjb21tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOiBGaXhlZCBhIHR5cG8gaW4gYQoKIGNvbW1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6IFJVTlRFU1RTIHdvcmtzIGFnYWluIGZvciB0ZXN0cyB3aXRoIGEgZm91ci1kaWdpdAoKIG51bWJlci4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6IFJVTlRFU1RTIHdvcmtzIGFnYWluIGZvciB0ZXN0cyB3aXRoIGEgZm91ci1kaWdpdAoKIG51bWJlci4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1ZyBpbgoKIG5ldHNubXBfZ2V0YWRkcmluZm8oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6IERvY3VtZW50IHRoYXQgdGhlIHVjZC1zbm1wCgogZGlza2lvIGNvZGUgc3RpbGwgaGFzIHRvIGJlIG1vZGlmaWVkIHN1Y2ggdGhhdCBkaXNraW9fZnJlZV9jb25maWcoKQogZ2V0cyBpbnZva2VkIHVwb24gU0lHSFVQLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6IERvY3VtZW50IHRoYXQgdGhlIHVjZC1zbm1wCgogZGlza2lvIGNvZGUgc3RpbGwgaGFzIHRvIGJlIG1vZGlmaWVkIHN1Y2ggdGhhdCBkaXNraW9fZnJlZV9jb25maWcoKQogZ2V0cyBpbnZva2VkIHVwb24gU0lHSFVQLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogZml4IGNhc3QgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYzogUmV2ZXJ0IDIwNDIwICJDSEFOR0VTOiBzbm1wZDogRml4ZWQgbWVtb3J5IGxlYWsgaW4gVENQLU1JQgoKIHRhYmxlcyBpbnRyb2R1Y2VkIGJ5IHBhdGNoICMzMDUzNDM2LiIgUmV2ZXJ0IDE5NzA4ICJDSEFOR0VTOiBzbm1wZDoKIFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6IHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcwogaW52YWxpZCBtZW1vcnkgYWNjZXNzIiB0aGUgYnVnIDMwNTM0MzYgaXMgZml4aW5nIHdhcyBpbnRyb2R1Y2VkIGluIHIxNzcxOSwgYW5kIGZpeGVkIGluCiByMTc4NjEuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzogbW9yZSBkbnMgcmVsYXRlZCB0d2Vha3MgIC0KICAgICAgYWRkIG5ldHNubXBfZ2V0aG9zdGJ5YWRkciAgLSBhbHdheXMgZGVmaW5lIG5ldHNubXBfKiB2ZXJzaW9uczsKICAgICAgbG9nb25jZSBpZiB1bmRlcmx5aW5nICAgIGZ1bmN0aW9uIGlzIG5vdCBhdmFpbGFibGUgIC0gdXNlIG5ldwogICAgICBmdW5jdGlvbnMgaW4gZGlzbWFuIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIHNubXBsaWIvc25tcHYzLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzogdXNlIG5ldyBuZXRzbm1wIGRucwoKIGZ1bmN0aW9ucyBpbiBhcHBzL3NubXBsaWIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOiBtb3ZlIEROU1NFQwoKIHZhbGlkYXRpb24gaW50byByZXNvbHZlciB3cmFwcGVyIGZ1bmN0aW9ucyAgIC0gYWxsb3dzIG90aGVyIGNvZGUgdG8gYmVuZWZpdCBmcm9tIHZhbGlkYXRpb24gICAtIG5ldyBuZXRzbm1wX2dldGhvc3RieW5hbWUsIG5ldHNubXBfZ2V0YWRkcmluZm8gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBGb2xsb3ctdXAgZm9yIHIyMDQxNzogcmVwbGFjZWQgYSBtYWxsb2MoKS9mcmVlKCkKCiBwYWlyIGJ5IGEgY2FsbCB0byByZWFsbG9jKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBGb2xsb3ctdXAgZm9yIHIyMDQxNzogcmVwbGFjZWQgYSBtYWxsb2MoKS9mcmVlKCkKCiBwYWlyIGJ5IGEgY2FsbCB0byByZWFsbG9jKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL21pYi5jOiBGb2xsb3ctdXAgZm9yIHIyMDQxNzogcmVwbGFjZWQgYSBtYWxsb2MoKS9mcmVlKCkKCiBwYWlyIGJ5IGEgY2FsbCB0byByZWFsbG9jKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYzogRml4IGZvciBSSEVMNAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogSGVhZGVyIGZpZGRsaW5nIGZvciB0aGUKCiBiZW5lZml0IG9mIFJIRUw0LCBTb2xhcmlzLCBPcGVuQlNEIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYzogQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzCiAgICAgIGludHJvZHVjZWQKCiBieSBwYXRjaCAjMzA1MzQzNi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmM6IENIQU5HRVM6IHNubXBkOiBGaXhlZCBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCIHRhYmxlcwogICAgICBpbnRyb2R1Y2VkCgogYnkgcGF0Y2ggIzMwNTM0MzYuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOiBSZXZlcnRlZCBhY2NpZGVudGFsbHkgY29tbWl0dGVkCgogY2hhbmdlcyBvZiByMjA0MTIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiBzbm1wX2ZyZWVfc2Vzc2lvbigpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IF9taWJpbmRleF9hZGQoKSBubyBsb25nZXIgcmVhZHMKCiBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IF9taWJpbmRleF9hZGQoKSBubyBsb25nZXIgcmVhZHMKCiBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IF9taWJpbmRleF9hZGQoKSBubyBsb25nZXIgcmVhZHMKCiBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9sY2RfdGltZS5jOiBBdm9pZCB0aGF0IE1TVkMgdHJpZ2dlcnMgYSBjb21waWxlciB3YXJuaW5nIG9uCgogdGhlIGNvZGUgaW4gc25tcGxpYi9sY2RfdGltZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOiBBdm9pZAoKIHJlYWRpbmcgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwTmV0VG9NZWRpYVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwTmV0VG9NZWRpYVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwTmV0VG9NZWRpYVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwTmV0VG9NZWRpYVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQoKIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKCiBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaWZUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQoKIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsKCiBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrCgogaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhawoKIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IAoKIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkKIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkgaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQgc3BlbGxpbmcgZml4OgoKIGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50Cgogc3BlbGxpbmcgZml4OiBleGl0ZW50IC0+IGV4aXN0ZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nLCBzbm1wbGliL21pYi5jOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudAoKIHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZywgc25tcGxpYi9taWIuYzogRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogQ0hBTkdFUzogV2luMzI6IEJ1aWxkCgogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jIG9ubHkgaWYgTkVUU05NUF9FTkFCTEVfSVBWNgogaGFzIGJlZW4gZGVmaW5lZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IGluc3RhbGwgdGhlIGJ1aWx0IGZlYXR1cmUKCiBoZWFkZXJzIHRvbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZTogQ0hBTkdFUzoKCiB0ZXN0aW5nOiBUZXN0cyAwMjUgYW5kIDAyNiBwYXNzIG9uIE1pbkdXIGV2ZW4gaWYgd2luRXh0RExMIGhhcyBiZWVuCiBlbmFibGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGU6IFQwNjUgcm9idXN0bmVzcwoKIGltcHJvdmVtZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX3ZvaWQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaDogQ0hBTkdFUzogc25tcGQ6IHVjZF9zbm1wIGJ1aWxkcwoKIGFnYWluIG9uIE1pbkdXIGFuZCBDeWd3aW4uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBpbnN0YWxsIHRoZSBuZXQtc25tcC1mZWF0dXJlcy5oIGZpbGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOiBJbXByb3ZlZCB0ZXN0Cgogcm9idXN0bmVzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOiBDb21waWxlciB3YXJuaW5nIGZpeGVzLiAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCgogYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZwoKIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCgogYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jOiBBdm9pZCBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpZiB0aGUgbGFzdCBjaGFyCgogb2YgdGltZV9zdHJpbmcgaXMgaW4gdGhlIHJhbmdlIDB4ODAuLjB4ZmUgYW5kIGNoYXIgaXMgYSBzaWduZWQgdHlwZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiBSZXZlcnRlZCByMjAzODAgYmVjYXVzZSBpdCBicmVha3MKCiBhbGwgc3RhdGVtZW50cyB0aGF0IHByaW50IGFuIE9JRCBzdWItSUQgb24gYW55IDY0LWJpdCBwbGF0Zm9ybS4gVGhlCiBlZmZlY3Qgb2YgcjIwMzgwIG9uIGJpZyBlbmRpYW4gYXJjaGl0ZWN0dXJlcyB3YXMgdGhhdCBhICIwIiB3b3VsZCBiZQogcHJpbnRlZCBpbnN0ZWFkIG9mIHRoZSBPSUQgc3ViLUlEIChhdCBsZWFzdCB3aXRoIHRoZSBMUDY0IGFuZCB0aGUKIElMUDY0IG1vZGVscykuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6IEMrKyAtPiBDIGNvbW1lbnRzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IE5FV1MgdXBkYXRlIGZvciA1LjcgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiByZXZlcnQgdGhlIG9pZCB0eXBlZGVmIHJlc2l6aW5nCgogZnJvbSByMTc4MDkgYmVjYXVzZSBpdCBicm9rZSBiYWNrd2FyZHMgY29tcGF0LCBhcyBwb2ludGVkIG91dCBieQogdXNlcnMgb24gdGhlIC1jb2RlcnMgbGlzdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogdXNlIHByb3BlciBhdXRvY29uZiB2ZXJzaW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogYWRkZWQgYSBtaXNzaW5nIDAgaW4gdGhlIHJldmlzaW9uIGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9yZmNtaWJzLmRpZmY6IElBTkEgaGFzIGZpeGVkIHRoZQoKIElBTkEtSVBQTS1NRVRSSUNTLVJFR0lTVFJZLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjogSUFOQSBoYXMgZml4ZWQgdGhlCgogSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBhZGRlZCBhIG5ldyBSRVZJU0lPTiBjbGF1c2UgdG8gbGlzdCB0aGUKCiBjaGFuZ2VzIGluIHRoZSB0aGUgcmVjZW50IHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IGFkZGVkIHBpbmcvdHJhY2Vyb3V0ZSBtaWJzIG5vdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogd2UgYWN0dWFsbHkgd2FudCB0byB1c2UgdGhlIGJhc2UKCiBPSUQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50LCBub3QgdGhlIHJlZyBPSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6IGZpeGVkIHRoZSBwcm94eSBzdXBwb3J0IHRvIGRvIGEKCiBwcm9wZXIgT0lEIGxlc3MgdGhhbiBPSUQgY29tcGFyZS4gIFdlIGFjdHVhbGx5IGRvbid0IGNhcmUgYWJvdXQgdGhlCiBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QsIG9ubHkgdGhhdCBpdCB3YXMgYmVmb3JlIHRoZQogcmVnaXN0ZXJlZCByZWJhc2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOiBDSEFOR0VTOiBwYXRjaCAzMTQwODMzOiBmcm9tCgoganNhZnJhbmVrOiBmaXggcHJveHkgR0VUTkVYVCByZXF1ZXN0cyBXaGVuIE9JRHMgcmVxdWVzdGVkIGFyZSBiZWxvdwogdGhlIHByb3h5IHJlcXVlc3QgcmVtYXAsIHdlIG5lZWQgdG8gbm90IGluY2x1ZGUgYW55IE9JRHMgdGhhdCBtaWdodAogYmUgaW4gdGhlIHNwYWNlIGJldHdlZW4gdGhlIG9yaWdpbmFsIE9JRCBhbmQgdGhlIHJlbWFwcGVkIE9JRC4gIFRoaXMKIHBhdGNoIGZ1ZGdlcyB0aGUgcmVxdWVzdCBzbyB0aGF0IGl0IGZpeGVzIHRoZSByZXF1ZXN0IE9JRCBzbyBpdCdzCiBqdXN0IGJlZm9yZSB0aGUgcmVtYXBwZWQgcHJveHkgcmFuZ2UuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CiAgICAgIE5FV1M6CgogUEFUQ0ggMzE2NzMyNTogZnJvbSBrcmlzenRvZm9ybzogVUNELVNOTVAvU3lzdGVtU3RhdHM6IGFkZCB2YXJpYWJsZXMKIHRvIHJlcG9ydCBjcHVzdGVhbCwgY3B1Z3Vlc3QsIGNwdWd1ZXN0bmljZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzogQ0hBTkdFUzogcGF0Y2gKCiAzMTg0MDI2OiBmcm9tIGVpdm5hZXM6IEF2b2lkIGNvbnN0YW50IHJlZnJlc2ggb2YgaW50ZXJmYWNlCiBzdGF0aXN0aWNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9zY2FwaS5jLCAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmM6IEZpeGVkCiAgICAgIHNldmVyYWwKCiBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSB0aGUgTVNWQyBjb21waWxlci4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvZ2V0dGltZW9mZGF5LmM6IFdpbjMyL01TVkM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOiBDSEFOR0VTOiBhZ2VudDogRml4ZWQgYQoKIHllYXItMjAzOCBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGlwUm91dGVUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oOiBDSEFOR0VTOiBzbm1wZDogRGVjbGFyZSB0aGUgT0lECgogYXJndW1lbnQgdHlwZSBvZiBNSUIgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhcyAnY29uc3Qgb2lkIConIGluc3RlYWQKIG9mICdvaWQgKicgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGRvIG5vdCBtb2RpZnkgdGhlIE9JRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDogVXNlIHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBmb3IKCiB0aGUgJ2NhY2hlIGV4cGlyZWQnIHZhcmlhYmxlOiBjaGFyIGluc3RlYWQgb2YgaW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMKCiBpbnRyb2R1Y2VkIGluIHIyMDE1MS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFdpbjMyOiBpbXByb3ZlZCBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBieQoKIHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0CiBVbmljb2RlIGJ1aWxkcyBhcmUgc3VwcG9ydGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFdpbjMyOiBpbXByb3ZlZCBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBieQoKIHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0CiBVbmljb2RlIGJ1aWxkcyBhcmUgc3VwcG9ydGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYzogQWRkIGZpbGUKCiBmb3Jnb3R0ZW4gaW4gcjIwMzUzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IFJldmVydGVkIGEgY2hhbmdlIHRoYXQgd2FzCgogY29tbWl0dGVkIGFjY2lkZW50YWxseSBpbiByMjAyNzYuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogRml4ZWQgdHdvIGNvbXBpbGVyCgogd2FybmluZ3MuICAoQmFja3BvcnRlZCByMjAyMzYgZnJvbSB0aGUgdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogQ29tbWVudGVkIG91dCBhbiB1bnVzZWQgZnVuY3Rpb24KCiBiZWNhdXNlIHRoZSBjb21waWxlciBjb21wbGFpbmVkIGFib3V0IGl0LiAgKEJhY2twb3J0ZWQgcjIwMjM3IGZyb20KIHRoZSB0cnVuay4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzEyNTk2OgoKIGZyb20gZmFibGVkODA6IGxpc3RlbiBmb3IgbmV0bGluayBjaGFuZ2UgZXZlbnRzIGZvciB0aGUgYXJwLXJlbGF0ZWQKIHRhYmxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKCiAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAogbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICgogMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKCiAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAogbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogTkVXUzogc25tcGxpYjogYWRkIG9wdGlvbmFsIHN1cHBvcnQgZm9yIGxvY2FsCgogRE5TU0VDIHZhbGlkYXRpb24gb2YgaG9zdG5hbWVzICAtIG9wdGlvbmFsIGF0IGNvbmZpZ3VyZSB0aW1lOiAtLXdpdGgtbG9jYWwtZG5zc2VjLXZhbGlkYXRpb24gIC0gcmVxdWlyZXMgRE5TU0VDLVRvb2wgdmFsaWRhdGlvbiBsaWJyYXJpZXMgIC0gaW5pdGlhbCBzdXBwb3J0LCBmb3Igc3lzdGVtcyB3aXRoIGdldGFkZHJpbmZvLiBzdXBwb3J0IGZvcgogICAgYWRkaXRpb25hbCByZXNvbHZlciBpbnRlcmZhY2VzIGNvbWluZyBzb29uLiAgIC0gYWxzbyBUT0RPOiBmbGFnIGZvciBpZ25vcmluZyB2YWxpZGF0b2luIGVycm9ycyAobG9nICYgY29udGludWUpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oOiBtb3ZlIHVudXNlZCAoYW5kIHRvbyBnZW5lcmljKQoKIHRva2VuIHdpdGhpbiBVQ0RfQ09NUEFUSUJMRSBpZmRlZiAgIC0gTUFYTEFCRUwgY29uZmxpY3RzIHdpdGggPGFycGEvbmFtZXNlci5oPiAgIC0gYWRkZWQgTkVUU05NUF9NQVhMQUJFTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVwZGF0ZSBjb25maWd1cmUvTWFrZWZpbGVzCgogZm9yIEROU1NFQyBsb2NhbCB2YWxpZGF0aW9uIG9wdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6IHJlbW92ZWQgdGhlCgogYWNjaWRlbnRhbCBicm9rZW4gZmVhdHVyZSByZXF1aXJlIGxpbmUgdGhhdCBnb3QgaGFsZiBpbnNlcnRlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMKCiBjb250YWluaW5nIHNwYWNlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMKCiBjb250YWluaW5nIHNwYWNlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMKCiBjb250YWluaW5nIHNwYWNlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYzogRml4IGZvciBEcmFnb25GbHkgQlNEIChkb2VzCiAgICAgIG5vdAoKIGRlZmluZSBJUF9TRU5EU1JDQUREUikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYzogRml4IGZvciBEcmFnb25GbHkgQlNEIChkb2VzCiAgICAgIG5vdAoKIGRlZmluZSBJUF9TRU5EU1JDQUREUikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6IEZpeCBzcGVsbGluZyBvZgoKIFNPX1JFQ1ZEU1RBRERSIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDogRml4IHNwZWxsaW5nIG9mCgogU09fUkVDVkRTVEFERFIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6IE5FV1M6IGFwcHM6IGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aW1lb3V0cwoKIGFuZCByZXRyaWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL1RFU1RDT05GLnNoOiBDSEFOR0VTOiBNaW5HVzogTWFkZQoKIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkCiBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0IGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZQogTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9URVNUQ09ORi5zaDogQ0hBTkdFUzogTWluR1c6IE1hZGUKCiByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZSBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZAogaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUKIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOiAKCiBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQogTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdAogZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbgogaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDogCgogQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUKIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQKIGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZSBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4KIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMi5zbG4sCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiBSZW1vdmVkIFZpc3VhbCBTdHVkaW8gMjAwNSBzb2x1dGlvbiBhbmQgcHJvamVjdCBmaWxlcyBhZ2FpbiBzaW5jZQogVmlzdWFsIFN0dWRpbyAyMDEwIHJlZnVzZXMgdG8gbG9hZCB0aGVzZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IGNsZWFuIHRoZSBwZXJsL3B5dGhvbiBmZWF0dXJlIGxlZnRvdmVycyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZml4IG1pYiBtb2R1bGUgaW52b2NhdGlvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6IGZpeCBpZmRlZgoKIHR5cG8gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogZml4IHBlcmwvcHl0aG9uIGZlYXR1cmUgZGVwZW5kZW5jaWVzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzogcmV2ZXJ0ZWQgYXV0b19ubGlzdCBtYWNybyB1c2FnZTsgdGhlIGZ1bmN0aW9uCgogaXMgdXNlZCBpbiBoZWFkZXJzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGQgYSAtVCBvcHRpb24gdG8gcnVuICdtYWtlIHRlc3QnCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvTWFrZWZpbGUuaW46IGZpeCB0aGUgZW5jb2RlX2tleWNoYW5nZSAuZnQgZmlsZW5hbWUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIHNubXBsaWIvdG9vbHMuYzogCgogZml4IHRoZSBmZWF0dXJlcyByZXF1aXJlZCBieSB0aGUgVHJhcFJlY2VpdmVyIG1vZHVsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbjogQWRkIHRoZSBUcmFwUmVjZWl2ZXIgdG8gdGhlIGxpc3Qgb2YgcGVybCBtb2R1bGVzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOiB1c2UgdGhlIG5ld2VyIE5ldC1TTk1QIEFQSXMsIHJhdGhlciB0aGFuIHRoZQoKIG9sZGVyIFVDRCBvbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiByZW1vdmUgU0VUIGNvZGUgd2hlbiB1bmRlciAtLXJlYWQtb25seSBtb2RlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzogcmVxdWlyZQoKIGNoZWNrX3ZiX3VpbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW4KICAgICAgIHQuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAKICAgICAgcHl0aG9uL25ldHNubXAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBsYXN0IG9mIHRoZSBwZXJsLXVzZWQgZmVhdHVyZSBmdW5jdGlvbnMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VuCiAgICAgICB0LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKIHN0YXJ0ZWQgdGhlIGZpbmFsIHNldCBvZiBmdW5jdGlvbiByZW1vdmFscyBmb3IgZmVhdHVyZXMgcmVxdWlyZWQgYnkKIHBlcmwvcHl0aG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaTogYWRkZWQgdGhlCgogbmV0LXNubXAtZmVhdHVyZXMuaCBoZWFkZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6IEFkZGVkIHBlcmwgZmVhdHVyZQoKIHJlcXVpcmVtZW50cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKICAgICAgcGVybC9BU04vbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL09JRC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6IGhvcGVmdWxseQogICAgICB3b3JraW5nCgogcnVsZXMgdG8gYXBwbHkgZmVhdHVyZSByZXF1aXJlbWVudHMgdG8gcGVybCBhbmQgcHl0aG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmM6IG1vcmUgY2hhbmdlcyB0byByZW1vdmUgdW5uZWVkZWQgZnVuY3Rpb25zCgogcHJpbWFyaWx5IHdoZW4gd3JpdGUgbW9kZSBpcyB0dXJuZWQgb2ZmIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzogY2hhbmdlIHRoZSB3YW50IGludm9jYXRpb24gdG8gb25seSBkZWZhdWx0CgogdG8gZXhjbHVkZSBleHRlcm5hbCBob29rcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogc2VhcmNoIHRocm91Z2ggLnhzIGZpbGVzIGZvcgoKIGZ1bmN0aW9uIGludm9jYXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOiBmb3Jnb3QgYSBzZW1pY29sb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jOiBpcXVlcnkgcGR1CiAgICAgIHNlc3Npb25zCgogYXJlIG9ubHkgbmVlZGVkIGluIHdyaXRlIG1vZGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvTWFrZWZpbGUuaW46IGZpeCBmZWF0dXJlIGRldGVjdGlvbiBvZiBzb21ldGltZXMtYnVpbHQKCiBhcHBsaWNhdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IHVzZSB0aGUgZmVhdHVyZV91bnVzZWQgbWFjcm8gZm9yIG1ha2luZyBhbgoKIGVtcHR5IGZpbGUgZm9yIGNvbnNpc3RlbmN5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTgogICAgICAgVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0bHMuYywgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQW5vdGhlciBzd2VlcCBmb3IgdW51c2VkCgogZnVuY3Rpb25zIHdoZW4gcmVhZF9vbmx5IG1vZGUgaXMgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKICAgICAgICwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTgogICAgICAgVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KICAgICAgIGMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOiBtYXJrIGEgc2xldyBvZiBmdW5jdGlvbnMgYXMgZmVhdHVyZXMKCiB0aGF0IGFyZSBvbmx5IG5lZWRlZCB3aXRoIHdyaXRlX3N1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IHJ1biBncmVwIHdpdGggLW4gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogCgogZmVhdHVyaXplIG5ldHNubXBfc29ja2FkZHJfc2l6ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogcmVtb3ZlIGEKCiBmZWF0dXJlX3JlcXVpcmUgbm90IGFjdHVhbGx5IG5lZWRlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzogbWFyayBTVUJDT05UQUlORVJfRklORAoKIGFzIGEgZmVhdHVyZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdHNtLmM6IHRoZSByb3cgY3JlYXRpb24gQVBJIGlzCgogb25seSB1c2VkIGluIHRoZSBUU00gaW1wbGVtZW50YXRpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHRzbS5jOiB0aGUgbmV3ZXIgY29udGV4dCBlbmdpbmVJRAoKIHByb2JpbmcgaXMgb25seSBuZWVkZWQgaWZmIFRTTSBpcyBpbiB1c2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOiBmaXggYW4gaWZkZWYgdHlwbyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBtb3ZlZCBmZXRhdXJlIGNoaWxkX29mIHN0YXRlbWVudHMgdG8gdGhlCgogdG9wIG9mIHRoZSBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBtYXJrZWQgYSBjb3VwbGUgb2YgcmFyZWx5IHVzZWQgY29udGFpbmVyCgogZnVuY3Rpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOiBzcGxpdCBvdXQgdGhlIHByZWZpeF9pbmZvIGZlYXR1cmUKICAgICAgaW50bwoKIHN1Yi1mZWF0dXJlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmM6IG1hcmsgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcyB1bm5lZWRlZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jOiBmaXggYSBjaGlsZF9vZiBzdGF0ZW1lbnQKCiB3aXRoIGEgY29weS9wYXN0ZSBlcnJvciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogdGhlIGNvbnRhaW5lciByb3ctcmVtb3ZlIGlzIG9ubHkKCiBuZWVkZWQgaWYgdGhlIHRkYXRhIHJlbW92ZV9yb3cgaXMgbmVlZGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTgogICAgICAgVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KICAgICAgIGM6IGZlYXR1cmUgbWFya2luZyBvZiB1bnVzZWQgdGRhdGEgZnVuY3Rpb25zICAgIAogICAgICB0YWJsZV90ZGF0YV9kZWxldGVfdGFibGUgICAgIHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUgICAgCiAgICAgIHRhYmxlX3RkYXRhX3JlbW92ZV9yb3cgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jOiByZW1vdmFsIG9mIHNvbWUgcmFyZWx5IHVzZWQKCiAJZnVuY3Rpb25zIHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cgCXRhYmxlX2RhdGFzZXRfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYSBkZWZpbml0aW9uIHRvIGluY29ycG9yYXRlCgogcmVhZF9vbmx5L25vdGlmeV9vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6IGFkZGVkIGEgbWlzc2luZyBmZWF0dXJlIGRlZmluaXRpb24KCiBsaW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46IGFkZGVkIGJhY2sgaW4gbWlzc2luZyBtaWJncm91cCBmZWF0dXJlCgogZGVmaW5pdGlvbiBsaXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEluY2x1ZGUgdGhlIG9yaWdpbmFsIGJhc2UgZmxhZ3MgdG8KCiBlbnN1cmUgLS13aXRoLWRlZmF1bHRzIGdldHMgcGlja2VkIHVwIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGZpeCB1c2FnZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYSAtYiBmbGFnIGZvciBiYXNlIGFyZ3VtZW50cyB0bwoKIHN0YXJ0IGZyb20gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZGVmYXVsdCB0byBhIGxpbmVhciBzZWFjaCBvZiBzaXplCgogdGVzdHMsIHJhdGhlciB0aGFuIGV4cG9uZW50aWFsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IEd1YXJkIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMKIGNvbnNpc3RlbnRseS4gIENIQU5HRVM6IFdpbjMyOiBCdWlsZHMgd2l0aCBWaXN1YWwgU3R1ZGlvIDIwMTAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOgogICAgICBHdWFyZAoKIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMgY29uc2lzdGVudGx5LiAgQ0hBTkdFUzoKIFdpbjMyOiBCdWlsZHMgd2l0aCBWaXN1YWwgU3R1ZGlvIDIwMTAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOgogICAgICBHdWFyZAoKIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMgY29uc2lzdGVudGx5LiAgQ0hBTkdFUzoKIFdpbjMyOiBCdWlsZHMgd2l0aCBWaXN1YWwgU3R1ZGlvIDIwMTAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQoKIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCiByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKCiByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcwogcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQoKIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCiByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlCgogPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXCiBlbnZpcm9ubWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZQoKIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVwogZW52aXJvbm1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlCgogPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXCiBlbnZpcm9ubWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDogV2luMzIgRExMIGJ1aWxkIGZpeGVzLgoKIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDogV2luMzIgRExMIGJ1aWxkIGZpeGVzLgoKIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQoKIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQoKIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UKCiBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogYWRkZWQgbm90ZSBhYm91dCB0aGUgbmV3IHRpbWluZyBmdW5jdGlvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogVXBkYXRlIHRoZSBtYW51YWwgcGFnZSB0byByZWZsZWN0IHRoZSBuZXcKCiB0aW1pbmcgb3B0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYzogYmV0dGVyIGRvY3VtZW50YXRpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6IHVzZSB0aGUKCiBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmb3IgcGFyc2luZyBmcmVxdWVuY2llcy90aW1lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzogZml4IHBkdQoKIGJ1aWxkaW5nIHRlc3RzIHVuZGVyIHZhcmlvdXMgZGlzYWJsZWQgbW9kZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOiBkb24ndCB0cnkgdG8KCiBidWlsZCB0aGUgR0VUIHBkdSB1bmRlciBub3RpZnlfb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IGZpeCBhIGJ1ZyB3aXRoCgogbm8tc3VmZml4IHN0cmluZ3MgYW5kIHVzZSBhIGNvbnN0IGlucHV0IHN0cmluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDEwbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzX2NsaWIuYzoKCiBBIG5ldyB1bml0IHRlc3QgZm9yIHRoZSB0aW1lIGNvbnZlcnNpb24gcm91dGluZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHVzZSB0aGUKCiBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbiBmb3IgY29tcHV0aW5nIGludGVydmFsCiBwZXJpb2RzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzogQWRkZWQgYQoKIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9ucyB0byBjb252ZXJ0LCBlLmcuLCAxaCB0byAzNjAwIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiByZW1vdmUgY29kZSB0byBidWlsZC9wYXJzZSBHRVQvZXRjIHJlcXVlc3RzCgogd2hlbiBOT1RJRllfT05MWSBpcyB0dXJuZWQgb24uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IHVwZGF0ZSB0aGUgTkVXUyB0byByZWZsZWN0IHRoZSBuZXcgLS1lbmFibGUtcmVhZC1vbmx5IGFuZAoKIC0tZW5hYmxlLW5vdGlmeS1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IG1pbm9yCgogaW1wcm92ZW1lbnRzIGZvciByb25seSB2cyByd3JpdGUgaGFuZGxpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOiBzdGlsbCBlbmFibGUKCiBST05MWSB3aGVuIFJXUklURSBpc24ndCBwb3NzaWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBmaXggR0VUIHN1cHBvcnQgd2hlbiBub193cml0ZSBpcwoKIGVuYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBtYXJrIGEgZnV0dXJlCgogbW9kaWZpY2F0aW9uIG5lZWQgaW4gYSBjb21tZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOiBmaXggaGFuZGxpbmcgb2Ygbm9fd3JpdGUgc3VwcG9ydAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmM6IAoKIGRvbid0IG9wZW4gYW55IGxpc3RlbmluZyB0cmFuc3BvcnRzIHdoZW4gbm90aWZ5LW9ubHkgaXMgc3BlY2lmaWVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogc2V0IHRoZQoKIG5vLWxpc3RlbiBhbmQgcmVhZC1vbmx5IGZsYWdzIHdoZW4gLS1lbmFibGUtbm90aWZ5LW9ubHkgaXMgc2V0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogcmFuIGF1dG9oZWFkZXIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBpbXBsZW1lbnQgdGhlCgogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCBpbiB0aGVzZSB0cmFuc3BvcnRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBydW4gYXV0b2NvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IG1vdmUgdGhlIHJlYWQtb25seSBmbGFnCgogZGVmaW5pdGlvbiBiZWxvdyB0aGUgbm90aWZ5LW9ubHksIHNpbmNlIG5vdGlmeS1vbmx5IG5lZWRzIHRvIGltcGx5CiByZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBEZWZpbmVkIGEgbmV3CgogLS1lbmFibGUtbm90aWZ5LW9ubHkgZmxhZyBmb3IgYnVpbGRpbmcgYSB0b29sc2V0IHRoYXQgb25seSBhbGxvd3MKIGZvciBub3RpZmljYXRpb25zIHdpdGggbm8gcmVhZC93cml0ZSBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogRGVmaW5lZCBhIG5ldwoKIC0tbm8tbGlzdGVuIGZsYWcgdG8gcmVtb3ZlIGxpc3RlbmluZyBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6IHRoZSBkaXNtYW4gc2NoZWR1bGUgbWliIGlzIG9ubHkKCiB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4uaDogdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwKCiB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCiAgICAgICBmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGM6IGZpbmlzaGVkIG5vX3dyaXRlIHN1cHBvcnQgZm9yIGNvbW1vbiBpbmNsdWRlZCB0YWJsZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6IEFkZCBiYWNrIGluCgogJ25ldHNubXBfc2V0X3Jvd19jb2x1bW4nIHdoZW4gbm9fd3JpdGUgc3VwcG9ydCBpcyBlbmFibGVkIFRoaXMKIGZ1bmN0aW9uIGlzIGEgZ2VuZXJpYyBkYXRhIG1hbmlwdWxhdGlvbiBmdW5jdGlvbiwgbm90IFNFVCBzcGVjaWZpYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOiBkb24ndCB1c2UgbWFya19yb3dfY29sdW1uX3dyaXRhYmxlCgogd2hlbiByZWFkLW9ubHkgc3VwcG9ydCBpcyBlbmFibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzogZml4IG5vX3dyaXRlIHN1cHBvcnQKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6IGZpeCBub193cml0ZSBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGdpdCBiYXNoLXNoZWxsIGZ1bmN0aW9ucyB0byBlbmFibGUKCiBicmFuY2ggc3dpdGNoaW5nIGFuZCBleHRlcm5hbCBidWlsZGluZyBUaGVzZSBsb2NhbCBzaGVsbCBmdW5jdGlvbnMKIChzbm1wY29uZmlndXJlIGFuZCBzbm1wbWFrZSkgbGV0IHlvdSBjb25maWd1cmUgYW5kIGJ1aWxkIHRoZQogTmV0LVNOTVAgc291cmNlIGNvZGUgaW4gZXh0ZXJuYWwgZGlyZWN0b3JpZXMgdGhhdCBhcmUKIGF1dG8tY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZXhpc3RpbmcgYnJhbmNoIG5hbWUgKHdpdGggYW4gb3B0aW9uYWwKIHN1ZmZpeCkuICBUaGlzIGxldHMgeW91IHJ1biAnc25tcG1ha2UnIGZyb20gd2l0aGluIHRoZSBzb3VyY2UKIGRpcmVjdG9yeSBhbmQgaGF2ZSBpdCBhY3R1YWxseSBleHRlcm5hbGx5IGtlZXAgdHJhY2sgb2YgbW9kaWZpZWQKIGZpbGVzLCBldGMsIHNvIGJ1aWxkaW5nIGluIG11bHRpcGxlIGJyYW5jaGVzIGNhbiBiZSBkb25lIGZyb20gYQogc2luZ2xlIGdpdCBjaGVja291dC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGNsZWFuIHVwIHRoZSBpdGVyYXRvcnMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZnJlZSB2YXJiaW5kcyBhZnRlcgoKIHNlbmRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogQ29tbWVudGVkIG91dCBhbiB1bnVzZWQgZnVuY3Rpb24KCiBiZWNhdXNlIHRoZSBjb21waWxlciBjb21wbGFpbmVkIGFib3V0IGl0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogRml4ZWQgdHdvIGNvbXBpbGVyCgogd2FybmluZ3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOiBNb3ZlIHBvaW50ZXIgZGVyZWZlcmVuY2UgdG8gYWZ0ZXIKCiB0aGUgY2hlY2sgZm9yIHN1Y2Nlc3NmdWwgYWxsb2NhdGlvbiBvZiB0aGUgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBtZW50aW9uIHdoaWNoIG1vZHVsZSBpcyByZXF1aXJlZCB3aGVuCgogYnVpbGRpbmcgdG8gZ2V0IHRoZSBkZWxpdmVyIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBkZWxldGVkIGFuIHVubmVlZGVkCgogZGVidWdnaW5nIHN0YXRlbWVudCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHByb3Blcmx5IHVwZGF0ZSB0aGUgbWF4CgogY291bnQgaW4gdGhlIG91dGdvaW5nIG5vdGlmaWNhdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBiZXR0ZXIgcGFja2V0IGVzdGltYXRpb24KCiB0byBlbnN1cmUgd2UgZG9uJ3Qgb3ZlcnJ1bi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZXN0aW1hdGUgdGhlIHBhY2tldCBzaXplCgogYW5kIGJyZWFrIHRoZSBub3RpZmljYXRpb24gdXAgYmFzZWQgb24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiB0cmFuc2Zvcm0gdGhlCgogbm90aWZpY2F0aW9uIHNlbmRpbmcgaW50byBhIGxhcmdlciBsb29wIGZvciBsYXRlciBtdWx0aS1ub3RpZnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTkVXUzogZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBmZWF0dXJlIG1hcmtpbmcvc2VsZWN0aW9uCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IG1lbnRpb24gdGhlIG5ldyBkZWxpdmVyeSBieSBub3RpZmljYXRpb25zIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IGRvY3VtZW50IHRoZSBtaW5pbWFsaXN0IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IGRvY3VtZW50IHRoZSBuZXcgZGVsaXZlckJ5Tm90aWZ5IGNvbmZpZwoKIHRva2VucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGFsbG93IHJ1biB0aW1lCgogbW9kaWZpY2F0aW9ucyBvZiB0aGUgT0lEcyB0byB1c2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGFkZCBjb25maWcgZmxhZ3MgdG8gbm90CgogaW5jbHVkZSB0aGUgcGVyaW9kIGNvbmZpZyBhbmQgbXNnIGNvdW50IHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGluY2x1ZGUgdGhlIHBlcmlvZGljCgogY291bnQsIHRoZSBtZXNzYWdlIG51bWJlciBhbmQgdGhlIG1heCBtZXNzYWdlIG51bWJlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlbGV0ZWQgZGVidWdnaW5nCgogY29tbWVudCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDogTW92ZSB0aGUgbm90aWZpY2F0aW9uCgogZGVmaW5pdGlvbiB0byB3aXRoaW4gdGhlIHN1Yi1taWIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBkZWxldGUgYW4gdW51c2VkCgogdmFyaWFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBsb2FkIHRoZSBNSUIgaW50byB0aGUKCiBkZWZhdWx0IHNldCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6IEEgbmV3IG1pYiB0byBob2xkIHRoZQoKIHBlcmlvZGljIG5vdGlmeSBvYmplY3RzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZmlsbCBvdXQgdGhlIGNvbmZpZyBmcmVlCgogcm91dGluZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHByb3Blcmx5IG1vbml0b3IgdGhlCgogd2hvbGUgY29udGFpbmVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBwYXJzZSB0aGUgY29uZiBmaWxlcyBhbmQKCiBjcmVhdGUgYW5kIGluc2VydCBvYmplY3RzIGludG8gdGhlIGNvbnRhaW5lciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlZmluZWQgYSBjb250YWluZXIgdG8KCiBzdG9yZSBhIGxpc3Qgb2YgZGVsaXZlciBvYmplY3RzIGluIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYWRkZWQgYSBuZXh0X3J1bgoKIHRpbWVzdGFtcCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGFjdHVhbGx5IHNlbmQgYQoKIG5vdGlmaWNhdGlvbiB3aXRoIHRoZSByZXN1bHRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogbWFrZSB0aGUgd2FsayBvbiB0aGUKCiB0ZXN0IG9iamVjdCBmdW5jdGlvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogY3JlYXRlIGEgbWF4IHBhY2tldCBzaXplCgogY29uZmlnIHRva2VuIGFuZCBwYXJzZSBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogbWluaW1hbCBzdGFydGluZyB0ZXN0Cgogb2JqZWN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBhZGRlZCBhIGZ1bmN0aW9uIHRvCgogY2FsY3VsYXRlIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHJ1biBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHJlbW92ZSBsZWZ0IGluIHRlbXBsYXRlCgogbGluZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogdXNlIGFuIGFsYXJtIGNhbGxiYWNrCgogcHJvdG90eXBlIGZvciBleGVjdXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBiZWdpbm5pbmcgdGVtcGxhdGUgY29kZQoKIGZvciBkZWxpdmVyeSBvZiBkYXRhIGJ5IG5vdGlmaWNhdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbjogQWRkZWQgVmlzdWFsIFN0dWRpbwoKIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZSBmb3IgYnVpbGRpbmcgdGhlIE5ldC1TTk1QIGxpYnJhcnkgYXMKIGEgc3RhdGljIGxpYnJhcnkuIEJvdGggdGhlIFdpbjMyIGFuZCB0aGUgeDY0IGNvbmZpZ3VyYXRpb25zIGFyZQogaW5jbHVkZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvajogTW9yZSBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdAogICAgICBmaWxlCgogY2xlYW51cC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvajogQ2xlYW5lZCB1cCBXaW4zMiBWUzIwMDUgcHJvamVjdAoKIGZpbGVzIC0gcmVtb3ZlZCBzdXBlcmZsdW91cyBsaWJyYXJ5IHJlZmVyZW5jZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOiBBZGRlZCB4NjQKCiBjb25maWd1cmF0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46IEFkZGVkCgogd2luMzJkbGwtcmVsYXRlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xOCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6IFdpbjMyIERMTCBidWlsZCBmaXhlcy4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UKCiBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wZDoKICAgICAgUEFUQ0hFUzoKCiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGQ6CiAgICAgIFBBVENIRVM6CgogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhcHBzL3NubXB0cmFwZF9kcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjogQ0hBTkdFUzoKCiBMaW51eDogUEFUQ0hFUzogMzIwNTgxMTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbgogZGlza0lPVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFwcHMvc25tcHRyYXBkX2RzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBDSEFOR0VTOgoKIExpbnV4OiBQQVRDSEVTOiAzMjA1ODExOiBPcHRpb24gdG8gc2tpcCBmZC9sb29wL3JhbSBkZXZpY2VzIGluCiBkaXNrSU9UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgoKIEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NToKCiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgoKIEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKCiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKCiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKCiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKCiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKCiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6IFJlbW92ZSBib2d1cwoKIChMaW51eCkgZGVmaW5lcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6IFJlbW92ZSBib2d1cwoKIChMaW51eCkgZGVmaW5lcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6IFJlbW92ZSBib2d1cwoKIChMaW51eCkgZGVmaW5lcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wLXRjLmM6IEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcC10Yy5jOiBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCBjb25maWd1cmUsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBCaWxsIEZlbm5lcnMgcGF0Y2ggdG8gbWFrZQoKIERJU01BTiBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQlMgY29tcGlsZSB1bmRlciBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOiBTb2xhcmlzIHN1cHBvcnQgZm9yCgogU0NUUC1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6IFNvbGFyaXMgc3VwcG9ydCBmb3IKCiBTQ1RQLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzogU29sYXJpcyBzdXBwb3J0IGZvcgoKIFNDVFAtTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQKCiBTWVNWIChzdWNoIGlzIExpbnV4KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZAoKIFNZU1YgKHN1Y2ggaXMgTGludXgpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kCgogU1lTViAoc3VjaCBpcyBMaW51eCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6Cgogb3ZlcmhhdWwgb2YgZGVidWcgICAtIGRyYXN0aWMgcmVkdWN0aW9uIGluIG51bWJlciBvZiBtZXNzYWdlcyBhbmQgbXNnIGNvbXBsZXhpdHkgICAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuICAgLSBwcmV2aW91cyBsZXZlbCBvZiBkZXRhaWwgYXZhaWxhYmxlIGJ5IGFkZGluZyA5OmR0bHNkdXAgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOgoKIG92ZXJoYXVsIG9mIGRlYnVnICAgLSBkcmFzdGljIHJlZHVjdGlvbiBpbiBudW1iZXIgb2YgbWVzc2FnZXMgYW5kIG1zZyBjb21wbGV4aXR5ICAgICBmb3IgYmFzaWMgZHRsc3VkcCB0b2tlbiAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOgoKIGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEgICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldCAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgICBjbG9zZSBoYW5kbGluZzogICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZSAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsgICAgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0ICAgICByZXBlYXRlZGx5ICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKCiBjbGVhbiB1cCBjbG9zZTsgY2F0Y2ggJ2Nvbm5lY3QnLydkaXNjb25uZWN0JyAgIGNvbm5lY3QgPSB3ZSBnZXQgc3VjY2Vzc2Z1bGx5IGRlY29kZWQgc25tcCBkYXRhICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQgICBhZGQgYmlvX2NhY2hlIGZsYWdzIGZvciBjb25uZWN0ZWQvZGlzY29ubmVjdGVkICAgY2hlY2sgZm9yIG51bGwgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nICAgY2xvc2UgaGFuZGxpbmc6ICAgLSAgb25seSBzZW5kIHF1ZXVlZCBkYXRhIGlmIHdlIGdvdCB0byBjb25uZWN0ZWQgc3RhdGUgICAtICBzZXJpb3VzbHkgcmVkdWNlIHRpbWVvdXQgdG8gd2FpdCBmb3IganVuayByZWFkLiBpIHRoaW5rICAgICAgd2Ugc2hvdWxkbid0IGV2ZW4gYm90aGVyICAgLSByZXR1cm4gZWFybHkgaWYgY2FjaGVwIGlzIE5VTEwsIHNvIHdlIGRvbid0IGhhdmUgdG8gdGVzdCBpdCAgICAgcmVwZWF0ZWRseSAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogbWFrZSB0cnVuayBhbmQKCiB2NS02LXBhdGNoZXMgY2xvc2VseSBhbGlnbmVkICAgbW9zdGx5IGNoYW5nZXMgaW4gZGVidWcsIGNvb2tpZSB0cmFja2luZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMzEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IG1ha2UgdHJ1bmsgYW5kCgogdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZCAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMzEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IGFkZCBjb29raWUgaGFuZGxpbmc7CgogcmVtb3ZlIGlmZGVmJ2QgY29kZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IFNpbXBsaWZ5IGFycmF5IHJlc2l6aW5nIHNvbWV3aGF0CgogZnVydGhlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogRG8gbm90IGFzc2lnbiBuZXdfZGF0YSBpZiB0aGUKCiB2YWx1ZSB3b24ndCBiZSB1c2VkLiAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNsZWFyIGEKCiBjaHVuayBvZiBtZW1vcnkgaWYgdGhlIG5leHQgYWN0aW9uIG9uIGl0IGlzIHRvIGZpbGwgaXQgc28gdXNlIG1hbGxvYwogaW5zdGVhZCBvZiBjYWxsb2MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ29udGFpbmVyQmluYXJ5QXJyYXkgcmVhbGx5CgogY2FuJ3QgaG9sZCBhbnl0aG5nIGJ1dCBwb2ludGVycyBhbmQgdGhhdCBtZWFucyB0aGUgZGF0YV9zaXplIGZpZWxkCiBpcyB1bm5lY2Vzc2FyeSBzbyBJIHJlbW92ZWQgaXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6IEFkZCBtaXNzaW5nIGluY2x1ZGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBVc2UgdGhlIHJpZ2h0IGZlYXR1cmUKCiBtYWNybyBpbiBvcmRlciB0byBtYWtlIGJ1aWxkcyB3aXRoIC0tZW5hYmxlLWlwdjYKIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1VRFBJUHY2IHN1Y2NlZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogUmVtb3ZlIGR1cGxpY2F0ZSBjb3BpZXMgb2YKCiBmdW5jdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDogdHdlYWsgZGVidWcgbWVzc2FnZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IHVwZGF0ZQoKIGNlcnQgdG9rZW4gaGFuZGxpbmcgIC0gcmVtb3ZlIGRlZlg1MDkgY2VydCB0b2tlbnMgKHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBiZWZvcmUgNS42KSAgLSB3YXJuaW5ncyBmb3Igb3VyL3RoZWlyIHRva2VucywgcmVjb21tZW5kIHVzaW5nIGxvY2FsL3BlZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IG1lcmdlIG5ldHNubXBfZHRsc3VkcDYKICAgICAgaW50bwoKIG5ldHNubXBfZHRsc3VkcCAgICB1c2UgYWRkciBzaXplIHRvIHRlbGwgdGhlbSBhcGFydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IGxvZyAob25jZSkgd2FybmluZyB3aGVuIGRlcHJlY2F0ZWQKCiBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgdHJhbnNwb3J0IGZ1bmN0aW9uIHVzZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzogcmVkdWNlIGNhc3Rpbmc7IG1ha2Ugc3VyZSB0bwoKIGZyZWUgdGhlIHJpZ2h0IHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IHJlZHVjZSBjYXN0aW5nIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZXBsYWNlIGEgdmFyaWFibGUgd2l0aCBhCgogY29uc3RhbnQuIE1ha2Ugb25lIG1vcmUgb2lkIGNvbnN0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24KCiB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6IEZvcm1hdHRpbmcgYm90Y2ggZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6IEZvcm1hdHRpbmcgYm90Y2ggZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9NYWtlZmlsZS5pbjogSW5zdGFsbCByZXF1aXJlZCBtaWJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL01ha2VmaWxlLmluOiBJbnN0YWxsIHJlcXVpcmVkIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9yZmNsaXN0OiBOZXcgUkZDIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvcmZjbGlzdDogTmV3IFJGQyBtaWJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgCiAgICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgIFZlcnNpb24KCiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IFNwZWxsaW5nIGZpeDogcmVnaW5lcmF0ZWQgLT4gcmVnZW5lcmF0ZWQuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IFNwZWxsaW5nIGZpeDogcmVnaW5lcmF0ZWQgLT4gcmVnZW5lcmF0ZWQuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU2ltcGxpZmllZCByMTk1OTQgKGxlYWstYXQtZXhpdCBmaXgpLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzCgogaW50cm9kdWNlZCBpbiByMjAxMTMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMKCiBpbnRyb2R1Y2VkIGluIHIyMDExMy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgCiAgICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgICBWZXJzaW9uCgogbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSQoKIHJvdXRpbmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IEZpeCBtYWluIGFnZW50IHNlbGVjdCBjYWxsIHRvIHVzZSB0aGUgcmVuYW1lZCBBUEkKCiByb3V0aW5lLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8gbGluZSB3aXRoIHRoZQogcmVzdCBvZiB0aGUgQVBJLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvIGxpbmUgd2l0aCB0aGUKIHJlc3Qgb2YgdGhlIEFQSS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50byBsaW5lIHdpdGggdGhlCiByZXN0IG9mIHRoZSBBUEkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbgogbmV0c25tcF9sYXJnZV9zZWxlY3QoKSAocGx1cyB0d2Vha3MgdG8gbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdAoKIGluc3RlYWQgb2YgY2FsbG9jICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQKCiBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CgogaW5zdGVhZCBvZiBjYWxsb2MgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlIHRhYmxlcyBmcm9tCiBTdGVwaGVuIEhlbW1pbmdlciAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdCAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZQoKIHRhYmxlcyBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOyBzdWJqZWN0ICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlCgogdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yayBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogYWRkIG1vcmUKCiBvcGVuc3NsIGVycm9yIGNhc2VzIHdoZXJlIHdlIGNoZWNrIGZvciBsb2NhbCBjZXJ0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogYWRkIG1vcmUKCiBvcGVuc3NsIGVycm9yIGNhc2VzIHdoZXJlIHdlIGNoZWNrIGZvciBsb2NhbCBjZXJ0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOiBNaW5HVzogZHNrVGFibGU6IFJlcG9ydCB6ZXJvIGZvcgoKIHVuaW1wbGVtZW50ZWQgZmllbGRzIGluc3RlYWQgb2YgcmFuZG9tIGRhdGEuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yCgogdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZiByYW5kb20gZGF0YS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UKCiBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyoKIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UKCiBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyoKIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOiBDSEFOR0VTOiBzbm1wZDogQnVpbGRzCgogd2l0aCBtb3N0IHJlY2VudCBNaW5HVyAoaGF2aW5nICNkZWZpbmUgbG9jYWx0aW1lX3IpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOiBDSEFOR0VTOiBzbm1wZDogQnVpbGRzCgogd2l0aCBtb3N0IHJlY2VudCBNaW5HVyAoaGF2aW5nICNkZWZpbmUgbG9jYWx0aW1lX3IpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogQ0hBTkdFUzogc25tcGxpYjoKCiByZWZpbmUgY2VydCBkZWJ1Z2dpbmc7IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IENIQU5HRVM6IHNubXBsaWI6CgogcmVmaW5lIGNlcnQgZGVidWdnaW5nOyByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMyMDU3NjU6IGhhbmRsZSByZWNvbmZpZwoKIGZvciBjZXJ0U2VjTmFtZSB0b2tlbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnCgogZm9yIGNlcnRTZWNOYW1lIHRva2VuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogU3BlbGxpbmcgZml4IGluIGEgc291cmNlIGNvZGUgY29tbWVudDogbWVzc2dlcyAtPgoKIG1lc3NhZ2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogU3BlbGxpbmcgZml4IGluIGEgc291cmNlIGNvZGUgY29tbWVudDogbWVzc2dlcyAtPgoKIG1lc3NhZ2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWlub3IKCiBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWlub3IKCiBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzIwMzgwNjogQXZvaWQgdGhhdCB0aGUgbWFpbgoKIGFnZW50IHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQogZGVzY3JpcHRvcnMgLSBjYW4gY2F1c2UgbWVtb3J5IGNvcnJ1cHRpb24gYnkgaW52b2tpbmcgc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMyMDM4MDY6IEF2b2lkIHRoYXQgdGhlIG1haW4KCiBhZ2VudCBwcm9jZXNzaW5nIGxvb3AgLSB3aGVuIHVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUKIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbgogbmV0c25tcF9sYXJnZV9zZWxlY3QoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmM6IAoKIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncyAoYmFja3BvcnRlZCByMjAwOTggZnJvbSB0aGUgdHJ1bmspLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOWxhcmdlX2ZkX3NldF9jbGliLmM6IEFkZGVkIGEKCiBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDlsYXJnZV9mZF9zZXRfY2xpYi5jOiBBZGRlZCBhCgogbWluaW1hbCB1bml0IHRlc3QgZm9yIG5ldHNubXBfbGFyZ2VfZmRfc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1ha2UKCiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwgcmVsZXZhbnQgZmlsZSBkZXNjcmlwdG9ycy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1ha2UKCiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwgcmVsZXZhbnQgZmlsZSBkZXNjcmlwdG9ycy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKCiBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKCiBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKCiBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKCiBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IG1ha2UKCiB2YXJpYWJsZSBuYW1lcyBtYXRjaCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jOiAKCiBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBmaXhlZCBpbnN0YWxsYXRpb24KCiB2YXJpYWJsZXMgZm9yIHRoZSBvcHRpb25hbCBTRVQgcHJvZ3JhbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOiBjaG1vZCBhK3ggZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IHByaW50IGFuIGVycm9yIGlmIHRoZSBlbmQgb2YKCiBhIGZpbGUgd2FzIHJlYWNoZWQgYW5kIHdlJ3JlIG5vdCBiYWNrIGludG8gdGhlIHN0YXRlIHdlIGNhbiB3cml0ZTsKIG90aGVyd2lzZSBhIGNsb3NpbmcgI2lmZGVmIGlzIG1pc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBmaXggZW5kaWYgY29tbWVudCB0byBtYXRjaAoKIHRoZSBvcGVuaW5nIGlmZGVmIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IHJlc2V0IHRoZSBjYW53cml0ZSBmbGFnIGZvcgoKIGV2ZXJ5IGZpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOiB0ZW1wb3JhcmlseSBsZWF2ZSBpbgoKIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBjaGFuZ2UgdGhlIHVuaXF1ZSBmaWxlIGNoZWNrIHRvIG9uZSB0aGF0CgogaXMgbm90IGluIHRoZSBtaWJncm91cCBkaXJlY3RvcnkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9yZWFkLW9ubHkvVDAxNDFzbm1wdjJjc2V0ZmFpbF9zaW1wbGU6IGEgdGVzdCBmb3IKCiBlbnN1cmluZyB0aGUgYWdlbnQgcmVqZWN0cyBTRVQgcmVxdWVzdHMgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IGFkZCBiYWNrIGluIHRoZQoKIHN0b3BhZ2VudCBjb21tYW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMXBkdV90eXBlX2NsaWIuYywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmMsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDNwZHVfcGFyc2VfY2xpYi5jOiB1bml0IHRlc3RzCiAgICAgIHdyaXRlbgoKIGZvciB0aGUgcmVhZC1vbmx5IHN1cHBvcnQgY29udmVydGVkIHRvIHdvcmsgd2l0aCBvciB3aXRob3V0CiByZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IGRvbid0IHJ1biB0aGUKCiBzZXQgdGVzdCBpZiBub193cml0ZV9zdXBwb3J0IGlzIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGU6IHNraXAgaWYKCiBub193cml0ZV9zdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOiBBIG5ldyB0ZXN0IHRvCgogY2hlY2sgd2hldGhlciBTTk1QdjJjIFNFVHMgdG8gc3lzQ29udGFjdCB3b3JrIGFzIGV4cGVjdGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZzogYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydAoKIHRlc3RpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzogQWxsb3cgZm9yIHNpbmdsZSBxdW90ZXMgZm9yIHZhY20KCiBjb250ZXh0IG5hbWUgcXVvdGluZyB0b28gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUgdGhlIHdvcmQgdGVzdCBpbiB0aGUKCiB0ZXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlCgogdGhlIHdvcmQgdGVzdCBpbiB0aGUgdGVzdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IEFkZGVkIGFuIGFubm95aW5nbHkgbG9uZwoKIGxpc3Qgb2YgZXhjZXB0aW9ucyB0aGF0IG5lZWRzIHRvIGJlIGF1dG9tYXRlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IEEgcXVpY2sgcGVybCBzY3JpcHQgdG8KCiByZW1vdmUgdW5uZWVkZWQgY29kZSBtb2R1bGVzIGZyb20gdGhlIG1vZHVsZXMgZGlyZWN0b3J5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6IG1vcmUKCiBpbXByb3ZlbWVudHMgKHJlbW92ZW1lbnRzKSBmb3IgZmVhdHVyaXphdGlvbiBhbmQgcmVhZC1vbmx5IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6CgogMzE5NTUzNzogTWlub3IgYmluYXJ5X2FycmF5IGNvbnRhaW5lciBzb3J0IG9wdGltaXphdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6CgogMzE5NTUzNzogTWlub3IgYmluYXJ5X2FycmF5IGNvbnRhaW5lciBzb3J0IG9wdGltaXphdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzogVGFicyB0byBzcGFjZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzogVGFicyB0byBzcGFjZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczogQ29uZmlndXJlIGNoZWNrIGZvciBnZXRob3N0bmFtZTIKCiBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZCBXaW5kb3dzPykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczogQ29uZmlndXJlIGNoZWNrIGZvciBnZXRob3N0bmFtZTIKCiBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZCBXaW5kb3dzPykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGVzdC5jOiBBZGQgZHJvcHBlZCB8fCdzIGZyb20gcjIwMDcyIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jOiBDbGVhbiB1cCwgYW5kCgogY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcgZnVuY3Rpb24uICBTYXZlcyAyMDAKIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6IENsZWFuIHVwLCBhbmQKCiBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldyBmdW5jdGlvbi4gIFNhdmVzIDIwMAogbGluZXMgb2YgY29kZSwgd2l0aCAoaG9wZWZ1bGx5KSBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0ZXN0LmMsIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogZG9uJ3QgYnVpbGQgU0VUIHJlbGF0ZWQgYXBwcyB3aXRoCgogLS1lbmFibGUtcmVhZC1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOiBmaXgKCiBpc3N1ZXMgd2l0aCBjb21iaW5pbmcgLS1lbmFibGUtbWluaW1hbGlzdCBhbmQgLS1lbmFibGUtcmVhZC1vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBiZXR0ZXIgb3V0cHV0IGZvciBmaW5kaW5nCgogb2JqZWN0IHN5bWJvbHMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogbGFzdCBjb21taXQ6IGNoYW5nZXMgdG8gYWxsb3cKCiBwYXJzaW5nIG9mIGZlYXR1ZXJzIGZpbGVzIHRvIGdldCBhbGwgbWluaW1hbGlzdCB0YWdzIHdoaWNoIGFyZSB0aGVuCiBwcm9jZXNzZWQgZm9yIHJlbW92YWwgdGhpcyBjb21taXQ6IGNoYW5nZWQgY29tbWVudHMvd2hpdGUgc3BhY2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOiBhZGRlZCBub193cml0ZSBzdXBwb3J0IHRvIGV4dGVuZC5jCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6IEFkZGVkIG1pc3NpbmcgI2VuZGlmIGNvbW1lbnQgZm9yIHJlbW92ZQoKIGlmZGVmIGNvZGUgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogYWRkZWQgY2hhbmdlcyB0byBhbGxvdyBjb2RlCgogcmVtb3ZhbCBpbi1wbGFjZSAoaS5lLiBkb2VzIG5vdCByZXF1aXJlIGNyZWF0aW5nIGEgbmV3IGZpbGUpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cDogYWRkaW5nIGEgaWdub3JlLnJlZ2V4cCBmaWxlIHRoYXQKCiBjYW4gYmUgdXNlZCB3aXRoIHJlbW92ZWlmZGVmY29kZS5wbCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogYWRkIGEgb3V0Z29pbmcgbGluayB0byB0aGUKCiBwYXJlbnQgbWFya2luZyBwYWdlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogQWRkZWQgYSB3aWtpIG91dHB1dCBtb2RlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogTm90ZSB0aGF0IHRoZSBvcmcgb3V0cHV0IGlzIHRoZQoKIGRlZmF1bHQgaW4gdGhlIGhlbHAgb3V0cHV0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQKCiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4gVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbgogTGludXggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQKCiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4gVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbgogTGludXggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQKCiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4gVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbgogTGludXggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQKCiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4gVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbgogTGludXggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogcmVjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcmVtYWluaW5nIGZlYXR1cmVzIGludG8gYSBoaWVyYXJjaHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBkb24ndCBkb3VibGUtZGVjbGFyZSBjZXJ0X3V0aWxzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogdGhlCgogaXBhZGRyZXNzX2xpbnV4IHdhcyBpbmNvcnJlY3RseSBtYXJrZWQgYXMgbmVlZGluZyBjZXJ0X2ZpbmdlcnByaW50cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IHB1dCB0aGUgYWdlbnRfcmVnaXN0cnkgZmVhdHVyZSBpbgoKIGxpYm5ldHNubXBhZ2VudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6IENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkCgogbGlic25tcC5kZWYgLSBhZGQgTkVUU05NUF9JTVBPUlQgdG8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluc3RlYWQgdG8KIGV4cG9ydCBhIGZ1bmN0aW9uIGZyb20gbmV0c25tcC5kbGwuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjogQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQKCiBsaWJzbm1wLmRlZiAtIGFkZCBORVRTTk1QX0lNUE9SVCB0byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0bwogZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogTW92ZWQgYSBzb3VyY2UgY29kZSBjb21tZW50Cgogc3VjaCB0aGF0IGl0IGlzIGFnYWluIGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaXQKIGFwcGxpZXMgdG8uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogQWRkZWQgbWlzc2luZwogICAgICBORVRTTk1QX0lNUE9SVAoKIGRlY2xhcmF0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6IEFkZGVkIG1pc3NpbmcKICAgICAgTkVUU05NUF9JTVBPUlQKCiBkZWNsYXJhdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWY6IAoKIFJlbW92ZWQgdHdvIG9ic29sZXRlIFdpbjMyIGZpbGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWY6IAoKIFJlbW92ZWQgdHdvIG9ic29sZXRlIFdpbjMyIGZpbGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBUcml2aWFsIGNvbW1lbnQgZml4OgoKIHNubXBJUHY2QmFzZURvbWFpbi5jIGNvbnRhaW5zIElQdjYgYmFzZSB0cmFuc3BvcnQgc3VwcG9ydCBmdW5jdGlvbnMKIGluc3RlYWQgb2YgSVB2NC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBUcml2aWFsIGNvbW1lbnQgZml4OgoKIHNubXBJUHY2QmFzZURvbWFpbi5jIGNvbnRhaW5zIElQdjYgYmFzZSB0cmFuc3BvcnQgc3VwcG9ydCBmdW5jdGlvbnMKIGluc3RlYWQgb2YgSVB2NC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2NvbmZpZy5oOiBSZW1vdmVkIGFuIG9ic29sZXRlIGZpbGUuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIHdpbjMyL3NubXBzbV9zaHV0ZG93bi5oLCAKICAgICAgd2luMzIvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6IEJ1aWxkcyBhZ2FpbiB3aXRoIFZpc3VhbCBTdHVkaW8KCiBhZnRlciB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSAiZmVhdHVyZSIgZmVhdHVyZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvc25tcHNtX2luaXQuaDogUmVtb3ZlZCBhIG1pc2xlYWRpbmcgY29tbWVudC4gIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogQ29ycmVjdCB0aGUgY2hlY2sgb2YKCiB3ZXRoZXIgdXNtIHNlY3VyaXR5IGlzIGVuYWJsZWQuICBSZWdlbmVyYXRlIGNvbmZpZ3VyZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJlZ2VuZXJhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYzogQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB1c20uYzogSWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbQoKIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOiBTcGxpdCB0aGUgY29udGFpbmVyX2NvbXBhcmVfZnVuY3Rpb25zIGZlYXR1cmUKCiBpbnRvIGNvbnRhaW5lcl9jb21wYXJlX21lbSwgY29udGFpbmVyX2NvbXBhcmVfbG9uZywKIGNvbnRhaW5lcl9jb21wYXJlX3Vsb25nLCBjb250YWluZXJfY29tcGFyZV9pbnQzMiBhbmQKIGNvbnRhaW5lcl9jb21wYXJlX3VpbnQzMiBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb21wYXJlCiBmdW5jdGlvbnMgZnVydGhlci4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6IENoYW5nZSB0aGUgc3BlbGxpbmcgb2YgdGhlCgogY29udGFpbmVyX2NvbXBhcmVfY3N0cmluZyBmZWF0dXJlIHRvIGNvbnRhaW5lcl9uY29tcGFyZV9jc3RyaW5nIGFzCiB0aGF0IGlzIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGd1YXJkZWQgYnkgdGhhdCBhdHRyaWJ1dGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDogQWRkIHRoZSBtaXNzaW5nIHJlcGxhY2VtZW50CgogbWFjcm8gZm9yIHNubXBfaW5pdF9zdGF0aXN0aWNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOiBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWNfYnkKCiB0YWtlcyB0d28gYXJndW1lbnRzIHNvIGxldCB0aGUgcmVwbGFjZW1lbnQgbWFjcm8gdGFrZSB0d28gYXJndW1lbnRzCiBhcyB3ZWxsLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzogRml4IHR5cG8gaW4KCiByMTk5OTAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrOiBSZW1vdmUgbGluZXMgc3RhcnRpbmcgd2l0aCAjZGVmaW5lCgogaW4gdGhlIG91dHB1dCBvZiB0aGUgcHJlcHJvY2Vzc29yIFdoZW4gZ2NjIC1FIGlzIGNhbGxlZCB3aXRoIC1nZ2RiMwogKG9yIC1kRCkgdGhlbiBhbGwgdGhlIG1hY3JvIGRlZmluaXRpb25zIGFyZSBwYXNzZWQgdGhyb3VnaCB0aGUKIHByZXByb2Nlc3NvciBhbmQgdGhhdCBtZXNzZXMgdXAgb3VyIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5ydWxlczogUHV0IHRoZSBnZW5lcmF0ZWQgZmlsZSBpbiB0aGUgYnVpbGQgdHJlZSwgbm90IHRoZQoKIHNvdXJjZSB0cmVlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCiAgICAgICBmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjOiBtb3ZlZCBhIGJ1bmNoIG9mIGZlYXR1cmVzIGludG8gdGhlIGxpYm5ldHNubXBtaWJzIGZlYXR1cmUgc2V0LgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHMsIHNubXBsaWIvbWliLmM6CgogY2xhc3NpZmllZCBsaWJuZXRzbm1wYWdlbnQgZmVhdHVyZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGxpYnJhcmllcwoKIChzbm1wbGliIGZpcnN0KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBvdXRwdXQgY2xlYW51cCBhbmQgYWRkZWQgYWdlbnQtbWlicwoKIGFuZCBsb2dnaW5nIG9wdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogYWRkIGEgZGVmYXVsdCBzZXQgb2YgYXJndW1lbnRzCgogY2FsY3VsYXRlIHJlc3VsdGluZyBzaXplcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6IEFkZGVkIGEgbWlzc2luZyA7IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBwcmVmaXggdGhlIG91dHB1dCBmaWxlcyB3aXRoIGEgbnVtYmVyCgogdG8gaW5kaWNhdGUgb3JkZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgc3lzdGVtCgogZXhlY3V0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBlbmFibGUgYnVpbGRpbmcgb2YgdGhlIHJlc3VsdGluZwoKIGNvbWJpbmF0aW9ucyBBZGQgYSAtbiBmbGFnIGZvciBkcnktcnVucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZW5hYmxlIHRoZSAtdCB0YWcgZm9yIGxpbWl0aW5nIHR5cGVzCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGRlZCBhcmd1bWVudCBwYXJzaW5nIGFuZCBhcmd1bWVudHMKCiBmb3Igc2VsZWN0aW5nIGFuZCBsaXN0aW5nIHR5cGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGdlbmVyYXRlIGNvbmZpZ3VyZSBzY3JpcHQgYXJndW1lbnRzCgogZnJvbSBzcGVjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBhZGRlZCBhIGJ1bmNoIG9mIG5ldyBmZWF0dXJlIG9wdGlvbnMKCiBhbmQgY2xlYW5lZCB1cCBhIGJpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBhZGRlZCBhIG5ldyAobm90IHlldCB3b3JraW5nKSBzY3JpcHQKCiB0byB0ZXN0IHNpemluZyBvZiB2YXJpb3VzIGFyZ3VtZW50IHNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogU2ltcGxpZnkgdGhlIGNvZGUuIFVuaWZ5IHNvbWUKCiBkZWJ1ZyBsb2dzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVkdWNlIHRoZSBzY29wZSBvZiBhIGZldwoKIHZhcmlhYmxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IE1ha2UgaXQgcG9zc2libGUgdG8KCiBpbml0aWFsaXplL3VuaW5pdGlhbGl6ZSBtb2R1bGVzIHdpdGggNjQgY2hhcmFjdGVyIG5hbWVzIGFuZCBub3QKIHN1ZmZlciB3aWxkIHdyaXRlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IENvZGUgcmVzdHJ1Y3R1cmluZyAtIHB1dCB0aGUKCiBtYW5hZ2VkIHJvdXRpbmVzIGJlZm9yZSB0aGUgbWFuYWdtZW50IGNvZGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOiAKCiBDSEFOR0VTOiBsaWJuZXRzbm1wbWliczogTWFrZSBhbGwgZnVuY3Rpb25zIGluIHRoZSBkbG1vZCBtb2R1bGUgdGhhdAogZG9uJ3QgaGF2ZSB0byBiZSBwdWJsaWMgc3RhdGljIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlbmFtZSBkZWluaXRfZGxtb2QgdG8KCiBzaHV0ZG93bl9kbG1vZCBhcyB0aGF0IGlzIHdoYXQgaXQgcmVhbGx5IGlzIGFib3V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzogYWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzCgogdG8gbmV0LXNubXAtdmFjbSBtaWIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IHByb3Blcmx5IGhhbmRsZSB0d2luIGNoaWxkcmVuOwoKIGFsc28gc29ydCB0aGUgY2hpbGQgbGlzdCBhbHBoYWJldGljYWxseS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzogSSBzdXBwb3NlIGxvZ2dpbmcgc2hvdWxkIHByb2JhYmx5IGRlZmF1bHQKCiB0byBiZWluZyBhIHdhbnRlZCBvcHRpb24gOi0pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBvcmctbGluayB0aGUgZmlsZXMgaW4gdGhlCgogb3V0cHV0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLnJ1bGVzLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIAogICAgICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrLCBzbm1wbGliL01ha2VmaWxlLmluOiBtYWtlIHRoZQoKIGZlYXR1cmVzLWNoZWNrIHNjcmlwdCB0cmFjayB0aGUgZnVsbCBzb3VyY2UgcGF0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogY2hhbmdlIHRoZSBmdW5jdGlvbiBuYW1lcyB0bwoKIG1hdGNoIHRoYXQgaXQncyBwcmludGluZyB0byBvcmctbW9kZSBhdCB0aGUgbW9tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdG9vbHMuYzogbGFzdAogICAgICBvZgoKIHRoZSBmZWF0dXJlIGNsYXNzaWZpY2F0aW9uIGluIGxpYm5ldHNubXAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jOiBtYWtlIHRoZQoKIHVzbV9zdXBwb3J0IHV0aWxpdGllcyBzZWxmLWRlY2xhcmUgdGhlbXNlbHZlcyBhcyBjaGlsZHJlbiB0byBtYWtlCiBzdXJlIHRoZXkncmUgcHJvcGVybHkgaW5jbHVkZWQgZHVyaW5nIGRlcGVuZGVuY3kgb3JkZXJpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NubXB1c20uYzogc3VwZXJzdHJ1Y3R1cmFsaXphdGlvbml6aW5nCgogdGhlIGZlYXR1cmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zeXN0ZW0uYywgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3Rvb2xzLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmM6Cgogc2lnbmlmaWNhbnQgcGFyZW50L2NoaWxkIGZlYXR1cmUgY2xhc3NpZmljYXRpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jOiBjbGFzc2lmeSBhIGZldyBjb21wb25lbnRzCgogaW50byBhIHRvcC1sZXZlbCBsaWJuZXRzbm1wIGNvbXBvbmVudCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IHN0cnVjdHVyaXplIHRoZSB1c20gZmVhdHVyZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzogc3RydWN0dXJlIHRoZSBjb250YWluZXIgZmVhdHVyZXMgaW50byBhCgogaGllcmFyY2h5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzogZ3JvdXAgdGhlIGxvZ2dpbmcgaGFuZGxlcnMgdW5kZXIgYSBwYXJlbnQKCiBmZWF0dXJlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogZml4IHRoZSBleHBlY3QgYXJndW1lbnQgY291bnQKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBmaXggdGhlIG5hbWUgb2YgdGhlIGV4cGVjdGVkCgogaW5wdXQgZmlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogYXJndW1lbnQgcGFyc2luZyBhbmQgdXNhZ2UoKQoKIG91dHB1dCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIHNubXBsaWIvb2lkX3N0YXNoLmM6IC0KICAgICAgYWRkZWQgdHdvIG9pZF9zdGFzaCBmdW5jdGlvbnMgYXMgaW5kaXZpZHVhbCBmZWF0dXJlcyAtIGNsZWFuZWQgdXAKICAgICAgc29tZSB3YXJuaW5ncyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgY29kZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaCAgaW50byBsaW5lIHdpdGgKICAgICAgdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKgogICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWw6IEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCiAgICAgIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCoKICAgICAgYnJhbmNoZXMsIHJhdGhlciAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaCAgaW50byBsaW5lIHdpdGgKICAgICAgdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKgogICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uCgogdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKCiBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKCiBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKCiBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKCiBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oOiBhZGRpbmcgaWZkZWYgY29kZQoKIGZvciBtaW5pbWFsaXN0IHN1cHBvcnQgb2YgZGlmZm1hbiBtaWIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oOgoKIEFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcyB0byBob3N0IHJlc291cmNlIG1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgc25tcGxpYi9kYXRhX2xpc3QuYzogbWFyayB0aGUKCiBkYXRhX2xpc3QgZnVuY3Rpb24gdGhhdCdzIG9ubHkgdXNlZCBpbiBzdGFjaF9jYWNoaW5nIGFzIGEgZmVhdHVyZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzogd2hvb3BzLiAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzogbW9yZSBtaXNzaW5nIHN0YXNoIHJlZmVyZW5jZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiBpZmRlZmVkL2ZlYXR1cmVkIG91dCBhIG1pc3NpbmcKCiBzdGFzaF9jYWNoZSBzZWN0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOiBtYWtlIHRoZSBwcmVmaXhfaW5mbyBtb3JlCgogaGllcmFyY2hpY2FsIGFuZCBzdWItZmVhdHVyZSB0aGUgdW51c2VkIG9uZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogZG8gaW5jbHVkZSB0aGUgcGVybC9weXRob24gY29kZQoKIHdoZW4gc2VhcmNoaW5nIGZvciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogbWFrZSB0aGUgc2VtaS11c2VkIHRhYmxlX3RkYXRhCgogZnVuY3Rpb25zIGNoaWxkcmVuIG9mIHRhYmxlX3RkYXRhX2FsbCBpbnN0ZWFkIG9mIGp1c3QgdGFibGVfdGRhdGEgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiBDb3JyZWN0IHR5cG8gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ29ycmVjdCB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBfdmFycy5jOiBwcm9wZXIgaW5jbHVkZSBvZiBwcm90b3R5cGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IGNvbXBhdCBzb21lIGZlYXR1cmUgaGVhZGVyCgogY2hpY2tlbiBhbmQgZWdnIHByb2JsZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6IEluY2x1ZGUgcmVxdWlyZWQgcHJvdG90eXBlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXB1c20uYzogdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikKCiBpcEFkZHJlc3NQcmVmaXhUYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDogRW5hYmxlIChwcm9iYWJseSBmb3Jnb3R0ZW4pCgogaXBBZGRyZXNzUHJlZml4VGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrLCAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzLAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlLCAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlLCAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IGFkZGVkIG90aGVyIG1pc3NpbmcgJ25ldycKICAgICAgZmlsZXMKCiBub3QgaW5jbHVkZWQgaW4gdGhlIG1pbmltYWxpc3QgcGF0Y2ggZmlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmM6IExvYWRpbmcKCiBJUHY2IGRhdGEgaXMgYSBuby1ubyB3aGVuIElQdjYgbm90IGVuYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzogTG9hZGluZwoKIElQdjYgZGF0YSBpcyBhIG5vLW5vIHdoZW4gSVB2NiBub3QgZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAoKIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAoKIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAoKIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAoKIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAoKIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oOiBhZGRlZCBtaXNzaW5nCgogbmV0LXNubXAtZmVhdHVyZXMuaCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgYWdlbnQvTWFrZWZpbGUuaW4sIAogICAgICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsIAogICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCAKICAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYwogICAgICAgZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhXwogICAgICAgYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCiAgICAgICBmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwogICAgICAgLCBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfaW50ZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLgogICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCAgYWdlbnQvc25tcGQuYywKICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9hZ2VudHh0cmFwLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBwZXJsL09JRC9PSUQueHMsIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9NYWtlZmlsZS5pbiwgCiAgICAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLAogICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLAogICAgICBzbm1wbGliL2ludDY0LmMsICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgICAgc25tcGxpYi9taWIuYywgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBrc20uYywgIHNubXBsaWIvc25tcHRzbS5jLAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3Rvb2xzLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmMsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlOiBORVdTOgoKIHBhY2thZ2luZzogRW5hYmxlIG1pY3JvLWFuZC1tYWNyby1mZWF0dXJlIG1hbmFnZW1lbnQgd2l0aGluCiBOZXQtU05NUDsgdGhpcyBhZGRzIGEgbnVtYmVyIG9mIG5ldyBmbGFncyB0byBjb25maWd1cmUKICgtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkpLiAgVGhlc2UgY2hhbmdlcyBhcmUKIGRlc2lnbmVkIHRvIHJlbW92ZSBtdWNoIG9mIHRoZSBpbmxpbmUgY29kZSB0aGF0IGlzbid0IGFsd2F5cwogbmVjZXNzYXJ5IG9yIGRlc2lyZWQuICBTY3JpcHRzIGV4aXN0IChhbmQgd2lsbCBiZSBpbXByb3ZlZCkgdG8gc3RpcAogb3V0IHVudXNlZCBjb21wb25lbnRzIGZyb20gdGhlIGNvZGUgZW50aXJlbHkgdG8gZW5hYmxlIGEgc2hvcnRlcgogcmV2aWV3IHByb2Nlc3MgZm9yIHVwZ3JhZGluZyB0byBuZXcgcmVsZWFzZXMuICBUaGlzIHdvcmsgd2FzIGRvbmUgYnkKIFdlcyBIYXJkYWtlciBhbmQgTWljaGFlbCBCYWVyIGZyb20gU1BBUlRBLCBJbmMuIGJ1dCBpcyBiZWluZyBjaGVja2VkCiBpbiBhcyBhIGxhcmdlIHBhdGNoIHNpbmNlIGNvbnZlcnRpbmcgdGhlIG1pY3JvIHBhdGNoZXMgZnJvbSBnaXQgdG8KIHN2biB0dXJlbmQgb3V0IHRvIGJlIGltcG9zc2libGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBGQVE6IHVzZSB0aGUgd2lraSBVUkwgaW5zdGVhZCBvZiB0aGUgdHV0b3JpYWwtNSBVUkwgZm9yIHRoZQoKIHNubXB0cmFwIHR1dG9yaWFsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOiBSZXZlcnQgYSBib2d1cyBjaGFuZ2UgdGhhdCBjcmVwdAoKIGludG8gdGhlIGNvZGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBBR0VOVC50eHQsIENIQU5HRVMsIENPUFlJTkcsIENoYW5nZUxvZywgQ29kaW5nU3R5bGUsIAogICAgICBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmFtLCBNYWtlZmlsZS5pbiwgCiAgICAgIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgCiAgICAgIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQsIFJFQURNRS5hZ2VudC1taWJzLCBSRUFETUUuYWdlbnR4LCAKICAgICAgUkVBRE1FLmFpeCwgUkVBRE1FLmhwdXgxMSwgUkVBRE1FLmlyaXgsIFJFQURNRS5rcmI1LCBSRUFETUUub3NYLCAKICAgICAgUkVBRE1FLnNubXB2MywgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS5zcWwsIFJFQURNRS50aHJlYWQsIAogICAgICBSRUFETUUudHJ1NjQsIFJFQURNRS53aW4zMiwgVE9ETywgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgCiAgICAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b25saXN0LmgsIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgCiAgICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIAogICAgICBhZ2VudC9tMm0uaCwgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRSwgCiAgICAgIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4LCBhZ2VudC9taWJncm91cC9SbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL1JFQURNRSwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmgsICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaCwgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5oLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2FsYXJtLnNoLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2hpc3Quc2gsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLCBhZ2VudC9taWJncm91cC9hZ2VudHguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC9kaXNtYW4uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVNjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBTY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cF9lbnVtLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9vbGQtZXZlbnQtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKICAgICAgIGVzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0CiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldAogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0CiAgICAgICAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZW51bXMuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWMKICAgICAgIGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWMKICAgICAgIGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfb2lkcy5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9NYWtlZmlsZS5kbG1vZCwKICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NvbHVtbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2VybmRhdGEuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2VybmRhdGEuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbWFjaC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9tYWNoLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X251bGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbnVsbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BzdGF0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BzdGF0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW91bnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9keW5peC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbnVsbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3dpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9kdW1teV9zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbnVsbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kZWZzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfY29uCiAgICAgICBzdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3QKICAgICAgIGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KICAgICAgIGFjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhXwogICAgICAgYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCiAgICAgICBmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCiAgICAgICBmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9jb24KICAgICAgIHN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2dldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9nZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9lbnUKICAgICAgIG1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX29pZAogICAgICAgcy5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX29pZHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbgogICAgICAgdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbgogICAgICAgdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbgogICAgICAgdC5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW4KICAgICAgIHRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjCiAgICAgICBjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9vaWRzLmgsIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLCAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NvbHVtbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCAgYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oLAogICAgICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcwogICAgICAgLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmgsCiAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCiAgICAgICAsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5oCiAgICAgICAsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfb2lkcy5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYywgYWdlbnQvbWliZ3JvdXAvc211eC5oLAogICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldAogICAgICAgZXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0CiAgICAgICBlcnMuaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9nZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9nZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9zZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZGF0YV9zZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfZG94eWdlbi5jb25mLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX29pZHMuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Db25mLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Db25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy9NYWtlZmlsZSwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fcHJpdmF0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhCiAgICAgICBudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuaCwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy4KICAgICAgIGgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLgogICAgICAgaCwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91ZHAtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfcHJpdmF0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuCiAgICAgICBoLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L29iamVjdF9tb25pdG9yLmMsIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLCBhZ2VudC9zbm1wX3BlcmwuaCwgCiAgICAgIGFnZW50L3NubXBfcGVybC5wbCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIAogICAgICBhZ2VudC9zbm1wZC5oLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXBfcGVybF90cmFwZC5wbCwgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvZmZzLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oLCAKICAgICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmgsIAogICAgICBhcHBzL3NubXB0cmFwZF9kcy5oLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGFwcHMvc25tcHVzbS5jLCAKICAgICAgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc3NodG9zbm1wLmMsIGNvbmZpZy5ndWVzcywgCiAgICAgIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsCiAgICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TLCAKICAgICAgZGlzdC9hdXRvY29uZi12ZXJzaW9uLCBkaXN0L2NoYW5nZWxvZ2ZpeCwgZGlzdC9jaGVjay1hcGktY2hhbmdlLCAKICAgICAgZGlzdC9jdnNzaG93LCBkaXN0L2N2c3VwLCBkaXN0L2V4dHJhY3RuZXdzLCBkaXN0L2ZpbmQtcmVxdWlyZXMsIAogICAgICBkaXN0L21ha2VyZWxlYXNlLnhtbCwgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL0RFVkVOViwgCiAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUUsIAogICAgICBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvYnVpbGRwYWNrYWdlLXNvbGFyaXMsIAogICAgICBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvZWxmZGVwZW5kLnNoLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBkaXN0L25zYi1jb25maWcsIGRpc3QvbnNiLWZ1bmN0aW9ucywgZGlzdC9uc2ItbmlnaHRseSwgCiAgICAgIGRpc3QvbnNiLXBhY2thZ2UsIGRpc3QvbnNiLXBsYXRmb3JtLCBkaXN0L3BhdG1lLCAKICAgICAgZGlzdC9zY2hlbWEtc25tcHRyYXBkLnNxbCwgZGlzdC9zbm1wZC1pbml0LmQsIAogICAgICBkaXN0L3NubXB0cmFwZC1pbml0LmQsIGRpc3Qvc3ZudXAsIGRvYy9yZmMvYWdlbnR4L3JmYzI3NDEudHh0LCAKICAgICAgZG9jL3JmYy9taXNjL3JmYzM1MTIudHh0LCBkb2MvcmZjL21pc2MvcmZjMzU4NC50eHQsIAogICAgICBkb2MvcmZjL3NtaVYyL3JmYzI1NzgudHh0LCBkb2MvcmZjL3NtaVYyL3JmYzI1NzkuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbWlWMi9yZmMyNTc5LnR4dCwgZG9jL3JmYy9zbWlWMi9yZmMyNTgwLnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYxL3JmYzExNTUudHh0LCBkb2MvcmZjL3NubXBWMS9yZmMxMTU3LnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYxL3JmYzEyMTIudHh0LCBkb2MvcmZjL3NubXBWMS9yZmMxMjEzLnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDEudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTAyLnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDMudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTA0LnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDUudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTA2LnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDcudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTA4LnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzIwODkudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDEwLmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTAudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDExLnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTIudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDEzLmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTMudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDE0LmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTQudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDE1LmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTUudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDE2LnR4dCwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTcudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDE4LmVycmF0YSwgCiAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTgudHh0LCBkb3RnZGJpbml0LCBkb3h5Z2VuLmNvbmYsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvc2Vuc29ycy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfdG9fbmV4dC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zY29wZXpvbmUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFsaWFzRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RyYWdvbmZseS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q2LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2tmcmVlYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMybXN2Yy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oLAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuMy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oLCBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvbWliLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBpbnN0YWxsLXNoLCBsb2NhbC9GQVEySFRNTCwgCiAgICAgIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9SRUFETUUubWliMmMsIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGwsIAogICAgICBsb2NhbC9jb252ZXJ0Y29kZSwgbG9jYWwvZml4cHJvYywgbG9jYWwvaHRtbC1hZGQtaGVhZGVyLWZvb3Rlci5wbCwKICAgICAgIGxvY2FsL2h0bWwtdGV4dGZpbGUtZml4LnBsLCBsb2NhbC9pcGYtbW9kLnBsLCBsb2NhbC9taWIyYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtY29weS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1zZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWNoYXIubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1sb25nLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1vaWQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItdG9wLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtZW51bXMubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjLWludGVybmFsLXdhcm5pbmcubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsCiAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpLCBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpLAogICAgICAgbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc3RvcmFnZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YWxpZGF0ZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaSwKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtQ09VTlRFUjY0LWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmQsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtdmFyYmluZC12YWxpZGF0ZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmksIGxvY2FsL21pYjJjLXVwZGF0ZSwKICAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsCiAgICAgIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlc19sb2NhbC5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwgbG9jYWwvbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jb2x1bW5fc3RvcmFnZS5jb25mLCBsb2NhbC9taWIyYy5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZiwgbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLm1mZC5jb25mLCAKICAgICAgbG9jYWwvbWliMmMubm90aWZ5LmNvbmYsIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLnBlcmwuY29uZiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmYsIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QsIAogICAgICBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvcGFzc3Rlc3QucGwsIGxvY2FsL3NubXAtdWNkLnNoLCAKICAgICAgbG9jYWwvc25tcGNoZWNrLmRlZiwgbG9jYWwvc25tcGNvbmYsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9kZWJ1Z2dpbmcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL21pYnMsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dCwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvYWNsLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvYmFzaWNfc2V0dXAsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9leHRlbmRpbmcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9tb25pdG9yLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvb3BlcmF0aW9uLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvdHJhcHNpbmtzLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvbG9nZ2luZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlLCBsb2NhbC9zbm1wZHVtcC5wbCwgCiAgICAgIGxvY2FsL3RrbWliLCBsb2NhbC90cmFwdG9lbWFpbCwgbHRtYWluLnNoLCAKICAgICAgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00LCBtNC9hY19tc2dfY2FjaGUubTQsIAogICAgICBtNC9hY19tc2dfbW9kdWxlX2RiZy5tNCwgbTQvYWNfcHJvbXB0X3VzZXIubTQsIG00L2xpYnRvb2wubTQsIAogICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNCwKICAgICAgbTQvbHR+b2Jzb2xldGUubTQsICBtNC9uZXRzbm1wX2FyZy5tNCwgbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNCwKICAgICAgbWFrZWRlcGVuZC5pbiwgIG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwKICAgICAgbWFrZXRhcmdldCwgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywKICAgICAgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgIG1hbi9jb25maWdfYXBpLjMuZGVmLAogICAgICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLAogICAgICBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgIG1hbi9maXhwcm9jLjEuZGVmLAogICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCAgbWFuL2luaXRfbWliX2ludGVybmFscy4zLAogICAgICBtYW4vbWFrZV9pbmRleC5wbCwgbWFuL21hbl9zZWN0aW9ucy50eHQsICBtYW4vbWliMmMtdXBkYXRlLjEuZGVmLAogICAgICBtYW4vbWliMmMuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sICBtYW4vbWliMmMuZXh0cmFjdC5wbCwKICAgICAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsIAogICAgICBtYW4vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuMS5kZWYsIAogICAgICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NldF9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgbWFuL3BkdV9hcGkuMy5kZWYsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLAogICAgICAgbWFuL3ByaW50X21pYi4zLCBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMsIAogICAgICBtYW4vcHJpbnRfdmFyaWFibGUuMywgbWFuL3JlYWRfYWxsX21pYnMuMywgbWFuL3JlYWRfbWliLjMsIAogICAgICBtYW4vcmVhZF9tb2R1bGUuMywgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgCiAgICAgIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NodXRkb3duX21pYi4zLCBtYW4vc25tcC5jb25mLjUuZGVmLCAKICAgICAgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vc25tcF9hbGFybS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfY29uZmlnLjUuZGVmLAogICAgICAgbWFuL3NubXBfZXJyb3IuMywgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCAKICAgICAgbWFuL3NubXBfcGVycm9yLjMsIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgCiAgICAgIG1hbi9zbm1wX3NlbmQuMywgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsIAogICAgICBtYW4vc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgbWFuL3NubXBfc2Vzc19jbG9zZS4zLCAKICAgICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywgbWFuL3NubXBfc2Vzc19vcGVuLjMsCiAgICAgICBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3JlYWQuMywgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2Vzc19zZW5kLjMsIAogICAgICBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIAogICAgICBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCAKICAgICAgbWFuL3NubXBfdGltZW91dC4zLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZiwKICAgICAgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgICAgIG1hbi9zbm1wY29uZi4xLmRlZiwgIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgICAgIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZiwKICAgICAgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgIG1hbi9zbm1wZ2V0LjEuZGVmLAogICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1waW5mb3JtLjEsICBtYW4vc25tcG5ldHN0YXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wc2V0LjEuZGVmLCBtYW4vc25tcHN0YXR1cy4xLmRlZiwgIG1hbi9zbm1wdGFibGUuMS5kZWYsCiAgICAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsICBtYW4vc25tcHRyYXAuMS5kZWYsCiAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgIG1hbi9zbm1wdXNtLjEuZGVmLAogICAgICBtYW4vc25tcHZhY20uMS5kZWYsIG1hbi9zbm1wd2Fsay4xLmRlZiwgIG1hbi90a21pYi4xLmRlZiwKICAgICAgbWFuL3RyYXB0b2VtYWlsLjEuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWYsIAogICAgICBtYW4vdmFyaWFibGVzLjUuZGVmLCBtaWJzL0FHRU5UWC1NSUIudHh0LCAKICAgICAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCAKICAgICAgbWlicy9ESVNNQU4tTlNMT09LVVAtTUlCLnR4dCwgbWlicy9ESVNNQU4tUElORy1NSUIudHh0LCAKICAgICAgbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dCwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1UUkFDRVJPVVRFLU1JQi50eHQsIG1pYnMvRXRoZXJMaWtlLU1JQi50eHQsIAogICAgICBtaWJzL0hDTlVNLVRDLnR4dCwgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LCAKICAgICAgbWlicy9IT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIAogICAgICBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCAKICAgICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQS1SVFBST1RPLU1JQi50eHQsIAogICAgICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9JRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0LCAKICAgICAgbWlicy9JRi1NSUIudHh0LCBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0LCAKICAgICAgbWlicy9JUC1GT1JXQVJELU1JQi50eHQsIG1pYnMvSVAtTUlCLnR4dCwgCiAgICAgIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQsIG1pYnMvSVBWNi1JQ01QLU1JQi50eHQsIAogICAgICBtaWJzL0lQVjYtTUlCLnR4dCwgbWlicy9JUFY2LVRDLnR4dCwgbWlicy9JUFY2LVRDUC1NSUIudHh0LCAKICAgICAgbWlicy9JUFY2LVVEUC1NSUIudHh0LCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dCwgbWlicy9NVEEtTUlCLnR4dCwgCiAgICAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIAogICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQsIAogICAgICBtaWJzL05FVC1TTk1QLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0LCAKICAgICAgbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQsIAogICAgICBtaWJzL05FVC1TTk1QLVRDLnR4dCwgbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQsIAogICAgICBtaWJzL05FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsIAogICAgICBtaWJzL1JFQURNRS5taWJzLCBtaWJzL1JGQy0xMjE1LnR4dCwgbWlicy9SRkMxMTU1LVNNSS50eHQsIAogICAgICBtaWJzL1JGQzEyMTMtTUlCLnR4dCwgbWlicy9STU9OLU1JQi50eHQsIG1pYnMvU0NUUC1NSUIudHh0LCAKICAgICAgbWlicy9TTVVYLU1JQi50eHQsIG1pYnMvU05NUC1DT01NVU5JVFktTUlCLnR4dCwgCiAgICAgIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgbWlicy9TTk1QLU1QRC1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dCwgCiAgICAgIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgCiAgICAgIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIG1pYnMvU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LCAKICAgICAgbWlicy9TTk1QdjItTUlCLnR4dCwgbWlicy9TTk1QdjItU01JLnR4dCwgbWlicy9TTk1QdjItVEMudHh0LCAKICAgICAgbWlicy9TTk1QdjItVE0udHh0LCBtaWJzL1RDUC1NSUIudHh0LCAKICAgICAgbWlicy9UUkFOU1BPUlQtQUREUkVTUy1NSUIudHh0LCBtaWJzL1RVTk5FTC1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtREVNTy1NSUIuaW5jLCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1ESVNLSU8tTUlCLmluYywgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1ETE1PRC1NSUIuaW5jLCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLmluYywgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELUlQRldBQ0MtTUlCLmluYywgbWlicy9VQ0QtSVBGV0FDQy1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dCwgbWlicy9VQ0QtU05NUC1NSUIuaW5jLCAKICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0LCAKICAgICAgbWlicy9tYWtlaHRtbC5wbCwgbWlicy9taWJmZXRjaCwgbWlicy9ub2RlbWFwLCBtaWJzL3JmY2xpc3QsIAogICAgICBtaWJzL3JmY21pYnMuZGlmZiwgbWlicy9zbWlzdHJpcCwgbWtpbnN0YWxsZGlycywgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sIG92L01ha2VmaWxlLmluLCAKICAgICAgb3YvUkVBRE1FLCBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsIG92L2JpdG1hcHMvVUNELjIwLm0sIAogICAgICBvdi9iaXRtYXBzL1VDRC4yMC5wLCBvdi9iaXRtYXBzL1VDRC4yNi5tLCBvdi9iaXRtYXBzL1VDRC4yNi5wLCAKICAgICAgb3YvYml0bWFwcy9VQ0QuMzIubSwgb3YvYml0bWFwcy9VQ0QuMzIucCwgb3YvYml0bWFwcy9VQ0QuMzgubSwgCiAgICAgIG92L2JpdG1hcHMvVUNELjM4LnAsIG92L2JpdG1hcHMvVUNELjQ0Lm0sIG92L2JpdG1hcHMvVUNELjQ0LnAsIAogICAgICBvdi9iaXRtYXBzL1VDRC41MC5tLCBvdi9iaXRtYXBzL1VDRC41MC5wLCBvdi9iaXRtYXBzL1VDRC5maWVsZHMsIAogICAgICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwgcGVybC9BU04vQVNOLnBtLCAKICAgICAgcGVybC9BU04vQVNOLnhzLCBwZXJsL0FTTi9DaGFuZ2VzLCBwZXJsL0FTTi9NQU5JRkVTVCwgCiAgICAgIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL0FTTi90ZXN0LnBsLCBwZXJsL0FueURhdGFfU05NUC9DaGFuZ2VzLAogICAgICAgcGVybC9BbnlEYXRhX1NOTVAvREJEX0FueURhdGEucGF0Y2gsIHBlcmwvQW55RGF0YV9TTk1QL0Zvcm1hdC5wbSwKICAgICAgIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEwsIHBlcmwvQW55RGF0YV9TTk1QL01BTklGRVNULCAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRSwgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaSwgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peCwgcGVybC9BbnlEYXRhX1NOTVAvbmV0c2gsIAogICAgICBwZXJsL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLm1ha2VmaWxlcywgcGVybC9NYWtlZmlsZS5zdWJzLnBsLCAKICAgICAgcGVybC9PSUQvQ2hhbmdlcywgcGVybC9PSUQvTUFOSUZFU1QsIHBlcmwvT0lEL01ha2VmaWxlLlBMLCAKICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL09JRC9PSUQueHMsIHBlcmwvT0lEL1JFQURNRSwgCiAgICAgIHBlcmwvT0lEL3Rlc3QucGwsIHBlcmwvT0lEL3R5cGVtYXAsIHBlcmwvU05NUC9CVUcsIAogICAgICBwZXJsL1NOTVAvTUFOSUZFU1QsIHBlcmwvU05NUC9NQU5JRkVTVC5TS0lQLAogICAgICBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbSwKICAgICAgcGVybC9TTk1QL1NOTVAueHMsICBwZXJsL1NOTVAvVE9ETywgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMS5wbCwgCiAgICAgIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzIucGwsIHBlcmwvU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbCwgCiAgICAgIHBlcmwvU05NUC9leGFtcGxlcy9pcGZvcndhcmQucGwsIHBlcmwvU05NUC9leGFtcGxlcy9taWJ0cmVlLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL21pYndhbGsucGwsIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL3RhYmxld2Fsay5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL3Rlc3RsZWFrLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbCwgcGVybC9TTk1QL2hpbnRzL2lyaXgucGwsIAogICAgICBwZXJsL1NOTVAvaGludHMvc29sYXJpcy5wbCwgcGVybC9TTk1QL3Blcmxzbm1wLmgsIAogICAgICBwZXJsL1NOTVAvdC9SRUFETUUsIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsIAogICAgICBwZXJsL1NOTVAvdC9jb25mLnQsIHBlcmwvU05NUC90L2NvbmZ0ZXN0LmNvbmYsIHBlcmwvU05NUC90L2dldC50LCAKICAgICAgcGVybC9TTk1QL3QvZ2V0bmV4dC50LCBwZXJsL1NOTVAvdC9taWIudCwgcGVybC9TTk1QL3QvbWliLnR4dCwgCiAgICAgIHBlcmwvU05NUC90L21pYmxvYWQudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCiAgICAgIHBlcmwvU05NUC90L3Nlc3Npb24udCwgIHBlcmwvU05NUC90L3NldC50LAogICAgICBwZXJsL1NOTVAvdC9zbm1wdGVzdC5jb25mLCAgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwKICAgICAgcGVybC9TTk1QL3R5cGVtYXAsICBwZXJsL1RyYXBSZWNlaXZlci9DaGFuZ2VzLAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NQU5JRkVTVCwgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9SRUFETUUsICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvZmFsbGJhY2svY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9mYWxsYmFjay9jb25zdC14cy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9wZXJsX3NubXB0cmFwZC5oLCBwZXJsL1RyYXBSZWNlaXZlci9wcHBvcnQuaCwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL3QvMS50LCBwZXJsL1RyYXBSZWNlaXZlci90eXBlbWFwLCAKICAgICAgcGVybC9hZ2VudC9DaGFuZ2VzLCBwZXJsL2FnZW50L01BTklGRVNULCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvYWdlbnQueHMsIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIAogICAgICBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtLCBwZXJsL2FnZW50L3Rlc3QucGwsIAogICAgICBwZXJsL2FnZW50L3R5cGVtYXAsIHBlcmwvZGVmYXVsdF9zdG9yZS9DaGFuZ2VzLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01BTklGRVNULCBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvUkVBRE1FLCBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIHBlcmwvZGVmYXVsdF9zdG9yZS90eXBlbWFwLCAKICAgICAgcGVybC9tYWtlLXBlcmwtbWFrZWZpbGVzLCBwZXJsL21hbmFnZXIvSU5TVEFMTCwgCiAgICAgIHBlcmwvbWFuYWdlci9NYWtlZmlsZS5QTCwgcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbSwgCiAgICAgIHBlcmwvbWFuYWdlci9nZXRWYWx1ZXMucG0sIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtLCAKICAgICAgcGVybC9tYW5hZ2VyL3NldHVwYXV0aCwgcGVybC9tYW5hZ2VyL3NldHVwZGIsIAogICAgICBwZXJsL21hbmFnZXIvc2V0dXB1c2VyLCBwZXJsL21hbmFnZXIvc25tcHRvc3FsLCBweXRob24vTElDRU5TRSwgCiAgICAgIHB5dGhvbi9SRUFETUUsIHB5dGhvbi9uZXRzbm1wL19faW5pdF9fLnB5LCAKICAgICAgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCAKICAgICAgcHl0aG9uL25ldHNubXAvdGVzdHMvX19pbml0X18ucHksIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmYsCiAgICAgICBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5LCBweXRob24vc2V0dXAucHksIHJlbW92ZS1maWxlcywgCiAgICAgIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuaW4sIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsCiAgICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsCiAgICAgIHNubXBsaWIvZ2V0b3B0LmMsICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLAogICAgICBzbm1wbGliL2ludDY0LmMsICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgICAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICAgICBzbm1wbGliL3BrY3MuYywgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICAgICBzbm1wbGliL3NubXAtdGMuYywgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jLCAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHRzbS5jLAogICAgICBzbm1wbGliL3NubXB1c20uYywgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25wcmludGYuYywKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsICBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgICAgIHNubXBsaWIvc3RydG91bC5jLCAgc25tcGxpYi9zdHJ0b3VsbC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICAgICBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMsICBzbm1wbGliL3RleHRfdXRpbHMuYywKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIAogICAgICBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvd2lucGlwZS5jLCAKICAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHNubXBsaWIvd2luc2VydmljZS5tYywKICAgICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCAgc25tcGxpYi93aW5zZXJ2aWNlcmMucmMsIHN0YW1wLWgsCiAgICAgIHN0YW1wLWguaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW4sICB0ZXN0aW5nL1JFQURNRSwKICAgICAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gsIAogICAgICB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwgCiAgICAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcywgCiAgICAgIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIAogICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgCiAgICAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LCAKICAgICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgICAgdGVzdGluZy9taXNjdGVzdC5jLCAgdGVzdGluZy9yZmMxMjEzL1JFQURNRSwgdGVzdGluZy9yZmMxMjEzL3J1biwgCiAgICAgIHRlc3RpbmcvcmZjMTIxMy9zbm1wZnVuLnNoLCB0ZXN0aW5nL3JmYzEyMTMvdGVzdF9mdW4sIAogICAgICB0ZXN0aW5nL3JmYzEyMTMvdGVzdG1pYjEuc2gsIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMi5zaCwgCiAgICAgIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMy5zaCwgdGVzdGluZy9zY2FwaXRlc3QuYywgCiAgICAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2gsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZSwgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQsIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDBjb25maWd1cmUsIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwKICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI2c25tcHYzZ2V0U0hBQUVTLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MywgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCAgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsICB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCAgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGwsIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzLCAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdiwgd2luMzIvQ29uZmlndXJlLCAKICAgICAgd2luMzIvRVhBTVBMRS5jb25mLndpbjMyLCB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCAKICAgICAgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL01nbXRBcGktd2luRXh0RExMLmgsIAogICAgICB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCB3aW4zMi9hZ2VudF9tb2R1bGVfZG90X2NvbmYuaCwgCiAgICAgIHdpbjMyL2FnZW50X21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9hZ2VudF9tb2R1bGVfaW5pdHMuaCwgCiAgICAgIHdpbjMyL2J1aWxkLmJhdCwgd2luMzIvYnVpbGQucGwsIHdpbjMyL2NvbmZpZy5oLCAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAKICAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQsIAogICAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9EZXZlbG9wZXJfRkFRLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0ZBUS5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9IZWxwX0NhdmVhdHMuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhoYywKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaHAsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9zbm1wZC5jb25mLndpbjMyLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9BZGQyUGF0aC5uc2ksIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9TZXRFblZhci5uc2ksIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksIHdpbjMyL2Rpc3Qvc2NyaXB0cy9jcmVhdGUtdG9jLCAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sLCAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL25ldC1zbm1wLXBlcmwtdGVzdC5wbCwgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9wb2RkaXIyaHRtbCwgd2luMzIvZGlzdC9zY3JpcHRzL3JlYWRtZTJodG1sLCAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3R4dDJodG1sLCB3aW4zMi9kaXN0L3Rvc29jazEuc2gsIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAKICAgICAgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQsIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIAogICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLCAgd2luMzIvbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgIHdpbjMyL2xvY2FsL21pYjJjLmJhdCwgIHdpbjMyL2xvY2FsL3NubXBjb25mLmJhdCwKICAgICAgd2luMzIvbG9jYWwvdHJhcHRvZW1haWwuYmF0LCAgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICAgICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgICAgIHdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgIHdpbjMyL25tYWtlcGVybC5iYXQsICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAKICAgICAgd2luMzIvc25tcHNtX2luaXQuaCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiBGaXggNS41LnggYnJhbmNoIHN0cnVjdHVyZSAocGFydCAyKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6IHByb3BlciBwcm9jZXNzCgogc3RhdHVzIHZhbHVlcyBmb3IgbmV0YnNkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzogcHJvcGVyIHByb2Nlc3MKCiBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NjYXBpLmM6IGNvbmRpdGlvbmFsaXplIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NjYXBpLmM6IGNvbmRpdGlvbmFsaXplIHZhcmlhYmxlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOiB0Y3AtbWliL3VkcC1taWIKCiBzdXBwb3J0IGZvciB0aGUgKmJzZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6IHRjcC1taWIvdWRwLW1pYgoKIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGM6IHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGM6IHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jOiBQcm9wZXJseSBlbmQgZGVidWcgbWVzc2FnZSB3aXRoIG5ld2xpbmUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYzogUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOiByZW1vdmUgdmFyCgogdGhhdCBzaGFkb3dzIHRoZSB1c2VmdWwgb25lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOiByZW1vdmUgdmFyCgogdGhhdCBzaGFkb3dzIHRoZSB1c2VmdWwgb25lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOiBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcKCiBmb3Igb3BlbmJzZCB0b28uIFRoaXMgc2hvdWxkIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlCiB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOiBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcKCiBmb3Igb3BlbmJzZCB0b28uIFRoaXMgc2hvdWxkIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlCiB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzogZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6IGZpeCB0Y3Agc3RhdGVzIGZvciBkcmFnb25mbHlic2QKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmg6IGVuYWJsZSBuZXcgdGNwL3VkcCBtaWJzIGZvciBzb2xhcmlzCiAgICAgIGdpdC1zdm4taWQ6CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcgLT4gVjUuNy4xLnByZTEKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlOgoKIDUuNy4xLnByZTEKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUxCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGNmNGNjZTRjMTg5Y2Y0N2Y0YzQ4OWRiNDNiN2ZhNTEwZjg5MDZhMWEgTWVyZ2U6IGRmOTFhOWYKCiA5M2U5N2RjIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjI6MTU6MjggMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgCiAgICAgIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46IERlZmluZQoKIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4gKGFzIHBlciBBbGV4JyBidWlsZAogaW5zdHJ1Y3Rpb25zKQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRmMTZkYzIyMjFlOTkzZGQzYzY2NjUwZDVlODcyNTc3ZmZlNmMwMWIgTWVyZ2U6IDcxNGJjODIKCiA4ZTVhMjhkIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTM6NTY6NDMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGZmYTA1YjA1MWFjM2UyYjE5NzE5NWE5OTg5Y2M3YTkxZmU4ZDkyODIgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMzo1NTozOAogMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCA3MTRiYzgyZmEwMWUyMWEzNjU1ODI0OTYzZmE1NGU5YjgwNDJmZmIwIE1lcmdlOiA2ZmU4ZmU1CgogM2VmMWRiNSBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24KIEF1ZyA4IDIxOjIxOjQ2IDIwMTEgKzAxMDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgYjQ1MTYwN2RjYTAxNWMxMTFlOTZmZGZlYjJkZGIwNjYxZmI0ZjcyNCBBdXRob3I6IERhdmUKCiBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbiBBdWcgOCAyMToyMDozMiAyMDExCiArMDEwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDZmZThmZTUyOTRhNDViYzdlNGVhMzc1MWExYWQ3YWE0N2I1Y2FiYjIgTWVyZ2U6IDM2NGY4ZmYKCiBmNjlhYmUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAyMjowMjozOCAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYzk0ODEzMDQ0YTRjNGE2MDhlOThlODAyMjMwNzVjNmZhZjA0ZWUxMSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjU2OjE1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAzNjRmOGZmYWViOTBiNGViMDE2NWZjODU1Njg4Y2QwNjI2NjMyNzk0IE1lcmdlOiAzMjg3Mjk1CgogN2FiYjkyNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDExOjI0OjI2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRpc3BsYXkgdGhlIGJyYW5jaCB3ZSdsbCBjb21taXQgdG8KCgoyMDExLTA4LTA4ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMzODY2MzM6CgogZnJvbSB3dWxmMjAwMTogZml4IGludGVnZXIgb3ZlcmZsb3cgaW4gZGlzayBwZXJjZW50IGNhbGN1bGF0aW9ucyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4NGE3NzVkMDU1N2ZlYTk3NTcwZTQxNzE1YTMxNjQ5NzBiNGMwM2EyIE1lcmdlOiA2ZmZmMWMxCgogZDM3M2M0ZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMjA6MTI6MzIgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzg3MTM5OiBmcm9tCgogeWFiZXJhdW5leWE6IEF2b2lkIHNlZ2ZhdWx0IGlmIHRyYXBzZXNzIHRyYW5zcG9ydCBlbGVtZW50IGNhbnQgYmUKIHBhcnNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG5zc2ZwYXRjaGFwcGx5OiBzcGxpdCB0aGUKCiBkaXNwbGF5ZWQgZ2l0IGNvbW1pdCBjb21tYW5kIGludG8gbXVsdGlwbGUgc2VnbWVudHMKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzM4Njk2MToKCiBNYWtlIFNOTVAgR0VUIHdvcmsgaW4gYW4gQWdlbnRYIHN1YmFnZW50IGlmIHdyaXRlIHN1cHBvcnQgaXMKIGRpc2FibGVkIHZpYSBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKE1hcmsgUnVzaykuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogRml4IGEgY3Jhc2ggdGhhdCBjb3VsZCBiZQoKIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90CiBlcXVhbCB0byAtMS4KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA2ZmZmMWMxYWU1MWIwNmM5ZDgwZmFmMTUzNzNhOTYzZDE3M2YxNGU4IE1lcmdlOiA4MzdjNTJlCgogOGNjOTAwNCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjU4OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4Y2E3ZmYxZTY5MmNhZWM0MTg2Yjc4OGM5YWUyZDI3YmUyMTMyOTBmIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTA6MzM6NTYKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiOGY1MjljYmEyN2MwMTE0YjRjYjczNDBjZmQ0NDk1MDRmYTA3NTA2IE1lcmdlOiAwODIyZjJkCgogNTU2ZTkzOCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjA1OjM2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCBmdW5jdGlvbiBuYW1lIHR5cG8KCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjk4ODJhMDc4YTk1OWEwZjc4YjAzZTAxOTY4ZjFkMTdiN2Y2YTI5OSBNZXJnZTogNWU5YmQyZgoKIDA0MDljMGEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDowMzozNCAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2Ugb2YgcHVsbC9wdXNoCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSBuc3B1bGwvbnNwdXNoIGNoZWNrIGZvciBhCgogY2xlYW4gcmVwbwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbmV3IGZ1bmN0aW9uICJuc21ha2VhbGwiIHRvIHRlc3QKCiBidWlsZGluZyBvbiBldmVyeSBicmFuY2gKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRlZmF1bHQgdG8gbWVyZ2UKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvCgogVjUtNy1wYXRjaGVzCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6IENIQU5HRVM6IFdpbmRvd3M6IEF2b2lkIHRoYXQgaWYKCiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGhhdmUgYmVlbiBidWlsdCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZgogTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdGhhbiBBY3RpdmVQZXJsIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIFBlcmwKIG1vZHVsZXMgdHJpZ2dlcnMgYSAiRnJlZSB0byB3cm9uZyBwb29sIiBjcmFzaC4gVGhpcyByZWdyZXNzaW9uIHdhcwogY2F1c2VkIGJ5IGNvbW1pdCAzYjE0YzU5Y2Y4Mjc4ZDQxMDIwN2ZmNDJkZWJkYTI2MzY0MjZhNDY4ICh0aGUKIG5ldHNubXBfZnJlZSgpIGludG8gU05NUF9GUkVFKCkgY2hhbmdlcyBpbiB0aGUgKi54cyBmaWxlcykuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTEwOTUzOTkzMDcwM2NiMzA1MmQ1MjQxYjE4YWM2ZmMwNjJmYWFjYSBNZXJnZTogMGM5YjZjYgoKIGU0NmIxNzAgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDE4OjM0OjExIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCgogdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QKIGVxdWFsIHRvIC0xLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDdmNDJkMGQ5MzMyMDQ4NDE1MjI3MTQyN2NjOTgwOGNiZGE0OWJiZDAgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAwOTo1MDo1MSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGM5YjZjYmU5ZGJlMmVjNTIxN2E5NWI2NzgxZmQ3ZGMxZjZlYmRhNyBNZXJnZTogZmE2Y2VmNQoKIDk2MzMyMGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDE4OjE0OjM2IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhM2I4NjU0YTIzMmM1NjNiYzk3Y2M5OTI1Y2Q5ODU5MGEzMGM1YmM1IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMTc6MjQ6MTggMjAxMSArMDIwMAoKMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGZhNmNlZjVjYTkxZGYzYTBiMDM0NTViNjg1NTlkMmJlZTI0ODEwMWMgTWVyZ2U6IGY1ZmU1MzYKCiA4YWRkMGRhIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZwogNyAxMDoxODo1NCAyMDExICswMjAwCgoyMDExLTA4LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTBkZDNjYWYyNTkyNmU0MzQ2NTcxOGJmNDE3YTQ2NGMyZmIzNjM2NiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZyA3IDEwOjE3OjAxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiAzMiBpcyB0b28gbGltaXRlZCBmb3IKCiBiaWdnZXIgdGFibGVzOyBpbmNyZWFzZSB0aGUgbWF4IG1zZyBjb3VudCB0byAxMjgKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2Ugcm9sbHVwIGFuZCBzeW5jIHN1cHBvcnQKCiAtLXJlYmFzZSBhbmQgY2hhbmdlIHRoZSBkZWZhdWx0IGJhY2sgdG8gbWVyZ2UKCjIwMTEtMDgtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudGVkIGhvdyB0byB1c2UgYnVpbGQuYmF0IHdpdGgKCiBPcGVuU1NMIGVuYWJsZWQKCjIwMTEtMDctMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBvdXRkYXRlZCBpbnN0cnVjdGlvbnMgYWJvdXQKCiBlZGl0aW5nIHdpbjMyXGxpYnNubXBfZGxsXGxpYnNubXAuZGVmIGZyb20gUkVBRE1FLndpbjMyCgoyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnQgaG93IHRvIGJ1aWxkIDY0LWJpdAoKIGV4ZWN1dGFibGVzIGZvciB0aGUgeDY0L2FtZDY0IGFyY2hpdGVjdHVyZQoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGY1ZmU1MzZlOGZkNmM0OGZlMjQzZGVjZDMxZmFjOWNmMWM5MmY0Y2MgTWVyZ2U6IDc4NTBlYTEKCiA4MDkyOGE4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxNToxMzoyNyAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODA5MjhhODkwOWNmYWIzN2YwMWIzOWEwNzFhM2U4YWQ4NTk1NjIyMiBNZXJnZTogZjE2YTA5NAoKIDBkYmM4NjkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEzOjU3OjMwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZGJjODY5ZmVjMDdkOGU5MGRiZDFjOTU0OTNlZTdjYmM2MjNjOTVjIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTI6NDA6MzEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZAoKIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLmRlZiBhbmQgcGVybC9TTk1QL3QKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4NmMxZTJiOTY3OWZlYzJjZDc5OWJhNzYwMDVjM2Q2MGU5ZDQ3NjM0IE1lcmdlOiBiY2Q4NjM1CgogZjE2YTA5NCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTI6MjA6NTAgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJmOGQ0ZjU3OTZjYmMxYzdlOTY3YWNkYWE4MDE5YjI0ZjE1MjBhMzYgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMjowMjo1MSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgLSByZXZlcnQgY29tbWl0CgogZDJjNDc2OGJkMmVmYjQ4NjY0NDM0YTgzMTQyNWMyZGRhODVkNzEzMyAoQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0gKIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlCiBub2lzZSkuCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDogCgogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0CiBiZjcxNzhiMGIyMjU4N2Q0M2QxYTgwYzI2OWNkMjE2YmQ1OTMwMjE0IChhZ2VudDogY2hhbmdlIHR5cGUgb2YKIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZykKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMKCiBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAogMGU2ODQyZmUwODBjZWM4NTNiMDhjZDIzMjMwMTVhYmFiYzM4MWNlMSAoQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSAogMzM4MzQ0MTogZnJvbSBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mCiBmcmVlZCBtZW1vcnkpLgoKMjAxMS0wOC0wNSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE5FV1M6IG1pbm9yIE5FV1MgcG9saXNoCgoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGJjZDg2MzUwNzEzODIyOTYzZDM3NmVmZjU4MmE5MmY0M2U0MjZkNmMgTWVyZ2U6IDljODEwYTMKCiA3YTIwZjcxIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMDoyODo1NSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgM2FhOTQ5ZmJkZmMxYTk0YTgzNDBhZDhiYWY4YjMxNDc1NmEwYmI5ZCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5YzgxMGEzYjM3YjY4NTczYzQwMzM3ZTI0NmUyZmFmMjk5Yjc3ZDMxIE1lcmdlOiA3MWNiMmU4CgogNjEwZDYzZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDEwOjQyOjA4IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5NDM5MzBlMWUxMjQzODVmZDk0NzM4YjZkY2RhMzdkMjlkYzdhYzdmIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMTA6NDE6NDEKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0ZWRjYjg4ZGFlOGIyZTU5ZGM2ODNlODBkNDE0ZmE3ZWNlYzM2ODg1IE1lcmdlOiA2NWYzZWVmCgogMmRkOWVkMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDEwOjI0OjExIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS01LXBhdGNoZXMnIGludG8KCiBWNS01LXBhdGNoZXMKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiYzVjYTAzYTA0YWIxOWM2MzRhMzRkMDYwYjBiMTZiNzQ4NGNiNTIwIE1lcmdlOiA4OGZkZGI3CgogOTBjMGU3NSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTk6MTM6MDcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmM6IHNubXB1c206IEZpeCByZWNlbnRseQoKIGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzogQ0hBTkdFUzogb3BlbmJzZDoKCiBQQVRDSCAzMzU3OTMyOiBmcm9tIHQwancyZnUwa21nOiBDbGVhbmluZyBpbiBtZW1vcnlfbmV0YnNkLmMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmM6IENIQU5HRVM6IGFnZW50OgoKIFBBVENIIDMzODYxNDc6IGZyb20gd3VsZjIwMDE6IGZpeCBVQ0QtU05NUC1NSUI6OmRza1VzZWQgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDczZDdlNWNkNGQ0MTFiYmEyMGViODUzNTlkODcyODA2MzMwMWNiZCBNZXJnZTogYTRlOGI2MgoKIDg4ZmRkYjcgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyODoyMiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjEwMWJiMmQ3YWQ2ZGIwMzhjNzU1YWE5MTkzYzhhY2UwZGJkNGY1OCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDA5OjI4OjA2CiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogLmdpdGlnbm9yZTogaWdub3JlICoub3JpZyBhbmQgKi5yZWoKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBoZWxwIG91dHB1dCBkZXNjcmliZXMgcmViYXNlIHZzCgogbWVyZ2UgYmV0dGVyCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjEyNmExN2M2YTMwNjM0NTVhNTExOTQwYjAyMzA0N2FiZDliNDhlZSBNZXJnZTogYWQ3NjVmNAoKIDc3YTQ3ODQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyNToxNiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDUyZTE3MDdmMjA5ZWM0NWU3YzdmMmEzMDQwZWY1OTVmYjlkMWFmNiBNZXJnZTogZGM3NTVhNgoKIGIzNzJlNWEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwOToyNTowMyAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDUuaDogQ0hBTkdFUzogb3BlbmJzZDogUEFUQ0gKICAgICAgMzM1NzkyNzoKCiBmcm9tIHQwancyZnUwa21nOiBSZWNvZ25pc2Ugb3BlbmJzZDUgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBzcGxpdCBuc3NmcGF0Y2hhcHBseSBpbnRvIHR3bwoKIHBhcnRzOiBhcHBseSBhbmQgY29tbWl0aW5nCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBwYXRjaCB1c2luZyAtTgoKCjIwMTEtMDgtMDQgIERhdmlkIEFybm9sZCA8ZGphQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgCiAgICAgIG1hbi9maXhwcm9jLjEuZGVmLCBtYW4vbWliMmMuY29uZi41LmluLCBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLAogICAgICAgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAKICAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wY29uZi4xLmRlZiwKICAgICAgbWFuL3NubXBkLjguZGVmLCAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgCiAgICAgIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmLCAKICAgICAgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcG5ldHN0YXQuMS5kZWYsIG1hbi9zbm1wc2V0LjEuZGVmLCAKICAgICAgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsIG1hbi9zbm1wdGVzdC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsIAogICAgICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdXNtLjEuZGVmLCBtYW4vc25tcHZhY20uMS5kZWYsIAogICAgICBtYW4vc25tcHdhbGsuMS5kZWY6IENIQU5HRVM6IG1hbjogUEFUQ0ggMzMxMjg2MTogZnJvbSBkamE6IE1hbgogICAgICBwYWdlcwoKIGh5cGhlbi12cy1taW51cyBjbGVhbnVwIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBEZXRlY3QgKGFuZCByZWplY3QpIE9wZW5TU0wKCiAxLjAuMAoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBDb21tYW5kLWxpbmUgb3B0aW9ucyBmb3Igc2lsZW50CgogaW5zdGFsbAoKMjAxMS0wOC0wNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBFbnN1cmUgV2luZG93cyBwYWNrYWdlCgogdW5pbnN0YWxscyBjb21wbGV0ZWx5LgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDgxYzYzZmI1YzVlNGFiYjljMjlhY2E4OWJmOWQ2OTQ0MTAwODZlOTcgTWVyZ2U6IDRhNjkyMGEKCiBkYzc1NWE2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDg6MzM6MzQgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzogYWRkZWQgc3BhY2luZyB0byBtYXRjaCB0aGUgbGF0ZXIgYnJhbmNoZXMKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiByZW1vdmVkIGFjY2lkZW50aWFsbHkgZHVwbGljYXRlZCBjb2RlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKCiBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CgogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCiBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKIENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSCAzMzgzOTUxOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggLVd1bnVzZWQKIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlODc4YWJiZGIxODA4ZWY4M2UwYTgwNzQ1MzZmYjU0ZTEzMjE5YThiIE1lcmdlOiA0MDNkZTQyCgogODc4ZmJmNCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjU1OjAwIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNTBhZmEwNjg5MmZkODk3YWMzMWUzODM2YTdmZmM5ZTJiNGNmN2I5IE1lcmdlOiAyYzE0YzFjCgogM2FmYzVlMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjUxOjMzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1NzhjZDdjY2UzNTFhZThkOTA0ZWMzZDgwYmU5YmE2ZDFkNDhhNzEyIE1lcmdlOiAyNTk4OGJlCgogZjNiYzU1MSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA3OjUwOjU2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGF1dG9jb25mCgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0gKCiAzMzgzOTQ5OiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggYXV0b2NvbmYgdGVzdHMgZm9yIHN5cy9tYnVmLmggU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBwcm9tcHQgZm9yIHBhdGNoIGFuZCBhbiBhcmVhLCBhbmQKCiB1c2UgdGhlIHByb3BlciBDSEFOR0VTIGxpbmUgZm9ybWF0CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBVc2UgZmV0Y2ggLS1hbGwgYW5kIHJlYmFzZSBhcwoKIHN1Z2dlc3RlZCBieSBCYXJ0IGZvciBzcGVlZCBpbXByb3ZlbWVudHMKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkNmExYTg5ZTZmNjQ4OTUxYTliODMxOTMyZDNjYzIzMDgyMWYyZDM3IE1lcmdlOiBkY2I3MTJmCgogODcyZTAxMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTI6MDY6MTggMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDQ0OTY5YjRlNTdjMjcxOTRlNWJkMzU3YmM0NTI3NWZlYjg2OTVkMjIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgOCAyMDo1MjoyNSAyMDExICswMjAwCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6IENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IEludm9rZQoKIFNubXBVdGlsT2lkRnJlZSgpIGJlZm9yZSBTbm1wVXRpbE9pZENweSgpLiBJdCdzIG5vdCBjbGVhciB5ZXQgd2h5CiB0aGUgb3JpZ2luYWwgY29kZSBkaWQgbm90IG1ha2Ugc25tcHdhbGsgdHJpZ2dlciBhIG1lbW9yeSBsZWFrLgoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRjYjcxMmZmYzg2YjMzNTgzMDAwZWY0YWU5YTUxY2VkMjVjZDE1YmYgTWVyZ2U6IGU4NWNmYTUKCiA5ODYyM2VmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxMTozNjoxNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOGEwMWVjNjQyM2Q0MDBjNGExM2NjYWM2OGEzNzkxZDAyMThhMDg4NSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDExOjE5OjE3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlODVjZmE1OTliMjNiNzZkOTc5MTNjOTZiNWQ3MDNiZmY2YmE0OTQ0IE1lcmdlOiBiMDU2ZWU2CgogZTIxZWVmMiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMDg6NDQ6NDMgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogQ0hBTkdFUzogYWdlbnQ6CgogQXZvaWQgdGhhdCBhIE1JQiB3YWxrIG9uIHRoZSBob3N0IHJlc291cmNlcyBNSUIgdHJpZ2dlcnMgYSBjcmFzaCBvbgogRmVkb3JhIDE1CgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYjA1NmVlNmViNTM5MDlhZDA0ZjE2ZWMyNmQyNjkwZDdhMDgzMTkyYSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDA3OjU5OjA0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCiAgICAgICBlc3MuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcwogICAgICAgLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYWdlbnQvc25tcF9hZ2VudC5jLCAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXB0bHMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wdXNtLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDoKCiBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBhZThlM2VjZDJkZjRjZjM3NjI1OTQ0YWRlZDFkZmU0NzM1ZDQ0ZWVhIE1lcmdlOiA3MzE4N2NlCgogOTMzNWUxOSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEF1ZyAzIDE0OjM3OjM2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3OTRmOWE2OWQ3ZWI2NDIyNjgyMDBiMGE0YjE5OTE1MWRlZjY2ZWQwIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgQXVnIDMgMTQ6MzY6MjUKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDctMTggIElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6IGFnZW50OiBjaGFuZ2UKCiB0eXBlIG9mIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZyBUeXBlIG9mIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdmFyaWFibGUgaXMgY2hhbmdlZCBmcm9tIGludCB0byBsb25nLgogVGhpcyBmaXhlcyB0aGUgYnVnIHdpdGggd3JpdGluZyB0byBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgaWYgc2VydmVyCiBpcyBjb21waWxlZCBmb3IgNjRiaXQgKHNubXBzZXQgcmVwb3J0cyB3cm9uZyBsZW5ndGgpLiBUaGlzIGJ1ZyB3YXMKIGludHJvZHVjZWQgYSBsb25nIHRpbWUgYWdvIChieSBmYWVlY2QwIGNvbW1pdCkuICBBY3R1YWxseSB0aGlzIGlzIGEgJ2xlc3MgZWZmb3J0JyB0eXBlIG9mIGZpeCBidXQgSSB3b25kZXIgd2h5IHdlCiBuZWVkIGEgbG9uZyB0byBzdG9yZSBhbiBJTlRFR0VSIGluIHRoZSBmaXJzdCBwbGFjZT8gU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+IFNpZ25lZC1vZmYtYnk6IFdlcwogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNmFkN2UyOGZmOWU1ZTRlYmMxMzU4ZWUzOWNjOTc5NmE0NGExYmVlNyBNZXJnZTogZjI4MzJlMwoKIDFlMTU0Y2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCiAzIDE5OjE1OjI0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2MWIxNzhmMWVlODk1MmFhMDNhYTNiMWJhNTFmNGE2NjU1ZTQ3ZjAxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnIDMgMTg6MDk6NDcgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDogV2hpdGVzcGFjZS1vbmx5IGNoYW5nZTogZml4IGluZGVudGF0aW9uCgogb2YgYW4gI2luY2x1ZGUgZGlyZWN0aXZlCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9OZXRTTk1QLnhzOiBDSEFOR0VTOiBQZXJsOiBSZW1vdmUgZmlsZSBwZXJsL05ldFNOTVAueHMKCiBiZWNhdXNlIGl0IGJyZWFrcyB0aGUgV2luZG93cyBidWlsZC4gIFRvIFdlczogaWYgeW91IGNhbiB0ZWxsIG1lIGhvdyB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0geW91IG9ic2VydmVkCiBJJ2xsIHRyeSB0byBmaW5kIGEgcG9ydGFibGUgZml4LiAgVGhpcyByZXZlcnRzIGNvbW1pdCBkNTQ4NzFmNTI5MzY3NWM4MDU4ZWNjZTg4ZmVkNWI2NDZjODM2MzIzICgiQWRkZWQKIGEgYm9ndXMgZW1wdHkgLnhzIGZpbGUgZm9yIGJ1bmRsaW5nIG9uIG5ld2VyIHBlcmwgdGhhdCB3YW50cwogInNvbWV0aGluZyIiKS4KCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZjQ4OWIxOTlhZGFiNDhiMTYzM2ViY2FmNWZmNWE3YzIyYzRjYjg5IE1lcmdlOiBmNGVhYTAyCgogNzJhNTliYyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKIDIgMTA6MTE6NTMgMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDdmY2MwYjgwMzJmOGRhNWI3YmMzMDA1OWFmMGJhNjU2ZWFlNzEwOTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgMSAxNDoxMToyOCAyMDExICswMjAwCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jOiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluCgoKIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCgoyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGZpbGUgbmFtZXMgYW5kIHBhdHRlcm5zIGZvciBvdXRwdXQKCiBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBXaW5kb3dzIGJ1aWxkCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCgoyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIC5naXRpZ25vcmUsIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOiBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgoKCjIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmNGVhYTAyZDliMDc2YTY3ZDcyNzJkZTdlZWY4ZTlkZmJmMTg5YmJmIE1lcmdlOiA0MDEyNWQ4CgogYWRhZGNiOSBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAyIDAwOjU3OjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6IHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCgoKMjAxMS0wOC0wMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0MDEyNWQ4NTM5Y2Q4OWY5NTJmYmMyNDU4OGM1ZTgxZTljZDgyMWZlIEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyAxCiAxMzo1ODozMyAyMDExICswMjAwCgoyMDExLTA4LTAxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNWFjZjBkMmNlYjM5Nzc5NjRlZDM5ZjAwMzA3M2JhNjQxMzhjMmViZCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEp1bCAzMSAyMzo1Nzo0MQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGE3NzIyYTgxZjljYjdhYTg2NzBlN2MyMzg2MDEzNjJhMzEwODdhY2MgTWVyZ2U6IDI0MmUxNzkKCiBhZTlhYzZjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEp1bAogMzEgMDk6MTE6NDUgMjAxMSArMDIwMAoKMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc3NodG9zbm1wLmM6IEZpeCBhbiBpbmNvcnJlY3Qgc291cmNlIGNvZGUgY29tbWVudDogdGhlcmUgaXMKCiBubyByZXF1aXJlbWVudCBpbiB0aGUgQU5TSSBDIHN0YW5kYXJkIHRoYXQgc3RhY2sgdmFyaWFibGVzIHNob3VsZCBiZQogaW5pdGlhbGl6ZWQgdG8gemVyby4KCjIwMTEtMDctMzEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNDJlMTc5N2IyNjk0YTA2ODk4NTZhZTM2ZDA1ZDM0MTNhYWY4ZDc3IEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDAxOjQ0OjA5CiAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nCgogZ2V0YWRkcmluZm8oKSBhbmQgRUFJX0ZBSUwgKGUuZy4gSFAtVVggMTAuMjAvMTEuMDApCgoyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMThkZjc1OWYxOWI5NzVjNDQ5ZDAxMGJiMGExNjIxMTliYjY4MzYwZCBNZXJnZTogNTRhNDRjYgoKIDcwNTA3MTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgSnVsCiAzMCAxNjozOToxMyAyMDExICswMjAwCgoyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODJkNzNmYjExYmUzYWUzMWYzOWM5ZDYxOGQ1Mzg4ZGM5YjEwMDZkNyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAyOSAyMDo1MToyNyAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IGF1dG9yZWNvbmYKCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IGF1dG9yZWNvbmYKCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMTA5ZjY2OTRkNzg4ZjQ4ZWJkOWZjMGExZTkwYzQ1YWJjMzdiZWEyMCBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDdkODEwMGVlZDQ1OWExZmYxYTIwYzA2NzM2NGZhNmNiNDc0OTEzMDkgTWVyZ2U6IDExNmMyNGYKCiA5ZTQ3YWM0IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBTYXQgSnVsIDMwIDAwOjIwOjAxIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMsIGRpc3QvbnNiLW5pZ2h0bHksIGRpc3QvbnNiLXBhY2thZ2U6IG1pbm9yIG5zYgoKIGZpeGVzL2VuaGFuY2VtZW50cyBmcm9tIG15IG9sZCBzdm4gdHJlZQoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDExNmMyNGYwZjdmYjNmOTliYTY0NjczMGY2MWM1NmQxYWUyM2JhNDEgTWVyZ2U6IDk4MmZiN2YKCiA0ZmMwYjhiIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bAogMjkgMTE6MzE6MjAgMjAxMSArMDIwMAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGM0ODE3M2MwNmE5ZWFhZGJmODFlNmI0OTYyZDU1ZWYwYTU0ZGIyNTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMTA6Mjc6MzkgMjAxMSArMDIwMAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgbHRtYWluLnNoLCBtNC9saWJ0b29sLm00OiBSZXJ1biBhdXRvcmVjb25mCgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYzogRml4IHR3byBmaWxlbmFtZXMgaW4gaG9zdCBtaWIKCiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOTgyZmI3ZmQ4YmFiMjVjNDMyMmFhNjJjNTA0MzcwMzZjZTI5NmUzZSBNZXJnZTogMWVkYTY3NQoKIDM0NTgxMjggQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgSnVsIDI4IDE2OjI0OjAzIDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBGaXggcG90ZW50aWFsCgogc2lnc2VndiB3aGVuIGFuIGlmVGFibGUgZW50cnkgaXMgcmVtb3ZlZCBhcyByZXN1bHQgb2YgYm90aAogaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIGFuZCBpbnRlcmZhY2VfZmFkZW91dCBhdCB0aGUgc2FtZSB0aW1lLgoKMjAxMS0wNy0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc3NodG9zbm1wLmM6IE1ha2UgYXBwcy9zc2h0b3NubXAuYyBidWlsZCBhZ2FpbiAod2FzIGJyb2tlbiBieQoKIGNvbW1pdCA2MTIyNDdjZGYxNGMxZTc0NWMzODRjZWZlMWYzZmRlM2U0NDViMzQ3IHRoYXQgY2hhbmdlZAogTVNHX05PU0lHTkFMIGludG8gTkVUU05NUF9OT1NJR05BTCkKCjIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxZWRhNjc1M2I3ZmU3ZDNiM2YyMTdjMDkyNTRlYzAyZDBlZTFkMGNlIE1lcmdlOiBkYjhiODYwCgogYTJmOWVjZSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwKIDI4IDE1OjMyOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IAoKIENIQU5HRVM6IHNubXBkOiBSZXN0b3JlIHN0b3JhZ2UgdGFibGVzIG9uIExpbnV4CgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX3JlcGxhY2Vfb2xkJyBvcHRpb24gdG8gcmVtb3ZlIG9sZCBlbnRyaWVzIGluCiBpZlRhYmxlIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhbHJlYWR5IGV4aXNpbmcgb25lCiBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCB0aGUgaW50ZXJmYWNlX2ZhZGVvdXQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCgogZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKIGxpZmV0aW1lIG9mIGlmVGFibGUgZW50cmllcyBvZiByZW1vdmVkIGludGVyZmFjZXMuICBQcmV2aW91cyBsaWZldGltZSB3YXMgaGFyZGNvZGVkIDUgbWludXRlcywgbm93IGl0J3MgY29uZmlndXJhYmxlLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkNjJhMGViOTA3MGI0ZDhkOWZlMmJjZmRiNGQ1M2QzN2VmODE0ZjliIEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEp1bCAyOAogMTQ6NDk6MDggMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMgaW4KIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKIGFwcGVhcnMuICBFLmcuIHJlbW92ZSBvbGQgcHBwMCBpbnRlcmZhY2Ugd2hlbiBuZXcgcHBwMCBzaG93cyB1cC4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEFsbG93IGlmVGFibGUKCiBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKIGRpc2FwcGVhcnMgKGkuZS4gaW50ZXJmYWNlX2ZhZGVvdXQgPSAwIHdvcmtzIGFzIGV4cGVjdGVkKS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldAogbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4gIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCgoyMDExLTA3LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZAogICAgICBmaXgKCiBmb3Igc3lzdGVtcyBsYWNraW5nIE1TR19ET05UV0FJVAoKMjAxMS0wNy0yNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOiBDSEFOR0VTOiBzbm1wZDogTWFrZQoKIFRDUC1NSUI6OnRjcEN1cnJFc3RhYiB3b3JrIGFnYWluLiBXYXMgYnJva2VuIGluIDUuNyBieSB0aGUKIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmVzIiBmZWF0dXJlLgoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmYjg4MDc0ZmJiYzI2OGM3ZjA1MDk0OTE1MzVhZWM1ZmVjYjA1Njg0IE1lcmdlOiBhNzQzYWU1CgogMzgyMTI3MyBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBKdWwgMjcgMTQ6NDc6MjUgMjAxMSArMDIwMAoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAzMWZhMDdjZDlmZmRlNDZkNDFkMmI1ODM4YzNmYzRkMDE1NDhiZmI1IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1bCAyNwogMTQ6NDU6NDcgMjAxMSArMDIwMAoKMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpCgogaXMgaW50ZXJydXB0ZWQuICBUaGlzIGJlaGF2aW9yIGlzIGluZGljYXRlZCBpbiBjb21tZW50IG9uIGxpbmUgMTI0NCwgYnV0IGl0IHdhcyBub3QKIGFjdHVhbGx5IGRvbmUuCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmU5NDY2ZDdmNTlkNjVkMDUwMjc3NzM1ZTRlZDlkMzA3MTlmZjc1MiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAyNiAxMzoxMDowNCAyMDExICswMjAwCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNzcwODI5Njc2MGVhZjVhODBkODU0MDc0NmM5YzI0OTgyNmZkMWJmZSBNZXJnZTogZWExMWU1ZQoKIGNkNmUzODIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAyNiAxNjoyMTo0MSAyMDExICswMjAwCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOiBDbGFyaWZ5IGFuIElQdjYgc291cmNlIGNvZGUgY29tbWVudAoKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzogU3BlbGxpbmcgZml4OgoKIGRlZmluZWR5IC0+IGRlZmluZWQKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjM6IFNwZWxsaW5nCgogZml4OiBhbGV2aWF0ZSAtPiBhbGxldmlhdGUKCjIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGQyYzQ3MTMzNDkzZDVhMDBkZTZiM2NkYmNmYWM3ZTlkNDRiNmZmZSBNZXJnZTogZjljY2JjNwoKIGVhMTFlNWUgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgSnVsIDI2IDE0OjI1OjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzVhODQ2NGM0MmE5NGMyNTBlZTJkZmEyYTQ3MzEwOWE3MzQyMDNkOCBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMjYKIDE0OjI0OjU1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjUgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjljY2JjNzcyNjY2MTM0ZDFkMTc4YjUwNWFmOWRkY2RkOWVkNDI0NCBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBKdWwgMjUKIDE1OjAyOjE1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiMGMwYTM1NWQ1ZjYwMWExMWJlNDkxNGZiZjcxMzcxNmFiZDMwYTI5IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CiAxODozNjoxMSAyMDExIC0wNzAwCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzE0ZmMzODYxNGJhZjEwZDUxNzEzNmYwNDgwOTA3YjdmMDNkOGQ3NCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1bCAyMAogMTM6NDQ6NTkgMjAxMSAtMDcwMAoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CgogbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYmRkMjE2YzA3NGJmNDFjZDNhMDg0YmQxNDY4OWNmMDFjODg3YjMxIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CiAxODozNjoxMSAyMDExIC0wNzAwCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogLmdpdGlnbm9yZTogdXBkYXRlZCBnaXRpZ25vcmUgdG8gaWdub3JlIGEgbnVtYmVyIG9mIGF1dG8tZ2VuZXJhdGVkCgogZmlsZXMKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOiByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdAoKIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGY1ZjcwMDU1Y2Y5YmUzM2YwNWZiNTBhYmUyZjVhODFlYWMwOTJhZCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAxMTowNzoxOSAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZjU5NmYxODI0MmRjZGZkNmNmNDljODhkYTFkODM2YzE2ZTI2MGNhYyBNZXJnZTogMGYzMDliNAoKIDcwZGVlNGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAxOSAxMTozMzoyOCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6CiAgICAgIDMzNjk2ODA6CgogZnJvbSBJbHlhIFlhbm9rOiBjaGFuZ2Ugc25tcF9lbmFibGVhdXRoZW50cmFwcyBmcm9tIGludCB0byBsb25nIHN1Y2gKIHRoYXQgbW9kaWZ5aW5nIHRoZSBjb3JyZXNwb25kaW5nIE1JQiBvYmplY3QgZG9lcyBub3Qgb3ZlcndyaXRlCiBtZW1vcnkgaW4gNjQtYml0IGJ1aWxkcy4KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMzcwNjQ1OgoKIGZyb20gQmlsbCBGZW5uZXI6IEZpeCBBZ2VudFggc3ViYWdlbnQgZm91ciBieXRlIGxlYWsKCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6IGRvCgogbm90IGludm9rZSBJU1JVTk5JTkcoKSBvbiBNaW5HVy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CgogY2xlYW51cCAtIHJlbW92ZSBjb2RlIHRoYXQgYmVjYW1lIHN1cGVyZmx1b3VzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXOiBEbyBub3QKCiBhc3N1bWUgdGhhdCBraWxsLmV4ZSByZXBvcnRzIHZpYSBpdHMgZXhpdCBzdGF0dXMgd2hldGhlciB0aGUKIHNpZ25hbGxlZCBwcm9jZXNzIHN0aWxsIGV4aXN0cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFJlbW92ZSB0aGUgZnVuY3Rpb24gV0FJVE9SRElFKCkgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaCBzaW5jZSBpdAogaXMgbmV2ZXIgaW52b2tlZC4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFNpbXBsaWZ5IFdBSVRGT1IoKSBpbiBzaW1wbGVfZXZhbF90b29scy5zaC4gVGhlIGNvZGUgdGhhdCBoYW5kbGVkCiBpbnZvY2F0aW9uIG9mIFdBSVRGT1IoKSB3aXRoIHplcm8gb3Igb25lIGFyZ3VtZW50cyBoYXMgYmVlbiBkcm9wcGVkCiBzaW5jZSBXQUlURk9SKCkgaXMgYWx3YXlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczoKCiBtaW5vciBzaW1wbGlmaWNhdGlvbi4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOiBDSEFOR0VTOgoKIHRlc3Rpbmc6IFNraXAgdGVzdCA1OSBpZiBTSUdIVVAgaXMgbm90IHN1cHBvcnRlZC4gTWFrZXMgdGVzdCA1OSBwYXNzCiBvbiBNaW5HVy4KCjIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBNaW5HVyBmaXgKCgoyMDExLTA3LTA2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBmcmFtZXdvcmsKCiByZWZhY3RvcmluZzogSW50cm9kdWNlIFdBSVRGT1JOT1RDT05EKCkuCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBNYWtlIFNUT1BQUk9HIHNlbmQgU0lHVEVSTSByZXBlYXRlZGx5LiBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZQogU0lHVEVSTSBjb3VsZCBiZSBzZW50IGJlZm9yZSB0aGUgU0lHVEVSTSBzaWduYWwgaGFuZGxlciB3YXMgc2V0IHVwLAogZXNwZWNpYWxseSB3aGVuIHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgVmFsZ3JpbmQuCiBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBTTk1QX1ZFUkJPU0U9MSBvdXRwdXQgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzCgogcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBFQ0hPU0VORFNJR1RFUk0oKSBhbmQgRUNIT1NFTkRTSUdLSUxMKCkKCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBGaXggYSBidWcgaW4KCiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoIHRoYXQgd2FzIGludHJvZHVjZWQKIGluIGNvbW1pdCA5MzhkNzVjLgoKMjAxMS0wNy0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IElnbm9yZSAqLmV4ZSBmaWxlcyBnZW5lcmF0ZWQgYnkgdGhlIFdpbjMyCgogYnVpbGQKCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFRlc3Qgb25seSBvbmNlIGR1cmluZyBhIHRlc3Qgd2hldGhlciB0aGUgc2hlbGwgc3VwcG9ydHMgc3ViLXNlY29uZAogc2xlZXBpbmcgaW5zdGVhZCBvZiByZXBlYXRlZGx5LgoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjogQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlZAoKIGRlZmF1bHQgdGltZW91dCBmcm9tIDFzIHRvIDEwcyB3aGVuIHRoZSByZWdyZXNzaW9uIHRlc3RzIGFyZSBydW4KIHVuZGVyIFZhbGdyaW5kCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBBZnRlciBoYXZpbmcgc2VudCBTSUdURVJNIHRvIHNubXBkIG9yIHNubXB0cmFwZCwgd2FpdCB1bnRpbCB0aGUKIHByb2Nlc3MgaGFzIHN0b3BwZWQgYmVmb3JlIHNlbmRpbmcgU0lHS0lMTC4gVGhpcyByYWNlIGNvbmRpdGlvbiB3YXMKIGhpdCBtb3N0IGVhc2lseSB3aGVuIHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgVmFsZ3JpbmQuCiBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayBQSUQgZmlsZSBleGlzdGVuY2UgYWZ0ZXIgaGF2aW5nIHJlYWQgaXQKIGluc3RlYWQgb2YgYmVmb3JlLiBUaGlzIGZpeGVzIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgUElEIGZpbGUKIGRpc2FwcGVhcmVkIGFmdGVyIHRoZSBleGlzdGVuY2UgY2hlY2sgYW5kIGJlZm9yZSBpdCB3YXMgcmVhZC4KCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBUaGlzIHBhdGNoIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyB0byBWNS42IFNWTiBwYXRjaGVzOiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWRnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwZjMwOWI0OTNjMjFkM2M2OTE0NDg3NTE0YjQxNTYwNzU0ZmZjZGY5IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDE5IDA4OjM3OjUwIDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxYjc0NTRiYzI4MTU2ODQ3MGExMzAwNDc2ZDJlZGI0ZjQxMWU2MDI5IE1lcmdlOiA4ZDlkY2M4CgogNjkwZWE3ZCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDE5IDA4OjMxOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEFkZCBtaXNzaW5nIG5ld2xpbmUKCiBjaGFyYWN0ZXIgaW4gYSBsb2cgbWVzc2FnZQoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuCgogc2h1dHRpbmcgZG93bgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSdW4gYXV0b3JlY29uZi4KCiBGaXhlcyBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgcGF0Y2gKIGQ1ODhlYzg1M2JkMDUzMWYyMTJmY2JmNTFiOTYyYjk2YzY4MjhiNTkgKFJQTSA0Ljkgc3VwcG9ydCkKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkNjE3ZDg0ZjgzZmE2OWVkOWZhOWY5OGVmYzRhZmFmODgwZDEyMWYyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsIDE0IDE2OjQzOjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDctMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IE1ha2UKCiBuZXRzbm1wX2lwdjZfZm10YWRkcigpIHNob3cgdGhlIElQdjYgc2NvcGUgSUQKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBBZGQgc3VwcG9ydAogICAgICBmb3IKCiBJUHY2IGFkZHJlc3Mgc2NvcGUgSUQKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mCgoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGE1NjcyMWEzZTc3NTRlMzg5ZGFhN2U4YTNkNTc5Mjg5OWVkYzlkZTMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAoKMjAxMS0wNy0xNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDg0NGQ0Y2U4NjdiZjNhYmU3Yjc1MzZjNWRiZmJhNDAxOTM3YThkNGEgTWVyZ2U6IGVlZDAxOTgKCiA2MTAzNmE4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBGcmkgSnVsIDE1IDE1OjMzOjEwIDIwMTEgLTA3MDAKCjIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4NTFiY2Y1M2ZjZDEzY2RmMGJhOWYxMmU1ZDYwM2U3M2Y4YmI5NjExIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBGcmkgSnVsIDE1CiAxNTozMjo0OSAyMDExIC0wNzAwCgoyMDExLTA3LTE0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBhIHR5cG8KCgoyMDExLTA3LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogc25tcGxpYjogIHR3ZWFrIHBhdGNoIDMwNDQ4ODggdG8gcmVzdG9yZQoKIHByb3BlciBub24tZXJyb3IgcmV0dXJuIGR1cmluZyBtaWIgbG9hZGluZwoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYWRkZWQgNS43IHBhdGNoZXMgdG8gdGhlIGJyYW5jaCBsaXN0IGFuZCBmaXggdGhlIHJlbGVhc2UgZmlsZQoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGFkZGVkIDUuNyBwYXRjaGVzIHRvIHRoZSBicmFuY2ggbGlzdAoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCgogYnJhbmNoZXMKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIDUuNyBwYXRjaGVzCgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGM0MzEyMzFlOGYwYTM5ZDE5NTBiYzcyYzMyZTM0MDJmOTBmYTgwMzAgTWVyZ2U6IDU2ZmVlNDAKCiBhMmFjMjRkIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gSnVsIDExIDE5OjMzOjE3IDIwMTEgLTA3MDAKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29weSBvZiB0aGUKCiBzaGVsbC1mdW5jdGlvbnMgdG8gdGhlIG9sZGVyIGJyYW5jaAoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKCiBicmFuY2hlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzMgLT4gVjUuNwoKMjAxMS0wNy0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43CgoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBSZXZlcnQgImZpeCBkdGxzdWRwCgogdHJhbnNwb3J0IGFkZHJlc3MgZm9ybWF0IGZ1bmN0aW9uIiBUaGlzIHJldmVydHMgY29tbWl0IDJhYjNhNmU2ZjJmY2MxZmYzZTVmMGZiNWRjNWQwNWU0OTg4MjBkODkuICAgLSBmb3Igc29tZSByZWFzb24gSSBzYXcgJ3JjJyBhbmQgbXkgYnJhaW4gaW50ZXJwcmV0ZWQgaXQgYXMgICAgJ3ByZS1yZWxlYXNlJy4gV2hhdCBjYW4gSSBzYXksIGl0IHdhcyBsYXRlLiA6LS8KCjIwMTEtMDctMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogZml4IGR0bHN1ZHAgdHJhbnNwb3J0CgogYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24gIC0gdXBkYXRlIGlwdjQgZm10YWRkciB0byBoYW5kbGUgc29ja2FkZHIgYW5kIHRvIGNoZWNrICAgIHNpemUgYmVmb3JlIGFzc3VtaW5nIGRhdGEgaXMgYWRkciBwYWlyICAtIG1vdmUgZHRsc3VkcCBmdW5jdGlvbnMgdG8gZXh0cmFjdCBhZGRyKHMpIHRvIHRsc2Jhc2UKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHRhZyBwdXNoaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMiAtPiBWNS43LnJjMwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsCglkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LnJjMwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKCXB1Ymxpc2hpbmcKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogcmFuIGF1dG9oZWFkZXIgdG8gYWRkIHRoZQoJbWlzc2luZyB0ZW1wbGF0ZSBpZmRlZnMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMxIC0+IFY1LjcucmMyCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1c2UgdGhlIG5ldyBydW4tYXV0b2NvbmYgc2NyaXB0CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvcnVuLWF1dG9jb25mOiBBIHNjcmlwdCB0byBpbnZva2UgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiB0aGUKCWF1dG9jb25mIHRvb2wKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbWFpbmluZyBjb21tYW5kIGxpbmUgY2hhbmdlcyBmb3Igc3ZuIC0+CglnaXQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1ha2UgdGhlIGJyYW5jaCBlY2hvIG91dHB1dCBhbmQgc3ZuIHVwZGF0ZQoJY29udmVydGVkIHRvIGdpdCBlcXVpdmFsZW50cwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcHVsbCB0aGUgYnJhbmNoIGluZm8gZnJvbSBnaXQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9yZWxlYXNlOiBub3RlZCB0aGF0IHRoZSBtYXN0ZXIgYnJhbmNoIGlzIGluIHJjIHN0YXRlCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCgkqIEZBUTogTWVudGlvbiB0aGUgR2l0IHdpa2kgcGFnZQoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBnaXQgbWVyZ2Ugd2l0aCB0aGUgLS1sb2cKCW9wdGlvbgoKMjAxMS0wNi0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgoJKiAuZ2l0aWdub3JlOiBBZGQgLmdpdGlnbm9yZQoKMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CgoJKiBGQVE6IFdlJ3JlIG5vdyB1c2luZyBnaXQhCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIHJlYmFzZSB0byBwdXQgbG9jYWwgY2hhbmdlcyBhdAoJdGhlIHRvcCBvZiB0aGUgcmVtb3RlIGJyYW5jaGVzIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBmZWF0dXJlIHRvIG5vdCByb2xsCglicmFuY2hlcyBjdXJyZW5seSBpbiByYyBwaGFzZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnNyb2xsdXAgZnVuY3Rpb24gZm9yCglyb2xsaW5nIGJyYW5jaGVzIHVwd2FyZC4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogY3JlYXRlZCBhbiBuc3BhdGNoYXBwbHkgZnVuY3Rpb24KCXRvIGFwcGx5IGEgcHJldmlvdXNseSB0ZXN0ZWQgcGF0Y2ggZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIG5zdHJ5cGF0Y2ggZnVuY3Rpb24gdG8KCXRlc3QgcGF0Y2ggYXBwbGljYXRpb24gYWdhaW5zdCB2YXJpb3VzIGJyYW5jaGVzIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgdmVyYm9zZSBvdXRwdXQgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtb3JlIHByZWZpeCBjaGFuZ2VzIGFuZCBiZXR0ZXIKCXNldHRpbmcgb2YgZGVmYXVsdCB2YWx1ZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgbnMgcHJlZml4ZXMgaW5zdGVhZCBvZiBnZW5lcmljCglzbm1wIHByZWZpeGVzIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogCglNaXNzaW5nIGNoZWNrIGZvciBycG10cy5oIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCgltYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCgltYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAoJbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLAoJbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAoJbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAoJbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAoJbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKCW1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCgltYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKCW1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCgltYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKCW1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKCW1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKCW1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLAoJbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsCgltYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKCW1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywKCW1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCgltYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAoJbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCgltYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCgltYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCgltYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKCW1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCgltYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAoJc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAoJaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsKCXdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOSBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5layBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOiBQcm92aWRlIGEgZnJhbWV3b3JrIGZvciByZWFkaW5nCglSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5IChyYXRoZXIgdGhhbiBxdWVyeWluZwoJdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwoJZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCglzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwKCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCglmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQoJKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAoJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCWZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CgkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwoJZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsCglhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKCShyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgl0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQoJdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CglpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgoJdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CglpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgoJdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCglvZiAlbGQgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCW9mICVsZCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucHJlMiAtPiBWNS43LnJjMQoKMjAxMS0wNi0xMyAxNjoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGNvcnJlY3QgdmVyc2lvbiBvZiBhdXRvY29uZgoKMjAxMS0wNi0xMyAxNjoxMCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDExLTA2LTEzIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByYW4gYXV0b2NvbmYKCjIwMTEtMDYtMTAgMDY6MDMgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzOgoKICAgRml4IGJ1aWxkIG9mIHNubXB1c20gd2hlbiBhZGRpdGlvbmFsIHNlYyBtb2R1bGVzIHJlcXVlc3RlZAoKMjAxMS0wNi0wOSAyMToxMyAgbmJhCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBJbmNsdWRlIHN0ZOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLT1gJKRYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQoKMjAxMS0wNi0wOSAxNDozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlIHJlZ2lzdHJhdGlvbnMgb2Ygc25tcAogICB0cmFuc3BvcnQgaGFuZGxlcgoKMjAxMS0wNi0wOCAxNjozNCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBtb3JlIGRuc3NlYyB0d2Vha3MKICAgCiAgIC0gY3JlYXRlIGFuIGFwcC1nbG9iYWwgdmFsaWRhdG9yIGNvbnRleHQgZm9yIHVzZSB3aXRoIGFsbAogICB2YWxpZGF0aW9uIHJvdXRpbmVzLiBtYWlubHkgdXNlZnVsIGZvciBsb25nLWxpdmVkIGFwcHMuCiAgIC0gdXNlIHRoZSBhcHB0eXBlIGFzIHRoZSB2YWxpZGF0b3IgJ3Njb3BlJywgYWxsb3dpbmcKICAgZm9yIGFwcC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIG9mIHZhbGlkYXRpb24gdmlhIGxpYnZhbCdzCiAgIGRuc3ZhbC5jb25mCgoyMDExLTA2LTA3IDE2OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIGFkZCBhIG1heCBkZWZpbmUgZm9yIGVhY2ggZGVmYXVsdCBzdG9yZSB0eXBlCiAgIAogICBub3QgYWN0dWFsbHkgdXNlZCwganVzdCBhIGhlbHBmdWwgcmVtaW5kZXIgZm9yIHRob3NlIGFkZGluZwogICBuZXcgaWRzIHdobyBtaWdodCBub3QgdGhpbmsgdG8gY2hlY2sgTkVUU05NUF9EU19NQVhfU1VCSURTLgogICAodGhlIGJvb2wgbGlzdCBpcyByYXBpZGx5IGFwcHJvYWNoaW5nIHRoZSBjdXJyZW50IGxpbWl0LikKCjIwMTEtMDYtMDcgMTY6NDYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBtZW50aW9uIGJ1aWxkZGlyIHdoZW4gY29tcGxhaW5pbmcgYWJvdXQgbm90IGJlaW5nIHJ1biBmcm9tIHNvdXJjZQogICB0cmVlCgoyMDExLTA2LTAxIDIyOjI0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IKICAgZGVidWdnaW5nIG91dHB1dCBvZiBhZ2VudHgKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNiAtPiBWNS43LnByZTIKCjIwMTEtMDUtMTAgMDA6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMS0wNS0xMCAwMDoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgQysrIC0+IEMgY29tbWVudHMKCjIwMTEtMDUtMTAgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBORVdTIHVwZGF0ZSBmb3IgNS43CgoyMDExLTA1LTA5IDIzOjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6CgogICByZXZlcnQgdGhlIG9pZCB0eXBlZGVmIHJlc2l6aW5nIGZyb20gcjE3ODA5IGJlY2F1c2UgaXQgYnJva2UKICAgYmFja3dhcmRzIGNvbXBhdCwgYXMgcG9pbnRlZCBvdXQgYnkgdXNlcnMgb24gdGhlIC1jb2RlcnMgbGlzdAoKMjAxMS0wNS0wOSAyMjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgdXNlIHByb3BlciBhdXRvY29uZiB2ZXJzaW9uCgoyMDExLTA1LTA5IDIyOjM4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDExLTA1LTA5IDIyOjM4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMS0wNS0wOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkZWQgYSBtaXNzaW5nIDAgaW4gdGhlIHJldmlzaW9uIGRhdGUKCjIwMTEtMDUtMDkgMjA6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICBVc2Ugc3ltYm9saWMgbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMKCjIwMTEtMDUtMDkgMjA6NDMgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIElBTkEgaGFzIGZpeGVkIHRoZSBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIKCjIwMTEtMDUtMDkgMTU6MjQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZGVkIGEgbmV3IFJFVklTSU9OIGNsYXVzZSB0byBsaXN0IHRoZSBjaGFuZ2VzIGluIHRoZSB0aGUgcmVjZW50CiAgIHVwZGF0ZQoKMjAxMS0wNS0wOSAxNDoxOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIHBpbmcvdHJhY2Vyb3V0ZSBtaWJzIG5vdGUKCjIwMTEtMDUtMDkgMTQ6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICB3ZSBhY3R1YWxseSB3YW50IHRvIHVzZSB0aGUgYmFzZSBPSUQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50LCBub3QKICAgdGhlIHJlZyBPSUQuCgoyMDExLTA1LTA5IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4ZWQgdGhlIHByb3h5IHN1cHBvcnQgdG8gZG8gYSBwcm9wZXIgT0lEIGxlc3MgdGhhbiBPSUQgY29tcGFyZS4KICAgV2UgYWN0dWFsbHkgZG9uJ3QgY2FyZSBhYm91dCB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0LAogICBvbmx5CiAgIHRoYXQgaXQgd2FzIGJlZm9yZSB0aGUgcmVnaXN0ZXJlZCByZWJhc2UKCjIwMTEtMDUtMDkgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBwYXRjaCAzMTQwODMzOiBmcm9tIGpzYWZyYW5lazogZml4IHByb3h5IEdFVE5FWFQKICAgcmVxdWVzdHMKICAgV2hlbiBPSURzIHJlcXVlc3RlZCBhcmUgYmVsb3cgdGhlIHByb3h5IHJlcXVlc3QgcmVtYXAsIHdlIG5lZWQgdG8KICAgbm90CiAgIGluY2x1ZGUgYW55IE9JRHMgdGhhdCBtaWdodCBiZSBpbiB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgb3JpZ2luYWwKICAgT0lECiAgIGFuZCB0aGUgcmVtYXBwZWQgT0lELiBUaGlzIHBhdGNoIGZ1ZGdlcyB0aGUgcmVxdWVzdCBzbyB0aGF0IGl0CiAgIGZpeGVzCiAgIHRoZSByZXF1ZXN0IE9JRCBzbyBpdCdzIGp1c3QgYmVmb3JlIHRoZSByZW1hcHBlZCBwcm94eSByYW5nZS4KCjIwMTEtMDUtMDkgMTQ6MTggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBORVdTOiBQQVRDSCAzMTY3MzI1OiBmcm9tIGtyaXN6dG9mb3JvOiBVQ0QtU05NUC9TeXN0ZW1TdGF0czogYWRkCiAgIHZhcmlhYmxlcwogICB0byByZXBvcnQgY3B1c3RlYWwsIGNwdWd1ZXN0LCBjcHVndWVzdG5pY2UKCjIwMTEtMDUtMDkgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHBhdGNoIDMxODQwMjY6IGZyb20gZWl2bmFlczogQXZvaWQgY29uc3RhbnQgcmVmcmVzaCBvZgogICBpbnRlcmZhY2Ugc3RhdGlzdGljcwoKMjAxMS0wNS0wOSAxMDo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgdGhlIE1TVkMgY29tcGlsZXIuCgoyMDExLTA1LTA5IDEwOjM1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2dldHRpbWVvZmRheS5jOgoKICAgV2luMzIvTVNWQzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMS0wNS0wOSAxMDozMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgYSB5ZWFyLTIwMzggYnVnIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgogICBpcFJvdXRlVGFibGUuCgoyMDExLTA1LTA4IDIwOjAxICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6CgogICBGaXggd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLgogICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKICAgLSBUaGV5IGFyZSBMaW51eCBvbmx5CiAgIC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleQogICBhcmUgcG9wdWxhdGVkCiAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAogICAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuCiAgIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5CiAgIChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pCgoyMDExLTA1LTA3IDE1OjIyICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCgoyMDExLTA1LTA3IDE0OjQ4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmg6CgogICBDSEFOR0VTOiBzbm1wZDogRGVjbGFyZSB0aGUgT0lEIGFyZ3VtZW50IHR5cGUgb2YgTUlCIHJlZ2lzdHJhdGlvbgogICBmdW5jdGlvbnMgYXMgJ2NvbnN0IG9pZCAqJyBpbnN0ZWFkIG9mICdvaWQgKicgc2luY2UgdGhlc2UKICAgZnVuY3Rpb25zIGRvIG5vdCBtb2RpZnkgdGhlIE9JRC4KCjIwMTEtMDUtMDcgMTQ6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgVXNlIHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBmb3IgdGhlICdjYWNoZSBleHBpcmVkJyB2YXJpYWJsZTogY2hhcgogICBpbnN0ZWFkIG9mIGludC4KCjIwMTEtMDUtMDcgMTQ6NDMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMjAxNTEuCgoyMDExLTA1LTA3IDEzOjE1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFdpbjMyOiBpbXByb3ZlZCBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBieSB1c2luZyBMUENUU1RSIGluc3RlYWQKICAgb2YgTFBDU1RSLiBOb3RlOiB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCBVbmljb2RlIGJ1aWxkcyBhcmUKICAgc3VwcG9ydGVkLgoKMjAxMS0wNS0wNyAxMzoxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOgoKICAgQWRkIGZpbGUgZm9yZ290dGVuIGluIHIyMDM1MwoKMjAxMS0wNS0wNiAyMzozMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMxMjU5NjogZnJvbSBmYWJsZWQ4MDogbGlzdGVuIGZvciBuZXRsaW5rCiAgIGNoYW5nZSBldmVudHMgZm9yIHRoZSBhcnAtcmVsYXRlZCB0YWJsZXMKCjIwMTEtMDUtMDYgMTg6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIG9wdGlvbmFsIHN1cHBvcnQgZm9yIGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uCiAgIG9mIGhvc3RuYW1lcwogICAKICAgLSBvcHRpb25hbCBhdCBjb25maWd1cmUgdGltZTogLS13aXRoLWxvY2FsLWRuc3NlYy12YWxpZGF0aW9uCiAgIC0gcmVxdWlyZXMgRE5TU0VDLVRvb2wgdmFsaWRhdGlvbiBsaWJyYXJpZXMKICAgLSBpbml0aWFsIHN1cHBvcnQsIGZvciBzeXN0ZW1zIHdpdGggZ2V0YWRkcmluZm8uIHN1cHBvcnQgZm9yCiAgIGFkZGl0aW9uYWwKICAgcmVzb2x2ZXIgaW50ZXJmYWNlcyBjb21pbmcgc29vbi4KICAgLSBhbHNvIFRPRE86IGZsYWcgZm9yIGlnbm9yaW5nIHZhbGlkYXRvaW4gZXJyb3JzIChsb2cgJiBjb250aW51ZSkKCjIwMTEtMDUtMDYgMTg6MzYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaDoKCiAgIG1vdmUgdW51c2VkIChhbmQgdG9vIGdlbmVyaWMpIHRva2VuIHdpdGhpbiBVQ0RfQ09NUEFUSUJMRSBpZmRlZgogICAKICAgLSBNQVhMQUJFTCBjb25mbGljdHMgd2l0aCA8YXJwYS9uYW1lc2VyLmg+CiAgIC0gYWRkZWQgTkVUU05NUF9NQVhMQUJFTAoKMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGNvbmZpZ3VyZS9NYWtlZmlsZXMgZm9yIEROU1NFQyBsb2NhbCB2YWxpZGF0aW9uIG9wdGlvbgoKMjAxMS0wNS0wNiAxNDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIHJlbW92ZWQgdGhlIGFjY2lkZW50YWwgYnJva2VuIGZlYXR1cmUgcmVxdWlyZSBsaW5lIHRoYXQgZ290IGhhbGYKICAgaW5zZXJ0ZWQKCjIwMTEtMDUtMDYgMTM6NTAgIGR0czEyCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgogICAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwKICAgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcwoKMjAxMS0wNS0wNiAxMjo1OCAgZHRzMTIKCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6CgogICBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMgY29udGFpbmluZyBzcGFjZXMKCjIwMTEtMDUtMDYgMTI6NTcgIGR0czEyCgogICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOgoKICAgUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKCjIwMTEtMDUtMDUgMjE6NDggIG5iYQoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmM6CgogICBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMgbm90IGRlZmluZSBJUF9TRU5EU1JDQUREUikKCjIwMTEtMDUtMDUgMjA6MjkgIG5iYQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDoKCiAgIEZpeCBzcGVsbGluZyBvZiBTT19SRUNWRFNUQUREUgoKMjAxMS0wNS0wNSAxODo1NCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBhcHBzOiBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGltZW91dHMgYW5kIHJldHJpZXMKCjIwMTEtMDUtMDUgMDY6MDcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQogICBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cwogICB0aGF0IGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZSBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkKICAgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLgoKMjAxMS0wNS0wNSAwNTo1NyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMi5zbG4sICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIFJlbW92ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHNvbHV0aW9uIGFuZCBwcm9qZWN0IGZpbGVzIGFnYWluIHNpbmNlCiAgIFZpc3VhbCBTdHVkaW8gMjAxMCByZWZ1c2VzIHRvIGxvYWQgdGhlc2UuCgoyMDExLTA1LTA0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNsZWFuIHRoZSBwZXJsL3B5dGhvbiBmZWF0dXJlIGxlZnRvdmVycwoKMjAxMS0wNS0wNCAyMzo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBmaXggbWliIG1vZHVsZSBpbnZvY2F0aW9uCgoyMDExLTA1LTA0IDIwOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBmaXggaWZkZWYgdHlwbwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggcGVybC9weXRob24gZmVhdHVyZSBkZXBlbmRlbmNpZXMKCjIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIHJldmVydGVkIGF1dG9fbmxpc3QgbWFjcm8gdXNhZ2U7IHRoZSBmdW5jdGlvbiBpcyB1c2VkIGluIGhlYWRlcnMKCjIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgQWRkIGEgLVQgb3B0aW9uIHRvIHJ1biAnbWFrZSB0ZXN0JwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCB0aGUgZW5jb2RlX2tleWNoYW5nZSAuZnQgZmlsZW5hbWUKCjIwMTEtMDUtMDQgMTY6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggdGhlIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlCgoyMDExLTA1LTA0IDE2OjIwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgVHJhcFJlY2VpdmVyIHRvIHRoZSBsaXN0IG9mIHBlcmwgbW9kdWxlcwoKMjAxMS0wNS0wNCAxNDo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICB1c2UgdGhlIG5ld2VyIE5ldC1TTk1QIEFQSXMsIHJhdGhlciB0aGFuIHRoZSBvbGRlciBVQ0Qgb25lcwoKMjAxMS0wNS0wNCAxNDo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgU0VUIGNvZGUgd2hlbiB1bmRlciAtLXJlYWQtb25seSBtb2RlCgoyMDExLTA1LTA0IDE0OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmM6CgogICByZXF1aXJlIGNoZWNrX3ZiX3VpbnQKCjIwMTEtMDUtMDQgMTQ6NDEgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jLAogICAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsICAgCiAgICAgIHB5dGhvbi9uZXRzbm1wL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgbGFzdCBvZiB0aGUgcGVybC11c2VkIGZlYXR1cmUgZnVuY3Rpb25zCgoyMDExLTA1LTA0IDE0OjQwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIHN0YXJ0ZWQgdGhlIGZpbmFsIHNldCBvZiBmdW5jdGlvbiByZW1vdmFscyBmb3IgZmVhdHVyZXMgcmVxdWlyZWQKICAgYnkgcGVybC9weXRob24KCjIwMTEtMDUtMDQgMTQ6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmk6CgogICBhZGRlZCB0aGUgbmV0LXNubXAtZmVhdHVyZXMuaCBoZWFkZXIKCjIwMTEtMDUtMDQgMTQ6MzkgIGhhcmRha2VyCgogICAqICBwZXJsL09JRC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDoKCiAgIEFkZGVkIHBlcmwgZmVhdHVyZSByZXF1aXJlbWVudHMKCjIwMTEtMDUtMDQgMTQ6MzkgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIHBlcmwvQVNOL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL09JRC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6CgogICBob3BlZnVsbHkgd29ya2luZyBydWxlcyB0byBhcHBseSBmZWF0dXJlIHJlcXVpcmVtZW50cyB0byBwZXJsIGFuZAogICBweXRob24KCjIwMTEtMDUtMDQgMTQ6MzggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtb3JlIGNoYW5nZXMgdG8gcmVtb3ZlIHVubmVlZGVkIGZ1bmN0aW9ucyBwcmltYXJpbHkgd2hlbiB3cml0ZQogICBtb2RlIGlzIHR1cm5lZCBvZmYKCjIwMTEtMDUtMDQgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBjaGFuZ2UgdGhlIHdhbnQgaW52b2NhdGlvbiB0byBvbmx5IGRlZmF1bHQgdG8gZXhjbHVkZSBleHRlcm5hbAogICBob29rcwoKMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgoKICAgc2VhcmNoIHRocm91Z2ggLnhzIGZpbGVzIGZvciBmdW5jdGlvbiBpbnZvY2F0aW9ucwoKMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZm9yZ290IGEgc2VtaWNvbG9uCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmM6CgogICBpcXVlcnkgcGR1IHNlc3Npb25zIGFyZSBvbmx5IG5lZWRlZCBpbiB3cml0ZSBtb2RlLgoKMjAxMS0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmZWF0dXJlIGRldGVjdGlvbiBvZiBzb21ldGltZXMtYnVpbHQgYXBwbGljYXRpb25zCgoyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICB1c2UgdGhlIGZlYXR1cmVfdW51c2VkIG1hY3JvIGZvciBtYWtpbmcgYW4gZW1wdHkgZmlsZSBmb3IKICAgY29uc2lzdGVuY3kKCjIwMTEtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQW5vdGhlciBzd2VlcCBmb3IgdW51c2VkIGZ1bmN0aW9ucyB3aGVuIHJlYWRfb25seSBtb2RlIGlzIHR1cm5lZAogICBvbgoKMjAxMS0wNS0wNCAxNDozNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgbWFyayBhIHNsZXcgb2YgZnVuY3Rpb25zIGFzIGZlYXR1cmVzIHRoYXQgYXJlIG9ubHkgbmVlZGVkIHdpdGgKICAgd3JpdGVfc3VwcG9ydAoKMjAxMS0wNS0wNCAxNDozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgoKICAgcnVuIGdyZXAgd2l0aCAtbgoKMjAxMS0wNS0wNCAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZlYXR1cml6ZSBuZXRzbm1wX3NvY2thZGRyX3NpemUKCjIwMTEtMDUtMDQgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlbW92ZSBhIGZlYXR1cmVfcmVxdWlyZSBub3QgYWN0dWFsbHkgbmVlZGVkLgoKMjAxMS0wNS0wNCAxNDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIG1hcmsgU1VCQ09OVEFJTkVSX0ZJTkQgYXMgYSBmZWF0dXJlCgoyMDExLTA1LTA0IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdGhlIHJvdyBjcmVhdGlvbiBBUEkgaXMgb25seSB1c2VkIGluIHRoZSBUU00gaW1wbGVtZW50YXRpb24KCjIwMTEtMDUtMDQgMTQ6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICB0aGUgbmV3ZXIgY29udGV4dCBlbmdpbmVJRCBwcm9iaW5nIGlzIG9ubHkgbmVlZGVkIGlmZiBUU00gaXMgaW4KICAgdXNlCgoyMDExLTA1LTA0IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgZml4IGFuIGlmZGVmIHR5cG8KCjIwMTEtMDUtMDQgMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBtb3ZlZCBmZXRhdXJlIGNoaWxkX29mIHN0YXRlbWVudHMgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZQoKMjAxMS0wNS0wNCAxNDozMCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBtYXJrZWQgYSBjb3VwbGUgb2YgcmFyZWx5IHVzZWQgY29udGFpbmVyIGZ1bmN0aW9ucy4KCjIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgc3BsaXQgb3V0IHRoZSBwcmVmaXhfaW5mbyBmZWF0dXJlIGludG8gc3ViLWZlYXR1cmVzCgoyMDExLTA1LTA0IDE0OjI5ICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jOgoKICAgbWFyayB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIGFzIHVubmVlZGVkCgoyMDExLTA1LTA0IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jOgoKICAgZml4IGEgY2hpbGRfb2Ygc3RhdGVtZW50IHdpdGggYSBjb3B5L3Bhc3RlIGVycm9yCgoyMDExLTA1LTA0IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICB0aGUgY29udGFpbmVyIHJvdy1yZW1vdmUgaXMgb25seSBuZWVkZWQgaWYgdGhlIHRkYXRhIHJlbW92ZV9yb3cKICAgaXMgbmVlZGVkCgoyMDExLTA1LTA0IDE0OjI4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgZmVhdHVyZSBtYXJraW5nIG9mIHVudXNlZCB0ZGF0YSBmdW5jdGlvbnMKICAgdGFibGVfdGRhdGFfZGVsZXRlX3RhYmxlCiAgIHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUKICAgdGFibGVfdGRhdGFfcmVtb3ZlX3JvdwoKMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jOgoKICAgcmVtb3ZhbCBvZiBzb21lIHJhcmVseSB1c2VkIGZ1bmN0aW9ucwogICB0YWJsZV9zZXRfbXVsdGlfYWRkX2RlZmF1bHRfcm93CiAgIHRhYmxlX2RhdGFzZXRfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUKCjIwMTEtMDUtMDQgMTQ6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgQWRkZWQgYSBkZWZpbml0aW9uIHRvIGluY29ycG9yYXRlIHJlYWRfb25seS9ub3RpZnlfb25seQoKMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBhZGRlZCBhIG1pc3NpbmcgZmVhdHVyZSBkZWZpbml0aW9uIGxpbmUKCjIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkZWQgYmFjayBpbiBtaXNzaW5nIG1pYmdyb3VwIGZlYXR1cmUgZGVmaW5pdGlvbiBsaXN0CgoyMDExLTA1LTA0IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEluY2x1ZGUgdGhlIG9yaWdpbmFsIGJhc2UgZmxhZ3MgdG8gZW5zdXJlIC0td2l0aC1kZWZhdWx0cyBnZXRzCiAgIHBpY2tlZCB1cAoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBmaXggdXNhZ2UKCjIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgQWRkZWQgYSAtYiBmbGFnIGZvciBiYXNlIGFyZ3VtZW50cyB0byBzdGFydCBmcm9tCgoyMDExLTA1LTA0IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGRlZmF1bHQgdG8gYSBsaW5lYXIgc2VhY2ggb2Ygc2l6ZSB0ZXN0cywgcmF0aGVyIHRoYW4gZXhwb25lbnRpYWwKCjIwMTEtMDUtMDMgMTg6NTUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucwogICBjb25zaXN0ZW50bHkuCiAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZHMgd2l0aCBWaXN1YWwgU3R1ZGlvIDIwMTAuCgoyMDExLTA1LTAzIDE1OjI5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0CiAgIG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuCgoyMDExLTA1LTAyIDExOjIyICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdwogICBiZSB1c2VkIGluIHRoZSBNaW5HVyBlbnZpcm9ubWVudC4KCjIwMTEtMDQtMjkgMTE6MTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UgY29kZSBjb21tZW50cyBpbgogICBzbm1wbGliL3dpbnNlcnZpY2UuYy4KCjIwMTEtMDQtMjkgMDA6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBub3RlIGFib3V0IHRoZSBuZXcgdGltaW5nIGZ1bmN0aW9uCgoyMDExLTA0LTI5IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFVwZGF0ZSB0aGUgbWFudWFsIHBhZ2UgdG8gcmVmbGVjdCB0aGUgbmV3IHRpbWluZyBvcHRpb25zCgoyMDExLTA0LTI5IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBiZXR0ZXIgZG9jdW1lbnRhdGlvbgoKMjAxMS0wNC0yOSAwMDoxNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jOgoKICAgdXNlIHRoZSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmb3IgcGFyc2luZwogICBmcmVxdWVuY2llcy90aW1lCgoyMDExLTA0LTI5IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOgoKICAgZml4IHBkdSBidWlsZGluZyB0ZXN0cyB1bmRlciB2YXJpb3VzIGRpc2FibGVkIG1vZGVzCgoyMDExLTA0LTI5IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOgoKICAgZG9uJ3QgdHJ5IHRvIGJ1aWxkIHRoZSBHRVQgcGR1IHVuZGVyIG5vdGlmeV9vbmx5CgoyMDExLTA0LTI5IDAwOjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgZml4IGEgYnVnIHdpdGggbm8tc3VmZml4IHN0cmluZ3MgYW5kIHVzZSBhIGNvbnN0IGlucHV0IHN0cmluZwoKMjAxMS0wNC0yOSAwMDoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDEwbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzX2NsaWIuYzoKCiAgIEEgbmV3IHVuaXQgdGVzdCBmb3IgdGhlIHRpbWUgY29udmVyc2lvbiByb3V0aW5lCgoyMDExLTA0LTI5IDAwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgdXNlIHRoZSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbiBmb3IgY29tcHV0aW5nCiAgIGludGVydmFsIHBlcmlvZHMKCjIwMTEtMDQtMjkgMDA6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBBZGRlZCBhIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9ucyB0byBjb252ZXJ0LCBlLmcuLAogICAxaCB0byAzNjAwCgoyMDExLTA0LTI5IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgY29kZSB0byBidWlsZC9wYXJzZSBHRVQvZXRjIHJlcXVlc3RzIHdoZW4gTk9USUZZX09OTFkgaXMKICAgdHVybmVkIG9uLgoKMjAxMS0wNC0yNyAyMTozMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSB0aGUgTkVXUyB0byByZWZsZWN0IHRoZSBuZXcgLS1lbmFibGUtcmVhZC1vbmx5IGFuZAogICAtLWVuYWJsZS1ub3RpZnktb25seQoKMjAxMS0wNC0yNyAyMTozMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIG1pbm9yIGltcHJvdmVtZW50cyBmb3Igcm9ubHkgdnMgcndyaXRlIGhhbmRsaW5nCgoyMDExLTA0LTI3IDIxOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgc3RpbGwgZW5hYmxlIFJPTkxZIHdoZW4gUldSSVRFIGlzbid0IHBvc3NpYmxlCgoyMDExLTA0LTI3IDIxOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGZpeCBHRVQgc3VwcG9ydCB3aGVuIG5vX3dyaXRlIGlzIGVuYWJsZWQKCjIwMTEtMDQtMjcgMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBtYXJrIGEgZnV0dXJlIG1vZGlmaWNhdGlvbiBuZWVkIGluIGEgY29tbWVudAoKMjAxMS0wNC0yNyAyMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaXggaGFuZGxpbmcgb2Ygbm9fd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jOgoKICAgZG9uJ3Qgb3BlbiBhbnkgbGlzdGVuaW5nIHRyYW5zcG9ydHMgd2hlbiBub3RpZnktb25seSBpcyBzcGVjaWZpZWQKCjIwMTEtMDQtMjcgMjE6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBzZXQgdGhlIG5vLWxpc3RlbiBhbmQgcmVhZC1vbmx5IGZsYWdzIHdoZW4gLS1lbmFibGUtbm90aWZ5LW9ubHkKICAgaXMgc2V0CgoyMDExLTA0LTI3IDIxOjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmFuIGF1dG9oZWFkZXIKCjIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIGltcGxlbWVudCB0aGUgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCBpbiB0aGVzZSB0cmFuc3BvcnRzCgoyMDExLTA0LTI3IDIxOjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMTEtMDQtMjcgMjE6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgbW92ZSB0aGUgcmVhZC1vbmx5IGZsYWcgZGVmaW5pdGlvbiBiZWxvdyB0aGUgbm90aWZ5LW9ubHksIHNpbmNlCiAgIG5vdGlmeS1vbmx5IG5lZWRzIHRvIGltcGx5IHJlYWQtb25seQoKMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERlZmluZWQgYSBuZXcgLS1lbmFibGUtbm90aWZ5LW9ubHkgZmxhZyBmb3IgYnVpbGRpbmcgYSB0b29sc2V0CiAgIHRoYXQgb25seSBhbGxvd3MgZm9yIG5vdGlmaWNhdGlvbnMgd2l0aCBubyByZWFkL3dyaXRlIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBEZWZpbmVkIGEgbmV3IC0tbm8tbGlzdGVuIGZsYWcgdG8gcmVtb3ZlIGxpc3RlbmluZyBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIHRoZSBkaXNtYW4gc2NoZWR1bGUgbWliIGlzIG9ubHkgdXNlZnVsIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uCgoyMDExLTA0LTI3IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4uaDoKCiAgIHRoZSBkaXNtYW4gc2NoZWR1bGUgbWliIGlzIG9ubHkgdXNlZnVsIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uCgoyMDExLTA0LTI3IDIxOjI4ICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGZpbmlzaGVkIG5vX3dyaXRlIHN1cHBvcnQgZm9yIGNvbW1vbiBpbmNsdWRlZCB0YWJsZXMKCjIwMTEtMDQtMjcgMjE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQWRkIGJhY2sgaW4gJ25ldHNubXBfc2V0X3Jvd19jb2x1bW4nIHdoZW4gbm9fd3JpdGUgc3VwcG9ydCBpcwogICBlbmFibGVkCiAgIFRoaXMgZnVuY3Rpb24gaXMgYSBnZW5lcmljIGRhdGEgbWFuaXB1bGF0aW9uIGZ1bmN0aW9uLCBub3QgU0VUCiAgIHNwZWNpZmljCgoyMDExLTA0LTI3IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGRvbid0IHVzZSBtYXJrX3Jvd19jb2x1bW5fd3JpdGFibGUgd2hlbiByZWFkLW9ubHkgc3VwcG9ydCBpcwogICBlbmFibGVkCgoyMDExLTA0LTI3IDIxOjI2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgZml4IG5vX3dyaXRlIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgZml4IG5vX3dyaXRlIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIERvbid0IGZyZWUgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duCiAgIGl0CgoyMDExLTA0LTI2IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9naXR0b29scywgbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOgoKICAgZ2l0IGJhc2gtc2hlbGwgZnVuY3Rpb25zIHRvIGVuYWJsZSBicmFuY2ggc3dpdGNoaW5nIGFuZCBleHRlcm5hbAogICBidWlsZGluZwogICBUaGVzZSBsb2NhbCBzaGVsbCBmdW5jdGlvbnMgKHNubXBjb25maWd1cmUgYW5kIHNubXBtYWtlKSBsZXQgeW91CiAgIGNvbmZpZ3VyZSBhbmQgYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGluIGV4dGVybmFsCiAgIGRpcmVjdG9yaWVzCiAgIHRoYXQgYXJlIGF1dG8tY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZXhpc3RpbmcgYnJhbmNoIG5hbWUgKHdpdGgKICAgYW4KICAgb3B0aW9uYWwgc3VmZml4KS4gVGhpcyBsZXRzIHlvdSBydW4gJ3NubXBtYWtlJyBmcm9tIHdpdGhpbiB0aGUKICAgc291cmNlCiAgIGRpcmVjdG9yeSBhbmQgaGF2ZSBpdCBhY3R1YWxseSBleHRlcm5hbGx5IGtlZXAgdHJhY2sgb2YgbW9kaWZpZWQKICAgZmlsZXMsIGV0Yywgc28gYnVpbGRpbmcgaW4gbXVsdGlwbGUgYnJhbmNoZXMgY2FuIGJlIGRvbmUgZnJvbSBhCiAgIHNpbmdsZQogICBnaXQgY2hlY2tvdXQuCgoyMDExLTA0LTI1IDIwOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgY2xlYW4gdXAgdGhlIGl0ZXJhdG9ycwoKMjAxMS0wNC0yNSAyMDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGZyZWUgdmFyYmluZHMgYWZ0ZXIgc2VuZGluZwoKMjAxMS0wNC0yNSAxODo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbiBiZWNhdXNlIHRoZSBjb21waWxlciBjb21wbGFpbmVkCiAgIGFib3V0IGl0LgoKMjAxMS0wNC0yNSAxODo0NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuCgoyMDExLTA0LTIzIDE0OjMxICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrCgoyMDExLTA0LTIzIDE0OjA1ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgTW92ZSBwb2ludGVyIGRlcmVmZXJlbmNlIHRvIGFmdGVyIHRoZSBjaGVjayBmb3Igc3VjY2Vzc2Z1bAogICBhbGxvY2F0aW9uIG9mIHRoZSBwb2ludGVyCgoyMDExLTA0LTIzIDA4OjIwICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIzIDA4OjE2ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0yMyAwODowNiAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZQoKMjAxMS0wNC0yMyAwNzo1NSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZQoKMjAxMS0wNC0yMiAxOTozNSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIyIDE5OjMwICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIyIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gd2hpY2ggbW9kdWxlIGlzIHJlcXVpcmVkIHdoZW4gYnVpbGRpbmcgdG8gZ2V0IHRoZSBkZWxpdmVyCiAgIHN1cHBvcnQKCjIwMTEtMDQtMjIgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBkZWxldGVkIGFuIHVubmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnQKCjIwMTEtMDQtMjIgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBwcm9wZXJseSB1cGRhdGUgdGhlIG1heCBjb3VudCBpbiB0aGUgb3V0Z29pbmcgbm90aWZpY2F0aW9ucwoKMjAxMS0wNC0yMiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGJldHRlciBwYWNrZXQgZXN0aW1hdGlvbiB0byBlbnN1cmUgd2UgZG9uJ3Qgb3ZlcnJ1bi4KCjIwMTEtMDQtMjIgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBlc3RpbWF0ZSB0aGUgcGFja2V0IHNpemUgYW5kIGJyZWFrIHRoZSBub3RpZmljYXRpb24gdXAgYmFzZWQgb24KICAgaXQKCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICB0cmFuc2Zvcm0gdGhlIG5vdGlmaWNhdGlvbiBzZW5kaW5nIGludG8gYSBsYXJnZXIgbG9vcCBmb3IgbGF0ZXIKICAgbXVsdGktbm90aWZzCgoyMDExLTA0LTIyIDE2OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBmZWF0dXJlIG1hcmtpbmcvc2VsZWN0aW9uCgoyMDExLTA0LTIyIDE2OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiB0aGUgbmV3IGRlbGl2ZXJ5IGJ5IG5vdGlmaWNhdGlvbnMKCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCB0aGUgbWluaW1hbGlzdCBzdXBwb3J0CgoyMDExLTA0LTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBuZXcgZGVsaXZlckJ5Tm90aWZ5IGNvbmZpZyB0b2tlbnMKCjIwMTEtMDQtMjIgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBhbGxvdyBydW4gdGltZSBtb2RpZmljYXRpb25zIG9mIHRoZSBPSURzIHRvIHVzZQoKMjAxMS0wNC0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBhZGQgY29uZmlnIGZsYWdzIHRvIG5vdCBpbmNsdWRlIHRoZSBwZXJpb2QgY29uZmlnIGFuZCBtc2cgY291bnQKICAgdmFsdWVzCgoyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgaW5jbHVkZSB0aGUgcGVyaW9kaWMgY291bnQsIHRoZSBtZXNzYWdlIG51bWJlciBhbmQgdGhlIG1heAogICBtZXNzYWdlIG51bWJlcgoKMjAxMS0wNC0yMiAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGRlbGV0ZWQgZGVidWdnaW5nIGNvbW1lbnQKCjIwMTEtMDQtMjIgMTY6MjkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OgoKICAgTW92ZSB0aGUgbm90aWZpY2F0aW9uIGRlZmluaXRpb24gdG8gd2l0aGluIHRoZSBzdWItbWliCgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVsZXRlIGFuIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0yMiAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGxvYWQgdGhlIE1JQiBpbnRvIHRoZSBkZWZhdWx0IHNldAoKMjAxMS0wNC0yMiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDoKCiAgIEEgbmV3IG1pYiB0byBob2xkIHRoZSBwZXJpb2RpYyBub3RpZnkgb2JqZWN0cwoKMjAxMS0wNC0yMiAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGZpbGwgb3V0IHRoZSBjb25maWcgZnJlZSByb3V0aW5lCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgcHJvcGVybHkgbW9uaXRvciB0aGUgd2hvbGUgY29udGFpbmVyCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIHBhcnNlIHRoZSBjb25mIGZpbGVzIGFuZCBjcmVhdGUgYW5kIGluc2VydCBvYmplY3RzIGludG8gdGhlCiAgIGNvbnRhaW5lcgoKMjAxMS0wNC0yMiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGRlZmluZWQgYSBjb250YWluZXIgdG8gc3RvcmUgYSBsaXN0IG9mIGRlbGl2ZXIgb2JqZWN0cyBpbgoKMjAxMS0wNC0yMiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGFkZGVkIGEgbmV4dF9ydW4gdGltZXN0YW1wCgoyMDExLTA0LTIyIDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgYWN0dWFsbHkgc2VuZCBhIG5vdGlmaWNhdGlvbiB3aXRoIHRoZSByZXN1bHRzCgoyMDExLTA0LTIyIDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgbWFrZSB0aGUgd2FsayBvbiB0aGUgdGVzdCBvYmplY3QgZnVuY3Rpb24uCgoyMDExLTA0LTIyIDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgY3JlYXRlIGEgbWF4IHBhY2tldCBzaXplIGNvbmZpZyB0b2tlbiBhbmQgcGFyc2UgaXQKCjIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgbWluaW1hbCBzdGFydGluZyB0ZXN0IG9iamVjdAoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBhZGRlZCBhIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgdGltZSB1bnRpbCB0aGUgbmV4dCBydW4KCjIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICByZW1vdmUgbGVmdCBpbiB0ZW1wbGF0ZSBsaW5lCgoyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIHVzZSBhbiBhbGFybSBjYWxsYmFjayBwcm90b3R5cGUgZm9yIGV4ZWN1dGUKCjIwMTEtMDQtMjIgMTY6MjQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyLCBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgYmVnaW5uaW5nIHRlbXBsYXRlIGNvZGUgZm9yIGRlbGl2ZXJ5IG9mIGRhdGEgYnkgbm90aWZpY2F0aW9ucwoKMjAxMS0wNC0yMiAwOToxMyAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIyIDA5OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzCgoyMDExLTA0LTIyIDA5OjAzICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTE5IDA4OjM4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCB3aW4zMi93aW4zMi5zbG46CgogICBBZGRlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZSBmb3IgYnVpbGRpbmcKICAgdGhlIE5ldC1TTk1QIGxpYnJhcnkgYXMgYSBzdGF0aWMgbGlicmFyeS4gQm90aCB0aGUgV2luMzIgYW5kIHRoZQogICB4NjQgY29uZmlndXJhdGlvbnMgYXJlIGluY2x1ZGVkLgoKMjAxMS0wNC0xOSAwNzo1NyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTEtMDQtMTkgMDc6MzkgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvajoKCiAgIE1vcmUgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QgZmlsZSBjbGVhbnVwLgoKMjAxMS0wNC0xOSAwNjo1NyAgYnZhc3NjaGUKCiAgICogd2luMzIvYmluOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMS0wNC0xOCAxNTozNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6CgogICBDbGVhbmVkIHVwIFdpbjMyIFZTMjAwNSBwcm9qZWN0IGZpbGVzIC0gcmVtb3ZlZCBzdXBlcmZsdW91cwogICBsaWJyYXJ5IHJlZmVyZW5jZXMuCgoyMDExLTA0LTE4IDE1OjI1ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIEFkZGVkIHg2NCBjb25maWd1cmF0aW9ucy4KCjIwMTEtMDQtMTggMTU6MTQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYjoKCiAgIEFub3RoZXIgV2luMzItcmVsYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0IHVwZGF0ZS4KCjIwMTEtMDQtMTggMTU6MTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgQWRkZWQgd2luMzJkbGwtcmVsYXRlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24KICAgZmlsZXMuCgoyMDExLTA0LTE4IDEzOjM3ICBidmFzc2NoZQoKICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgd2luMzIvbGlic25tcCwgd2luMzIvbGlic25tcF9kbGwsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMsIHdpbjMyL25ldC1zbm1wLCB3aW4zMi9uZXRzbm1wbWlicywgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YSwgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgIAogICAgICAgd2luMzIvc25tcG5ldHN0YXQsIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCAgIAogICAgICB3aW4zMi9zbm1wd2FsazoKCiAgIEFkZGVkICoudmNwcm9qLioudXNlciBhbmQgeDY0IHRvIHRoZSB3aW4zMiBTdWJ2ZXJzaW9uIGlnbm9yZQogICBsaXN0cy4gUmFuIHRoZXNlIHRocm91Z2ggTENfQUxMPUMgc29ydCAtZnUgdG9vLgoKMjAxMS0wNC0xOCAxMjoxMCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCgoyMDExLTA0LTE3IDIwOjU2ICBkdHMxMgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdAogICB3aGVyZSBhdmFpbGFibGUgKCpCU0QpCgoyMDExLTA0LTE1IDEzOjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRAogICBwcmVmaXggbGVuZ3RoCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lECiAgIHByZWZpeCBsZW5ndGgKCjIwMTEtMDQtMTUgMTM6MTcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSEVTOiAzMjA1ODExOiBPcHRpb24gdG8gc2tpcCBmZC9sb29wL3JhbQogICBkZXZpY2VzIGluIGRpc2tJT1RhYmxlCgoyMDExLTA0LTE0IDIxOjMxICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMKCjIwMTEtMDQtMTQgMjE6MTAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZiAnd2hpbGUgKGZhbHNlKScKICAgYmxvY2tzCgoyMDExLTA0LTE0IDIwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2Ygbm9uLXRhYmxlCiAgIG9iamVjdHMgbmFtZWQgZm9vVGFibGUKCjIwMTEtMDQtMTQgMjA6NDQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQgZW51bWVyYXRpb25zIGluCiAgIG5vdGlmaWNhdGlvbiB2YXJiaW5kcwoKMjAxMS0wNC0xMiAyMDowMSAgbmJhCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYgoKMjAxMS0wNC0xMiAxOTo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKICAgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgc3BlY2lmaWVkLgoKMjAxMS0wNC0xMiAxOTo1MCAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCgoyMDExLTA0LTA5IDIxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jOgoKICAgUmVtb3ZlIGJvZ3VzIChMaW51eCkgZGVmaW5lcwoKMjAxMS0wNC0wOSAyMTo1NiAgbmJhCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCgoyMDExLTA0LTA5IDIwOjA4ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCBjb25maWd1cmUsIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBCaWxsIEZlbm5lcnMgcGF0Y2ggdG8gbWFrZSBESVNNQU4gUElORyBhbmQgVFJBQ0VST1VURSBNSUJTCiAgIGNvbXBpbGUgdW5kZXIgTGludXgKCjIwMTEtMDQtMDkgMjA6MDQgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOgoKICAgU29sYXJpcyBzdXBwb3J0IGZvciBTQ1RQLU1JQgoKMjAxMS0wNC0wOSAxOTo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZCBTWVNWIChzdWNoIGlzIExpbnV4KQoKMjAxMS0wNC0wMSAwMToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZHRsczogb3ZlcmhhdWwgb2YgZGVidWcKICAgCiAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eQogICBmb3IgYmFzaWMgZHRsc3VkcCB0b2tlbgogICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbgoKMjAxMS0wNC0wMSAwMDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZHRsczogY2xlYW4gdXAgY2xvc2U7IGNhdGNoCiAgICdjb25uZWN0Jy8nZGlzY29ubmVjdCcKICAgCiAgIGNvbm5lY3QgPSB3ZSBnZXQgc3VjY2Vzc2Z1bGx5IGRlY29kZWQgc25tcCBkYXRhCiAgIGRpc2Nvbm5lY3QgPSAwIGJ5dGUgcmVhZCwgc3NoIHNodXRkb3duIGZsYWcgc2V0CiAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQKICAgY2hlY2sgZm9yIG51bGwgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nCiAgIGNsb3NlIGhhbmRsaW5nOgogICAtIG9ubHkgc2VuZCBxdWV1ZWQgZGF0YSBpZiB3ZSBnb3QgdG8gY29ubmVjdGVkIHN0YXRlCiAgIC0gc2VyaW91c2x5IHJlZHVjZSB0aW1lb3V0IHRvIHdhaXQgZm9yIGp1bmsgcmVhZC4gaSB0aGluawogICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIKICAgLSByZXR1cm4gZWFybHkgaWYgY2FjaGVwIGlzIE5VTEwsIHNvIHdlIGRvbid0IGhhdmUgdG8gdGVzdCBpdAogICByZXBlYXRlZGx5CiAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbAoKMjAxMS0wMy0zMSAwNToxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbWFrZSB0cnVuayBhbmQgdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZAogICAKICAgbW9zdGx5IGNoYW5nZXMgaW4gZGVidWcsIGNvb2tpZSB0cmFja2luZwoKMjAxMS0wMy0yNyAxMTowOCAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBTaW1wbGlmeSBhcnJheSByZXNpemluZyBzb21ld2hhdCBmdXJ0aGVyCgoyMDExLTAzLTI3IDEwOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIERvIG5vdCBhc3NpZ24gbmV3X2RhdGEgaWYgdGhlIHZhbHVlIHdvbid0IGJlIHVzZWQuCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgoyMDExLTAzLTI3IDEwOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2xlYXIgYSBjaHVuayBvZiBtZW1vcnkgaWYgdGhlIG5leHQgYWN0aW9uCiAgIG9uIGl0IGlzIHRvCiAgIGZpbGwgaXQgc28gdXNlIG1hbGxvYyBpbnN0ZWFkIG9mIGNhbGxvYy4KCjIwMTEtMDMtMjcgMTA6MDkgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQ29udGFpbmVyQmluYXJ5QXJyYXkgcmVhbGx5IGNhbid0IGhvbGQgYW55dGhuZyBidXQgcG9pbnRlcnMgYW5kCiAgIHRoYXQgbWVhbnMgdGhlCiAgIGRhdGFfc2l6ZSBmaWVsZCBpcyB1bm5lY2Vzc2FyeSBzbyBJIHJlbW92ZWQgaXQuCgoyMDExLTAzLTI2IDE5OjU1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlCgoyMDExLTAzLTI2IDA4OjA3ICBtYWdmcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIFVzZSB0aGUgcmlnaHQgZmVhdHVyZSBtYWNybyBpbiBvcmRlciB0byBtYWtlIGJ1aWxkcyB3aXRoCiAgIC0tZW5hYmxlLWlwdjYgLS13aXRoLW91dC10cmFuc3BvcnRzPVVEUElQdjYgc3VjY2VlZC4KCjIwMTEtMDMtMjYgMDg6MDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb3BpZXMgb2YgZnVuY3Rpb25zCgoyMDExLTAzLTI1IDIwOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHR3ZWFrIGRlYnVnIG1lc3NhZ2UKCjIwMTEtMDMtMjUgMjA6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHVwZGF0ZSBjZXJ0IHRva2VuIGhhbmRsaW5nCiAgIAogICAtIHJlbW92ZSBkZWZYNTA5IGNlcnQgdG9rZW5zIChzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgYmVmb3JlCiAgIDUuNikKICAgLSB3YXJuaW5ncyBmb3Igb3VyL3RoZWlyIHRva2VucywgcmVjb21tZW5kIHVzaW5nIGxvY2FsL3BlZXIKCjIwMTEtMDMtMjUgMjA6MzEgIHJzdG9yeQoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgbWVyZ2UgbmV0c25tcF9kdGxzdWRwNiBpbnRvIG5ldHNubXBfZHRsc3VkcAogICAKICAgdXNlIGFkZHIgc2l6ZSB0byB0ZWxsIHRoZW0gYXBhcnQKCjIwMTEtMDMtMjUgMjA6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBsb2cgKG9uY2UpIHdhcm5pbmcgd2hlbiBkZXByZWNhdGVkIGZfY3JlYXRlX2Zyb21fdHN0cmluZwogICB0cmFuc3BvcnQgZnVuY3Rpb24gdXNlZAoKMjAxMS0wMy0yNSAyMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmM6CgogICByZWR1Y2UgY2FzdGluZzsgbWFrZSBzdXJlIHRvIGZyZWUgdGhlIHJpZ2h0IHBvaW50ZXIKCjIwMTEtMDMtMjUgMjA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIHJlZHVjZSBjYXN0aW5nCgoyMDExLTAzLTI0IDA2OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUmVwbGFjZSBhIHZhcmlhYmxlIHdpdGggYSBjb25zdGFudC4gTWFrZSBvbmUgbW9yZSBvaWQgY29uc3QuCgoyMDExLTAzLTE3IDIxOjA5ICBuYmEKCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjoKCiAgIEZvcm1hdHRpbmcgYm90Y2gKCjIwMTEtMDMtMTcgMjE6MDcgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCByZXF1aXJlZCBtaWJzCgoyMDExLTAzLTE3IDIxOjA1ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IFJGQyBtaWJzCgoyMDExLTAzLTE1IDEwOjMxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4KCjIwMTEtMDMtMTUgMTA6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBTaW1wbGlmaWVkIHIxOTU5NCAobGVhay1hdC1leGl0IGZpeCkuCgoyMDExLTAzLTE1IDA5OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjIwMTEzLgoKMjAxMS0wMy0xNCAwOTozMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBtYWluIGFnZW50IHNlbGVjdCBjYWxsIHRvIHVzZSB0aGUgcmVuYW1lZCBBUEkgcm91dGluZS4KCjIwMTEtMDMtMTMgMjA6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvCiAgIGxpbmUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgQVBJLgoKMjAxMS0wMy0xMiAwNjo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0IGluc3RlYWQgb2YgY2FsbG9jCiAgIAogICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIKCjIwMTEtMDMtMTIgMDU6NDcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20KICAgU3RlcGhlbiBIZW1taW5nZXIKICAgCiAgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7CiAgIHN1YmplY3QKICAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrCgoyMDExLTAzLTExIDE0OjQzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZSBvcGVuc3NsIGVycm9yIGNhc2VzIHdoZXJlIHdlIGNoZWNrIGZvcgogICBsb2NhbCBjZXJ0CgoyMDExLTAzLTExIDEyOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBNaW5HVzogZHNrVGFibGU6IFJlcG9ydCB6ZXJvIGZvciB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mCiAgIHJhbmRvbSBkYXRhLgoKMjAxMS0wMy0xMSAwODo0MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJ1aWxkcyB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZQogICBsb2NhbHRpbWVfcikuCgoyMDExLTAzLTExIDAzOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoKMjAxMS0wMy0xMCAyMToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcgZm9yIGNlcnRTZWNOYW1lCiAgIHRva2VuCgoyMDExLTAzLTEwIDIwOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3BlbGxpbmcgZml4IGluIGEgc291cmNlIGNvZGUgY29tbWVudDogbWVzc2dlcyAtPiBtZXNzYWdlcy4KCjIwMTEtMDMtMTAgMTk6NTUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWlub3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uCiAgIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLgoKMjAxMS0wMy0xMCAxOTo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzIwMzgwNjogQXZvaWQgdGhhdCB0aGUgbWFpbiBhZ2VudAogICBwcm9jZXNzaW5nIGxvb3AgLSB3aGVuIHVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUKICAgZGVzY3JpcHRvcnMgLSBjYW4gY2F1c2UgbWVtb3J5IGNvcnJ1cHRpb24gYnkgaW52b2tpbmcgc2VsZWN0KCkuCgoyMDExLTAzLTEwIDE5OjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbgogICBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpLgoKMjAxMS0wMy0xMCAxODo1NSAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA5bGFyZ2VfZmRfc2V0X2NsaWIuYzoKCiAgIEFkZGVkIGEgbWluaW1hbCB1bml0IHRlc3QgZm9yIG5ldHNubXBfbGFyZ2VfZmRfc2V0LgoKMjAxMS0wMy0xMCAxODo1MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNYWtlCiAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlCiAgIGRlc2NyaXB0b3JzLgoKMjAxMS0wMy0xMCAxNTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIFRaCiAgIG9mZnNldHMKCjIwMTEtMDMtMTAgMTU6NDAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZToKCiAgIElnbm9yZSBvYmplY3QgZmlsZXMgYW5kIGxpYnJhcmllcwoKMjAxMS0wMy0xMCAxNTowNSAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzOgoKICAgSWdub3JlIG9iamVjdCBmaWxlcyBhbmQgbGlicmFyaWVzCgoyMDExLTAzLTEwIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIG1ha2UgdmFyaWFibGUgbmFtZXMgbWF0Y2gKCjIwMTEtMDMtMTAgMTQ6MjggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jOgoKICAgRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMS0wMy0xMCAxNDoyNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBmaXhlZCBpbnN0YWxsYXRpb24gdmFyaWFibGVzIGZvciB0aGUgb3B0aW9uYWwgU0VUIHByb2dyYW1zCgoyMDExLTAzLTA4IDAwOjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgoKICAgY2htb2QgYSt4CgoyMDExLTAzLTA4IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIHByaW50IGFuIGVycm9yIGlmIHRoZSBlbmQgb2YgYSBmaWxlIHdhcyByZWFjaGVkIGFuZCB3ZSdyZSBub3QKICAgYmFjawogICBpbnRvIHRoZSBzdGF0ZSB3ZSBjYW4gd3JpdGU7IG90aGVyd2lzZSBhIGNsb3NpbmcgI2lmZGVmIGlzCiAgIG1pc3NpbmcuCgoyMDExLTAzLTA4IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIGZpeCBlbmRpZiBjb21tZW50IHRvIG1hdGNoIHRoZSBvcGVuaW5nIGlmZGVmCgoyMDExLTAzLTA4IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIHJlc2V0IHRoZSBjYW53cml0ZSBmbGFnIGZvciBldmVyeSBmaWxlCgoyMDExLTAzLTA4IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgoKICAgdGVtcG9yYXJpbHkgbGVhdmUgaW4gaGVhZGVyIGZpbGVzCgoyMDExLTAzLTA4IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIGNoYW5nZSB0aGUgdW5pcXVlIGZpbGUgY2hlY2sgdG8gb25lIHRoYXQgaXMgbm90IGluIHRoZSBtaWJncm91cAogICBkaXJlY3RvcnkKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9yZWFkLW9ubHksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seS9UMDE0MXNubXB2MmNzZXRmYWlsX3NpbXBsZToKCiAgIGEgdGVzdCBmb3IgZW5zdXJpbmcgdGhlIGFnZW50IHJlamVjdHMgU0VUIHJlcXVlc3RzIHdpdGgKICAgLS1lbmFibGUtcmVhZC1vbmx5CgoyMDExLTAzLTA4IDAwOjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6CgogICBhZGQgYmFjayBpbiB0aGUgc3RvcGFnZW50IGNvbW1hbmQKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDFwZHVfdHlwZV9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwM3BkdV9wYXJzZV9jbGliLmM6CgogICB1bml0IHRlc3RzIHdyaXRlbiBmb3IgdGhlIHJlYWQtb25seSBzdXBwb3J0IGNvbnZlcnRlZCB0byB3b3JrCiAgIHdpdGggb3Igd2l0aG91dCByZWFkLW9ubHkKCjIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKCiAgIGRvbid0IHJ1biB0aGUgc2V0IHRlc3QgaWYgbm9fd3JpdGVfc3VwcG9ydCBpcyB0dXJuZWQgb24KCjIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGU6CgogICBza2lwIGlmIG5vX3dyaXRlX3N1cHBvcnQKCjIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKCiAgIEEgbmV3IHRlc3QgdG8gY2hlY2sgd2hldGhlciBTTk1QdjJjIFNFVHMgdG8gc3lzQ29udGFjdCB3b3JrIGFzCiAgIGV4cGVjdGVkCgoyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnOgoKICAgYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydCB0ZXN0aW5nCgoyMDExLTAzLTA4IDAwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFsbG93IGZvciBzaW5nbGUgcXVvdGVzIGZvciB2YWNtIGNvbnRleHQgbmFtZSBxdW90aW5nIHRvbwoKMjAxMS0wMy0wNyAxOToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZSB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0CgoyMDExLTAzLTA3IDE5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlIHRlc3QKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICBBZGRlZCBhbiBhbm5veWluZ2x5IGxvbmcgbGlzdCBvZiBleGNlcHRpb25zIHRoYXQgbmVlZHMgdG8gYmUKICAgYXV0b21hdGVkCgoyMDExLTAzLTA3IDE5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgoKICAgQSBxdWljayBwZXJsIHNjcmlwdCB0byByZW1vdmUgdW5uZWVkZWQgY29kZSBtb2R1bGVzIGZyb20gdGhlCiAgIG1vZHVsZXMgZGlyZWN0b3J5CgoyMDExLTAzLTA3IDE5OjE4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBtb3JlIGltcHJvdmVtZW50cyAocmVtb3ZlbWVudHMpIGZvciBmZWF0dXJpemF0aW9uIGFuZCByZWFkLW9ubHkKICAgc3VwcG9ydAoKMjAxMS0wMy0wNyAxNzoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzE5NTUzNzogTWlub3IgYmluYXJ5X2FycmF5IGNvbnRhaW5lcgogICBzb3J0IG9wdGltaXphdGlvbgoKMjAxMS0wMy0wNiAxOTo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOgoKICAgVGFicyB0byBzcGFjZXMKCjIwMTEtMDMtMDYgMTE6MjggIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgogICBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZAogICBXaW5kb3dzPykKCjIwMTEtMDMtMDUgMTk6MTYgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEFkZCBkcm9wcGVkIHx8J3MgZnJvbSByMjAwNzIKCjIwMTEtMDMtMDUgMTI6NTAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6CgogICBDbGVhbiB1cCwgYW5kIGNvc29saWRhdGUgcmVzdWx0IHRhYmxlIHJvdyBjcmVhdGlvbiBpbnRvIGEgbmV3CiAgIGZ1bmN0aW9uLgogICBTYXZlcyAyMDAgbGluZXMgb2YgY29kZSwgd2l0aCAoaG9wZWZ1bGx5KSBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZQoKMjAxMS0wMy0wNSAwNjoxNyAgaGFyZGFrZXIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRlc3QuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBkb24ndCBidWlsZCBTRVQgcmVsYXRlZCBhcHBzIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5CgoyMDExLTAzLTA1IDA2OjE2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZpeCBpc3N1ZXMgd2l0aCBjb21iaW5pbmcgLS1lbmFibGUtbWluaW1hbGlzdCBhbmQKICAgLS1lbmFibGUtcmVhZC1vbmx5CgoyMDExLTAzLTA1IDA2OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBiZXR0ZXIgb3V0cHV0IGZvciBmaW5kaW5nIG9iamVjdCBzeW1ib2xzLgoKMjAxMS0wMy0wNCAyMTo1NiAgYmFlcm0KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CgogICBsYXN0IGNvbW1pdDogY2hhbmdlcyB0byBhbGxvdyBwYXJzaW5nIG9mIGZlYXR1ZXJzIGZpbGVzIHRvIGdldAogICBhbGwgbWluaW1hbGlzdCB0YWdzIHdoaWNoIGFyZSB0aGVuIHByb2Nlc3NlZCBmb3IgcmVtb3ZhbAogICAKICAgdGhpcyBjb21taXQ6IGNoYW5nZWQgY29tbWVudHMvd2hpdGUgc3BhY2UKCjIwMTEtMDMtMDQgMTk6MjcgIGJhZXJtCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgYWRkZWQgbm9fd3JpdGUgc3VwcG9ydCB0byBleHRlbmQuYwoKMjAxMS0wMy0wNCAxOToyNiAgYmFlcm0KCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgQWRkZWQgbWlzc2luZyAjZW5kaWYgY29tbWVudCBmb3IgcmVtb3ZlIGlmZGVmIGNvZGUgc3VwcG9ydAoKMjAxMS0wMy0wNCAxOToyNCAgYmFlcm0KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CgogICBhZGRlZCBjaGFuZ2VzIHRvIGFsbG93IGNvZGUgcmVtb3ZhbCBpbi1wbGFjZQogICAoaS5lLiBkb2VzIG5vdCByZXF1aXJlIGNyZWF0aW5nIGEgbmV3IGZpbGUpCgoyMDExLTAzLTA0IDE5OjIzICBiYWVybQoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2lnbm9yZS5yZWdleHA6CgogICBhZGRpbmcgYSBpZ25vcmUucmVnZXhwIGZpbGUgdGhhdCBjYW4gYmUgdXNlZCB3aXRoCiAgIHJlbW92ZWlmZGVmY29kZS5wbAoKMjAxMS0wMy0wNCAxOToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgYWRkIGEgb3V0Z29pbmcgbGluayB0byB0aGUgcGFyZW50IG1hcmtpbmcgcGFnZQoKMjAxMS0wMy0wNCAxOToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgQWRkZWQgYSB3aWtpIG91dHB1dCBtb2RlCgoyMDExLTAzLTA0IDE5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBOb3RlIHRoYXQgdGhlIG9yZyBvdXRwdXQgaXMgdGhlIGRlZmF1bHQgaW4gdGhlIGhlbHAgb3V0cHV0CgoyMDExLTAzLTA0IDE1OjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluCiAgIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKCjIwMTEtMDMtMDQgMTQ6NDkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcmVtYWluaW5nIGZlYXR1cmVzIGludG8gYSBoaWVyYXJjaHkKCjIwMTEtMDMtMDQgMTQ6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCBkb3VibGUtZGVjbGFyZSBjZXJ0X3V0aWxzCgoyMDExLTAzLTA0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0aGUgaXBhZGRyZXNzX2xpbnV4IHdhcyBpbmNvcnJlY3RseSBtYXJrZWQgYXMgbmVlZGluZwogICBjZXJ0X2ZpbmdlcnByaW50cwoKMjAxMS0wMy0wNCAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHB1dCB0aGUgYWdlbnRfcmVnaXN0cnkgZmVhdHVyZSBpbiBsaWJuZXRzbm1wYWdlbnQuCgoyMDExLTAzLTAzIDEwOjU2ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvCiAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvIGV4cG9ydCBhIGZ1bmN0aW9uIGZyb20KICAgbmV0c25tcC5kbGwuCgoyMDExLTAzLTAzIDEwOjQ4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQWRkZWQgbWlzc2luZyBORVRTTk1QX0lNUE9SVCBkZWNsYXJhdGlvbnMuCgoyMDExLTAzLTAzIDEwOjI0ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWY6CgogICBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4KCjIwMTEtMDMtMDMgMTA6MDkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIFRyaXZpYWwgY29tbWVudCBmaXg6IHNubXBJUHY2QmFzZURvbWFpbi5jIGNvbnRhaW5zIElQdjYgYmFzZQogICB0cmFuc3BvcnQgc3VwcG9ydCBmdW5jdGlvbnMgaW5zdGVhZCBvZiBJUHY0LgoKMjAxMS0wMy0wMiAxOToxMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYjoKCiAgIEFkZGVkIHNubXBzbV9zaHV0ZG93bi5oIHRvIHRoZSBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0IGJlY2F1c2UKICAgaXQncyBhIGdlbmVyYXRlZCBmaWxlLgoKMjAxMS0wMy0wMiAxNTo1OCAgYnZhc3NjaGUKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGZpbGUuCgoyMDExLTAzLTAyIDE1OjUyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIHdpbjMyL3NubXBzbV9zaHV0ZG93bi5oLCAgCiAgICAgICB3aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIFZpc3VhbCBTdHVkaW8gYWZ0ZXIgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUKICAgImZlYXR1cmUiIGZlYXR1cmUuCgoyMDExLTAzLTAyIDE1OjQ4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wc21faW5pdC5oOgoKICAgUmVtb3ZlZCBhIG1pc2xlYWRpbmcgY29tbWVudC4KCjIwMTEtMDMtMDIgMDg6NDAgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgQ29ycmVjdCB0aGUgY2hlY2sgb2Ygd2V0aGVyIHVzbSBzZWN1cml0eSBpcyBlbmFibGVkLgogICBSZWdlbmVyYXRlIGNvbmZpZ3VyZS4KCjIwMTEtMDMtMDIgMDg6MzkgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlCgoyMDExLTAzLTAyIDA4OjIxICBtYWdmcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMKCjIwMTEtMDMtMDIgMDc6MTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgSWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMKCjIwMTEtMDMtMDIgMDc6MTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBTcGxpdCB0aGUgY29udGFpbmVyX2NvbXBhcmVfZnVuY3Rpb25zIGZlYXR1cmUgaW50bwogICBjb250YWluZXJfY29tcGFyZV9tZW0sCiAgIGNvbnRhaW5lcl9jb21wYXJlX2xvbmcsIGNvbnRhaW5lcl9jb21wYXJlX3Vsb25nLAogICBjb250YWluZXJfY29tcGFyZV9pbnQzMiBhbmQKICAgY29udGFpbmVyX2NvbXBhcmVfdWludDMyCiAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb25zIGZ1cnRoZXIuCgoyMDExLTAzLTAyIDA3OjE5ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ2hhbmdlIHRoZSBzcGVsbGluZyBvZiB0aGUgY29udGFpbmVyX2NvbXBhcmVfY3N0cmluZyBmZWF0dXJlIHRvCiAgIGNvbnRhaW5lcl9uY29tcGFyZV9jc3RyaW5nIGFzIHRoYXQgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaXMKICAgZ3VhcmRlZCBieSB0aGF0CiAgIGF0dHJpYnV0ZS4KCjIwMTEtMDMtMDIgMDc6MTcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQWRkIHRoZSBtaXNzaW5nIHJlcGxhY2VtZW50IG1hY3JvIGZvciBzbm1wX2luaXRfc3RhdGlzdGljcwoKMjAxMS0wMy0wMiAwNzoxNiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWNfYnkgdGFrZXMgdHdvIGFyZ3VtZW50cyBzbyBsZXQgdGhlCiAgIHJlcGxhY2VtZW50IG1hY3JvCiAgIHRha2UgdHdvIGFyZ3VtZW50cyBhcyB3ZWxsLgoKMjAxMS0wMi0yNyAxMzo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gcjE5OTkwCgoyMDExLTAyLTI2IDEwOjUzICBtYWdmcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2s6CgogICBSZW1vdmUgbGluZXMgc3RhcnRpbmcgd2l0aCAjZGVmaW5lIGluIHRoZSBvdXRwdXQgb2YgdGhlCiAgIHByZXByb2Nlc3NvcgogICBXaGVuIGdjYyAtRSBpcyBjYWxsZWQgd2l0aCAtZ2dkYjMgKG9yIC1kRCkgdGhlbiBhbGwgdGhlIG1hY3JvCiAgIGRlZmluaXRpb25zIGFyZQogICBwYXNzZWQgdGhyb3VnaCB0aGUgcHJlcHJvY2Vzc29yIGFuZCB0aGF0IG1lc3NlcyB1cCBvdXIKICAgcHJvY2Vzc2luZy4KCjIwMTEtMDItMjYgMTA6NTIgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgUHV0IHRoZSBnZW5lcmF0ZWQgZmlsZSBpbiB0aGUgYnVpbGQgdHJlZSwgbm90IHRoZSBzb3VyY2UgdHJlZS4KCjIwMTEtMDItMjYgMDE6MjMgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgbW92ZWQgYSBidW5jaCBvZiBmZWF0dXJlcyBpbnRvIHRoZSBsaWJuZXRzbm1wbWlicyBmZWF0dXJlIHNldC4KCjIwMTEtMDItMjYgMDE6MjIgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzLCBzbm1wbGliL21pYi5jOgoKICAgY2xhc3NpZmllZCBsaWJuZXRzbm1wYWdlbnQgZmVhdHVyZXMKCjIwMTEtMDItMjYgMDE6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGxpYnJhcmllcyAoc25tcGxpYiBmaXJzdCkKCjIwMTEtMDItMjYgMDE6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgb3V0cHV0IGNsZWFudXAgYW5kIGFkZGVkIGFnZW50LW1pYnMgYW5kIGxvZ2dpbmcgb3B0aW9ucwoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBhZGQgYSBkZWZhdWx0IHNldCBvZiBhcmd1bWVudHMKICAgY2FsY3VsYXRlIHJlc3VsdGluZyBzaXplcwoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIEFkZGVkIGEgbWlzc2luZyA7CgoyMDExLTAyLTI2IDAxOjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIHByZWZpeCB0aGUgb3V0cHV0IGZpbGVzIHdpdGggYSBudW1iZXIgdG8gaW5kaWNhdGUgb3JkZXIKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgc3lzdGVtIGV4ZWN1dGlvbnMKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZW5hYmxlIGJ1aWxkaW5nIG9mIHRoZSByZXN1bHRpbmcgY29tYmluYXRpb25zCiAgIEFkZCBhIC1uIGZsYWcgZm9yIGRyeS1ydW5zCgoyMDExLTAyLTI2IDAxOjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGVuYWJsZSB0aGUgLXQgdGFnIGZvciBsaW1pdGluZyB0eXBlcwoKMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGRlZCBhcmd1bWVudCBwYXJzaW5nIGFuZCBhcmd1bWVudHMgZm9yIHNlbGVjdGluZyBhbmQgbGlzdGluZwogICB0eXBlcwoKMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBnZW5lcmF0ZSBjb25maWd1cmUgc2NyaXB0IGFyZ3VtZW50cyBmcm9tIHNwZWNzCgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGFkZGVkIGEgYnVuY2ggb2YgbmV3IGZlYXR1cmUgb3B0aW9ucyBhbmQgY2xlYW5lZCB1cCBhIGJpdAoKMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBhZGRlZCBhIG5ldyAobm90IHlldCB3b3JraW5nKSBzY3JpcHQgdG8gdGVzdCBzaXppbmcgb2YgdmFyaW91cwogICBhcmd1bWVudCBzZXRzCgoyMDExLTAyLTI2IDAwOjI2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgU2ltcGxpZnkgdGhlIGNvZGUuIFVuaWZ5IHNvbWUgZGVidWcgbG9ncy4KCjIwMTEtMDItMjYgMDA6MTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZWR1Y2UgdGhlIHNjb3BlIG9mIGEgZmV3IHZhcmlhYmxlcwoKMjAxMS0wMi0yNiAwMDoxNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcy4KCjIwMTEtMDItMjYgMDA6MTUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGluaXRpYWxpemUvdW5pbml0aWFsaXplIG1vZHVsZXMgd2l0aCA2NAogICBjaGFyYWN0ZXIgbmFtZXMgYW5kIG5vdCBzdWZmZXIgd2lsZCB3cml0ZXMuCgoyMDExLTAyLTI2IDAwOjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ29kZSByZXN0cnVjdHVyaW5nIC0gcHV0IHRoZSBtYW5hZ2VkIHJvdXRpbmVzIGJlZm9yZSB0aGUKICAgbWFuYWdtZW50IGNvZGUuCgoyMDExLTAyLTI2IDAwOjExICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcG1pYnM6IE1ha2UgYWxsIGZ1bmN0aW9ucyBpbiB0aGUgZGxtb2QgbW9kdWxlCiAgIHRoYXQgZG9uJ3QgaGF2ZSB0byBiZSBwdWJsaWMgc3RhdGljCgoyMDExLTAyLTI2IDAwOjA3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUmVuYW1lIGRlaW5pdF9kbG1vZCB0byBzaHV0ZG93bl9kbG1vZCBhcyB0aGF0IGlzIHdoYXQgaXQgcmVhbGx5CiAgIGlzIGFib3V0LgoKMjAxMS0wMi0yNSAxODoyNCAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzoKCiAgIGFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcyB0byBuZXQtc25tcC12YWNtIG1pYgoKMjAxMS0wMi0yNSAxNjowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgcHJvcGVybHkgaGFuZGxlIHR3aW4gY2hpbGRyZW47IGFsc28gc29ydCB0aGUgY2hpbGQgbGlzdAogICBhbHBoYWJldGljYWxseS4KCjIwMTEtMDItMjUgMTY6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJIHN1cHBvc2UgbG9nZ2luZyBzaG91bGQgcHJvYmFibHkgZGVmYXVsdCB0byBiZWluZyBhIHdhbnRlZAogICBvcHRpb24gOi0pCgoyMDExLTAyLTI1IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBvcmctbGluayB0aGUgZmlsZXMgaW4gdGhlIG91dHB1dAoKMjAxMS0wMi0yNSAxNjowOCAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLnJ1bGVzLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjaywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgdGhlIGZlYXR1cmVzLWNoZWNrIHNjcmlwdCB0cmFjayB0aGUgZnVsbCBzb3VyY2UgcGF0aAoKMjAxMS0wMi0yNSAxNjowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgY2hhbmdlIHRoZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCB0aGF0IGl0J3MgcHJpbnRpbmcgdG8gb3JnLW1vZGUKICAgYXQgdGhlIG1vbWVudC4KCjIwMTEtMDItMjUgMTY6MDggIGhhcmRha2VyCgogICAqICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBsYXN0IG9mIHRoZSBmZWF0dXJlIGNsYXNzaWZpY2F0aW9uIGluIGxpYm5ldHNubXAKCjIwMTEtMDItMjUgMTY6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBtYWtlIHRoZSB1c21fc3VwcG9ydCB1dGlsaXRpZXMgc2VsZi1kZWNsYXJlIHRoZW1zZWx2ZXMgYXMKICAgY2hpbGRyZW4gdG8KICAgbWFrZSBzdXJlIHRoZXkncmUgcHJvcGVybHkgaW5jbHVkZWQgZHVyaW5nIGRlcGVuZGVuY3kgb3JkZXJpbmcKCjIwMTEtMDItMjUgMTY6MDcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLCAgIAogICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgc3VwZXJzdHJ1Y3R1cmFsaXphdGlvbml6aW5nIHRoZSBmZWF0dXJlcwoKMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgIAogICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3N5c3RlbS5jLCAKICAgICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBzaWduaWZpY2FudCBwYXJlbnQvY2hpbGQgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbgoKMjAxMS0wMi0yNSAxNjowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIGNsYXNzaWZ5IGEgZmV3IGNvbXBvbmVudHMgaW50byBhIHRvcC1sZXZlbCBsaWJuZXRzbm1wIGNvbXBvbmVudAoKMjAxMS0wMi0yNSAxNjowNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgc3RydWN0dXJpemUgdGhlIHVzbSBmZWF0dXJlcwoKMjAxMS0wMi0yNSAxNjowNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBzdHJ1Y3R1cmUgdGhlIGNvbnRhaW5lciBmZWF0dXJlcyBpbnRvIGEgaGllcmFyY2h5CgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZ3JvdXAgdGhlIGxvZ2dpbmcgaGFuZGxlcnMgdW5kZXIgYSBwYXJlbnQgZmVhdHVyZQoKMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgZml4IHRoZSBleHBlY3QgYXJndW1lbnQgY291bnQKCjIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIGZpeCB0aGUgbmFtZSBvZiB0aGUgZXhwZWN0ZWQgaW5wdXQgZmlsZQoKMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgYXJndW1lbnQgcGFyc2luZyBhbmQgdXNhZ2UoKSBvdXRwdXQKCjIwMTEtMDItMjUgMTY6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICAtIGFkZGVkIHR3byBvaWRfc3Rhc2ggZnVuY3Rpb25zIGFzIGluZGl2aWR1YWwgZmVhdHVyZXMKICAgLSBjbGVhbmVkIHVwIHNvbWUgd2FybmluZ3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGNvZGUKCjIwMTEtMDItMjUgMTI6NTUgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgCiAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2gKICAgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMKICAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqIGJyYW5jaGVzLCByYXRoZXIKICAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpCgoyMDExLTAyLTI1IDExOjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90IGF2YWlsYWJsZSBvciBzZXQuCgoyMDExLTAyLTI1IDAwOjQwICBiYWVybQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oOgoKICAgYWRkaW5nIGlmZGVmIGNvZGUgZm9yIG1pbmltYWxpc3Qgc3VwcG9ydCBvZiBkaWZmbWFuIG1pYgoKMjAxMS0wMi0yNCAxOToyMSAgYmFlcm0KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmg6CgogICBBZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMgdG8gaG9zdCByZXNvdXJjZSBtaWIKCjIwMTEtMDItMjQgMDU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIG1hcmsgdGhlIGRhdGFfbGlzdCBmdW5jdGlvbiB0aGF0J3Mgb25seSB1c2VkIGluIHN0YWNoX2NhY2hpbmcgYXMKICAgYSBmZWF0dXJlCgoyMDExLTAyLTI0IDA1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICB3aG9vcHMuCgoyMDExLTAyLTI0IDA1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtb3JlIG1pc3Npbmcgc3Rhc2ggcmVmZXJlbmNlcwoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgaWZkZWZlZC9mZWF0dXJlZCBvdXQgYSBtaXNzaW5nIHN0YXNoX2NhY2hlIHNlY3Rpb24KCjIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1ha2UgdGhlIHByZWZpeF9pbmZvIG1vcmUgaGllcmFyY2hpY2FsIGFuZCBzdWItZmVhdHVyZSB0aGUgdW51c2VkCiAgIG9uZQoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgoKICAgZG8gaW5jbHVkZSB0aGUgcGVybC9weXRob24gY29kZSB3aGVuIHNlYXJjaGluZyBmb3IgZmlsZXMKCjIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIG1ha2UgdGhlIHNlbWktdXNlZCB0YWJsZV90ZGF0YSBmdW5jdGlvbnMgY2hpbGRyZW4gb2YKICAgdGFibGVfdGRhdGFfYWxsCiAgIGluc3RlYWQgb2YganVzdCB0YWJsZV90ZGF0YQoKMjAxMS0wMi0yMyAyMjowMCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgQ29ycmVjdCB0eXBvCgoyMDExLTAyLTIzIDIxOjU0ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDb3JyZWN0IHR5cG8KCjIwMTEtMDItMjMgMjE6MTAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHByb3BlciBpbmNsdWRlIG9mIHByb3RvdHlwZQoKMjAxMS0wMi0yMyAyMTowNyAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgY29tcGF0IHNvbWUgZmVhdHVyZSBoZWFkZXIgY2hpY2tlbiBhbmQgZWdnIHByb2JsZW1zCgoyMDExLTAyLTIzIDE1OjI3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKCjIwMTEtMDItMjMgMTU6MjMgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwoKMjAxMS0wMi0yMyAxNToyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgRW5hYmxlIChwcm9iYWJseSBmb3Jnb3R0ZW4pIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDExLTAyLTIzIDE0OjMwICBoYXJkYWtlcgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdCwgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MsICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmUsICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZSwgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CgogICBhZGRlZCBvdGhlciBtaXNzaW5nICduZXcnIGZpbGVzIG5vdCBpbmNsdWRlZCBpbiB0aGUgbWluaW1hbGlzdAogICBwYXRjaCBmaWxlCgoyMDExLTAyLTIzIDA5OjU0ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmM6CgogICBMb2FkaW5nIElQdjYgZGF0YSBpcyBhIG5vLW5vIHdoZW4gSVB2NiBub3QgZW5hYmxlZAoKMjAxMS0wMi0yMyAwOTozNiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXggY29udGFpbnMgOgogICBjaGFyYWN0ZXIKCjIwMTEtMDItMjMgMDk6MzAgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOgoKICAgRnJlZUJTRCA4IHN1cHBvcnQKCjIwMTEtMDItMjMgMDE6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaDoKCiAgIGFkZGVkIG1pc3NpbmcgbmV0LXNubXAtZmVhdHVyZXMuaAoKMjAxMS0wMi0yMyAwMDowMSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAKICAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAKICAgICAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdGV4dF91dGlscy5jLCAgIAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZToKCiAgIE5FV1M6IHBhY2thZ2luZzogRW5hYmxlIG1pY3JvLWFuZC1tYWNyby1mZWF0dXJlIG1hbmFnZW1lbnQgd2l0aGluCiAgIE5ldC1TTk1QOyB0aGlzIGFkZHMgYSBudW1iZXIgb2YgbmV3IGZsYWdzIHRvIGNvbmZpZ3VyZQogICAoLS1lbmFibGUtbWluaW1hbGlzdCBhbmQgLS1lbmFibGUtcmVhZC1vbmx5KS4gVGhlc2UgY2hhbmdlcyBhcmUKICAgZGVzaWduZWQgdG8gcmVtb3ZlIG11Y2ggb2YgdGhlIGlubGluZSBjb2RlIHRoYXQgaXNuJ3QgYWx3YXlzCiAgIG5lY2Vzc2FyeSBvciBkZXNpcmVkLiBTY3JpcHRzIGV4aXN0IChhbmQgd2lsbCBiZSBpbXByb3ZlZCkgdG8KICAgc3RpcCBvdXQgdW51c2VkIGNvbXBvbmVudHMgZnJvbSB0aGUgY29kZSBlbnRpcmVseSB0byBlbmFibGUgYQogICBzaG9ydGVyIHJldmlldyBwcm9jZXNzIGZvciB1cGdyYWRpbmcgdG8gbmV3IHJlbGVhc2VzLiBUaGlzIHdvcmsKICAgd2FzIGRvbmUgYnkgV2VzIEhhcmRha2VyIGFuZCBNaWNoYWVsIEJhZXIgZnJvbSBTUEFSVEEsIEluYy4gYnV0CiAgIGlzIGJlaW5nIGNoZWNrZWQgaW4gYXMgYSBsYXJnZSBwYXRjaCBzaW5jZSBjb252ZXJ0aW5nIHRoZSBtaWNybwogICBwYXRjaGVzIGZyb20gZ2l0IHRvIHN2biB0dXJlbmQgb3V0IHRvIGJlIGltcG9zc2libGUKCjIwMTEtMDItMjIgMjM6NTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHVzZSB0aGUgd2lraSBVUkwgaW5zdGVhZCBvZiB0aGUgdHV0b3JpYWwtNSBVUkwgZm9yIHRoZSBzbm1wdHJhcAogICB0dXRvcmlhbAoKMjAxMS0wMi0yMSAyMjo0MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzoKCiAgIHByb3BlciBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZAoKMjAxMS0wMi0yMSAyMjozOSAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGNvbmRpdGlvbmFsaXplIHZhcmlhYmxlCgoyMDExLTAyLTIxIDIyOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzCgoyMDExLTAyLTIxIDIyOjE2ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcwoKMjAxMS0wMi0yMSAyMjowNSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZQoKMjAxMS0wMi0yMSAyMjowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgcmVtb3ZlIHZhciB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUKCjIwMTEtMDItMjEgMjI6MDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcgZm9yIG9wZW5ic2QgdG9vLiBUaGlzIHNob3VsZAogICByZWFsbHkgYmUgcmV3b3JrZWQgdG8gdXNlIHRoZSB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MKCjIwMTEtMDItMjEgMjE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAoKMjAxMS0wMi0yMSAyMTo1NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBlbmFibGUgbmV3IHRjcC91ZHAgbWlicyBmb3Igc29sYXJpcwoKMjAxMS0wMi0yMSAyMTo1MyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKCiAgIERvIG5vdCB1c2UgYzk5CgoyMDExLTAyLTIxIDE5OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIFVwZGF0ZWQgY29tbWVudCBhYm91dCB3aGVyZSBtYWtlcmVsZWFzZSBjb21lcyBmcm9tIChub3cgZ2l0aHViKQoKMjAxMS0wMi0yMCAwOToyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE4NTUyODogc2h1dGRvd25fbWFzdGVyX2FnZW50IGRvZXNuJ3QgY2xvc2UKICAgVURQIHNvY2tldAogICAoRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiByMTk1MTEuKQoKMjAxMS0wMi0xOCAxNDo0MyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBzbm1wZDogcmV3b3JrZWQgaHJTdG9yYWdlVGFibGUgdG8gc3VwcG9ydCBsYXJnZQogICBmaWxlc3lzdGVtcy4KICAgCiAgIFRoZSBoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMgZG9lcyBub3QgcmVwb3J0IHJlYWwgYWxsb2NhdGlvbiB1bml0CiAgIHNpemUsCiAgIGJ1dCBzb21lIGNhbGN1bGF0ZWQgdmFsdWUgc28gaHJTdG9yYWdlQWxsb2NhdGlvblVuaXRzICoKICAgaHJTdG9yYWdlU2l6ZQogICBnaXZlcyByZWFsIHNpemUgb2YgdGhlIGZpbGVzeXN0ZW0uCiAgIAogICBUaGlzIGNhbGN1bGF0aW9uIGhhcHBlbnMgb25seSB3aGVuIGhyU3RvcmFnZVNpemUgaXMgdG9vIHNtYWxsCiAgICgzMmJpdHMpCiAgIGZvciBmaWxlc3lzdGVtIHNpemUsIGUuZy4gZmlsZXN5c3RlbXMgbGFyZ2VyIHRoYW4gOFRCIHdpdGggNDA5NgogICBieXRlcwogICBibG9jayBzaXplLgogICAKICAgVGhpcyBjYWxjdWxhdGlvbiBjYW4gYmUgdHVybmVkIG9mZiBieSAncmVhbFN0b3JhZ2VVbml0cycgY29uZmlnCiAgIG9wdGlvbi4KCjIwMTEtMDItMTggMTQ6MjkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBBZGQgSkZTIGFuZCBYRlMgdG8gbGlzdCBvZiBrbm93biBmaWxlc3VzdGVtcwoKMjAxMS0wMi0xNyAxMToyOCAganNhZnJhbmVrCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIEZpeGVkIHNubXAtYnJpZGdlLW1pYiBpbiBzdGFuZGFsb25lIChhZ2VudHgpIHZlcnNpb24uCiAgIERvbid0IGRlY2xhcmUgbG9jYWwgdmFyaWFibGVzIGluc2lkZSBibG9jay4gUGF0Y2ggcHJvdmlkZWQgYnkKICAgSmVucyBPc3RlcmthbXAuCgoyMDExLTAyLTE2IDE0OjU2ICBqc2FmcmFuZWsKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgRml4ZWQgc25tcC1icmlkZ2UtbWliIHdoZW4gd29ya2luZyBpbiB0aGUgZW1iZWRkZWQgcGVybC4KCjIwMTEtMDItMTYgMTM6MTYgIGpzYWZyYW5lawoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBGaXhlZCBHRVRORVhUIHByb2Nlc3NpbmcgaW4gc25tcC1icmlkZ2UtbWliLgoKMjAxMS0wMi0xNSAyMjoyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBQcm9wZXJseSBzYXZlIGVudHJpZXMgZm9yIE5ldEJTRCBhbmQgRHJhZ29uRmx5CgoyMDExLTAyLTE1IDIyOjE4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGVzCgoyMDExLTAyLTE1IDIxOjQ2ICBuYmEKCiAgICogY29uZmlndXJlOgoKICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgoKMjAxMS0wMi0xNSAyMTozMyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgaW5jbHVkZSBzeXMvdHlwZXMuaCBiZWZvcmUgc3lzL3NvY2tldC5oCgoyMDExLTAyLTE1IDIxOjI2ICBuYmEKCiAgICogbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNDoKCiAgIFRvbyBtdWNoIHF1b3RpbmcgaXMgYmFkCgoyMDExLTAyLTE1IDIxOjExICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oOgoKICAgRml4IElQdjYgVENQIGFuZCBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQKCjIwMTEtMDItMTUgMjA6NDUgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6CgogICBLaWxsIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTAyLTE1IDIwOjQ0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIEZpbHRlciBJUHY2IGVudHJpZXMgZnJvbSBJUHY0IHRhYmxlCgoyMDExLTAyLTE1IDIwOjQyICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgoKICAgUHJvcGVyIHVzZSBvZiBnZXRwcm9jMiBhbmQgZHJhZ29uZmx5IHN1cHBvcnQKCjIwMTEtMDItMTUgMjA6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jOgoKICAgZ2V0dmZzc3RhdCBpcyBvbmx5IGZvciBOZXRCU0QKCjIwMTEtMDItMTUgMjA6MzkgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIERldGVjdCBuZWVkIGZvciAtbGt2bSBpbiBwcm9wZXIgdGltZQoKMjAxMS0wMi0xNSAxOTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHJlbW92ZSB0aGUgc3RhdGVtZW50IGFib3V0IGVuYWJsaW5nIHN0ZGVyciBieSBkZWZhdWx0LgoKMjAxMS0wMi0xNSAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZW1vdmUgMyBmdW5jdGlvbnMgdGhhdCBhcyBmYXIgYXMgSSBjYW4gdGVsbCBoYXZlIHBvc3NpYmx5IG5ldmVyCiAgIGJlZW4gdXNlZAoKMjAxMS0wMi0xNCAxNDozOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeGVkIGEgTWluR1ctc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KCjIwMTEtMDItMTMgMTY6MjggIG1hZ2ZyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgc3RhdGljIGFwcGxpY2F0aW9ucyB1c2luZwogICBuZXQtc25tcC1jb25maWcgYW5kIHRoZSAtKmxpYnMgZmxhZ3Mgb25jZSBtb3JlLgoKMjAxMS0wMi0xMCAxNToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxNjU4Nzg6IENhdGNoIGJ1ZmZlciBvdmVycnVuIG9uCiAgIDY0LWJpdCBzeXN0ZW1zCgoyMDExLTAyLTEwIDE1OjA2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTUyNDEyOiBIYW5kbGUgKGFuZCByZXBvcnQpIHByb2JsZW1zCiAgIHJlYWRpbmcgL3Byb2Mvdm1zdGF0CgoyMDExLTAyLTA5IDA3OjM0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBCdWlsZGluZyBETEwgYW5kIFBlcmwgbW9kdWxlcyB3aXRoIHdpbjMyL2J1aWxkLmJhdCB3b3JrcyBhZ2Fpbi4KCjIwMTEtMDItMDggMTk6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgUmVtb3ZlIHRoZSBmdW5jdGlvbnMgbWFya2VkIGFzIGRlcHJlY2F0ZWQgYW5kIHNhZmUgZm9yIHJlbW92YWwgaW4KICAgNS42LgoKMjAxMS0wMi0wOCAxNzo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCBmcm9tIE1hcnRpbiBCdWNrOiBkb24ndCBhbHdheXMgb3BlbiBzdGRlcnIKICAgYXMgdGhlIGNhbGxzIHRvIHNubXBfbG9nIGFscmVhZHkgZG8gdGhpcyBhbmQgaXQgbWVzc2VzIHVwIHRoZQogICBhZ2VudCB3aGVuIGVtYmVkZGVkCgoyMDExLTAyLTA4IDE3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4IGEgc3RybGVuIGNhbGN1bGF0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIEtvbnN0YW50aW4gQmF5ZGFyb3YKCjIwMTEtMDItMDcgMjA6MDcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgMyBuZXcgU1NIIGNvbmZpZyB0b2tlbnMKCjIwMTEtMDItMDcgMjA6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmM6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBtYWRlIHRoZSBTU0ggdHJhbnNwb3J0IGNvbmZpZ3VyYWJsZSBhcyBpdAogICBzaG91bGQgYmUuCgoyMDExLTAyLTA3IDIwOjA3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgQWRkZWQgZGVmYXVsdF9zdG9yZSBzdHJpbmdzIGZvciBzc2g6IHVzZXJuYW1lLCBwdWJrZXksIHByaXZrZXkKCjIwMTEtMDItMDYgMDY6MzQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIFNpbXBsaWZ5IHRoZSBjb250cm9sIGZsb3cgdG8gYWxsb3cgZm9yIG1vcmUgb3B0aW1pemF0aW9uLgoKMjAxMS0wMi0wMyAyMjo0MiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMxNzE4Nzg6IFVzaW5nIFNOTVB2MyBjb250ZXh0IGRvZXMgbm90CiAgIHdvcmsKCjIwMTEtMDItMDIgMDc6MDkgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBJbmNsdWRlIHRoZSBVU0lOR18gdmFyaWFibGVzIGZyb20gdGhlIGFnZW50IGxpYnJhcnkgYXMgd2VsbCwgaW4KICAgcGFydGljdWxhciB0aGUKICAgVVNJTkdfQUdFTlRYXyogdmFyaWFibGVzLgoKMjAxMS0wMi0wMSAxMzowNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIERvbid0IGNoZWNrIGZvciAzMi82NGJpdCB3cmFwIGluIGNhbGN1bGF0ZWQgZW50cmllcy4KCjIwMTEtMDItMDEgMDk6NDEgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdGhlIGFnZW50IHdyaXRpbmcgJ2xvb2tzIGxpa2UgYSA2NGJpdCB3cmFwLAogICBidXQgcHJldiE9bmV3JyBpbiBzeXNsb2cgd2hlbiBjb21wdXRpbmcgaXBTeXN0ZW1TdGF0cwogICAKICAgV2l0aG91dCB0aGUgbWVtY3B5LCBwcmV2X3ZhbHMtPnN0YXRzIGFuZCBuZXdfdmFscy0+c3RhdHMgY291bGQKICAgZ2V0IGRpZmZlcmVudCwKICAgd2hpY2ggY291bGQgbXVjaCBtdWNoIGxhdGVyICh3aGVuIGEgY291bnRlciBnZXRzIGJpZ2dlciB0aGFuIDMyCiAgIGJpdHMpIHJlc3VsdAogICBpbiAncHJldiE9bmV3JyBtZXNzYWdlIGluIHN5c2xvZy4gVHlwaWNhbGx5IHRoaXMgaGFwcGVucyBhZnRlcgogICBsb25nIHRpbWUgb2YKICAgdXB0aW1lIGFuZCBpdCBpcyB2ZXJ5IGhhcmQgdG8gcmVwcm9kdWNlLgoKMjAxMS0wMi0wMSAwNzoxOSAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcwoKMjAxMS0wMS0zMSAyMjozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOgoKICAgYWRkcHJvdG90eXBlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJzCgoyMDExLTAxLTMxIDIyOjM3ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgY29uc3QganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCgoyMDExLTAxLTMxIDIyOjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBkaXNraW8gZm9yIGRyYWdvbmZseQoKMjAxMS0wMS0zMSAyMjoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYzoKCiAgIHByb3Blcmx5IG5hbWUgaW5pdGFsaXplciBmdW5jdGlvbiBmb3IgY3B1X2tpbmZvCgoyMDExLTAxLTMwIDE1OjIxICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIHVzZWQgaW5jbHVkZSBmaWxlcy4KCjIwMTEtMDEtMzAgMDk6MzUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKMjAxMS0wMS0zMCAwMTowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNTE4OTc6IGZkIGxlYWsgdy8gL3Byb2MvcGFydGl0aW9ucwogICByZWFkIGluIGRpc2tpbwoKMjAxMS0wMS0yOSAyMzozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMzE2NjU2ODogaHJTeXN0ZW1Qcm9jZXNzZXMgbWlzc2luZyBpbiA1LjYvNS42LjEKCjIwMTEtMDEtMjcgMDk6MzUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBZnRlciB0ZW4geWVhcnMgaW50ZW5zaXZlIHVzZSwgYW4gImV4cGVyaW1lbnRhbCIKICAgZmVhdHVyZSBjYW4gcHJvYmFibHkgYmUgcmVsZWFzZWQgZm9yIGdlbmVyYWwgdXNlLgoKMjAxMS0wMS0yNiAxNjo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogbWFrZSB0aGUgbWliMmMgZm9yZWFjaCByYW5nZXMgd29yayBhcyBhZHZlcnRpc2VkCiAgIGluIHRoZSBjb21tZW50cy4KCjIwMTEtMDEtMjYgMTY6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyN3NubXB2M0RlZmF1bHRzX3NpbXBsZToKCiAgIGEgdGVzdCB0byBlbnN1cmUgdjMvVVNNIHNubXAuY29uZiBzZXR0aW5ncyB3b3JrCgoyMDExLTAxLTI2IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHJlbW92ZSB0ZXN0b3B0cwoKMjAxMS0wMS0yNiAwOToxMiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gY291bnRpbmcgcHJvY2Vzc2VzCiAgIGZvciBVQ0QtU05NUC1NSUI6OnByVGFibGUKICAgCiAgIFRoZSBYWCBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGZvcGVuKC9wcm9jL1hYL3N0YXR1cykgYW5kIGJlZm9yZQogICBmZ2V0cygpIGZyb20gaXQuIHNubXBkIHNob3VsZCBjb250aW51ZSB3aXRoIG90aGVyIHByb2Nlc3NlcyBhbmQKICAgbm90IHRvIHN0b3AuCgoyMDExLTAxLTE5IDEzOjU3ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CgogICBNYWtlIHVzIGNvbXBhdGlibGUgd2l0aCBycG0tNC45LCBycG1HZXRGaWxlc3lzdGVtTGlzdCBkb2VzIG5vdAogICBleGlzdCBhbnltb3JlLCBzbyB0aGUgY29uZmlndXJlIHNjcmlwdCBzaG91bGQgbm90IGNoZWNrIGl0LgoKMjAxMS0wMS0xOSAwNjozMSAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIGRpc2tJT0xBeCByZXF1aXJlcyBleHAgd2hpY2ggbWF5IHJlcXVpcmUgLWxtCgoyMDExLTAxLTE4IDIyOjM5ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIKCjIwMTEtMDEtMTggMjI6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBGaW5kIHByb3BlciBpZi1taWIgaW50ZXJmYWNlIGZvciBOZXRCU0QKCjIwMTEtMDEtMTggMjI6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICB0eXBvCgoyMDExLTAxLTE4IDIyOjM1ICBuYmEKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSBkcmFnb25mbHlpZAoKMjAxMS0wMS0xNCAxMzoyNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEFkZCBJUHY2IHN1cHBvcnQgZm9yIGNyZWF0aW5nIHJvd3MgaW4gaXBBZGRyZXNzdGFibGUuCiAgIAogICBVc2luZyBTTk1QIFNFVCwgaXQgaXMgbm93IHBvc3NpYmxlIHRvIGNyZWF0ZSBhbmQgZGVzdHJveSBJUHY2CiAgIGFkZHJlc3NlcyBvbiBhbiBpbnRlcmZhY2UuCgoyMDExLTAxLTE0IDEyOjI4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSBSb2JlcnQgU3Rvcnk6IGZpeGVkIGFkZGluZyBuZXcgYWRkcmVzc2VzIHRvCiAgIGlwQWRkcmVzc1RhYmxlCiAgIAogICBMb25nIHRpbWUgYWdvLCB0aGVyZSB3YXMgYSBidWdyZXBvcnRbMV0gcmVnYXJkaW5nIGlwQWRkcmVzc1RhYmxlCiAgIG9uCiAgIG5ldC1zbm1wLWNvZGVycyBsaXN0IGFuZCByc3RvcnkncyBleHBlcmltZW50YWwgcGF0Y2ggd2l0aG91dCBhbnkKICAgZmVlZGJhY2suCiAgIE5vdyBJJ3ZlIGdvdCBmZXcgY29tcGxhaW50cyB0aGF0IFNOTVAgU0VUIG9uIGlwQWRkcmVzc1RhYmxlCiAgIHByb2R1Y2VzIHRoZQogICBzYW1lIGVycm9ycyBhbmQgZ3Vlc3Mgd2hhdCwgdGhlIHBhdGNoIGZpeGVzIHRoZW0uCiAgIAogICBbMV06CiAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9uYW1lPTIwMDYwOTIwMTM0OTM1LjM1YjM2ZWQ2JTQwZGV2LmZ1dHoub3JnJmZvcnVtX25hbWU9bmV0LXNubXAtY29kZXJzCgoyMDExLTAxLTE0IDA2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICByZW1vdmUgY29tcGxldGVseSB1c2VsZXNzIGFuZCBub25zZW5zaWNhbCBjb2RlCgoyMDExLTAxLTEzIDE3OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhbGxvY2F0ZSBzcGFjZSBmb3IgYXJyYXkgTlVMTCB0ZXJtaW5hdGlvbgoKMjAxMS0wMS0xMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBFbnN1cmUgcmVsZWFzZXMgYXJlIGluc3RhbGxlZCB0byB0aGUgY29ycmVjdCBwYXRoIHdpdGhpbiB0aGUKICAgL3RhZ3MgU1ZOIHRyZWUKCjIwMTEtMDEtMTMgMTU6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYzoKCiAgIFJlbW92ZSBDKysgY29tbWVudHMKCjIwMTEtMDEtMTMgMTM6MTcgIGR0czEyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIEZpeCBicm9rZW4gcGF0Y2gKCjIwMTEtMDEtMTMgMTI6MTQgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CgogICBDb25maWd1cmUgZml4ZXMgZm9yIERyYWdvbkZseSBzdXBwb3J0CgoyMDExLTAxLTEzIDEyOjA0ICBkdHMxMgoKICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5Lmg6CgogICBDb2RlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAoKMjAxMS0wMS0xMyAxMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzoKCiAgIEZpeCB0eXBvCgoyMDExLTAxLTEyIDIxOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgbWVyZ2UgZHVwbGljYXRlZCBzaHV0ZG93biBmdW5jdGlvbnMKCjIwMTEtMDEtMTIgMjA6MTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIFJlaW1wbGVtZW50IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKCkgYnkgYWRkaW5nIHRoZSBmbGFnCiAgIE5FVFNOTVBfSVRFUkFUT1JfT1dOU19JSU5GTyBmb3IKICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvLiBSZW1vdmUKICAgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3JfaGFuZGxlcjIoKSBiZWNhdXNlIGl0IGlzIG5vdwogICBzdXBlcmZsdW91cy4KCjIwMTEtMDEtMTIgMTk6MjIgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgdGhhdCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IKICAgbmV0c25tcF9jZXJ0c19hZ2VudF9pbml0KCkuCgoyMDExLTAxLTEyIDE5OjIwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jOgoKICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcgaW4KICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jLgoKMjAxMS0wMS0xMiAxOTowNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoKSB0aGF0IHdhcwogICBpbnRyb2R1Y2VkCiAgIGluIHIxOTgwOCAoInNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YKICAgY2xvc2VkIHNlc3Npb25zIikuCgoyMDExLTAxLTEyIDE1OjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcDogcGF0Y2g6IDMwOTY3MjU6IHN5c09SVGFibGUgcmVnaXN0YXRpb24gZm9yCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliCiAgIAogICBvcmlnaW5hbCBwYXRjaCBmaXhlZCBzZXZlcmFsIGlzc3Vlcywgb3RoZXIgcGFydHMgYXBwbGllZCBlYXJsaWVyCgoyMDExLTAxLTExIDE3OjI3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBkbyBub3QgaW5jbHVkZSBpcHY2IHN0cnVjdCBpZiBpcHY2IGlzIG5vdCBlbmFibGVkCgoyMDExLTAxLTExIDE2OjA0ICBkdHMxMgoKICAgKiBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbjoKCiAgIFJlY29nbmlzZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zIChhbmQgZ2VuZXJhbCB0aWR5aW5nCiAgIHVwKQogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgCiAgIFFuOiBTaG91bGQgdGhlc2UgYmUgdXBkYXRlZCB0byByZWZlciB0byBOZXQtU05NUCAocmF0aGVyIHRoYW4KICAgVUNEKT8KCjIwMTEtMDEtMTEgMTY6MDEgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgICAKICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzZWRzY3JpcHQuaW46CgogICBEZWZpbmUgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcwogICAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDE1OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgTmV0QlNEIERyYWdvbkZseSBzdXBwb3J0IGZvciBVRFAgJiBUQ1AgdGFibGVzCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxNDo0MSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgQ0hBTkdFUzogTmV0QlNEOiBEcmFnb25GbHkgc3VwcG9ydAogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTQ6MzYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgTmV0QlNEL0RyYWdvbkZseSAnc3RydWN0IGlmbmV0JyByZXF1aXJlcyBLRVJORUwsIGJ1dCBub3QgX0tFUk5FTAogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCgoyMDExLTAxLTExIDEzOjM0ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIEJpbGwgRmVubmVyOiBmaXggc2VuZGluZyBvZiBVRFAgcmVzcG9uc2VzCiAgIGZyb20gbXVsdGlob21lZCBhZ2VudHMuCiAgIAogICBUcnkgdG8gc2VuZCB0aGUgcmVzcG9uc2UgYXMgaXQgd2FzIGJlZm9yZSBOZXQtU05NUCA1LjYgKGFzc3VtaW5nCiAgIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0IHdhcyB1bmljYXN0KSBhbmQgb25seSBpZiBpdCBmYWlscyB0cnkgdG8KICAgc2V0IGlmX2luZGV4ICh0aGUgcmVxdWVzdCBtdXN0IGJlIGJyb2FkY2FzdCkuCgoyMDExLTAxLTExIDEzOjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBSZWFsbHkgaGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnCiAgIChtaXNzaW5nIGVsZW1lbnQgZnJvbSBTVk4gcmV2aXNpb24gMTk4NDEpCgoyMDExLTAxLTExIDEyOjI0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMjoxNCAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBNaXNzaW5nIHR5cGUgdW5kZXIgZGFyd2luCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBOZXRCU0Qgc3VwcG9ydCBmb3IgRGlzayBJL08gc3RhdHMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjAxICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBIYW5kbGUgc3lzdGVtcyB3aXRoICdzdHJ1Y3QgdGltZXNwZWMgaWZuZXQuaWZfbGFzdGNoYW5nZScgKHJhdGhlcgogICB0aGFuIHN0cnVjdCB0aW1ldmFsKQogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTE6MjcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaDoKCiAgIFB1bGwgaW4ga2VybmVsX25ldGJzZCBtb2R1bGUgd2hlbiByZXF1aXJlZAogICBbQmFzZWQgb24gZml4IGZyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEwOjM2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBDSEFOR0VTOiBOZXRCU0Q6IFJldHJpZXZlIE1JQi1JSSBuZXR3b3JrIHN0YXRpc3RpY3MgdmlhIHN5c2N0bAogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMDc6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggZm9yIHBjaV9sb29rdXBfbmFtZSBhbmQgUkhFTDQKCjIwMTEtMDEtMTAgMTY6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCiAgIChUaGUgcGF0Y2ggZnJvbSB0aGUgTmV0QlNEIGFyY2hpdmUgYXBwZWFycyB0byBiZSBlc3NlbnRpYWxseSB0aGUKICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKCjIwMTEtMDEtMTAgMTY6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTAgMTQ6NTUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOgoKICAgQ0hBTkdFUzogTmV0QlNEOiBVcGRhdGUgbWVtb3J5IGFuZCBDUFUgc3RhdGlzdGljcyBoYW5kbGluZwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTAgMTQ6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRml4IGRpdmlkZS1ieS16ZXJvIGVycm9yIGluIENQVSBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wOSAyMjo1NCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIENIQU5HRVM6IE9wZW5CU0Q6IFVwZGF0ZSBTV1J1biBjb2RlIHRvIHVzZSBrdm1fZ2V0cHJvYzIKICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wOSAyMTozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENIQU5HRVM6IGJ1aWxkOiBPcGVuQlNEOiBGaXggb3JkZXIgb2YgaGVhZGVycyB3aGVuIGNoZWNraW5nCiAgIDxuZXRpbmV0L2luX3BjYi5oPgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA5IDE5OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgQW1lbmQgaG93IG11bHRpLUNQVSBzdGF0aXN0aWNzIGFyZSByZXRyZWl2ZWQgdXNpbmcgc3lzY3RsIG9uCiAgIE9wZW5CU0Qgc3lzdGVtcwogICAoaWYgdGhpcyBibG9jayB3YXMgYWN0aXZlLCB3aGljaCBpdCBpc24ndCwgYnV0IHRoYXQncyBub3QKICAgaW1wb3J0YW50IHJpZ2h0IG5vdCkKICAgW0Jhc2VkIG9uIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSwgYW1lbmRlZCAocHJvYmFibHkgd3JvbmdseSkgYnkKICAgRFRTXQoKMjAxMS0wMS0wOSAxODoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jOgoKICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgoKMjAxMS0wMS0wOSAxODoxMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgoKICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgoKMjAxMS0wMS0wOCAwODozMCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeCAtLXdpdGgtc2VjdXJpdHktbW9kdWxlcyBoYW5kbGluZwogICBBbGxvdyByZXBlYXRlZCBtb2R1bGVzICh0c20sdHNtKSBhcyB3ZWxsIGFzIGRlZmFpbHQgbW9kdWxlcyAodXNtKQogICBNb3ZlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBmaWxlcyBhZnRlciB0aGUgY2hlY2tpbmcKCjIwMTEtMDEtMDggMDA6NDcgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVcGRhdGUgYWNjb25maWcuaCB3aXRoIGNoYW5nZXMgZnJvbSByMTk4MTkuCiAgIFJlcnVuIGF1dG9oZWFkZXIuCgoyMDExLTAxLTA3IDIwOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQ0hBTkdFUzogT3BlbkJTRDogU3VwcG9ydCB1cGRhdGluZyB0aGUgcm91dGluZyB0YWJsZQogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDIwOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgU2V0ICduZXh0JyBmaWVsZCBmb3IgdWRwIGVudHJ5IGxpbmtlZCBsaXN0IG9uIE9wZW5CU0Q0CiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgCiAgIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHNldCBpbiA8bmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaD4KCjIwMTEtMDEtMDcgMjA6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQogICBbQmFzZWQgb24gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAyMDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW92ZSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgbWV0aG9kIHdoZXJlIGl0J3MgdXNlZC4KICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdpdGhvdXQgSUZNX1RPS0VOCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTQ6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jOgoKICAgVXBkYXRlIHJldHJpZXZhbCBvZiBjYWNoZSB1c2FnZSBzdGF0aXN0aWNzIG9uIEZyZWVCU0QKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNDoyMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEluY3JlYXNlIG1heGltdW0gc2l6ZSBvZiBleGVjdXRlIG91dHB1dCBjYWNoZQogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE0OjA5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUgZGlyZWN0aXZlcwogICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTM6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBSVEZfTExJTkZPIGlzIG5vdCBkZWZpbmVkCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTM6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEluY2x1ZGUgemZzIG1vdW50IHBvaW50cyBmb3IgZGlzayByZXBvcnRzIHVuZGVyIEZyZWVCU0QKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzozNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oOgoKICAgUHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlLWluY2x1c2lvbgogICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTM6MjQgIGR0czEyCgogICAqICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2tleXRvb2xzLmMsICAKICAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBJbmNsdWRlIDx1bmlzdGQuaD4KICAgW0Zyb20gQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTM6MjEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMuCiAgIChQYXJ0IG9mIHBhdGNoICMyOTc1MjU0IC0gc2VlIFNWTiByZXZpc2lvbiAxOTgwOCkKCjIwMTEtMDEtMDcgMTI6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIEZyZWVCU0QgdXNlcyBhIHNsaWdodGx5IGRpZmZlcmVudCBuYW1pbmcgc2NoZW1lIGZvciBzdHJ1Y3QgaWZyZXEKICAgW0Zyb20gRnJlZUJTRCBwYXRjaGVzIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEyOjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgRW5zdXJlIFRDUCB0YWJsZSBpbmZvcm1hdGlvbiBpcyBsb2FkZWQgYmVmb3JlIGNvdW50aW5nCiAgIGNvbm5lY3Rpb25zCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDYgMTk6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBGaXggZG9jdW1lbnRhdGlvbiBidWcgcG9pbnRlZCBvdXQgaW4gY3BhbiBidWcgIzUyNjE4CgoyMDExLTAxLTA2IDE0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkCiAgIHNlc3Npb25zCiAgIAogICBRbjogU2hvdWxkIHRoaXMgYWxzbyBiZSBhcHBsaWVkIHdoZW4gbWFpbiBzZXNzaW9uIGlzIE5VTEw/CgoyMDExLTAxLTA2IDEzOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEZpeCBtaXNsZWFkaW5nIGluZGVudGF0aW9uCiAgIAogICBRbjogU2hvdWxkIHRoaXMgY2FsbCAnc3ViYWdlbnRfc3RhcnR1cCcgcmF0aGVyIHRoYW4KICAgJ2FnZW50eF9yZW9wZW5fc2Vzc2lvbic/CiAgIFFuOiBXaHkgZG9lc24ndCB0aGlzIGF0dGVtcHQgdG8gcmUtb3BlbiB0aGUgc2Vzc2lvbiBpZiBpdCB3YXMKICAgb3JpZ2luYWxseSBOVUxMPwoKMjAxMS0wMS0wNiAxMjo0NiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NDE4MTE6IEhhbmRsZSBzdWNjZXNzZnVsIHJlcXVlc3RzIHdpdGgKICAgcmVxSUQgMAoKMjAxMS0wMS0wNiAwOTozOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBTcGVsbGluZyBmaXg6IEluaXRpYWx6aWVzIC0+IEluaXRpYWxpemVzLgoKMjAxMS0wMS0wNiAwOTozNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3IyKCkuCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMigpLgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9oYW5kbGVyX293bnNfaXRlcmF0b3JfaW5mbygpLgogICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZCBieSBzbm1wTm90aWZ5VGFibGUuCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBsZWFrLWF0LWV4aXQgdHJpZ2dlcmVkIGJ5CiAgIHNubXBUYXJnZXRBZGRyVGFibGUuCiAgIEFsc28sIHJlc3RvcmVkIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mCiAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IoKS4KCjIwMTEtMDEtMDYgMDQ6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGluY2x1ZGUgc3lzL3NvY2tldC5oIGlmIGF2YWlsYWJsZQoKMjAxMS0wMS0wNSAxNDowNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzEzNDMyMzogRml4IGNyYXNoIHdoZW4gY29tcGFyaW5nIGludmFsaWQKICAgT0lEcwoKMjAxMS0wMS0wNSAxNDowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogQlVHUzogMzE1MTI1NDogRml4IGNyYXNoIHdpdGggaW52YWxpZAogICB0cmFwaGFuZGxlIGRpcmVjdGl2ZQoKMjAxMS0wMS0wNSAwOTo1NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgRXhwYW5kIHRhYiBjaGFyYWN0ZXJzCgoyMDExLTAxLTA0IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGVjayB0aGF0IHRoZSBhcmd1bWVudCB0bwogICBuZXRzbm1wX3RyYW5zcG9ydF9jb3B5IGlzIG5vbi1OVUxMCgoyMDExLTAxLTA0IDE4OjI0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQoKMjAxMS0wMS0wNCAxMjowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBXaW4zMiBNSUItSUkKICAgaW1wbGVtZW50YXRpb24uCgoyMDExLTAxLTAzIDE5OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgoKICAgUmVtb3ZlZCB0d28gdW51c2VkIHZhcmlhYmxlcy4KCjIwMTEtMDEtMDMgMTk6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIGFuZCBhcmd1bWVudCBsaXN0LgoKMjAxMS0wMS0wMyAxOTo0NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBHZXQgcmlkIG9mIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MgYnkgYWRkaW5nIHR3bwogICAjaW5jbHVkZSBkaXJlY3RpdmVzIGFuZCBjb21tZW50aW5nIG91dCB0d28gdW51c2VkIGZ1bmN0aW9ucy4KCjIwMTEtMDEtMDIgMDU6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZG9uJ3QgZnJlZSBjYWxsZXJzIHB0cgoKMjAxMS0wMS0wMiAwNTo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBjbGVhbiB1cCBTTk1QX0ZSRUUgdXNhZ2UKCjIwMTEtMDEtMDIgMDU6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gZGVidWcgdG9rZW4KCjIwMTEtMDEtMDIgMDU6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lIGluIHByb3RvdHlwZQoKMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTEtMDEtMDIgMDU6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW1vdmUgaW5saW5lIHZlcnNpb25zIG9mIGNvbnRhaW5lciBmdW5jcwoKMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkb250IHJldHVybiBlbXB0eSBhcnJheQoKMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGZpeCB0eXBvcy9ncmFtbWFyIGluIG1hbiBwYWdlcy9jb21tZW50cyAobm8gY29kZSBjaGFuZ2VzKQoKMjAxMS0wMS0wMiAwNTo0NSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIG5ldyB0cmFuc3BvcnQgY29uZmlnIHRva2VucwogICBsb2NhbENlcnQvcGVlckNlcnQsCiAgIGRlcHJlY2F0ZSBvdXJfaWRlbnRpdHksIHRoZWlyX2lkZW50aXR5CgoyMDExLTAxLTAyIDA1OjQ1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmLCAgIAogICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBORVdTOiBzbm1wbGliOiBpbnRyb2R1Y2UgbmV3IGxvY2FsQ2VydC9wZWVyQ2VydCwgZGVwcmVjYXRlCiAgIHNlcnZlckNlcnQsIGNsaWVudENlcnQsIGRlZlg1MDlTZXJ2ZXJQdWIsIGRlZlg1MDlDbGllbnRQdWIKCjIwMTEtMDEtMDIgMDU6NDQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgSVB2NiBzdXBwb3J0IHRvIERUTFNVRFAgdHJhbnNwb3J0CiAgIENIQU5HRVM6IHNubXBsaWI6IHVzZSBuZXcgbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlIGluCiAgIG5ldHNubXBfYWRkcl9wYWlyCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBiYXNlX3RyYW5zcG9ydCBwdHIgZm9yIHR1bm5lbGVkIHRyYW5zcG9ydHMKCjIwMTEtMDEtMDIgMDU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogc2tpcCBub24tQUZfSU5FVCBpbnRlcmZhY2VzIHdoZW4gbG9hZGluZyBpcHY0CiAgIGFkZHJzCgoyMDEwLTEyLTI5IDAxOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIE5FV1M6IHNubXBkOiBQYXRjaCAzMTQxNDYyOiBmcm9tIGZlbm5lcjogZml4IGFnZW50eCBzdWJhZ2VudAogICBpc3N1ZXMgd2l0aCBtdWx0aXBsZS1vYmplY3QgcmVxdWVzdHMKCjIwMTAtMTItMjkgMDE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IFBhdGNoIGZyb20gTmllbHMgdG8gZml4IFZBQ00gcGVyc2lzdGFudCBzdG9yYWdlLgoKMjAxMC0xMi0yMSAxMToyOSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBCcmluZyBhbGwgdmVyc2lvbnMgb2YgbWFrZXJlbGVhc2UueG1sIGludG8gbGluZQoKMjAxMC0xMi0yMSAwNjoxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaDoKCiAgIGZpeCBjb25maWd1cmluZyB3aXRoIC0tZGlzYWJsZS1kZWJ1Z2dpbmcKCjIwMTAtMTItMjAgMjM6MjcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFBhdGNoIGZyb20gTWFnbnVzIHRvIGZpeCBpZiAhIHRlc3RzIG9uIHNvbGFyaXMKCjIwMTAtMTItMTQgMjA6MTAgIHJzdG9yeQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGZpeCB0eXBvIGluIG1hbiBwYWdlCgoyMDEwLTEyLTEwIDE1OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBhdGNoIGZyb20gQ2xhdXMgS2xlaW4gdG8gZml4IGVuZ2luZWlkIGdlbmVyYXRpb24KICAgb24gb3V0Z29pbmcgdjMgdHJhcHMgZnJvbSB0aGUgYWdlbnQKCjIwMTAtMTItMDggMTM6MTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIG5ld2x5IGNyZWF0ZWQvZGVzdHJveWVkIGludGVyZmFjZXMgdG8KICAgaXB2NklmVGFibGUKICAgCiAgIFRoZSBsaXN0IG9mIGludGVyZmFjZXMgd2FzIG5ldmVyIHJlZnJlc2hlZCwgbm93IGl0IGlzIHJlbG9hZGVkCiAgIGV2ZXJ5IHRpbWUgdGhlCiAgIHRhYmxlIGlzIGFjY2Vzc2VkLiBJJ3ZlIGFsc28gZml4ZWQgYSBtZW1vcnkgbGVhayBhbmQgb3B0aW1pemVkCiAgIHRoZSBsb2FkaW5nCiAgIG9mIHRoZSBsaXN0IGEgYml0LgoKMjAxMC0xMi0wNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYzoKCiAgIFBhdGNoIGZyb20gTmllbHMgdG8gcmVtb3ZlIGV4dHJhIGhlYWRlcnMgZnJvbSB0aGUgbGludXggZG90M3N0YXRzCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTEyLTA2IDIyOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDaGVjayBmb3IgdGhlIG1pbmltdW0gcmVxdWlyZWQgZnVuY3Rpb24gaW4gT3BlblNTTCBmb3IgRFRMUwogICBzdXBwb3J0CgoyMDEwLTEyLTA2IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjYWxsIG5ldHNubXBfY2VydHNfYWdlbnRfaW5pdCBzb29uZXIsIGZpeGluZyBzbm1wdHJhcGQgKEQpVExTCiAgIHN1cHBvcnQKCjIwMTAtMTItMDYgMTY6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIGZpeCBjb250ZXh0RW5naW5lSURzIGZvciBvdXRnb2luZyBpbmZvcm1zIGZyb20gc25tcGluZm9ybSB0byBiZQogICB0aGUgbG9jYWwgZW5naW5lSUQKCjIwMTAtMTItMDEgMjE6MTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggY29uZmxpY3RpbmcgZGVjbGFyYXRpb25zCgoyMDEwLTEyLTAxIDAxOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFBhdGNoIGZyb20gbWFnZnIgdG8gZml4IGJ1aWxkaW5nIHdpdGhvdXQgb3BlbnNzbAoKMjAxMC0xMi0wMSAwMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAoKMjAxMC0xMS0zMCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBpbXBsZW1lbnQgRFRMUyBjb29raWVzIHNlbWktcHJvcGVybHkgKHN0YXRlIGlzIHN0aWxsIHNhdmVkLCB3aGljaAogICBzdGlsbCBuZWVkcyB0byBjaGFuZ2UpCgoyMDEwLTExLTMwIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDkwMjk6IGZyb20gZmVubmVjOiBmaXggYSBtZW1vcnkgbGVhayB3aXRoCiAgIHNubXAgYnVsa3dhbGtzCgoyMDEwLTExLTMwIDIzOjE2ICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDoKICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwoKMjAxMC0xMS0zMCAyMzoxMiAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDoKICAgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCjIwMTAtMTEtMzAgMjI6MTggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmV2ZXJ0ZWQgMTk3MDEgKGV0aHRvb2wpIGFzIGl0IGJyb2tlIHRoaW5ncwoKMjAxMC0xMS0zMCAyMTowOCAgbmJhCgogICAqIGFwcHMvc25tcHRscy5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYzoKCiAgIHVfaW50MzJfdCBpcyBsZXNzIHBvcnRhYmxlIHRoYW4gdWludDMyX3QgKFNvbGFyaXMgMTEpCgoyMDEwLTExLTMwIDIwOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBhIGNvbXBpbGUgd2FybmluZyBhYm91dCBhIG5lc3RlZCBpZiB3aXRob3V0IGEgYmxvY2sKCjIwMTAtMTEtMzAgMTk6NTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZXJyb3IgY2hlY2sgdGhlIHJpZ2h0IHBvaW50ZXIgYWZ0ZXIgYXR0ZW1wdGluZyBhbGxvY2F0aW9uCgoyMDEwLTExLTMwIDA1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBORVdTOiBhcHBzOiBQQVRDSCAzMDU0ODE3OiBmcm9tIG5pZ2h0Y29kaW5nOiBBZGRzIHBlci12YXJpYWJsZQogICB0aW1lZCBvdXRwdXQgc3VwcG9ydCB0byBzbm1wd2FsayB1c2luZyAtQ1QKCjIwMTAtMTEtMzAgMDU6NTYgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU3MDkwOiBmcm9tIHNoZW1taW5nZXI6IG1ha2UgZXRodG9vbAogICBzdXBwb3J0IG9uIGxpbnV4IHVzZSB0aGUgaGlnaCBzcGVlZCBzdHJ1Y3QgaW5mbyBmb3IgMTAwRysuCgoyMDEwLTExLTMwIDA1OjQ3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSCAzMDU3MDkzOiBmcm9tIHNoZW1taW5nZXI6IGFsbG93IGxpbnV4IHRvIHVzZQogICBsaWJwY2kgZm9yIGNyZWF0aW5nIHVzZWZ1bCBpZkRlc2NyIHN0cmluZ3MKCjIwMTAtMTEtMzAgMDQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0ggMzA3NDkxODogZnJvbSB3ZWl6aGVuZzogY2hlY2sgZm9yIENPTlRBSU5FUl9JTlNFUlQKICAgZmFpbHVyZXMgYW5kIHJlYWN0IGFwcHJvcHJpYXRlbHkgdG8gYXZvaWQgbWVtb3J5IGxlYWtzCgoyMDEwLTExLTMwIDA0OjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgZGVidWcgZm9yIGNlcnQgZmluZCBoaW50IGFzIHN0cmluZy9pbnQKCjIwMTAtMTEtMzAgMDQ6MzAgIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gTkVUU05NUF9EU19MSUJfQVBQVFlQRSwKICAgYnJlYWsgb3V0CiAgIGNlcnQgdGFibGUgaW5pdHMgdG8gbmV3IGFnZW50IGNlcnQgaW5pdCBmdW5jdGlvbiwgY2FsbGVkIGZyb20KICAgaW5pdF9hZ2VudC4KCjIwMTAtMTEtMzAgMDQ6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogZW5mb3JjZSBtYXggbGVuZ3RoIG9uIFRMUyBzZWNOYW1lIG1hcHMKICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBwcmlvcml0eSB0byBzZWNuYW1lIGRlYnVnZ2luZwoKMjAxMC0xMS0yOSAyMjoyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBkZWJ1ZyBmb3Igc3NsIGNpcGhlcnMsIGNsYXJpZnkgZmluZ2VycHJpbnQKICAgbWF0Y2ggZGVidWcKCjIwMTAtMTEtMjkgMjI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiB1c2UgY2FjaGUtdW5pcXVlIGlkIGluc3RlYWQgb2YgaGFuZGxlciBuYW1lIGZvcgogICBzaGFyZWQKICAgY2FjaGUgcmVsb2FkIHByb3RlY3Rpb24KCjIwMTAtMTEtMTkgMTU6MjUgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jOgoKICAgTmllbHMsIE5pZWxzLCB5b3Ugc2hvdWxkIGtub3cgYmV0dGVyIHRoYW4gbWFraW5nIGxhc3QgbWludXRlCiAgIGNoYW5nZXMgdG8gYQogICBwYXRjaCBhbmQgdGhlbiBjb21taXQgaXQgd2l0aG91dCB0ZXN0aW5nIDotKAoKMjAxMC0xMS0xOCAxMTowNCAgYnZhc3NjaGUKCiAgICogIC4sICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYzoKCiAgIEFwcGxpZWQgcjE5Njg4IG9uIHRoZSB0cnVuayB0b28gKGZvbGxvdy11cCBmb3IgcjE5Njg1KS4KCjIwMTAtMTEtMTggMDM6NDkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogZG9uJ3Qgc2Vjb25kLWd1ZXNzIGNhY2hlIGhhbmRsZXIKICAgCiAgICh3YXZlcyBoYW5kKSB0aGlzIGlzIG5vdCB0aGUgZnVuY3Rpb24geW91IGFyZSBsb29raW5nIGZvci4KICAgCiAgIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQoKSBpcyBub3QgbWVhbnQgZm9yIG1pYiBtb2R1bGVzCgoyMDEwLTExLTE3IDE5OjU5ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBNb3JlIHByb2N0aW9uIGFnYWluc3Qgb3ZlcmZsb3dpbmcgc25wcmludGYKCjIwMTAtMTEtMTcgMTk6NTcgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBEb250IHVzZSBmaXJzdCBlbGVtZW50IG9mIG9pZCB0byBzYXZlIGlmSW5kZXggLSBpdCBjYW4gb25seSBiZQogICAwLi4yCiAgIFNlY29uZCBlbGVtZW50IGlzIG9ubHkgMC4uMzksIHNvIHdlIGhhdmUgdG8gdXNlIGEgdGhpcmQgZWxlbWVudC4KCjIwMTAtMTEtMTcgMTk6MzkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgCiAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIFRlc3QgZ2V0ZnNzdGF0L2dldHZmc3N0YXQgaW4gdGltZSBmb3IgbW9kdWxlIHNlbGVjdGlvbgoKMjAxMC0xMS0xNyAxOTozNyAgbmJhCgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgUmVtb3ZlIGJvZ3VzIHRlc3QgZm9yIGZsYWdzPT0wIChPX1JET05MWT09MCkuIE1ha2VzCiAgIHVkcEVuZHBvaW50VGFibGUgd29yayBhZ2FpbgoKMjAxMC0xMS0xNyAwNDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGRvdWJsZSBmcmVlIGluIFRMUyBlcnJvciBoYW5kbGluZwoKMjAxMC0xMS0xNiAxMDozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlOgoKICAgUmV2ZXJ0ZWQgTWluR1ctc3BlY2lmaWMgY2hhbmdlcyBmcm9tIHIxOTU0OSBzdWNoIHRoYXQgdGVzdCBUMDY1CiAgIHBhc3NlcyBhZ2FpbiBvbiBNaW5HVy4KCjIwMTAtMTEtMTYgMTA6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIENIQU5HRVM6IExpbnV4OiBhZ2VudDogaXBOZXRUb1BoeXNpY2FsVGFibGU6IERvIG5vdCBsb2cgYW4gZXJyb3IKICAgbWVzc2FnZSBpZiBvbmUgb3IgbW9yZSBpbnRlcmZhY2VzIGFyZSBwcmVzZW50IHRoYXQgZG8gbm90IGhhdmUKICAgc3VjaCBpbmZvcm1hdGlvbiAoTlVEX05PQVJQKSwgZS5nLiB0dW5uZWxzLiBSZXBvcnRlZCBieSBTdGVwaGVuCiAgIEhlbW1pbmdlci4gU2VlIGFsc28gcGF0Y2ggIzMxMDcwMDMuCgoyMDEwLTExLTE1IDE0OjE1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGJ1Z3MgaW4gYXNuX3BhcnNlX3Vuc2lnbmVkX2ludDY0KCksCiAgIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NCgpLCBhc25fcGFyc2Vfc2lnbmVkX2ludDY0KCkgYW5kCiAgIGFzbl9idWlsZF9zaWduZWRfaW50NjQoKS4gTW9zdCBidXQgbm90IGFsbCBvZiB0aGVzZSBidWdzIHdlcmUKICAgc3BlY2lmaWMgdG8gNjQtYml0IHN5c3RlbXMuIEZpeGVzIGJ1ZyAjMzA5MzE5OS4KCjIwMTAtMTEtMTUgMTM6MzIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOGFzbjFfY2xpYi5jOgoKICAgQXZvaWQgdHJpZ2dlcmluZyB0cnVuY2F0aW9uIHdhcm5pbmdzLgoKMjAxMC0xMS0xNSAxMzoxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CgogICBSZXN0cmljdGVkIGFsbCBjb25zdGFudHMgdG8gMzIgYml0cy4KCjIwMTAtMTEtMTUgMTI6MzUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgRm9sbG93LXVwIGZvciByMTk2NjUuCgoyMDEwLTExLTE1IDEyOjMzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2VkIHRoZSBhcmd1bWVudCB0eXBlIG9mCiAgIGRlYnVnX3JlZ2lzdGVyX3Rva2VucygpIGZyb20gY2hhciAqIGludG8gY29uc3QgY2hhciAqLgoKMjAxMC0xMS0xNSAxMDo1NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CgogICBBZGRlZCB1bml0IHRlc3QgZm9yIEFTTi4xIGVuY29kaW5nIGFuZCBkZWNvZGluZyAob25seSAzMi1iaXQgYW5kCiAgIDY0LWJpdAogICBpbnRlZ2VycyBzbyBmYXIpLgoKMjAxMC0xMS0xMSAyMjo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEZpeCByMTk2MzY6IFRyYXBPSUQgaXMgbm90IHRoZSBmaXJzdCB2YXJiaW5kIGluIHRoZSBjb252ZXJ0ZWQgdjIKICAgdHJhcAoKMjAxMC0xMS0xMSAwODozOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBDbGVhbnVwOiBSZW1vdmVkIHN1cGVyZmx1b3VzIHJlZmVyZW5jZXMgdG8gdGhlIFBPU0lYIHRocmVhZHMKICAgbGlicmFyeS4KCjIwMTAtMTEtMTEgMDg6MjAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NjYwOiBVc2UgcGlkX3QgY29uc2lzdGVudGx5LgoKMjAxMC0xMS0xMCAxNjozNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBJbnRyb2R1Y2VkIG5ldHNubXBfcGlkX3QuCiAgIENIQU5HRVM6IFdpbjMyOiBFbGltaW5hdGVkIGNhc3RzIGJldHdlZW4gaW50IGFuZCBIQU5ETEUgaW4KICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jIGFuZAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYy4KCjIwMTAtMTEtMTAgMTU6NDkgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgRm9sbG93LXVwIGZvciByMTk2MDY6IGNtdV9jb21wYXQgcmVtb3ZhbC4KCjIwMTAtMTEtMTAgMTI6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogQlVHOiAzMTAyOTA0OiBBbGwgTmV0LVNOTVAgQyBzb3VyY2UgZmlsZXMgYXJlIG5vdwogICBjb21waWxlZCB3aXRoIC1mbm8tc3QKICAgcmljdC1hbGlhc2luZywgYXQgbGVhc3QgaWYgdGhlIGNvbmZpZ3VyZWQgY29tcGlsZXIgc3VwcG9ydHMgdGhpcwogICBmbGFnLgoKMjAxMC0xMS0wOSAxMzo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZToKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFRlc3QgVDAzMCBkb2VzIG5vdyBwYXNzIG9uIE1pbkdXLgoKMjAxMC0xMS0wOSAxMzo0MCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIHNpbXBsZV9ldmFsX3Rvb2xzLnNoOiBSZW1vdmVkIGEgc3VwZXJmbHVvdXMgSVNERUZJTkVEIGludm9jYXRpb24uCgoyMDEwLTExLTA5IDEyOjA0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGU6CgogICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KCjIwMTAtMTEtMDkgMTE6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NjQ2LgoKMjAxMC0xMS0wOSAxMTozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBJZiB0aGUgYWdlbnQgaGFzIGJlZW4gYXNrZWQgdG8gc3RvcCwKICAgd2FpdCB1bnRpbCB0aGUgc25tcGQgcHJvY2VzcyBkaXNhcHBlYXJlZCBiZWZvcmUgcHJvY2VlZGluZy4KCjIwMTAtMTEtMDkgMTA6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGNvbTJzZWM2IGRpcmVjdGl2ZTogSWYgY29uZmlndXJlIGhhcyBub3QgZm91bmQKICAgZ2V0YWRkcmluZm8oKSwgbm9uLW51bWVyaWMgSVB2NiBhZGRyZXNzZXMgZG8gbm93IHRyaWdnZXIgYW4gZXJyb3IKICAgbWVzc2FnZS4KCjIwMTAtMTEtMDggMTU6MzYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZToKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFRlc3QgNzEgKGNvbTJzZWM2X3NpbXBsZSkgZG9lcyBub3cgc3VjY2VlZCBldmVuCiAgIGlmIElQdjYgRE5TIHJlc29sdXRpb24gaXMgbm90IGF2YWlsYWJsZS4KCjIwMTAtMTEtMDggMTU6MDIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIE1pbkdXLCB0ZXN0aW5nOiBjbGliIHRlc3RzIGJ1aWxkIGFnYWluIHdpdGhvdXQgd2FybmluZ3MuCgoyMDEwLTExLTA4IDE0OjUyICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBNaW5HVzogY29uZmlndXJlOiBEZXRlY3Rpb24gb2YgdGhlIGZ1bmN0aW9ucwogICBnYWlfc3RyZXJyb3IoKSwgZ2V0YWRkcmluZm8oKSwgZ2V0aG9zdGJ5bmFtZSgpIGFuZCBnZXRob3N0bmFtZSgpCiAgIGRvZXMgbm93IHN1Y2NlZWQuCgoyMDEwLTExLTA4IDE0OjQ4ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDdpbmV0X3B0b25fY2xpYi5jOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQWRkZWQgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpIHVuaXQgdGVzdC4KCjIwMTAtMTEtMDggMTQ6NDcgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIHRlc3Rpbmc6IGNsaWJfYnVpbGQ6IEFkZGVkICNpbmNsdWRlIGRpcmVjdGl2ZXMgKDxhcnBhL2luZXQuaD4gYW5kCiAgIDxuZXRpbmV0L2lwNi5oPikuCgoyMDEwLTExLTA4IDA4OjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgV2luMzI6IGFnZW50OiBlbGltaW5hdGVkIGNhc3RzIGZyb20vdG8gaW50IGZvciB0aHJlYWQgaGFuZGxlcy4KCjIwMTAtMTEtMDggMDc6NTggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgUmVtb3ZlZCBORVRTTk1QX1NUQVRJQ19JTkxJTkUgZnJvbSB0aGUgZGVjbGFyYXRpb24gb2YKICAgX2J1aWxkX2NhY2hlX25hbWUgLSBhdCBsZWFzdCBnY2MgaXMgYmV0dGVyIHRoYW4gYSBodW1hbiBhdAogICBkZWNpZGluZyB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGlubGluZWQgYW5kIHdoaWNoIG9uZXMgbm90LgoKMjAxMC0xMS0wOCAwNzo1NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBuZXRzbm1wX3RhYmxlX2RhdGFfY2xvbmVfcm93KCk6IEFkZGVkIG1pc3NpbmcgZnJlZSgpIHN0YXRlbWVudCBpbgogICBhbiBlcnJvciBwYXRoLgoKMjAxMC0xMS0wNyAyMToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjExOTcyNTogRml4IHNraXBORlNJbkhvc3RSZXNvdXJjZXMKICAgaGFuZGxpbmcgb2YgaHJTdG9yYWdlVGFibGUKCjIwMTAtMTEtMDcgMjE6MTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHN0cmR1cCBpbgogICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QgYW5kIGZhaWwgaWYgc3RyZHVwIGZhaWxzLgoKMjAxMC0xMS0wNyAxOTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMwOTY3MjU6IERvbid0IHJlZ2lzdGVyIHYxVHJhcCBjYWxsYmFjaywKICAgaWYgU05NUHYxIGlzIG5vdCBzdXBwb3J0ZWQKCjIwMTAtMTEtMDcgMTk6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxODQwMjMwOiBEb24ndCBpbmNsdWRlIHRoZSBpbmRleCBvYmplY3QgYXMKICAgKHBzZXVkby0pYWNjZXNzaWJsZSBjb2x1bW4uCgoyMDEwLTExLTA3IDE5OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzA5NjcyNTogSW5jbHVkZSBTTk1QdjEgdHJhcCBPSURzIGluCiAgIG5sbUxvZ05vdGlmaWNhdGlvbklEIGNvbHVtbgoKMjAxMC0xMS0wNyAxNjozNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmb3JjZSBhIDsgYXQgdGhlIGVuZCBvZiB0aGUgc3RhdGljX2Fzc2VydAogICBtYWNyby4KCjIwMTAtMTEtMDUgMTU6NDEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIE1hZGUgc3VyZSB0aGF0IHJwbUdldFBhdGgoKSBjYW4gYmUgZm91bmQgYnkgY29uZmlndXJlLgoKMjAxMC0xMS0wNSAxNDo1MCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CgogICBSZW1vdmVkIHN1cGVyZmx1b3VzIC1JL3Vzci9pbmNsdWRlL3JwbS4KCjIwMTAtMTEtMDUgMTI6MTggIGJ2YXNzY2hlCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBDSEFOR0VTOiBhZ2VudDogRmluZCBvdXQgd2hldGhlciBsaWJycG0gaXMgYXZhaWxhYmxlIGJlZm9yZQogICBjb25maWd1cmluZyB0aGUgYWdlbnQgbW9kdWxlcyBiZWNhdXNlIGhvc3QvZGF0YS9hY2Nlc3Mvc3dpbnN0CiAgIG5lZWRzIHN5bWJvbCBIQVZFX0xJQlJQTS4gQXMgYSByZXN1bHQsIGNvbmZpZ3VyZSBoYXMgdG8gYmUgcnVuCiAgIG9ubHkgb25jZSBpbnN0ZWFkIG9mIHR3aWNlIHRvIGVuYWJsZSB0aGUgaHJTV0luc3RhbGxlZCB0YWJsZSBvbgogICBzeXN0ZW1zIHRoYXQgaGF2ZSBsaWJycG0uCgoyMDEwLTExLTA1IDEyOjExICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmM6CgogICBTdXBwcmVzcyBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTExLTA1IDEwOjAwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IEZpeGVkIGEgbWVtb3J5IGxlYWsKICAgaW4gbmV0c25tX3N3aW5zdF9hcmNoX2luaXQoKS4KCjIwMTAtMTEtMDUgMDk6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGhvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbTogUGFzcyBjb3JyZWN0IHBhdGggdG8KICAgcnBtZGJPcGVuKCkgc3VjaCB0aGF0IG9wZW5pbmcgdGhlIGRhdGFiYXNlIHN1Y2NlZWRzLgogICBDSEFOR0VTOiBhZ2VudDogaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBMb2cgYW4gZXJyb3IgbWVzc2FnZQogICBpZiBycG1kYk9wZW4oKSBmYWlscy4KCjIwMTAtMTEtMDUgMDg6NTAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYzoKCiAgIFJtb24gLyBkaXNtYW4gY29tcGlsZXIgd2FybmluZyBmaXhlcy4KCjIwMTAtMTEtMDUgMDg6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgbWFjcm8gbmV0c25tcF9zdGF0aWNfYXNzZXJ0KCkuCgoyMDEwLTExLTA1IDA4OjQwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NTY2LgoKMjAxMC0xMS0wNSAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIFJlbW92ZWQgYSAoaGFybWxlc3MgPykgY2lyY3VsYXIgcmVmZXJlbmNlLgoKMjAxMC0xMS0wNCAxMzowOSAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIRVM6IDMwODMwMjc6IEZpeCBSUE0gc3BlYyBmaWxlIHRvIHN1cHBvcnQKICAgQ2VudE9TCgoyMDEwLTExLTAzIDEzOjIyICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZToKCiAgIHNraXAgdGxzaXB2NiB0ZXN0IGlmIG5vdCB0bHN0Y3AvdGNwaXB2NiBkb21haW5zCgoyMDEwLTExLTAxIDIzOjAzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIHN1cHBvcnQgZm9yIENNVSBjb21wYXRpYmlsaXR5IHNpbmNlCiAgIHRoZXJlIGlzIG5vIHdheSB0byBlbmFibGUgaXQgYW5kIG5vYm9keSBoYXZlIG1pc3NlZCBpdC4KCjIwMTAtMTEtMDEgMTY6NTAgIGR0czEyCgogICAqIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBSZXdvcmsgZGVzY3JpcHRpb24gb2YgT0lEIG5hbWUgaGFuZGxpbmcgdG8gYmUKICAgbm90IHF1aXRlIHNvIGluY3JlZGlibHkgb3V0IG9mIGRhdGUuCgoyMDEwLTExLTAxIDE2OjQ3ICBkdHMxMgoKICAgKiBtYW4vc25tcGdldC4xLmRlZjoKCiAgIERvY3VtZW50IC1DZiBpbiB0aGUgdHdvIG1hbiBwYWdlcyBzZXBhcmF0ZWx5LgoKMjAxMC0xMC0yOSAyMjozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbnVsbCBvdXQgYmlvIHBvaW50ZXJzIGFmdGVyIGJlaW5nIGZyZWVkOyBiYWlsIG9uIGNvbm5lY3Rpb24KICAgd2l0aCBubyBzc2wgcG9pbnRlcgoKMjAxMC0xMC0yOSAxNDozNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICBSZXZlcnRlZCBpbmNvcnJlY3QgY2hhbmdlcyBmcm9tIHIxOTU3NS4KCjIwMTAtMTAtMjkgMTQ6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYSBidWcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTk1MTUuCgoyMDEwLTEwLTI5IDE0OjAwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIFJldmVydGVkIHRoZSBpbmNvcnJlY3QgY2hhbmdlcyBmcm9tIHIxOTU5My4KCjIwMTAtMTAtMjkgMTM6MzggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBSZWR1Y2VkIG51bWJlciBvZiBsZWFrLWF0LWV4aXQgY29tcGxhaW50cyB0cmlnZ2VyZWQgYnkKICAgc25tcGxpYi9jZXJ0X3V0aWwuYy4KCjIwMTAtMTAtMjkgMTM6MzcgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIE1vcmUgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOSAxMzozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oOgoKICAgTW9yZSBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTI5IDEyOjE4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBsb2cgdGV4dHM6IGNvbnRhaW50ZXIgLT4gY29udGFpbmVyLgoKMjAxMC0xMC0yOSAwOTo1OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgUmFuIGZpbGx1cF9lbnRyeV9pbmZvKCkgdGhyb3VnaCBpbmRlbnQuCgoyMDEwLTEwLTI5IDA5OjU2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBOZXRsaW5rIElQdjYgcHJlZml4IHByb2Nlc3Npbmc6IEFkZGVkIG1vcmUgZGVidWcgc3RhdGVtZW50cy4KCjIwMTAtMTAtMjkgMDk6NTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIE1hZGUgYXJndW1lbnQgY2hlY2tpbmcgb2YgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbygpIG1vcmUKICAgc3RyaWN0LgoKMjAxMC0xMC0yOSAwOTo1MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaDoKCiAgIE1vcmUgTUlCLXNwZWNpZmljIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjkgMDc6NTYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYzoKCiAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcy4KCjIwMTAtMTAtMjggMTg6MzEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4IGNvbnN0IHF1YWxpZmllciB3YXJuaW5nCgoyMDEwLTEwLTI4IDE3OjUzICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ2xlYW4gb3V0IFNvbGFyaXMgd2FybmluZ3MKCjIwMTAtMTAtMjggMTc6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIExWTSBpcyBMaW51eCBvbmx5CgoyMDEwLTEwLTI4IDE3OjUxICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBBdm9pZCBjaGFyIHN1YnNjcmlwdHMgKHNpZ25lZCBjaGFyc1whKQoKMjAxMC0xMC0yOCAxNzo0MyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY2FzdHMgYW5kIGZvcm1hdCBzcGVjaWZpZXJzIGluIGRlYnVnIG91dHB1dAoKMjAxMC0xMC0yOCAxNzo0MSAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQ2FzdCB0byBzb2NrYWRkciB0byBhdm9pZCB3YXJuaW5nCgoyMDEwLTEwLTI4IDE3OjQwICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIFVudGFuZ2xlIHBpY2wgZnJvbSBrc3RhdCBhY2Nlc3Mgc28gaXQgY29tcGlsZXMgb24geDg2IFNvbHJhaXMKICAgMTAvT3BlblNvbGFyaXMKCjIwMTAtMTAtMjggMTU6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBNb3JlIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjggMTU6MTMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UyKCksCiAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKCksIG5ldHNubXBfY2xvbmVfd2F0Y2hlcl9pbmZvKCkKICAgYW5kIG5ldHNubXBfb3duc193YXRjaGVyX2luZm8oKS4gU2VlIGFsc28gdGhlIERveHlnZW4gY29tbWVudHMKICAgZm9yIG1vcmUgaW5mby4KCjIwMTAtMTAtMjggMTQ6MDIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgRml4IGxvZ2ljIG9mIHRlc3RpbmcgZm9yIG91dC1vZi1yYW5nZSBlbnVtIHZhbHVlcy4KICAgUmVwb3J0ZWQgYnkgQm9yaXMgWndlaW11ZWxsZXIuCgoyMDEwLTEwLTI4IDEyOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEdldCByaWQgb2YgT3BlblNTTC1yZWxhdGVkIGNvbXBpbGF0aW9uIHdhcm5pbmdzLiBTaG91bGQgd29yayBmb3IKICAgYm90aCBPcGVuU1NMIHZlcnNpb25zIDAuOS54IGFuZCAxLjAueC4KCjIwMTAtMTAtMjggMTE6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAobWlzbWF0Y2ggYmV0d2VlbiBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBhbmQgYXJndW1lbnQpIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjY1NjIuCgoyMDEwLTEwLTI4IDExOjQzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jOgoKICAgR2V0IHJpZCBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIG1lbWR1cCgpIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0xMC0yOCAxMTo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTk1NTAuCgoyMDEwLTEwLTI4IDExOjMyICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgUmV2ZXJ0ZWQgcjE5NTY1IGJlY2F1c2UgaXQgY2F1c2VkIGdjYyB0byByZXBvcnQgbW9yZSB3YXJuaW5ncwogICBpbnN0ZWFkIG9mIGxlc3MuCgoyMDEwLTEwLTI4IDExOjE4ICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTk1NjYuCgoyMDEwLTEwLTI4IDEwOjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgUGFydGlhbGx5IHJldmVydGVkIHIxOTUxNTogcmVtb3ZlZCB0aGUgbmV3bHkgaW50cm9kdWNlZCBmdW5jdGlvbnMKICAgYW5kIGRhdGEgbWVtYmVycyBhZ2FpbiwgYnV0IHdpdGhvdXQgcmVpbnRyb2R1Y2luZyB0aGUKICAgbGVhay1hdC1leGl0LgoKMjAxMC0xMC0yOCAxMDozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IHR3byBhcmd1bWVudHMgc3VjaCB0aGF0IGl0IGlzIG5vCiAgIGxvbmdlciBuZWNlc3NhcnkgdG8gY2FzdCB0aGVzZSB0d28gYXJndW1lbnRzIChoYXMgYmVlbiByZXZlcnRlZAogICB2aWEgcjE5NTY4KS4KCjIwMTAtMTAtMjggMDk6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY3Jhc2ggaW4gbmV0c25tcF9jYWNoZV9yZW1vdmUoKS4KCjIwMTAtMTAtMjggMDg6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBNYWRlIGl0IGVhc2llciB0byBlbmFibGUgdGhlIG1lbW9yeSBsZWFrIGNoZWNrZXIgYnVpbHQtaW4gaW4KICAgTVNWQydzIEMgcnVudGltZSBsaWJyYXJ5LgoKMjAxMC0xMC0yNyAyMDozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBTaXplb2YgaGFzIHR5cGUgc2l6ZV90CgoyMDEwLTEwLTI3IDIwOjM1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3QKCjIwMTAtMTAtMjcgMTg6NDAgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmM6CgogICBTcHJpbmtsZSBzb21lIHVuc2lnbmVkbmVzcyBzbyB2YXJzIGFuZCBwYXJhbXMgYWdyZWUgb24gdHlwZQoKMjAxMC0xMC0yNyAxODozOCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBJbml0aWFsaXplIHZhcnMgdGhhdCBnY2MgdGhpbmtzIGFyZSB1bmluaXRpYWxpemVkCgoyMDEwLTEwLTI3IDE4OjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQSBtb3JlIG1lYW5pbmdmdWwgdGVzdCBmb3IgTUxEX0xJU1RFTkVSX1FVRVJZCgoyMDEwLTEwLTI3IDE4OjM1ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBwcm90b3R5cGVzIGFuZCBpbmNsdWRlcyB3ZXJlIG1pc3NpbmcKCjIwMTAtMTAtMjcgMTg6MzMgIG5iYQoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdGVzdC5jOgoKICAgQ2hlY2sgZmdldHMgcmV0dXJuCgoyMDEwLTEwLTI1IDIwOjU5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDMwODgzNjA6IEVuc3VyZSBweXRob24gbW9kdWxlcyBhcmUgYnVpbHQKICAgYWdhaW5zdCB0aGUgY29ycmVjdCBsaWJyYXJpZXMKCjIwMTAtMTAtMjUgMjA6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzA1ODEwMTogV3JpdGVhYmxlICdsb25nJyBpbnN0YW5jZXMgd29yayBvbgogICA2NC1iaXQgc3lzdGVtcywgYnV0IG5vdCB3cml0YWJsZSAnaW50J3MKCjIwMTAtMTAtMjUgMTY6MDUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERvbid0IGF0dGVtcHQgdG8gcHJvY2VzcyB1bnJlY29nbmlzZWQgImlnbm9yZSoiIGRpcmVjdGl2ZXMuCiAgIFBhc3MgdGhlc2UgdGhyb3VnaCB0byB0aGUgYXBwcm9wcmlhdGUgcmVnaXN0ZXJlZCBjb25maWcgaGFuZGxlcnMKICAgKGlmIGFueSkKCjIwMTAtMTAtMjUgMTU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4IGEgc3R1cGlkIHR5cG8KCjIwMTAtMTAtMjUgMTU6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzA2MjUzODogRml4IGNvbTJzZWMqIGhhbmRsaW5nIG9mCiAgIG5vbi1kZWZhdWx0IGNvbnRleHRzCgoyMDEwLTEwLTI1IDEyOjU0ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGU6CgogICBDSEFOR0VTOiBXaW4zMjogdGVzdGluZzogQXZvaWQgdGhhdCBUMjAwIGZhaWxzIG9uIGtub3duIE1pY3Jvc29mdAogICBTTk1QIGV4dGVuc2lvbiBETEwgYnVncy4KCjIwMTAtMTAtMjUgMDg6MDYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBORVdTOiBMaW51eDogc25tcGQgaXMgYWdhaW4gc2luZ2xlLXRocmVhZGVkLgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5NTk4MTE6IGZyb20gSmFuIFNhZnJhbmVrOiBSZWltcGxlbWVudAogICBMaW51eCBOZXRsaW5rIElQdjYgcHJlZml4IGxpc3RlbmVyLgoKMjAxMC0xMC0yNSAwNzoxNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBjYXN0aW5nIGF3YXkgdGhlICdjb25zdCcKICAgYXR0cmlidXRlIGZvciB0aGUgZmlyc3QgYXJndW1lbnQgb2Ygc3NsY3R4X2NsaWVudF9zZXR1cCgpIGFuZAogICBzc2xjdHhfc2VydmVyX3NldHVwKCkuCgoyMDEwLTEwLTI1IDA2OjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgaW5jbHVkZSBuZWVkZWQgcHJvdG90eXBlcwoKMjAxMC0xMC0yNSAwNjoxNiAgbmJhCgogICAqICBhcHBzL3NubXB0bHMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQWRqdXN0IHR5cGVzIHRvIGJldHRlciBtYXRjaCB1c2FnZQoKMjAxMC0xMC0yNSAwNjoxNSAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUmV2ZWFsIGhpZGRlbiAtZSBhbmQgLXUgb3B0aW9ucwoKMjAxMC0xMC0yNSAwNjoxNCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBpbmNsdWRlIG5lZWRlZCBwcm90b3R5cGVzCgoyMDEwLTEwLTI1IDA2OjAxICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBpbmNsdWRlIG5lZWRlZCBwcm90b3R5cGVzCgoyMDEwLTEwLTI1IDA2OjAwICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmM6CgogICBjb25zdC1qdWdnbGluZyAtIHdlIGRvbnQgbGlrZSB3YXJuaW5ncwoKMjAxMC0xMC0yMyAxMTo1NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBSZWVuYWJsZWQgY2FjaGUgcmVtb3ZhbCBhbmQgZnJlZWluZyAvIG1vdmVkIGNhY2hlIHJlZmNvdW50CiAgIGluY3JlbWVudGluZyB0byBuZXRzbm1wX2NhY2hlX293bnNfY2FjaGUoKSAvIGNvbnZlcnRlZCB0YWJzIHRvCiAgIHNwYWNlcy4KCjIwMTAtMTAtMjMgMTE6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYW5vdGhlciBjcmFzaCBpbiBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpLgoKMjAxMC0xMC0yMyAxMTowMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUmVtb3ZpbmcgdGhlIGxhc3QgY2FjaGUgdmlhCiAgIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkgZG9lcyBubyBsb25nZXIgdHJpZ2dlciBhIGNyYXNoLgoKMjAxMC0xMC0yMyAxMDo1NyAgYnZhc3NjaGUKCiAgICogCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmM6CgogICBUMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWI6IEludHJvZHVjZWQKICAgbmV0c25tcF9jYWNoZV9jcmVhdGUoKS4KCjIwMTAtMTAtMjIgMTU6MjQgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRGlzYWJsZWQgY2FjaGUgZGVhbGxvY2F0aW9uIGJlY2F1c2UgaXQgbWFrZXMgdHdvIHVuaXQgdGVzdHMgZmFpbAogICAtIHRvIGJlIGFuYWx5emVkIGZ1cnRoZXIuCgoyMDEwLTEwLTIyIDE1OjAzICBidmFzc2NoZQoKICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYzoKCiAgIEJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMTAtMjIgMTQ6NDkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBNSUItc3BlY2lmaWMgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yMiAxNDo0MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudDogZXhhbXBsZSBNSUI6IEFkZGVkIHNodXRkb3duIGZ1bmN0aW9uIHRoYXQgZnJlZXMKICAgYWxsIG1lbW9yeSBvd25lZCBieSB0aGlzIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMTAtMjIgMTQ6NDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQXV0b21hdGljYWxseSBmcmVlIHRoZSBwcml2YXRlIGRhdGEgc3RydWN0dXJlCiAgIGFsbG9jYXRlZCBieSBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9oYW5kbGVyX2dldCgpLgoKMjAxMC0xMC0yMiAxNDozOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBDb3VudCB0aGUgbnVtYmVyIG9mIHVzZXJzIG9mIGEgbmV0c25tcF9jYWNoZSBkYXRhCiAgIHN0cnVjdHVyZSBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LgoKMjAxMC0xMC0yMiAxNDozNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIHJlZmVyZW5jZSBjb3VudCBpbiB0aGUKICAgbmV0c25tcF9iYWJ5X3N0ZXBzX21vZGVzIGRhdGEgc3RydWN0dXJlIGFuZCBtYWRlIHN1cmUgdGhhdCB0aGlzCiAgIGRhdGEgc3RydWN0dXJlIGlzIGF1dG9tYXRpY2FsbHkgZnJlZWQgd2hlbiB0aGUgaGFuZGxlciB0aGF0IG93bnMKICAgaXQgaXMgdW5yZWdpc3RlcmVkLgoKMjAxMC0xMC0yMiAxNDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX3VucmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlKCkuCgoyMDEwLTEwLTIyIDA4OjUxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRm9sbG93LXVwIGZvciByMTk1MTE6IG1hZGUgc3VyZSB0aGF0IGNsZWFuX3N1YnRyZWUoKSBkZWFsbG9jYXRlcwogICBhbGwgY29udGV4dCBjYWNoZSBub2Rlcy4KCjIwMTAtMTAtMjIgMDg6NDkgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IG5ldHNubXBfY2FjaGVfZnJlZSgpOiBBIG1vcmUgZGV0YWlsZWQgbWVzc2FnZSBpcwogICBub3cgbG9nZ2VkIHdoZW4gYXR0ZW1wdGluZyB0byBmcmVlIGEgY2FjaGUgdGhhdCBpcyBzdGlsbCBpbiB0aGUKICAgY2FjaGUgbGlzdC4KCjIwMTAtMTAtMjIgMDY6MzkgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIFJldmVydGVkIGx0bWFpbi5zaCBjaGFuZ2VzIGZyb20gcjE5NTIyLgoKMjAxMC0xMC0yMiAwNjozNCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBsdG1haW4uc2g6CgogICBSZWdlbmVyYXRlZCBhdXRvY29uZi9hdXRvbWFrZS9saWJ0b29sLWdlbmVyYXRlZCBmaWxlcyBieSBydW5uaW5nCiAgIGF1dG9yZWNvbmYgLWYuCgoyMDEwLTEwLTIxIDA3OjUxICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBSZWFwcGxpZWQgcjE4NzI2K3IxODc2NjogbWFrZSBsaWJ0b29sIHN1cHBvcnQgLWZzdGFjay1wcm90ZWN0b3IqLgogICBTZWUgYWxzbwogICBodHRwOi8vYmxvZy5nbWFuZS5vcmcvZ21hbmUuY29tcC5nbnUubGlidG9vbC5idWdzL21vbnRoPTIwMTAwNjAxCiAgIGZvciB0aGUgY29uZmlybWF0aW9uIHRoYXQgdGhpcyBpcyBhIGxpYnRvb2wgYnVnLgoKMjAxMC0xMC0yMCAyMDoxNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQXZvaWQgdGhhdCBuZXRzbm1wX2NoZWNrX2RlZmluZWRuZXNzKCkgdHJpZ2dlcnMgYSBidWlsZCBmYWlsdXJlCiAgIHdoZW4gY29tcGlsZWQgYWdhaW5zdCBvbGQgVmFsZ3JpbmQgaGVhZGVycy4gTm90ZTogdGhlIGludHJvZHVjZWQKICAgY2hlY2sgaXMgc3RyaWN0ZXIgdGhhbiBuZWNlc3NhcnkgLSBWQUxHUklORF9QUklOVEZfQkFDS1RSQUNFKCkKICAgd2FzIGludHJvZHVjZWQgaW4gVmFsZ3JpbmQgMy41LjAgb3IgYmVmb3JlIChub3Qgc3VyZSB3aGljaAogICB2ZXJzaW9uKS4KCjIwMTAtMTAtMjAgMTc6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGFkZGVkIGEgY29tbWVudCBpbiBjb2RlIG5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIGEgZmFpcmx5IHJlY2VudAogICB2YWxncmluZAoKMjAxMC0xMC0yMCAxNzowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVyYW4gYXV0b2NvbmYgYWZ0ZXIgdXBkYXRpbmcgbGlidG9vbAoKMjAxMC0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgaW5zdGFsbC1zaCwgbHRtYWluLnNoLCBtNC9saWJ0b29sLm00LCAgIAogICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0dmVyc2lvbi5tNCwgbTQvbHR+b2Jzb2xldGUubTQ6CgogICB1cGRhdGUgdG8gbGlidG9vbCAyLjQKCjIwMTAtMTAtMjAgMTY6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgZGlzdC9hdXRvY29uZi12ZXJzaW9uOgoKICAgdXBkYXRlZCB0byBhdXRvY29uZiAyLjY4CgoyMDEwLTEwLTIwIDE0OjI2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMsICAgCiAgICAgIHdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCB0aGUgZnVuY3Rpb25zIG5ldHNubXBfZHVwbGljYXRlX3ZhcmlhYmxlKCkKICAgYW5kIG5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKCkuCiAgIENIQU5HRVM6IGFnZW50OiBNZW1vcnkgYWxsb2NhdGVkIGJ5IG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCiAgIGZvciBzdG9yaW5nIFNOTVAgdmFyaWFibGVzIGlzIG5vdyBmcmVlZCB3aGVuIHRoZSBhc3NvY2lhdGVkCiAgIGhhbmRsZXIgaXMgdW5yZWdpc3RlcmVkLgogICBDSEFOR0VTOiBhZ2VudDogQ2FsbGJhY2sgZnVuY3Rpb24gZGF0YSBkZWFsbG9jYXRpb24gZG9lcyBubwogICBsb25nZXIgZnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIEFnZW50WCBzZXNzaW9uIC0gdGhlCiAgIG1lbW9yeSB0aGF0IHdhcyBhbGxvY2F0ZWQgZm9yIEFnZW50WCBzZXNzaW9ucyBpcyBub3cgZGVhbGxvY2F0ZWQKICAganVzdCBhcyB0aGF0IGZvciBhbnkgb3RoZXIgc2Vzc2lvbi4gVGhpcyBmaXhlcyBhIGxlYWstYXQtZXhpdC4KICAgQ0hBTkdFUzogYWdlbnQ6IE5vdGlmeSBmaWx0ZXIgdGFibGU6IENhbGxiYWNrIGZ1bmN0aW9uIGRhdGEKICAgZGVhbGxvY2F0aW9uIGRvZXMgbm8gbG9uZ2VyIGZyZWUgdGhlIGRhdGEgaW4KICAgKiAgICAgKnNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pZl9jdHguY29udGFpbmVyIC0gdGhpcyBpcyBub3cgZG9uZSBieSAgCiAgICAgICBzaHV0ZG93bl9zbm1wTm90aWZ5RmlsdGVyVGFibGUoKS4gICAgQ0hBTkdFUzogV2luMzI6CiAgICAgIHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpIGFuZAoKICAgc2h1dGRvd25fd2luRXh0RExMKCkgYXJlIG5vdyBpbnZva2VkIHdoZW4gdGhlIE5ldC1TTk1QIHNlcnZpY2UgaXMKICAgc3RvcHBlZC4KCjIwMTAtMTAtMjAgMTM6NDcgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmM6CgogICBVbml0LXRlc3RpbmcsIFQwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYjogYWRkZWQgaW5pdF9hZ2VudCgpIGFuZAogICBzaHV0ZG93bl9hZ2VudCgpIGNhbGxzLgoKMjAxMC0xMC0yMCAxMzoxMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBGaXggbm9uLUFOU0kgZnVuY3Rpb24gaGVhZGluZwoKMjAxMC0xMC0yMCAxMjo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBmaXggaXBDaWRyUm91dGVUYWJsZSAobWFzaykgZm9yIGxpdHRsZSBlbmRpYW4gc3lzdGVtcwoKMjAxMC0xMC0yMCAxMDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIHNubXBfc2Vzc19zZXNzaW9uX2xvb2t1cCgpLgogICBDSEFOR0VTOiBhZ2VudDogQ2FsbCBzaHV0ZG93bl9tYXN0ZXJfYWdlbnQoKSBhbmQgc2h1dGRvd25fYWdlbnQoKQogICBkdXJpbmcgc2h1dGRvd24uCiAgIENIQU5HRVM6IGFnZW50OiBUaGUgZnVuY3Rpb24gY2xlYW5fc3VidHJlZSgpIGRvZXMgbm8gbG9uZ2VyCiAgIHRyaWdnZXIgZG91YmxlIGZyZWVzIGFuZCBpbnZhbGlkIG1lbW9yeSByZWFkcy4gTm90ZTogdGhpcwogICBmdW5jdGlvbiB3YXMgYWxyZWFkeSB3cm9uZyBhdCB0aGUgdGltZSBpdCB3YXMgaW50cm9kdWNlZCAocGF0Y2gKICAgIzcyNDkyNSAvIHI4NTMxLCBKdWx5IDIwMDMpLgogICBDSEFOR0VTOiBhZ2VudDogUmVtb3ZlZCBhIGNvbW1lbnQgaW4gbmV0c25tcF9oYW5kbGVyX2ZyZWUoKSB0aGF0CiAgIGlzIG5vdyBvYnNvbGV0ZSBiZWNhdXNlIG9mIHRoZSBjbGVhbl9zdWJ0cmVlKCkgY2hhbmdlcy4KICAgQ0hBTkdFUzogYWdlbnQ6IE1vZGlmaWVkIG5ldHNubXBfZGVyZWdpc3Rlcl9hZ2VudF9uc2FwKCkgc3VjaAogICB0aGF0IGl0IG5ldmVyIGV4YW1pbmVzIHNlc3Npb25zIHRoYXQgYWxyZWFkeSBoYXZlIGJlZW4gY2xvc2VkLiBJdAogICBpcyBmb3IgdGhpcyBjaGFuZ2UgdGhhdCBpdCB3YXMgbmVjZXNzYXJ5IHRvIGludHJvZHVjZSB0aGUgbmV3CiAgIGZ1bmN0aW9uIHNubXBfc2Vzc19zZXNzaW9uX2xvb2t1cCgpLgoKMjAxMC0xMC0xOSAyMzo0OSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZToKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBtaXNzaW5nIHByZWNvbmRpdGlvbnMKCjIwMTAtMTAtMTkgMjI6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBkb24ndCBkZWZhdWx0IHRvIGFwcGx5aW5nIHRvIDUuMgoKMjAxMC0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGFkZGVkIHRoZSA1LjYgYnJhbmNoCgoyMDEwLTEwLTE5IDIxOjEzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQlVHIDMwNzkwNzIgZnJvbSBEYXZlIEJlYWw6IGZpeCBidWZmZXIgb3ZlcmZsb3cgZnJvbSBiYWQgdXNlIG9mCiAgIHN0cm5jYXQKCjIwMTAtMTAtMTkgMjA6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgUEFUQ0g6IDMwODUyOTUgZnJvbSBCaWxsIEZlbm5lcjogcmVjb2duaXplIExJU1RFTiBzdGF0ZSBhZ2FpbgoKMjAxMC0xMC0xOSAyMDowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTEwLTE5IDIwOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBGaXggcmV0dXJuaW5nIGdhcmJhZ2UgaW4gaHJTV0luc3RhbGxlZE5hbWUgKHNlZSByZXYgMTk0ODQgZm9yCiAgIGZ1cnRoZXIgbm90ZXMpCgoyMDEwLTEwLTE5IDE5OjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVuc2FmZSAoJSkgZGV2aWNlIG5hbWVzCgoyMDEwLTEwLTE5IDE5OjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBTb2xhcmlzIGRvZXMgbm90IHVzZSBnZXRzdGF0LCBzbyBkb250IGRlY2xhcmUgaXQKCjIwMTAtMTAtMTkgMTk6NTYgIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIHVkcC90Y3AgY29uZnVzaW9uIGluIGRlYnVnIGhhbmRsZQoKMjAxMC0xMC0xOSAxOTo1NCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBYm9ydCBhZnRlciBiYWQgLUM/IG9wdGlvbgoKMjAxMC0xMC0xOSAxOTo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBEZWxldGUgcmVkdW5kYW50IGV4dGVybiBkZWNsYXJhdGlvbnMKCjIwMTAtMTAtMTkgMTg6MDggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEF2b2lkIHRoYXQgTVNWQyAyMDEwIHByaW50cyBhIHdhcm5pbmcKICAgbWVzc2FnZSBhYm91dCByZWRlZmluaW5nIEVBRERSSU5VU0UuCgoyMDEwLTEwLTE5IDE4OjA1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBNU1ZDIHJlcG9ydHMgYSB3YXJuaW5nIG1lc3NhZ2UgYWJvdXQKICAgcmVkZWZpbml0aW9uIG9mIHRoZSBtYWxsb2MoKSBtYWNybyBkdXJpbmcgYnVpbGRpbmcgdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlLgoKMjAxMC0xMC0xOSAwNzowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBDSEFOR0VTOiBhZ2VudDogRmFjdG9yIG91dCBjb21tb24gY29uZmlnX2FkZF9taWIgc3RhdG1lbnRzCgoyMDEwLTEwLTE4IDE0OjIyICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIE1hcmsgdGhlIHByb3BlciBoYW5kbGVyIHRoYXQgb3ducyB0aGUgdGFibGUgcmVnaXN0cmF0aW9uCiAgIGluZm9ybWF0aW9uLgoKMjAxMC0xMC0xOCAxMDo1NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBmdW5jdGlvbnMgbmV0c25tcF9oYW5kbGVyX293bnNfdGFicmVxKCksCiAgIG5ldHNubXBfcmVnaXN0cmF0aW9uX293bnNfdGFicmVxKCksIG5ldHNubXBfaXRlcmF0b3JfY2xvbmUoKS4KICAgRXhwb3J0ZWQgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19jbG9uZSgpLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9pdGVyYXRvcl9kZWxldGVfdGFibGUoKSBzdWNoCiAgIHRoYXQgaXQgZnJlZXMgdGhlIHRhYmxlIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gYQogICB0YWJsZSBpdGVyYXRvciB0b28uCiAgIENIQU5HRVM6IGFnZW50OiBNb2RpZmllZCBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcl9oYW5kbGVyKCkKICAgc3VjaCB0aGF0IHRoZSB0YWJsZSBpdGVyYXRvciBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBpcyBmcmVlZAogICB3aGVuIHRoZSBhc3NvY2lhdGVkIGhhbmRsZXIgaXMgZnJlZWQuCiAgIAogICBSZXN0b3JlZCB0aGUgYmVoYXZpb3Igb2YgbmV0c25tcF9nZXRfdGFibGVfaGFuZGxlcigpIHRvIHRoYXQgb2YKICAgcjE5NDQ5LCB0aGF0IGlzLCBub3Qgc2V0dGluZyB1cCB0aGUgZGF0YV9mcmVlIHBvaW50ZXIgYmVjYXVzZSBub3QKICAgYWxsIGNhbGxlcnMgb2YgbmV0c25tcF9nZXRfdGFibGVfaGFuZGxlcigpIGV4cGVjdCB0aGF0IHRhYmxlCiAgIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiBpcyBmcmVlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGhhbmRsZXIgaXMKICAgZnJlZWQuCgoyMDEwLTEwLTE4IDEwOjM0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCgoyMDEwLTEwLTE4IDA4OjUyICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFdoZW4gc25tcGQuZXhlIGlzIHN0YXJ0ZWQgaW4gYSBjb21tYW5kIHByb21wdAogICB3aW5kb3csIHRoZSBzbm1wZCBwcm9jZXNzIG5vdyBzdG9wcyB1cG9uIHRoZSBmaXJzdCBrZXkgcHJlc3MuCiAgIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGRlYnVnIHNubXBkLmV4ZSBmb3IgbWVtb3J5IGxlYWtzLgoKMjAxMC0xMC0xOCAwNjoyNSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KCjIwMTAtMTAtMTggMDY6MTUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENIQU5HRVM6IHNubXBkOiBVc2UgdGhlIHNhbWUgYXV0b2NvbmYgc3ltYm9sIHRvIGRlY2lkZSBib3RoIGlmCiAgIHN0cmNhc2VjbXAgc2hvdWxkIGJlIGRlY2xhcmVkIGFuZCBpZiBpdCBzaG91bGQgYmUgZGVmaW5lZC4KCjIwMTAtMTAtMTcgMTg6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGEgZG91YmxlIGZyZWUgYXQgZXhpdCB0aGF0IHdhcyB0cmlnZ2VyZWQgYnkKICAgY2xlYW5pbmcgdXAgdGhlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGZvciBlbWJlZGRlZCBQZXJsIHN1cHBvcnQuCiAgIENIQU5HRVM6IHNubXB0cmFwZDogRml4ZWQgYSBkb3VibGUgZnJlZSBhdCBleGl0IHRoYXQgd2FzCiAgIHRyaWdnZXJlZCBieSBjbGVhbmluZyB1cCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGVtYmVkZGVkCiAgIFBlcmwgc3VwcG9ydC4KICAgCiAgIFZhbGdyaW5kIHJlcG9ydGVkIHRoYXQgZG91YmxlIGZyZWUgYXMgZm9sbG93czoKICAgCiAgIEludmFsaWQgcmVhZCBvZiBzaXplIDQKICAgYXQgMHg1OUQwNTAxOiBwZXJsX2Rlc3RydWN0IChpbgogICAvdXNyL2xpYi9wZXJsNS81LjEyLjEveDg2XzY0LWxpbnV4LXRocmVhZC1tdWx0aS9DT1JFL2xpYnBlcmwuc28pCiAgIGJ5IDB4NTQ0REY4RTogc2h1dGRvd25fcGVybCAoc25tcF9wZXJsLmM6MTY2KQogICBieSAweDQwMzk2NjogdGVybV9oYW5kbGVyIChzbm1wdHJhcGQuYzozMTgpCiAgIGJ5IDB4NkQ0M0E1RjogPz8/IChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIEFkZHJlc3MgMHg3NjYwZjg4IGlzIDU2IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMiw5MTIgZnJlZSdkCiAgIGF0IDB4NEMyNjQ5NjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzozNjYpCiAgIGJ5IDB4NTQ0REY5QTogc2h1dGRvd25fcGVybCAoc25tcF9wZXJsLmM6MTY3KQogICBieSAweDQwMzk2NjogdGVybV9oYW5kbGVyIChzbm1wdHJhcGQuYzozMTgpCiAgIGJ5IDB4NkQ0M0E1RjogPz8/IChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkREQURGMjogX19zZWxlY3Rfbm9jYW5jZWwgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg0MDRFMjA6IG1haW4gKHNubXB0cmFwZC5jOjEyNTgpCgoyMDEwLTEwLTE3IDE3OjMzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCB0aGF0IFZhbGdyaW5kIGNvbXBsYWlucyBhYm91dAogICB1bmluaXRpYWxpemVkIGRhdGEgZm9yIHRoZSBidWZmZXJzIHJldHVybmVkIGJ5CiAgIG5ldHNubXBfY2FsbGJhY2tfcmVjdigpIGFuZCBuZXRzbm1wX2NhbGxiYWNrX2hvb2tfYnVpbGQoKS4KCjIwMTAtMTAtMTcgMTY6NTcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiB0YWJsZV9oZWxwZXJfaGFuZGxlcigpLCA2NC1iaXQgYXJjaGl0ZWN0dXJlczoKICAgYXZvaWQgcGFzc2luZyBhIHBvaW50ZXIgdG8gYSAzMi1iaXQgdmFsdWUgdG8gYSBmdW5jdGlvbiB0aGF0CiAgIGV4cGVjdHMgYSBwb2ludGVyIHRvIGEgNjQtYml0IHZhbHVlIChwYXJzZV9vbmVfb2lkX2luZGV4KCkpLiBOb3QKICAgc3VyZSB3aGF0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBidWcgd2VyZS4gSXQgbWlnaHQgaGF2ZSBjYXVzZWQKICAgdmVyeSBzdHJhbmdlIHRhYmxlIGJlaGF2aW9yIG9uIDY0LWJpdCBiaWcgZW5kaWFuIHN5c3RlbXMuCiAgIEZvdW5kIHRoaXMgdmlhIFZhbGdyaW5kLgoKMjAxMC0xMC0xNyAxNjo1MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBBdm9pZCB0aGF0IGhyU1dSdW5QYXRoIGNvbnRhaW5zIHRyYWlsaW5nIGdhcmJhZ2UKICAgY2hhcmFjdGVycyBvbiBMaW51eCBzeXN0ZW1zLgogICBGb3VuZCB0aGlzIGJ5IGFuYWx5emluZyBhIFZhbGdyaW5kIGNvbXBsYWludC4gRm9yIGFueW9uZSB3aG8gaXMKICAgd29uZGVyaW5nIHdoeSB0aGlzIHBhdGNoIG1ha2VzIHNlbnNlLCBhIHF1b3RlIGZyb20gdGhlIGdsaWJjCiAgIHNucHJpbnRmKCkgZG9jdW1lbnRhdGlvbgogICAoaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMvbWFudWFsL2h0bWxfbm9kZS9Gb3JtYXR0ZWQtT3V0cHV0LUZ1bmN0aW9ucy5odG1sKToKICAgPHF1b3RlPgogICBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3aGljaCB3b3VsZCBiZQogICBnZW5lcmF0ZWQgZm9yIHRoZSBnaXZlbiBpbnB1dCwgZXhjbHVkaW5nIHRoZSB0cmFpbGluZyBudWxsLiBJZgogICB0aGlzIHZhbHVlIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2l6ZSwgbm90IGFsbCBjaGFyYWN0ZXJzIGZyb20KICAgdGhlIHJlc3VsdCBoYXZlIGJlZW4gc3RvcmVkIGluIHMuCiAgIDwvcXVvdGU+CiAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBkaWZmZXJzIGZyb20gdGhlIHN0YW5kYXJkIGJlaGF2aW9yLiBBIHF1b3RlCiAgIGZyb20gaHR0cDovL29wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDc5MDg3OTkveHNoL3NucHJpbnRmLmh0bWw6CiAgIDxxdW90ZT4KICAgUkVUVVJOIFZBTFVFCiAgIFVwb24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uLCB0aGVzZSBmdW5jdGlvbnMgcmV0dXJuIHRoZSBudW1iZXIgb2YKICAgYnl0ZXMgdHJhbnNtaXR0ZWQgZXhjbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGluIHRoZSBjYXNlIG9mCiAgIHNwcmludGYoKSBvciBzbnByaW50ZigpIG9yIGEgbmVnYXRpdmUgdmFsdWUgaWYgYW4gb3V0cHV0IGVycm9yCiAgIHdhcyBlbmNvdW50ZXJlZC4KICAgPC9xdW90ZT4KCjIwMTAtMTAtMTcgMTQ6MzEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBJdCBpcyBhZ2FpbiBwb3NzaWJsZSB0byBydW4gYW4gaW5kaXZpZHVhbCB0ZXN0CiAgIHZpYSB0aGUgc2NyaXB0IHRlc3RpbmcvUlVOVEVTVFMuCgoyMDEwLTEwLTE3IDE0OjI4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgdGhlIGZ1bmN0aW9uIG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoKSwKICAgd2hpY2ggaGVscHMgdG8gZmluZCB0aGUgY2F1c2Ugb2YgdW5kZWZpbmVkIHZhbHVlIGVycm9ycyBhcwogICByZXBvcnRlZCBieSBWYWxncmluZC4KCjIwMTAtMTAtMTcgMTQ6MjQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBkZWNsYXJhdGlvbjogdGhlIGZ1bmN0aW9uIGFnZW50eF9idWlsZCgpIGhhcwogICBiZWVuIHJlbW92ZWQgYSBsb25nIHRpbWUgYWdvLgoKMjAxMC0xMC0xNyAxNDowNSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgdGhlIFZhbGdyaW5kIGhlYWRlciBmaWxlcy4KCjIwMTAtMTAtMTcgMTI6MDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTQ3NzogbWFkZSB0aGUgaW5zZXJ0ZWQgdHlwZWNhc3RzIHBvcnRhYmxlLgoKMjAxMC0xMC0xNyAxMTowNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCgoyMDEwLTEwLTE3IDA5OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGluc2VydGluZyBhcHByb3ByaWF0ZSBjYXN0cy4KCjIwMTAtMTAtMTcgMDk6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS1yZWxhdGVkIGNsZWFudXAuCgoyMDEwLTEwLTE3IDAxOjQxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvc25tcGQuYzoKCiAgIE5FV1M6IHNubXBkOiBSZW1vdmUgdXRpbF9mdW5jcy9FeGl0IGZyb20gdGhlIHJlcXVpcmVtZW50IHNldHMgb2YKICAgdXRpbF9mdW5jcyBhbmQgZGVmYXVsdF9tb2R1bGVzLgogICBORVdTOiBzbm1wZDogTmV2ZXIgdXNlIEV4aXQgdG8gdGVybWluYXRlIHRoZSBhZ2VudC4KCjIwMTAtMTAtMTYgMjI6MzIgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIHNldHRpbmcgb2YgdGhlIGFyZ3ZyZXN0YXJ0KiB2YXJpYWJsZXMKICAgb3B0aW9uYWwgb24gVVNJTkdfVVRJTF9GVU5DU19SRVNUQVJUX01PRFVMRS4KICAgTkVXUzogc25tcGQ6IFJlbW92ZSB1dGlsX2Z1bmNzL3Jlc3RhcnQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cwogICBvZiB1dGlsX2Z1bmNzIGFuZCBkZWZhdWx0X21vZHVsZXMuCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgdXRpbF9mdW5jcy9yZXN0YXJ0IHRvIHRoZSByZXF1aXJlbWVudCBzZXQgb2YKICAgdWNkLXNubXAvdmVyc2lvbmluZm8uCgoyMDEwLTEwLTE2IDIyOjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBFeHRlbmQgdGhlIGRvY3VtZW50YXRpb24gZm9yIGRhdGFfY2xvbmUgYW5kCiAgIGRhdGFfZnJlZQoKMjAxMC0xMC0xNiAyMjowMyAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHdhdGNoZWQgZGF0YSBpdGVtcwogICB3aXRob3V0IG1lbW9yeSBsZWFrcy4KCjIwMTAtMTAtMTYgMjI6MDEgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgY21wCgoyMDEwLTEwLTE2IDE5OjQ0ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IERvIG5vdCBsZWFrIHRoZSBsaW1pdHMgb2Ygc2NhbGFyX2dyb3VwIG9iamVjdHMgb24KICAgc2h1dGRvd24uCgoyMDEwLTEwLTE2IDA4OjM3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgU3BlbGxpbmcgZml4OiBkdWxwaWNhdGUgLT4gZHVwbGljYXRlLgoKMjAxMC0xMC0xNiAwODozNCAgYnZhc3NjaGUKCiAgICogCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmM6CgogICBBZGRlZCBtb3JlIHRlc3QgY29kZS4KCjIwMTAtMTAtMTYgMDg6MzMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTQ2NTogaGFuZGxlIG91dC1vZi1tZW1vcnkgcHJvcGVybHkgLyByZW1vdmVkIGEKICAgZHVwbGljYXRlIGZ1bmN0aW9uLgoKMjAxMC0xMC0xNSAxOToxNyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FnZW50bGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhZ2VudGxpYl9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmMsCiAgICAgICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2xpYi5jOgoKICAgQ0hBTkdFUzogdGVzdGluZzogSW50cm9kdWNlZCBuZXcgdGVzdCB0eXBlIG5leHQgdG8gY2FwcCBhbmQgY2xpYjoKICAgY2FnZW50bGliLgoKMjAxMC0xMC0xNSAxODo1NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBuZXRzbm1wX21pYl9oYW5kbGVyLmRhdGFfY2xvbmUsIGEgZnVuY3Rpb24KICAgcG9pbnRlciB0aGF0IGRlZmluZXMgaG93IHRvIGNsb25lIG5ldHNubXBfbWliX2hhbmRsZXIubXl2b2lkLgogICBNdXN0IGJlIGRlZmluZWQgaWYgYW5kIG9ubHkgaWYgZGF0YV9mcmVlIGlzIHNldC4gVGhlIGZ1bmN0aW9uCiAgIG5ldHNubXBfaGFuZGxlcl9kdXAoKSBkb2VzIG5vdyBjbG9uZSBNSUIgaGFuZGxlciBwcml2YXRlIGRhdGEgaWYKICAgZGF0YV9jbG9uZSgpIGlzIHNldC4gUHJldmlvdXNseSBhZnRlciBkdXBsaWNhdGluZyBhIE1JQiBoYW5kbGVyCiAgIGFuZCB1bnJlZ2lzdGVyaW5nIG9uZSBvZiB0aGUgdHdvIE1JQiBoYW5kbGVycywgdGhlIHByaXZhdGUgZGF0YQogICBwb2ludGVyIChteXZvaWQpIG9mIHRoZSBvdGhlciBiZWNhbWUgYSBkYW5nbGluZyBwb2ludGVyLiBOb3RlOgogICBhZGRpdGlvbiBvZiBuZXRzbm1wX21pYl9oYW5kbGVyLmRhdGFfY2xvbmUgaXMgYW4gQUJJIGNoYW5nZS4KICAgQ0hBTkdFUzogdGVzdGluZzogYWRkZWQgbW9yZSB0ZXN0IGNhc2VzIHRvIHRoZSBoYW5kbGVyCiAgIHJlZ2lzdHJhdGlvbiB0ZXN0LgoKMjAxMC0xMC0xNSAxODozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0xMC0xNSAxMjozMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBSZXZlcnRlZCByMTk0NjAgYmVjYXVzZSBpdCBtYWtlcyBzb21lIHJlZ3Jlc3Npb24gdGVzdHMgZmFpbAogICAoVDEyMHByb3h5Z2V0X3NpbXBsZSwgVDEyMXByb3h5c2V0X3NpbXBsZSwKICAgVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsIFQyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUpLiBEaXNhYmxlZCB0aGUKICAgaGFuZGxlciBkdXBsaWNhdGlvbiB0ZXN0IGluIFQwMDYgYmVjYXVzZSBpdCB0cmlnZ2VycyBhIGNyYXNoCiAgIHdpdGhvdXQgcjE5NDYwLgoKMjAxMC0xMC0xNSAxMTozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogbmV0c25tcF9oYW5kbGVyX2R1cCgpOiBmcmVlaW5nIHRoZSBkdXBsaWNhdGVkCiAgIGhhbmRsZXIgbm8gbG9uZ2VyIGNhdXNlcyBhIGNyYXNoIChkb3VibGUgZnJlZSkgd2hlbgogICBoYW5kbGVyLT5teXZvaWQgb2YgdGhlIG9yaWdpbmFsIGhhbmRsZXIgd2FzIG5vbi1OVUxMLgoKMjAxMC0xMC0xNSAxMTozMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBBZGRlZCBhIHVuaXQgdGVzdCBmb3IgaGFuZGxlciByZWdpc3RyYXRpb24gYW5kIGRlcmVnaXN0cmF0aW9uLgoKMjAxMC0xMC0xNSAxMDo1NiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQKICAgY29tcGlsZXIuCgoyMDEwLTEwLTE1IDA5OjQ1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBzbm1wX3NodXRkb3duKCk6IGFkZGVkIGNhbGwgdG8KICAgbmV0c25tcF9jZXJ0c19zaHV0ZG93bigpLgoKMjAxMC0xMC0xNSAwNjo0NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTQ1MDogbGV0IG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkgZnJlZQogICBhbGwgdGFibGVfZGF0YXNldC1yZWxhdGVkIG1lbW9yeS4KCjIwMTAtMTAtMTQgMjM6MTUgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byByZWdlbmVyYXRlIHVzaW5nIGF1dG9jb25mCiAgIDIuNjguCgoyMDEwLTEwLTE0IDIzOjAxICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQmUgY29uc3QgY29ycmVjdCBvdmVyIGNhbGxzIHRvIHN0ciogZnVuY3Rpb25zLgoKMjAxMC0xMC0xNCAxNToxOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jbGliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBmdW5jdGlvbiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCgpLgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgdGhlIGZ1bmN0aW9uCiAgIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKSBpbiBhIHB1YmxpYyBhZ2VudCBoZWFkZXIgZmlsZS4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbWVtb3J5IGxlYWsgaW4KICAgbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSgpLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgdW5yZWdpc3RlcmluZyBhCiAgIHRhYmxlIGhhbmRsZXIuCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFVuaXQgdGVzdHMgY2FuIG5vdyBpbnZva2UgZnVuY3Rpb25zIGZyb20KICAgbGliYWdlbnQuCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZGVkIHVuaXQgdGVzdCBmb3IgdGFibGVfZGF0YXNldC4KCjIwMTAtMTAtMTQgMTQ6MDUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBVbml0IHRlc3QgVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6IEZpeGVkIGxlYWtzLWF0LWV4aXQuCgoyMDEwLTEwLTE0IDA4OjQzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX3J1bjoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEl0IGlzIG5vdyBwb3NzaWJsZSB0byBhbmFseXplIHRoZSB1bml0IHRlc3RzCiAgIHdpdGggVmFsZ3JpbmQgYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgIFNOTVBfU0FWRV9UTVBESVIgYW5kIERZTkFNSUNfQU5BTFlaRVIuIEFuIGV4YW1wbGU6IChleHBvcnQKICAgU05NUF9TQVZFX1RNUERJUj15ZXMgRFlOQU1JQ19BTkFMWVpFUj0idmFsZ3JpbmQKICAgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS1sZWFrLWNoZWNrPWZ1bGwiOyBjZCB0ZXN0aW5nICYmCiAgIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpCgoyMDEwLTEwLTE0IDA4OjQwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgVW5pdCB0ZXN0IFQwMDRzbm1wX2VudW1fY2xpYi5jOiBhZGRlZCB0ZXN0IGhlYWRlciAvIGFkZGVkIGEgdGVzdAogICBjYXNlLgoKMjAxMC0xMC0xNCAwODozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBGaXhlZCBsZWFrcy1hdC1leGl0IGluIHVuaXQgdGVzdCBUMDAyY29udGFpbmVyc19jbGliLmMuCgoyMDEwLTEwLTE0IDA4OjM4ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgRml4ZWQgYSBsZWFrLWF0LWV4aXQgaW4gdW5pdCB0ZXN0IFQwMDFkZWZhdWx0c3RvcmVfY2xpYi5jLgoKMjAxMC0xMC0xNCAwODozNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBjYWxsaW5nCiAgIHNlX2FkZF9wYWlyX3RvX2xpc3QoKSB3aXRoIGEgdmFsdWUgdGhhdCBhbHJlYWR5IGV4aXN0ZWQgaW4gdGhlCiAgIGxpc3QuCgoyMDEwLTEwLTE0IDA3OjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0xMC0xNCAwNzoxMiAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMGNvbmZpZ3VyZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAwY29uZmlndXJlX3NpbXBsZToKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSB2YXJpYWJsZSAkU05NUF9CQVNFRElSIGlzIGF2YWlsYWJsZSBpbiB0aGUKICAgVDAwMGNvbmZpZ3VyZSB0ZXN0LgoKMjAxMC0xMC0xNCAwNjoxOSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZWQKCjIwMTAtMTAtMTQgMDU6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIFF1ZWxsIHdhcm5pbmdzCgoyMDEwLTEwLTE0IDAzOjUwICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIHRlc3QgZm9yIG9wZW5zc2wgc2hhIDIyNC8yNTYvMzg1LzUxMiBzdXBwb3J0IGluc3RlYWQgb2YKICAgaGFyZGNvZGluZwoKMjAxMC0xMC0xNCAwMzo1MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBhZGQgT1VUUFVURU5WVkFSUyB0byBzYXZlIGltcG9ydGFudCBlbnZpcm9ubWVudCB2YXJpYWJsZXM7IHdoZW4KICAgU05NUF9WRVJCT1NFCiAgIGlzIHNldCwgc2F2ZSBlbnYgdmFycyBhbmQgY29tbWFuZCB0byBpbmRpdmlkdWFsIGludm9rZWQgZmlsZSBmb3IKICAgZWFjaCB0ZXN0OwogICBzYXZlIGVudiB2YXJzIGFuZCBjb21tYW5kIGZvciBlYWNoIFNUQVJUUFJPRwoKMjAxMC0xMC0xNCAwMzo1MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogYXV0by1jcmVhdGUgdXNlciBzcGVjaWZpZWQgU05NUF9UTVBESVIgYW5kCiAgIFNOTVBfVE1QX1BFUlNJU1RFTlRESVIgdG9vOyBkZWZhdWx0IFNOTVBfVE1QX1BFUlNJU1RFTkRJUiBiYXNlZAogICBvbiBTTk1QX1RNUERJUgogICBmb3IgdXNlciBzcGVjaWZpZWQgU05NUF9UTVBESVIKCjIwMTAtMTAtMTQgMDM6NDkgIHJzdG9yeQoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBjaGVjayBmb3IgL2Rldi9rbWVtIGluc3RlYWQgb2YgYXNzdW1pbmcgaXQKICAgZXhpc3RzIGFuZCBoYXJkY29kaW5nIHdoZW4gaXQgaXMgbm90IHRoZXJlCgoyMDEwLTEwLTE0IDAzOjI4ICByc3RvcnkKCiAgICogIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdHJhbnNwb3J0U2VjdXJpdHlMZXZlbCBiYXNlZCBvbiBzc2wgc2Vzc2lvbiBhbGdvcml0aG1zCgoyMDEwLTEwLTE0IDAzOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYWRkIG5ldHNubXBfb3BlbnNzbF9udWxsX2NoZWNrcwoKMjAxMC0xMC0xNCAwMzoyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjbGVhbnVwIHNzbC9iaW8gb24gZmFpbGVkIGNvbm5lY3Rpb24KCjIwMTAtMTAtMTQgMDM6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZwoKMjAxMC0xMC0xNCAwMzoxOCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAxMC0xMC0xNCAwMzoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG8KCjIwMTAtMTAtMTQgMDM6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgY2hlY2sgZm9yIG51bGwgYmVmb3JlIGRlcmVmCgoyMDEwLTEwLTEzIDIwOjEyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBHZW5lcmF0ZSBhIG5vcm1hbCAjbGluZSBkaXJlY3RpdmUgYXMgcGVyIEM5OQogICBpbnN0ZWFkIG9mIHRoZSBjb21waWxlci1zcGVjaWZpYyAjPG4+LWRpcmVjdGl2ZS4KCjIwMTAtMTAtMTMgMTY6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvYXV0b2NvbmYtdmVyc2lvbiwgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAwY29uZmlndXJlOgoKICAgYWRkZWQgYSBhdXRvY29uZiB2ZXJzaW9uIGNoZWNraW5nIHRlc3QgdG8gY2F0Y2ggZGV2ZWxvcGVycyBhbmQKICAgc2NyaXB0cyB0aGF0IGZhaWwgdG8gdXNlIHRoZSBjb3JyZWN0IGF1dG9jb25mIHZlcnNpb24KCjIwMTAtMTAtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgUGF0Y2ggZnJvbSBCaWxsIEZlbm5lciB0byBmaXggb25seSBpbmNsdWRpbmcgdGhlIHNlc3Npb25fYXBpLmgKICAgZmlsZQoKMjAxMC0xMC0xMyAxNjoyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgRm9sbG93LXVwIGZvciByMTk0MjE6IE1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBhZ2FpbiByZXBvcnRzCiAgIHRoZSBwcm9wZXIgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIHdoaWxlIGNvbXBpbGluZwogICB1bml0IHRlc3RzLgoKMjAxMC0xMC0xMyAxMTo1MyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogYmF0Y2ggYnVpbGQgd2l0aCBPcGVuU1NMIGVuYWJsZWQgYW5kCiAgIHdpdGggcmVjZW50IE9wZW5TU0wgZGV2ZWxvcG1lbnQgZmlsZXMgd29ya3MgYWdhaW4uCgoyMDEwLTEwLTEzIDA5OjU4ICBidmFzc2NoZQoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9ydW46CgogICBDSEFOR0VTOiBDeWd3aW46IFJ1bm5pbmcgdGhlIHVuaXQgdGVzdHMgZG9lcyBub3cgd29yayAoY2QgdGVzdGluZwogICAmJiAuL1JVTkZVTExURVNUUyAtZyB1bml0LXRlc3RzKS4KICAgQ0hBTkdFUzogTWluR1c6IFJ1bm5pbmcgdGhlIHVuaXQgdGVzdHMgZG9lcyBub3cgd29yayAoY2QgdGVzdGluZwogICAmJiAuL1JVTkZVTExURVNUUyAtZyB1bml0LXRlc3RzKS4KCjIwMTAtMTAtMTMgMDg6MDAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBGaXhlZCBhIHNwZWxsaW5nIGVycm9yIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMTAtMTMgMDc6NDMgIGJ2YXNzY2hlCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFNwZWxsaW5nIGZpeGVzLgoKMjAxMC0xMC0xMiAxNDowMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oOgoKICAgQWRkZWQgZGVjbGFyYXRpb24gZm9yIHNlX2NsZWFyX3NsaXN0KCkuCgoyMDEwLTEwLTEyIDExOjEyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgQWRkZWQgbW9yZSB0ZXN0IGNhc2VzIHRvCiAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmMuCiAgIFZlcmlmaWVkIHdpdGggVmFsZ3JpbmQgdGhhdCBldmVyeXRoaW5nIGRvZXMgbm93IHdvcmsgY29ycmVjdGx5CiAgIGFuZCB0aGF0IHRoZQogICB0ZXN0IHByb2dyYW0gaXMgZnJlZSBvZiBsZWFrcy1hdC1leGl0LgoKMjAxMC0xMC0xMiAxMToxMSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogSW52b2tpbmcgc2VfY2xlYXJfc2xpc3QoKSBkb2VzIG5vIGxvbmdlciBjcmVhdGUKICAgYSBkYW5nbGluZyBwb2ludGVyLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBsZWFrcy1hdC1leGl0IHRyaWdnZXJlZCBieSB1c2luZyB0aGUKICAgc25tcF9lbnVtIGNvZGUuCiAgIENIQU5HRVM6IHNubXBsaWI6IERvY3VtZW50ZWQgYmVoYXZpb3Igb2Ygc2VfYWRkX3BhaXIoKSwKICAgc2VfYWRkX3BhaXJfdG9fc2xpc3QoKSBhbmQgY2xlYXJfc25tcF9lbnVtKCkuIE1hZGUgc25tcF9lbnVtCiAgIGV4YW1wbGUgY29uc2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZSBjb2RlIGJ5IGFkZGluZyBzdHJkdXAoKQogICBjYWxscyBhbmQgYWRkZWQgYSBjYWxsIHRvIHNlX2NsZWFyX2FsbF9saXN0cygpLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBjb3JydXB0aW9uIHByb2JsZW0gdHJpZ2dlcmVkIGJ5CiAgIHRoZSAodW5kb2N1bWVudGVkKSBzbm1wZC5jb25mICJlbnVtIiBrZXl3b3JkIGhhbmRsZXIgLSBzdG9yaW5nCiAgIHBvaW50ZXJzIHRvIHN0cmluZ3MgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBpbiBhIGdsb2JhbCBsaXN0IGRvZXMKICAgbm90IHdvcmsuCiAgIENIQU5HRVM6IHNubXBsaWI6CgoyMDEwLTEwLTEyIDA2OjI3ICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9saWJoZWxwZXJzLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMDg1MTg3OiBCdWlsZGluZyB2aWEgdGhlIE1pY3Jvc29mdCBWaXN1YWwKICAgU3R1ZGlvIHByb2plY3QgZmlsZSAoLmRzdy8uZHNwKSB3b3JrcyBhZ2Fpbi4KCjIwMTAtMTAtMTIgMDU6MzUgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IHRoZSBleHRlcm4gIkMiIGRlY2xhcmF0aW9ucyB0byBiZQogICBjb25zaXN0ZW50LiBSZW1vdmUgY29tbWVudGVkIG91dCBjb2RlLgoKMjAxMC0xMC0xMSAyMTo0MSAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAxMC0xMC0xMSAyMTozOSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9hcHQuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgU3VwcG9ydCBmb3IgaHJTV0luc3RhbGxlZFRhYmxlIGZvciBkcGtnL2FwdC1iYXNlZCBzeXN0ZW1zCgoyMDEwLTEwLTExIDIwOjQ2ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSBzb3VyY2VzIGZvciBTTk1QLVRMUy1UTS1NSUIKCjIwMTAtMTAtMTEgMjA6NDIgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENoZWNrIGVhcmx5IGZvciBwaWNsLmgKCjIwMTAtMTAtMTEgMjA6MzEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmg6CgogICBGaXggd2FybmluZ3MgZnJvbSBsbXNlbnNvck1pYgoKMjAxMC0xMC0xMSAyMDozMCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jOgoKICAgRml4IG5ldyBzdHlsZSBsbXNlbnNvck1pYiBmb3IgU29sYXJpcyAod2FzIGl0IGV2ZXIgY29tcGlsZWQKICAgYmVmb3JlKQoKMjAxMC0xMC0xMSAyMDoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRml4IGxtU2Vuc29ycyBmb3IgU29sYXJpcwoKMjAxMC0xMC0xMSAyMDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jOgoKICAgRml4IGEgU29sYXJpcyBmaWxlIGRlc2NyaXB0b3IgbGVhawoKMjAxMC0xMC0xMSAyMDoyNSAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTWFrZSAtLWRpc2FibGUtZGV2ZWxvcGVyIHdvcmsKCjIwMTAtMTAtMTEgMTg6MjMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBVcGRhdGUgdGhlIGxlbmd0aCBvZiBzeXNPYmplY3RJRCBhcyB3ZWxsIGFzIHRoZQogICBkYXRhIHdoZW4gaXQgaXMgc2V0IGZyb20gYSBjb25maWd1cmF0aW9uIGZpbGUuCgoyMDEwLTEwLTExIDE3OjU4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogZnJvbSAiTmllbHMgQmFnZ2VzZW4iOiBTb21lIHN5c3RlbXMgZG8gbm90CiAgIHN1cHBvcnQgdGhlIC1FIGZsYWcgdG8gZ3JlcCwgdXNlIGF1dG9jb25mIHRvIGZpbmQgdGhlIHJpZ2h0IGVncmVwCiAgIGF0IGFsbCB0aW1lcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYuUkMzIC0+IFY1LjYKCjIwMTAtMTAtMDcgMjA6MzMgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0xMC0wNiAxMTozMSAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIEZpeCBpcHY2IGdlbmVyaWMgY2FzZSBzbyB0ZXN0IG1hdGNoZXMgdmVyaWZpY2F0aW9uCgoyMDEwLTEwLTAxIDE2OjQ0ICBkdHMxMgoKICAgKiBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgUmV3b3JrIGRlc2NyaXB0aW9uIG9mIE9JRCBuYW1lIGhhbmRsaW5nIHRvIGJlCiAgIG5vdCBxdWl0ZSBzbyBpbmNyZWRpYmx5IG91dCBvZiBkYXRlLgoKMjAxMC0wOS0yMiAxNDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgZXJnLi4uIHJlYWxseSB1c2UgdGhlIHJpZ2h0IGF1dG9jb25mIHZlcnNpb24gYnkgc2V0dGluZyB0aGUgcGF0aAogICByaWdodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5yYzIgLT4gVjUuNi5yYzMKCjIwMTAtMDktMjEgMjM6NTMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlZ2VuZXJhdGVkIHdpdGggcHJvcGVyIGF1dG9jb25mIHZlcnNpb24KCjIwMTAtMDktMjEgMjM6NDkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0yMSAyMzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHZlcmlmaWVkIHBhdGNoIGZyb20gcnN0b3J5IHRvIGZpeCBjZXJ0aWZpY2F0ZSBsb2FkaW5nIG9mCiAgIGluY29tcGxldGUgY2hhaW5zCgoyMDEwLTA5LTIxIDE4OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4Mzg4OiBmcm9tIGNocmlzYm9sdDogZG9uJ3QgcGFyc2UKICAgaW5jbHVkZUFsbERpc2tzIGluIHRoZSBtYWluIHNubXBsaWIgcm91dGluZXMKCjIwMTAtMDktMjEgMTg6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMDYyNTI2OiBmcm9tIG1hcmlvZzg1OiBmaXggc2VjdXJpdHkKICAgZW5naW5lSUQgc2V0dGluZyBpbiB0aGUgdHJhcHNlc3MgZGlyZWN0aXZlCgoyMDEwLTA5LTIxIDE1OjEzICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIFdpbjMyIGRvY3VtZW50YXRpb24uCgoyMDEwLTA5LTIwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBQYXRjaCBmcm9tIEZ1bGtvIEhldyB0byBmaXggcGF0Y2ggMjkwMDA3OCB3aGljaCBicm9rZSBzeXNPYmplY3RJRAogICBsZW5ndGhzCgoyMDEwLTA5LTIwIDIxOjMyICBkdHMxMgoKICAgKiBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmOgoKICAgRG9jdW1lbnQgLUNmIGluIHRoZSB0d28gbWFuIHBhZ2VzIHNlcGFyYXRlbHkuCgoyMDEwLTA5LTIwIDIwOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMwNjc1NDA6IGZyb20gam95Y2Vhbm1hY2hpbmU6IEZpeCBJUHY0CiAgIE9JRCBpbmRleGVzIG9uIDY0LWJpdCBiaWctZW5kaWFuIHN5c3RlbXMuCgoyMDEwLTA5LTIwIDE5OjI1ICBidmFzc2NoZQoKICAgKiAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCB3aW4zMi9Db25maWd1cmUsICAgCiAgICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMmRsbC5kc3c6CgogICBVbi1icmVhayB0aGUgTVNWQyBidWlsZC4KCjIwMTAtMDktMjAgMDk6MTggIGJ2YXNzY2hlCgogICAqIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzLCBtYW4sIHRlc3RpbmcsIHdpbjMyOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0cy4KCjIwMTAtMDktMTcgMTA6MzQgIGR0czEyCgogICAqICBtYW4vYWdlbnR4dHJhcC4xLmRlZiwgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wc2V0LjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsICAgCiAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIFJlbW92ZSBDTVUgY29weXJpZ2h0IG5vdGljZSBmcm9tIG1hbiBwYWdlcyB0aGF0IHdlcmUgbm90CiAgIGluaGVyaXRlZCBmcm9tIENNVS1TTk1QIChhbmQgcXVhbGlmeSB0aGUgY29weXJpZ2h0IGZvcgogICB0aG9zZSB0aGF0IHdlcmUpLgoKMjAxMC0wOS0xNyAwOTo1MSAgZHRzMTIKCiAgICogIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCBtYW4vc25tcF9jb25maWcuNS5kZWYsIAogICAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgVXBkYXRlIG1hbiBwYWdlIHJlZmVyZW5jZXMgdG8gcmVmbGVjdCBuZXcgQVBJIGRvY3VtZW50YXRpb24KICAgc3RydWN0dXJlLgoKMjAxMC0wOS0xMCAwNDoyMyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG5ldyB0ZXN0KiBlbnRyaWVzIGZyb20gdGhlIHRlc3RpbmcKICAgTWFrZWZpbGUuaW4gdG8gdGhlIHRvcC1sZXZlbCBNYWtlZmlsZS5pbgoKMjAxMC0wOS0wOCAxNTo0MSAgZHRzMTIKCiAgICogIG1hbi9hZ2VudHh0cmFwLjEuZGVmLCBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgICAKICAgICAgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIG1hbi9maXhwcm9jLjEuZGVmLCAgIAogICAgICBtYW4vbWliMmMtdXBkYXRlLjEuZGVmLCBtYW4vbWliMmMuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sICAgCiAgICAgIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXAtYnJpZGdlLW1pYi4xLCBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcF9hbGFybS4zLmRlZiwgCiAgICAgICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGNvbmYuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgIAogICAgICAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCAKICAgICAgICBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcG5ldHN0YXQuMS5kZWYsCiAgICAgICAgIG1hbi9zbm1wc2V0LjEuZGVmLCBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwgIAogICAgICAgbWFuL3NubXB0ZXN0LjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCAKICAgICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgIG1hbi9zbm1wdXNtLjEuZGVmLCAgICBtYW4vc25tcHZhY20uMS5kZWYsIG1hbi9zbm1wd2Fsay4xLmRlZiwKICAgICAgbWFuL3RrbWliLjEuZGVmLCAgICBtYW4vdHJhcHRvZW1haWwuMS5kZWYsIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBVcGRhdGUgbWFuIHBhZ2UgZGF0ZXN0YW1wcyB0byBtYXRjaCB0aGUgbGF0ZXN0IChub24tdHJpdmlhbCkKICAgY29udGVudCBjaGFuZ2UuCiAgIFN1cHByZXNzIGZvcmNpbmcgb2YgIkJlcmtlbGV5IERpc3RyaWJ1dGlvbiIgZm9vdGVyCiAgIChBbGxvd3MgTmV0LVNOTVAgdmVyc2lvbiBpbmZvcm1hdGlvbiB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1hbgogICBwYWdlKQoKMjAxMC0wOS0wOCAwNTozNyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZWQKCjIwMTAtMDktMDQgMDY6MzggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkzNTYgYnkKICAgY2hhbmdpbmcgdGhlIHJldHVybgogICB0eXBlIG9mIG5ldHNubXBfdGxzYmFzZV9mcmVlX3Rsc2RhdGEoKSBmcm9tIHZvaWQqIHRvIHZvaWQuCgoyMDEwLTA5LTA0IDA2OjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkzMjIgKHBhdGNoCiAgIDMwNDQ1MTIpLgogICBUaGUgdGhpcmQgYXJndW1lbnQgcGFzc2VkIHRvIHJlYWRfb2JqaWQoKSB3YXMgYW4gaW50IGluc3RlYWQgb2YKICAgc2l6ZV90LgogICBUaGlzIGNvdWxkIGhhdmUgY2F1c2VkIG1lbW9yeSBjb3JydXB0aW9uIG9uIDY0LWJpdCBzeXN0ZW1zLgoKMjAxMC0wOS0wNCAwMzowOSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA5LTA0IDAzOjA4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOS0wNCAwMTo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA5LTA0IDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDktMDMgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdGxzdGNwIHBhcnNpbmcgb2YgaG9zdCBuYW1lcy4KCjIwMTAtMDktMDMgMjI6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgY2hlY2sgdGhlIHJldHVybiBjb2RlIG9mIGZnZXRzIGFuZCBmb3BlbiBiZWZvcmUgaW5zZXJ0aW5nIHRoZQogICByZXN1bHRzLgoKMjAxMC0wOS0wMyAyMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBQYXRjaCBmcm9tIHRhbmRlcnMgdG8gZml4IGJyb2tlbiBhbGFybXMgYWZ0ZXIgdGhlIHByZXZpb3VzCiAgIHJlLWVudHJhbnQgcGF0Y2gKCjIwMTAtMDktMDMgMjI6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2ggMzA1ODY0NTogZnJvbSBqb3Jpc2VzYXR1cm51czogbW9kaWZpZWQKICAgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggdG8gdXNlIE1TR19ET05UV0FJVCBmb3IgdGhlIHVuaXggZG9tYWluCiAgIHNvY2tldAoKMjAxMC0wOS0wMyAyMTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1ODE0MDogZnJvbSB0YWtldm9zOiBjaGVjayB0aGF0IGlub2RlIGlzCiAgIG5vbi16ZXJvCgoyMDEwLTA5LTAzIDIxOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDI4OiBmcm9tIHRha2V2b3M6IGZpeAogICBnZXRfcGlkX2Zyb21faW5vZGUgd2hlbiB0aGUgaW5vZGUgaXMgbm90IGZvdW5kLgoKMjAxMC0wOS0wMyAyMDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSBkdXBsaWNhdGUgcmV0dXJuIGJlZm9yZSB0aGUgZXJyb3IgY29kZXMgZ2V0IHNldC4KCjIwMTAtMDktMDEgMTg6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBMb2cgYmVmb3JlIHJldHVybmluZy4KCjIwMTAtMDktMDEgMDI6NDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgVExTIHNlbmRfbm90aWZ5IG9uIGNsb3N1cmUgYW5kIHNvbWUgbWVtb3J5IGNsZWFuLXVwIHBhdGNoZXMKCjIwMTAtMDgtMzEgMTc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9ubHkgcHJpbnQgdGhlIHNlY3VyaXR5L2NvbnRleHQgRW5naW5lSUQgbWlzbWF0Y2ggbm90ZSB1bmRlciBVU00KCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBDSEFOR0VTOgoKICAgcmVtb3ZlIHJlZmVyZW5jZSB0byByZXZlcnRlZCBwYXRjaCAzMDQyNzY1CgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBub3RlIG9uIHdoZXJlIHRvIGZpbmQgY29udGVudCB1c2VkIHRvIGdlbmVyYXRlCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgcmV2ZXJ0IHIxOTM0MiwgcGF0Y2ggMzA0Mjc2NSwgd2hpY2ggYnJva2UgY2xpZW50IHRjcCBkaXNjb25uZWN0CiAgIGhhbmRsaW5nCgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBtb3JlIGNvZGUgYnJva2VuIGJ5ICdjb21waWxlciB3YXJuaW5nIGZpeCcgaW4gcjE5MTc5CgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIGNoZWNrIGZvciBjb25mIGVycm9ycyBhZnRlciBhZ2VudCBzdGFydHVwOyBlbmFibGUgbG9nVGltZXN0YW1wOwogICBtYWtlIHN1cmUKICAgYWxsIGNlcnQgbmFtZS90YWdzIGFyZSB1bmlxdWUKCjIwMTAtMDgtMjQgMjE6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9yIHN0cmluZyB0byBkaXNjdXNzIHRoZSByaWdodCBmYWlsZWQgb3BlbnNzbCBuZXcKICAgaW52b2NhdGlvbgoKMjAxMC0wOC0yNCAwNTozNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBDb3JyZWN0IGlmZGVmcywgcmVtb3ZlIGRlYWQgdmFyaWFibGVzLgoKMjAxMC0wOC0xOSAyMToyMiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA4LTE5IDIxOjIwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOC0xOSAyMToxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIC8vIC0+IEMgY29tbWVudHMKCjIwMTAtMDgtMTkgMjA6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzA0Mjc2NTogZnJvbSBtZWhhZjogbWFrZQogICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiKCkgcmUtZW50cmFudAoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICB0dXJuIG9mZiBjb29raWUgZXhjaGFuZ2VzIHVudGlsIGEgY29tcGxldGUgY29kZSBzZXQgY2FuIGJlCiAgIHdyaXR0ZW4gdG8gc3VwcG9ydCBpdCBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgZnVuY3Rpb24gY2FsbGJhY2tzCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFkZCBtaXNzaW5nIGNhbGwgdG8gc3RvcmUgcGVyc2lzdGVudCBkYXRhIGFzIG5lZWRlZAoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGRpc3BsYXlpbmcgYSBieXRlIGFzIHNpbmdsZSBkaWdpdCBoZXgKICAgdmFsdWUsIGRlZmF1bHQgdG8KICAgcHJlZml4aW5nIHdpdGggMCB1bmxlc3MgdGhlcmUgaXMgYSBzZXBlcmF0b3Igb3IgYWRkaXRpb24gaGludAogICBkYXRhCgoyMDEwLTA4LTE3IDEwOjMxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhbiB1bnVzZWQgbGFiZWwgdGhhdCB3YXMgdHJpZ2dlcmVkCiAgIHdoZW4KICAgY29tcGlsaW5nIHdpdGhvdXQgU1NMIHN1cHBvcnQuCgoyMDEwLTA4LTE2IDIzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjc5MDI0OTogZnJvbSB3aWxscHdpbGxwOiByZWR1Y2UgY2FjaGUgdGltZQogICBmb3IgdGhlIGlmdGFibGUgdG8gM3NlY29uZHMgdG8gaW5jcmVhc2UgYWNjdXJhY3kKCjIwMTAtMDgtMTYgMTY6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDYzNzE6IGZyb20gY2hyaXN0b3BoYjQ6IEZpeCBtZW1vcnkgbGVhawogICBpbiBTTk1QdjEgdHJhcCBoYW5kbGluZy4KCjIwMTAtMDgtMTYgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI4MjU2NTM6IGZyb20gYnJ1NWNlOiBmaXggc2VuZG1haWwuY2YKICAgcGFyc2luZyBpbiBjZXJ0YWluIGNvbmRpdGlvbnMKCjIwMTAtMDgtMTYgMTA6MTYgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEJ1aWxkIG5ldHNubXBfYWdlbnRfYXBpLjMgbWFuIHBhZ2UgZnJvbSB0ZW1wbGF0ZQoKMjAxMC0wOC0xNiAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogRG9jdW1lbnRhdGlvbiAoUHJvdmlkZWQgYnkgVG9tYXN6CiAgIExpcykKCjIwMTAtMDgtMTYgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlLW9yZGVyIGNvZGUgdG8gZ3JvdXAgcmVsYXRlZAogICBmdW5jdGlvbnMgdG9nZXRoZXIKCjIwMTAtMDgtMTYgMDc6NDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI5OTUwOTg6IEZpeCBjcmVhdGlvbiBvZiBTTk1QdjMgc2Vzc2lvbnMKICAgd2l0aCBBUElfU0lOR0xFCgoyMDEwLTA4LTE0IDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlcwoKMjAxMC0wOC0xNCAxNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTA0OTAwOiBEb2N1bWVudGF0aW9uIHBsdXMgYXNzb3J0ZWQKICAgaGFuZGxlciBjb2RlIGZpeGVzCgoyMDEwLTA4LTE0IDA5OjI4ICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICBSZXN0b3JlIGFnZW50IEFQSSBtYW4gcGFnZQogICBEb24ndCB0cnkgdG8gZXh0cmFjdCBtdWx0aXBsZSBtYW4gcGFnZSBsaW5rcyBwZXIgbGluZQogICAod2hpY2ggcnVucyBpbnRvIHByb2JsZW1zIHdpdGggT1Mtc3BlY2lmaWMgbGluZSBlbmRpbmdzKS4KICAgSW5zdGVhZCwgZW5zdXJlIHRoZSBtYW4gcGFnZSBOQU1FIHNlY3Rpb24gbGlzdHMgb25lCiAgIHJvdXRpbmUgcGVyIGxpbmUKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBicm9rZW4gTWFrZWZpbGUgYWZ0ZXIgbWFuIHBhZ2UgbW92ZXMKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCBUTFMgTUlCIHRvIGN1cnJlbnQgY29weQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlcGxhY2VkIFJGQyBjb21tZW50IG51bWJlcgoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaDogMzA0Mjc3MDogZnJvbSBtZWhhZjogTWFkZSBydW5fYWxhcm1zKCkKICAgcmVlbnRyYW50CgoyMDEwLTA4LTEzIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNDQ1MTI6IGZyb20gcGhpbHdlYnN0ZXI6IGZpeCBzeXNvYmplY3RpZAogICBkaXJlY3RpdmUuCgoyMDEwLTA4LTEzIDE5OjAwICByc3RvcnkKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeDoKCiAgIHVzZSAxMjcuMC4wLjEgaW5zdGVhZCBvZiBsb2NhbGhvc3QgYXMgZGVmYXVsdCBTTk1QX1RFU1RfREVTVCBzbwogICBUTFMgdGVzdHMgd29yawoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBpbXBsZW1lbnRlZCBhIGZpeCBmb3IgdGhlIGlzc3VlIHJlcG9ydGVkIGluCiAgIHBhdGNoICMzMDQyNzcwLiBDcmVhdGVkIGEgc25tcF9zZWxlY3RfaW5mb19mbGFncyBmdW5jdGlvbiwgYW5kCiAgIHNpbWlsYXIsIHRoYXQgYWxsb3cgZm9yIGFsYXJtcyB0byBub3QgYmUgcnVuLiBUaGlzIGlzIHRoZW4gdXNlZAogICBpbiB0aGUgc3luY2hfcmVzcG9uc2UgZnVuY3Rpb25zIHRvIGF2b2lkIDEwMCUgQ1BVIGxvb3BzCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhcHBzL3NubXB0cmFwZC5jOgoKICAgbWFrZSBzbm1wdHJhcGQgcmVnaXN0ZXIgdGhlIGNlcnR0b3NlY25hbWUgdGFibGUgaW4gdGhlIGFnZW50eAogICByZWdpc3RyYXRpb25zCgoyMDEwLTA4LTEzIDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgbWlub3Igd29yZGluZyBhZGRpdGlvbnMKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYzoKCiAgIENIQU5HRVM6IGFpeDogUEFUQ0g6IDI4ODY1OTg6IGZyb20gZXhzbmFmdTogSGVhZGVyIGZpeGVzIGZvcgogICBjb21waWxpbmcgb24gQUlYNgoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgTkVXUzogcG9ydHM6IFBBVENIOiAyODM2ODk1OiBmcm9tIHNlYW5ib3VkcmVhdTogc3VwcG9ydCBmb3IgUU5YNgoKMjAxMC0wOC0xMyAxNDozMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZjoKCiAgICdlbmZvcmNlIG5ldHNubXAgcHJlZml4ZXMKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vcGR1X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjIwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgRG9uJ3QgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBtYW4gcGFnZXMKCjIwMTAtMDgtMTMgMTQ6MTggIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgbWFuL3NubXBfc2Vzc19jbG9zZS4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX29wZW4uMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19yZWFkLjMsIG1hbi9zbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19zZW5kLjMsIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLCAgIAogICAgICBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBtYW4gcGFnZSBsaW5rcwogICAoU2hvdWxkIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LCBidXQgZG9uJ3QgZXhpc3QgYW55IG1vcmUKICAgYW55d2F5KQoKMjAxMC0wOC0xMyAxNDoxMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgIAogICAgICAgbWFuL2dldF9tb2R1bGVfbm9kZS4zLCBtYW4vaW5pdF9taWIuMywgbWFuL2luaXRfbWliX2ludGVybmFscy4zLCAKICAgICAgICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NldF9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAgCiAgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywgbWFuL3ByaW50X21pYi4zLCAgCiAgICAgICBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMsIG1hbi9wcmludF92YXJpYWJsZS4zLCAgIAogICAgICBtYW4vcmVhZF9hbGxfbWlicy4zLCBtYW4vcmVhZF9taWIuMywgbWFuL3JlYWRfbW9kdWxlLjMsICAgCiAgICAgIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsIG1hbi9yZWFkX29iamlkLjMsIG1hbi9zaHV0ZG93bl9taWIuMzoKCiAgIFJlbW92ZSBEb3h5Z2VuLWdlbmVyYXRlZCBtYW4gcGFnZXMsIGFuZCB0aG9zZSBsaW5raW5nCiAgIGluZGl2aWR1YWwgcm91dGluZXMgdG8gdGhlIGFwcHJvcHJpYXRlIG1hbiBwYWdlLgogICAoVGhlc2UgYXJlIGJldHRlciBnZW5lcmF0ZWQgZHluYW1pY2FsbHkpCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFByb21wdCBmb3Igd2hldGhlciB0byBnZW5lcmF0ZSBjYWNoaW5nIGNvZGUgb3Igbm90LgoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFJld29yayBndWlkYW5jZSBxdWVzdGlvbnMgd2hlbiBzZWxlY3RpbmcgdGhlIGJlc3QgdGFibGUgZnJhbWV3b3JrCiAgIHRvIHVzZS4KICAgRW5zdXJlIHRhYmxlIGhhbmRsaW5nIGNvZGUgZG9lc24ndCBvdmVyd3JpdGUgc2NhbGFyIGhhbmRsaW5nCiAgIGNvZGUuCiAgIENoZWNrIHRoYXQgdGhlIHN0YXJ0aW5nIHBvaW50IGlzIHN1aXRhYmxlIGZvciBNZkQgZnJhbWV3b3JrLgoKMjAxMC0wOC0xMiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMTIgMTU6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBhIGR1cGxpY2F0ZSB2YWx1ZSBjaGVjawoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIGFkZCBhIHRlc3Qgd2hlcmUgd2UgY2FuIHRydXN0IGEgQ0Etc2lnbmVkIGNlcnQgYW5kIHdlIGRvbid0IHRydXN0CiAgIHRoZSBDQQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHRlc3QgYSBkaXJlY3RseSBtYXBwZWQgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGNoYW5nZSB0aGUgbGFDb25maWcgdG8gcmVhZC13cml0ZSB0byBtYXRjaCB0aGUgcGF0Y2gKCjIwMTAtMDgtMTEgMjI6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjkzMTQ0NjogZnJvbSBhaG1ha2U6IG1ha2UgdGhlIGxvYWQgYXZlcmFnZXMKICAgd3JpdGFibGUuCgoyMDEwLTA4LTExIDA2OjQzICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBDSEFOR0VTOiBTaWxlbmNlIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MgZnJvbSB0ZXN0IGNhc2VzLgoKMjAxMC0wOC0wOSAyMTowOSAgbWFnZnIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBIYW5kbGUgZW1iZWRkZWQgJSdzIGluIHRoZSByZXN1bHQgbWVzc2FnZS4KCjIwMTAtMDgtMDkgMjE6MDcgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgQ0hBTkdFUzogRG8gbm8gZG91YmxlIGRlY2xhcmUgdGhlIGluZGV4IHZhbHVlcy4KCjIwMTAtMDgtMDUgMTE6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVXBkYXRlICJhdXRoKiIgdXNhZ2UgbWVzc2FnZSB3aXRoIGNvbnRleHQgc3VwcG9ydAoKMjAxMC0wOC0wMiAyMDowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRml4IHR3byBzaWxseSBtaXN0YWtlcy4KCjIwMTAtMDgtMDIgMTQ6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEFJWCBmaWxlc3lzdGVtIHR5cGVzIGFyZSB0YWdnZWQgYXMgaW50ZWdlcnMsIG5vdCBzdHJpbmdzLgoKMjAxMC0wOC0wMiAxMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIGZpeCBQZXJsIHN5c3RlbSgpIGNvbmZpZ3VyZSBjaGVjayB0byB3b3JrIHJlbGlhYmx5IG9uIHN5c3RlbXMKICAgdGhhdCBsYWNrCiAgIFBlcmwKCjIwMTAtMDgtMDIgMTE6MDggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBtYWRlIGl0IHBvc3NpYmxlIHRvIGFuYWx5emUgYWxsIGNvZGUgY292ZXJlZCBieQogICB0aGUgcmVncmVzc2lvbiB0ZXN0cyB3aXRoIGEgZHluYW1pYyBhbmFseXplciwgYXQgbGVhc3QgaWYgdGhhdAogICBhbmFseXplciBzdXBwb3J0cyBmb2xsb3dpbmcgY2hpbGQgcHJvY2Vzc2VzLiBBbiBleGFtcGxlOgogICAKICAgcm0gLXJmIC90bXAvc25tcC10ZXN0LSoKICAgbWFrZSAtcwogICBTTk1QX1NBVkVfVE1QRElSPXllcyBEWU5BTUlDX0FOQUxZWkVSPSJ2YWxncmluZAogICAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLXRyYWNrLW9yaWdpbnM9eWVzIiBtYWtlIC1zIHRlc3QKICAgZ3JlcCAtaSB1bmluaXRpYWxpc2VkIC90bXAvc25tcC10ZXN0LSogfCB4YXJncyBsZXNzCgoyMDEwLTA4LTAyIDExOjAyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHR3byBWYWxncmluZCBjb21wbGFpbnRzOgogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZENzAyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ5OUQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ3QTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RTE0NDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1RTVFMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDVFNjU3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1RTU2N0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NUUyNDc5QTogX3Nlc3NfcHJvY2Vzc19wYWNrZXQgKHNubXBfYXBpLmM6NTQ0MSkKICAgYnkgMHg1RTI1RTM3OiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjYwMzcpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1RTY1NzM5OiBuZXRzbm1wX3RjcF9hY2NlcHQgKHNubXBUQ1BEb21haW4uYzo4MikKICAgYnkgMHg1RTI1MzgzOiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjU3ODYpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZGN0IyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkZBNEQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkY4NTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg3MDFGNDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1NkZBMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDU3MDE3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1NkYyN0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NTZGMjk0RjogbmV0c25tcF90cmFuc3BvcnRfc2VuZCAoc25tcF90cmFuc3BvcnQuYzoyNDgpCiAgIGJ5IDB4NTZCQzQ4Nzogc25tcF9zZXNzX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NTIwNCkKICAgYnkgMHg1NkJDNjUxOiBzbm1wX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NDk5OCkKICAgYnkgMHg1NkJDNjc3OiBzbm1wX3NlbmQgKHNubXBfYXBpLmM6NDk4NCkKICAgYnkgMHg1Njk4NDQwOiBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiIChzbm1wX2NsaWVudC5jOjEwMDYpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDU3MDFCM0U6IG5ldHNubXBfdGNwX3RyYW5zcG9ydCAoc25tcFRDUERvbWFpbi5jOjE2MykKICAgYnkgMHg1NzAxRTZGOiBuZXRzbm1wX3RjcF9jcmVhdGVfdHN0cmluZyAoc25tcFRDUERvbWFpbi5jOjMwNSkKICAgYnkgMHg1NkYzODA0OiBuZXRzbm1wX3Rkb21haW5fdHJhbnNwb3J0X2Z1bGwKICAgKHNubXBfdHJhbnNwb3J0LmM6NjAxKQogICBieSAweDU2RjNBQ0M6IG5ldHNubXBfdHJhbnNwb3J0X29wZW5fY2xpZW50CiAgIChzbm1wX3RyYW5zcG9ydC5jOjY2OSkKICAgYnkgMHg1NDM0NEY2OiBzdWJhZ2VudF9vcGVuX21hc3Rlcl9zZXNzaW9uIChzdWJhZ2VudC5jOjc1OCkKICAgYnkgMHg1NDM0OUM4OiBhZ2VudHhfcmVvcGVuX3Nlc3Npb24gKHN1YmFnZW50LmM6ODY5KQogICBieSAweDU0MzREMDA6IHN1YmFnZW50X3N0YXJ0dXAgKHN1YmFnZW50LmM6OTkpCiAgIGJ5IDB4NTZFQUVCNzogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozMzgpCiAgIGJ5IDB4NTZERTZGQjogcmVhZF9jb25maWdzIChyZWFkX2NvbmZpZy5jOjEwMTgpCiAgIGJ5IDB4NTZDMjg3RTogaW5pdF9zbm1wIChzbm1wX2FwaS5jOjg1MCkKICAgYnkgMHg0MDQ3N0I6IG1haW4gKHNubXB0cmFwZC5jOjEwNDgpCgoyMDEwLTA4LTAxIDA2OjExICBidmFzc2NoZQoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgRml4ZWQgc3BlbGxpbmcgZXJyb3JzIHJlcG9ydGVkIGJ5IGlzcGVsbCAtbC4KCjIwMTAtMDgtMDEgMDY6MDAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfZW51bS5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgdGV4dCBzdHJpbmcgaW4gYSB1bml0IHRlc3Q6IHJlc3R1cmFudCAtPgogICByZXN0YXVyYW50LgoKMjAxMC0wOC0wMSAwNTo1MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oOgoKICAgRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcl90b19zbGlzdCgpLgoKMjAxMC0wNy0zMSAyMzo1MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oOgoKICAgRm9sbG93LXVwIGZvciByMTkyNjY6IGFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIHRvIHN1cHBvcnQgTWFjIE9TIFgKICAgMTAuNgogICAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKCjIwMTAtMDctMzEgMjA6MzggIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDozNSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNy0zMSAyMDoyNCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjExICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGNoYW5nZWQgdGhlIG5hbWUgb2YgdGhlIHJlYWRtZSBzZWN0aW9uIHRvIGNhbGwgb3V0IE5FV1MtdG9vCgoyMDEwLTA3LTMxIDIwOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbWlzc2luZyBuZXdzIGl0ZW1zCgoyMDEwLTA3LTMwIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIIDMwMzUzMjg6IGZyb206IHN3czogY2hlY2sgdGhlIHJlc3VsdHMgb2YKICAgc2Vzc2lvbiBjcmVhdGlvbiBmb3IgYSBmYWlsdXJlIGNhc2UuCgoyMDEwLTA3LTMwIDEzOjAwICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBwYXRjaCAzMDM1NTc4OiBmcm9tIHN3czoga2VlcCBlcnJvciBjb2RlcyB1cCB0bwogICBkYXRlCgoyMDEwLTA3LTI5IDE1OjQ4ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6NDcgIGR0czEyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTowMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmg6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBvZiAndmFfbGlzdCcgZm9yIHZhcmFyZ3MtYmFzZWQgQVBJcwoKMjAxMC0wNy0yOSAxNDo1OCAgZHRzMTIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBBSVggNwogICAob24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGlkZW50aWNhbCB0byBBSVggNikKCjIwMTAtMDctMjkgMTQ6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBEaXNhYmxlIGVtYmVkZGVkIHBlcmwgYnkgZGVmYXVsdCBvbiBhcmNoaXRlY3VyZXMgd2hlcmUKICAgdGhpcyBzZWVtcyB0byBjYXVzZSBwcm9ibGVtcyAoSFAtVVggJiBNYWMgT1MgWCkKCjIwMTAtMDctMjkgMTE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEd1YXJkIGFnYWluc3QgYmxhbmsgJ2luY2x1ZGUqJyBsaW5lcy4KICAgSGFuZGxlIHJlbGF0aXZlICdpbmNsdWRlRmlsZScgcGF0aHMKCjIwMTAtMDctMjkgMTA6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXR1cm4gYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIGNvbmZpZyBmaWxlcyBhcmUgYWN0dWFsbHkKICAgcHJvY2Vzc2VkLgogICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBmYWlsaW5nIHRvIGluY2x1ZGUgY29uZmlnIGZpbGVzLgoKMjAxMC0wNy0yOCAxNDo0NCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIG1hbi9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWYsICAKICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQnJpbmcgbWFuIHBhZ2UgZG9jdW1lbnRhdGlvbiwgaGVhZGVyIGZpbGVzIGFuZCBXaW5kb3dzIERMTAogICBkZWZpbml0aW9ucwogICBvZiB0b3AtbGV2ZWwgcHVibGljIEFQSSBjYWxscyBpbnRvIGxpbmUgd2l0aCBlYWNoIG90aGVyLgoKMjAxMC0wNy0yOCAxNDo0MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IG1pc25hbWVkIGNvbW1lbnQKCjIwMTAtMDctMjggMTQ6MzYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBEb24ndCBtaXggU01JdjEgYW5kIFNNSXYyIE1JQnMgaW4gdGhlIGxpc3Qgb2YgZGVmYXVsdCBNSUJzIHRvCiAgIGxvYWQuCiAgIFVzZSBuZXdlciBTTUl2MiB2ZXJzaW9ucyAod2hpY2ggaW5jbHVkZSBzdWl0YWJsZSBkaXNwbGF5IGhpbnRzKQogICByYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgUkZDMTIxMyBNSUIgKHdoaWNoIGRvZXNuJ3QpCgoyMDEwLTA3LTI4IDE0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggaW5kZW50YXRpb24gZm9yICdpbmNsdWRlU2VhcmNoJyBwcm9jZXNzaW5nIGNvZGUuCgoyMDEwLTA3LTI4IDE0OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFeHRlbmQgJ2luY2x1ZGUnIGNvbmZpZyBmaWxlIHByb2Nlc3NpbmcgdG8gY292ZXIgdGhyZWUKICAgZGlmZmVyZW50IG1vZGVzIG9mIHdvcmtpbmc6CiAgIC0gbG9vayBmb3IgdGhlIGZpbGUgb24gdGhlIGNvbmZpZyBzZWFyY2ggcGF0aAogICAtIGluY2x1ZGUgdGhlIHNwZWNpZmllZCBmaWxlIGJ5IG5hbWUKICAgLSBpb2FkIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeQogICBVc2UgZGlmZmVyZW50IGNvbmZpZyB0b2tlbnMgdG8gZGlzdGluZ3Vpc2ggdGhlc2UgY2FzZXMuCgoyMDEwLTA3LTI3IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI5MTI1MjA6IGZyb20gbGlzdG9tOiBGcmVlIGttZW0gcmVmZXJlbmNlcwogICBvbiBzaHV0ZG93bgoKMjAxMC0wNy0yNyAxMDo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9TTVVYLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBwYXRjaCAyOTc0NzE2OiBmcm9tIGJ2YXNzY2hlOiBmaXggaXNzdWVzIGluIHRoZQogICBTTVVYLU1JQgoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgaW5jbHVkZSB0aGUgbmV3IHNlY3VyaXR5LWhlZGFlcnMgbW9kdWxlCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICByZW1vdGUgZGVidWdnaW5nL3Byb2Nlc3Npbmcgc3RkZXJyIG91dHB1dAoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAzMDI4OTIzOiBmcm9tIGplbnNvOiBuZXcgY29weSBvZiB0aGUKICAgYnJpZGdlLW1pYiBwZXJsIGltcGxlbWVudGF0aW9uCgoyMDEwLTA3LTI3IDA4OjMxICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi1zZWN1cml0eS1oZWFkZXJzLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBzZWN1cml0eSBoZWFkZXIvaW5pdCBnZW5lcmF0aW9uCgoyMDEwLTA3LTI3IDA4OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzOgoKICAgdHJhbnNwb3J0IGNvbmZpZ3VyZSBwb3J0aW9uCgoyMDEwLTA3LTI3IDA4OjMwICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdHJhbnNwb3J0LWhlYWRlcnMuaW4sICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi12YXJpYWJsZXMuaW46CgogICBtb3ZlIHRyYW5zcG9ydCBoZWFkZXIgZ2VuZXJhdGlvbiB0byBhIHNlcGFyYXRlIGZpbGUgYW5kIGNyZWF0ZSBhbgogICBleHRlcm5hbCBzZXBhcmF0ZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcgaXQKCjIwMTAtMDctMjcgMDg6MTQgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IGdmcyBmaWxlc3lzdGVtcyBpbiBoclN0b3JhZ2VUYWJsZSBhbmQKICAgaHJGU1RhYmxlLgoKMjAxMC0wNy0yNCAxNTo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSB3YXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIHByb2Nlc3NpbmcgYW4gaW5jbHVkZWQgY29uZmlnIGZpbGUuCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTI0IDE1OjM2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIGlzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBvcGVuaW5nIGEgbmV3IFNOTVAgc2Vzc2lvbi4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjMgMDM6MTIgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWRkIHRoZSBUTFMgbW9kdWxlcyB0byB0aGUgbGlzdCBvZiB0ZXN0IG1vZHVsZXMKCjIwMTAtMDctMjEgMTk6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYzoKCiAgIEZpeCB0eXBvIGluIGRveHlnZW4gY29tbWVudAoKMjAxMC0wNy0yMSAxOToyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBGaXggdHlwbyBpbiBzcGVlZCBjb21wdXRhdGlvbgoKMjAxMC0wNy0yMSAxOToyMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIEluY2x1ZGUgZ2VuZXJhdGVkIHNlY3VyaXR5LWluY2x1ZGVzLmgKCjIwMTAtMDctMjEgMTk6MjAgIG5iYQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaDoKCiAgIEZpeCBpbml0IGZ1bmMgbmFtZSAoY29weS1wYXN0ZSBnbGl0Y2gpCgoyMDEwLTA3LTIxIDE5OjE4ICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgc2VtaWNvbG9uCgoyMDEwLTA3LTIxIDE5OjE4ICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBPdXQgb2Ygb3JkZXIgZGVjbGFyYXRpb24KCjIwMTAtMDctMjEgMTk6MTcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTG9nIGVycm9yIG9uIGZpbGUgb3BlbiBlcnJvcgoKMjAxMC0wNy0yMSAxOToxNiAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNwZWxpbmcgZXJyb3IKCjIwMTAtMDctMjEgMTg6MTAgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0LCBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIGZvciBjdXJyZW50IFJGQ3MKCjIwMTAtMDctMjEgMTg6MDggIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIEN1cnJlbnQgdmVyc2lvbiBmcm9tIElBTkEKCjIwMTAtMDctMjEgMTg6MDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHIxNzQ5NSBlcnJvbmVvdXNseSBkaXNhYmxlZCBkaXNrSU9MQXggZm9yIGxpbnV4CgoyMDEwLTA3LTIwIDEwOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBnZW5lcmF0aW5nCiAgIHRlbXAuIGZpbGUgbmFtZXMKCjIwMTAtMDctMjAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvc25tcGQuYywgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBEZXNjcmliZSAtRCB1c2FnZSBhcyAtRFtUT0tFTl0gaW5zdGVhZCBvZiAtRCBbVE9LRU5dCgoyMDEwLTA3LTE3IDE1OjEwICByc3RvcnkKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0OgoKICAgdXBkYXRlIGRpc3BsYXkgaGludCB0byBzb21lIGxlc3MgYW1iaWd1b3VzIChhbmQgdGhhdCB3b3JrcyB3aXRoCiAgIG91ciBsaWIpCgoyMDEwLTA3LTE3IDA0OjEzICByc3RvcnkKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCB0ZXN0c2ltcGxlIGZvciBidWlsZGRpciE9c3JjZGlyCgoyMDEwLTA3LTE3IDA0OjEyICByc3RvcnkKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGFkZCB0ZXN0c2ltcGxlIHRhcmdldAoKMjAxMC0wNy0xNiAxOToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVsZWFzZSBpdGVyYXRvciB3aGVuIGRvbmUgd2l0aCBpdAoKMjAxMC0wNy0xNSAxODoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggaXNzdWUgd2l0aCBVU00gdXNpbmcgaW5hY3RpdmUgdXNlcnMKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbmNsdWRlIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXI7IGRlZmluZSBOQU1FX01BWCBpZiBub3QgYWxyZWFkeQogICBkZWZpbmVkOwogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayB0aGF0IHNvbWUgbmV3ZXIgb3BlbnNzbCBtYWNyb3MgYXJlIGRlZmluZWQgYmVmb3JlIHVzaW5nCiAgIHRoZW07IGluY2x1ZGUKICAgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcgoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIGR0bHMgc3VwcG9ydCBpbiBvcGVuc3NsCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBkb24ndCBjb21waWxlIGR0bHMgZG9tYWluIGlmIG5vIGR0bHMgc3VwcG9ydCBpbiBvcGVuc3NsCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGlmZGVmIHByb3RlY3Rpb24gZm9yIGxhdGVyIHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgZGFyd2luIG9wZW5zc2wgZG9lcyBub3Qgc3VwcG9ydCBtb3JlIHJlY2VudCBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGZpeCB0eXBvIGluIGlmZGVmIHRlc3QKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gaW5jbHVkZWQgZmlsZSBuYW1lCgoyMDEwLTA3LTE0IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGZpeCB0aGUgZml4OiBwdXQgUFJJeiBzcGVjIGluIGNvcnJlY3QgcGxhY2UKCjIwMTAtMDctMTQgMTU6MDMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgc3BlY2lmeSBTTk1QIHZlcnNpb24gb24gY29tbWFuZGxpbmUKCjIwMTAtMDctMTQgMTU6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMTAtMDctMTQgMTU6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDctMTMgMjA6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBhcHBzL3NubXB0bHMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgaW5jbHVkZSBzc2wuaCBiZWZvcmUgY2VydF91dGlsLmgKCjIwMTAtMDctMTMgMjA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGRlYnVnIG91dHB1dCBmb3IgZm91bmQgY2VydAoKMjAxMC0wNy0xMyAxNjoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG8gaW4gbG9nIG1zZwoKMjAxMC0wNy0xMiAxMDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ0hBTkdFUzogV2luMzIgYW5kIEN5Z3dpbjogbWFkZSBzdXJlIHRoYXQgYWNjZXNzaW5nIHRoZSBtaWJJSQogICBpbnRlcmZhY2VzIHRhYmxlIGRvZXMgbm90IHRyaWdnZXIgb3V0LW9mLXJhbmdlIGFycmF5IGFjY2Vzc2VzCiAgICh3YXMgZGV0ZWN0ZWQgYnkgQm91bmRzQ2hlY2tlcikuCgoyMDEwLTA3LTEyIDEwOjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeGVkIGEgZGFuZ2xpbmctcG9pbnRlci1yZWFkIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE4LiBJbgogICByMTkwMTggdGhlIHR5cGUgb2YgZ3JvdXBTdWJ0cmVlTGVuIHdhcyBjaGFuZ2VkIGZyb20gaW50IHRvCiAgIHNpemVfdCwgd2hpY2ggY2hhbmdlZCB0aGUgYmVoYXZpb3Igb2YgdGhlIGxvb3AgIndoaWxlCiAgIChncm91cFN1YnRyZWVMZW4tLSA+IDApIC4uLiI6IGluc3RlYWQgb2Ygbm90IGV4ZWN1dGluZyB0aGUgbG9vcAogICBib2R5IHdoZW4gZ3JvdXBTdWJ0cmVlTGVuIHdhcyBuZWdhdGl2ZSwgcjE5MDE4IGNhdXNlZCB0aGUgYm9keSBvZgogICB0aGF0IGxvb3AgdG8gYmUgZXhlY3V0ZWQuIERldGVjdGVkIGJ5IHJ1bm5pbmcgc25tcGQgdW5kZXIKICAgQm91bmRzQ2hlY2tlciB3aGlsZSBwZXJmb3JtaW5nIGEgTUlCIHdhbGsuCgoyMDEwLTA3LTEyIDEwOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgUmV2ZXJ0ZWQgcjE5MDQ3ICh3aGljaCB3YXMgd3JvbmcpIGFuZCBpbXBsZW1lbnRlZCBhIHByb3BlciBmaXgKICAgZm9yIHRoZSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcy4KCjIwMTAtMDctMTIgMTA6MDkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMTAtMDctMTIgMTA6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaDoKCiAgIFN1cHByZXNzZWQgbW9yZSBNU1ZDIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFyczoKCiAgIGFkZCBjb21tZW50IHdpdGggb2JqZWN0IG5hbWUgZm9yIG51bWVyaWMgaWRzCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGdldCBzZXJ2ZXJJZCBmcm9tIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhOyB1c2UKICAgbmV3IGFwaQogICB0byBjb25maWcgc2VydmljZUlkIGZvciB0cmFwIHRyYW5zcG9ydCB3aGVuIHNlbmRpbmcgdHJhcHMKCjIwMTAtMDctMTEgMTE6MTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENIQU5HRVM6IEJVRzogMzAyNzkwMDogd2hlbiBjcm9zcy1jb21waWxpbmcgaXQgaXMgbm93IGFzc3VtZWQKICAgdGhhdCBtZW1jbXAoKSBpcyBhdmFpbGFibGUgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IGl0IGlzIG5vdAogICBhdmFpbGFibGUuCgoyMDEwLTA3LTExIDEwOjMwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSByMTkxOTcuCgoyMDEwLTA3LTEwIDIwOjAwICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzeW5jIHVwIGhlbHAgb3V0cHV0IGFuZCBvcHRpb25zIHByb2Nlc3NpbmcKCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgQ3lnd2luIHNlY3Rpb24gaW4gUkVBRE1FLndpbjMyLgoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFN1cHByZXNzZWQgImltcGxpY2l0IGNhc3QgZnJvbSBpbnQgdG8gdV9jaGFyIgogICB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgTVNWQy4KCjIwMTAtMDctMDkgMTU6MTEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBUZXN0aW5nOiBtYWRlIHRoZSBkZWJ1ZyBvdXRwdXQgdGhhdCBhcHBlYXJzIGluIHRoZSAiaW52b2tlZCIgZmlsZQogICBldmVuIG1vcmUgdmVyYm9zZS4KCjIwMTAtMDctMDkgMTU6MTAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNy0wOCAxOTozMCAgbWFyegoKICAgKiAgbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0LCAgIAogICAgICBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBhZGRzIHBlciBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZpbGUgc3VwcG9ydCBzbyBkZWZhdWx0cyBjYW4gYmUKICAgY3VzdG9taXNlZCBvbiBjbWRsaW5lIHcgLWkgPGlkZW50aXR5PiAtIHNlZSBuZXQtc25tcC1jZXJ0LmNvbmYKICAgZm9yIGV4YW1wbGVzIGFuZCBzb21lIGhlbHAgaW5mbwoKMjAxMC0wNy0wOCAxMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMDM5ODE6IFByb3RlY3QgYWdhaW5zdCBidWZmZXIgb3ZlcmZsb3cKCjIwMTAtMDctMDggMTE6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAxOTI0MzogUmVnaXN0ZXIgZXhlY0ZpeCBjb21wYXRhYmlsaXR5CiAgIGRpcmVjdGl2ZSBjb3JyZWN0bHkuCgoyMDEwLTA3LTA3IDEwOjE5ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlOgoKICAgQ0hBTkdFUzogQ3lnd2luIGFuZCBNaW5HVzogdGVzdHMgVDExMCwgVDExMSwgVDExMiwgVDEyMCwgVDEyMSBhbmQKICAgVDEyMiBkbyBub3cgcGFzcyB3aGVuIHNubXBkIGlzIGJ1aWx0IHdpdGggd2luRXh0RExMIHN1cHBvcnQKICAgZW5hYmxlZC4KCjIwMTAtMDctMDYgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBDaGFuZ2VMb2csIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgTWFkZSByZWdyZXNzaW9uIHRlc3RzIGVhc2llciB0byBkZWJ1ZyBieSBpbmNsdWRpbmcgb2sgLyBub3Qgb2sKICAgc3RhdHVzIGluIHRoZSAiaW52b2tlZCIgZmlsZS4KICAgU3BlbGxpbmcgZml4ZXM6IHJlbWViZXIgLT4gcmVtZW1iZXI7IHNlcGVyYXRvciAtPiBzZXBhcmF0b3IuCgoyMDEwLTA3LTA2IDE1OjA0ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIFRlc3QgVDA2NSBkb2VzIG5vdyByZWFsbHkgcGFzcyBvbiBNaW5HVy4KCjIwMTAtMDctMDUgMTA6MDEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBBZGRlZCBjdXJseSBicmFjZXMgc3VjaCB0aGF0ICd8fCcgYW5kICcmJicgYXJlIGV2YWx1YXRlZCBpbiB0aGUKICAgY29ycmVjdCBvcmRlci4KCjIwMTAtMDctMDQgMTE6MzcgIGJ2YXNzY2hlCgogICAqIGFwcHM6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTA3LTA0IDExOjM0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgRmFsbCBiYWNrIGZyb20gUlVORlVMTFRFU1RTIHRvIFJVTlRFU1RTIGlmIG5laXRoZXIgVEFQOjpIYXJuZXNzCiAgIG5vciBUZXN0OjpIYXJuZXNzIGlzIGF2YWlsYWJsZS4KCjIwMTAtMDctMDQgMTE6MjEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSB0ZXN0IG51bWJlciBpbiAvdG1wL3NubXAtdGVzdHMtJHRlc3RudW0gaXMgc2V0CiAgIHRvIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwgdGhhbiBqdXN0ICIwIi4KCjIwMTAtMDctMDQgMTE6MjAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBTcGxpdCBhIGxvbmcgY29tbWVudCBsaW5lLgoKMjAxMC0wNy0wNCAxMDo1MiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHNyY2RpciBpcyBjb21wdXRlZCBjb3JyZWN0bHkgaWYgYGRpcm5hbWUKICAgJDBgID0gLgoKMjAxMC0wNy0wMiAxNjoyNyAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIFNpbXBsaWZpZWQgcjE5MTgxIChGaXhlZCBUTFNUQ1AtZW5hYmxlZCBidWlsZCBmb3IgcGxhdGZvcm1zIHdpdGgKICAgbm9uLWVtcHR5ICQoRVhFRVhUKSwgaS5lLiBDeWd3aW4gYW5kIE1pbkdXKS4KCjIwMTAtMDctMDEgMTg6MTUgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGaXhlZCBUTFNUQ1AtZW5hYmxlZCBidWlsZCBmb3IgcGxhdGZvcm1zIHdpdGggbm9uLWVtcHR5CiAgICQoRVhFRVhUKSwgaS5lLiBDeWd3aW4gYW5kIE1pbkdXLgoKMjAxMC0wNy0wMSAxODoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGxzLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA3LTAxIDE3OjUzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRml4ZWQgdHdvIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTAxIDAwOjE5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0zMCAyMzo1NSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0OCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBweXRob24vbmV0c25tcC90ZXN0cy9zbm1wZC5jb25mOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pc3NlZCB0d28gdG9rZW5zIGluIHRoZSBtYW4gcGdhZXMKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcmVuYW1lIHRoZSBkZWZYNTA5IHRva2VucyB0byBzb21ldGhpbmcgbW9yZSBmcmllbmRseTogY2xpZW50Q2VydAogICBhbmQgc2VydmVyQ2VydAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdG9wLWZpbGUgY29tbWVudCB1cGRhdGVzCgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG9uJ3QgY2FsbCBjZXJ0X2ZpbmQgd2l0aCBhIE5VTEwgYXJndW1lbnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhbGxvdyBkZWYgY2VydHMgdG8gYmUgc3BlY2lmaWVkIHVzaW5nIGEgZmlsZW5hbWUKCjIwMTAtMDYtMzAgMjM6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAxMC0wNi0zMCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHR1cm4gYSBjb3VwbGUgb2Ygbm9uLWNyaXRpY2FsIGVycm9ycyBpbnRvIGRlYnVnIHN0YXRlbWVudHMgcGVyCiAgIGRpc2N1c3Npb24gd2l0aCByc3RvcnkKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gbWF0Y2ggZm9yIHRlc3RzIHRvIHJ1biBjYXNlIGluc2Vuc2l0aXZlCgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBpbXBvcnQgc3RkZXJyIGZyb20gc3lzLCBwZXIgZGlzY3Vzc2lvbiBvbiAtdXNlcnMKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBiYWNrIGluIHRoZSBkZWZhdWx0IHBvcnQgc3BlY2lmaWVyCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZW5hYmxlIHB1bGxpbmcgdGhlIHByaXZhdGUga2V5IG92ZXIgaHR0cAoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1vdmUgVVJMIGNvbGxlY3Rpb24gaW50byBhIHN1YiBmdW5jdGlvbgoKMjAxMC0wNi0zMCAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcHVsbCBhIGNlcnQgZnJvbSBhIFVSTAoKMjAxMC0wNi0zMCAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBhcmd1bWVudCBidWcgaW4gdGhlIGlzX3VybCBmdW5jdGlvbgoKMjAxMC0wNi0zMCAyMDo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGxzLmM6CgogICByZW1vdmUgZGVidWdnaW5nIGNvZGUKCjIwMTAtMDYtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN0R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlOgoKICAgcmVuYW1lIGZpbGUgZm9yIGNvbnNpc3RlbmN5CgoyMDEwLTA2LTMwIDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgc25tcHRscyBhcHAKCjIwMTAtMDYtMzAgMjA6MDAgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICByZW1vdmUgYWNjaWRlbnRhbGx5IGNoZWNrZWQgaW50IGRlYnVnIGNvZGUKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBkZWZpbmUgT0lEcyBiYXNlZCBvbiBTTk1QX1RMU19UTV9CQVNFCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTcgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZTsgYWRkCiAgIHNubXBfc3RvcmVfbmVlZGVkIG9uIGNvbW1pdAoKMjAxMC0wNi0zMCAxOTo1NiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBuZXcgZmluZ2VycHJpbnQgcGFyc2UvYnVpbGQgZnVuY3Rpb25zOyByZW1vdmUgYmFkIGxlbmd0aAogICBjaGVjazsgYXV0bwogICB0cmFuc2l0aW9uIGJldHdlZW4gbm90UmVhZHkgYW5kIG5vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NSAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIHJlbW92ZSBwcmUtcmZjIG1pYjsgc2VlIFNOTVAtVExTLVRNLU1JQi50eHQgaW5zdGVhZAoKMjAxMC0wNi0zMCAxOTo1NCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGNvbnNvbGlkYXRlIG11bHRpcGxlIGZpbGVzCgoyMDEwLTA2LTMwIDE5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBoYXNoIHR5cGUgcGFyc2Ugcm91dGluZSBwdWJsaWM7IGFkZCByb3V0aW5lcyB0byBidWlsZC9wYXJzZQogICBTbm1wVExTRmluZ2VycHJpbnQKCjIwMTAtMDYtMzAgMTk6NTEgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRscy5jLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIE5FV1M6IHNubXB0bHM6IG5ldyBhcHAgZm9yIG1hbmFnaW5nIChEKVRMUyBjb25maWcgdmlhCiAgIFNOTVAtVExTLVRNLU1JQiB0YWJsZXMKCjIwMTAtMDYtMzAgMTk6NTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jOgoKICAgY2FsbCBuZXcgc25tcF9zdG9yZV9uZWVkZWQoKSBmdW5jdGlvbiBhZnRlciBhIGNvbW1pdCBpbiB0YWJsZXMKICAgdGhhdAogICBoYXZlIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMzAgMTk6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCBzaW1wbGUgc3RhdGUgbWFjaGluZQogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHJvdyBjcmVhdGlvbiBBUEkgd2hpY2ggdXNlcyBhCiAgIHN0YXRlIG1hY2hpbmUKICAgdG8gdHJ5IHJlYWxseSBoYXJkIHRvIGNyZWF0ZSBhIHJvdyBmcm9tIGEgZ2l2ZW4gdmFyYmluZCBsaXN0CgoyMDEwLTA2LTMwIDE5OjQ4ICByc3RvcnkKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IHNubXBkOiBuZXcgQVBJIGZvciBpbmRpY2F0aW5nIHRoYXQgcGVyc2lzdGVudCBzdG9yZSBuZWVkcwogICB0byBiZSBzYXZlZCBhZnRlciB0aGUgY3VycmVudCByZXF1ZXN0IGZpbmlzaGVzIHByb2Nlc3NpbmcKCjIwMTAtMDYtMzAgMTk6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGFkZCBzb21lIG5ldyB3cmFwcGVyIG1hY3JvcwoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQ05TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NhblNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTVEdGxzU2FuU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE2VGxzU2FuU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE4VGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIGFkZGVkIGNoZWNrcyBmb3IgY2hlY2tpbmcgZGlyZWN0IHBhc3Npbmcgb2YgbG9jYWxob3N0IHRvIHRoZQogICBleHBlY3RlZCBuYW1lCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlcjoKCiAgIGNoZWNrIGZvciB3aWxkY2FyZCBzdXBwb3J0CgoyMDEwLTA2LTMwIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN1cHBvcnQgU0FOIGFuZCBDTiB3aWxkY2FyZCBtYXRjaGluZyBwZXIgc3BlYwoKMjAxMC0wNi0zMCAxNTowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNOYW1lLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NhbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc25hbWV0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMUR0bHNVc2VyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJUbHNVc2VyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMUR0bHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEyVGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzRHRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0VGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMUR0bHNUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJUbHNUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMUR0bHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMyVGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxRHRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQyVGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MUR0bHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUyVGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwVGxzSXB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwVGxzUGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFEdGxzUGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMWR0bHNwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxRHRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAyVGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJ0bHN0c21wcmVmaXhfc2ltcGxlOgoKICAgbW92ZWQgdGVzdCBmaWxlcyBhcm91bmQgZm9yIGJldHRlciBuYW1pbmcKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBkdGxzIHRyYW5zcG9ydCBhZGRyZXNzIHRvIHRoZSBleHBlY3RlZCBob3N0bmFtZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IHRoZSBleHBlY3RlZCBob3N0bmFtZSBmcm9tIHRoZSB0cmFuc3BvcnQgc3RyaW5nIGlmIHBvc3NpYmxlCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYSBiaXQgbW9yZSBoZWxwIG91dHB1dCBieSBkZWZhdWx0CgoyMDEwLTA2LTI5IDIyOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5MTE2OiBtYWtlIHN1cmUgd2UgaW5jbHVkZSBhZ2VudCBjb25maWcKCjIwMTAtMDYtMjkgMjI6MTggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBBZGQgbWlzc2luZyBjb25maWdfcmVxdWlyZXMKCjIwMTAtMDYtMjkgMTc6MzMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgcmV3b3JrIHRoZSBzbm1wY21kIG1hbnVhbCBwYWdlIHRvIHNlcGFyYXRlIG91dCB0aGUgZmxhZ3MgaW50bwogICBzZWN0aW9ucyBhcHByb3ByaWF0ZSBmb3IgdGhlaXIgdXNhZ2UgdHlwZQoKMjAxMC0wNi0yOSAxNjo1MSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcG9kIGRvY3MsIHNvbWUgZGVmYXVsdCB2YWwgZml4ZXMsIGluZm8gb3V0cHV0IG5vcm1hbGl6ZWQKCjIwMTAtMDYtMjkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGFkZGVkIHNzaC5oIGluY2x1ZGUKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcmVvcmdhbml6ZSB0aGUgbWFudWFsIHBhZ2UgYSBiaXQgZm9yIFNOTVB2MyBhbmQgVExTCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGRlZmF1bHQgdGxzIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIHRyYW5zcG9ydHMgYWZ0ZXIgYW4gb3BlbiBmYWlscwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZpbmcgbG9nZ2luZyBhcm91bmQgc28gdGhhdCBvcGVuc3NsIGVycm9ycyBhcmUgcHJpbnRlZCBvbgogICBmYWlsdXJlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4OgoKICAgZml4IHNvbWUgbm9uLWludGVyYWN0aXZlIGludm9jYXRpb24gaXNzdWVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgc29tZSBjb21tb24gY29kZSBpbnRvIGEgY29tbW9uIGZ1bmN0aW9uCgoyMDEwLTA2LTI4IDE5OjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlOgoKICAgY2lwaGVyIHN1aXRlIHNlbGVjdGlvbiBhbmQgdGVzdHMgZm9yIGl0CgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiBweXRob24vTElDRU5TRToKCiAgIGxpY2Vuc2UgdXBkYXRlcwoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogIHB5dGhvbi9SRUFETUUsIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weSwgICAKICAgICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIFNOTVB2MyBvdmVyIFRMUyBzdXBwb3J0CgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgYmV0dGVyIG91dHB1dCBzaG93aW5nIHRlc3QgdHlwZXMKCjIwMTAtMDYtMjggMDA6NTQgIHRhbmRlcnMKCiAgICogIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgIAogICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBtYW46IGNsZWFuIHVwIG1hbnVhbCBwYWdlcwogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNTZfbWFucGFnZSkKCjIwMTAtMDYtMjcgMjM6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IERvIG5vdCBjYWxsIHZhY21fc3RhbmRhcmRfdmlld3MoKSBvcgogICBpbml0X3ZhY21fY29uZmlnX3Rva2VucygpIGlmIHRoZSBjb3JyZXNwb25kaW5nIG1vZHVsZSB3YXMgbm90CiAgIGNvbXBpbGVkCiAgIChmcm9tIERlYmlhbiBwYXRjaCA2MV92YWNtX21pc3NpbmdfZGVwZW5kZW5jeV9jaGVjaykKCjIwMTAtMDYtMjcgMDM6MjMgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBhcHAgdGFnIGNvbXBsZXRpb25zCgoyMDEwLTA2LTI3IDAwOjU2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGhhbmRsZSBjb25maWcgZmlsZSBzZXR0aW5nIGludGVyYWN0aXZlLCB0cnVlL2ZhbHNlIHZhbHVlcyBoYW5kbGVkCiAgIGluIGNvbmZpZwoKMjAxMC0wNi0yNiAyMDo1OCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHNvbWUgYnVncyB3LyBzcGFjZXMgaW4gbmFtZXMgYW5kIGFwcCB0YWcgaGVscAoKMjAxMC0wNi0yNiAxOTozOCAgbWFyegoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHRlc3RzIHRvIHVzZSBub24taW50ZXJhY3RpdmUgLUkKCjIwMTAtMDYtMjYgMTc6NDYgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYmV0dGVyIGludGVyYWN0aXZlLCA/PWhlbHAsIDx0YWI+IGNvbXBsLCBtb3JlIGhlbHAsIFNBTiBsb29wCiAgIGZvcm1hdCBhbmQgdGVybWluYXRpb24gZml4LCB0b2xlcmF0ZSBzcGFjZXMgaW4gZmllbGRzIGFuZAogICBmaWxlbmFtZXMsIG1vcmUgY29tcGxldGUgZXJyb3Igb3V0cHV0LCBlbWJyeW9uaWMgaW1wb3J0IGZyb20gdXJsCgoyMDEwLTA2LTI2IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcy4KCjIwMTAtMDYtMjYgMTM6NDcgIGJ2YXNzY2hlCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGaXhlZCB0aGUgZXJyb3JzIGluIGFjY29uZmlnLmggYW5kIHJlZ2VuZXJhdGVkCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wNi0yNiAxMzo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgU01VWCBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDEwLTA2LTI2IDAwOjQ1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGU6CgogICBmaXhlcyBhbmQgdGVzdGluZyBmb3IgY2hlY2tpbmcgU0FOIEROUyBuYW1lcyBmcm9tIHRoZSBzZXJ2ZXIKCjIwMTAtMDYtMjYgMDA6NDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc25hbWV0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIGdlbmVyaWNpemUgdGhlIHNlcnZlciBuYW1lIHRlc3RzCgoyMDEwLTA2LTI1IDIzOjAxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguaCwgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJ0bHN0c21wcmVmaXhfc2ltcGxlOgoKICAgdXNlcHJlZml4IHNjYWxhciB0ZXN0aW5nIGFuZCBzdXBwb3J0CgoyMDEwLTA2LTI1IDIzOjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBsaW5lcwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHB1dCBpbiBvbmx5IG1pbmltaWFsIGRlYnVnIGZsYWdzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGU6CgogICBjb2RlIGFuZCB0ZXN0IGNhc2VzIGZvciBDUkwgaGFuZGxpbmcKCjIwMTAtMDYtMjUgMTU6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGU6CgogICBBZGRlZCBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiBlYWNoIGxpbmUgcHJpbnRlZCBieSB0aGUgUGVybAogICBpbnRlcnByZXRlci4KCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVkdWNlIG51bWJlciBvZiByZXNlbmQgYXR0ZW1wdHMgYW5kIHRpbWVvdXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgd2FybmluZyBmaXhlcwoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlbW92ZSBsb2dpYyB0eXBvIGZyb20gcHJldmlvdXMgY29tbWl0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlOgoKICAgSVB2NiBmaXhlcyBmb3IgVENQCgoyMDEwLTA2LTI1IDEzOjAxICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0aW5nIDE5MDk1LCBpdCBicmVha3MgdGVzdHMKCjIwMTAtMDYtMjUgMDk6NDAgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhbnNsYXRlOiBmaXhlZCBwcmludGluZyBvZiByYW5nZXMgd2l0aCBVTlNJR05FRAogICB0eXBlLgoKMjAxMC0wNi0yNCAyMzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggZnVuY3Rpb24gbmFtZXMgZm9yIHN0YXQgaW5jcmVhc2VzCgoyMDEwLTA2LTI0IDIzOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvcnMgaW4gY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuNCBmb3IgZHRscwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS4zLjIKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xpZW50IHNpZGUgY29ubmVjdCBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3VudGVyIGFuZCBjb21tZW50IGltcHJvdmVtZW50cwoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICB1cGRhdGUgY291bnRlciBjYWxscyBhbmQgY29tbWVudCB0ZXh0CgoyMDEwLTA2LTI0IDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgTW92ZWQgTERfTElCUkFSWV9QQVRIIHNldHVwIGZyb20gaW5kaXZpZHVhbCB0ZXN0cyBzY3JpcHRzIHRvCiAgIHNpbXBsZV9URVNUQ09ORi5zaC4KCjIwMTAtMDYtMjQgMTk6MDIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIEZpeGVkIGEgY29tbWVudC4KCjIwMTAtMDYtMjQgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgU2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTkwODQuCgoyMDEwLTA2LTI0IDE3OjQ3ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDYtMjQgMTI6MzAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICAidGVzdCAtZSIgaXNuJ3QgcG9ydGFibGU7IHVzZSAidGVzdCAteCIgaW5zdGVhZCBmb3IgdGhlIFBlcmwKICAgc3lzdGVtKCkKICAgY2hlY2sKCjIwMTAtMDYtMjMgMTE6MTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHZhbHVlIG9mIElQLU1JQjo6aXB2NkludGVyZmFjZUZvcndhcmRpbmcgb24KICAgTGludXgKICAgCiAgIFRoZSB2YWx1ZSB3YXMgMCAobm90IGZvcndhcmRpbmcpIG9yIDEgKGZvcndhcmRpbmcpLCBzaG91bGQgYmUgMgogICBhbmQgMQogICBpbnN0ZWFkIC0gbmV0c25tcF9pbnRlcmZhY2VfZW50cnkuZm9yd2FyZGluZ192NiBpcyBib29sZWFuLCBub3QKICAgVHJ1dGhWYWx1ZS4KCjIwMTAtMDYtMjIgMjM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIHN1cHBvcnQgZm9yIGNlcnRTZWNOYW1lIG1hcHBpbmcgZnJvbSBhIGxvY2FsIGNlcnQgZmlsZSBuYW1lIGFuZCBhCiAgIHRlc3QgZm9yIGl0CgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW5hdGlvbiB1cGRhdGUgdG8gY2xlYW4gdXAgYW5kIGluY2x1ZGUgVExTIHBhcmFtZXRlcnMKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgZm9yIHBhc3NpbmcgaWRlbnRpdGllcyBhbmQgZnVsbCB3b3JraW5nIHZlcnNpb24KCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMWR0bHNwZXJsLnQ6CgogICBwZXJsIFRMUy9EVExTIHRlc3RzCgoyMDEwLTA2LTIyIDIyOjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXJzdCBwdGFjaCBvbiBTTk1QL1RMUyBjcmVhdGluZyBhIG5ldyBzZXNzaW9uIGZ1bmN0aW9uCgoyMDEwLTA2LTIyIDIyOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpcnN0IHdvcmtpbmcgc3VwcG9ydCBmb3IgYSBkZWxheWVkIGNsb3NlKCkgdG8gYXR0ZW1wdCB0byBzZW5kaW5nCiAgIG91dHN0YW5kaW5nIHBhY2tldHMgaW4gdGhlIHF1ZXVlOyB0aGlzIGlzIHJlcXVpcmVkIGZvciBzbm1wdHJhcAogICB0byB3b3JrIGF0IGFsbCB3aGVuIHNlbmRpbmcgdHJhcHMgKG5vdCBpbmZvcm1zKSBvdmVyIERUTFMKCjIwMTAtMDYtMjIgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3RzIFQwNTl0cmFwaGFuZGxlX3NpbXBsZSBhbmQKICAgVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSBkbyBub3cgcGFzcy4KCjIwMTAtMDYtMjIgMTk6MDEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFRoZSB3aWR0aCBhcmd1bWVudCBmb3IgJS4qZCBtdXN0IGhhdmUgdHlwZSBpbnQsIG5vdCBzaXplX3QuIFRoaXMKICAgYnVnIHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxNC4KCjIwMTAtMDYtMjIgMTg6NTcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBORVdTOiBNaW5HVzogdGhlIHNubXBkLmNvbmYga2V5d29yZCBleHRlbmQgZG9lcyBub3cgd29yay4KICAgTkVXUzogTWluR1c6IHRoZSBzbm1wdHJhcGQuY29uZiBrZXl3b3JkIHRyYXBoYW5kbGUgZG9lcyBub3cgd29yay4KICAgQ0hBTkdFUzogTWluR1c6IHJ1bl9zaGVsbF9jb21tYW5kKCkgd2l0aCBlaXRoZXIgaW5wdXQgb3Igb3V0cHV0CiAgIChidXQgbm90IGJvdGgpIGRvZXMgbm93IHdvcmsuCiAgIFRoaXMgZGlkIG5vdCB3b3JrIHVudGlsIG5vdyBiZWNhdXNlIG9uIE1pbkdXIG1rc3RlbXAoKSBnZW5lcmF0ZXMKICAgYSBNaW5HVy1zdHlsZSBwYXRoICgvdG1wLy4uLikgd2hpbGUgc3lzdGVtKCkgaW52b2tlcyBjbWQuZXhlIGFuZAogICBoZW5jZSBleHBlY3RzIGEgV2luZG93cy1zdHlsZSBwYXRoIChDOlwuLi4pLgoKMjAxMC0wNi0yMiAxNzozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIEFsc28gcmVwb3J0IHRoZSBwb3J0IHNwZWNpZmljYXRpb24gaWYgWyAkU05NUF9WRVJCT1NFIC1ndCAwIF0uCgoyMDEwLTA2LTIyIDE3OjM4ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgUmVwbGFjZWQgYW4gZXhwbGljaXQgdGVzdCBmb3IgTWluR1cgYnkgYSB0ZXN0IG9uIEhBVkVfU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNiAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIFNJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBSZXBvcnQgd2hpY2ggdGVzdHMgZmFpbGVkLCBpZiBhbnkuCgoyMDEwLTA2LTIyIDA4OjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeGVkIGFuIGVycm9yIGluIGEgY29tbWVudCBibG9jay4KCjIwMTAtMDYtMjEgMTk6MjYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6CgogICBSZWFycmFuZ2VkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHRlc3Qgc3VjaCB0aGF0IGl0IGlzIG5vCiAgIGxvbmdlciBuZWNlc3NhcnkKICAgdG8gaW52b2tlIHNpbXBsZV9ldmFsX3Rvb2xzLnNoIHdoZW4gdGhpcyBzY3JpcHQgaXMgaW52b2tlZCBhcyBhCiAgIHRyYXAgaGFuZGxlcgogICBieSBzbm1wdHJhcGQuCgoyMDEwLTA2LTIxIDA4OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRW5zdXJlIHRoYXQgZmRzZXQgc3RydWN0dXJlIGlzIHJlc2l6ZWQgc3VmZmljaWVudGx5CiAgIHRvIGFjY29tb2RhdGUgdGhlIHNwZWNpZmllZCBzb2NrZXQgSUQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgU2hpeWFsZWkuCgoyMDEwLTA2LTIwIDE5OjMyICBkdHMxMgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvcGtjcy5jLCAgIAogICAgICBzbm1wbGliL3NucHJpbnRmLmM6CgogICBBdm9pZCBkdXBsaWNhdGUgKHVudXNlZCkgc3ltYm9scy4KCjIwMTAtMDYtMjAgMTk6MzEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6CgogICBDb21tZW50ZWQgb3V0IGRlYnVnIGNvZGUuCgoyMDEwLTA2LTIwIDE5OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBSZXN0b3JlZCBzdW1tYXJ5IHN1Y2Nlc3MvZmFpbHVyZSBjb3VudCByZXBvcnRpbmcuCiAgIEFsc28sIG1vdmVkIGtpbGwuZXhlIHRlc3QgYmFjayB0byBSVU5URVNUUy4KCjIwMTAtMDYtMjAgMTk6MjkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhZGQgdGhlIHRlc3QgbmFtZSB0byB0aGUgc3RhcnQgb2YgdGhlIGZpbGUKICAgImludm9rZWQiLgoKMjAxMC0wNi0yMCAxOToyNyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBza2lwIHRoZSB0ZXN0cyB0aGF0IHJlcXVpcmUgU0lHSFVQIHNpbmNlCiAgIE1pbkdXIGRvZXMgbm90IHN1cHBvcnQgU0lHSFVQLgoKMjAxMC0wNi0yMCAxNToxOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGNvbmZpZ3VyZSB0ZXN0IHRoYXQgZGV0ZWN0cyB3aGV0aGVyIG9yIG5vdCBQZXJsJ3MKICAgc3lzdGVtKCkgZnVuY3Rpb24KICAgaW52b2tlcyBhIFBPU0lYIHNoZWxsLiAibWFrZSB0ZXN0IiBkb2VzIG5vdyBmYWxsIGJhY2sgdG8gUlVOVEVTVFMKICAgaWYgbm90LgoKMjAxMC0wNi0yMCAxNToxNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBNaW5HVyAtLSBhZGRlZCAjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4gd2hlcmUKICAgbmVjZXNzYXJ5LgogICBOb3RlOiBhbHRob3VnaCA8bmV0LXNubXAvdHlwZXMuaD4gaXMgaW5jbHVkZWQgaW5kaXJlY3RseSBmcm9tIHRoZQogICAqICAgICAqdHJhbnNwb3J0LmggICAgaGVhZGVyIGZpbGVzLCB0aGVzZSAjaW5jbHVkZSBzdGF0ZW1lbnRzIGFyZQogICAgICBuZWNlc3NhcnkgYmVjYXVzZSBvZiAgICBhIHBlc2t5ICAgIGNpcmN1bGFyIGRlcGVuZGVuY2UgYmV0d2VlbgogICAgICA8bmV0LXNubXAvdHlwZXMuaD4gYW5kICAgIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+LiAKICAgICAgMjAxMC0wNi0yMCAxNToxMiAgYnZhc3NjaGUKCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIENIQU5HRVM6IE1pbkdXOiByZWZ1c2UgdG8gcnVuIHRoZSByZWdyZXNzaW9uIHRlc3RzIGlmIGtpbGwuZXhlCiAgIGNhbm5vdCBiZSBmb3VuZC4KCjIwMTAtMDYtMjAgMTU6MTEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBTaG9ydGVuZWQgdGhlIHNyY2RpciBwYXRoIGJ5IG1ha2luZyBzdXJlIHRoYXQgaXQgZG9lcyBub3QgY29udGFpbgogICAvLi4KCjIwMTAtMDYtMTkgMTg6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgcnVubmluZyBSVU5GVUxMVEVTVFMgd2l0aCBUZXN0OjpIYXJuZXNzIGluCiAgIGFub3RoZXIgZGlyZWN0b3J5IHRoYW4gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGNvbXBsZXRlIHJld3JpdGUgb2YgcGFyYW1zIHRvIHVzZSB0YWJsZV9kYXRhc2V0IGluc3RlYWQgb2YKICAgY3JlYXRlLWRhdGFzZXQKCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXNlIHRleHQgZm9yIGhhc2ggdHlwZSBpbiBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IG1pc3Npbmcgc3BlY2lmaWVyIGluIGRlYnVnCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIGRlZmluZSBpbnN0ZWFkIG9mIGNvbnN0YW50OyBmaXggY2hlY2sgZm9yIHJvd3MgdG8gc2F2ZQoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCByZW1vdmUvZmluZCBmdW5jdGlvbiBmb3IgbWFwcy9hZGRycy9wYXJhbXM7IHJlbmFtZSBwYXJhbXMKICAgdGFnLT5uYW1lOwogICBkZXN0cm95IC0+IGZyZWU7IGdyb3VwIHJlY2VudCB0cnVzdCBmdW5jdGlvbnMgdG9nZXRoZXIgaW4gc3JjOwogICBkb24ndCBzdG9yZQogICBwYXJhbXMgZnAgYXMgYmluYXJ5OyBoYW5kIHRleHQgYXJncyBmb3IgaGFzaCB0eXBlIChlLmcgLS1zaGExKQoKMjAxMC0wNi0xOCAxNTozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIENIQU5HRVM6IEN5Z3dpbjogY29ycmVjdGVkIGVycm9yIGhhbmRsaW5nIGluIG1pYklJL2F0LgoKMjAxMC0wNi0xOCAwNzoyMyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA2LTE4IDAxOjQyICBtYWdmcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBEbyBub3QgZGVmaW5lIHJldCB0d2ljZSB3aGVuIE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTyBpcyBzZXQuCgoyMDEwLTA2LTE4IDAxOjM5ICBtYWdmcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgQ29ycmVjdGVkIHR5cG8uCgoyMDEwLTA2LTE4IDAwOjMxICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgYmV0dGVyIE5FV1MgYW5kIENIQU5HRVMgZmlsZXMKCjIwMTAtMDYtMTcgMjA6MzkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMTcgMTg6NTkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcmUtZW5hYmxlIHNvbWUgY29tbWFuZHMKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIGZvcmdvdCBtaXNzaW5nIHF1b3RlcyBpbiBTRVQgb3V0cHV0CgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGxzIHRlc3RpbmcgY2xlYW51cAoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIGFkZHJlc3MgcHJpbnRpbmc7IG1vcmUgdG8gY29tZQoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vc3RseSBwcm9wZXJseSBzZXQgcmVtb3RlL2xvY2FsIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZToKCiAgIHRlc3RzIGZvciBhZ2VudHMgc2VuZGluZyBvZiB0cmFwcyBvdmVyIChEKVRMUwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBtb3ZlIGV4cG9ydCBzdGF0ZW1lbnRzIHRvIHRoZSBzdXBwb3J0IGZpbGUgZm9yIHNpbXBsaWNpdHkKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0bHMgYm9vdHN0cmFwcGluZyB0byBwb3N0X3ByZW1pYiBzbyBvdGhlciBjb25maWcgdG9rZW5zIGNhbgogICB1c2UgdGhlIGNlcnQgbG9hZGluZyByZXN1bHRzCgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgYWRkZWQgc25tcF9lbnVtIHRlc3RzIHB1bGxlZCBmcm9tIHRoZSBtYWluKCkgdGVzdCBhdCB0aGUgYm90dG9tCiAgIG9mIHRoZSBvcmlnaW5hbCAuYyBmaWxlCgoyMDEwLTA2LTE3IDE2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEVsaW1pbmF0ZSAiZGlmZmVyIGluIHNpZ25lZG5lc3MiIHdhcm5pbmcKCjIwMTAtMDYtMTcgMDA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgcmV2ZXJ0IFVEUCBjaGFuZ2VzIGZyb20gcjE4OTg0IHNpbmNlIGl0IGJyb2tlIHRoZSBVRFAgdHJhbnNwb3J0OwogICB0aGUgc3RydWN0IHByb2JhYmx5IG5lZWRzIHRvIG1hdGNoIGFub3RoZXIgc3RydWN0IHNvbWV3aGVyZSBlbHNlCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgbmV3IEtFWVdPUkQgb3V0cHV0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBjb25maWdfYW5kX29wZW4gZm9yIG9wZW5pbmcgdGhlIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBleHRyYSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgZXhwbGljaXRseSBkZWNsYXJlIHRydXN0IGNlcnRpZmljYXRlcyB0byB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjbGVhbnVwIHNvbWUgbG9zdCBtZW1vcnkgb24gY2xvc2luZwoKMjAxMC0wNi0xNiAyMTo1NiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvcwoKMjAxMC0wNi0xNiAyMTozNCAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGFnZW50IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAyMDoxNiAgZHRzMTIKCiAgICogIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgbGlicmFyeSBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTk6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG9sZGVyIG5vLWxvbmdlci1uZWVkZWQtZHVwbGljYXRlLWNvbmZpZyBlbnRyaWVzCgoyMDEwLTA2LTE2IDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeCBwcm9jZXNzaW5nIG9mIHZpZXcgbWFza3MgKG1pc3BsYWNlZCBwYXJlbnRoZXNlcykKCjIwMTAtMDYtMTYgMTg6NDUgIGR0czEyCgogICAqICBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgZnJvbSBhcHAgY29kZQogICBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzOgoKICAgY2hlY2sgZm9yIGluZm9ybXMgc2VudCBvdmVyIHRscyB0cmFuc3BvcnRzCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgb3RoZXIgdmFsdXNlIGZyb20gcGFyZW50IHRsc2Jhc2UgZGF0YQoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgYWRkZWQgYmFzaWMgdHJhcCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgdGVzdHMKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIHRlbXAgZmlsZSB0b3VjaGVzCgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBuZXcgZnVuY3Rpb24gYW5kIHRyYW5zcG9ydCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSBmX29wZW4KICAgY2FsbCBoYXMgYmVlbiBjYWxsZWQgeWV0CgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVudXNlZCB2YXIgd2FybmluZyBjbGVhbnVwCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZGVkIHRydXN0Q2VydCBjb25maWd1cmF0aW9uIHRva2VuCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBtaW5vciB0d2Vha3MgZm9yIHRlc3RpbmcgY2xhcml0eQoKMjAxMC0wNi0xNiAxNzoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZToKCiAgIG1vdmVkIGNvbXBsZXggKEQpVExTIHRvIGEgc2VwYXJhdGUgc2VjdGlvbiBhbmQgbWFkZSB0aGUgdHJhbnNwb3J0CiAgIHRlc3RzIG9ubHkgdGVzdCBtaW5pbWFsIHN1cHBvcnQKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgbWVjaGFuaXNtcyBmb3Igc3BlY2lmeWluZyBhbmQgZXhwZWN0aW5nIHRoZSBob3N0bmFtZSBvZiB0aGUKICAgZmFyIHNpZGUKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0ZXN0cyBmb3IgdmVyaWZ5aW5nIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGVjayBmYWlsdXJlcwoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RscywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgdGVzdGluZyBmb3IgY2hlY2tpbmcgY2xpZW50IHNpZGUgdmVyaWZpY2F0aW9uIG9mIHNlcnZlcgogICBjZXJ0aWZpY2F0ZXMKCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hlY2sgdG8gbWFrZSBzdWVyIHNzbCBwb2ludGVyIGhhcyBiZWVuIGNyZWF0ZWQgdmlhIGZfb3BlbiBjYWxsCgoyMDEwLTA2LTE2IDE1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuaCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlY2xhcmUgJ3NodXRkb3duX3BlcmwnIHByb3Blcmx5LgoKMjAxMC0wNi0xNiAxNDozNyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgdHlwZSBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgogICB3YXJuaW5ncyBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE0OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBFbGltaW5hdGUgInVudXNlZCB2YXJpYWJsZSIgd2FybmluZwoKMjAxMC0wNi0xNiAxNDoyMiAgZHRzMTIKCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSB2YXJpb3VzICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNiAxMzoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdmFjbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBFbGltaW5hdGUgKG1vc3QpIHNpZ25lZC12cy11bnNpZ25lZCB3YXJuaW5ncyBmcm9tIG51bWVyaWMgc2NhbmYKICAgcHJvY2Vzc2luZyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNiAwMzoyOCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHRoZSBncmVhdCB1bi1uYW1lZCBjb250YWluZXIgaHVudAoKMjAxMC0wNi0xNiAwMzoyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgc2hhcmUgY2FjaGUgYmV0d2VlbiB0YWJsZSBhbmQgY291bnQgc2NhbGFyOyB3aGVuIHJlYWRpbmcgY29uZmlnLAogICBhZGQgdG8KICAgbGlicmFyeSBjb250YWluZXJzIGZvciBhY3RpdmUgcm93cywgdGFibGUgY29udGFpbmVycyBmb3IgaW5hY3RpdmUKICAgcm93czsKICAgdXNlciBjZXJ0X3V0aWwgYXBpcyBpbnN0ZWFkIG9mIGRpcmVjdCBjb250YWluZXIgbWFuaXB1bGF0aW9uOwogICB3aGVuCiAgIHNhdmluZyBpbmFjdGl2ZSBtYXAgcm93cywgc2tpcCBhbGwgYnV0IG5vblZvbGF0aWxlCgoyMDEwLTA2LTE2IDAzOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBkZWJ1ZyB0b2tlbiB0eXBvCgoyMDEwLTA2LTE2IDAzOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGFwaSBmb3IgYWRkaW5nIGVudHJpZXMgdG8gdGx0c20gYWRkciwgcGFyYW1zIGFuZCBjZXJ0IG1hcAogICBjb250YWluZXJzOwogICByZWdpc3RlciBzZSBzbGlzdCBwYWlyIGVhcmxpZXIgc28gdGhleSBhcmUgYXZhaWxhYmxlIGR1cmluZwogICBjb25maWcgcGFyc2luZzsKICAgbWFrZSBzdXJlIGNvbmZpZyBzdHJpbmdzIGFyZSBudWxsIHRlcm1pbmF0ZWQKCjIwMTAtMDYtMTUgMjE6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzOgogICAnc3RydWN0IG5sbXNnaGRyIGRlZmluZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0JyBhbmQKICAgJ2Z1bmN0aW9uIF9sb2FkX3Y2IGRlY2xhcmVkIGJ1dCBuZXZlciBkZWZpbmVkJwoKMjAxMC0wNi0xNSAyMTozMCAgZHRzMTIKCiAgICogIGFnZW50L2tlcm5lbC5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvcGtjcy5jLCBzbm1wbGliL3NucHJpbnRmLmM6CgogICBFbGltaW5hdGUgImVtcHR5IHRyYW5zbGF0aW9uIHVuaXQiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE1IDA3OjA3ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDNjb3B5X253b3JkX2NsaWIuYzoKCiAgIEFkZCB0ZXN0IG9mIGNvcHlfbndvcmQKCjIwMTAtMDYtMTQgMjE6MzIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBFbGltaW5hdGUgIm92ZXJmbG93IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24iIHdhcm5pbmdzCiAgIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE0IDE1OjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRWxpbWluYXRlICJzdHJpbmcgbGVuZ3RoIGdyZWF0ZXIgdGhhbiA1MDkiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDE1OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSAiaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29tcHV0YWJsZSIgd2FybmluZ3MKICAgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMDU6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgY291bnQgaGFuZGxlcnMgdG8gY291bnQgbm9uLWFjdGl2ZSByb3dzIHRvbwoKMjAxMC0wNi0xNCAwNToxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIG9ubHkgdHdlYWsgc3RvcmFnZVR5cGUgZm9yIGFjdGl2ZSByb3dzOyByZXNldCBlbnRyeSBmbGFncyB3aGVuCiAgIHJlbW92aW5nIGZyb20KICAgY2VydF91dGlsIG1hcHM7IHdoZW4gY3JlYXRlaW5nIHJvd3MgZnJvbSBjZXJ0X3V0aWwgbWFwcywgc2V0CiAgIHN0cmFnZXRUeXBlIHRvCiAgIHZvbGF0aWxlIGlmIG5vblZvbGF0aWxlIGZsYWcgbm90IHNldDsgZG9udCBmcmVlIGNhY2hlIGluCiAgIGNhY2hlX2xvYWQgb24gZXJyCgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIG1vdmUgdGxzdG1BZGRyIHRhYmxlIGNvbmZpZyBwYXJzaW5nIHRvIGNlcnRfdXRpbDsgYWRkIGNhY2hlIHRvCiAgIG1lcmdlIGNlcnRfdXRpbAogICBhZGRycyAoYWN0aXZlKSBhbmQgbm9uLWFjdGl2ZSByb3dzOwoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBub25Wb2xhdGlsZSBmbGFnIHRvIHRsc3RtQWRkciB0YWJsZTsgc2V0IGNvbnRhaW5lciBuYW1lOyBza2lwCiAgICcweCcgaW4gZnAKCjIwMTAtMDYtMTQgMDU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBMT0dfRVJSIHRvIExPR19JTkZPIGZvciBub24tZXJyb3IgbG9nIG1zZwoKMjAxMC0wNi0xMyAyMTowMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20KICAgTWZELWJhc2VkIE1JQiBtb2R1bGUgY29kZSwgYW5kIE1mRCB0ZW1wbGF0ZSBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAyMTozMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSAobm9uLU1mRCkKICAgTUlCIG1vZHVsZSBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAxMDoyNiAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gbGlicmFyeSwKICAgYXBwcyBhbmQgYWdlbnQgZnJhbWV3b3JrK2hlbHBlcnMgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTAgMjA6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBsb29rdXAgY2VydCBrZXlzIGZvciB0bHMgZG9tYWluczsgdXNlIFNFQ19NT0RFTCBkZWZpbmUgaW5zdGVhZCBvZgogICBoYXJkY29kZWQKICAgY29uc3RhbnQ7IGFkZCBTRUNfTU9ERUxfVFNNIHRvIGFsbG93ZWQgc2VjIG1vZGVscyBmb3IgbXBNb2RlbAogICBTTk1QX1ZFUlNJT05fMwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRlZmF1bHQgdG8gcmVhZE9ubHkvYWN0aXZlIGZvciBiYWQgY29uZmlnCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGQgZGVidWc7IHN3aXRjaCB0byBTRUNfTU9ERUxfVFNNIGFuZCB3YXJuIGlmIG90aGVyIHNlY21vZGUgc2V0LAogICBpbnN0ZWFkCiAgIG9mIHNpbXBseSBsb2dnaW5nIHRoYXQgaXQgd29uJ3Qgd29yawoKMjAxMC0wNi0xMCAxOTo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2hlY2sgcHRycyBiZWZvcmUgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTAgMTk6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhIG1hbmFnZW1lbnQgdG8gY2VydF91dGlsOyBpbXBsZW1lbnQKICAgVEFSR0VUX0FERFIKICAgYW5kIFRBUkdFVF9QQVJBTVMgbG9va3VwIGluIGNlcnQgQVBJCgoyMDEwLTA2LTEwIDE5OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXBkYXRlIHNlYyBtb2RlbCBkZWZpbmUgbWlzc2VkIGluIGVhcmxpZXIgY2hlY2tpbgoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvbmZpZyB0cmFwc2VzcyB0cmFuc3BvcnRzIG9uIGNyZWF0aW9uOyBzaW1wbGlmeSBpZmRlZnMgZm9yCiAgIERJU0FCTEVfU05NUFYxCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBrc20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYXV0byBzd2l0Y2ggdG8gdjMgZm9yIChkKXRscyBzZXNzaW9ucyBpbnN0ZWFkIG9mIGxvZ2dpbmcgdGhhdAogICBvdGhlcnMgd29udAogICB3b3JrOyBkZWZpbmUgVFNNIHNlYyBtb2RlbCB3aXRoIG90aGVyIHNlYyBtb2RlbHM7IGNvbnNpc3RlbnRseQogICB1c2UKICAgU05NUF9TRUNfTU9ERUxfKiBpbiB0aGUgY29kZSwgdXNpbmcgI2RlZmluZXMgZm9yIGJhY2t3YXJkcwogICBjb21wYXRpYmlsaXR5CiAgIHcvKl9TRUNVUklUWV9NT0RFTAoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnRUb1RTTjogbW92ZSBtaWIgcmVsYXRlZCBwZXJzaXN0ZW5jZSBiYWNrIGludG8gbWliIG1vZHVsZTsKICAgY2VydF91dGlsOiBhZGQgdGxzdG1QYXJhbXMgcGVyc2lzdGVuY2U7IHVzZSBzbGlzdCBmb3IgY2VydCBtYXAKICAgdHlwZSBuYW1lCiAgIG1hcHBpbmc7CgoyMDEwLTA2LTEwIDE5OjQ1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nIChjb25zdCkKCjIwMTAtMDYtMTAgMDQ6NTggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIEFkZCBtaXNzaW5nIGluZGVudGF0aW9uIG9mIGEgZG8td2hpbGUgbG9vcCB0byBtYWtlIHRoZSBjb2RlCiAgIHJlYWRhYmxlLgoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGNvbW1lbnQgb3V0IGtleVVzYWdlIHNvIHByb3BlciBzZWxmLXNpZ25lZCBjZXJ0cyBhcmUgZ2VuZXJhdGVkCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNvbGlkaWZ5IGNlcnRpZmljYXRlIGFjY2VwdGFuY2UgZm9yIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcnJheSB0eXBvCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG9nIG9wZW5zc2wgZXJyb3JzIG9uIGFjY2VwdCBmYWlsdXJlCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZWdpc3RlciBkZWZhdWx0IHBvcnRzIGZvciB0bHMvZHRscwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvIHByb3BlciBTVE9SRSBsb2FkaW5nIG9mIHRydXN0ZWQgY2VydGlmaWNhdGVzIHJhdGhlciB0aGFuIGZpbGUKICAgYmFzZWQgbG9hZGluZwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkZWQgdHdvIG5ldyBBUElzOiBuZXRzbm1wX2NlcnRfdHJ1c3QgYW5kIG5ldHNubXBfY2VydF90cnVzdF9jYQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICd0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICdkdGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOCAyMTowNSAgbWFnZnIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGFnZW50X3JlYWRfY29uZmlnLmggaW4gNS42IGFzIHdlbGwuIEl0IGRpc2FwcGVhcmVkIGluCiAgIHIxODg0My4KCjIwMTAtMDYtMDggMDk6MjUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6CgogICBSZW1vdmUgKG9yIGFjdGl2YXRlKSB1bnVzZWQgdmFyaWFibGVzLgogICBGaXggbWlzbmFtZWQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDEwLTA2LTA4IDA3OjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEFQSSBjaGFuZ2VzIGZvciBwcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sKICAgbW9kdWxlLgogICAoT21pdHRlZCBmcm9tIHJldmlzaW9uIDE4OTMyIGNoZWNraW4pCgoyMDEwLTA2LTA4IDA0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgbWFrZWZpbGUgZm9yIG1vdmVkIGhlbHBlciBoZWFkZXJzCgoyMDEwLTA2LTA3IDIwOjE4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBSZXZlcnRpbmcgcmV2LiAxNzYxNiwgdGhlIG5lY2Vzc2FyeSBjaGVjayBpcyBhbHJlYWR5IGluIHJldi4KICAgMTc0MTUuCgoyMDEwLTA2LTA2IDAzOjQ1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEluIGNhc2UgZXhlY19wcmVmaXggaXMgdW5zZXQgdGhlbiBzZXQgaXQgdG8KICAgJyR7cHJlZml4fScgaW4gb3JkZXIgdG8gcGljayB1cCBvdmVycmlkZXMgb2YgJHByZWZpeCBpbiBtYWtlCiAgIGluc3RhbGwuCgoyMDEwLTA2LTA0IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG8gYSBiZXR0ZXIgam9iIG9mIHZlcmlmeWluZyBmaW5nZXJwcmludHMgb2YgcmVtb3RlIHNlcnZlcnMKICAgcHVsbGluZyBmaW5nZXJwcmludHMgZnJvbSBhIG51bWJlciBvZiBwb3NzaWJsZSBwbGFjZXMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBnbyBhaGVhZCBhbmQgbG9nIG91dHB1dCBmaWxlIGZvciBlYXNpZXIgZGVidWdnaW5nIGluIGVycm9ycwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdHlwbwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIGNvbW1lbnQgYWJvdXQgcmFuZG9tIGJlaW5nIGluYWRlcXVhdGU7IHdlJ3JlIGRvaW5nIHRoZQogICBiZXN0IHdlIGNhbiBiYXNlZCBvbiB3aGF0IHdlIGhhdmUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIGFub3RoZXIgdXNlciBmb3IgdGVzdGluZyBzbm1wYXBwIGRlZmF1bHQgY2VydGlmaWNhdGUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcnVuIGEgZGVmYXVsdCB0ZXN0IHdpdGhvdXQgYSBsb2NhbCBrZXkgdG8gZW5zdXJlIHRoZSBzbm1wYXBwIHR5cGUKICAgaXMgcGlja2VkIHVwCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgc3BlY2lhbCBjYXNlIGZvciB0aGUgbG9jYWwgaWRlbnRpdHkgYW5kIHB1bGwgaXQgZnJvbSBhCiAgIGZpbGVuYW1lIG9mIHRoZSBpbml0X3NubXAoKSByZWdpc3RlcmVkIHR5cGUgbmFtZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGRvYyB1cGRhdGUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNXVuaXgudDoKCiAgIHVuaXggc29ja2V0IHRlc3QKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDN1ZHA2LnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNHRjcDYudDoKCiAgIGlwdjYgdGVzdHMKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBtZW50aW9uIHRlc3QgbmFtZSBpcyBJUHY0CgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgY2hlY2sgdGhhdCB0cmFuc3BvcnQgd2FzIGNvbmZpZ3VyZWQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBhZGQgc3VwcG9ydCBmb3IgbmV0LXNubXAtY29uZmlnLmggY2hlY2tzCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9OZXRTTk1QVGVzdFRyYW5zcG9ydC5wbSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgc29tZSBiYXNpYyB0cmFuc3BvcnQgY2hlY2tpbmcgZm9yIHBlcmw6IHVkcCBhbmQgdGNwCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QwMDFiYXNpYy50OgoKICAgYmFzaWMgdGVzdHMgZm9yIHBlcmwKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBpbmZyYXN0cnVjdHVyZSBtb2R1bGUgZm9yIHRlc3RpbmcgcGVybCBzdXBwb3J0CgoyMDEwLTA2LTAzIDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIFBvaW50IExJQntDVVJSRU5ULEFHRSxSRVZJU0lPTn0gZG9jdW1lbnRhdGlvbiB0byB0aGUgY29ycmVjdAogICBmaWxlLgogICBXYXJuIGFib3V0ICdtYWtlZGVwZW5kJyBwaWNraW5nIHVwIHRlc3RpbmcgbW9kdWxlIGNvZGUuCiAgIEVtcGhhc2lzIHVwZGF0ZSBvZiAnZG93bmxvYWQuaHRtbCcgcGFnZQogICBNZW50aW9uIHVwZGF0ZSBvZiBPZmZpY2lhbCBQYXRjaGVzCiAgIFN1cHByZXNzIGJyb2tlbiBjb21tYW5kcwoKMjAxMC0wNi0wMyAxNToxNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgUHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrIG1vZHVsZS4KICAgRW5zdXJlcyBjb25zaXN0ZW50IHJlcG9ydGluZyBiZXR3ZWVuIFVDRCBhbmQgSG9zdFJlcyBGU3lzIHVzYWdlCiAgIGFuZCBleHRlbmRzICdza2lwTkZTSW5Ib3N0UmVzb3VyY2VzJyBjb25maWcgdG8gVUNEIGRpc2sgc3RhdHMuCgoyMDEwLTA2LTAzIDE1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYzoKCiAgIEZpeCBicm9rZW4gc2l6ZSBjYWxjdWxhdGlvbnMuCiAgIFN1cHBvcnQgNjQtYml0IHNpemUvdXNhZ2UgdmFsdWVzLgoKMjAxMC0wNi0wMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgLS13aXRoLWNhIGluc3RlYWQgb2YgLS1jYQoKMjAxMC0wNi0wMiAxNDo1MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgdGhlIG5ldyAtYnJpZWYgb3B0aW9uIGZvciBmaW5nZXJwcmludCBjYXB0dXJpbmcKCjIwMTAtMDYtMDIgMTQ6NDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCAtLXdpdGgtY2EgaGFuZGxpbmcsIGZpeCBDQSBuZXdjZXJ0cyBib29ra2VlcGluZwoKMjAxMC0wNi0wMiAxMDo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHBhcnNpbmcgT0lEcwogICBpbiBjb25maWcgZmlsZXMuCgoyMDEwLTA2LTAyIDAwOjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNoZWNrIHRoYXQgQ0EgY2VydGlmaWNhdGVzIGNyZWF0ZWQgYWZ0ZXIgc25tcGQgc3RhcnRzIGFyZSBzdGlsbAogICB1c2FibGU7IGNoZWNrIGFsbCBvdXRwdXQgZmluZ2VycHJpbnRzIHRvIGVuc3VyZSB0aGV5IHdlcmUKICAgcHJvcGVybHkgY3JlYXRlZAoKMjAxMC0wNi0wMiAwMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZCBtaXNzaW5nIGRpcmVjdG9yeSBhbmQgZmlsZSBzdWZmaXggdG8gY2EgaW52b2NhdGlvbnMKCjIwMTAtMDYtMDIgMDA6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNoZWNrIHRoYXQgY2VydGlmaWNhdGUgb3V0cHV0IGZpbmdlcnByaW50cyB3ZXJlIGZvdW5kCgoyMDEwLTA2LTAyIDAwOjIwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgdHdvIG5ldyBmdW5jdGlvbnMgZm9yIHZhbHVlIGNvbXBhcmlzb24gdGVzdCBvdXRwdXQKCjIwMTAtMDYtMDIgMDA6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgcmVtb3ZlIG5vLWxvbmdlci11c2VkIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRva2VuIHNwZWNpZmllciAod2UKICAgcmVxdWlyZSBhIGNvcHkgb2YgdGhlIGtleSkKCjIwMTAtMDYtMDIgMDA6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgLSBjaGFuZ2VkICdmaW5nZXJwcmludCcgdG9rZW4gdG8gbW9yZSBnZW5lcmljICdpZGVudGl0eScga2V5d29yZAogICAtIGFkZGVkIHRoZSBhYmlsaXR5IGZvciBuZXRzbm1wX2NlcnRfZmluZCB0byB0cnkgbXVsdGlwbGUgdHlwZXMKICAgKEZQICYgZmlsZSkKICAgLSBhbmQgcHJvdmlkZSB0ZXN0IHN1aXRlIHRlc3QgZm9yIGl0LgoKMjAxMC0wNi0wMSAyMDoxMiAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFBlcmwgZXh0ZW5zaW9uIG1vZHVsZXMgY2FuIGxvYWQgdGhlIE5ldC1TTk1QCiAgIERMTHMgd2hpbGUgcnVubmluZyB0aGUgTmV0LVNOTVAgcmVncmVzc2lvbiB0ZXN0cy4KCjIwMTAtMDYtMDEgMTY6NDcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFqb3IgdXBkYXRlIGJ1ZyBmaXhlcyBhbmQgZmVhdHVyZXMgLSBpbnRlcmFjdGl2ZSBtb2RlLCBzZXBhcmF0ZQogICBDQSBkaXJzLCBnZW4gY3NyIGZyb20gY2VydCwgZmluZ2VycHJpbnQgZGlzcGxheSAtLWJyaWVmLAogICBlbGltaW5hdGUgc2VkLCBvcGVuc3NsLmNvbmYgb3ZlcndyaXRlIGFuZCB0ZW1wbGF0aW5nCgoyMDEwLTA2LTAxIDE0OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wNi0wMSAxNDoyNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBJUC1NSUI6OmlwSWZTdGF0c1JlYXNtUmVxZHMgdmFsdWUuCiAgIAogICBKdXN0IGZpeGluZyBhIHN0dXBpZCB0eXBvLgoKMjAxMC0wNS0zMSAxMDo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGVuYWJsZWQgVW5peCB0cmFuc3BvcnQuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODcgZnJvbSB0aGUgVjUuNSBicmFuY2gpLgoKMjAxMC0wNS0zMCAyMjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSB0byBydW4gd2l0aCBvbGRlciBQZXJsIChlLmcuIFBlcmwgNS4wMDQwNSBhcyBzaGlwcGVkIHdpdGgKICAgSVJJWAogICA2LjUpCgoyMDEwLTA1LTMwIDIyOjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcG9saXNoIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMzAgMjA6MTkgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluLCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbiwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBidWlsZGluZzogRG8gbm90IGxpbmsgd2l0aCBsaWJuZXRzbm1waGVscGVycyBhbnkgbW9yZSBhcwogICBpdCBpcyBlbXB0eS4KCjIwMTAtMDUtMzAgMTk6MTggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIGEgdm9pZCBhcmd1bWVudCBmb3IgdGhlIGRhdGEgYXJndW1lbnQgb2YKICAgeGR1bXAuCgoyMDEwLTA1LTMwIDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjA1MTc0MjogYWRkZWQgbWlzc2luZyBQRVJMX1NZU19JTklUMygpIGNhbGwgKHNlZQogICBhbHNvIG1hbiBwZXJsZW1iZWQpLgoKMjAxMC0wNS0zMCAxOToxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmcmVlKCkgY2FsbGVkIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQKICAgZmlyc3QpLgoKMjAxMC0wNS0zMCAxNjo1NiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wbGliOiBEbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGluY2x1ZGVkLgoKMjAxMC0wNS0zMCAxMjowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuIFJlbW92ZQogICB1bm5lY2Vzc2FyeSBpbmNsdWRlcy4KCjIwMTAtMDUtMzAgMDY6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvZHVtbXkuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdCBlbXB0eSBzdWNoIHRoYXQgYnVpbGRpbmcKICAgTmV0LVNOTVAgb24gQUlYIGFuZCBJUklYIGlzIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wNS0yOSAwOTo1MiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBGb2xsb3ctdXAgZm9yIHIxODkwMjogd29ya3MgYWdhaW4gd2l0aG91dCBUQVA6Okhhcm5lc3MuCgoyMDEwLTA1LTI4IDIzOjIzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBsb25nLWFnbyBicm9rZW4gdmVyYm9zaXR5CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBtb3JlIHByZXZpb3VzbHkgYnJva2VuIG9wdGlvbiByZW5hbWVzOyBjaGFuZ2UgLWQgdG8KICAgbWFzdGVyLWRpcmVjdG9yeSBhbmQgYWRkIGFzIGEgcmVhbCBhcmd1bWVudAoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgbW9yZSBtaXNzaW5nIG9sZHVjZCByZW5hbWVzCgoyMDEwLTA1LTI4IDIyOjU3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgcmVuYW1lZCAnb2xkdWNkJyB0byAnc2ltcGxlJyB0byBwdXQgYSBtb3JlIHBvc2l0aXZlIHNwaW4gb24gdGhlbQoKMjAxMC0wNS0yOCAyMjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRlc3Qgc3VpdGUKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICByZXZlcnQgdW5pbnRlbnRpb25hbmFsbHkgY29tbWl0dGVkIHRlc3QgdGVzdAoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGZyZWUgdmFyaWFibGVzIGFnYWluCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4IHdhbGtzIHNvIHRoYXQgbXVsdGlwbGUgd2Fsa3MgdGVybWluYXRlIHByb3Blcmx5CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgcGF0Y2ggdG8gaGFuZGxlIHRlc3Rpbmcgb2YgbG9vcGluZyBvZiBtdWx0aXBsZSB2YXJiaW5kcyBpbiBhIHdhbGsKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBpbml0YWwgcGF0Y2ggdG8gcHJldmVudCBsb29waW5nIHdhbGtzCgoyMDEwLTA1LTI4IDIwOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW1wbGVtZW50IGNlcnQgbG9va3VwIGJ5IGZpbGVuYW1lCgoyMDEwLTA1LTI4IDA3OjAyICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBjb25zdCBkZWNsYXJhdGlvbnMgdG8gdGhlIGRpc2FibGVkIHZlcnNpb25zCiAgIG9mIHRoZSBkZWJ1Z2dpbmcgY29kZSBhcyB3ZWxsLgoKMjAxMC0wNS0yOCAwMjoxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFkZCBwZXJzaXN0ZW5jZTsgY2hlY2sgZm9yIGNvbCBtb2RzIHdoaWxlIHJvdyBhY3RpdmUKCjIwMTAtMDUtMjggMDI6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogYWdlbnRsaWI6IG5ldyBmdW5jdGlvbnMgdG8gbWFrZSBzdGFzaCBwdHIgYW5kIG5ld3JvdwogICBhdmFpbGFibGUgdG8KICAgdGFibGVfZGF0YXNldCBoYW5kbGVycwogICBub25ld3M6IGZpeCB0eXBvOyB0YWJzIHRvIHNwYWNlczsgdXNlIHNpemVvZiBpbnN0ZWFkIG9mIGNvbnN0YW50CgoyMDEwLTA1LTI3IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgYnVpbGQgZml4ZXMuCgoyMDEwLTA1LTI3IDE4OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgICJtYWtlIHRlc3QiIHdpdGhvdXQgVEFQOjpIYXJuZXNzICh3YXMgYnJva2VuIGJ5IHIxODgwMikuCgoyMDEwLTA1LTI3IDE1OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLiBNb3N0IGZpeGVzIGludm9sdmVkIGFkZGluZyB0aGUKICAgImNvbnN0IiBrZXl3b3JkLgoKMjAxMC0wNS0yNyAxMzo1MiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTcyNTc5OiBmaXhlZCBjaGVja2luZyBvZgogICBzbm1wVGFyZ2V0QWRkclJvd1N0YXR1cyBTRVQgcmVxdWVzdHMuCgoyMDEwLTA1LTI3IDEzOjQxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIHJldmVydCBwYXJ0IG9mIDE4ODg1OiB0ZXN0IGZpbGVzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHJ1biBieQogICB0aGVtc2VsdmVzIHRvbwoKMjAxMC0wNS0yNyAxMToxOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IGNvcnJlY3RseSBjYWxjdWxhdGUgaWZYVGFibGUuaWZIQ0luVWNhc3RQa3RzIG9uIDMyLWJpdAogICBMaW51eAogICAKICAgTGludXggZG9lcyBub3QgcHJvdmlkZSBzdGFuZGFsb25lIGNvdW50ZXIgZm9yIGluY29taW5nIHVuaWNhc3QKICAgcGFja2V0cyAoaXVjYXN0KQogICAtIGl0IHByb3ZpZGVzIGNvdW50ZXIgb2YgYWxsIHBhY2tldHMgKGlhbGwpICsgc2VwYXJhdGUgY291bnRlcgogICBmb3IgdGhlIG11bHRpY2FzdAogICBvbmVzIChpbWNhc3QpLiBQcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZiBpZlRhYmxlIHJlYWQgdGhlc2UKICAgY291bnRlcnMgYW5kCiAgIGNhbGN1bGF0ZWQgaXVjYXN0ID0gaWFsbCAtIGltY2FzdCAqYmVmb3JlKiB0aGVzZSB2YWx1ZXMgd2VyZQogICBleHBhbmRlZCBpbnRvCiAgIDY0Yml0cy4gVGhpcyBwcm9kdWNlZCBlcnJvcnMgb24gMzJiaXQgc3lzdGVtcyB3aGVuIGlhbGwKICAgb3ZlcmZsb3dlZCB0byB6ZXJvIGFuZAogICBpbWNhc3Qgd2FzIG5vemVybyAtPiBpdWNhc3QgZ290IG5lZ2F0aXZlIGFuZCAnYzY0IDMyIGJpdCBjaGVjawogICBmYWlsZWQnIGVycm9yIGluCiAgIHNubXBkIGxvZy4gTm93IHRoZSBhZ2VudCBleHBhbmRzIHRoZXNlIHZhbHVlcyB0byA2NGJpdHMgZmlyc3QgYW5kCiAgICogICAgICp0aGVuKiBwZXJmb3JtcyAgICB0aGUgY2FsY3VsYXRpb24sIHVzaW5nIGEgbmV3IGZsYWcuIAogICAgICAyMDEwLTA1LTI3IDA4OjE4ICBtYWdmcgoKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL1JVTlRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTW92ZSB0aGUgc2V0dGluZyBvZiBNSUJESVJTIGZyb20gdGhlIHN1cHBvcnQKICAgc2NyaXB0IHRvIHRoZSBkcml2ZXJzIHNpbmNlIGl0IGlzIG5lZWRlZCBmb3IgdGhlIEMgdGVzdHMgYXMgd2VsbC4KCjIwMTAtMDUtMjcgMDg6MDkgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBVc2Ugb2xkdWNkX3J1biwgbm90IHJ1bl9vbGR1Y2QuIENoYW5nZSBzcmNkaXIKICAgdG8gcmVmZXIgdG8gdGhlIHRvcCBkaXJlY3RvcnkgYW5kIG5vdCB0aGUgdGVzdGluZyBzdWJkaXJlY3RvcnkgYXMKICAgdGhhdCBpcyB3aGF0IGlzIGV4cGVjdGVkIGluIHRoZSB0ZXN0IHNjcmlwdHMuCgoyMDEwLTA1LTI3IDA1OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNyAwNToxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9rZXl0b29scy5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmM6CgogICBtb3JlIGNvbnN0IGNvcnJlY3RuZXNzCgoyMDEwLTA1LTI3IDA0OjE4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RzIGZvciBhZ2VudC1ub3Qta25vd24tdXNlci1jZXJ0aWZpY2F0ZXMKCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICByZWZlcmVuY2UgdGhlIGl0bmVybmFsIHN1cHBvcnQgYW5kIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsL09QRU5TU0wtTElDRU5TRSwgc25tcGxpYi9vcGVuc3NsL1JFQURNRToKCiAgIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogbGlibmV0c25tcDogU3VwcG9ydCBmb3IgYSBzdHJlYW0tbGluZSBzdHJpcHBlZCBkb3duIHZlcnNpb24KICAgb2YgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IHVzaW5nIC0td2l0aC1vcGVuc3NsPWludGVybmFsCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCAKICAgICAgICBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgbW9yZSBkZXBlbmRlbmNpZXMgZm9yIGV4dGVybmFsIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvb3BlbnNzbCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY29yZS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQzMl9jb21tb24uaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYS5oLCAKICAgICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgbW92ZSBvcGVuc3NsIGNvZGUgaW50byBhIHN1YmRpcmVjdG9yeQoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2Q6CgogICBmaXggdGVzdGluZyBzbyBpdCB1c2VzIG11bHRpcGxlIHR5cGVzIG9mIGNyeXB0bwoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbml0aW9ucyBhbmQgZmlsZXMgZm9yIGRvaW5nIGludGVybmFsIGNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBpbmNsdWRlIGludGVybmFsIGFlcy9kZXMgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgc25tcGxpYi9vcGVuc3NsX21vZGVzLmg6CgogICBpbml0YWwgY29waWVzIG9mIGNmYjEyOCBtb2RlcyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmg6CgogICBpbml0aWFsIHZlcnNpb25zIG9mIGFlc19jb3JlLmMgYW5kIGFlc19sb2NsLmgKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIGFlcy5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYzoKCiAgIGluaXRpYWwgY29weSBvZiB0aGUgb3BlbnNzbCBhZXNfY2ZiLmMgZmlsZQoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGluY2x1ZGUgbG9jYWxpemVkIGNvcGllcyBvZiB0aGUgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHVzZSBpbnRlcm5hbCBERVMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmM6CgogICBsb2NhbGl6ZWQgY29weSBvZiB0aGUgY2JjX2VuYy5jIGZpbGUgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBkZXMvc3ByLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgYWRkZWQgZGVzX2VuYy5jIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfc2hhLmg6CgogICBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmg6CgogICBpbml0aWFsIGNvcHkgb2Ygb3BlbnNzbCdzIGRlcy5oCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGxvY2FsaXplZCBoZWFkZXIgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgaW5pdGFsIGNvcGllcyBvZiBzb21lIG9mIHRoZSBvcGVuc3NsIERFUyBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBmaW5pc2hpbmcgcG9ydGluZyBvZiBpbnRlcm5hbCBhdXRoIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgaW50ZXJuYWwgY3J5cHRvIGZpbGVzIHRvIHRoZSBjaGVjay91c2UgbGlzdAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgbG9jYWxpemVkIGZpbGUgbmFtZXMgd2l0aCBvcGVuc3NsIHByZWZpeGVzCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDUuYzoKCiAgIGxvY2FsaXplIHRoZSBtZDUgaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGNvbXBsZXRlbHkgbG9jYWxpemUgdGhlIG9wZW5zc2wgU0hBIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zaGEuaDoKCiAgIGluaXRpYWwgdmVyaXNvbiBvZiBzaGEuaCBjb3B5CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgYWRkZWQgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGNyeXB0byBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIG1ha2UgdXNlIG9mIGludGVybmFsIGNyeXB0byBoYXNoIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowMyAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjb25maWd1cmUgY2hlY2tzIGZvciBpbnRlcm5hbC1jcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNiAyMjoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHByb3Blcmx5IHZlcmlmeSBleHBlY3RlZCBzZXJ2ZXIgY2VydGlmaWNhdGVzIHVuZGVyIERUTFM7IGFkZCBhCiAgIG5ldyBmbGFnIGluIHRsc2Jhc2UgdG8gaW5kaWNhdGUgdmVyaWZpY2F0aW9uIGhhcyBvY2N1cnJlZAoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgY29tcGlsZXIgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgYWRkIGNvbnN0IHF1YWxpZmllcnMgdG8gYSBmZXcgcGxhY2VzCgoyMDEwLTA1LTI2IDE5OjQ2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXBtaWJzLCBsaWJuZXRzbm1waGVscGVycyBhbmQKICAgbGlibmV0c25tcGFnZW50IGRvIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuIGNvbmZpZ3VyZWQgd2l0aAogICAtLWVuYWJsZS1zaGFyZWQuCgoyMDEwLTA1LTI2IDE3OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IG1vdmVkIGFsbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBsaWJuZXRzbm1waGVscGVycyB0bwogICBsaWJuZXRzbm1wYWdlbnQuIGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdyBhbiBlbXB0eSBsaWJyYXJ5LgoKMjAxMC0wNS0yNiAxNzoyMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODgyOSBpbiBvcmRlciB0byBtaW5pbWl6ZSBkaWZmcyB3aXRoIG9sZGVyIGJyYW5jaGVzLgoKMjAxMC0wNS0yNSAwNzoyMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgVGVsbCBuZXQtc25tcC1jZXJ0IHdoZXJlIG5ldC1zbm1wLWNvbmZpZyBpcyBsb2NhdGVkCgoyMDEwLTA1LTI1IDA3OjE0ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDb3JyZWN0IHRoZSBzaWduYXR1cmUgb2YgbWFpbi4gVXNlICNpbmNsdWRlIGluc3RlYWQgb2Ygc291cmNpbmcKICAgdG8gZ2V0IHRoZSBjb2RlIHVuZGVyIHRlc3QgaW4gb3JkZXIgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcwoKMjAxMC0wNS0yNSAwNzoxMSAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIEFkZCBhcmd1bWVudHMgdG8gc3ByaW50ZiBzdGF0ZW1lbnRzIHRvIG1ha2UgdGhlIHRlc3Qgd29yawoKMjAxMC0wNS0yNSAwNzowNyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2FibGVkIGNvZGUKCjIwMTAtMDUtMjUgMDU6MjAgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogU3BsaXQgc25tcElQQmFzZURvbWFpbiBhbmQgbW92ZSB0aGUgSVB2NCBwYXJ0cwogICB0byBJUHY0QmFzZSBhbmQgdGhlIHNvY2tldCBnZW5lcmljIHBhcnRzIHRvIFNvY2tldEJhc2UuCgoyMDEwLTA1LTI0IDIwOjI0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZmluaXNoIHRsc3RtUGFyYW1zVGFibGUgbGFzdENoYW5nZWQgc2NhbGFyCgoyMDEwLTA1LTI0IDE5OjI4ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBBZGQgLS1leHRlcm5hbC1saWJzIGluIG9yZGVyIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRlc3RzIG9uCiAgIHNvbGFyaXMKCjIwMTAtMDUtMjQgMTM6MzMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFyZ2guLiBmaXggZmFsbG91dCBmcm9tIG1hbnVhbGx5IChtaXMpYXBwbHlpbmcgcGF0Y2gKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgZmlyc3QgcGFzcyBhdCB0bHN0bVBhcmFtc1RhYmxlCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGRlZmluZXMgdG8gbWF0Y2ggTUlCIG5hbWVzLCBwZXIgZ3JhbmQtcG9vYmFoCgoyMDEwLTA1LTI0IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jOgoKICAgdXBkYXRlIE9JRCB0byBtYXRjaCB1cGNvbWluZyBSRkMKCjIwMTAtMDUtMjQgMTE6NDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wYWdlbnQsIGxpYm5ldHNubXBoZWxwZXJzOiBtb3ZlZCB0aGUgZnVuY3Rpb25zCiAgIG5ldHNubXBfYnVsa190b19uZXh0X2ZpeF9yZXF1ZXN0cygpLAogICBuZXRzbm1wX2dldF9idWxrX3RvX25leHRfaGFuZGxlcigpLCBuZXRzbm1wX3JlZ2lzdGVyX251bGwoKSwKICAgbmV0c25tcF9yZWdpc3Rlcl9udWxsX2NvbnRleHQoKSBhbmQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKICAgZnJvbSBsaWJuZXRzbm1waGVscGVycyB0byBsaWJuZXRzbm1wYWdlbnQuCiAgIE5vdGVzOgogICAtIFRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBsaWNhdGlvbnMKICAgdGhhdCBsaW5rIHdpdGggJChuZXQtc25tcC1jb25maWcgLS1hZ2VudC1saWJzKSBzaW5jZSB0aGlzCiAgIGludm9sdmVzIGxpbmtpbmcgd2l0aCBib3RoIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQuCiAgIC0gRnVuY3Rpb25zIGhhdmUgYmVlbiBtb3ZlZCBiZXR3ZWVuIGxpYnJhcmllcyBieSBtb3ZpbmcgZW50aXJlCiAgIHNvdXJjZSBmaWxlcy4KCjIwMTAtMDUtMjQgMTA6MTAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgVXNlIHByb3BlciBzdHJpbmcgc2l6ZXMgYW5kIG1ha2Ugc3VyZSBzdHJpbmdzIGFyZQogICB6ZXJvLXRlcm1pbmF0ZWQuCgoyMDEwLTA1LTI0IDA4OjAxICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIG5ldC1zbm1wLWNvbmZpZy5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcCBkb2VzIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuCiAgIGNvbmZpZ3VyZWQgd2l0aCAtLWVuYWJsZS1zaGFyZWQuCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybCBtb2R1bGVzIGRvIG5vdyBidWlsZCAoLS13aXRoLXBlcmwtbW9kdWxlcykuCiAgIE5vdGU6IHRoZSBUMDYwdHJhcGRwZXJsX29sZHVjZCwgVDA2MWFnZW50cGVybF9vbGR1Y2QgYW5kCiAgIFQxMTVhZ2VudHhwZXJsX29sZHVjZCB0ZXN0cyBzdGlsbCBmYWlsLgoKMjAxMC0wNS0yMyAyMzowNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1cGRhdGUgZmlsZW5hbWVzL3BhdHNoIGZvciByZWNlbnQgZmlsZSByZW5hbWVzOyBmaXggdHlwb3MKCjIwMTAtMDUtMjMgMjI6MDggIG1hZ2ZyCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSB0aGUgc2FtZSBjb21waWxlciBjb21tYW5kIGFuZCBmbGFncyBmb3IKICAgYnVpbGRpbmcgb2YgdGVzdHMgYXMgZm9yIGJ1aWxkaW5nIG9mIHRoZSBjb2RlLCB0aHVzIGVuYWJsaW5nIHRlc3QKICAgb2YgZS5nLiAzMi1iaXQgY29kZSBjb21waWxlZCBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KCjIwMTAtMDUtMjMgMjE6NDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgaW5jbHVkZS9jb25maWcgZmlsZS9wYXRocyBmb3IgcmVjZW50IHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MzEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHJlbmFtZSBmaWxlcyBmb3IgTUlCIHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlOgoKICAgcmVuYW1lIGRpcmVjdG9yaWVzIHRvIG1hdGNoIHJlbmFtZXMgaW4gTUlCCgoyMDEwLTA1LTIwIDA4OjQ4ICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTd2FwcGVkIGxpbmsgb3JkZXIgb2YgLWxuZXRzbm1waGVscGVycyAtbG5ldHNubXBtaWJzOiBuZXRzbm1wbWlicwogICBkZXBlbmRzIG9uIG5ldHNubXBoZWxwZXJzIGFuZCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCgoyMDEwLTA1LTIwIDA4OjQyICBidmFzc2NoZQoKICAgKiAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTkgMTg6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoaW5nCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgb3V0cHV0IGZpbGVuYW1lcyBvZiBmYWlsZWQgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgd2lwZSB0cmFpbGluZyBjb21tZW50IEMgbWFya2VyIGlmIGl0IGV4aXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB0aXRsZSB0aGUgU05NUHYzIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0ZXN0aW5nIG9mIGJ1aWx0IHRpdGxlcwoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBvbmx5IHByaW50IGZhaWx1cmUgaGVhZGVyIGlmIHRoZXJlIHdhcyBhdCBsZWFzdCBvbmUKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkOgoKICAgbWFrZSBkZXNjcmlwdGl2ZSB0aXRsZXMgd29yayBhZ2FpbgoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgcmVuYW1lIGZpbGVzIHNvIHByZWZpeGluZyBpcyBiYXNlZCBvbiB0aGUgc3VpdGUgbmFtZSwgbm90IGZpbGUKICAgdHlwZQoKMjAxMC0wNS0xOSAxNzo1MiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsOiBidWlsZGluZyB0aGUgUGVybCBtb2R1bGVzIHdpdGggdGhlIEN5Z3dpbgogICBQZXJsIHBhY2thZ2UgaXMgbm93IHBvc3NpYmxlLgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg4IGZyb20gdGhlIFY1LjUgYnJhbmNoLikKCjIwMTAtMDUtMTkgMTc6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE5IDEyOjA1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXJzdC1kcmFmdCBzdXBwb3J0IGZvciBBSVggZmlsZXN5c3RlbSBIQUwgbW9kdWxlICh1bnRlc3RlZCkKCjIwMTAtMDUtMTkgMTE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFN1cHBvcnQgZm9yIFNvbGFyaXMtc3R5bGUgJ2dldG1udGVudCcgQVBJLgoKMjAxMC0wNS0xOSAwOTo1NyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgU2ltcGxpZnkgdGhlIGhhbmRsaW5nIG9mIHVua25vd24vdW53YW50ZWQgZmlsZSBzeXN0ZW1zLgoKMjAxMC0wNS0xOSAwOTozMCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEZpeCBtaXNzaW5nL2Jyb2tlbiBBUEkgZGVjbGFyYXRpb25zLgoKMjAxMC0wNS0xOSAwODo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgTWFkZSBlcnJvciBtZXNzYWdlcyBtb3JlIGNsZWFyIGluIGNhc2Ugb2YgZmFpbHVyZSBvciB3cm9uZwogICBpbnZvY2F0aW9uLgoKMjAxMC0wNS0xOSAwMDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0IGZvciB1c2luZyBhIGNlcnRpZmljYXRlIHNpZ25lZCBieSBhIENBIGNlcnRpZmljYXRlCgoyMDEwLTA1LTE4IDIzOjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgd2UgY2FsbCB0aGUgcmlnaHQgUGVybAoKMjAxMC0wNS0xOCAyMDozOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGluY2x1ZGUgbG9jYWwgcG9ydCBudW1iZXIgaW4gcGFja2V0IGR1bXBzLiBBbgogICBleGFtcGxlOgogICAKICAgUmVjZWl2ZWQgMzYgYnl0ZSBwYWNrZXQgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDIyIDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEExIDE1IDAyCiAgIDAiLi4uLi5wdWJsaWMuLi4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgMDcgMzAgMDUgMDYKICAgLjcuLi4uLi4uLi4wLjAuLgogICAwMDMyOiAwMSAwMSAwNSAwMCAuLi4uCiAgIAogICBSZWNlaXZlZCBTTk1QIHBhY2tldChzKSBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgR0VUTkVYVCBtZXNzYWdlCiAgIC0tIGNjaXR0LjEKICAgCiAgIFNlbmRpbmcgMTE4IGJ5dGVzIHRvIFVEUDogWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgNzQgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTIgNjcgMDIKICAgMHQuLi4uLnB1YmxpYy5nLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCA1OSAzMCA1NyAwNgogICAuNy4uLi4uLi4uLjBZMFcuCiAgIDAwMzI6IDA4IDJCIDA2IDAxIDAyIDAxIDAxIDAxIDAwIDA0IDRCIDRDIDY5IDZFIDc1IDc4CiAgIC4rLi4uLi4uLi5LTGludXgKICAgMDA0ODogMjAgNjEgNzMgNzUgNzMgMjAgMzIgMkUgMzYgMkUgMzMgMzMgMkUgMzIgMkQgNzMgYXN1cwogICAyLjYuMzMuMi1zCiAgIDAwNjQ6IDYzIDczIDc0IDIwIDIzIDMxIDIwIDUzIDREIDUwIDIwIDUwIDUyIDQ1IDQ1IDREIGNzdCAjMSBTTVAKICAgUFJFRU0KICAgMDA4MDogNTAgNTQgMjAgNTMgNjEgNzQgMjAgNDEgNzAgNzIgMjAgMzMgMjAgMzIgMzEgM0EgUFQgU2F0IEFwcgogICAzIDIxOgogICAwMDk2OiAzMSAzMCAzQSAzNSAzOCAyMCA0MyA0NSA1MyA1NCAyMCAzMiAzMCAzMSAzMCAyMCAxMDo1OCBDRVNUCiAgIDIwMTAKICAgMDExMjogNzggMzggMzYgNUYgMzYgMzQgeDg2XzY0CgoyMDEwLTA1LTE4IDE5OjQyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQWRkclRhYmxlCiAgIC0gZGVhbCB3aXRoIGhhc2ggdHlwZSBwcm9wZXJseSBmb3IgZ2V0L3NldCBhbmQgcGVyc2lzdGVuY2UKICAgLSBhZGQgY291bnQgYW5kIGxhc3QgY2hhbmdlZCBzY2FsYXJzCgoyMDEwLTA1LTE4IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNhbCBPSUQgZnJvbSB1cGNvbWluZyByZmMKCjIwMTAtMDUtMTggMTY6MTYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2lhbCBPSURzIGZyb20gdXBjb21pbmcgUkZDOyBhZGQgY291bnQvbGFzdCBjaGFuZ2VkCiAgIHNjYWxhcnMKCjIwMTAtMDUtMTggMTQ6NTYgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMDAxNjU2OiBIYW5kbGUgbnVsbC10ZXJtaW5hdGlvbiBvZgogICBzdHJpbmcgdmFsdWVzIHByb3Blcmx5LgogICBCYXNlZCBvbiB0aGUgcHJpbmNpcGxlcyBvZiB0aGUgcGF0Y2ggZnJvbSBUb21teSBCZWFkbGUuCgoyMDEwLTA1LTE4IDE0OjM4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCBhZ2VudC9taWJncm91cC9ob3N0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBXb3JraW5nKD8pIEhBTC1iYXNlZCB2ZXJzaW9uIG9mIGhyRlNUYWJsZS4KCjIwMTAtMDUtMTggMTQ6MTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTcgMjE6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgdXNlIHByb3BlciBUU00gc2VjdXJpdHkgY29kZSAoNCkgbm93IHRoYXQgaXQncyBvZmZpY2lhbAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBiZWdpbm5pbmcgb2YgYSBjb250YWluZXIgdW5pdCB0ZXN0CgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGVzdGluZy5oOgoKICAgYSBiYXNpYyBDLWNvZGUgYmFzZWQgdGVzdCByZXBvcnRpbmcgbWVjaGFuaXNtCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIGJhc2ljIGRlZmF1bHRfc3RvcmUgdGVzdHMKCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYjoKCiAgIGEgYnVpbGQgc3lzdGVtIGZvciBiYXNpYyBsaWJuZXRzbm1wIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjE0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgZml4IGZpbmdlcnByaW50IGJpbi9oZXggY29udmVyc2lvbjsgYWRkL3JlbW92ZSBjZXJ0IHNlYyBtYXBzIHZpYQogICBtaWIgbm93IHdvcmtzCgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JpbmFyeV90b19oZXgKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZwcmludGYoc3RkZXJyIC0+IERFQlVHTVNHVEwoKAoKMjAxMC0wNS0xNyAxODoxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIGNoZWNrIGZvciBoYXNoIHR5cGUKCjIwMTAtMDUtMTcgMTY6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWtlIFJVTlRFU1RTIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlZGlyCgoyMDEwLTA1LTE3IDE1OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFkZSBhIGxpbWl0ZWQgcnVuIHRlc3QgcG9zc2libGUgYWdhaW4gd2l0aG91dCBwZXJsCgoyMDEwLTA1LTE3IDE1OjMyICBkdHMxMgoKICAgKiAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBVc2UgbmV3ZXIgRGlzTWFuIEV2ZW50IE1JQiBjb2RlIGZvciBNU1ZDLWJhc2VkIGJ1aWxkcwogICAoaW4gbGluZSB3aXRoIGFsbCBjb25maWd1cmUtYmFzZWQgYnVpbGRzKQoKMjAxMC0wNS0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRoZSByZXR1cm4gb3V0c2lkZSB0aGUgaWYgc3RhdGVtZW50CgoyMDEwLTA1LTE3IDE1OjE4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHB1YmxpYyBpbnRlcmZhY2UgdG8gSEFMLWJhc2VkIGZpbGVzdG9yZSBtb2R1bGUuCgoyMDEwLTA1LTE3IDEwOjQxICBidmFzc2NoZQoKICAgKiB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxODc1NCAocmV2ZXJ0IHIxODczOCk6IHIxODc1NCBvbmx5IHBhcnRpYWxseQogICByZXZlcnRlZCByMTg3MzgKICAgYW5kIGhlbmNlIGJyb2tlIHRoZSBXaW4zMi1idWlsZC4gRmluaXNoZWQgcmV2ZXJzYWwgb2YgcjE4NzM4IGJ5CiAgIHJlc3RvcmluZwogICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCgoyMDEwLTA1LTE2IDE4OjE3ICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBGb2xsb3ctdXAgZm9yIHIxODcyNjogb25seSBwYXNzIC1mc3RhY2stcHJvdGVjdG9yKiBmbGFncyB0byB0aGUKICAgbGlua2VyIGluc3RlYWQgb2YgYWxsIC1mKiBmbGFncyBzdWNoIHRoYXQgaXQgYmVjb21lcyBsZXNzIGxpa2VseQogICB0aGF0IHRoaXMgbW9kaWZpY2F0aW9uIGNhdXNlcyB0cm91YmxlIHdpdGggbm9uLUdOVSB0b29sY2hhaW5zLgoKMjAxMC0wNS0xNiAxODoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgc2hlbGwgY29kZSBmb3IgY29udmVydGluZyBhIHJlbGF0aXZlIHBhdGggdG8gYW4gYWJzb2x1dGUKICAgcGF0aCBtb3JlCiAgIHJvYnVzdCBhbmQgY29udmVydGVkICIkey4uLiMuLi59IiBjb25zdHJ1Y3QgaW50byBlY2hvICsgY3V0LgoKMjAxMC0wNS0xNiAxODoxMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBNb3JlIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIHRvCiAgIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRSBzdWJzdGl0dXRpb25zLCBuZWNlc3NhcnkgdG8gbWFrZQogICB0ZXN0IDA1OSBhbmQgMDY1IHBhc3MuCgoyMDEwLTA1LTE2IDE3OjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgZml4IHRlc3RzIGZvciBjaGVja2luZyBzaHV0ZG93biBvZiBhcHBsaWNhdGlvbnMgdG8gbm90IHJlcG9ydAogICBmYWxzZSBuZWdhdGl2ZXMKCjIwMTAtMDUtMTYgMTI6MTUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHRlc3QgVDA1OSBwYXNzIGFnYWluLiBUaGlzIHRlc3Qgd2FzIHJlY2VudGx5IGJyb2tlbiBieQogICBwYXNzaW5nIGFyZ3VtZW50cyB0byBpdCB3aXRoIGFic29sdXRlIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKICAgcGF0aHMuCgoyMDEwLTA1LTE2IDEyOjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2Q6CgogICBBZGRlZCAnU0tJUElGTk9UIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRScuCgoyMDEwLTA1LTE2IDExOjQyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTYgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYXBwcy9zc2h0b3NubXAuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gb2xkIGNvZGUuCgoyMDEwLTA1LTE2IDA5OjU5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGRvbid0IHRyaWdnZXIgYSBuZXRzbm1wX2Fzc2VydCgpIHdoZW4KICAgbm8gZXh0ZW5zaW9uIERMTHMgaGF2ZSBiZWVuIGxvYWRlZC4KCjIwMTAtMDUtMTUgMTc6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdG9wLWdhcCBmaXggdG8gdW5icmVhayAibWFrZSB0ZXN0IiBmb3IgdGhlIG5pZ2h0bHkgYnVpbGRzCgoyMDEwLTA1LTE1IDEwOjU5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBSZXZlcnRlZCByMTg3MjcgYmVjYXVzZSBpdCBjYXVzZWQgYnVpbGQgZXJyb3JzIG9uIFNvbGFyaXMsIEFJWAogICBhbmQgSFAtVVguCgoyMDEwLTA1LTE1IDAwOjQyICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbDoKCiAgIHJldmVydCByMTg3Mzggc2luY2UgbmV3IHRyYW5zcG9ydCByZXF1aXJlIGR5bmFtaWNseSBidWlsdCBoZWFkZXIKICAgZmlsZXMKCjIwMTAtMDUtMTUgMDA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBsb2cgZW52IHZhcmlhYmxlcyB1c2VkIHRvIHRoZSBpbnZva2VkIGZpbGUKCjIwMTAtMDUtMTQgMjE6MjkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGZpeCBzY3JpcHQgc28gaXQgY2FuIGJlIGludm9rZWQgb3V0c2lkZSB0aGUgdGVzdCBlbnZpcm9ubWVudAogICBhZ2FpbgoKMjAxMC0wNS0xNCAyMToyOCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0OgoKICAgYWRkZWQgdGhlIFNOTVAtVExTLVRNLU1JQiB3aXRoIGZpbmFsIElBTkEgYXNzaWdubWVudCBzbG90cwoKMjAxMC0wNS0xNCAyMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBUU00gcHJlZml4ZXMKCjIwMTAtMDUtMTQgMjE6MjYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIERvbWFpbiBudW1iZXJzCgoyMDEwLTA1LTE0IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0IGRlZmF1bHQgdmVyc2lvbiBhbmQgc2VjbGV2ZWwgaWYgdGxzL2R0bHMKCjIwMTAtMDUtMTQgMTU6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHJjIGZyb20gc2VjbmFtZSBtYXBwaW5nOyBjbGFyaWZ5IGNvbW1lbnQKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG9uJ3QgdXNlIHVuc29ydGVkIGNvbnRhaW5lcjsgZG9uJ3QgZnJlZSBjYWxsZXIncyBjb250YWluZXIKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBsaW5lYXJfc2VhcmNoIGZvciB1bnNvcnRlZCBjb250YWluZXJzCgoyMDEwLTA1LTE0IDExOjU2ICBidmFzc2NoZQoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYnkgcmVtb3ZpbmcgdGhlIGdlbmVyYXRlZCBmaWxlCiAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgogICBDb21tZW50ZWQgb3V0IHRoZSBjb2RlIGluIHRoZSBjb25maWd1cmUgc2NyaXB0IGZvciBnZW5lcmF0aW5nCiAgIHRoaXMgaGVhZGVyIGZpbGUuCiAgIEFkZGVkIGNvbmZpZ3VyZS10aW1lIGNvZGUgZm9yIGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbnN0cnVjdG9ycwogICBmb3IgYWxsIGNvbmZpZ3VyZWQKICAgdHJhbnNwb3J0cyBhcmUgaW52b2tlZCBmcm9tIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYy4KCjIwMTAtMDUtMTQgMTE6MDAgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb246IHVwZGF0ZWQgQ3lnd2luIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMTAtMDUtMTQgMDk6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsICAKICAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNCAwODo1MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQWRkZWQgLW5vLXVuZGVmaW5lZCBmbGFnIHRvIGxpYnJhcnkgbGluayBjb21tYW5kcyBzdWNoIHRoYXQKICAgbGlidG9vbCBjYW4gYnVpbGQgRExMcyBvbiBXaW4zMi4KICAgTm90ZTogYnVpbGRpbmcgRExMcyBvbiBXaW4zMiBkb2VzIG5vdCB5ZXQgd29yayBiZWNhdXNlIG9mIHRoZQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW4KICAgbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudAogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvd2lraS9pbmRleC5waHAvTGlicmFyeV9sYXllcmluZykuCgoyMDEwLTA1LTE0IDA4OjQyICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBsaWJ0b29sIGJ1ZyBmaXg6IGFsc28gcGFzcyBmbGFncyBzdGFydGluZyB3aXRoIC1mIHRvIHRoZSBsaW5rZXIKICAgc2luY2UgdGhlc2UgY2FuIGFmZmVjdCBsaW5raW5nLiBUaGUgZmxhZyAtZnN0YWNrLXByb3RlY3RvciBlLmcuCiAgIHRyaWdnZXJzIGluY2x1c2lvbiBvZiBsaWJzc3AuCgoyMDEwLTA1LTE0IDA4OjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhYm9ydCBpZiB0aGUgZmlsZSBwcm9ncmFtIGNvdWxkIG5vdCBiZSBmb3VuZCwKICAgc2luY2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIHByb3BlciBvcGVyYXRpb24gb2YgbGlidG9vbC4KICAgQ0hBTkdFUzogQ3lnd2luOiBuZWl0aGVyIGNvbXBpbGUgbm9yIGxpbmsgd2lucGlwZS5jLgoKMjAxMC0wNS0xMyAwODo1OCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmFuIGF1dG9yZWNvbmYuCgoyMDEwLTA1LTEyIDIwOjE2ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogTGludXg6IGJ1aWxkcyBhZ2FpbiB3aXRoIGVtYmVkZGVkIFBlcmwgZGlzYWJsZWQgKGJ1ZwogICAyOTg1OTE1KS4KCjIwMTAtMDUtMTIgMTk6NDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4Njg0OiB1bi1icmVhayB0aGUgV2luMzIgTVNWQyBidWlsZC4KCjIwMTAtMDUtMTIgMTk6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFdpbjMyOiBmaXhlZCBhIHR5cG8gYW5kIG1hZGUgaW5kZW50YXRpb24gY29uc2lzdGVudC4KCjIwMTAtMDUtMTIgMTk6MTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY29uc3RydWN0IHRlbXAgYnVpbGQgZmlsZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnkKCjIwMTAtMDUtMTIgMTk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHJlY2VudGx5IGJyb2tlbiBvbGQgcGVybCBmdW5jdGlvbmFsaXR5CgoyMDEwLTA1LTEyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYSAtLXNob3J0IG9wdGlvbiB0byBzaG9ydGVuIHRoZSBzaG93IG91dHB1dCB0byBtaW5pbWFsaXN0aWMKCjIwMTAtMDUtMTIgMTQ6MTQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgYSBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCLgoKMjAxMC0wNS0xMiAxMzowMiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgbWVtb3J5IGxlYWsgd2hlbiByZWFkaW5nIHNlbnNvcnMgZm9yCiAgIExNLVNFTlNPUlMtTUlCLgoKMjAxMC0wNS0xMiAxMjo1NyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJldmVydCByZXZpc2lvbiAxODY4OQogICBMYXRlc3QgV2luMzIgYnVpbGRzIGluY2x1ZGUgc3VwcG9ydCBmb3Igc3RydG91bGwuCgoyMDEwLTA1LTEyIDEyOjA1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhZGRlZCBkZXRlY3Rpb24gb2YgbG1fc2Vuc29ycyB2ZXJzaW9uLgogICBJIGFtIG5vdCBBdXRvY29uZiBndXJ1LCBzbyBJIGhvcGUgSSBnb3QgaXQgcmlnaHQuIFRoZSBnb2FsIGlzIHRvCiAgIGRlZmluZSBORVRTTk1QX1VTRV9TRU5TT1JTX1YzICpiZWZvcmUqIGNvbmZpZ19tb2R1bGVzX2FnZW50CiAgIHByb2Nlc3NlcyBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmguCgoyMDEwLTA1LTEyIDA3OjAzICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuCgoyMDEwLTA1LTEyIDAzOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0aXRsZSBnZW5lcmF0aW9uIGFmdGVyIGNoYW5nZSB0byB3aGF0IHNyY2RpciBtZWFudAoKMjAxMC0wNS0xMiAwMjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHVuZG8gbGFzdCBjaGFuZ2Ugd2hpY2ggdHVybmVkIG91dCB0byBvbmx5IGNhdXNlIGVycm9ycyBpZiB5b3UgaGFkCiAgIGEgb2xkIC5jb25mIGZpbGUgYXJvdW5kCgoyMDEwLTA1LTEyIDAyOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHYzX2NhIGNyZWF0aW9uIGV4dGVuc2lvbiBuYW1lCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGtlZXAgZm9ybWF0IHZlcnNpb24gIyBpbiBjZXJ0IGluZGV4ZXM7IGRvbid0IHN0b3JlIGhhc2ggdHlwZQogICBzdHJpbmcgaW4gaW5kZXg7CgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBpbnZlcnRlZCBjb252ZXJzaW9uIGNhbGw7IGxlc3MgdmVyYm9zZSBkZWZhdWx0IGRlYnVnCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBwYXJzaW5nIG9mIC1UIG5hbWUvdmFsdWUgcGFpcnMKCjIwMTAtMDUtMTEgMjM6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBidWcgZml4aW5nIGFuZCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yICJtYWtlIHRlc3QiIHdpdGgKICAgVGVzdDo6SGFybmVzcwogICAoc3RpbGwgZG9lc24ndCB3b3JrIGZvciBtZSwgdGhvdWdoKQoKMjAxMC0wNS0xMSAyMjozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIERvIE5PVCBoYXJkY29kZSAvdXNyL2Jpbi9wZXJsIGFzIHRoZSBQZXJsIHBhdGgKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoIGZpbGUgaGFuZGxpbmcKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbG9uZyBvcHRpb25zIHN1Y2sgOy0pLiBwcmVmZXIgZG91YmxlIGRhc2hlcyBmb3IgbG9uZyBvcHRpb25zIHRvCiAgIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBOZXQtU05NUCBjb2RlIGJhc2UKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWRkZWQgYWJpbGl0eSB0byBydW4gb25seSB0aGUgZmFpbGVkIHRlc3RzIGZyb20gdGhlIGxhc3QgcnVuCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvbid0IGZvcmNlIGNvbG9yCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNsZWFudXAgb2Ygb2xkZXIKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgTWluaW1hbGx5IHN1cHBvcnQgdGhlIG9sZGVyIFRlc3Q6Okhhcm5lc3MgcGVybCBtb2R1bGUgZm9yIHJ1bm5pbmcKICAgdGhlIG9sZGVyIHRlc3RzIGF0IGxlYXN0CgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCBhIGRlZmF1bHQgc2VjdXJpdHlOYW1lIGFuZCBzZWN1cml0eU1vZGVsIGlmIFRMUyBvciBEVExTIGlzIGluCiAgIHVzZSBvbiB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYzoKCiAgIGFsbG93IHNlY3VyaXR5IG1vZGVscyB0byBwZXJmb3JtIG1vcmUgb2YgdGhlIHNlc3Npb24gc2V0dXA7IG1vdmVkCiAgIG1vcmUgVVNNIHNwZWNpZmljIHNldHVwIGludG8gaXQncyBzZXR1cCByb3V0aW5lCgoyMDEwLTA1LTExIDE4OjAyICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggcGFyYW0gdG8gbG9va3VwIHBlZXIgY2VydAoKMjAxMC0wNS0xMSAxNjoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFsbG93ICctJyBpbiBmcWRuOyBhZGQgZGVidWcgb3V0cHV0IGZvciBob3N0IHNwZWNpZmljIGNvbmZpZwoKMjAxMC0wNS0xMSAxNTo0NiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFbnN1cmUgJ25ldHNubXBfcmVhZF9tb2R1bGUnIGlzIGF2YWlsYWJsZSBmb3IgcGVybCBidWlsZC4KCjIwMTAtMDUtMTEgMTU6NDQgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXggcGVybCBidWlsZCB1bmRlciBXaW5kb3dzIChzdHJ0b3VsbCBub3QgYXZhaWxhYmxlKQoKMjAxMC0wNS0xMCAwNzowNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBzeW1ib2wgbmV0c25tcF9zbm1wU1NIRG9tYWluX2xlbiwKICAgbWFrZSBuZXRzbm1wX3NubXBTU0hEb21haW4gY29uc3QuCgoyMDEwLTA1LTA5IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBEbyBub3QgcmVxdWlyZSBxdW90ZXMgYXJvdW5kIHRoZSBDUFUgc3RyaW5nIGFzIHRoYXQgZGVwZW5kcyBvbgogICBob3cgdGhlIGFnZW50IGlzIGNvbmZpZ3VyZWQuCgoyMDEwLTA1LTA5IDIxOjQzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBFeHRyYWN0IHRoZSBFeGl0IGFuZCByZXN0YXJ0KiBzdWJyb3V0aW5lcyBmcm9tCiAgIHV0aWxfZnVuYyBpbiBvcmRlciB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGxlc3MgY29kZSBmb3IgdGhlCiAgIG1pbmltYWwgY2FzZS4KCjIwMTAtMDUtMDkgMTY6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGZ1bmN0aW9uCiAgIGdldF9leGVjX291dHB1dCgpIHJldHVybnMgYSB2YWx1ZSB3aGVuIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wNS0wOSAxNjo0NSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogYnVpbGRzIG5vdyBhbHNvIHdoZW4gdGhlIHNvdXJjZSBmaWxlcyBhcmUKICAgbG9jYXRlZCBvbiBhIFNhbWJhIGZpbGVzeXN0ZW0gaW5zdGVhZCBvZiBhIGxvY2FsIGZpbGVzeXN0ZW0uCgoyMDEwLTA1LTA5IDEzOjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ29ycmVjdCB0aGUgaWYgdGhhdCB0cmllcyB0byBmaWd1cmUgb3V0IGlmIGEgc3VmZmljaWVudGx5IG5ldyBnY2MKICAgaXMgaW4gdXNlLgoKMjAxMC0wNS0wOSAxMjo1MCAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENoZWNrIGZvciB0aGUgbmVlZGVkIG1vZHVsZSBhbmQgbm90IHNvbWUgb3RoZXIgb25lLgogICBMb2cgdGhlIGNvcnJlY3QgbWlzc2luZyBzeW1ib2wuCgoyMDEwLTA1LTA5IDA5OjIxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiB1dGlsaXRpZXMvZXhlY3V0ZSBkbyBub3QgbmVlZCBhbnl0aGluZyBmcm9tCiAgIHV0aWxfZnVuY3MsIHNvIHN0b3AgZGVwZW5kaW5nIG9uIGl0LgoKMjAxMC0wNS0wOSAwOToxMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IHNubXBkOiBSZW1vdmVkIHRoZSB1bnVzZWQgZnVuY3Rpb24geHhfdG9rZW5pemVfZXhlY19jb21tYW5kCiAgIGZyb20gdXRpbGl0aWVzL2V4ZWN1dGUuCgoyMDEwLTA1LTA5IDA5OjAxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlcGxhY2UgdGhlIGRlYnVnZ2luZyBmdW5jdGlvbnMgd2l0aCBkdW1taWVzCiAgIHdoZW4gZGVidWdnaW5nIGlzIGRpc2FibGVkLgoKMjAxMC0wNS0wOSAwODowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZDoKCiAgIENoZWNrIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgZW5hYmxlZAoKMjAxMC0wNS0wOSAwODowMSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIEZhY3RvciBvdXQgY2hlY2sgZm9yIG1pYklJL3N5c3RlbV9taWIKCjIwMTAtMDUtMDkgMDc6NTkgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlcwoKMjAxMC0wNS0wOCAyMzoxNiAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRpdGlvbmFsbHkgZml4IG1ha2UgdGVzdCBmb3IgdGhlIHVuY29tbW9uIGNhc2Ugd2hlcmUgYnVpbGRkaXIKICAgPT0gc3JjZGlyCgoyMDEwLTA1LTA4IDIyOjU1ICBtYWdmcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIHRoZSB0ZXN0IHN1aXRlIGZyb20KICAgYW55d2hlcmUuCiAgIENoYW5nZSB0aGUgLUQgb3B0aW9uIHRvIGV4cGVjdCB0aGUgcGF0aCBvZiB0aGUgdG9wIHNvdXJjZQogICBkaXJlY3RvcnkuCiAgIEFkZCBhbiAtc3JjZGlyIG9wdGlvbiB0aGF0IGlzIGFuIGFsaWFzIGZvciAtRC4KICAgQWRkIGFuIC1idWlsZGRpciBvcHRpb24gdG8gZGVzaWduYXRlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHRlc3QKICAgb2JqZWN0IGlzLgogICBQdXQgc3JjZGlyIGFuZCBidWlsZGRpciBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIHRoZSB0ZXN0IHNjcmlwdHMKICAgRmFjdG9yIG91dCB0aGUgZ3JlcCBwYXJ0IG9mIFNLSVBJRiBhbmQgU0tJUElGTk9UIHRvIElTREVGSU5FRAogICBVc2UgbW9yZSByZWFkYWJsZSBrZXlzIGluIHRoZSBvcHRzIGhhc2ggaW4gUlVORlVMTFRFU1RTCiAgIEFkanVzdCBldmVyeXRoaW5nIHRvIHVzZSBzcmNkaXIgYW5kIGJ1aWxkZGlyCgoyMDEwLTA1LTA4IDIyOjQyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ29uc29saWRhdGUgdGhlIHRlc3QgYW5kIHRlc3QtbWlicyB0YXJnZXRzLgogICBFeHBvc2UgdGhlIHRlc3RhbGwgdGFyZ2V0IGluIHRoZSB0b3AgbWFrZWZpbGUuCgoyMDEwLTA1LTA4IDIyOjA1ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBEbyBub3QgYWJvcnQgd2hlbiBzdHIgaXMgTlVMTCBhcyB0aGF0IGlzIGEgcGVyZmVjdGx5IHZhbGlkIGlucHV0LgoKMjAxMC0wNS0wOCAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIG5ld2xpbmUKCjIwMTAtMDUtMDcgMjE6MTEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuYWMKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBmaXggaGFuZGxpbmcgb2YgY2VydCBhbGdvcml0aG0gaW4gZmluZ2VycHJpbnRzOyBjb252ZXJ0IGluL291dAogICBmaW5nZXJwaW50cwogICBmcm9tL3RvIGhleAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG9udCBzcGVjaWZ5IGhhc2ggdHlwZSBmb3IgZmluZ2VycHJpbnQKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBoYW5kbGUgZmluZ2VycHJpbnQgdHlwZXM7IGRyb3Agc2FuIGZpZWxkcyBmcm9tIGNlcnQgc3RydWN0OwogICBjb25zaWRlciBkaXJlY3RvcnkKICAgd2hlbiBwYXJ0bmVyaW5nIGtleXMvY2VydHMKCjIwMTAtMDUtMDcgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBtb3ZlIGRlZmF1bHQgcHJvbXB0cyBlYXJsaWVyCgoyMDEwLTA1LTA2IDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGJldHRlciBTQU4gZXh0cmFjdGlvbjsgdHdlYWsgZHViZ3VzIG1lc3NhZ2VzOyBxdWlldCBjb21waWxlcgogICB3YXJuaW5ncwoKMjAxMC0wNS0wNiAxNTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICByZWR1Y2UgY2VydCBkZWJ1ZyBvdXRwdXQ7IGRlYnVnIGluc3RlYWQgb2YgbG9nX2luZm8gaW4gZHVtcHMKCjIwMTAtMDUtMDYgMTQ6NDkgIGR0czEyCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBEb24ndCBhc3N1bWUgdGhlIHByZXNlbmNlIG9mIDxzdHJpbmcuaD4KICAgKGJyaW5nIGludG8gbGluZSB3aXRoIGFsbCBvdGhlciBvY2N1cmFuY2VzKQoKMjAxMC0wNS0wNiAxNDo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IFdpbmRvd3M6IEZpeCBidWlsZCB1bmRlciBNaW5HVwogICBiYWNrL2ZvcndhcmQgcG9ydCBvZiByZXZpc2lvbiAxODYzMQoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdHlwZSBpbiBsb2cgbXNnCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBpbXBvcnQgZm9yIHVudXNlZCBmdW5jdGlvbgoKMjAxMC0wNS0wNCAwNzoxMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIE5lZ2F0ZSByZWFzb24gZ2l2ZW4gZnJvbSBTS0lQSUYKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGxlbiBpbiBlbWFpbCBjbXA7IG1vcmUgZXh0cmFjdCBkZWJ1Z2dpbmcKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY29weSBvY2VydCB0byBhZGRpb25hbCBtYXBzCgoyMDEwLTA1LTAzIDE0OjIwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgZGVwZW5kZW5jeSBvbiBwZXJsIG1vZHVsZSBub3QgcHJlc2VudCBpbiBDZW50T1MKCjIwMTAtMDUtMDMgMDM6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgYWNjZXNzIHN0cnVjdCBpbnRlcm5hbHMgZGlyZWN0bHkKCjIwMTAtMDUtMDMgMDM6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGZpeCBjb21waWxpbmcgd2l0aC1vdXQtbWlibW9kdWxlcz11dGlsaXRpZXMvZXhlY3V0ZQoKMjAxMC0wNS0wMSAxOTowOCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgQ29ycmVjdCB0aGUgc291Z2h0IHN0cmluZyB0byBtYWtlIHRoZSB0ZXN0IHBhc3Mgd2hlbiBvay4KCjIwMTAtMDUtMDEgMTc6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1vcmUgY29uc2lzdGVudCB0cmVhdG1lbnQgb2Yga2V5VXNhZ2UsIGJhc2ljQ29uc3RyYWludHMsIG90aGVyCiAgIHg1MDl2MyBvcHRpb25zCgoyMDEwLTA0LTMwIDIzOjM3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbDoKCiAgIGxhbWUgdGVzdCBzY3JpcHQgYnV0IGNvdmVycyBhIGNodW5rIG9mIHRoZSBjb2RlCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1raW5zdGFsbGRpcnMgaW5zdGVhZCBpbnN0ZWFkIG9mIEZpbGU6OlBhdGgKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZW5zdXJlIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgY2FuIGJlIHJ1biBmcm9tIHRoZSBidWlsZCBkaXIKCjIwMTAtMDQtMzAgMjE6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBnZW5jZXJ0IC0tY2EKCjIwMTAtMDQtMzAgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGhlbHAgZm9yIGNlcnRTZWNOYW1lOyBjb250aW51ZSBidWlsZGluZyBjZXJ0IGluZGV4ZXMgZXZlbiBpZgogICB3ZSBjYW50IHNhdmUKICAgdG8gcGVyc2lzdGVudCBkaXIKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IGNoZWNrIGNvdW50IGZvciA4MjIgbmFtZXMgaW4gdGhlIHNubXBkLmxvZwoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYywgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggbWFsbG9jIHVubmRlcmxlbmd0aCBieSAxIGVycm9yCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNvbW1lbnQgb3V0IHRoZSA4MjIgdGVzdHM7IHRoZXkncmUgYnJva2VuIGF0IHRoZSBtb21lbnQKCjIwMTAtMDQtMzAgMTk6MzYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGRvbid0IGxvc2UgU0FOIHdoZW4gc2lnbmluZyB3LyBDQQoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgbmFtZSBjaGFuZ2UgdG8gcmZjODIyIGZyb20gdHlwb2VkIDgyMjAKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdHMgdG8gZG8gb3RoZXIgc3ViamVjdEFsdE5hbWUgbWFwcGluZwoKMjAxMC0wNC0zMCAxNzozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGlzc3VlcyAxLDIsNCBhbmQgLUMgaGFuZGxpbmcKCjIwMTAtMDQtMjkgMDM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1DZXJ0VG9UU05UYWJsZSB0byB1c2UgY2FjaGUgKyBjZXJ0X3V0aWwgbWFwcwogICBjb250YWluZXIKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBpbnNlcnQgcmV0dXJuCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgcmVtb3ZlIGZ1bmN0aW9uIHRvIGNvbnRhaW5lciBpdGVyYXRvcjsKICAgaW1wbGVtZW50IGl0IGZvcgogICBiaW5hcnlfYXJyYXkKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIG1ha2Ugc3VyZSBjb250YWluZXIgc3luYyBpbmNyZW1lbnRlZCBvbiBzb3J0LCBpbnNlcnQgYW5kIHJlbW92ZQoKMjAxMC0wNC0yOCAwNzoyMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYzoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZWZpbGUgZm9yIHRlc3QgdGFyZ2V0CgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIG1ha2UgdGhlIHRlc3Qgc3VpdGUgcnVuIG91dHNpZGUgdGhlIHNvdXJjZSBkaXJlY3RvcnkgYWdhaW4uCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBkZWFsIHdpdGggb3V0LW9mLXNvdXJjZSB0cmVlIGJ1aWxkaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RpbmcgdG8gY2hlY2sgY2VydGlmaWNhdGUgdG8gc2VjdXJpdHluYW1lIG1hcHBpbmdzIGFuZCBkZW5pYWxzCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjcmVhdGVkIGEgbWFwcGVkIHVzZXIKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIGdlbmVyYXRlIG9iamVjdCBjb2RlIHdpdGggLWcgZGVidWdnaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBtb3JlIGFjY3VyYXRlIGN1cnJlbnQgQVBJIHVzYWdlIGZvciBzY2FwaSBjb2RlCgoyMDEwLTA0LTI3IDIxOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjZXJ0IGluaXQgZHVwbGljYXRlIGNhbGwgY2hlY2sKCjIwMTAtMDQtMjcgMjA6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb252ZXJ0IHVzZXIgZmluZ2VycHJpbnQgdG8gbG93ZXIgYW5kIHN0cmlwIGNvbG9uczsgYWRkIGV4dGVybgogICBwcm90b3R5cGUKICAgZm9yIGNlcnQgaW5pdCBzbyB3ZSBkb24ndCBuZWVkIGhlYWRlcgoKMjAxMC0wNC0yNyAyMDoxNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2VwYXJhdGUgY2VydCBpbml0IGFuZCBjZXJ0IGxvYWRpbmc7IGFkZCBjZXJ0U2VjTmFtZSBjb25maWcgdG9rZW4KCjIwMTAtMDQtMjcgMDM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1lcmdlIE5FVFNOTVBfRlVOQ1RJT04gYW5kICFORVRTTk1QX0ZVTkNUSU9OIGFzc2VydCBjYXNlcwoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG90cyBvZiBuZXcgY2VydCBmdW5jdGlvbmFsaXR5CiAgIC0gYWRkIHNzbCBmdW5jcyBmb3IgY2VydCBleHRlbnNpb25zIGFuZCBzc2wgY2VydCBjaGFpbnMKICAgLSBmdW5jdGlvbnMgYW5kIG5ldyBuZXRzbXBfY2VydF9tYXAgc3RydWN0IGZvciBsb29raW5nIHVwIGNlcnQKICAgbWFwcGluZ3MKICAgLSBhZGQgY2VydGlmaWNhdGUgbWFwcGluZyBmb3Igc2VjbmFtZQogICAtIGFkZCBjb2RlIHRvIGJ1aWxkIGNlcnQgY2hhaW5zCiAgIC0gYWRkIHN1YmplY3QgdG8gY2VydCBpbmRleCBjYWNoZQogICAtIHJlYnVpbGQgaW5kZXhlcyBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleAogICAtIHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydCBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBjZXJ0IHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgbW92ZSBpcHY2IHNwZWNpZmljIHZhciBkZWNsIGluc2lkZSBpZmRlZgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIENIQU5HRVM6IGFnZW50OiB0ZGF0YSBoZWxwZXIgbm93IHNhdmVzIGZsYWdzIHBhc3NlZCBkdXJpbmcKICAgY3JlYXRpb247IGFkZCB0ZGF0YQogICBmbGFnIHRvIE5PVCBjcmVhdGUgdGhlIHRhYmxlIGNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIGludGVyZmFjZSBmb3IgZHVwbGljYXRpbmcgYSBjb250YWluZXIKICAgQ0hBTkdFUzogc25tcGxpYjogY29udGFpbmVyIGNoYW5nZXM6IGFkZCBmbGFncyBmaWVsZCB0byBjb250YWluZXIKICAgbWV0YS1kYXRhOwogICBjaGcgYmluYXJ5X2FycmF5IGNvbnRhaW5lciB0byB1c2UgY29udGFpbmVyIG1ldGEtZGF0YSBmbGFncwoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgd2hlbiB0aGUgdHJhbnNwb3J0IGlzIGNvbmZpZ3VyZWQgd2l0aAogICBhIHJlbW90ZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludCB0aGUgY29ubmVjdGlvbiBpcyBkZW5pZWQKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIGFkZGVkIHRlc3RzIGZvciAtVCBmbGFnIHVzYWdlIGFuZCBpbnZhbGlkIHVzZXIgdXNhZ2UKCjIwMTAtMDQtMjYgMjA6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZDoKCiAgIGhhdmUgdGhlIGFsaWFzIHRyYW5zcG9ydCBzb3VyY2UgdGhlIHJpZ2h0IFN2M2NvbmZpZyBmaWxlCgoyMDEwLTA0LTI2IDIwOjUwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICB3b3JraW5nIHN1cHBvcnQgb2YgVExTL0RUTFMgdGVzdGluZyBpbmNsdWRpbmcgY2VydCBnZW5lcmF0aW9uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaG9ub3IgdGhlIGNvbmZpZyBkaXIgaWYgc3BlY2lmaWVkIHZpYSAtQwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggcmVhbGxvYyBjYWxsIGZvciBidWZmZXJlZCBwYWNrZXRzCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcHJvcGVyIHNraXAgb3V0cHV0IGZvciByZXBvcnRpbmcgcmVhc29uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBhZnRlciBiYWNrc2xhc2ggaW4gbWFjcm8KCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LnByaXYsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLnByaXY6CgogICB0ZXN0cyBmb3IgbWluaW1hbGx5IHRlc3RpbmcgYWxsIHRoZSB0cmFuc3BvcnRzCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRToKCiAgIG1pbmltYWxseSBkb2N1bWVudCBuZXcgUlVORlVMTFRFU1RTIHNjcmlwdAoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL1QyLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwgICAKICAgICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzLCAgIAogICAgICB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLCB0ZXN0aW5nL21pc2N0ZXN0LmMsICAKICAgICAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBkZWxldGVkIG9sZCBmaWxlcyBub3Qgd29ydGggcmVzdG9yaW5nCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdGVzdGxpc3Q6CgogICByZW1vdmUgb2Jzb2x1dGUgdGVzdCBsaXN0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmM6CgogICBhIGhhc2gtdGVzdGluZyAuYyBmaWxlIEkgaGFkIGxheWluZyBhcm91bmQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHRlc3RhbGwgdGFyZ2V0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2MywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBtb3ZlIG9sZCBDLWNvZGUgdGVzdHMgaW4gcGxhY2UKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZDoKCiAgIHNraXAgc29sYXJpcyBjb21tZW50cwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnZvY2F0aW9uIG9mIFJVTkZVTExURVNUUwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MmNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2FnZW50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlndHJhcGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50LCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQsIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI2c25tcHYzZ2V0U0hBQUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybCwgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIE5FV1M6IHRlc3Rpbmc6IEJyYW5kIG5ldyB0ZXN0IHN1aXRlIGRlc2lnZW5lZCB0byBldmVudHVhbGx5IHRlc3QKICAgbW9yZSBmdW5jdGlvbmFsaXR5LCBwcm92aWRlIGZvciBzdXBwb3J0IG9mIHVuaXQtdGVzdHMgYW5kIHN1cHBvcnQKICAgb2YgQVBJIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcmVtb3ZlZCBhIGRlYnVnZ2luZyBlY2hvCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbW9yZSBidWcgZml4ZXMgZm9yIHN0cmluZyBzZWFyY2hlcwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGFkZGVkIGEgbmV3IG1hY3JvIHRvIGNoZWNrIGEgdHJhcGQgY291bnQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICB1c2UgaW5kaXZpZHVhbCBvdXRwdXQgZmlsZXMgYW5kIGZpeCBzb21lIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtYWRlIGV4aXN0aW5nIHRlc3Qgc3VpdGUgcHV0IG91dCBUQVAgb3V0cHV0CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2Z1bGx0ZXN0cywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGJlZ2lubmluZyBvZiBtb3ZpbmcgVUNEIHRlc3Qgc3VpdGUgaW50byBhIGxhcmdlciBzdWJkaXJlY3RvcnkKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWxsb3cgcnVubmluZyB0ZXN0cyB0aGF0IG1hdGNoIGEgcmVnZXhwCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1bW1hcml6ZSB0ZXN0cyB0aGF0IGZhaWxlZAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgcnVuXyBzY3JpcHRzIGZvciBleGVjdXRpbmcgY2VydGFpbgogICB0eXBlcwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWRlIHRoZSBidWlsZC1zY3JpcHQtY2hlY2sgcm91dGluZSBnZW5lcmljCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgZm9yIGJ1aWxkIHNjcmlwdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcHJvdmlkZSBpbmZyYXN0cnVjdHVyZSBmb3IgYnVpbGRpbmcgYW5kIHJlbmFtaW5nIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1vcmUgdGVzdCBpbmZyYXN0cnVjdHVyZSBzZXR1cAoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IHRoZSBrZXl3b3JkICdhbGwnCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSBncm91cCBnYXRoZXJpbmcKCjIwMTAtMDQtMjYgMjA6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRpbm8gb2YgYSBuZXcgdGVzdGluZyBoYXJuZXNzCgoyMDEwLTA0LTI1IDE3OjM3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMTAtMDQtMjUgMTU6MjEgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogcmV2ZXJ0ZWQgYSByZWNlbnQgdW5uZWNlc3NhcnkgbW9kaWZpY2F0aW9uLgoKMjAxMC0wNC0yNSAxNTowMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIG11bHRpcGxlIC0tc2FuIGFyZ3MsIGNoZWNrIGVycm9yIGNvZGVzIG9uIG9wZW5zc2wgY21kcyBhbmQKICAgZGllIG9uIGZhaWx1cmUKCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiByZXN0b3JlZCBjb25zaXN0ZW5jeSBiZXR3ZWVuIHdvcmtzcGFjZS1idWlsZCBhbmQgYmF0Y2gKICAgYnVpbGQgLS0gbWFkZSBzdXJlIHRoYXQgbm90aWZpY2F0aW9uX2xvZy5jIGlzIG9ubHkgaW5jbHVkZWQgaW4KICAgdGhlIG5ldHNubXBtaWJzIHByb2plY3QuCgoyMDEwLTA0LTI1IDEzOjU4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogZml4ZXMgZm9yIHJlY2VudGx5IGludHJvZHVjZWQgYnVpbGQgYnJlYWthZ2UuCgoyMDEwLTA0LTI1IDEzOjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTM6NDggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvY2xvc2VkaXIuYywgc25tcGxpYi9vcGVuZGlyLmMsICAKICAgICAgIHNubXBsaWIvcmVhZGRpci5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBXaW4zMiBNU1ZDIDYgbm9uLVNESyBidWlsZCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDQtMjUgMTM6NDIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgdHJhbnNmb3JtYXRpb24gcnVsZS4KCjIwMTAtMDQtMjUgMTI6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTWFkZSBpdCBhZ2FpbiBwb3NzaWJsZSB0byBkaXNhYmxlIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLIHdoZW4KICAgYnVpbGRpbmcgdmlhIHdpbjMyL2J1aWxkLmJhdC4KCjIwMTAtMDQtMjMgMTM6MTQgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIC0tc2FuIEROUzphLmIuYyBoYW5kbGluZywgaGVscCB0ZXh0IGZpeGVzLCBvdGhlciBidWcgZml4ZXMuCiAgIE5vdGUgbXVsdGlwbGUgLS1zYW4gbm90IHN1cHBvcnRlZCB5ZXQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYnVpbGQgdGhlIC5tYWRlIHZlcnNpb24gb2YgbmV0LXNubXAtY2VydAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kIGFmdGVyIG1vdmluZyBhbGwgdGhlIGZpbGVzIGFyb3VuZAoKMjAxMC0wNC0yMSAyMDoxNiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBidWlsZCB0cnVzdCBjaGFpbiBmb3IgY2xpZW50IGNlcnQ7IGFkZCBzdWJqZWN0IHRvIGluZGV4IGNhY2hlOwogICByZWJ1aWxkIGluZGV4ZXMKICAgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXg7IHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydFRvVFNOX2VudHJ5IHRvIGNlcnRfdXRpbCBoZWFkZXIKICAgLSBtb3ZlIGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKICAgLSBhZGQgbmV0c25tcF9vcGVuc3NsX2NlcnRfZHVtcF9leHRlbnNpb25zLAogICBuZXRzbm1wX29wZW5zc2xfY2VydF9pc3N1ZWRfYnkKCjIwMTAtMDQtMjEgMTY6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIHNpbmdsZS1kYXNoIC8gc25tcC5jb25mIC8gZG91YmxlLWRhc2ggcHJlY2lkZW5jZQoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0aGF0IHRoZSB0b2tlbnMgY2FuIGJlIHVzZWQgZm9yCiAgIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbnMgdG9vCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGZpbGUgbG9hZGluZyBvcmRlciBhbmQgaG93IHRvIHR1cm4gb2ZmIGhvc3Qtc3BlY2lmaWMKICAgY29uZmlnCgoyMDEwLTA0LTIxIDE1OjUyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogR2VuZXJpYyBob3N0LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc25tcC5jb25mIGZpbGVzCiAgIGFyZSBub3cgcmVhZC4gU2VlIHRoZSBIT1NULVNQRUNJRklDIEZJTEVTIHNlY3Rpb24gb2YgdGhlCiAgIHNubXAuY29uZiBtYW51YWwgcGFnZS4KCjIwMTAtMDQtMjAgMTI6NDQgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyOTcxMjcwOiByZWZ1c2UgdG8gcGFyc2UgQVNOLjEgdG9rZW5zCiAgIHdpdGggd3JvbmcgdHlwZSBmaWVsZC4KICAgVGhpcyBtYXkgeWllbGQgdG8gcHJvYmxlbXMgd2l0aCB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbnMgd2hpY2gKICAgbWF5IGRlcGVuZCBvbiBwYXJzaW5nIHVnbHkgQVNOLjEgZGF0YSAtIHdlJ2xsIHNlZS4uLgoKMjAxMC0wNC0yMCAwMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb21iaW5lIHJlbW90ZSBmaW5nZXJwcmludCBjaGVja2luZyBhbmQgY2hlY2sgYm90aCBzaWRlcwoKMjAxMC0wNC0yMCAwMDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBpZiB0aGUgcmVtb3RlIGZpbmdlcnByaW50IGlzIHNwZWNpZmllZCwgcmVxdWlyZSBhbiBleGFjdCBtYXRjaAoKMjAxMC0wNC0xOSAyMzo0NCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgYnVncywgZXNwZWNpYWxseSBpbiBvdXRwdXQgbWVzc2FnZXMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGRvY3VtZW50YXRpb24gYW5kIHByb3RvdHlwaW5nIG9mIG5lZWRlZCBSRkMgc3RlcHMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjb252ZXJ0IGlmIGVycm9yIGNoZWNrIHRvIHJldHVybiBpbW1lZGlhdGVseSBzbyBvdGhlciBjb2RlIGNhbiBiZQogICBvdXRkZW50ZWQKCjIwMTAtMDQtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIFJGQyB0ZXh0CgoyMDEwLTA0LTE4IDE1OjI1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi90cmFuc3BvcnRzLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluLgoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSBzZWN1cml0eU5hbWUgZnJvbSB0aGUgY2VydAoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGRvbid0IG5lZWQgdG8gc2V0IHRoZSBhY2NlcHQgc3RhdGUgZm9yIFRMUyAoanVzdCBEVExTKQoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgVExTIGNvbW1lbnQgZG9jdW1lbnRhdGlvbiBhbmQgc3RlcHMgdGFrZW4gZnJvbSB0aGUgUkZDCgoyMDEwLTA0LTE2IDEzOjU1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBudW1lcm91cyBmaXhlcywgbW9yZSB2ZXJib3NlIGRlZmF1bHQgb3V0cHV0LCBhZGRpdGl2ZSBzaG93IGZsYWdzLAogICBhcmJpdHJhcnkgY29uZmlnIHBhcmFtIGhhbmRsaW5nLCBiZXR0ZXIgaGVscCB0ZXh0CgoyMDEwLTA0LTE2IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGRvbid0IGRvdWJsZSBkZWNsYXJlIGEgc3RydWN0CgoyMDEwLTA0LTE2IDAzOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnQgdXRpbCBmaXhlcwogICAtIHJlbW92ZSB1bnVzZWQgdmFycyBhbmQgZHVwbGljYXRlIGNvZGUKICAgLSBjaGVjayBwcnQgYmVmb3JlIGZyZWUKICAgLSBuZXcgZnVuYyBmb3IgdHlwZSBmcm9tIGZpbGVuYW1lCiAgIC0gbmV3IGZ1bmN0aW9ucyBmb3IgZmluZGluZyBzdWJzZXRzIGZyb20gZmlsZW5hbWUKICAgLSBmaXggdHlwZXMgaW4ga2V5IHNlYXJjaCBmdW5jdGlvbiBidXQgdGhlbiBpZmRlZiBpZiAodW51c2VkCiAgIGZ1bmN0aW9uKQoKMjAxMC0wNC0xNSAyMjo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB1c2UgYSBzdHJ1Y3R1cmUgcmVmZXJlbmNlIHRvIHByZWRlY2xhcmUgdGhlIHN0cnVjdHVyZQoKMjAxMC0wNC0xNSAyMToyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBjb3JyZWN0IGRlY2xhcmF0aW9uIG9mIHRoZSBmX29wZW4gY29tbWFuZCBub3cgcmVxdWlyaW5nIHJldHVybmluZwogICBhIHRyYW5zcG9ydAoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjb25maWcgY29udGFpbmVyCgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZmluZ2VycHJpbnQgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGludG8gbmV3IHRscyBzdHJ1Y3R1cmUKICAgd2l0aGluIERUTFNVRFAgc28gcGVyLXRyYW5zcG9ydCBmaW5nZXJwcmludHMgY2FuIGJlIHNwZWNpZmllZAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXJseSBjaGVjayBmb3IgdGxzYmFzZSBwb2ludGVycyBpbiBkdGxzdWRwX3NlbmQoKQoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBncmVwIHRoZSB0cmFuc3BvcnQgbGlzdCBmb3IgVExTIG5vdCBqdXN0IERUTFMgZm9yIGNoZWNraW5nIGZvcgogICAtbHNzbAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGJ1ZyBmaXhlcyBhbmQgbWFkZSBUTFNUQ1Agd29yayB3aXRoIHRoZSAtVCBmbGFnCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtYWtlIHRoZSBmX29wZW4gY2FsbCBhc3NpZ24gdGhlIG5ldyB0cmFuc3BvcnQgcG9pbnRlciB0byB1c2UgKGFuZAogICBjaGVjayBpZiBOVUxMIGFzIGEgZmFpbHVyZSBjb25kaXRpb24KCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbiB3b3JrIG1vdmluZyBEVExTIGNvbmZpZyByb3V0aW5lIGluIHBsYWNlCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcGFzcyB0aGUgZW50aXJlIHRsc2Jhc2UgdG8gdGhlIGNsaWVudF9zZXR1cAoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIHNubXBsaWIvc25tcF9hcGkuYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdGFydGluZyB0aGUgc3RvcmluZyBvZiBjb25maWcgZGF0YSBpbnRvIHRoZSB0bHNiYXNlCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBjbGllbnQgc3NsIHNldHVwIHRvIGFsbG93IGZvciBkaXJlY3QgZmluZ2VycHJpbnQKICAgc3BlY2lmaWNhdGlvbiBvZiBteS90aGVpciBjZXJ0cwoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNwbGl0IFRMUyBpbnRvIGNyZWF0aW9uL2Nsb3NlIGZ1bmN0aW9ucyBmb3IgZXZlbnR1YWwgY29uZmlnCiAgIHBhc3Npbmcgc3VwcG9ydAoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhc3MgdHJhbnNwb3J0IGNvbmZpZyBkYXRhIHRvIHRoZSB0cmFuc3BvcnQgZl9jb25maWcoKSBmdW5jdGlvbgoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV0dXJuIE5VTEwgb24gdHJhbnNwb3J0IGNvbmZpZyBlcnJvcgoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiAtVCBjb21tYW5kIGxpbmUgZmxhZyBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUKICAgdHJhbnNwb3J0cwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2hlY2sgdHJhbnNwb3J0IE5VTExuZXNzIGJlZm9yZSB1c2luZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBiZWdpbm5pbmcgb2Ygd29yayB0byBtYWtlIHRyYW5zcG9ydHMgY29uZmlndXJhYmxlIHdpdGgKICAgc3VwcGxpbWVudGFsIGNvbmZpZ3VyYXRpb24gZGF0YSBhbmQgbmV3IGNhbGxzIGZvciBmX29wZW4vZl9jb25maWcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCB0ZXh0IGluIGNvbW1lbnRzIGZyb20gZnV0dXJlIFJGQyB0byBkb2N1bWVudCB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDQtMTUgMTg6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFyayBwZW0gdy9rZXkgYXMgaWRlbnRpdHk7IHR3ZWFrIHBhcnRuZXIgZGVidWc7IGNvbXBhcmUgZmlsZQogICBjdGltZSBhZ2FpbnN0IGluZGV4IHRvbwoKMjAxMC0wNC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgbG9jYWwgc3BhY2UgdG8gcmVmb3JtYXQgY2VydCBmb3Igc2VhcmNoCgoyMDEwLTA0LTE1IDE2OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUGFydGlhbGx5IHJldmVydGVkIHIxODQ5NjoKICAgLSBDb21tZW50ZWQgb3V0ICNkZWZpbmUgTkVUU05NUF9VU0VfRExMIGFnYWluIGluIGZpbGUKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggb24gdGhlIDUuNCBicmFuY2guIFRoaXMgY2hhbmdlCiAgIGhhZCBiZWVuIGNvbW1pdHRlZCB1bmludGVudGlvbmFsbHkuCiAgIC0gUmUtZW5hYmxlZCAjZGVmaW5lCiAgIFVTSU5HX05PVElGSUNBVElPTl9MT0dfTUlCX05PVElGSUNBVElPTl9MT0dfTU9EVUxFIGluCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmggb24gdGhlIHRydW5rIGFuZCB0aGUKICAgVjUuNSBicmFuY2guIFdoaWxlIGJ1aWxkLmJhdCByZXBvcnRzIGFuIGVycm9yIG9uIGVhcmxpZXIgYnJhbmNoZXMKICAgd2l0aCB0aGlzIHN5bWJvbCBlbmFibGVkLCB0aGVyZSBpcyBubyBzdWNoIHByb2JsZW0gb24gdGhlIHRydW5rCiAgIG9yIFY1LjUgYnJhbmNoZXMgYW5kIGhlbmNlIHRoZXJlIHdhcyBubyByZWFzb24gdG8gZGlzYWJsZSB0aGlzCiAgIHByZXByb2Nlc3NvciBzeW1ib2wuCgoyMDEwLTA0LTE1IDE1OjA4ICBtYXJ6CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldC1zbm1wLWNlcnQgdG8gbWFrZS9pbnN0YWxsCgoyMDEwLTA0LTE1IDEwOjUyICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0OgoKICAgVGVzdHMgbm90IHdvcmtpbmcgZm9yIFRDUCBzaG91bGQgYmUgc2tpcHBlZCBhbHNvIGZvciBUQ1A2LgoKMjAxMC0wNC0xNCAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggdmFycy90ZXh0IGZyb20gY3V0LW4tcGFzdGUKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGNvbW1lbnRzCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGxvdHMgb2YgY2VydCB1cGRhdGVzCiAgIC0gY2hhbmdlIGNlcnQgc3ViZGlyIHNlYXJjaGluZyB0byBtYXRjaCBuZXQtc25tcC1jZXJ0CiAgIC0gdXBkYXRlIGtleSB0eXBlIGhhbmRsaW5nCiAgIC0gaWdub3JlIHdvcmxkIHJlYWRhYmxlIGtleXMKICAgLSBrZWVwIHR5cGUgaW4gaW5kZXhlcwogICAtIHR3ZWFrIGNlcnQva2V5IHByaW50IGZvcm1hdAoKMjAxMC0wNC0xNCAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWtlIG5ldC1zbm1wLWNlcnQgZXhlY3V0YWJsZQoKMjAxMC0wNC0xNCAxMzoxMiAganNhZnJhbmVrCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIEZpeGVkIHRlc3RzICdQcm94eSBHRVQvU0VUIHN1cHBvcnQnIGFuZCAnU05NUHYyIHZhY20gZGVuaWFsCiAgIHN1cHBvcnQnIHdpdGggdWRwNiB0cmFuc3BvcnQuCgoyMDEwLTA0LTE0IDA5OjQ3ICBkdHMxMgoKICAgKiAgd2luMzIsIHdpbjMyL2Jpbiwgd2luMzIvZGlzdCwgd2luMzIvZGlzdC9odG1saGVscCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIsIHdpbjMyL2Rpc3Qvc2NyaXB0cywgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgCiAgICAgICAgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgd2luMzIvbGliaGVscGVycywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbG9jYWwsIHdpbjMyL25ldC1zbm1wLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudCwgd2luMzIvbmV0LXNubXAvbGlicmFyeSwgd2luMzIvbmV0c25tcG1pYnMsICAKICAgICAgIHdpbjMyL3NubXBidWxrZ2V0LCB3aW4zMi9zbm1wYnVsa3dhbGssIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEsIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGdldCwgd2luMzIvc25tcGdldG5leHQsICAKICAgICAgIHdpbjMyL3NubXBuZXRzdGF0LCB3aW4zMi9zbm1wc2V0LCB3aW4zMi9zbm1wc3RhdHVzLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUsIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcCwgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdXNtLCB3aW4zMi9zbm1wdmFjbSwgICAKICAgICAgd2luMzIvc25tcHdhbGs6CgogICBEb24ndCB0cnkgdG8gU1ZOLW1hbmFnZSB0aGUgV2luZG93cyBiYXRjaCBidWlsZCBpbmZyYXN0cnVjdHVyZQogICAoYWRkIHJlbGVhc2UsIGRlYnVnLCBNYWtlZmlsZSB0byB0aGUgcHJldmlvdXMgaWdub3JlIGxpc3QpCgoyMDEwLTA0LTE0IDA4OjE2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBXaW5kb3dzIGJhdGNoIGJ1aWxkIHVzaW5nIFZpc3VhbCBTdHVkaW8gd2l0aCBkeW5hbWljIGxpbmtpbmcuCiAgIFVucmVmZXJlbmNlZCBzeW1ib2wgaW50cm9kdWNlZCBieSBTVk4gcmV2aXNpb24gMTgzOTMKCjIwMTAtMDQtMTQgMDg6MDggIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogRml4IGJhdGNoIGJ1aWxkIHVzaW5nIHJlY2VudCB2ZXJzaW9ucyBvZiBWaXN1YWwKICAgU3R1ZGlvLgogICBQYXJ0aWFsIGJhY2sgcG9ydCBvZiBTVk4gcmV2aXNpb25zIDE3NTczIGFuZCAxNzY5Ni4KCjIwMTAtMDQtMTQgMDE6NDcgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBwZXJtcyBvbiBjcmVhdGVkIGZpbGVzIC1ydy0tLS0tLS0sIHVtYXNrKDA3NykKCjIwMTAtMDQtMTMgMjI6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgZml4IHBlcm1zLCBhZGQgLS1jbi8tYywgYmV0dGVyIGRhdGVzIGRlZmF1bHRzLCBzbm1wLXRscyBvcmdfdW5pdCwKICAgYWRkZWQgaW5pdGlhbCBkdW1teSBjb25maWcgZmlsZQoKMjAxMC0wNC0xMyAxNDoyMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4ZXMgZm9yIHNob3cgY21kcywgY21kbGluZSwgaGVscAoKMjAxMC0wNC0xMyAwMjoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgc3VwcG9ydCBmb3Iga2V5K2NlcnQgaW4gLnBlbSBmaWxlczsgbWlzYyB0d2Vha3MKCjIwMTAtMDQtMTAgMjM6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYnVpbGQgZml4IGZvciBDODkgY29tcGlsZXJzIChlLmcuIG9uIEhQLVVYIDEwLjIwKQoKMjAxMC0wNC0xMCAyMjoyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgaW5pdGlhbCBjdXQgYXQgdGxzdG1DZXJ0VG9UU05UYWJsZQoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGFkZCBkZWZpbmUgb2YgbWF4IGhhc2ggY29uc3RhbnQKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVzZSBjZXJ0IHV0aWwgY2hlY2sgZm9yIGZpbmdlcnByaW50IGxlbi9hbGdvcml0aG0KCjIwMTAtMDQtMTAgMTI6NTkgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHNob3cgY21kIGZpeGVzCgoyMDEwLTA0LTA5IDIxOjMyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmYWlybHkgZnVuY3Rpb25hbCAobm9uLWludGVyYWN0aXZlKSAtIGJlIGl0IGtub3duOiB0aGVyZSBhcmUgYnVncwoKMjAxMC0wNC0wOSAyMDo1NCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oOgoKICAgbWVyZ2Ugc29tZSB0YWJsZV9kYXRhLmNvbmYgY2hhbmdlczsgcmVtb3ZlIHVudXNlZCBjb2RlIGFuZCBhCiAgIGJ1bmNoIG9mIHZlcmJvc2UgY29tbWVudHMKCjIwMTAtMDQtMDggMTQ6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRoCgoyMDEwLTA0LTA4IDEwOjU1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDaGVjayByZXN1bHRzIG9mIGNhbGxzIHRvIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZSBhbmQgbG9nCiAgIGFuIGVycm9yLgogICBUaGlzIGFsbG93cyB1c2VycyB0byByZWxhdGUgdmFyaW91cyAnYzY0IDMyIGJpdCBjaGVjayBmYWlsZWQnCiAgIGVycm9ycyB3aXRoIHNwZWNpZmljIGNvdW50ZXIuCgoyMDEwLTA0LTA4IDAxOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV3IGZ1bmN0aW9uCgoyMDEwLTA0LTA4IDAxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHRyYW5zbGF0ZSBOT1NVQ0gqL0VORE9GTUlCIGVycm9ycyBkdXJpbmcgUkVTRVJWRTEKICAgdG8gTk9DUkVBVElPTgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIE5FV1M6IHNubXBkOiB0YWJsZV9kYXRhL3RkYXRhIG5leHQgaGFuZGxlciB3aWxsIG5vdCBiZSBjYWxsZWQKICAgZHVyaW5nIGdldAogICBwcm9jZXNzaW5nIGlmIG5vIHZhbGlkIHJvd3MgYXJlIGZvdW5kIGZvciB0aGUgaGFuZGxlcgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIE5FV1M6IHNubXBkOiBhZ2VudCB3aWxsIG5vIGxvbmdlciBjYWxsIHRhYmxlIGhhbmRsZXJzIGlmIGEgc2V0CiAgIHJlcXVlc3QgZm9yCiAgIHRoZSBoYW5kbGVyIGhhcyBpbnZhbGlkIGluZGV4ZXMKICAgQ0hBTkdFUzogc25tcGQ6IGRvbid0IGNhbGwgY2xlYW51cCBvbiBmaXJzdCByZXF1ZXN0IG9uIGJhZAogICBpbmRleGVzLiBpbnN0ZWFkLAogICBzZXQgYWN0dWFsIGVycm9yIGxhdGVyLCBhbmQgZnJlZSByZXF1ZXN0IGRhdGEgc2V0cyBvbiBmaXJzdAogICByZXF1ZXN0IGZvciBzZXRzCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGZpbmdlcnByaW50IHZhcmJpbmQKCjIwMTAtMDQtMDcgMjI6NTYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU29sYXJpcyB0ciBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyIHJhbmdlcyByZWxpYWJseSAoc2VlIHRoZQogICBhdXRvY29uZiBtYW51YWwpLCBjaGFuZ2UgdGhlIGV4cHJlc3Npb24gdG8gb25lIHRoYXQgaXMgc2ltcGxlCiAgIGVub3VnaCB0byBiIHN1cHBvcnRlZC4KCjIwMTAtMDQtMDcgMTQ6MDUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluc2VydCB0aGUgY2FjaGUgaGVscGVyIGNvcnJlY3RseS4KCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbnMgdG8gcmVtb3ZlIGxpc3Qvcm93IGRhdGEgZnJvbQogICByZXF1ZXN0IGxpc3QKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBpZmRlZiB2YXIgZGVjbCBmb3IgdmFycyBvbmx5IHVzZWQgaW4gbGF0ZXIgaWZkZWYgYmxvY2sKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIFJvd1N0YXR1cyBhbmQKICAgU3RvcmFnZVR5cGUgdmFyYmluZHMKICAgLSBhbHNvIHJlbW92ZSBzb21lIGR1cGxpY2F0ZSBjb2RlIGFuZCBmaXggY29tbWVudHMgaW5kZW50IG1hbmdsZWQKCjIwMTAtMDQtMDcgMTA6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGUsIG1hbi9taWIyYy11cGRhdGUuMS5kZWY6CgogICB1cGRhdGUgbWFuIHBhZ2U7IGZpeCBzaGVsbCByZWRpcmVjdDsgY3JlYXRlIGV4YW1wbGUgcmNmaWxlIGlmCiAgIG1pc3NpbmcKCjIwMTAtMDQtMDcgMDc6MTUgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgVXNlIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORyBpbnN0ZWFkIG9mIERJU0FCTEVfTUlCX0xPQURJTkcKCjIwMTAtMDQtMDcgMDA6MzggIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogT25seSBlbmFibGUgaG9zdFN3SW5zdCBycG0gc3VwcG9ydCBvbiBsaW51eCBob3N0cwogICB3aXRoIGxpYnJwbS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBub24tcnBtIGxpbnV4CiAgIGRpc3RyaWJ1dGlvbnMuCgoyMDEwLTA0LTA3IDAwOjE0ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlIHRoZSB0ZXN0IHN1aXRlIHRvIHdvcmsgZXZlbiBpZiBtaWIKICAgbG9va3VwIGlzIGRpc2FibGVkLgoKMjAxMC0wNC0wNyAwMDoxMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzY6CgogICBDaGVjayBmb3IgY29tMnNlYzYsIG5vdCBjb20yc2VjLgoKMjAxMC0wNC0wNiAyMjo1MSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBNb3ZlIGRpcmVjdG9yeSBjcmVhdGlvbiBiZWZvcmUgdGhlIGRpcmVjdG9yaWVzIGFyZSB1c2VkLgoKMjAxMC0wNC0wNiAxMTowMyAgZHRzMTIKCiAgICogRkFROgoKICAgUHl0aG9uIGlzIGFwcGFyZW50bHkgY2xpZW50LXNpZGUgb25seS4KCjIwMTAtMDQtMDYgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgYmVmb3JlIGNoYW5naW5nIFVJRAogICAod2hpY2ggcHJvYmFibHkgaW52b2x2ZXMgZ2l2aW5nIHVwIHByaXZpbGVnZXMpCgoyMDEwLTA0LTA2IDA4OjU3ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBEb2N1bWVudCBsYXJnZS1kaXNrIHN0YXRpc3RpY3MgYXMgbGF0Y2hpbmcgYXQgMlRiIChyYXRoZXIgdGhhbgogICB3cmFwcGluZykuCgoyMDEwLTA0LTA2IDAxOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMsIG1hbi9taWIyYy4xLmRlZjoKCiAgIE5FV1M6IG1pYjJjOiBtaWIyYyBjYW4gbm93IG9wdGlvbmFsbHkgcnVuIHNlZCBvbiBnZW5lcmF0ZWQgY29kZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29udmVydCBDKysgY29tbWVudHMgdG8gQyBjb21tZW50cwoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBwdHIgY2hlY2sgYmVmb3JlIHBydCB1c2UKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZpbGVuYW1lIHRvIGRlYnVnIG9uIG5ldyBjZXJ0czsgbWFrZSBzdGF0aWMgZnVuYyB0byByZXR1cm4KICAgbW9kZSBuYW1lcwoKMjAxMC0wNC0wNiAwMDo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhbGxvdyBhIGZvdW5kIGZpbmdlcnByaW50IHNlbGYtc2lnbmVkIGNlcnQgZm9yIG5vdzsgZXZlbnR1YWxseQogICBuZWVkIHRvIHJlc3BlY3QgdGhlIE1JQiBjb25maWcgdGFibGUKCjIwMTAtMDQtMDYgMDA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbWtkaXIgc25tcGxpYi90cmFuc3BvcnRzIHdoZW4gRE5FIGZvciBidWlsZGluZyBvdXRzaWRlIHRoZSBzb3VyY2UKICAgZGlyCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZXJyb3IgY29kZSBjbGVhbnVwIGZvciB0bHNiYXNlX3dyYXB1cF9yZWN2CgoyMDEwLTA0LTA1IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW9yZSBiZXR0ZXIgZXJyb3IvZGVidWcgY29kZXMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBmdXR1cmUtUkZDIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbjsgdXNlCiAgIGZsYWdzIGZvciBzZXJ2ZXIvY2xpZW50IHNwZWNpZmljYXRpb24gZm9yIGV4cGFuc2lvbgoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgdXNhZ2UgY29uc3RyYWludHMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIGZ1bmN0aW9uIHByb3RlY3Rpb24gbG9naWMgaW4gYSB0b3AtbGV2ZWwgY2hlY2sKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IGluaXQgb3JkZXJpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtdiB0bHNiYXNlIGluaXQgZnVuY3Rpb24gdG8gYSBwcm9wZXIgY3RvciBmb3IgYXV0by1jYWxsaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGdlbmVyYXRlIHRoZSB0cmFuc3BvcnQgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gbGlzdAogICBkeW5hbWljYWxseSBhbmQgdXNlIGl0CgoyMDEwLTA0LTAyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogbW92ZWQgdHJhbnNwb3J0IGNvZGUgaW50byBhIHNlcGFyYXRlIHN1YmRpcmVjdG9yeSBpbgogICBzbm1wbGliCgoyMDEwLTA0LTAyIDA5OjAyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYzoKCiAgIERvIG5vdCBhdHRlbXB0IHRvIGNoZWNrIHNpemVvZiB2b2lkIHRvIG9idGFpbiB0aGUgYW1vdW50IG9mCiAgIG1lbW9yeSB0byBjb3B5LgoKMjAxMC0wNC0wMSAxNzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgaW5zdGVhZCBvZiBmd2QgZGVjbGFyZXMsIHJlcXVpcmUgb3RoZXIgaGVhZGVyCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvdXRkYXRlZCBkZWJ1ZyBtc2cKCjIwMTAtMDQtMDEgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY2VydGFwaSB0byBmaW5kIGNlcnRzL2tleXMKCjIwMTAtMDQtMDEgMTQ6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWdpc3RlciBleHRyYVg1MDlTdWJEaXIgdG9rZW4KCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDEzOjEzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgYWRkIHBlcnNpc3RlbnQgc3RvcmFnZTsgdG9rZW4gZm9yIGNyZWF0aW5nIGVudHJpZXMgaW4gc25tcGQuY29uZjsKICAgZml4IGluZGV4CgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IGNlcnRpZmljYXRlIGFwaSB0byBzdXBwb3J0IHRscy9kdGxzCgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogYWRkIGZ1bmN0aW9ucyB0byBnZXQgZmluZ2VycHJpbnQgZnJvbSBjZXJ0IGFuZCBsb2cKICAgb3BlbnNzbCBlcnJzCgoyMDEwLTA0LTAxIDEyOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCB0eXBvCgoyMDEwLTA0LTAxIDEwOjMzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDQtMDEgMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogdGFibGVfZGF0YSB0ZW1wbGF0ZSBlbmhhbmNlbWVudHMKICAgLSBhZGQgZXJyb3IgY2hlY2tzIGR1cmluZyB0YWJsZSBpbml0CiAgIC0gY3JlYXRlIGNhY2hlIGVhcmxpZXIgc28gd2UgY2FuIGJhaWwgb24gZmFpbHVyZQogICAtIGFkZCBvcHRpb24gdG8gY3JlYXRlL2RlbGV0ZSByb3cgdy9vdXQgYWRkaW5nL3JlbW92aW5nIGZyb20KICAgY29udGFpbmVyCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgYWRkIGhlbHBmdWwgcGFyYW0gbmFtZXMgYXMgaGludHMgaW4gcHJvdG90eXBlCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgc2VhcmNoIGZvciBjb250YWluZXIgc3BlY2lmaWMgY29udGFpbmVyIGJlZm9yZSBnZW5lcmljCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBORVdTOiBzbm1wbGliOiBlbmhhbmNlIGZpbGUgdXRpbHMgYW5kIGRpciB1dGlscwogICAtIGFkZCBvcHRpb25hbCBzdGF0cyBzdHJ1Y3QgdG8gbmV0c25tcF9maWxlCiAgIC0gZ2VuZXJhbGl6ZSBkaXIgY29udGFpbmVyIGZpbHRlciwgYWRkIGNvbnRleHQgdG8gY2FsbGJhY2sKICAgLSBhZGQgb3B0aW9uIHRvIHN0b3JlIG5ldHNubXBfZmlsZXMgKHcvc3RhdHMpIGluIGNvbnRhaW5lcgogICBpbnN0ZWFkIG9mIGp1c3QgbmFtZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHByb3RvdHlwZSB0byBoZWFkZXI7IGNoZWNrIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZwoKMjAxMC0wMy0zMSAxNTozNCAganNhZnJhbmVrCgogICAqICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC1icmlkZ2UtbWliLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9zbm1wLWJyaWRnZS1taWIuMSwgbWlicy9CUklER0UtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9NYWtlZmlsZS5taWI6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMjk1MjcwODogZnJvbSBKZW5zIE9zdGVya2FtcDogQWRkZWQgUGVybAogICBpbXBsZW1lbnRhdGlvbiBvZiBCUklER0UtTUlCCgoyMDEwLTAzLTMxIDAyOjEyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3BlciBwYWNrZXQgbGFiZWxpbmcgZm9yIERUTFNVRFAKCjIwMTAtMDMtMzEgMDI6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNvbW1vbiBjb250ZXh0IGNyZWF0aW9uIGNvZGUKCjIwMTAtMDMtMzAgMjM6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIFRMUyBtZXRob2QgdG8gVExTdjEgZnJvbSBTU0x2MjMKCjIwMTAtMDMtMzAgMjM6MjMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBtb3JlIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5IGludG8gdGhlIFRMUyBiYXNlCgoyMDEwLTAzLTMwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1pbm9yIFRMUyBjb2RlIGNsZWFudXAKCjIwMTAtMDMtMzAgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJld29yayBpZigpIHdyYXBwaW5nIGZvciBsZXNzIGNvbmZ1c2lvbiBpbiBlcnJvciBoYW5kbGluZwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29kZSBjb25zb2xpZGF0aW9uIGluIHN0YXJ0X25ld19jYWNoZWRfY29ubmVjdGlvCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWUgZ2VuZXJpYyAnYmlvJyBwb2ludGVyIHRvICdyZWFkX2JpbycgZm9yIGJldHRlciByZWFkYWJpbGl0eQoKMjAxMC0wMy0zMCAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBidWZmZXJlZCBkYXRhIGNyZWF0aW9uIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlCgoyMDEwLTAzLTMwIDE3OjUyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgZ2VuIHdyYXBwZXIgc2NyaXB0IC0gbm90IHdvcmtpbmcKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsZWFuIHVwIGVycm9yIG91dHB1dCBzbyBpdCBkb2Vzbid0IHJlcG9ydCB3YW50X3JlYWQgYW5kCiAgIHdhbnRfd3JpdGUgZXJyb3JzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWluZyBvZiBzZW5kaW5nIGZ1bmN0aW9uIGZvciBjbGFyaXR5IGFuZCBjaGVjayBvbmUgbW9yZQogICBsb2NhdGlvbiBmb3IgbmVlZGVkIG91dGdvaW5nIHBhY2tldHMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIGR0bHN1ZHAgdHJhY2luZyB0b2tlbnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDSEFOR0VTOiBhZGRlZCBhIG5ldyBERUJVR1RSQUNFVE9LKCkgbWFjcm8KCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJldHRlciBjb21tZW50cyBhbmQgbW9yZSB3b3JrIG9uIHNlbmRpbmcgYnVmZmVyZWQgZGF0YSBpbiB0aGUKICAgcmlnaHQgc3BvdHMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFyZ3VtZW50cyB0byBnZXRfY29tbW9uTmFtZQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIG9mIGNhY2hpbmcgb2YgcGFja2V0cyBiZWZvcmUgdGhleSBjYW4gYmUgc2VudCB2aWEgRFRMUwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgaGFuZGxlIFNTTF9XQU5UX1JFQUQvV1JJVEUgYmV0dGVyOyBzdGlsbCBuZWVkIHRvIGJ1ZmZlciBvdXRnb2luZwogICB3cml0ZSBkYXRhCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtaW5vciBjaGFuZ2UgdG8gb3V0cHV0IGVycm9yIHByaW50aW5nCgoyMDEwLTAzLTI5IDE1OjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbWF0Y2hpbmcgVkFDTSBlbnRyaWVzLgogICAoVXNlIHRoZSAiYmVzdCIgbWF0Y2gsIHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvbmUpLgogICBSZXBvcnRlZCBieSBBZGFtIExld2lzLgogICBOb3RlIHRoYXQgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgdGhlIGJlaGF2aW91ciBvZgogICBleGlzdGluZyBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9ucy4KCjIwMTAtMDMtMjkgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OmdldFZhbHVlKCk6IGRvbid0IHJldHVybgogICBhIHBvaW50ZXIgdG8gYSBidWZmZXIgb24gdGhlIHN0YWNrLiBIb3cgY2FuIHRoaXMgaGF2ZSB3b3JrZWQKICAgcmVsaWFibHkgPz8KICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpzZXRWYWx1ZSgpLAogICBBU05fQ09VTlRFUjY0OiBmaXhlZCBidWcgdGhhdCBjb3VsZCBjYXVzZSB0aGlzIG1ldGhvZCB0byBmYWlsCiAgIGV2ZW4gd2hlbiBhIHZhbGlkIG51bWJlciB3YXMgcHJvdmlkZWQuCgoyMDEwLTAzLTI5IDE1OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhZ2VudCBjcmFzaCB3aGVuIHNlbmRpbmcgZW5jcnlwdGVkIFNOTVB2MwogICB0cmFwcy4KICAgUmVwb3J0ZWQgYnkgU3Jpa2FwaWxhbiBHYW5kaGkKCjIwMTAtMDMtMjkgMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDYXRjaCBzdGRlcnIgb24gV2luZG93cyB0b28uCgoyMDEwLTAzLTI5IDExOjQ4ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTAzLTI5IDExOjE5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBkZXN0cm95aW5nIGEKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBmYWlsdXJlIG9mCiAgIGNyZWF0aW5nIGEgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgdGhlCiAgIE5ldFNOTVA6Ok9JRDo6Z2V0dGFibGUoKSBzdWJyb3V0aW5lLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyB0cmlnZ2VyZWQgYnkKICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGEgUERVIHByb2Nlc3NpbmcKICAgZXJyb3IgaW4gTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgbWVtb3J5IGxlYWtzIHRyaWdnZXJlZCBieSBjcmVhdGluZyBhbiBTTk1QdjMKICAgc2Vzc2lvbiB2aWEgTmV0U05NUDo6U05NUC4KICAgCiAgIEFsc28gZml4ZWQgdGhlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgYWNjZXNzZXMgdHJpZ2dlcmVkIGJ5CiAgIGFkZGluZyBhIHZhcmJpbmQgdG8gYSBQRFUgdmlhIE5ldFNOTVA6OlNOTVAgaW50cm9kdWNlZCBhIGZldyBkYXlzCiAgIGFnby4KICAgCiAgIFRoZSBidWdzIG1lbnRpb25lZCBhYm92ZSBoYXZlIGJlZW4gZm91bmQgYnkgaW5zcGVjdGluZyB0aGUgb3V0cHV0CiAgIG9mIHRoZSBmb2xsb3dpbmcgc2hlbGwgY29tbWFuZDoKICAgY2QgcGVybCAmJiB2YWxncmluZCAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLWxlYWstY2hlY2s9ZnVsbCBtYWtlCiAgIHRlc3QKCjIwMTAtMDMtMjkgMTA6NTkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBTd2l0Y2hlZCBiYWNrIHRvIHRoZSBwcmV2aW91cyB3YXkgb2Ygc3RhcnRpbmcgcHJvY2Vzc2VzCiAgIGFzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgaXMgbW9yZSByZWxpYWJsZS4KCjIwMTAtMDMtMjkgMDk6MjcgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBEbyBub3Qgb25seSBzYXZlIHNubXBkIC8gc25tcHRyYXBkIGxvZ3MgYnV0IGFsc28gdGhlIHN0ZG91dCAvCiAgIHN0ZGVyciBvdXRwdXQgZ2VuZXJhdGVkIGJ5IHRoZXNlIHByb2Nlc3Nlcy4KCjIwMTAtMDMtMjggMTY6MDkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDaGFuZ2VzIGluIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CiAgIC0gQWRkZWQgY29tbWFuZC1saW5lIG9wdGlvbiAtZCBmb3Igc25tcGQgYW5kIHNubXB0cmFwZC4KICAgLSBzbm1wZCBhbmQgc25tcHRyYXBkIG91dHB1dCBpcyBub3cgc2F2ZWQgdG8gYSBsb2cgZmlsZSAob25lIHBlcgogICB0ZXN0KS4KICAgLSBSZXdyb3RlIFBlcmwgY29kZSBmb3Igc3RhcnRpbmcgdGhlIHNubXBkL3NubXB0cmFwZCBwcm9jZXNzZXMKICAgc3VjaCB0aGF0IHRoZSBzYW1lIGNvZGUgd29ya3Mgb24gVW5peCBhbmQgb24gV2luZG93cy4KCjIwMTAtMDMtMjggMTM6MzcgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGRlZCB0aGUgZnVuY3Rpb25zIG5ldHNubXBfbWFsbG9jKCksCiAgIG5ldHNubXBfY2FsbG9jKCksIG5ldHNubXBfcmVhbGxvYygpLCBuZXRzbm1wX3N0cmR1cCgpIGFuZAogICBuZXRzbm1wX2ZyZWUoKS4KICAgQ0hBTkdFUzogV2luMzI6IHNubXBsaWI6IHJlbW92ZWQgdGhlIHRyb3VibGVzb21lICNkZWZpbmUgbWFsbG9jCiAgIG5ldHNubXBfbWFsbG9jIGV0Yy4gVGhpcyBtZWFucyB0aGF0IHdoZW4gY2FsbGluZyBmdW5jdGlvbnMgZnJvbQogICB0aGUgTmV0LVNOTVAgRExMIGZyb20gQyBvciBDKysgY29kZSB0aGF0IGlzIGJlaW5nIGxpbmtlZCBhZ2FpbnN0CiAgIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgTVNWQyBydW50aW1lIERMTCB0aGFuIHRoZSBOZXQtU05NUCBETEwsCiAgIGFuZCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IHRoYXQgd2lsbCBiZSBmcmVlZCBieSB0aGUgTmV0LVNOTVAKICAgRExMLCB5b3Ugd2lsbCBlaXRoZXIgaGF2ZSB0byBjYWxsIHRoZSBOZXQtU05NUCBtZW1vcnkgYWxsb2NhdGlvbgogICBmdW5jdGlvbnMgZXhwbGljaXRseSBvciByZWRlZmluZSBtYWxsb2MoKSBldGMuIHlvdXJzZWxmLgoKMjAxMC0wMy0yOCAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXhlZCBhIHJlY2VudGx5IHJlaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMy0yNyAxODo0MiAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGNoZWNrIGZvciBpbnZvY2F0aW9uIG9mIGNhbGxvYygpIGZyb20gWFNVQnMuCgoyMDEwLTAzLTI2IDE5OjE2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzY4IGFuZCByMTgzNjk6IG1hZGUgc3VyZSB0aGF0IHRoZSBOZXQtU05NUCBQZXJsCiAgIGV4dGVuc2lvbnMgY29tcGlsZSB3aXRob3V0IHRyaWdnZXJpbmcgcHJlcHJvY2Vzc29yIHdhcm5pbmdzIGFib3V0CiAgIHJlZGVmaW5pbmcgbWFsbG9jIGV0Yy4gbm9yIHRyaWdnZXIgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzIG9uCiAgIFdpbmRvd3MuCgoyMDEwLTAzLTI2IDE0OjQ0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBSZWZhY3RvcmluZzogaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbjoKICAgbmV0c25tcF9zZXRfbm9uX2Jsb2NraW5nX21vZGUoKS4KCjIwMTAtMDMtMjYgMTE6NTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgCiAgICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgdXNpbmcgdmFyaWFibGVzIG9mIHR5cGUgY2hhciBhcyBhbgogICBhcnJheSBzdWJzY3JpcHQuIE5vdGU6IGFzIGZhciBhcyBJIGtub3cgdGhlc2Ugd2FybmluZ3MgYXJlIG9ubHkKICAgcmVwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ3lnd2luIGdsaWJjIGhlYWRlcnMuCgoyMDEwLTAzLTI2IDEwOjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZSAob24gV2luZG93cyBNU1ZDIHdhcyBjb21wbGFpbmluZwogICBhYm91dCBzaXplX3Qgd2hpbGUgcHJvY2Vzc2luZyA8bmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaD4pLgoKMjAxMC0wMy0yNSAyMDowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGFnZW50eDogY2hhbmdlZCBkZWZhdWx0IFRDUCB0YXJnZXQgZnJvbSAwLjAuMC4wOjcwNSB0bwogICBsb2NhbGhvc3Q6NzA1LiBUaGlzIGlzIG5vdCBvbmx5IGEgbW9yZSBzZWN1cmUgY2hvaWNlIGJ1dCBpdCBhbHNvCiAgIG1ha2VzIGl0IHBvc3NpYmxlIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byBsZXQgYW4gQWdlbnRYIHN1YmFnZW50CiAgIGNvbm5lY3QgdG8gYW4gQWdlbnRYIG1hc3RlciBhZ2VudCBydW5uaW5nIG9uIHRoZSBzYW1lIHN5c3RlbQogICB3aXRob3V0IGhhdmluZyB0byBzZXQgdGhlIHZhcmlhYmxlIE5FVFNOTVBfRFNfQUdFTlRfWF9TT0NLRVQuCgoyMDEwLTAzLTI1IDE2OjExICBidmFzc2NoZQoKICAgKiAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IHBlcmw6IGZpeGVkIHNldmVyYWwgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzLgogICBOb3RlOiBzaW5jZSBjYWxsb2MoKSBpcyBub3QgcmVkZWZpbmVkIGluIDxDT1JFL1hTVUIuaD4gdXNpbmcKICAgY2FsbG9jKCkgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBsZWFkcyB0byAiRnJlZSB0byB3cm9uZyBwb29sIgogICBlcnJvcnMsIGF0IGxlYXN0IG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDE2OjA0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG1vcmUgc2lsZW50IGJ5IG5vdAogICByZWRlZmluaW5nIG1hbGxvYygpIG9yIGZyZWUoKSBkdXJpbmcgY29tcGlsYXRpb24gb2YgUGVybAogICBleHRlbnNpb25zIChyZXN1bHRlZCBpbiB3YXJuaW5ncyBhYm91dCBtYWxsb2MoKSAvIGZyZWUoKQogICByZWRlZmluaXRpb24gaW4gdGhlIFBlcmwgaGVhZGVyIENPUkUvWFNVQi5oKS4KCjIwMTAtMDMtMjUgMTU6MDYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogQlVHOiAyOTY5ODcyOiBtYWRlIHN1cmUgdGhhdCBTT0NLX1NUQVJUVVAgaXMgaW52b2tlZAogICBiZWZvcmUgaW5pdF9hZ2VudCgpIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIG1hY3JvcyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMgYXMgbmV0c25tcF9wYXJzZV9hcmdzIHJldHVybgogICBjb2Rlcy4KCjIwMTAtMDMtMjUgMTM6MzAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgYnVpbGQgcHJvY2VzcyBieQogICByZW1vdmluZyB0aGUgZmlsZSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbi4gV2hpY2ggSVB2NgogICBmdW5jdGlvbnMgYXJlIGV4cG9ydGVkIGZyb20gbmV0c25tcC5kbGwgaXMgbm93IGRldGVybWluZWQgYnkKICAgd2hpY2ggb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIERMTCBoYXZlIGJlZW4gZGVjbGFyZWQgYXMKICAgTkVUU05NUF9JTVBPUlQuCgoyMDEwLTAzLTI0IDIwOjExICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGRvbid0IHVzZSBwYXNzZWQgcHRyIGFzIHRlbXAgdmFyOyB1c2Ugc25tcF9lbnVtX2xpc3RzIGluIGluaXQKICAgdGVzdAoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBhZGQgTkVUU05NUF9EU19MSUJfQ0VSVF9FWFRSQV9TVUJESVIKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IGVhcmxpZXIgKGhhdmUgdGxzX2Jvb3RzdHJhcCBjYWxsIGl0KQoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nczsgYWRkIGNlcnQgZGVidWcgbXNncyBpbiBzZXJ2ZXIgc2V0dXA7IGZyZWUKICAgc3NsIGxvZyBkYXRhCgoyMDEwLTAzLTI0IDEwOjQ3ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ0hBTkdFUzogYXBwczogcmV0dXJuIG5vemVybyBleGl0IGNvZGUgd2hlbiBwYXJzaW5nIG9mIGNlcnRhaW4KICAgcGFyYW1ldGVyIGZhaWxzLgogICBFLmcuICctQScgcGFyYW1ldGVyIHdpdGggdG9vIHNob3J0IHBhc3NwaHJhc2Ugb3IgS3Uga2V5CiAgIGdlbmVyYXRpb24gaW4gZ2VuZXJhbC4KCjIwMTAtMDMtMjQgMDc6MTEgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgQ29ycmVjdCB0aGUgdHlwZSBvZiB0aGUgaWQvZGVzY3JpcHRpb24gb2YgdGhlIE9wZW4tUERVLgoKMjAxMC0wMy0yMiAxODoyOSAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBVcGRhdGVzIGZvciAibWFrZSBjaGVja3MiOgogICAtIE1hZGUgc3VyZSB0aGF0IGV4aXQgY29kZSAwIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBpcwogICBzdWNjZXNzZnVsIGFuZCB0aGF0CiAgIGV4aXQgY29kZSAxIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBmYWlsZWQuCiAgIC0gTWFkZSAibWFrZWZpbGVjaGVjayIgc2tpcCBTdWJ2ZXJzaW9uIGJvb2trZWVwaW5nIGZpbGVzIGFuZCBhbHNvCiAgIHRoZSBtYWtlZmlsZQogICB0aGF0IGNvbnRhaW5zICJtYWtlZmlsZWNoZWNrIi4KCjIwMTAtMDMtMjIgMTY6MTAgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0OgoKICAgRml4IHR5cG8gaW4gZGVmYXVsdCBJcEFkZHJlc3MgdmFsdWUKICAgKFNlZSBCdWcgIzI5NzIxNDEpCgoyMDEwLTAzLTIyIDE1OjQ0ICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2NhbGxiYWNrLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBjaGFuZ2UgYWxsIGFzc2VydCgpIHRvIG5ldHNubXBfYXNzZXJ0KCk7IGFkZCBhc3NlcnRjaGVjayB0byB0b3AKICAgbGV2ZWwgbWFrZWZpbGUKCjIwMTAtMDMtMjIgMTU6MjQgIGJ2YXNzY2hlCgogICAqIG1pYnMvVUNELURJU0tJTy1NSUIudHh0OgoKICAgRm9sbG93LXVwIGZvciByMTgzNDk6IGFkZGVkIG1pc3NpbmcgY29tbWEgc3VjaCB0aGF0IGl0IGlzIGFnYWluCiAgIHBvc3NpYmxlIHRvIGNvbXBpbGUgVUNELURJU0tJTy1NSUIuCgoyMDEwLTAzLTIyIDE0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRml4IGJ1aWxkIHdoZW4gTUlCIGxvYWRpbmcgaXMgZGlzYWJsZWQgKGJyb2tlbiBieSBTVk4gcmV2aXNpb24KICAgMTgzNDEpCiAgIFJlcG9ydCBkZWZhdWx0IE1JQiBwYXRoIGZvciBjbGllbnQgYXBwcyB0b28uCgoyMDEwLTAzLTIyIDEzOjU5ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgQ0hBTkdFUzogbWFuOiBCVUc6IDI5NzI4NjA6IFVwZGF0ZSBicm9rZW4gcmVmZXJlbmNlcwoKMjAxMC0wMy0yMiAxMzo0OSAgZHRzMTIKCiAgICogIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LCAgIAogICAgICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBCVUc6IDI5NzM4OTA6IEZpeCBpbXBvcnRzLCBEaXNrSU9FbnRyeSBsaXN0IGFuZAogICByZXZpc2lvbiBoaXN0b3JpZXMKCjIwMTAtMDMtMjIgMTE6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFdpbjMyLCB3aW5FeHRETEw6IHNvbHZlZCB0aGUgbXlzdGVyeSBvZiAiQVNOIHR5cGUgemVybyIuIFRoZQogICB3aW5FeHRETEwgY29kZSBkb2VzIG5vdyBubyBsb25nZXIgdHJpZ2dlciBjb252ZXJzaW9ucyBvZiBXaW5kb3dzCiAgIEFTTiB2YXJiaW5kcyB3aXRoIEFTTiB0eXBlIHplcm8uIE5vdGU6IHRoaXMgY29kZSBjaGFuZ2UgZG9lcyBub3QKICAgY2hhbmdlIHRoZSBhZ2VudCBiZWhhdmlvci4KCjIwMTAtMDMtMjAgMjA6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KCjIwMTAtMDMtMjAgMjA6MjAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEFkZGVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIChzaG91bGQgaGF2ZSBiZWVuIGFkZGVkIGluIHRoZQogICBwcmV2aW91cyBjb21taXQpLgoKMjAxMC0wMy0yMCAxOTozNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIAogICAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2gKICAgdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuCiAgIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0CiAgIGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKgogICBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgoKMjAxMC0wMy0yMCAxOToxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgZ2NjIChNaW5HVykuCgoyMDEwLTAzLTIwIDE5OjA1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHNpZ3Byb2NtYXNrLgoKMjAxMC0wMy0yMCAwOToxNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBSZWZhY3RvcmluZzogbW92ZWQgZHVwbGljYXRlZCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24uCgoyMDEwLTAzLTE5IDIyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwb3J0IE1JQiBhbmQgY29uZmlnIGRpcmVjdG9yaWVzIHNlYXJjaCBwYXRocyBvbiBlcnJvcnMKICAgKGFuZCBpbiB0aGUgaGVscCBtZXNzYWdlKQoKMjAxMC0wMy0xOSAxMzoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgaXMgbG9nZ2VkIHdoZW4KICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpcyBhdHRlbXB0ZWQgbW9yZSBkZXRhaWxlZC4KICAgCiAgIEFuIGV4YW1wbGU6CiAgIChiZWZvcmUpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKG1pYklJL3NubXAsCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwpCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KICAgKGFmdGVyKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uOiBNSUIgbW9kdWxlcyBtaWJJSS9zbm1wIGFuZAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsIChvaWQgLjEuMy42LjEuMi4xLjExKS4KICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgoKMjAxMC0wMy0xOSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtdWx0aXBsZSB2YXJiaW5kIHNldCByZXF1ZXN0cyBhcmUgbm93CiAgIHByb2Nlc3NlZCBjb3JyZWN0bHkuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG1hZGUgZXJyb3IgY29kZXMgaW4gU05NUCByZXNwb25zZSBQRFVzCiAgIGFzIFJGQy1jb21wbGlhbnQgYXMgcG9zc2libGUuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGlmIGxvYWRpbmcgYW4gZXh0ZW5zaW9uIERMTCBmYWlscywgdGhlCiAgIHJlYXNvbiB3aHkgbG9hZGluZyBmYWlsZWQgaXMgbm93IGxvZ2dlZC4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBtZW1vcnkgbGVhayB0aGF0IG9jY3VycmVkIHdoZW4KICAgU25tcEV4dGVuc2lvblF1ZXJ5KEV4KSBmYWlsZWQuIFRoaXMgbWVtb3J5IGxlYWsgaGFzIGJlZW4gZm91bmQKICAgdmlhIHNvdXJjZSByZWFkaW5nLiBOb3RlOiBpdCBpcyBub3QgY2xlYXIgd2hldGhlciBpdCB3YXMgcG9zc2libGUKICAgdG8gdHJpZ2dlciB0aGlzIG1lbW9yeSBsZWFrLiBUaGlzIGxlYWsgaXMgY2VydGFpbmx5IG5vdCB0cmlnZ2VyZWQKICAgYnkgZXZlcnkgcmVxdWVzdCBmb3Igd2hpY2ggYSByZXNwb25zZSB3aXRoIG5vbi16ZXJvIGVycm9yIHN0YXR1cwogICBpcyBzZW50IGJhY2suCgoyMDEwLTAzLTE4IDE2OjI5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBrZWVwIGNvdW50IG9mIGVuYWJsZWQgbG9nczsgdXNlIHRoaXMgY291bnQgdG8gZGV0ZXJtaW5lIHdoZW4gdG8KICAgbG9nIHRvIHN0ZGVycgoKMjAxMC0wMy0xOCAxNjoyOCAgcnN0b3J5CgogICAqICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBzbm1wIHRva2VuIGxvZ09wdGlvbiBhbGxvd3Mgc3BlY2lmeWluZyBsb2cKICAgZGVzdGluYXRpb25zIHZpIGNvbmYgZmlsZXMKICAgLSBpZiBzdGRlcnIgbG9nIGVuYWJsZWQgYmVjYXVzZSBvZiBubyBsb2cgZGVzdGluYXRpb24sIHR1cm4gaXQKICAgb2ZmIHdoZW4gYQogICBsb2cgZGVzdGluYXRpb24gaXMgZW5hYmxlZAogICAtIGRvbid0IGNhbGwgbmV0c25tcF9lbmFibGVfc3RkZXJybG9nKCkgZnJvbSBhcHBzIGFueW1vcmUKCjIwMTAtMDMtMTggMTU6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIHVkcCB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgdHdlYWtzCiAgIC0gbW92ZSBiYXNpYyB1ZHAgcmVjdmZyb20vc2VuZHRvIGNvZGUgZnJvbSBVRFBEb21haW4gdG8KICAgVURQQmFzZURvbWFpbgogICAtIHR3ZWFrIHVwZCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnN0aW9uCiAgIC0gdHdlYWsgdWRwaXB2NCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnNpb24KICAgLSBhbHNvIGZpeGVkIG5ldHNubXBfaXB2NF8qIC0+IG5ldHNubXBfdWRwaXB2NF8qCiAgIC0gdHdlYWsgRFRMU1VEUERvbWFpbiBvdCB1c2UgdWRwYmFzZV8qIGluc3RlYWQgb2YgdWRwXyoKCjIwMTAtMDMtMTggMTU6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3RlY3QgY2VydCBoZWFkZXIgYW5kIGluaXQgY2FsbCB3aXRoIGlmZGVmcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICB1c2UgbmV3IHV0aWxpdHkgcm91dGluZSBmb3IgY2VydCBuYW1lcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBfb3BlbnNzbCBoZWFkZXIgYWZ0ZXIgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYWRkIHJvdXRpbmVzIHRvIHB1bGwvZHVtcCBuYW1lcyBmcm9tIFg1MDkgY2VydHMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGVudW0gbGlzdHMgdG8gbWFuYWdlIGRpcmVjdG9yeSBpbmRleGVzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGluaXRpYWxpemUgc3RhdGljIHN0b3JhZ2UgYmVmb3JlIHVzZTsgcHJvdGVjdCBlbnVtIGluaXQgZnJvbQogICBtdWx0aXBsZSBjYWxscwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIGluZm8gYWJvdXQgbmV3IHRzbS90bHMgbWlicwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgdG8gc25tcCBpbml0CgoyMDEwLTAzLTE3IDEzOjM3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBVcGRhdGVkIE1JQiByZXZpc2lvbiBoaXN0b3J5LgoKMjAxMC0wMy0xNyAxMzoyOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG9uZSBsZWFrLWF0LWV4aXQuCgoyMDEwLTAzLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjk3MTI1NzogRml4ZWQgd2luRXh0RExMIGhhbmRsaW5nIG9mIG11bHRpLXZhcmJpbmQKICAgZ2V0TmV4dCByZXF1ZXN0cyB3aXRoIE9JRHMgaW4gcmV2ZXJzZSBsZXhpY29ncmFwaGljYWwgb3JkZXIuCgoyMDEwLTAzLTE3IDEwOjI1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1vcmUgd2luRXh0RExMIGRlYnVnIG91dHB1dCB0dW5pbmcuCgoyMDEwLTAzLTE2IDE5OjMxICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBDb21waWxlcyBub3cgd2l0aCBNSUIgY29tcGlsZXJzIHRoYXQgZG8gbm90IHJlY29nbml6ZSBhIGRvdWJsZQogICBkYXNoIGFzIHRoZSBlbmQgb2YgYSBNSUIgY29tbWVudC4KCjIwMTAtMDMtMTYgMTk6MjcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXhlZCB0d28gc3ludGF4IGVycm9ycy4KCjIwMTAtMDMtMTYgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBidWcgaW4gZ2V0TmV4dCBoYW5kbGluZyB0aGF0CiAgIGNvdWxkIGNhdXNlIHRoZSBNSUIgb3V0cHV0IHRvIGJlIHRydW5jYXRlZC4KCjIwMTAtMDMtMTYgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTWFkZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IG1vcmUgZGV0YWlsZWQuCgoyMDEwLTAzLTE2IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oOgoKICAgTWFkZSBzdXJlIHRoYXQgQysrIHByb2dyYW1zIHRoYXQgaW5jbHVkZSBOZXQtU05NUCBoZWFkZXIgZmlsZXMKICAgY29tcGlsZSBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MjAgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIC0tZGlzYWJsZS1kZXByZWNhdGVkIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoxOSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEaXNhYmxlIGFsbCB0aGUgcHJpbnRpbmcgaWYgZGVidWcgb3V0cHV0IGlzIG9mZi4KCjIwMTAtMDMtMTUgMDA6MTcgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE1IDAwOjA3ICB0YW5kZXJzCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE0IDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBtYWtlIHN1cmUgaGVhZGVyIGlmZGVmIG5hbWUgaXMgdW5pcXVlCgoyMDEwLTAzLTE0IDIxOjA0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGFkZCBtaXNzaW5nIGluaXQvc2h1dGRvd24gcHJvdG90eXBlcyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDMtMTQgMjE6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgbW92ZSBkZWJ1ZyBtZXNzYWdlIGVhcmxpZXIKCjIwMTAtMDMtMTQgMjE6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldHNubXBfaW5pdF9jb250YWluZXI7IGZpeCBjb21wbGVyIHdhcm5pbmcKCjIwMTAtMDMtMTQgMjA6NTEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ29ycmVjdCBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4gYW5kIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgogICBmb3IgdGhlIE5FVFNOTVBfTk9fREVCVUdHSU5HIGNhc2UKCjIwMTAtMDMtMTQgMTk6MTAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW5hbWUgY2VydCBpbml0L3NodXRkb3duIGZ1bmNzOyBvbmx5IGNvbXBpbGUgY2VydF91dGlscyBpZgogICB1c2luZy9oYXZlIFNTTDsgaW5pdCBjZXJ0cyBmcm9tIHRscyBiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNhbGwgbmV0c25tcF9pbml0X29wZW5zc2wgaW5zdGVhZCBvZiBuZXRzbm1wX2luaXRfdGxzYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG9iamVjdHMgaW4gdmVyc2lvbiAwOCBvZiB0aGUgZHRscyBkcmFmdAoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIsIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgaW1wb3J0IGluaXRpYWwgY29kZSBmb3IgZHRscyBtaWJzCgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgVExTVE0tTUlCIGZyb20gZHJhZnQtaWV0Zi1pc21zLWR0bHMtdG0tMDkudHh0CgoyMDEwLTAzLTE0IDE3OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGZldyBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxNDoxMCAgYnZhc3NjaGUKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICBGb2xsb3ctdXAgZm9yIHIxNzM4NDogY2hhbmdlZCBORVRTTk1QX0RTX01BWF9TVUJJRFMgZnJvbSA0MCB0bwogICA0OC4KCjIwMTAtMDMtMTQgMTM6NTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ2hhbmdlczoKICAgLSBSZW1vdmVkIC1Xbm8tY2hhci1zdWJzY3JpcHRzIGZyb20gREVWRkxBR1MuIFVzaW5nIGEgdmFyaWFibGUgb3IKICAgZXhwcmVzc2lvbiBvZgogICB0eXBlIGNoYXIgYXMgYW4gYXJyYXkgaW5kZXggaXMgYWxtb3N0IGFsd2F5cyBhbiBlcnJvci4KICAgRnVydGhlcm1vcmUsCiAgIC1XY2hhci1zdWJzY3JpcHQgZG9lcyBub3QgdHJpZ2dlciBhbnkgd2FybmluZ3Mgb24gdGhlIE5ldC1TTk1QCiAgIGNvZGUgYmFzZS4KICAgLSBSZW1vdmVkIC1XaW5saW5lIGZyb20gREVWRkxBR1MuIE5vdCBvbmx5IHdhcyBub2JvZHkgcGF5aW5nCiAgIGF0dGVudGlvbiB0byB0aGUKICAgbWVzc2FnZXMgdHJpZ2dlcmVkIGJ5IC1XaW5saW5lLCBidXQgcmVjZW50IHZlcnNpb25zIG9mIHRoZSBnY2MKICAgY29tcGlsZXIgYXJlCiAgIGJldHRlciB0aGFuIGh1bWFucyBhdCBkZWNpZGluZyB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGlubGluZWQKICAgYW5kIHdoaWNoCiAgIG9uZXMgbm90LgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9yZWNvbmYuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDEzOjM2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlbW92ZWQgdGhlICcweCcgcHJlZml4IGFnYWluIGZyb20gYSBkZWJ1ZyBzdGF0ZW1lbnQgdGhhdCB3YXMKICAgaW50cm9kdWNlZCBpbiByMTgyODIuCgoyMDEwLTAzLTEzIDE5OjA3ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvVHJhcFJlY2VpdmVyL3BwcG9ydC5oLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZQogICBwZXJsIHN1YmRpcmVjdG9yeS4KICAgTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLgoKMjAxMC0wMy0xMyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5lIHRoZSBUTFNUQ1AgRE9NQUlOCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggaWZkZWYgdHlwbwoKMjAxMC0wMy0xMiAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIGRlYnVnZ2luZyBzeW1ib2wgbmFtZXMgdG8gYSBnZW5lcmljIHRscyBzdHJpbmcKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgaW5pdGlhbCB3b3JraW5nIFNOTVAgb3ZlciBUTFMgb3ZlciBUQ1AgY29ubmVjdGlvbgoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcHJpbnQgYSBtb3JlIGNvbXBsZXRlIE9wZW5TU0wgc3RhY2sKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IGFzc2VydCBzdGF0ZW1lbnRzCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIGFkZGVkIGFuIGFjY2VwdGVkX2JpbyBwb2ludGVyIGZvciB0aGUgYmlvIGFmdGVyIFNTTF9hY2NlcHQKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCB0aGUgYWJpbGl0eSBmb3IgZl9jb3B5IGFuZCBmX2NvbmZpZwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBtaXNzaW5nIDsKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkIGEgZl9jb3B5IHBvaW50ZXIKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgcmV0dXJuIGludCBub3QgaW50ICogb24gZXJyb3IKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgYSBmX2NvbmZpZyBmdW5jdGlvbiBmb3IgdHJhbnNwb3J0cwoKMjAxMC0wMy0xMiAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogUEFUQ0g6IDI4NTAwNjc6IFN1cHByZXNzIGV4dHJhbmVvdXMgImluZGV4IgogICBoZWFkZXIgdG9rZW4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgRGFuIE5lbHNvbgoKMjAxMC0wMy0xMiAxMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZgogICBnZXR1bG9uZ2Zyb21zeXNjbGFzc25ldHN0YXRpc3RpY3MoKQoKMjAxMC0wMy0xMSAxNjo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBEb2N1bWVudCB0aGUgZm9ybWF0IG9mIHRoZSAtZS8tRSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCjIwMTAtMDMtMTEgMTY6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChhYmFuZG9uZWQpICdkYXRhc2V0MicgaGVscGVyLgoKMjAxMC0wMy0xMSAxNTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIERvbid0IGluaXRpYWxpc2UgdGhlIFRMUyB0cmFuc3BvcnQgdW5sZXNzIGl0J3MgYWN0dWFsbHkgYmVlbgogICBjb25maWd1cmVkIGluLgoKMjAxMC0wMy0xMSAxNTo0NyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIHVzZSBTTk1QX1RNUERJUiBpbnN0ZWFkIG9mIFRNUERJUgoKMjAxMC0wMy0xMSAxNTozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcXVlcnkgcmlnaHQgYm9vbCAodHNtIHByZWZpeCBpcyBsaWIgYm9vbCwgbm90IGFwcCkKCjIwMTAtMDMtMTEgMTU6MDggIGR0czEyCgogICAqICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTUyMDM0OiBSZXR1cm4gb2YgdGhlIEdyZWF0IFN1U0UgJ3NwcmludGYnCiAgIEh1bnQuLi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDE0OjU1ICBkdHMxMgoKICAgKiBsb2NhbC90cmFwdG9lbWFpbDoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTM3OTk2OiBBZGQgRGF0ZTogaGVhZGVyIHRvIGVtYWlsIHNlbmQgYnkKICAgdHJhcHRvZW1haWwKCjIwMTAtMDMtMTEgMTQ6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njc0MDA6IFJldHJpZXZlIGVycm9yIGNvdW50ZXJzIGZvciB0aGUKICAgRXRoZXJMaWtlLU1JQgogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycy4KCjIwMTAtMDMtMTEgMTQ6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2ODY0MjogQ2F0Y2ggb3ZlcmZsb3cgb2YgcGFzcy10aHJvdWdoCiAgIGNvbW1hbmQgYnVmZmVyLgogICBQYXRjaCBmcm9tIEFuZHJlYXMgSmFlZ2VyL0xlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMjozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTY2NTc6IEhhbmRsZSBvdmVyLWxlbmd0aCBBZ2VudFggT0lEcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUm9iIFdlc3QKCjIwMTAtMDMtMTEgMTI6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2NvbW1vbi5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGRlYnVnIHBhcmFtZXRlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyAoZHVtbXkpIHJldHVybiB2YWx1ZSwgdG8gc3VwcHJlc3MgY29tcGlsZXIKICAgd2FybmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBTdXBwcmVzcyB3YXJuaW5ncyBvZiBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cuCiAgIFRoaXMgZG9lc24ndCBfYWN0dWFsbHlfIHByb3RlY3QgYWdhaW5zdCBzdWNoIGFuIG92ZXJmbG93LAogICBzaW5jZSB0aGUgdGFyZ2V0IGJ1ZmZlciBpcyBub24tZW1wdHksIHNvIHN0cm5jYXQgY2FuJ3QKICAgdXNlIGl0IGFsbCBhbnl3YXkuIEJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBtaXNsZWFkIHRoZQogICBjb21waWxlciBzdWZmaWNpZW50bHkgdG8gc2h1dCBpdCB1cCEKICAgCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMTo1NyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBSZXBsYWNlIGJhY2txdW90ZSB3aXRoIHNpbmdsZSBxdW90ZSBpbiBjb25maWd1cmUgb3V0cHV0IG1lc3NhZ2UuCiAgIFdoaWxlIHRoaXMgY2hhbmdlIGlzIHByb2JhYmx5IG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGl0IGZlZWxzCiAgIHNlbnNpYmxlIHRvIGF2b2lkIHRoaXMgcGFydGljdWxhciB1c2Ugb2YgYmFja3F1b3RlcywgSnVzdCBJbgogICBDYXNlLgogICBTZWUgZGlzY3Vzc2lvbiBpbiBQYXRjaCAjMjk1MjE2OQoKMjAxMC0wMy0xMSAxMTo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAyOTUyMTQwOiBPdmVyZmxvdyBjb3VudGVyMzIgYW5kIGdhdWdlMzIKICAgb24gNjRiaXQgc3lzdGVtcyBjb3JyZWN0bHkKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDI5NTIwMjA6IEV4cGxpY2l0bHkgc2V0IHBlcm1pc3Npb24gb24KICAgdGVtcG9yYXJ5IHRlc3Rpbmcgb3V0cHV0IGRpcmVjdG9yaWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8uCgoyMDEwLTAzLTExIDExOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1MDg0NTogRml4IGlmSGlnaFNwZWVkIGNhbGN1bGF0aW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAwODoyNiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvT0lEL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL09JRC9PSUQueHMsIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIE1hZGUgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgbW9kdWxlIE5ldFNOTVAucG0gb24gV2luZG93cyBtb3JlCiAgIHNpbGVudDogYWRkZWQgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyBhbmQgbWFkZSBzdXJlIHRoYXQgI2luY2x1ZGUKICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBvY2N1cnMgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlIGZpbGUKICAgdGhhdCBkZWZpbmVzIF9XSU4zMl9XSU5OVC4KCjIwMTAtMDMtMTAgMjM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogY3JlYXRlIGluZGV4ZXMgZm9yIGNlcnRpZmljYXRlcyBpbiBjb25maWcgcGF0aAoKMjAxMC0wMy0xMCAxODo0OCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQWRkZWQgIiNpbmNsdWRlIDx1bmlzdGQuaD4iIHN1Y2ggdGhhdCBvbiBVbml4IHN5c3RlbXMgdGhlCiAgIGNvbXBpbGVyIGRvZXMgbm90IHByaW50IGEgd2FybmluZyBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yCiAgIHRoZSBmdW5jdGlvbiBjbG9zZSgpLgoKMjAxMC0wMy0xMCAxODozMCAgcnN0b3J5CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAgICBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjYuZGV2CgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB1cGRhdGUgVmVyc2lvbi1NdW5nZSBmb3IgcmVuYW1lZCBjb25maWd1cmUuYWMKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogc2F2ZSBjb25maWd1cmUgY2FjaGUgZXZlcnkgb25jZSBpbiB3aGlsZQoKMjAxMC0wMy0xMCAxNjoxMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIFJlb3JkZXJlZCBzb21lIG9mIHRoZSBNYWtlZmlsZSBydWxlcyBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUKICAgZGlmZnMgd2l0aCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbi4KCjIwMTAtMDMtMTAgMTY6MTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzIsIGJhdGNoIGJ1aWxkaW5nOiBETEwgYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0xMCAxNjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZyBieSBhZGRpbmcgYSBmb3J3YXJkCiAgIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24gX2NhY2hlX2ZyZWUoKS4KCjIwMTAtMDMtMTAgMTY6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBCdWlsZHMgYWdhaW4gb24gV2luMzIuCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIG1pc3NpbmcgY29udHJpYnV0b3JzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBkb3VibGUgZnJlZSBpbiBDT05UQUlORVJfRlJFRQogICAtIGFsc28gYWRkZWQgc2V2ZXJhbCBjb21wYXJlIHJvdXRpbmVzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZnJlZWluZyBhIGNhY2hlLCBzdG9wIHRpbWVyIGFuZCBjYWxsIGNhY2hlCiAgIGZyZWUgZnVuYwogICAtIGFsc28gYWRkIG5ldHNubXBfY2FjaGVfcmVtb3ZlCgoyMDEwLTAzLTEwIDAzOjUyICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVuZG8gY29tbWl0IDE4MjM0CgoyMDEwLTAzLTEwIDAzOjQxICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIE1lcmdlIGJyYW5jaCAncHVsbG1lJyBvZiAuLi90cnVuay1zdGFnaW5nCgoyMDEwLTAzLTA5IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3JlYWRfbW9kdWxlKCkgZnJvbSBuZXRzbm1wLmRsbAogICBzdWNoIHRoYXQgTmV0U05NUC5wbSBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTA5IDE3OjQ3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBTaW1wbGlmaWVkIHR3byBtYWtlZmlsZXMgdXNlZCBieSBidWlsZC5iYXQgKFdpbjMyKS4KCjIwMTAtMDMtMDkgMTc6MjQgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBidWlsZGluZyBOZXRTTk1QLnBtIGRvZXMgbm8gbG9uZ2VyCiAgIHRyaWdnZXIgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcmVkZWZpbmluZyBfV0lOMzJfV0lOTlQgbm9yCiAgIE5URERJX1ZFUlNJT04uCgoyMDEwLTAzLTA5IDE3OjIyICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgTmV0U05NUC5wbSBtb3JlIHNpbGVudCBieQogICBhZGRpbmcgdGhlIE1TVkMgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUy4KCjIwMTAtMDMtMDkgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZW1vdmUgZGVidWcgbXNnIHVzZWQgZHVyaW5nIGRlYnVnZ2luZwoKMjAxMC0wMy0wOSAxNzowMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IHdyYXBwZXIgLSB0ZXN0aW5nIHJlcG8gd3JpdGUgcHJpdnMKCjIwMTAtMDMtMDkgMTA6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGUgYnVpbGQgcnVsZXMuIFRoZXNlIGR1cGxpY2F0ZSBydWxlcyB3ZXJlCiAgIGhhcm1sZXNzIGJ1dCB0cmlnZ2VyZWQgYSB3YXJuaW5nLgoKMjAxMC0wMy0wOSAwMjozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGRpcmVjdG9yeSBjb250YWluZXIgZW5oYW5jZW1lbnRzCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhawogICAtIGFkZCBmaWx0ZXIgY2FsbGJhY2sgdG8gZmlsdGVyIGZpbGVzIHJldHVybmVkCiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gcmVsYXRpdmUgYW5kIG5vdCBmdWxsIHBhdGhzCiAgIC0gYWRkIG9wdGlvbiB0byBzb3J0IHJldHVybmVkIGxpc3QKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiBlbXB0eSBjb250YWluZXIgaW5zdGVhZCBvZiBOVUxMIGlmIG5vCiAgIGZpbGVzIGZvdW5kCiAgIC0gY2hhbmdlIGRlZmF1bHQgY29udGFpbmVyIG5hbWUgdG8gZGlyZWN0b3J5IHRoYXQgd2FzIHNjYW5uZWQKICAgLSB0d2VhayBkZWJ1Zy9sb2cgbWVzc2FnZXMKCjIwMTAtMDMtMDggMjM6MDcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBDSEFOR0VTOiBzbm1wZDogZGVmaW5lIGFuZCB1c2UgbmV3IE5FVFNOTVBfTE9HT05DRSBtYWNybwoKMjAxMC0wMy0wOCAyMjo0NCAgcnN0b3J5CgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTkVXUzogc25tcGxpYjogY29uZiBmaWxlcyBjYW4gbm93IGluY2x1ZGUgb3RoZXIgY29uZiBmaWxlcwogICAtIGFsc28gdHdlYWtlZCBkZWJ1ZyB0b2tlbnMgaGVyZSBhbmQgdGhlcmUKCjIwMTAtMDMtMDggMjI6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggdHlwbyAoY2F1c2VkIGV4dGVybmFsIHJlZmVyZW5jZSB3aGVuIERUTFNVRFAgY29uZmlndXJlZAogICB3aXRob3V0IGR0bHN0Y3ApCgoyMDEwLTAzLTA2IDAyOjI3ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV0c25tcF9jb250YWluZXIgZW5oYW5jZW1lbnRzOgogICAtIGFkZCBmcmVlX2l0ZW0gZnVuY3Rpb247IGRlZmF1bHRzIHRvCiAgIG5ldHNubXBfY29udGFpbmVyX3NpbXBsZV9mcmVlCiAgIC0gYWRkIENPTlRBSU5FUl9GUkVFX0FMTCBtYWNyby9mdW5jdGlvbiAobGlrZSBDT05UQUlORVJfQ0xFQVIgYnV0CiAgIGNhbGxzIGNvbnRhaW5lciBmcmVlX2l0ZW0gZm9yIGVhY2ggaXRlbSBpbiBwcmltYXJ5IGNvbnRhaW5lcikKICAgLSBhZGQgYWJpbGl0eSB0byBzZXQgb3B0aW9ucyBvbiBiaW5hcnlfYXJyYXkgY29udGFpbmVycwoKMjAxMC0wMy0wMiAxNzo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIE1hZGUgc3VyZSB0aGF0IHdpbjMyL2J1aWxkLmJhdCB3b3JrcyBhZ2FpbiBieSBhZGRpbmcgbWlzc2luZwogICBzb3VyY2UgZmlsZSBuYW1lcy4gU29ydGVkIHNvdXJjZSBmaWxlIG5hbWVzIGFscGhhYmV0aWNhbGx5IHRvby4KCjIwMTAtMDMtMDIgMTY6NTQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogdGhlIGJhdGNoIGZpbGUgd2luMzIvYnVpbGQuYmF0CiAgIHdvcmtzIGFnYWluIHdpdGggdGhlIFBsYXRmb3JtIFNESyBlbmFibGVkLgoKMjAxMC0wMy0wMiAxNjo1MiAgYnZhc3NjaGUKCiAgICogd2luMzIvTWFrZWZpbGUtYXBwcy5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MjE1IChyZXBsYWNlZCB0aGUgb2Jzb2xldGUgY2wuZXhlIG9wdGlvbiAvR1ggYnkKICAgdGhlIGVxdWl2YWxlbnQgL0VIc2M7IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIsIGFkZGVkCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIGFuZCByZW1vdmVkIC9GcC4uLiBhbmQgL1lYKS4KCjIwMTAtMDItMjggMTU6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgV2luMzI6IGZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCByZWRlZmluaXRpb24gb2YKICAgX1dJTjMyX1dJTk5UIGJ5IG1ha2luZyBzdXJlIHRoYXQgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBpcwogICBpbmNsdWRlZCBiZWZvcmUgPHdpbmRvd3MuaD4uCgoyMDEwLTAyLTI4IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVwbGFjZWQgdGhlIG9ic29sZXRlIC9HWCBieSB0aGUKICAgZXF1aXZhbGVudCAvRUhzYy4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIHRvIG1ha2UgYnVpbGRpbmcgd2l0aCBNU1ZDIDIwMDgKICAgbW9yZSBzaWxlbnQuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWC4gVGhlc2UKICAgb3B0aW9ucyBpbmZsdWVuY2UgaG93IHByZWNvbXBpbGVkIGhlYWRlciBmaWxlcyBhcmUgZ2VuZXJhdGVkLAogICB3aGljaCBhcmUgbm90IHVzZWQgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0LiAvWVggaXMgbm90CiAgIHN1cHBvcnRlZCBieSBNU1ZDIDIwMDguCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCBhIGR1cGxpY2F0ZSBvY2N1cnJlbmNlIG9mCiAgIHN0cnRvdWxsLm9iai4KCjIwMTAtMDItMjggMTQ6MTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IGFwcGxpZWQgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIHRvCiAgIHRoZSB3aW4zMi9Db25maWd1cmUgc2NyaXB0IGFuZCB3aW4zMi9NYWtlZmlsZS5pbi4KCjIwMTAtMDItMjcgMTM6MTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgICAKICAgICAgc25tcGxpYi9nZXRvcHQuYywgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogZGVjbGFyZWQgYWxsIGZ1bmN0aW9ucyB0aGF0IGFyZSBleHBvcnRlZCBmcm9tIHRoZQogICBOZXQtU05NUCBETEwgYXMgTkVUU05NUF9JTVBPUlQuIFRoZSByZXN1bHQgaXMgYSBtaW5vcgogICBvcHRpbWl6YXRpb246IGNvZGUgdGhhdCB1c2VzIHRoZSBOZXQtU05NUCBETEwgd2lsbCBub3cgY2FsbCB0aGUKICAgRExMLWV4cG9ydGVkIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnN0ZWFkIG9mIGluZGlyZWN0bHkgdmlhIHRoZQogICBzdHViIGluIHRoZSBpbXBvcnQgbGlicmFyeS4KCjIwMTAtMDItMjcgMTE6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFJlbW92ZWQgYSByZWR1bmRhbnQgc3RybmNhc2VjbXAoKSBkZWNsYXJhdGlvbi4KCjIwMTAtMDItMjcgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG9rX3IuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTAyLTI3IDA5OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4OSAocnN0b3J5KTogYnVpbGRzIGFnYWluIG9uIFdpbmRvd3MuCgoyMDEwLTAyLTI1IDE3OjUzICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgIAogICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgIAogICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICBSZXZlcnRlZCByMTgyMDcgKGRzcC9kc3cgdG8gdmNwcm9qL3NsbiBjb252ZXJzaW9uKSBleGNlcHQgdGhlCiAgIHN1cHByZXNzaW9uCiAgIGxpc3QgY2hhbmdlcy4gVGhlIGdvYWwgb2YgdGhpcyBjb252ZXJzaW9uIHdhcyB0d29mb2xkOiBub3Qgb25seQogICB0byBiZSBhYmxlCiAgIHRvIGxvYWQgdGhlIHByb2plY3QgZmlsZXMgaW4gTVNWQyAyMDAyIC0gMjAwOCBidXQgYWxzbyB0byBiZSBhYmxlCiAgIHRvIGNvbW1pdAogICBjaGFuZ2VzIG1hZGUgZnJvbSBpbnNpZGUgdGhlIE1TVkMgMjAwOCBJREUuIFVuZm9ydHVuYXRlbHkKICAgY29udmVydGluZyBkc3AvZHN3CiAgIGZpbGVzIHRvIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBNU1ZDIDIwMDggbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwogICBsb2FkIHRoZQogICB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggZWFybGllciBNU1ZDIHZlcnNpb25zLiBXaHkgb24gZWFydGggZGlkCiAgIE1pY3Jvc29mdAogICBkZWNpZGUgdG8gcHV0IGEgdmVyc2lvbiBudW1iZXIgaW4gWE1MIGZpbGVzID8KCjIwMTAtMDItMjQgMTk6NDEgIGJ2YXNzY2hlCgogICAqICB3aW4zMiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgd2luMzIvbGliYWdlbnQsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgd2luMzIvbGlic25tcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCB3aW4zMi9uZXRzbm1wbWlicywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIHdpbjMyL3NubXBidWxrZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgd2luMzIvc25tcGJ1bGt3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osCiAgICAgICAgIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dCwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIHdpbjMyL3NubXBuZXRzdGF0LCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldCwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cywgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgd2luMzIvc25tcHRhYmxlLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgd2luMzIvc25tcHRyYXAsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgd2luMzIvc25tcHVzbSwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20sIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCB3aW4zMi9zbm1wd2FsaywgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIChyZXZlcnRlZCkgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBjb252ZXJ0ZWQgLmRzcC8uZHN3IGZpbGVzIHRvCiAgIC52Y3Byb2ovLnNsbiBmaWxlcy4gVGhpcyBpbXBsaWVzIHRoYXQgc3VwcG9ydCBmb3IgTVNWQyA2LjAgaGFzCiAgIGJlZW4gZHJvcHBlZCBhbmQgdGhlIG1pbmltdW0gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdmVyc2lvbgogICByZXF1aXJlZCB0byBidWlsZCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgaXMgTWljcm9zb2Z0IFZpc3VhbAogICBTdHVkaW8gLk5FVCAoMjAwMikuCgoyMDEwLTAyLTIzIDE5OjAzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB3aGVuIGdlbmVyYXRpbmcgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgc3lzdGVtCiAgIGxvY2F0aW9uIGFuZCBubyBkb21haW4gbmFtZSBpcyBmb3VuZCBpbiAvZXRjL3Jlc29sdi5jb25mLCB1c2UKICAgIkBuby53aGVyZSIgaW5zdGVhZCBvZiAiIi4KCjIwMTAtMDItMjMgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjMgMTg6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIFJlbW92ZWQgYWxsIHRyYW5zcG9ydCB0ZXN0cyBzaW5jZSBpdCdzIGltcG9zc2libGUgdG8gZGV0ZXJtaW5lCiAgIHdoZXJlIHRoZXkgY2FuIHNhZmVseSBvcGVyYXRlICh3YXMgc3RvcHBpbmcgdGFuZGVycycgbmlnaHRseQogICB0ZXN0cyBmcm9tIHN1Y2NlZWRpbmcpCgoyMDEwLTAyLTIzIDE4OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZXJyb3IgYW5kIGRlYnVnZ2luZyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0aGUgc2VydmVyIGNvbnRleHQgZ2VuZXJhdG9yIHRvIGFjdHVhbGx5LCB1bSwgcmV0dXJuIHRoZQogICBjb250ZXh0LgoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaW5pdGlhbGl6ZSB0aGUgJ3JlcycgdmFyaWFibGUgc2luY2UgaXQncyBjaGVja2VkCgoyMDEwLTAyLTIzIDE4OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgcHJvZ3Jlc3MgdG93YXJkIGEgcmVhbCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdGxzdGNwIGN0b3IgaW52b2NhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHJlcXVpcmUgVExTQmFzZQoKMjAxMC0wMi0yMyAxODozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBob3N0IGlkZW50aWZpZXIgYXMgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjM1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2lnbmlmaWNhbnQgbW9yZSB3b3JrIG9uIHRoZSBUTFMgVENQIGRvbWFpbgoKMjAxMC0wMi0yMyAxNzo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxOTMgKGpzYWZyYW5layk6IHJlcmFuIGF1dG9yZWNvbmYgZm9yIHRoZSB0cnVuawogICBhbmQgdGhlIDUuNSBicmFuY2guCgoyMDEwLTAyLTIzIDE0OjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIE5FVFNOTVBfUFJJeiBpbnN0ZWFkIG9mICV6CgoyMDEwLTAyLTIzIDEyOjI3ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4ZWQgY29tcGlsYXRpb24gd2l0aCBycG0tNC42LgogICBUdXJuIG9uIHRoZSBsZWdhY3kgQVBJIHdoZW4gcnBtLTQuNiBpcyBkZXRlY3RlZC4KCjIwMTAtMDItMjMgMDc6MzggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRlZCByMTgwMDAgKGRpc2FibGluZyBTSUdBTFJNIHN1cHBvcnQpIGJlY2F1c2UgdGhpcyBpbnZvbHZlcwogICBhIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlLgoKMjAxMC0wMi0yMyAwMDozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wMi0yMyAwMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlYnVnIG1zZyB0d2Vha3M7IHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zCiAgIC0gYWRkIGRlYnVnIGhlYWRlciBmb3Igc25tcCB2ZXJzaW9uCiAgIC0gYWRkIGxlbmd0aCB0byBkZWJ1ZyBzZW5kL3JlY2VpdmUgbWVzc2FnZXMKICAgLSB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucyBmb3Igc2VuZC9yZWN2L2ZpbmRpbmcgcGVlciBhZGRyZXNzCgoyMDEwLTAyLTIzIDAwOjI1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcsIG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgJgogICBuZXRzbm1wX3RyYW5zcG9ydF9yZWN2CiAgIC0gbW92ZXMgdHJhbnNwb3J0IG1hbmlwdWxhdGlvbiBpbnRvIHRyYW5zcG9ydCBjb2RlCiAgIC0gY2VudHJhbCBwbGFjZSBmb3IgbG9nZ2luZy9kZWJ1Z2dpbmcgc2VudC9yZWNlaXZlZCBkYXRhCgoyMDEwLTAyLTIyIDE5OjMzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIyIDE5OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODYuIFJlZ3Jlc3Npb24gdGVzdCAzNCAod2hldGhlciBhdXRoZW50aWNhdGlvbgogICBmYWlsdXJlIHRyYXBzIGFyZSBzZW50IGJ5IHNubXBkKSBwYXNzZXMgbm93IGFnYWluLgoKMjAxMC0wMi0yMiAwOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHN1cmUgdGhhdCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGRvZXMKICAgbm90IGNyZWF0ZSBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgTUlCIHN1YnRyZWUgcmVnaXN0cnkuCgoyMDEwLTAyLTIyIDA5OjExICBidmFzc2NoZQoKICAgKiBhZ2VudCwgYXBwcywgYXBwcy9zbm1wbmV0c3RhdDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMjIgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZToKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MTMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTWluR1cgd2hlbiBJUHY2IHN1cHBvcnQgaXMgZW5hYmxlZC4KCjIwMTAtMDItMjEgMTg6NTggIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL2xpYnNkbGwuZHN3LCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogcmVuYW1lZCBsaWJzZGxsLmRzdyBpbnRvIHdpbjMyZGxsLmRzdy4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIGxpbmtpbmcgdGhlIE5ldC1TTk1QCiAgIGFwcGxpY2F0aW9ucyB3aXRoIG5ldHNubXAuZGxsIGJ5IGFkZGluZyBhbGwgYXBwbGljYXRpb24gcHJvamVjdHMKICAgdG8gdGhlIHNhbWUgd29ya3NwYWNlIHRoYXQgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIERMTC4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG5ldHNubXAuZGxsIGxlc3MgZXJyb3IKICAgcHJvbmUgYnkgbGV0dGluZyB0aGUgY29tcGlsZXIgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUKICAgcHJlcHJvY2Vzc29yIHN5bWJvbCBORVRTTk1QX1VTRV9ETEwgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTAyLTIxIDE4OjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEFkZGVkIGxpYnNubXAuZGVmIHRvIHRoZSBsaXN0IG9mCiAgIGxpYnNubXBfZGxsLmRzcCBzb3VyY2UgZmlsZXMgc3VjaCB0aGF0IHRoZSBETEwgaXMgcmVidWlsdCB3aGVuCiAgIHRoZSAuZGVmIGZpbGUgaGFzIGJlZW4gbW9kaWZpZWQuCgoyMDEwLTAyLTIxIDE4OjQ1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9zZXRfbGluZV9idWZmZXJpbmcoKSBmcm9tCiAgIG5ldHNubXAuZGxsLgoKMjAxMC0wMi0yMSAxNzozOSAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW9yZSBXaW4zMiBJUHY2IHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGltcHJvdmVtZW50czoKICAgLSBNb3ZlZCAjdW5kZWYgSEFWRV9JRl9OQU1FVE9JTkRFWCBmcm9tIHNubXBsaWIvKi5jIHRvCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLgogICAtIENoYW5nZWQgdGhlIGdsb2JhbCBpbjZhZGRyX2FueSB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIHN1Y2ggdGhhdAogICBtdWx0aXBsZSBkZWZpbml0aW9ucyBkbyBub3QgdHJpZ2dlciBhIGxpbmtlciBlcnJvci4KICAgLSBBZGRlZCB0eXBlZGVmcyBmb3IgdWludDhfdCwgaW50OF90LCB1aW50MTZfdCBhbmQgaW50MTZfdC4KICAgLSBSZXBsYWNlZCAnI2lmIE5FVFNOTVBfRU5BQkxFX0lQVjYnIGJ5ICcjaWZkZWYKICAgTkVUU05NUF9FTkFCTEVfSVBWNicuCgoyMDEwLTAyLTIxIDA4OjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jOgoKICAgbWFrZSBzdXJlIHRoYXQgSU5BRERSX05PTkUgaXMgZGVmaW5lZCAoZml4ZXMgYnVpbGQgZXJyb3Igb24KICAgU29sYXJpcykKCjIwMTAtMDItMTkgMTk6MzkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgU3luY2hyb25pemVkIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGFuZAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDItMTkgMTQ6MTggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBsaWJzbm1wIGJ1aWxkcyBhZ2FpbiBhcyBhIERMTCB3aGVuIElQdjYgaXMKICAgZW5hYmxlZC4KCjIwMTAtMDItMTkgMTM6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93IHVwIGZvciByMTgxNjQ6IHN5bmNocm9uaXplZCBsaWJzbm1wLmRlZi5pbiB3aXRoCiAgIGxpYnNubXAuZGVmCgoyMDEwLTAyLTE5IDA5OjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBhZGRlZCAjaW5jbHVkZSA8bWFsbG9jLmg+IGluCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdCB0aGUgTVNWQyBjb21waWxlcgogICBkb2Vzbid0IGdldCBjb25mdXNlZCBieSB0aGUgbWFsbG9jIHJlZGVmaW5pdGlvbiB3aGVuIGJ1aWxkaW5nCiAgIGxpYnNubXAgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydGVkIG5ldHNubXBfcGFyc2VfYXJncygpIHN1Y2ggdGhhdCB0aGUgTmV0LVNOTVAgYXBwbGljYXRpb25zCiAgIGJ1aWxkIGFnYWluIHdoZW4gbGlic25tcCBpcyBidWlsdCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1vdmVkIE1TVkMgT3BlblNTTCBsaW5rZXIgc2V0dGluZ3MgZnJvbQogICBzbm1wbGliL2tleXRvb2xzLmMgdG8gd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0CiAgIHRoZXNlIHNldHRpbmdzIGFyZSBub3Qgb25seSBlZmZlY3RpdmUgd2hlbiBidWlsZGluZyBzbm1wbGliIGFzIGEKICAgc3RhdGljIGxpYnJhcnkgYnV0IGFsc28gd2hlbiBhbnkgTmV0LVNOTVAgYXBwbGljYXRpb24gaXMgYnVpbHQKICAgdGhhdCBsaW5rcyB3aXRoIHNubXBsaWIgYXMgYSBzdGF0aWMgbGlicmFyeSBvciBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6MzIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIFdpbjMyIGNsZWFudXA6IE1TVkMgLyBETEwgdGVzdHMgbm93IHVzZSB0aGUgb2ZmaWNpYWxseSBlbmRvcnNlZAogICBtYWNybyBuYW1lcy4KCjIwMTAtMDItMTkgMDc6NTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDItMTkgMDY6NDcgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAyOTQyOTQwOiBmcm9tICJCaWxsIEZlbm5lciI6IEFkZCBhIG5ldwogICBmdW5jdGlvbiwgbmV0c25tcF9wYXJzZV9hcmdzLCB0aGF0IGlzIGxpa2Ugc25tcF9wYXJzZV9hcmdzIGJ1dAogICB0YWtlcyBhbiBhZGRpdGlvbmFsIGJpdG1hc2ssIGZsYWdzLCB0byBhZmZlY3QgdGhlIGJlaGF2aW91ci4gQWxzbwogICByZW1vdmUgdGhlIG1hZ2ljIGhhbmRsaW5nIG9mIHNvbWUgYXBwbGljYXRpb24gbmFtZXMuCgoyMDEwLTAyLTE4IDE0OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9iaW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTE4IDE0OjIwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFNvcnRlZCBuYW1lcyBvZiBzb3VyY2UgZmlsZXMgYWxwaGFiZXRpY2FsbHkuCgoyMDEwLTAyLTE4IDEzOjAzICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBzbm1wbGliL3dpbnNlcnZpY2UuYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgd2luMzIvbmV0c25tcG1pYnNzZGssICAgCiAgICAgIHdpbjMyL3NubXBkc2RrLCB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGRyb3BwZWQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgTmV0LVNOTVAgd2l0aAogICBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgd2l0aG91dCBwbGF0Zm9ybSBTREsuIEJ1aWxkaW5nCiAgIE5ldC1TTk1QIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wICsgUFNESyBvciBhbnkgbGF0ZXIKICAgdmVyc2lvbiBvZiBNU1ZDIGlzIHN0aWxsIHBvc3NpYmxlIGhvd2V2ZXIuCiAgIAogICBOb3RlOiBpZiBpbiB0aGUgZnV0dXJlIGZvciB3aGF0ZXZlciByZWFzb24gaXQgc2hvdWxkIGJlY29tZQogICBuZWNlc3NhcnkgYWdhaW4gdG8gYmUgYWJsZSB0byBidWlsZCBOZXQtU05NUCB3aXRoIE1TVkMgd2l0aG91dAogICByZWx5aW5nIG9uIHRoZSBwbGF0Zm9ybSBTREsgaGVhZGVycywgcGxlYXNlICNpZmRlZiBvdXQgdGhlIE1JQgogICBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBQU0RLIGhlYWRlcnMgaW5zdGVhZCBvZiBzcGxpdHRpbmcgdGhlCiAgIHdvcmtzcGFjZSBmaWxlcyBhZ2Fpbi4KCjIwMTAtMDItMTggMTI6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICBkb3MydW5peC4KCjIwMTAtMDItMTggMDk6NDUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgU291cmNlIGNvZGUgY2xlYW51cDoKICAgLSBNb3ZlZCBkb2N1bWVudGF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0IG1lbWJlcnMgdG8gdGhlCiAgIGNvbW1lbnQKICAgYmxvY2sganVzdCBhYm92ZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIHR5cGUuCiAgIC0gUmVtb3ZlZCBzdXBlcmZsdW91cyAnZXh0ZXJuICJDIicgc3BlY2lmaWVyOiB0aGlzIGxpbmthZ2UKICAgc3BlY2lmaWVyCiAgIG9ubHkgaGFzIGFuIGVmZmVjdCBvbiBkZWNsYXJhdGlvbnMgb2YgdmFyaWFibGVzIG9mIGZ1bmN0aW9ucyBhbmQKICAgbm90CiAgIG9uIHR5cGVkZWZzIG9yIHN0cnVjdCBkZWZpbml0aW9ucy4KICAgLSBSYW4gdGhpcyBoZWFkZXIgZmlsZSB0aHJvdWdoIGluZGVudC4KCjIwMTAtMDItMTggMDk6MjYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQ2hhbmdlczoKICAgLSBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgogICAtIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IE1TVkMgKHBhc3NpbmcgaW50CiAgIGluc3RlYWQgb2YgdV9zaG9ydCB0byBodG9ucygpIC8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRoYXQgd2VyZQogICBtaXNzaW5nIGJlY2F1c2Ugb2YgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmVzKS4KCjIwMTAtMDItMTYgMTc6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBUaGUgaGVhZGVyIGZpbGUgPHN5cy90aW1lYi5oPiBpcyBubyBsb25nZXIKICAgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uIE9yOiB0aGUgaGVhZGVyIGZpbGUKICAgPHN5cy90aW1lYi5oPiB3aWxsIGhhdmUgdG8gYmUgaW5jbHVkZWQgZXhwbGljaXRseSBpbiBzb3VyY2UgZmlsZXMKICAgdGhhdCBuZWVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gZnRpbWUoKS4KICAgCiAgIE5vdGU6IGNvbXBhcmVkIHRvIHIxODAyNCBhbmQgYmVmb3JlLCB0aGlzIGNoYW5nZSBkb2VzIG5vdCBhZmZlY3QKICAgQlNEIHN5c3RlbXMgLS0gPHN5cy90aW1lYi5oPiB3YXMgb25seSBpbmNsdWRlZCBmcm9tCiAgIDxuZXQtc25tcC90eXBlcy5oPiBvbiBCU0Qgc3lzdGVtcyBpbiByZXZpc2lvbnMgcjE4MDI1Li5yMTgxNTIuCgoyMDEwLTAyLTE0IDE5OjI5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOgoKICAgQnVpbGRzIG5vdyBvbiBGcmVlQlNEIHZlcnNpb24gOC4wLgoKMjAxMC0wMi0xMyAyMDo1OSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBBZGp1c3QgdGhlIHBsYWNlbWVudCBvZiA7J3MgaW4gb3JkZXIgdG8KICAgYSkgQXZvaWQgd2FybmluZ3MgYWJvdXQgc3B1cmlvdXMgc2VtaWNvbG9ucwogICBiKSBOb3QgaGF2ZSB1bnRlcm1pbmF0ZWQgZGVjbGFyYXRpb25zIGluIGhlYWRlcnMKCjIwMTAtMDItMTIgMDI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiB1cGRhdGUgaW5saW5lIGRvY3VtZW50YXRpb247IGFkZCBzdG9yYWdldHlwZSB0ZXN0CiAgIGZvciBjb2x1bW5zCgoyMDEwLTAyLTEyIDAxOjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggdHlwbyBpbiBkZWZpbmUKCjIwMTAtMDItMTIgMDE6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IHNlZCBwcm9jZXNzaW5nIG9uIHdoaXRlLXNwYWNlIGFkZGluZyBzb2xhcmlzIG1hY2hpbmVzCgoyMDEwLTAyLTEwIDIzOjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGFkZCB0b3Agc3JjZGlyIHRvIGNwcCBzZWFyY2ggcGF0aAoKMjAxMC0wMi0xMCAyMzo1MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgZnJlZWJzZCBuZWVkcyB0aW1lLmggYWJvdmUgdGltZWIuaAoKMjAxMC0wMi0xMCAyMzozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICB1c2Ugc2VkIHdpdGggbXVsdGlyZXBsYWNlIG9uIGEgbGluZSB0byBmaXggcG9zc2libGUgd2hpdGVzcGFjZQogICBpc3N1ZSBvbiBzb2xhcmlzCgoyMDEwLTAyLTEwIDIzOjIyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGJlZ2lubmluZyB3b3JrIGZvciBUTFMgc2VwYXJhdGlvbiBpbnRvIHNlcGFyYXRlIGZpbGVzIHdpdGggYSBiYXNlCiAgIGZpbGUKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDoKCiAgIG1vdmUgYmFzZSB0cmFuc3BvcnQgY3JlYXRpb24gZnVuY3Rpb24gb3V0IG9mIGxpbnV4IGlmZGVmcwoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIGFub3RoZXIgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbgoKMjAxMC0wMi0xMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGRlZCBUTFMgb3ZlciBUQ1AKCjIwMTAtMDItMTAgMTY6MzkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBMaW51eDogSW1wcm92ZWQgRXRoZXJMaWtlLU1JQiBzdXBwb3J0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDEwLTAyLTEwIDEwOjA0ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBTdXBwb3J0IG51bGwtYnl0ZXMgaW4gb2N0ZXQgc3RyaW5ncwogICBQYXRjaCBzdXBwbGllZCBieSBUb21teSBCZWFkbGUKCjIwMTAtMDItMTAgMDA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgVExTIGluZnJhc3RydWN0dXJlIGludG8gYSBiYXNlIGRvbWFpbiBmaWxlCgoyMDEwLTAyLTEwIDAwOjA0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0NiBmdW5jdGlvbnMgdG8gdGhlIGlwdjYgYmFzZQoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2hpdGUgc3BhY2UgZm9ybWF0dGluZwoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgdWRwX3NlbmQvcmVjdiB0byB1ZHBiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlIG5ldHNubXBfc29ja19idWZmZXJfc2V0IGludG8gc29ja2V0YmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIG1vdmUgaXB2NCBzcGVjaWZpYyBVRFAgdHJhbnNwb3J0IGNyZWF0aW9uIHRvIHVkcGlwdjQgYmFzZQoKMjAxMC0wMi0xMCAwMDowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtYWRlIGNvbW1vbiBmdW5jdGlvbnMgYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBieSB0aGUgdHJhbnNwb3J0cwogICBhbmQgcmVtb3ZlZCBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5OyB0aGV5IHdlcmUgc3RhdGljIHNvIHRoZXJlIGlzCiAgIG5vIGJhY2t3YXJkcyBjb21wYXQgaXNzdWVzCgoyMDEwLTAyLTEwIDAwOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0IGJhc2VkIGNsb3NlIHRvIGEgc29ja2V0IGJhc2VkIGRvbWFpbiBjb21tb24gdG8gbWFueQogICB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIG1vdmUgVENQIGNvbW1vbiBmdW5jdGlvbnMgdG8gYSBUQ1BCYXNlIGRvbWFpbiBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0wOSAyMzo1NyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2FybmluZyBjbGVhbnVwCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHRtU3RhdGVSZWZlcmVuY2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBpbmRleGVkIGFkZHJfcGFpcgoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbWFrZSBuZXRzbm1wX2R0bHN1ZHBfY2xvc2UgbWFrZSB1c2Ugb2YgbmV0c25tcF9iYXNldWRwX2Nsb3NlCgoyMDEwLTAyLTA5IDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGJhc2UgVURQIHNvY2tldCBjcmVhdGlvbiBpbnRvIGEgY29tbW9uIGJhc2UgZnVuY3Rpb24gYW5kCiAgIG1hZGUgdXNlIG9mIGl0CgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oOgoKICAgcHJvcGVyIF9IIGlmZGVmIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgYWRkZWQgYSByYXcgVURQIGJhc2UgZG9tYWluCgoyMDEwLTAyLTA5IDIzOjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBjcmVhdGVkIGEgVURQIElQdjQgYmFzZTsgbW92ZWQgYW5kIHJldXNlZCBtb3JlIGluZnJhc3RydWN0dXJlCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBpcHY0IGFkZHJlc3MgZm9ybWF0dGluZyBpbnRvIHNubXBJUHY0QmFzZURvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUwICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIE5ldyBJUHY0IGFuZCBJUCBiYXNlIHRyYW5zcG9ydCBmaWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZG9uJ3QgZG91YmxlIGluY2x1ZGUgdHJhbnNwb3J0IG1vZHVsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGFuZCByZXBvcnQgY29uZmlnX2Vycm9ycyBpbiB0cmFuc3BvcnQgaGVhZGVycwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBhbGxvdyBhIE5FVFNOTVBfUVVJQ0tfQ0hFQ0sgZW52IHZhcmlhYmxlIHRvIGJ5cGFzcyBoZWFkZXIgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBiZXR0ZXIgY29tbWVudHMKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBjb25maWdfcmVxdWlyZSBtYWNyb3MgaW4gdHJhbnNwb3J0IGhlYWRlcnMgZm9yCiAgIGZvcmNlLWluY2x1ZGluZyBvZiBvdGhlciB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWZpbmUgYSBzdGFuZGFyZGl6ZWQgaW5kZXhlZCBhZGRyX3BhaXIgaW5zdGVhZCBvZiB1c2luZyBvbmUKICAgbGFiZWxlZCBvbmx5IGZvciBVRFAgZXZlcnl3aGVyZQoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggdHJhbnNwb3J0IHByZWZpeCBsaXN0IGZvciBpbmNvbWluZyBtZXNzYWdlcwoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wdHNtLmM6CgogICByZW1vdmUgdGhlIHNlY3VyaXR5IGxldmVsIGZyb20gdGhlIFRTTSBjYWNoZTsgcHJldmlvdXMgZXhpc3RlbmNlCiAgIGZyb20gZnJvbSBhIGRyYWZ0IGNvcHkgb2YgdGhlIFRTTSBSRkMgYW5kIGlzIG5vdyBzdG9yZWQgZW50aXJlbHkKICAgaW4gdGhlIHRtIHJlZmVyZW5jZQoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgaW5jb21pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBvdXRnb2luZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgY3JlYXRlIGRlZmluZWQgc2l6ZWQgYXJyYXkgYW5kIGxlbmd0aCB2YXJpYWJsZQoKMjAxMC0wMi0wNSAwOTo1MiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBmaWxlZGVzY3JpcHRpb3IgbGVhayBpbiBFdGhlcmxpa2UtTUlCIGFuZAogICBSTU9OLU1JQgoKMjAxMC0wMi0wNCAxNTo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgcmVhbCBpZlNwZWVkIG9mIG5ldHdvcmsgaW50ZXJmYWNlIGV2ZW4gaXQKICAgaXMgZG93bi4KICAgU29tZSBpbnRlcmZhY2VzIGNhbiByZXBvcnQgdGhlaXIgcmVhbCBzcGVlZCwgZXZlbiB0aGV5IGFyZSBkb3duLgogICBBbmQgaWYgdGhleSBjYW4ndCwgdGhlIGZhbGxiYWNrIHRvIDEwTWJwcyBpcyBzdGlsbCB0aGVyZS4KCjIwMTAtMDItMDEgMTQ6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBmaWxlCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYy4KCjIwMTAtMDItMDEgMTQ6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgc25tcGxpYi9rZXl0b29scy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBwcm9jZWR1cmUgZm9yIGJ1aWxkaW5nCiAgIHdpdGggU05NUHYzIHN1cHBvcnQgZW5hYmxlZCAoT3BlblNTTCkuCgoyMDEwLTAyLTAxIDE0OjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWxsIGNhbGxzIHRvIGZyZWUoKSBhcmUgaW50ZXJjZXB0ZWQgd2hlbiBidWlsZGluZwogICB3aXRoIGRtYWxsb2MKICAgc3VwcG9ydCBlbmFibGVkLiBJbmNsdWRlZCA8ZG1hbGxvYy5oPiBpbiB0aG9zZSBzb3VyY2UgZmlsZXMgd2hlcmUKICAgaXQgd2FzIG5vdAogICB5ZXQgaW5jbHVkZWQsIGFuZCBwcm92aWRlZCBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGZyZWUoKSB3aGVyZQogICB0aGUgYWRkcmVzcyBvZgogICB0aGlzIGZ1bmN0aW9uIHdhcyB0YWtlbiAoRG1hbGxvYyBjYW4gb25seSBpbnRlcmNlcHQgZnJlZSgpIHdoZW4KICAgaXQgaXMgY2FsbGVkCiAgIGRpcmVjdGx5IGJ1dCBub3Qgd2hlbiBpdCBpcyBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIHBvaW50ZXIpLgoKMjAxMC0wMi0wMSAxMDo0OSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgTkVXUzogYnVpbGRpbmc6IEJ1aWxkaW5nIE5ldC1TTk1QIHdpdGggZG1hbGxvYyBzdXBwb3J0IGVuYWJsZWQgaXMKICAgYWdhaW4gcG9zc2libGUuCgoyMDEwLTAyLTAxIDAxOjA1ICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1QIHRjcCInIHdvcmtzIGZpbmUgbm93CgoyMDEwLTAxLTMxIDA4OjAyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBhbiBzaCBzeW50YXggZXJyb3IgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQKICAgdGhhdCB3YXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2l0aG91dCBsaWJjcnlwdG8gYW5kIHdpdGhvdXQKICAgbGliZWF5MzIuCiAgIFRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOgogICBjb25maWd1cmVbMzMxMzZdOiB4OiB1bmtub3duIHRlc3Qgb3BlcmF0b3IKCjIwMTAtMDEtMjkgMjA6MDcgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBFbGFib3JhdGUgb24gcmV2LiAxODA4OSBhbmQgYWRqdXN0IHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHRoZQogICAqICAgICpyZWFsbHkgd29ya2luZyBvbmUqLiAgMjAxMC0wMS0yOSAxOToxMSAganNhZnJhbmVrCgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBGaXggdGVzdCAzNSB3aGVuIGNvbmZpZ3VyZSBvcHRpb24gJy0td2l0aC10ZW1wLWZpbGUtcGF0dGVybicgd2FzCiAgIHVzZWQgYW5kIHRoZSBkaXJlY3RvcnkgZm9yIHRlbXAuIGZpbGVzIGRvZXMgbm90IGV4aXN0IHlldC4KCjIwMTAtMDEtMjkgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9jbG9zZWRpci5jLCAgIAogICAgICBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL29wZW5kaXIuYywgc25tcGxpYi9yZWFkZGlyLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBNb3ZlZCB0aGUgc291cmNlIGNvZGUgb2YgdGhlIG9wZW5kaXIoKSwgcmVhZGRpcigpLCBjbG9zZWRpcigpIGFuZAogICBnZXR0aW1lb2ZkYXkoKSByZXBsYWNlbWVudHMgZm9yIE1TVkMgZnJvbSBzbm1wbGliL3N5c3RlbS5jIHRvCiAgIHNlcGFyYXRlIHNvdXJjZSBmaWxlcyBpbiBzbm1wbGliLgoKMjAxMC0wMS0yOSAwODo1NyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENvbmZpZ3VyZSBzY3JpcHQgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnQ6IHJlbmFtZWQgdGhlIHZhcmlhYmxlCiAgICJzYXZlZF9MSUJTIiBpbnRvICJuZXRzbm1wX3NhdmVfTElCUyIuCgoyMDEwLTAxLTI5IDA2OjM5ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgdGhlIHNpemUgb2Ygc3VuX3BhdGggYW5kIHVzZSB0aGF0IHRvCiAgIGdlbmVyYXRlIHRoZSBtYXhpbWFsIHNpemUgc3RyaW5ncyBmb3Igc3RyZXNzaW5nIGNvbTJzZWN1bml4LgoKMjAxMC0wMS0yNyAxNToxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTkVXUzogTWluR1c6IHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdCBzdWl0ZSBpcyBhZ2FpbiBwb3NzaWJsZQogICAoJ21ha2UgdGVzdCcpLgoKMjAxMC0wMS0yNyAxNDo0MyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRpbmcgd2l0aCBhbm90aGVyIE9wZW5TU0wgcGFja2FnZSB0aGFuIHRoZQogICBDeWd3aW4tcHJvdmlkZWQgcGFja2FnZXMgb3BlbnNzbCBhbmQgb3BlbnNzbC1kZXZlbCBpcyBhZ2FpbgogICBwb3NzaWJsZS4KICAgTkVXUzogTWluR1c6IGJ1aWxkaW5nIHdpdGggT3BlblNTTCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDEtMjYgMjE6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBjb250ZXh0IGFyZ3VtZW50IG9mIHNlbmRfdjN0cmFwLAogICBzZW5kX3RyYXBfdmFyc193aXRoX2NvbnRleHQgYW5kIG5ldHNubXBfc2VuZF90cmFwcyByZWZlciB0byBhCiAgIGNvbnN0IGNoYXIqLgoKMjAxMC0wMS0yNiAyMToyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOgoKICAgQ29ycmVjdCBtaXNzcGVsbGluZyAtICNlbHNpZiB0byAjZWxpZgoKMjAxMC0wMS0yNiAyMToyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBBcHBhcmVudGx5IG5vdCBhbGwgc3lzdGVtcyBkZWZpbmUgSU5FVF9BRERSU1RSTEVOIHNvIGFkZCBpdCBpZiBpdAogICBpcyBtaXNzaW5nLgoKMjAxMC0wMS0yNiAxNTo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZGVkIG5ldHN0YXQgcGF0aCBmb3IgTWluR1cuCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCBzdGF0IG5hbWVzCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVwZGF0ZSBjb21tZW50cyB0byByZWZsZWN0IFJGQzU1OTEgYXMgdGhlIGRvY3VtZW50IGRlc2NyaWJpbmcgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTAxLTI2IDExOjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBieXRlIG9yZGVyIG9mIHVkcExvY2FsUG9ydCBpcyBub3cKICAgY29ycmVjdC4KCjIwMTAtMDEtMjYgMTA6NDYgIGJ2YXNzY2hlCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBmaXhlZCB0ZXN0IGluZnJhc3RydWN0dXJlICgibWFrZQogICB0ZXN0IikuIFRoaXMgaGFzIGJlZW4gZml4ZWQgYnkgdXNpbmcgdGhlIHByb3BlciBlbnZpcm9ubWVudAogICBzZXBhcmF0b3IgY2hhcmFjdGVyIGFuZCBieSBhZGRpbmcgdGhlIHBhdGggb2YgdGhlIG5ldHN0YXQKICAgZXhlY3V0YWJsZSBmb3IgQ3lnd2luIGluIHRlc3RpbmcvVEVTVENPTkYuc2guCgoyMDEwLTAxLTI2IDA5OjI3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggcmFyZSByYWNlIGNvbmRpdGlvbiB3aGVuIHJlYWRpbmcgUlBNCiAgIGRhdGFiYXNlLgogICBPbGQgcnBtIHZlcnNpb25zIHJldHVybiBOVUxMIGluc3RlYWQgb2YgSGVhZGVyIHdoZW4gYW5vdGhlciBSUE0KICAgaW5zdGFuY2UgaG9sZHMKICAgZGF0YWJhc2UgbG9ja3MuIEkuZS4gc25tcGQgc29tZXRpbWVzIGNyYXNoZXMgd2hlbiByZWFkaW5nCiAgIGhyX3N3SW5zdCBhbmQgcnBtIGlzCiAgIGluc3RhbGxpbmcvdXBkYXRpbmcvcmVtb3ZpbmcgYW5vdGhlciBwYWNrYWdlLiBBcyBhIHNvbHV0aW9uLAogICB3aG9sZSBSUE0gY2FjaGUKICAgaXMgdGhyb3duIGF3YXkgYW5kIHJlLXJlYWQgd2hlbiB3ZSBnb3QgYW4gZXJyb3IgZnJvbSBsaWJycG0uIFRoZQogICB3aG9sZSBwcm9jZXNzCiAgIGlzIHJlc3RhcnRlZCBvbmx5IHRocmVlIHRpbWVzLCB0byBwcmV2ZW50IGVuZGxlc3MgbG9vcC4KCjIwMTAtMDEtMjUgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBEbyBub3QgY2hlY2sgaWYgdmFsdWVzIG9mIHR5cGUgc2l6ZV90CiAgIGFyZSBsZXNzIHRoYW4gMC4KCjIwMTAtMDEtMjUgMjI6MTEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IENoZWNrIHRoZSByYW5nZSBvZiBvaWQgdmFsdWVzIHRvd2FyZHMgdGhlIG1heGltdW0KICAgb2lkIHZhbHVlLCBub3RVTE9OR19NQVgKCjIwMTAtMDEtMjUgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgb25seSBiYWlsIG9uIG1pc3NpbmcgbGliaXBobHBhcGkgZm9yIHh3aW5zb2NrMgoKMjAxMC0wMS0yNSAxOTo1NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW5hbWUgTUFYX1NUQVRTIHRvIE5FVFNOTVBfU1RBVF9NQVhfU1RBVFMKCjIwMTAtMDEtMjUgMTk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzOyBjaGVjayBmb3IgaW5kZXgKICAgb3ZlcmZsb3cKCjIwMTAtMDEtMjUgMTk6NDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzCgoyMDEwLTAxLTI1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVzZSAqY3VycmVudCogY29weSBvZiB0aGUgTUlCIHdoZW4gZ2VuZXJhdGluZyBzdGF0cwoKMjAxMC0wMS0yNSAxNjowMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgbW92ZSBzbm1wX2dldF9zdGF0aXN0aWMgaGVscGVyIHRvIGhlbHBlcnMgZGlyOyB1cGRhdGUgYWxsX2hlbHBlcnMKICAgaGVhZGVyCgoyMDEwLTAxLTI1IDE0OjM0ICBidmFzc2NoZQoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFJlcGxhY2VkIGV4cGxpY2l0IGRlY2xhcmF0aW9ucyBvZiBvcHRpbmQsIG9wdG9wdCBhbmQgb3B0YXJnIGJ5CiAgICNpbmNsdWRlIDx1bmlzdGQuaD4gYmVjYXVzZSBleHBsaWNpdGx5IGRlY2xhcmluZyB0aGVzZSB2YXJpYWJsZXMKICAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBDeWd3aW4uCgoyMDEwLTAxLTI1IDE0OjI1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IEN5Z3dpbjogSVB2NiBpcyBvbmx5IHN1cHBvcnRlZCB1bmRlciBDeWd3aW4gMS43IG9yIGxhdGVyLgogICBUaGUgb2xkIGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydCBpbiBOZXQtU05NUCB1bmRlciBDeWd3aW4KICAgaW52b2x2ZWQgYSBzdHJhbmdlIG1peHR1cmUgb2YgQ3lnd2luIGFuZCBXaW5zb2NrMiBzb2NrZXQgY2FsbHMsCiAgIHdoaWNoIHdhcyB0b28gaGFyZCB0byBtYWludGFpbi4KICAgTkVXUzogQ3lnd2luOiBidWlsZHMgYWdhaW4gd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZAogICAoLS1lbmFibGUtaXB2NikuIEF0IGxlYXN0IE5ldC1TTk1QIDUuNSBkb2Vzbid0IGJ1aWxkIHVuZGVyIEN5Z3dpbgogICB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkLiBUaGUgY29uZmlndXJlIHNjcmlwdCByZXBvcnRlZAogICAiY2hlY2tpbmcgaXB2NiBzdGFjayB0eXBlIC4uLiByZXN1bHQ6ICJ1bmtub3duLCBubyIgLi4uIGVycm9yOgogICBJUHY2IHRyYW5zcG9ydHMgbm90IGF2YWlsYWJsZSBpZiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQiLgoKMjAxMC0wMS0yNSAxNDoxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgPHN0cmluZy5oPi4KCjIwMTAtMDEtMjUgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciB0aGUgSVB2NiBzdGFjayBpbmNsdWRlZCBpbiBDeWd3aW4KICAgdmVyc2lvbiAxLjcuCiAgIElQdjYgc3VwcG9ydCBpcyBvbmUgb2YgdGhlIG5ldyBmZWF0dXJlcyBvZiBDeWd3aW4gMS43LiBGb3IgbW9yZQogICBpbmZvcm1hdGlvbiwKICAgc2VlIGFsc28gaHR0cDovL2N5Z3dpbi5jb20vY3lnd2luLXVnLW5ldC9vdi1uZXcxLjcuaHRtbC4KCjIwMTAtMDEtMjUgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IEN5Z3dpbjogdGhlIG1lc3NhZ2UgImNvbmZpZ3VyZTogV0FSTklORzogd2luc29jay5oOgogICBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIGRvZXMgbm8gbG9uZ2VyIGFwcGVhciB3aGVuCiAgIHJ1bm5pbmcgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCiAgIEZvbGxvdy11cCBmb3IgcjE4MDUwOiByZS1lbmFibGVkIGxpYmlwaGxwYXBpIGFuZCBpcGhscGFwaS5oIHRlc3RzCiAgIGZvciBub24tTWluR1cgcGxhdGZvcm1zIHNpbmNlIHRoZSBDeWd3aW4gYnVpbGQgbmVlZHMgdGhlc2UuCgoyMDEwLTAxLTI1IDA3OjI4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgCiAgICAgICBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBhdXRvY29uZiB0byBkZWNpZGUgaWYgaW5ldF9udG9wLmMgYW5kCiAgIGluZXRfcHRvbi5jIGFyZSB0byBiZSBjb21waWxlZC4KCjIwMTAtMDEtMjUgMDc6MDkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgQ0hBTkdFUzogTWluR1c6IHN0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjb25maWd1cmUgdGVzdAogICBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yNSAwNToxNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBUTFNUTSBjb3VudGVyIHN0YXRzCgoyMDEwLTAxLTI1IDA1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBpbiBUU00gbmVlZGVkIGNvdW50ZXIgZGVmaW5pdGlvbnMKCjIwMTAtMDEtMjUgMDU6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UU00tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgYWRkZWQgdGhlIFNOTVAtVFNNLU1JQgoKMjAxMC0wMS0yNCAxNDo0MyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgTkVXUzogc25tcGQ6IE1hZGUgc3VidHJlZV9jb250ZXh0X2NhY2hlOjpjb250ZXh0X25hbWUgYSBjb25zdAogICBjaGFyKi4KCjIwMTAtMDEtMjQgMTQ6MjcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCgoyMDEwLTAxLTI0IDEzOjI3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IFByZWZlciB0byB1c2UgYSB2YXJpYWJsZSBvZiB0aGUgcmlnaHQgdHlwZSBvdmVyCiAgIGFuIHVnbHkgY2FzdC4gTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgYXMgd2VsbC4KCjIwMTAtMDEtMjQgMTI6NTkgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEludHJvZHVjZWQgdGhlIHZhcmlhYmxlICd3aXRoX3NvY2tsaWInIGluIHRoZQogICBjb25maWd1cmUgc2NyaXB0LiBUaGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIGZvciBNaW5HVwogICBhbmQgdG8gImRlZmF1bHQiIGZvciBhbGwgb3RoZXIgc3lzdGVtcy4gV2luc29jazIgdGVzdHMgYXJlIG9ubHkKICAgcnVuIGlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgKE1pbkdXKS4KCjIwMTAtMDEtMjQgMTI6NTMgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBkZWJ1ZyBsb2dzLgoKMjAxMC0wMS0yNCAxMjo0NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeGVzOiBmaXhlZCB3YXJuaW5ncyBhYm91dCBjaGFyICogLwogICB1bnNpZ25lZCBjaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1ha2UgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpCiAgIGRlY2xhcmF0aW9ucwogICBhdmFpbGFibGUgdG8gdGhlIGNvbXBpbGVyLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWRlIHN1cmUgdGhhdCA8d3MydGNwaXAuaD4gd2lsbAogICBiZSBpbmNsdWRlZAogICBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4KICAgYWJvdXQgc3RydWN0CiAgIHNvY2thZGRyX2luNiBiZWluZyB1c2VkIGJlZm9yZSBiZWluZyBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMTo0MiAgYnZhc3NjaGUKCiAgICogbWFuOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMS0yNCAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrZ2V0LmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsICAgCiAgICAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCAgIAogICAgICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENsZWFudXAgKFdpbmRvd3MpOiByZW1vdmVkIHN1cGVyZmx1b3VzICNpbmNsdWRlIDxzeXMvdGltZWIuaD4KICAgZGlyZWN0aXZlcy4gVGhpcyBoZWFkZXIgZmlsZQogICBoYXMgb25seSB0byBiZSBpbmNsdWRlZCBmcm9tIHNubXBsaWIvc3lzdGVtLmMgYmVjYXVzZSBvZiB0aGUKICAgX2Z0aW1lKCkgY2FsbCBpbiB0aGF0IGZpbGUuCgoyMDEwLTAxLTI0IDEwOjQzICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFRoZSBtYWNybyAnQygpJyBub3cgY2FzdHMgaXRzIHJlc3VsdCBmcm9tIHVuc2lnbmVkIGxvbmcgdG8KICAgdW5zaWduZWQgaW50LgogICBUaGlzIGNoYW5nZSBmaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIG1pc21hdGNoZXMKICAgYW5kIGZpeGVzIGEgYnVnIChpbmNvcnJlY3Qgc25tcG5ldHN0YXQgb3V0cHV0KSBvbiBiaWcgZW5kaWFuCiAgIHN5c3RlbXMuCgoyMDEwLTAxLTI0IDEwOjMzICBidmFzc2NoZQoKICAgKiBtYW4vY29uZmlnX2FwaS4zOgoKICAgRm9sbG93LXVwIGZvciByMTc5NDY6IHJlbW92ZWQgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tCiAgIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTI0IDEwOjMxICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1vdmVkIHR3byBkZWNsYXJhdGlvbnMgb2Ygc3RhdGljIGZ1bmN0aW9ucyBmcm9tIC5oIHRvIC5jLgoKMjAxMC0wMS0yNCAxMDoyMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoKMjAxMC0wMS0yNCAxMDoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYnVpbGRzIGFnYWluIHdoZW4gSEFWRV9HRVRBRERSSU5GTyBpcyBub3QKICAgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTA6MDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvaW5ldF9udG9wLmMsICAgCiAgICAgIHNubXBsaWIvaW5ldF9udG9wLmgsIHNubXBsaWIvaW5ldF9wdG9uLmMsIHNubXBsaWIvaW5ldF9wdG9uLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgY29uZmlndXJlIHRlc3RzIGZvciBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkuCiAgIC0gQWRkZWQgaGVhZGVyIGZpbGVzIHNubXBsaWIvaW5ldF9udG9wLmggYW5kIHNubXBsaWIvaW5ldF9wdG9uLmguCiAgIC0gUmVwbGFjZWQgImV4dGVybiBpbmV0X250b3AoLi4uKTsiIGFuZCAiZXh0ZXJuIGluZXRfcHRvbiguLi4pOyIKICAgYnkgI2luY2x1ZGUgImluZXRfbnRvcC9wdG9uLmgiLgogICAtIENvbnZlcnRlZCBzbm1wbGliL2luZXRfbnRvcC5jIGFuZCBzbm1wbGliL2luZXRfcHRvbi5jIGZyb20gSyZSCiAgIEMgdG8gQU5TSSBDLgogICAtIFJlcGxhY2VkIHRoZSBpbmV0X2F0b24oKSBjYWxscyB0aGF0IHdlcmUgaW50cm9kdWNlZCBpbiByMTgwMzMKICAgaW4gc25tcGxpYi9zbm1wVURQRG9tYWluLmMgYnkgaW5ldF9wdG9uKCkgY2FsbHMgc3VjaCB0aGF0IGl0IGlzCiAgIGFnYWluIHBvc3NpYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIG9uIFdpbmRvd3MuCgoyMDEwLTAxLTI0IDA2OjA4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zIHRoYXQgZG9uJ3QKICAgZXhpc3Qgb3IgYXJlIGRlY2xhcmVkIGVsc2V3aGVyZS4KCjIwMTAtMDEtMjQgMDU6NDggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZWQgdGhlIHVudXNlZCB2YXJpYWJsZXMgd2FybV9zdGFydF9vaWQsCiAgIGxpbmtfZG93bl9vaWQsIGxpbmtfdXBfb2lkLCBhdXRoX2ZhaWxfb2lkIGFuZCBlZ3BfeHh4X29pZC4KCjIwMTAtMDEtMjMgMjI6MDYgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZXR0ZXIgc2V0IG9mIFNLSVBJRi9TS0lQSUZOT1RTCgoyMDEwLTAxLTIzIDIwOjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZSBjb3JyZWN0IGluIHdoYXQgaXQgaXMgdGhhdCBpcyB0ZXN0ZWQgaW4gdGhlIGhlYWRlci4KCjIwMTAtMDEtMjMgMjA6MjcgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2VkIHRoZSBjb20yc2VjIGRpcmVjdGl2ZXMgdG8gZmFpbCBpZiB0aGVyZQogICBhcmUgdG9vIGZldyBhcmd1bWVudHMuIEFkZGl0aW9uYWxseSBjaGFuZ2VkIHRoZSBzdG9yYWdlIHN0cnVjdHVyZQogICB0byBub3QgYWxsb2NhdGUgbW9yZSBzcGFjZSB0aGFuIG5lY2Vzc2FyeS4KCjIwMTAtMDEtMjMgMjA6MjIgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBuZXcgdGVzdHMgY2hlY2tpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIHRoZSBjb20yc2VjKiBkaXJlY3RpdmVzCgoyMDEwLTAxLTIzIDE5OjE3ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgwMjU6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMyAxNzo1MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogT1MgaGVhZGVyIGRldGVjdGlvbiBjaGVjayBpcyBub3cgcnVuIGJlZm9yZQogICBJUHY2IHN0YWNrIGRldGVjdGlvbi4KICAgQ0hBTkdFUzogU29sYXJpczogc29ja2FkZHJfaW42LnNpbjZfYWRkciBjb25maWd1cmUgdGVzdCBkb2VzIG5vdwogICB3b3JrLgoKMjAxMC0wMS0yMyAxNzo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEZpeGVkIGEgU29sYXJpcy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMS0yMyAxNzowMCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgTWluR1c6IGFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciA8c3lzL3RpbWViLmg+IGFuZCBhbHNvIGZvciBzdHJ1Y3QKICAgdGltZXpvbmUuCgoyMDEwLTAxLTIzIDE2OjMyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBNaW5HVzogbWFkZSBzdXJlIHRoYXQgdGhlIElQdjYtcmVsYXRlZCBkYXRhdHlwZXMgYXJlIGF2YWlsYWJsZQogICBiZWZvcmUgYmVpbmcgdXNlZC4KCjIwMTAtMDEtMjMgMTY6MzAgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCAjdW5kZWYgSEFWRV9XSU5ET1dTX0guCgoyMDEwLTAxLTIzIDE2OjI4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcKICAgcHJvdG90eXBlIGZvciBpc2RpZ2l0KCkuCgoyMDEwLTAxLTIzIDE2OjI0ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgTWluR1c6IGlwaGxwYXBpLmggY29uZmlndXJlIHRlc3QgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjMgMTU6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIFJlbmFtZWQgdGhlIFdpbnNvY2syIElQdjYgc3RhY2sgZnJvbSAnbWluZ3cnIGludG8gJ3dpbnNvY2syJy4KCjIwMTAtMDEtMjMgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJldHdlZW4gdGhlIHN1cHBvcnRlZCBXaW4zMiBjb21waWxhdGlvbgogICBlbnZpcm9ubWVudHMgYXMgZm9sbG93czoKICAgLSBNYWRlIHN1cmUgdGhhdCB0aGUgPHdpbnNvY2syLmg+IGFuZCA8d3MydGNwaXAuaD4gaGVhZGVyIGZpbGVzCiAgIGFyZSBvbmx5IGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGNvbmZpZ3VyZSBjaGVjayBmb3IgPGlwaGxwYXBpLmg+LgogICAtIFJlcGxhY2VkIHNldmVyYWwgV0lOMzIgLyBjeWd3aW4gdGVzdHMgYnkgYSBIQVZFX0lQSExQQVBJX0gKICAgdGVzdC4KICAgLSBEb2N1bWVudGVkIHRoYXQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaXMgb25seSB1c2VkCiAgIGZvciB0aGUgTVNWQyBidWlsZC4KCjIwMTAtMDEtMjIgMTY6NDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTEwOiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbwogICA2LgoKMjAxMC0wMS0yMiAxNjo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL01nbXRBcGktd2luRXh0RExMLmg6CgogICBGb2xsb3cgdXAgZm9yIHIxODAxNjogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIyIDE0OjEzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwMTY6IG1hZGUgTWluR1cgbGliaXBobHBhcGkgY2hlY2sgbW9yZSByb2J1c3QuCgoyMDEwLTAxLTIyIDEzOjMyICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBhY2xvY2FsLm00LCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHdpbjMyL1NubXAtd2luRXh0RExMLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IE1pbkdXOiB3aW5FeHRETEwgY29tcGlsZXMgbm93IHVuZGVyIE1pbkdXLgogICBDSEFOR0VTOiBNaW5HVzogYnVpbGRpbmcgTmV0LVNOTVAgd29ya3MgYWdhaW4uCiAgIAogICBEZXRhaWxlZCBvdmVydmlldzoKICAgKiBDaGFuZ2VzIGluIHRoZSBjb25maWd1cmUgc2NyaXB0OgoKICAgLSBzb2NrZXQoKSBsaWJyYXJ5IGNoZWNrIHBhc3NlcyBhZ2FpbiBvbiBNaW5HVy4KICAgLSBBZGRlZCBsaWJyYXJ5IGNoZWNrcyBmb3IgbGlid3MyXzMyLCBsaWJyZWdleCBhbmQgbGlic25tcGFwaS4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIHdpbnNvY2syLmggYW5kIHdzMnRjcGlwLmggaGVhZGVyIGZpbGVzLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgY2hvd24oKSBhbmQgbG9jYWx0aW1lX3IoKSBmdW5jdGlvbnMuCiAgIC0gc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY2hlY2sgZG9lcyBub3cgd29yayBvbiBNaW5HVy4KICAgLSBBZGRlZCBJUHY2IHN0YWNrIHR5cGUgY2FsbGVkICJtaW5ndyIuCiAgICogU291cmNlIGNvZGUgY2hhbmdlczoKCiAgIC0gSW5jbHVkZSA8d2luc29jazIuaD4gZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gaW5zdGVhZCBvZgogICA8d2luc29jay5oPgogICB1bmRlciBNaW5HVyBzdWNoIHRoYXQgSVB2NiBzdXBwb3J0IGlzIGF2YWlsYWJsZS4KICAgLSBNb3ZlZCAjaW5jbHVkZSA8d2luc29jay5oPiBmcm9tIC5jIGZpbGVzIHRvIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBhIGNvcHkgb2YgdGhlIE1pbkdXIGhlYWRlciBmaWxlIDxzbm1wLmg+ICh3aGljaCBpcyBub3QKICAgY29weXJpZ2h0ZWQpCiAgIGFzIHdpbjMyL1NubXAtd2luRXh0RExMLmguCiAgIC0gYWdlbnQ6IG9ubHkgY2FsbCBjaG93bigpIHdoZW4gYXZhaWxhYmxlIChIQVZFX0NIT1dOKS4KICAgKiBEb2N1bWVudGF0aW9uIGNoYW5nZXM6IHVwZGF0ZWQgUkVBRE1FLndpbjMyLgoKCjIwMTAtMDEtMjIgMDg6MzQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBjYXN0IGZyb20gY2hhciogdG8gY2hhcioKCjIwMTAtMDEtMjIgMDA6MzkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBDb3B5cmlnaHQgZmlsZSB1cGRhdGUgZm9yIFNQQVJUQSwgSW5jLgoKMjAxMC0wMS0yMiAwMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBhZGQgcHJvcGVyIHByZWZpeGVzIGluIFRTTSBmb3IgU1NILCBEVExTLCBldGMsIGJhc2VkIG9uIHRoZQogICBkb21haW4KCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhZGRlZCA1LjUgYnJhbmNoCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG1pbm9yIGVjaG8gb3V0cHV0IGNoYW5nZQoKMjAxMC0wMS0yMSAyMDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY29tbWVudCBuZXh0IHRvIGNvZGUgaXQgaXMgdGFsa2luZyBhYm91dDsgTm8gY29kZSBjaGFuZ2UKCjIwMTAtMDEtMjEgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjkyNjM3NDogZnJvbSBFZCBTd2llcms6IGZpeGVkIHJlYWRpbmcgb2YKICAgaXBBZGRyZXNzVGFibGUgZnJvbSAvcHJvYy9uZXQvaWZfaW5ldDYgb24gTGludXgKICAgCiAgIFRoZSBrZXJuZWwgbWlnaHQgcHJvdmlkZSBsb25nZXIgZmllbGRzLCBlc3BlY2lhbGx5IG9uIDY0LWJpdAogICBzeXN0ZW1zLgoKMjAxMC0wMS0yMCAxMjo0MiAgYnZhc3NjaGUKCiAgICogUE9SVElORywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEZpeGVkIHR5cG86IHJlcGxhY2VkICduZWNpc3NhcnknIGJ5ICduZWNlc3NhcnknLgoKMjAxMC0wMS0yMCAwODo1MyAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEZpeCBtaW5vciB0eXBvIGluIG1hbiBwYWdlLCBpdCdzIHNubXBuZXRzdGF0IC1DcCwgbm90IC1DUC4KCjIwMTAtMDEtMTQgMTI6MzQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBmaXhlZCBtZW1vcnkgbGVhayBpbiBSTU9OLU1JQiBhbmQgRVRIRVJMSUtFLU1JQiB3aGVuCiAgIHRoZXJlIGFyZSBtdWx0aXBsZSBhbGlhc2VzIG9mIGFuIG5ldHdvcmsgaW50ZXJmYWNlCiAgIFJhdGlvbmFsZTogdGhlIGFsaWFzZWQgaW50ZXJmYWNlcyBoYXZlIHRoZSBzYW1lIGlmSW5kZXggLT4KICAgQ09OVEFJTkVSX0lOU0VSVCBmYWlscywgYnV0IHRoZSByZWplY3RlZCBlbnRyeSB3YXMgbm90IGZyZWVkLgoKMjAxMC0wMS0xMyAxMToyMSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggbWVtb3J5IGxlYWsgaW4gaXBBZGRyZXNzUHJlZml4VGFibGUKICAgLSBuZXRfc25tcF9zZWFyY2hfdXBkYXRlX3ByZWZpeF9pbmZvIHJldHVybnMgZGlmZmVyZW50IGNvZGUsIHdoZW4KICAgdGhlIGVudHJ5IHdhcyBub3QgaW5zZXJ0ZWQgdG8gbGlzdCBhbmQgY2FuIGJlIGZyZWVkLgoKMjAxMC0wMS0xMiAwMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHJ1biBycG0gY29uZmlndXJlIGNoZWNrcyBmb3IgaHJfc3dpbnN0IHJld3JpdGUKICAgKHJwbQogICB2ZXJzaW9uIG9ubHkpCgoyMDEwLTAxLTExIDIzOjU4ICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBhZGQgUEVSTExET1BUU19GT1JfQVBQUyB0byBhZ2VudHh0cmFwIGxpbmsgbGluZSAoZml4ZXMKICAgImxpYnBlcmwuc28gbm90CiAgIGZvdW5kIiBlcnJvcnMpCgoyMDEwLTAxLTExIDAwOjExICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgZ2V0IHJpZCBvZiB1c2luZyBkZXByZWNhdGVkIHN5bnRheCBmb3IgdHJhcC9pbmZvcm0gc2lua3MKCjIwMTAtMDEtMDggMDg6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBvYnNvbGV0ZWQgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHLgogICBGcm9tIG5vdyBvbiB1c2luZyBTSUdBTFJNIHRvIHRyaWdnZXIgTmV0LVNOTVAgYWxhcm0gaGFuZGxlcnMgaXMKICAgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KICAgCiAgIE1vdGl2YXRpb246IGFzIGtub3duIGxpYm5ldHNubXAgc3VwcG9ydHMgdGltZS1iYXNlZCBhbGFybXMgdmlhCiAgIHRoZSBmdW5jdGlvbnMKICAgc25tcF9hbGFybV9yZWdpc3RlcigpLCBydW5fYWxhcm1zKCkgYW5kIG90aGVyIGZ1bmN0aW9ucy4gVHdvCiAgIGRpZmZlcmVudCB3YXlzIHRvCiAgIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKSBhcmUgc3VwcG9ydGVkIGluc2lkZQogICBsaWJuZXRzbm1wOgogICAxLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSB0aW1lb3V0IGFyZ3VtZW50IG9mIHNlbGVjdCgpIGlzIHNtYWxsCiAgIGVub3VnaCBzdWNoCiAgIHRoYXQgc2VsZWN0KCkgcmV0dXJucyBiZWZvcmUgdGhlIG5leHQgYWxhcm0gbXVzdCBiZSBoYW5kbGVkICh3aGVuCiAgIHRoZQogICB2YXJpYWJsZSBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0IHRvIG9uZSwgd2hpY2gKICAgaXMgdGhlCiAgIGRlZmF1bHQpLgogICAyLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSBrZXJuZWwgZmlyZXMgU0lHQUxSTSBhdCB0aGUgdGltZSB3aGVuCiAgIHJ1bl9hbGFybXMoKQogICBzaG91bGQgYmUgY2FsbGVkICh3aGVuIHRoZSB2YXJpYWJsZQogICBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0CiAgIHRvIHplcm8sIHdoaWNoIGhhcyB0byBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkpLgogICAKICAgVGhlIGZvbGxvd2luZyBpc3N1ZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vjb25kIGFwcHJvYWNoOgogICAxLiBBbGFybSBmdW5jdGlvbnMgYXJlIHVzZWQgaW5zaWRlIE5ldC1TTk1QIHRvIGUuZy4gcmVmcmVzaAogICBjYWNoZWQgdGFibGUKICAgY29udGVudHMuIEFzIGZhciBhcyBJIGNhbiBzZWUgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgTmV0LVNOTVAKICAgc291cmNlIGNvZGUKICAgdGhhdCBwcmV2ZW50cyB0aGUgZm9sbG93aW5nIGZyb20gaGFwcGVuaW5nOiBhIHRhYmxlIHJlZnJlc2gKICAgdHJpZ2dlcmVkIHZpYQogICBTSUdBTFJNIHdoaWxlIGEgcm93IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSBhIGNhY2hlZCB0YWJsZS4gVGhpcwogICBjYW4gcmVzdWx0CiAgIGluIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBldmVuIGEgY3Jhc2guCiAgIDIuIFBPU0lYIHJlc3RyaWN0cyBzaWduYWwgaGFuZGxlcnMgdG8gY2FsbGluZyBmdW5jdGlvbnMgdGhhdCBhcmUKICAgZWl0aGVyIHJlZW50cmFudAogICBvciBub24taW50ZXJydXB0aWJsZQogICAoaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy94c2hfY2hhcDAyXzA0Lmh0bWwjdGFnXzAyXzA0KS4KICAgU3RhbmRhcmQgSS9PIGZ1bmN0aW9ucyBsaWtlIHByaW50ZigpIGFuZCBmcHJpbnRmKCkgYXJlIG5laXRoZXIKICAgcmVlbnRyYW50IG5vcgogICBub24taW50ZXJydXB0aWJsZS4gcnVuX2FsYXJtcygpIGlzIGNhbGxlZCBmcm9tIGluc2lkZSBhIHNpZ25hbAogICBoYW5kbGVyLCB3aGljaAogICBtZWFucyB0aGF0IHRoaXMgcmVzdHJpY3Rpb24gYXBwbGllcyB0byB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpCiAgIGl0c2VsZiBhbmQKICAgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQgKHdoaWNoIGluY2x1ZGVzIHRoZSBhbGFybSBjYWxsYmFjawogICBmdW5jdGlvbnMpLgogICBPcjogZS5nLiBzbm1wX2xvZygpIGFuZCBpdHMgY2FsbGVycyBtdXN0IG5vdCBiZSBjYWxsZWQgZnJvbQogICBpbnNpZGUgcnVuX2FsYXJtcygpCiAgIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGZyb20gaW5zaWRlIGEgc2lnbmFsIGhhbmRsZXIuIFRoaXMKICAgaXMgYSBzZXZlcmUKICAgcmVzdHJpY3Rpb24sIGFuZCBvbmUgdGhhdCBpcyBoYXJkIHRvIHdvcmsgd2l0aC4KICAgMy4gTm90IGFsbCBzb2Z0d2FyZSBkZXZlbG9wZXJzIGtub3cgaG93IHRvIG1ha2Ugc3VyZSB0aGF0IHNpZ25hbAogICBkZWxpdmVyeSB3b3JrcwogICBjb3JyZWN0bHkgaW4gYSBtdWx0aXRocmVhZGVkIGNvbnRleHQuIFBPU0lYIGRvZXMgbm90IGd1YXJhbnRlZSB0bwogICB3aGljaCB0aHJlYWQKICAgYSBzaWduYWwgbGlrZSBTSUdBTFJNIHdpbGwgYmUgZGVsaXZlcmVkLCB1bmxlc3MgdGhhdCBzaWduYWwgaGFzCiAgIGJlZW4gYmxvY2tlZAogICBiZWZvcmUgdGhyZWFkIGNyZWF0aW9uIGFuZCBpcyB1bmJsb2NrZWQgYWZ0ZXIgdGhyZWFkIGNyZWF0aW9uCiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3B0aHJlYWRfc2lnbWFzay5odG1sKS4KICAgVGhpcyBpcyByZWxldmFudCBmb3IgdGhlIE5ldC1TTk1QIHByb2plY3Qgbm90IG9ubHkgYmVjYXVzZSBhCiAgIHdvcmtlciB0aHJlYWQgaXMKICAgY3JlYXRlZCBpbnNpZGUKICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jIGJ1dCBhbHNvCiAgIGJlY2F1c2UgbGlibmV0c25tcCBpcyBvZnRlbiB1c2VkIGluc2lkZSBtdWx0aXRocmVhZGVkIHNvZnR3YXJlLgogICBDdXJyZW50bHkgbm8KICAgYXR0ZW1wdCBpcyBtYWRlIHRvIG1ha2Ugc3VyZSB0aGF0IFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IHRoZQogICBOZXQtU05NUCBldmVudAogICBwcm9jZXNzaW5nIGxvb3AgdGhyZWFkLiBJZiBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSBhbm90aGVyCiAgIHRocmVhZCwgdGhpcyB3aWxsCiAgIHJlc3VsdCBpbiBvbmUgb3IgbW9yZSBkYXRhIHJhY2VzLgogICAKICAgQmVjYXVzZSBhbGwgdGhlIGRpZmZpY3VsdGllcyBhc3NvY2lhdGVkIHdpdGggcHJvY2Vzc2luZyBhbGFybXMKICAgZnJvbSBpbnNpZGUgYQogICBzaWduYWwgaGFuZGxlciBmdW5jdGlvbiwgYW5kIGJlY2F1c2UgZml4aW5nIHRoZXNlIHdvdWxkIHJlcXVpcmUKICAgbW9yZSBlZmZvcnQgdGhhbgogICBpdCBpcyB3b3J0aCwgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGhhcyBiZWVuCiAgIGRlcHJlY2F0ZWQgYW5kIGZyb20gbm93CiAgIG9uIGFwcHJvYWNoICgxKSBpcyB0aGUgb25seSBzdXBwb3J0ZWQgYXBwcm9hY2ggdG8gdHJpZ2dlciBhbGFybQogICBoYW5kbGVycy4KCjIwMTAtMDEtMDcgMTk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBQYXRjaCBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIHRvIGZpeCBhIG1pbm9yIG1lbWxlYWsgaW4gY3B1CiAgIHN5c2N0cmwgZmV0Y2hpbmcKCjIwMTAtMDEtMDcgMTY6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBSZW1vdmVkIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIGFuZCBtYWRlIHN1cmUgdGhhdAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpICdcMCctdGVybWluYXRlcyB0aGUgb3V0cHV0IGJ1ZmZlcgogICBpbiBhbGwgY2FzZXMuCiAgIFVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cy4KCjIwMTAtMDEtMDcgMTQ6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUmVtb3ZlZCB0aHJlZSBzdXBlcmZsdW91cyBjYXN0cyBiZWNhdXNlIHRoZXNlIHRyaWdnZXJlZCBhCiAgIGNvbXBpbGVyIHdhcm5pbmcKICAgd2hlbiBjb21waWxlZCB3aXRoIE1TVkMuCgoyMDEwLTAxLTA3IDEzOjI4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCB0aGUgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBjaGFuZ2VzIGZyb20gcjE3OTkyCiAgIGJlY2F1c2UgdGhlc2UKICAgY2F1c2VkIHRoZSBmb2xsb3dpbmcgVmFsZ3JpbmQgY29tcGxhaW50IGR1cmluZyBzbm1wZCBzdGFydHVwOgogICAKICAgPT0yNTIwMT09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQKICAgdmFsdWUocykKICAgPT0yNTIwMT09IGF0IDB4NDA0N0IxNDogbmV0c25tcF9zZW5kX3RyYXBzIChhZ2VudF90cmFwLmM6Nzk4KQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTI4OiBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzCiAgIChhZ2VudF90cmFwLmM6ODUzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTlEOiBzZW5kX3RyYXBfdmFycyAoYWdlbnRfdHJhcC5jOjk2MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODI1Qjogc2VuZF9lYXN5X3RyYXAgKGFnZW50X3RyYXAuYzoxMDExKQogICA9PTI1MjAxPT0gYnkgMHg4MDRCNUQyOiBtYWluIChzbm1wZC5jOjM5NCkKCjIwMTAtMDEtMDcgMTI6MzAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDcgMTI6MTkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgRGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhc3NpZ25pbmcgYSBjaGFyICogcG9pbnRlciB0bwogICBzeXNPUlRhYmxlOjpPUl9kZXNjciBkb2VzIG9yIGRvZXMgbm90IHRyYW5zZmVyCiAgIG93bmVyc2hpcC4gU28gd2hldGhlciBPUl9kZXNjciBpcyBkZWNsYXJlZCBhcyBjaGFyICogb3IgYXMgY29uc3QKICAgY2hhciAqLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhdAogICBsZWFzdCBvbmUgc3RhdGVtZW50IG9uIHdoaWNoIHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBjaGFyCiAgICogIC8gY29uc3QgY2hhciAqIG1pc21hdGNoLiBUaGUgb25seSAgICBzb2x1dGlvbiBpcyB0byBjYXN0IGF3YXkKICAgICAgY29uc3Qgd2hlcmUgYXBwcm9wcmlhdGUgdG8gbWFrZSBzdXJlICAgIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgICAgIGNvbXBsYWluLCAgICBhcyBpbXBsZW1lbnRlZCBpbiB0aGlzIHBhdGNoLiAgMjAxMC0wMS0wNyAxMTo0NiAKICAgICAgYnZhc3NjaGUKCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdXNtX3NhdmVfdXNlcigpOiB3aGVuIHdyaXRpbmcgdXNlci0+bmFtZSBhbmQgdXNlci0+c2VjTmFtZSwgb25seQogICB3cml0ZSB0aGUgQVNDSUkgZGF0YSBhbmQgbm90IHRoZQogICB0ZXJtaW5hdGluZyAnXDAnLiBTaW5jZSBib3RoIGl0ZW1zIGFyZSByZWFkIGJ5IGNhbGxpbmcKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgd3JpdGluZwogICB0aGUgdGVybWluYXRpbmcgJ1wwJyBpcyBub3QgbmVjZXNzYXJ5IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBkYXRhCiAgIHJlYWQgYmFjayBpcyB0ZXJtaW5hdGVkIHByb3Blcmx5LgoKMjAxMC0wMS0wNyAwOToxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlZCB0aGUgYmVoYXZpb3Igb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKTogdW50aWwKICAgbm93IHRoaXMKICAgZnVuY3Rpb24gdGVybWluYXRlZCB0aGUgb3V0cHV0IGJ1ZmZlciBpbiBzb21lIGNhc2VzIHdpdGggJ1wwJwogICAod2hlbiB0aGUKICAgaW5wdXQgd2FzIGluIHRoZSBmb3JtYXQgMHguLi4gYW5kIGEgYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkIGFuZAogICBhbHNvCiAgIHdoZW4gdGhlIGlucHV0IHdhcyBpbiBBU0NJSSBmb3JtYXQsIGJ1dCBub3Qgd2hlbiB0aGUgaW5wdXQgd2FzIGluCiAgIGZvcm1hdAogICAweC4uLiBhbmQgbm8gYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkKS4gQ2hhbmdlZCB0aGlzIHN1Y2ggdGhhdAogICB0aGlzCiAgIGZ1bmN0aW9uIGRvZXMgbm8gbG9uZ2VyIHRlcm1pbmF0ZSB0aGUgaW5wdXQgYnVmZmVyIHdpdGggJ1wwJy4KICAgVGhpcwogICBjaGFuZ2Ugd2FzIHBvc3NpYmxlIGJlY2F1c2UgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFsbAogICBjYWxsZXJzIHRoYXQKICAgbmVlZGVkIGEgJ1wwJyB0ZXJtaW5hdGVkIHN0cmluZyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHVzZQogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGluc3RlYWQuCgoyMDEwLTAxLTA2IDE3OjUyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBSZXZlcnRlZCByMTc5NjggYW5kIHIxNzk3Mi4KCjIwMTAtMDEtMDYgMTU6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MgcmVsYXRlZCB0byB0aGUgdXNlIG9mIHRoZSBjb25zdAogICBrZXl3b3JkLgoKMjAxMC0wMS0wNiAxNTozOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA2IDE1OjM2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIGludG8gY29uc3QgY2hhciAqLiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkIGluIHIxNzk3NS4KCjIwMTAtMDEtMDYgMTU6MzMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNTozMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHRoZSBmdW5jdGlvbnMgcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSBhbmQKICAgc25tcGRfcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSwgd2hpY2gKICAgYWNjZXB0IGEgcGFyc2VyIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzdHJpbmcgdGhhdCBpdAogICBwYXJzZXMuIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyByZXN1bHRzCiAgIGluIGVhc2llciB0byByZWFkIGNvZGUgdGhhbiB1c2luZyB0aGUgbm9uLWNvbnN0IGhhbmRsZXIKICAgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhbmQgY2FzdGluZyB0aGUgcGFyc2VyCiAgIGZ1bmN0aW9uIGV4cGxpY2l0bHkgZnJvbSAodm9pZCgqKShjb25zdCBjaGFyKiwgY29uc3QgY2hhciopKSB0bwogICAodm9pZCgqKShjb25zdCBjaGFyKiwgY2hhciopKS4KCjIwMTAtMDEtMDYgMTU6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCByZWFkX2NvbmZpZ19yZWFkX29iamlkX2NvbnN0KCkuCgoyMDEwLTAxLTA2IDE0OjQyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjM0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZvciB0aG9zZSBWQUNNIGZ1bmN0aW9ucyB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHN0cmluZ3MgcGFzc2VkIGFzCiAgIGFyZ3VtZW50cywKICAgY2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiB0byBjb25zdCBjaGFyICouCgoyMDEwLTAxLTA2IDE0OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jOgoKICAgUmVtb3ZlZCBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDEwLTAxLTA2IDE0OjE0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDowOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QKICAgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTQ6MDQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIG5ldyBmdW5jdGlvbnMgc2tpcF93aGl0ZV9jb25zdCgpLCBza2lwX25vdF93aGl0ZV9jb25zdCgpLAogICBza2lwX3Rva2VuX2NvbnN0KCksIGNvcHlfbndvcmRfY29uc3QoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKS4KICAgLSBDaGFuZ2VkIHJldHVybiB0eXBlIG9mIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgZnJvbQogICBjaGFyICogdG8KICAgY29uc3QgY2hhciAqLiBOb3RlOiB0aGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQogICBzaW5jZSB0aGlzCiAgIGZ1bmN0aW9uIGhhcyBub3QgeWV0IGJlZW4gaW5jbHVkZWQgaW4gYW55IHJlbGVhc2UuCiAgIC0gRml4ZWQgZG9jdW1lbnRhdGlvbiBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgogICAtIFJlZHVjZWQgbnVtYmVyIG9mIGNhc3QtYXdheS1jb25zdCBjb25zdHJ1Y3RzIGluIHJlYWRfY29uZmlnLmMuCgoyMDEwLTAxLTA2IDEzOjM1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIFJlZmluZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpOgogICB3aGVuIHVzaW5nCiAgIHRoZSBnY2MgY29tcGlsZXIsIGl0IGlzIG5vdyB2ZXJpZmllZCB3aGV0aGVyIHRoZSB0eXBlcyAoY29uc3QgdCkKICAgYW5kIHR5cGVvZihlKQogICBhcmUgY29tcGF0aWJsZSwgd2hlcmUgdCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIGUgdGhlIHNlY29uZAogICBhcmd1bWVudCBvZgogICB0aGlzIG1hY3JvLgoKMjAxMC0wMS0wNiAxMzozMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0Lmg6CgogICBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzIGJpZ2dlciB0aGFuIDYKICAgYnl0ZXMgdG8gYXRUYWJsZS4gU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcwogICB3aXRoIDkgYW5kIG1vcmUgYnl0ZXMuCgoyMDEwLTAxLTA2IDEyOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkyNDE0MDogRml4IHRlcm1pbmF0aW9uIG9mIENQVS9GUFUgdHlwZXMKCjIwMTAtMDEtMDYgMTI6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MjIzOTA6IEZpeCB0ZXN0IGZvciBtaXNzaW5nIGNvbnRleHROYW1lCiAgIHBhcmFtZXRlcgoKMjAxMC0wMS0wNiAxMTo1NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDaGFuZ2VzOgogICAtIEludHJvZHVjZWQgYSBuZXcgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKSB0aGF0IGFsbG93cyB0bwogICBjYXN0CiAgIGF3YXkgY29uc3RuZXNzIHdpdGhvdXQgdGhhdCBnY2MgLVdjYXN0LXF1YWwgcmVwb3J0cyBhIHdhcm5pbmcuCiAgIC0gTWFkZSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzIGV4cGxpY2l0IGJ5IGludHJvZHVjaW5nIHRoZQogICBORVRTTk1QX1JFTU9WRV9DT05TVCgpIG1hY3JvLiBUaGlzIHN1cHByZXNzZXMgdGhlIHdhcm5pbmcKICAgZ2NjIC1XY2FzdC1xdWFsIHByaW50ZWQgZm9yIHRoZXNlIHN0YXRlbWVudHMuCgoyMDEwLTAxLTA2IDExOjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMDk6MTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9hZ2VudHh0cmFwLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvIG5vdCB1c2UgMCB3aGVuIHJlZmVycmluZyB0byBOVUxMLgoKMjAxMC0wMS0wNiAwODoyNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlcyBvZiBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kCiAgIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQogICBmcm9tIHN0cnVjdCB0aW1ldmFsICogdG8gY29uc3Qgc3RydWN0IHRpbWV2YWwgKi4gTm90ZTogdGhpcyBkb2VzCiAgIG5vdCBhZmZlY3QKICAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEwLTAxLTA2IDA4OjIzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENoYW5nZXMgKG5vIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbW9kaWZpZWQpOgogICAtIFJlbW92ZWQgZGlza2lvX3BhcnNlX2NvbmZpZygpIGRlY2xhcmF0aW9uIGJlY2F1c2UgdGhhdCBmdW5jdGlvbgogICBpcyBuZWl0aGVyIGNhbGxlZCBub3IgZGVmaW5lZCBpbiB0aGUgc291cmNlIGZpbGUgZGlza2lvLmMuCiAgIC0gQWRkZWQgZGVjbGFyYXRpb24gZm9yIGdldHN0YXRzKCkgc3VjaCB0aGF0IGdjYyBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24uCiAgIC0gTGludXg6IGNoYW5nZWQgdmlzaWJpbGl0eSBvZiBnZXRzdGF0cygpIGZyb20gZ2xvYmFsIHRvIHN0YXRpYwogICBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgQlNEIGFuZCBEYXJ3aW4gaW1wbGVtZW50YXRpb25zIG9mCiAgIGdldHN0YXRzKCkuCgoyMDEwLTAxLTA2IDA4OjAwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICogbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMDI6MTggIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBtYW4vTWFrZWZpbGUuaW4sIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBhcHBzOiBPbmx5IGJ1aWxkIGFnZW50eHRyYXAgaWYgdGhlIGFnZW50eCBsaWJyYXJpZXMgYXJlCiAgIGJ1aWx0LiBBZGQgYSB0ZXN0IGNhc2UgZm9yIGFnZW50eHRyYXAuCiAgIAogICBUaGUgZW5hYmxlbWVudC9kaXNhYmxlbWVudCBpcyBpbnNwaWVyZWQgYnkgYXV0b21ha2UgY29uZGl0aW9uYWxzCgoyMDEwLTAxLTA2IDAxOjU5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0YXJ0dGltZS4KCjIwMTAtMDEtMDUgMjI6NTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oOgoKICAgQ0hBTkdFUzogSGlkZSBtb3N0IGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGluIHRoZSBsb2dtYXRjaAogICBtb2R1bGUuIENsZWFuZWQgdXAgdGhlIGhlYWRlciBhY2NvcmRpbmdseS4gUmVtb3ZlIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucyBieSByZW9yZGVyaW5nIHRoZSBmdW5jdGlvbnMuCgoyMDEwLTAxLTA1IDIyOjMzICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUdTOiAyOTE5Mzc5OiBJbml0aWFsaXNlIFNOTVAgc2Vzc2lvbnMgcHJvcGVybHkKICAgUHJvdmlkZWQgYnkgRGllZ28gQmlsbGkKCjIwMTAtMDEtMDUgMjI6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTE5MzIwOiBBdm9pZCBhY2Nlc3NpbmcgZnJlZWQgbWVtb3J5CiAgIFJlcG9ydGVkIGJ5IFRvbWFzeiBMaXMKCjIwMTAtMDEtMDUgMTg6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTE0NDEwOiBGaXggY3Jhc2ggb24gZW1wdHkgY29tbWFuZCBsaW5lcwoKMjAxMC0wMS0wNSAxNTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTI1ODQ6IEZpeCBudWxsIE9JRCBoYW5kbGluZyBpbiBBZ2VudHgKICAgb24gNjRiaXQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgTHV0eiBKYWVuaWNrZQoKMjAxMC0wMS0wNSAxMDoxMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBDSEFOR0VTOiBocHV4OiBmaXggYnVpbGQgZXJyb3Igb24gSFAtVVggMTAuMjAKCjIwMTAtMDEtMDUgMDg6NDIgIGpzYWZyYW5lawoKICAgKiBtYW4sIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFJlbW92ZSBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20gcmVwb3NpdG9yeS4KCjIwMTAtMDEtMDQgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQgdGhhdCBvY2N1cnJlZCB3aGVuIGFuIEFTQ0lJCiAgIHN0cmluZyB3YXMKICAgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIC8KICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBhbmQgdGhlIHRoaXJkIGFyZ3VtZW50ICgqbGVuKQogICBlcXVhbHMgMC4KCjIwMTAtMDEtMDQgMTY6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSAnY29uc3QnLgoKMjAxMC0wMS0wNCAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdW5pdCB0ZXN0IGZvciByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgoKMjAxMC0wMS0wNCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgY29ycmVjdCBvaWQgbGVuZ3RoIGluIHRhYmxlIGluZGV4ZXMuCgoyMDEwLTAxLTA0IDA4OjEwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHNubXBfYWxhcm0uYyBjYW4gYmUgY29tcGlsZWQgYWdhaW4gd2l0aCBDODkKICAgY29tcGlsZXJzOiBmb3IgQzg5CiAgIGl0IGlzIHJlcXVpcmVkIHRoYXQgaW5pdGlhbGl6ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucy4KCjIwMTAtMDEtMDMgMTY6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYzoKCiAgIFJlbmFtZSBuZXRzbm1wX2FyY2hfdGNwY29ubl9kZWxldGUgdG8KICAgbmV0c25tcF9hcmNoX3RjcGNvbm5fZW50cnlfZGVsZXRlIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aAogICB0aGUgaGVhZGVyIGZpbGUgYW5kIGFsbCB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUuCgoyMDEwLTAxLTAzIDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQWRkIG1pc3NpbmcgZGVjbGFyYXRpb25zLgoKMjAwOS0xMi0zMCAxMjo0OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTMzOiBmaXhlZCB0aGUgaXNzdWUgdGhhdCBpbmNsdWRpbmcgdGhlIGhlYWRlcgogICBmaWxlCiAgIDxuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg+IGZyb20gPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4KICAgdHJpZ2dlcnMKICAgY29tcGlsZXIgZXJyb3JzIGR1cmluZyB0aGUgY29uZmlndXJlIHByb2Nlc3MgKGNvbXBsYWludHMgYWJvdXQKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IG5vdCBiZWluZyBpbmNsdWRlZCBiZWZvcmUKICAgPG5ldC1zbm1wL3R5cGVzLmg+KS4KICAgTm90ZTogdGhpcyBkb2VzIG5vdCBzb2x2ZSB0aGUgdW5kZXJseWluZyBwcm9ibGVtIHRoYXQgTUlCIGNvZGUKICAgbXVzdCBub3QKICAgaW5jbHVkZSB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL3R5cGVzLmg+IGJlY2F1c2UgZG9pbmcgc28gd291bGQKICAgdHJpZ2dlciBhCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgZHVyaW5nIHRoZSBjb25maWd1cmUgc3RlcCAoTUlCIGNvZGUgaXMKICAgY29tcGlsZWQgZHVyaW5nCiAgIHRoZSBjb25maWd1cmUgc3RlcCwgd2hpbGUgdGhlIGNvbmZpZ3VyZSBzdGVwIGdlbmVyYXRlcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gYW5kIDxuZXQtc25tcC90eXBlcy5oPiBuZWVkcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4pLgoKMjAwOS0xMi0zMCAxMTo0OCAgYnZhc3NjaGUKCiAgICogYXBwcywgbWFuOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTk6IHVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdHMuCgoyMDA5LTEyLTI4IDE4OjAzICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZC4gRm91bmQgdGhpcyBieSBhbmFseXppbmcgY29tcGlsZXIKICAgd2FybmluZ3MuCiAgIE5vdGU6IHRoZSBhZmZlY3RlZCBmdW5jdGlvbiwgcmVnaXN0ZXJfc3RyaW5nX2luZGV4KCksIGlzbid0CiAgIGNhbGxlZCBmcm9tCiAgIGFueXdoZXJlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBpdHNlbGYuCgoyMDA5LTEyLTIzIDA5OjQ5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggaW52YWxpZCByZWFkIHJlcG9ydGVkIGJ5IHZhbGdyaW5kOgogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgIG1lbWNweSAobWNfcmVwbGFjZV9zdHJtZW0uYzo0MDIpCiAgIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19jb250YWluZXJfbG9hZF92NAogICAoaXBhZGRyZXNzX2lvY3RsLmM6MjQwKQogICBuZXRzbm1wX2FyY2hfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfbGludXguYzoxNTgpCiAgIG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2NvbW1vbi5jOjExMikKICAgCiAgIFJldHVybmluZyBzdHJ1Y3R1cmUgd2l0aCBwb2ludGVycyBpbnNpZGUgaXMgbm90IHRoZSBiZXN0IHRoaW5nIHRvCiAgIGRvLgoKMjAwOS0xMi0yMiAxNjowNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeGVkIHNldmVyYWwgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgoKMjAwOS0xMi0yMiAxMjowMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgCiAgICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBSZXZlcnRlZCB0aGUgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2VzIG9mIHIxNzkxMzoKICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNyby4KICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGZ1bmN0aW9ucwogICBjYWxjdWxhdGVfdGltZV9kaWZmKCksCiAgIHVhdGltZV9yZWFkeSgpLCBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCiAgIC0gc3RhcnR0aW1lIGlzIGFnYWluIGEgZ2xvYmFsIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBzdGF0aWMgb25lLgogICBBbHNvIGltcGxlbWVudGVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBNb3ZlZCB0aGUgbWFya2VyX3QgdHlwZWRlZiBmcm9tIG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCB0bwogICBuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmguCiAgIC0gQWRkZWQgYSBuZXcgdHlwZWRlZiwgY29uc3RfbWFya2VyX3QuCiAgIC0gRm9yIHRob3NlIGF0aW1lXyooKSAvIHVhdGltZV8qKCkgLyAqX3R0aWNrcygpIGZ1bmN0aW9ucyB0aGF0IGRvCiAgIG5vdCBjaGFuZ2UKICAgdGhlaXIgYXJndW1lbnRzLCBkZWNsYXJlZCB0aGVzZSBhcmd1bWVudHMgY29uc3RfbWFya2VyX3QgaW5zdGVhZAogICBvZiBtYXJrZXJfdC4KICAgLSBSZW5hbWVkIG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSB0bwogICBuZXRzbm1wX2dldF9hZ2VudF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfYWdlbnRfc3RhcnR0aW1lKCkKICAgcmVzcGVjdGl2ZWx5LiBNb3ZlZCB0aGVzZSBmdW5jdGlvbnMgZnJvbSB0b29scy5jIHRvIHN5c3RlbS5jLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9uIGF0aW1lX2hzdWJ0cmFjdCgpICh3YXMgaW50cm9kdWNlZCBpbgogICByMTc5MTMpIGFuZAogICBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uLCBuZXRzbm1wX3NldF9hZ2VudF91cHRpbWUoKS4KCjIwMDktMTItMjIgMDc6NTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHIxNzkyNiwgd2hpY2ggbWFkZSB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVkLiBBIG5ldyBwYXRjaCB3aWxsCiAgIGZvbGxvdwogICB0aGF0IGZpeGVzIHRoZSBjYWxsZXJzIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgdGhhdAogICB3ZXJlCiAgIGFzc3VtaW5nIHRoYXQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZXMgdGhlCiAgIHN0cmluZwogICByZWFkIGJ5IHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTIxIDE0OjI5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBjcmFzaCBpbiBJRi1NSUIgYW5kIElQLU1JQiB3aGVuIHRoZXJlIGFyZQogICBzb21lIGludGVyZmFjZXMgd2l0aCBicm9hZGNhc3QgSVAgYWRkcmVzcyBhbmQgc29tZSB3aXRob3V0LgogICAKICAgUmVzZXQgdGhlIGJjYXN0ZW50cnkgaW4gdGhlIGxvb3AsIHNvIGl0IGNhbm5vdCBiZSBpbnNlcnRlZCB0byB0aGUKICAgY29udGFpbmVyCiAgIHR3aWNlLgogICAKICAgV2l0aG91dCB0aGlzIHBhdGNoLCB3aGVuIGFuIGludGVyZmFjZSB3aXRob3V0IGJyb2FkY2FzdCBhZGRyZXNzCiAgIGlzIHByb2Nlc3NlZCwKICAgdGhlIGJjYXN0YWRkcmVzcyBmcm9tIHByZXZpb3VzIGxvb3AgaXMgaW5zZXJ0ZWQgaW50byB0aGUKICAgY29udGFpbmVyLiBUaGlzCiAgIG9idmlvdXNseSBmYWlscyBhbmQgdGhlIGJjYXN0ZW50cnkgaXMgZnJlZWQsIGJ1dCB0aGUgY29udGFpbmVyCiAgIHN0aWxsIGNvbnRhaW5zCiAgIHJlZmVyZW5jZSB0byBpdCAtPiBTSUdTRUdWLgoKMjAwOS0xMi0yMSAxMzo1MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5Mjg6IHdoaWxlIHIxNzkyOCBmaXhlZCBhIGRhbmdsaW5nIHBvaW50ZXIKICAgZGVyZWZlcmVuY2UKICAgZGV0ZWN0ZWQgYnkgcnVubmluZyB0aGUgTmV0LVNOTVAgc29mdHdhcmUgb24gV2luZG93cywgdGhhdCBwYXRjaAogICBpbnRyb2R1Y2VkCiAgIGEgZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZSBhYm91dCB3aGljaCBvbmx5IFZhbGdyaW5kIG9uIExpbnV4CiAgIGNvbXBsYWluZWQuCiAgIFRoaXMgZm9sbG93LXVwIHBhdGNoIGZpeGVzIGJvdGggZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMKICAgdHJpZ2dlcmVkIGJ5CiAgIHBhcnNpbmcgdGhlIHBlcnNpc3RlbnREaXIga2V5d29yZC4KCjIwMDktMTItMjEgMTM6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MDExMjIuIENoYW5nZXM6CiAgIC0gTmV3IGZlYXR1cmU6IHNwZWNpZnlpbmcgQVNOIHR5cGUgU05NUF9OT1NVQ0hJTlNUQU5DRSBhcyB0aGUKICAgdGhpcmQgYXJndW1lbnQKICAgb2YgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIHdpbGwgY2F1c2UgYW4gU05NUCBHZXRSZXF1ZXN0IC8KICAgR2V0TmV4dFJlcXVlc3QgdG8KICAgcmV0dXJuIHRoZSBlcnJvciBjb2RlIG5vU3VjaEluc3RhbmNlIChTTk1QdjIpIG9yIG5vU3VjaE5hbWUKICAgKFNOTVB2MSkuIFRoaXMKICAgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBhIGNhY2hlZCB0YWJsZSB3aXRoIG9uZSBvciBtb3JlCiAgICJob2xlcyIuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGhhcyBub3QgYmVlbgogICBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGlmIHRoZSBzaXplIG9mIHRoZSBjYWNoZWQgdmFsdWUKICAgc2hydW5rLCB1c2UKICAgcmVhbGxvYygpIGluc3RlYWQgb2YgZnJlZSgpIGFuZCBtYWxsb2MoKS4KCjIwMDktMTItMjEgMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTEyMDU1OiBtYWtlIHN1cmUKICAgdGhhdAogICBwYXJzaW5nIHRoZSAicGVyc2lzdGVudERpciIga2V5d29yZCBpbiBzbm1wLmNvbmYgZG9lcyBub3QgdHJpZ2dlcgogICBhCiAgIGRhbmdsaW5nIHBvaW50ZXIuIFRvIG15IHN1cnByaXNlIEJvdW5kc0NoZWNrZXIgY29tcGxhaW5lZCBhYm91dAogICB0aGlzCiAgIChvbiBXaW5kb3dzKSwgYnV0IFZhbGdyaW5kIGRpZCBub3QgcmVwb3J0IHRoaXMgaXNzdWUgKG9uIExpbnV4KS4KCjIwMDktMTItMjEgMTI6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI1IChmaXggbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXApOiB3aGlsZQogICByMTc5MjUgZml4ZWQKICAgb25seSB0aGUgbGVhayB0cmlnZ2VyZWQgZnJvbSBpbnNpZGUgdGhlIGZvci1sb29wLCB0aGlzIHBhdGNoIGRvZXMKICAgbm93IGFsc28KICAgZml4IHRoZSBsZWFrIHRyaWdnZXJlZCBieSB0aGUgbmV0c25tcF90YWJsZV9kYXRhc2V0X2FkZF9yb3coKQogICBjYWxsIG5lYXIKICAgdGhlIGVuZCBvZiBsb2dfbm90aWZpY2F0aW9uKCkuCgoyMDA5LTEyLTIxIDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDYyOiBtYWtlIHN1cmUgdGhhdCB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgaXMgcHJvcGVybHkgdGVybWluYXRlZCwgc3VjaCB0aGF0CiAgIHRoZQogICBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gZG8gbm90IHRyaWdnZXIgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgogICBGb3VuZAogICB0aGlzIGlzc3VlIHZpYSBCb3VuZHNDaGVja2VyLgoKMjAwOS0xMi0yMSAxMTowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2OCwgd2hpY2ggZml4ZXMgYSBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cC4KICAgVGhlCiAgIGZ1bmN0aW9uIGxvZ19ub3RpZmljYXRpb24oKSBhZGRzIGEgcm93IHRvIHRoZSB0YWJsZQogICBubG1Mb2dWYXJUYWJsZSwgYnV0CiAgIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhhdCB0YWJsZSBoYXMgYmVlbgogICBpbml0aWFsaXplZC4gSWYKICAgdGhhdCBoYXBwZW5zLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBhIHJvdyBidXQgdGhhdCBtZW1vcnkgaXMKICAgbmV2ZXIKICAgYWRkZWQgdG8gdGhlIGNhY2hlZCB0YWJsZSBkYXRhLiBUaGUgQm91bmRzQ2hlY2tlciB0b29sIHJlcG9ydGVkCiAgIHRoaXMgYXMKICAgYSAibWVtb3J5IGxlYWsgbGVhdmluZyBzY29wZSIuCgoyMDA5LTEyLTIxIDEwOjU0ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCB0aGUgZm9sbG93aW5nIHRleHQgdG8gdGhlICJMaW1pdGF0aW9ucyIgc2VjdGlvbiBvZgogICBSRUFETUUud2luMzI6CiAgICJXaGVuIHVzaW5nIHdpbkV4dERMTCwgdGhlcmUgaXMgYW4gb2Zmc2V0IG9mIHVwIHRvIG9uZSBzZWNvbmQKICAgYmV0d2VlbiB0aGUKICAgdmFsdWUgb2YgdGhlIHN5c1VwVGltZSB2YXJiaW5kIGluY2x1ZGVkIGluIHRoZSB0cmFwcyBnZW5lcmF0ZWQgYnkKICAgU05NUAogICBleHRlbnNpb24gRExMcyAoZS5nLiBsaW5rVXAgYW5kIGxpbmtEb3duKSBhbmQgdGhlIHZhbHVlIG9mIHRoZQogICBzeXNVcFRpbWUKICAgdmFyYmluZCBpbmNsdWRlZCBpbiB0cmFwcyBnZW5lcmF0ZWQgYnkgTmV0LVNOTVAgaXRzZWxmIChlLmcuCiAgIGNvbGRTdGFydCkuIgoKMjAwOS0xMi0yMSAxMDowOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFNwZWxsaW5nIGZpeDogcmVwbGFjZWQgYWxsIG9jY3VycmVuY2VzIG9mICdzcGVjaWZjJyBieQogICAnc3BlY2lmaWMnLgoKMjAwOS0xMi0yMSAxMDowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBSZWZhY3RvcmluZzogZWxpbWluYXRlZCBkdXBsaWNhdGVkIGNvZGUgYnkgcmVpbXBsZW1lbnRpbmcKICAgc25tcF9hbGFybV9yZWdpc3RlcigpIHVzaW5nIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIoKS4gTmVpdGhlciB0aGUKICAgTmV0LVNOTVAgQVBJIG5vciB0aGUgYmVoYXZpb3Igb2Ygc25tcF9hbGFybV9yZWdpc3RlcigpIGhhcyBiZWVuCiAgIGNoYW5nZWQuCgoyMDA5LTEyLTIwIDExOjEwICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9hZ2VudHh0cmFwLmMsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL2FnZW50eHRyYXAuMS5kZWY6CgogICBORVdTOiBhcHBzOiBBZGQgY29tbWFuZCB0byBzZW5kIEFnZW50WCBub3RpZnkgcmVxdWVzdHMgdG8gYQogICBtYXN0ZXIgYWdlbnQuCgoyMDA5LTEyLTE3IDE2OjQ0ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxNyAtLSBidWlsZHMgYWdhaW4gb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0xNyAxNjowMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTAzIC8gcGF0Y2ggMjkxMTMyMyAiRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcKICAgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbiIgKHN1Ym1pdHRlZCBieSBteXNlbGYpLiBUaGF0IHBhdGNoCiAgIGRpZCBub3Qgb25seQogICBmaXggdGhlIGxvY2t1cCBidXQgYWxzbyBtYWRlIHNubXBkIHByaW50IGEgd2FybmluZyBkdXJpbmcgc3RhcnR1cAogICB3aGVuCiAgIGlxdWVyeVNlY05hbWUgd2FzIG5vdCBjb25maWd1cmVkLiBUaGlzIHdhcm5pbmcgd2FzIHByaW50ZWQgZXZlbgogICB3aGVuIG5vCiAgIGludGVybmFsIHF1ZXJpZXMgd2VyZSBwZXJmb3JtZWQuIFRoaXMgd2FybmluZyBpcyBub3cgb25seSBwcmludGVkCiAgIGp1c3QgYmVmb3JlCiAgIHRoZSBmaXJzdCBpbnRlcm5hbCBxdWVyeSBpcyBtYWRlIChkdXJpbmcgdGhlIGZpcnN0IGNhbGwgb2YKICAgbmV0c25tcF9xdWVyeV9nZXRfZGVmYXVsdF9zZXNzaW9uKCkgaW5zdGVhZCBvZiBkdXJpbmcgY3JlYXRpb24gb2YKICAgdGhlIGludGVybmFsCiAgIHNlc3Npb24pLgoKMjAwOS0xMi0xNyAxMzo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYzoKCiAgIFJNT04gTUlCIHNvdXJjZSBjb2RlIGNvbXBpbGVzIGFnYWluIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzoxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkgYW5kCiAgIEFHVVRJTF9zeXNfdXBfdGltZSgpIHN1Y2ggdGhhdCB0aGVzZSBmdW5jdGlvbnMgbm9ybWFsaXplIHRoZQogICB0dl91c2VjIGZpZWxkIG9mCiAgIHN0cnVjdCB0aW1ldmFsIHByb3Blcmx5LiBOb3RlOiB0aGlzIHNvdXJjZSBjb2RlIG1vZGlmaWNhdGlvbiBkb2VzCiAgIG5vdCBhZmZlY3QKICAgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYWZvcmVtZW50aW9uZWQgdHdvIGZ1bmN0aW9ucy4KCjIwMDktMTItMTcgMTM6MTEgIGJ2YXNzY2hlCgogICAqIG1hbi9uZXRzbm1wX3V0aWwuMzoKCiAgIFJlbW92ZWQgZG9jdW1lbnRhdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNybyAtLSBzaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MDUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDb252ZXJ0ZWQgc3RhcnR0aW1lIGZyb20gYSBnbG9iYWwgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBhbmQgYXBwbGllZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gQWRkZWQgdHdvIG5ldyBtYWNyb3M6IE5FVFNOTVBfVElNRVJBREQoKSBhbmQKICAgTkVUU05NUF9USU1FUlNVQigpLgogICAtIEFkZGVkIHRocmVlIG5ldyBmdW5jdGlvbnM6IG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpLAogICBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSBhbmQgYXRpbWVfaHN1YnRyYWN0KCkuCiAgIC0gUmVwbGFjZWQgZ2V0dGltZW9mZGF5KCkgKyBjYWxjdWxhdGVfdGltZV9kaWZmKCkgY2FsbHMgYnkgYSBjYWxsCiAgIHRvIG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpLgogICAtIFJlbW92ZWQgdGhlIG1hY3JvIERJRkZUSU1FVkFMKCkgYmVjYXVzZSBpdCB3YXMgbm90IHVzZWQgaW5zaWRlCiAgIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFuZCBiZWNhdXNlIGl0IGNvbnRhaW5lZCBhIGJ1Zy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbnMgY2FsY3VsYXRlX3RpbWVfZGlmZigpLCB1YXRpbWVfcmVhZHkoKSwKICAgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgoKMjAwOS0xMi0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQnVnIGZpeDogYWNjb3JkaW5nIHRvIFJGQyAyNTcxIHRoZSB1bml0IG9mIHNubXBFbmdpbmVUaW1lIGlzIG9uZQogICBzZWNvbmQsCiAgIG5vdCBvbmUgaHVuZHJlZHRoIG9mIGEgc2Vjb25kLgoKMjAwOS0xMi0xNyAxMDowMyAgZHRzMTIKCiAgICogbWFuL3NubXB0ZXN0LjEuZGVmOgoKICAgRml4IHR5cG8uCgoyMDA5LTEyLTE2IDEyOjMwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi90b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzLW9ubHkgYnVnIGZpeGVzOgogICAtIEZpeGVkIHRoZSBzdHJhbmdlIGJ1aWxkIGVycm9ycyB0aGF0IG9jY3VycmVkIHdoZW4gY29tcGlsaW5nCiAgIGxpYm5ldHNubXAgYXMgYSBETEwgYW5kIHdoZW4gZWl0aGVyIDxzdGRsaWIuaD4gb3IgPHN0cmluZy5oPiB3YXMKICAgaW5jbHVkZWQgYWZ0ZXIgPG5ldC1zbm1wLWNvbmZpZy5oPiBpbnN0ZWFkIG9mIGJlZm9yZS4KICAgLSBGb3IgZGVidWcgYnVpbGRzIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8sIGZpeGVkIHRoZQogICBtaXNtYXRjaGVzIGJldHdlZW4gdGhlIF9tYWxsb2NfZGJnKCkgY2FsbCBpbnZva2VkIGJ5IHN0cmR1cCgpIGFuZAogICBmcmVlKCktaW5nIHN0cmR1cCgpLWVkIG1lbW9yeSBieSBpbmNsdWRpbmcgdGhlIDxjcnRkYmcuaD4gaGVhZGVyCiAgIGluIHRvb2xzLmMgYW5kIGJ5IGRlZmluaW5nIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIF9DUlREQkdfTUFQX0FMTE9DLiBEZXRlY3RlZCB2aWEgdGhlIG1lbW9yeSBjaGVja2VyIGluY2x1ZGVkIGluCiAgIEludGVsIFBhcmFsbGVsIFN0dWRpby4KCjIwMDktMTItMTQgMTc6MjMgIHRhbmRlcnMKCiAgICogIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHN5bmMgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gUGVybCB3aXRoIHRoZSBjaGFuZ2VzCiAgIGluCiAgIHIxNzg1NSBhbmQgcjE3OTA4CgoyMDA5LTEyLTE0IDEzOjU1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBGaXggVENQIHRyYW5zcG9ydCBicm9rZW4gYnkgcmV2LiAxNzg1NSAtIGNvcGllcyBvZgogICBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gc25tcFRDUERvbWFpbi5jIGFuZCBzbm1wVURQRG9tYWluLmMgbXVzdAogICBiZSB0aGUgc2FtZS4KCjIwMDktMTItMTEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIENIQU5HRVM6IHNubXB1c206IHBhdGNoIGZyb20gTWFydGluIEJqb3JrbHVuZCB0byBhZGQgYSAtQ3cgb3B0aW9uCiAgIHRvIHVzZSBjcmVhdGVBbmRXYWl0IGZvciBhZ2VudHMgdGhhdCBhcmUgc3RyaWN0IGFib3V0IG5vdAogICBhbGxvd2luZyBhIHJvdyB0byBiZSBzZXQgdG8gYWN0aXZlIHVudGlsIHRoZSBhdXRoZW50aWNhdGlvbgogICBwYXNzd29yZCBoYXMgYmVlbiBjaGFuZ2VkOyBwbHVzIHdoaXRlLXNwYWNlIGNsZWFuIHVwLCBtYW51YWwKICAgYWRkaXRpb25zIGFuZCBoZWxwIG91dHB1dCBtb2RpZmljYXRpb25zIGJ5IGhhcmRha2VyCgoyMDA5LTEyLTExIDE0OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYSBmb3JtYXQgc3BlY2lmaWVyIG1pc21hdGNoLgoKMjAwOS0xMi0xMSAxNDowNiAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIHdpbkV4dERMTCBidWdzIGZpeGVkOgogICAtIHN5c1VwVGltZS4wIGRvZXMgbm93IHJlcG9ydCB0aGUgY29ycmVjdCB2YWx1ZS4KICAgLSBhIGxpbmtVcCBvciBsaW5rRG93biB0cmFwIGlzIG5vdyBzZW50IGFmdGVyIHRoZSBzdGF0dXMgb2YgYQogICBuZXR3b3JrIGludGVyZmFjZQogICBoYXMgY2hhbmdlZC4KICAgLSB0aGUgdmFsdWUgb2YgdGhlIHN5c1VwVGltZS4wIHZhcmJpbmQgaW4gbGlua1VwIGFuZCBsaW5rRG93bgogICB0cmFwcyBpcyBub3cKICAgY29ycmVjdC4KCjIwMDktMTItMTAgMTU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIRVM6IDI5MTE5NzA6IFByb3Blcmx5IHRlcm1pbmF0ZSBsaW5rZWQgbGlzdAogICBvZiByZWdpc3RyYXRpb25zLgogICBQYXRjaCBwcm92aWRlZCBieSBNaXJrbyBEZWNrZXJ0LgoKMjAwOS0xMi0xMCAxNTo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5MTEzMjM6IEZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24KCjIwMDktMTItMTAgMTM6NTkgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgTWljcm9zb2Z0J3MgaW1wbGVtZW50YXRpb24gb2YKICAgaHJTeXN0ZW1VcHRpbWUuMC4KICAgLSBGaXhlZCBhIGZldyB0eXBvcy4KCjIwMDktMTItMTAgMTM6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBBZGRlZCBtaXNzaW5nIG5ld2xpbmUgaW4gYSBsb2dnaW5nIHN0YXRlbWVudC4KCjIwMDktMTItMTAgMTI6NTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB3aW5FeHRETEwgYnVnczoKICAgLSBGaXhlZCBidWcgaW4gdHJhcCBmb3J3YXJkaW5nOiBsaW5rRG93biB0cmFwcyB3ZXJlIHNlbnQgYXMKICAgd2FybVN0YXJ0IHRyYXBzCiAgIGFuZCBsaW5rVXAgdHJhcHMgd2VyZSBzZW50IGFzIGxpbmtEb3duIHRyYXBzLgogICAtIEZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGV4dGVuc2lvbiBETEwgbG9hZGluZy4KICAgLSBBIGRlYnVnIHRyYWNlIHN0YXRlbWVudCBpcyBub3cgaW52b2tlZCB3aGVuZXZlciBhIHNlcmlvdXMgZXJyb3IKICAgaGFzIGJlZW4KICAgZGV0ZWN0ZWQuCgoyMDA5LTEyLTEwIDEyOjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9JRHMgaW4gZGVidWcgbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHRoZSB3aW5FeHRETEwgbW9kdWxlIGFyZSBub3cKICAgcHJpbnRlZCBpbgogICBzeW1ib2xpYyBmb3JtIGluc3RlYWQgb2YgbnVtZXJpYyBmb3JtLgoKMjAwOS0xMi0xMCAwODo1NyAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgUHJvamVjdCBkZXBlbmRlbmNpZXMgc2hvdWxkIG5vdyByZWFsbHkgYmUgY29ycmVjdC4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc4NzMuCgoyMDA5LTEyLTEwIDA4OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENoYW5nZXMgKG9ubHkgc291cmNlIGNvZGUgY29tbWVudHMgaGF2ZSBiZWVuIGNoYW5nZWQpOgogICAtIFJlbW92ZWQgYSBub3RlIHRoYXQgY29udHJhZGljdGVkIHRoZSBpbnN0cnVjdGlvbnMgaW4KICAgUkVBRE1FLndpbjMyLgogICAtIFVwZGF0ZWQgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFmdGVyIHRoZSBhZGRpdGlvbiBvZiB0aGUgZmlsZQogICB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oIGluIHIxNzgzMC4KCjIwMDktMTItMTAgMDg6MTcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgTWFkZSBmaWxlIGhlYWRlciBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggdGhlIGRlc2NyaXB0aW9ucyBpbiB0aGUKICAgcmVzcGVjdGl2ZSBtYW4gcGFnZXMuCgoyMDA5LTEyLTEwIDAzOjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50X3N5c09SX2NhbGxiYWNrIHdvbid0IHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4KICAgcmVnaXN0ZXJlZCBhcyBhIGNhbGxiYWNrLiBDaGFuZ2UgYWdlbnR4X3Jlb3Blbl9zeXNPUlRhYmxlIGluCiAgIG9yZGVyIHRvIGF2b2lkIHdhcm5pbmdzIG9mIGNvbnN0IHJlbW92YWwuCgoyMDA5LTEyLTA5IDE1OjA1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBNb3ZlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJyBpbnNpZGUgdGhlCiAgIGZ1bmN0aW9uCiAgIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGJlY2F1c2UgdGhpcyB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkKICAgdGhhdCBmdW5jdGlvbi4KICAgLSBEb2N1bWVudGVkIHRoZSBwdXJwb3NlIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScuCiAgIC0gQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgdGhlIGNhbGwgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgZG9lcwogICBub3QgdHJpZ2dlciBhbgogICBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgKHN0clstMV0pIHdoZW4gYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCB0bwogICB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0wOSAxNDozNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcwogICBiaWdnZXIgdGhhbiA2IGJ5dGVzIHRvIGlwTmV0VG9NZWRpYVRhYmxlIGFuZAogICBpcE5ldFRvUGh5c2ljYWxUYWJsZS4KICAgU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcyB3aXRoIDkgYW5kIG1vcmUKICAgYnl0ZXMuIFNubXBkIG9uIExpbnV4IHdhcyBub3QgYWJsZSB0byBwYXJzZSAvcHJvYy9uZXQvYXJwIHRoZW4KICAgYW5kIHByb2R1Y2VkIHVnbHkgJ2lvY3RsIDM1MTIzIHJldHVybmVkIC0xJyB0byBsb2cuCgoyMDA5LTEyLTA5IDEyOjI3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCBtaXNzaW5nIC1MbyBpbiBhIGNvbW1hbmQgbGluZSBleGFtcGxlLgoKMjAwOS0xMi0wOSAxMjoxNiAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgQWRkZWQgc25tcGFwaS5saWIgdG8gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIHNubXBkLmV4ZS4KICAgQXBwYXJlbnRseSBWaXN1YWwKICAgU3R1ZGlvIDIwMDUgYW5kIDIwMDggbmVlZCB0aGlzIGxpYnJhcnkgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0CiAgIHdoZW4gbGlua2luZwogICB0aGUgZXhlLCB3aGlsZSBmb3IgVmlzdWFsIFN0dWRpbyA2IGl0IGlzIHN1ZmZpY2llbnQgd2hlbiB0aGlzCiAgIGxpYnJhcnkgaXMKICAgcHJlc2VudCBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2YgbmV0c25tcG1pYnMubGliLgoKMjAwOS0xMi0wOSAwODo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg0IGFuZCByMTc4NzMsIHRoZSBidWlsZAogICBwcm9jZXNzIGJlY2FtZSBzaW1wbGVyLgoKMjAwOS0xMi0wOSAwODoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBFeHBvcnQgc3RydG91bGwgLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTc4ODYuCgoyMDA5LTEyLTA5IDA4OjIxICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBSZXZlcnRlZCByMTc3MDAgZm9yIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODYsIG1vZGlmeWluZwogICB0aGUKICAgc3RydG91bGwgbGluZSBpbiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiBpcyBubyBsb25nZXIKICAgbmVjZXNzYXJ5LgoKMjAwOS0xMi0wOSAwODoxMiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzOiBzd2l0Y2hlZCBmcm9tIF9zdHJ0b3VpNjQoKSB0byBzdHJ0b3VsbCgpIGZvciBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbwogICAyMDAyIGFuZCBsYXRlciBiZWNhdXNlIHRoZSBmb3JtZXIgaXMgbm90IGZ1bGx5IFBPU0lYIGNvbXBsaWFudC4KICAgVGhlIHN0cnRvdWxsKCkKICAgdW5pdCB0ZXN0IHByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZvciBfc3RydG91aTY0KCkgd2l0aAogICBNU1ZDIDIwMDg6CiAgIHRlc3QgMTQgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAogICB0ZXN0IDE2IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKCjIwMDktMTItMDggMjE6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBNYWtlIHN1cmUgdGhhdCBhIG1hc2sgaXMgZ2l2ZW4gdG8gb3BlbgogICB3aGVuIE9fQ1JFQVQgaXMgc3BlY2lmaWVkCgoyMDA5LTEyLTA4IDE2OjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSB0aGlzIG91dC4KCjIwMDktMTItMDggMTU6NDcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBCdWlsZHMgYWdhaW4gb24gVW5peCBzeXN0ZW1zIChmaXhlZCBhIHR5cG8gaW50cm9kdWNlZCBpbiByMTc4ODEpLgoKMjAwOS0xMi0wOCAxNTozNyAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLiBXaXRob3V0IHRoaXMKICAgZGVmaW5lIHRoZSBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbyBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBiZW5pZ24gcmVkZWZpbml0aW9uIG9mCiAgIHR5cGUgc29ja2xlbl90LgoKMjAwOS0xMi0wOCAxNToyOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDbGVhbmVkIHVwIHRoZSBjb2RlIGZvciBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nOgogICAtIEluc3RlYWQgb2YgaGF2aW5nIGNhbGxzIHRvIHNldHZidWYoKSBpbiBtdWx0aXBsZSBmaWxlcywgdGhlcmUKICAgaXMgbm93IG9uZSBjYWxsCiAgIHRvIHNldHZidWYoKSBmcm9tIHRoZSBuZXcgZnVuY3Rpb24gbmV0c25tcF9zZXRfZmlsZWxvZy4gVGhlc2UKICAgc291cmNlIGZpbGVzCiAgIGFyZTogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdGFibGUuYwogICBhbmQgYWdlbnRcbWliZ3JvdXBcZGlzbWFuXHRyYWNlcm91dGVcdHJhY2VSb3V0ZUN0bFRhYmxlLmMuCiAgIC0gVXNpbmcgLUxvIC8gLUxlIGRvZXMgbm93IGVuYWJsZSBsaW5lIGJ1ZmZlcmluZyBmb3Igc3Rkb3V0IC8KICAgc3RkZXJyIHJlc3BlY3RpdmVseS4KICAgLSBSZW1vdmVkIGNvZGUgaW4gc25tcGQuYyBhbmQgc25tcHRyYXBkLmMgZm9yIHNldHRpbmcgbGluZQogICBidWZmZXJpbmcgb24gc3Rkb3V0CiAgIHNpbmNlIHNldHRpbmcgbGluZSBidWZmZXJpbmcgb24gc3Rkb3V0IGlzIG5vdyB0cmlnZ2VyZWQgYnkgdGhlCiAgIGNvbW1hbmQtbGluZQogICBvcHRpb24gLUxvLgogICBCdWdzIGZpeGVkOgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IGFsc28gc2V0IGZvciBzdGRlcnIgd2hlbiB0aGUKICAgY29tbWFuZC1saW5lIG9wdGlvbgogICAtTGUgaGFzIGJlZW4gc3BlY2lmaWVkLgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IHNldCBjb3JyZWN0bHkgZm9yIHN0ZG91dCBvbiBXaW5kb3dzCiAgIHN5c3RlbXMKICAgKGNvbW1hbmQtbGluZSBvcHRpb24gLUxvKS4KCjIwMDktMTItMDggMTI6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBsb2NhbCB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRlZmluZWQKICAgYnV0CiAgIG5vdCB1c2VkIGJ5IG9ubHkgZW5hYmxpbmcgdGhlIGxvY2FsIHZhcmlhYmxlIGRlZmluaXRpb25zIG9uIHRoZQogICBwbGF0Zm9ybSB0aGF0IHVzZXMgdGhlc2UgdmFyaWFibGVzIChMaW51eCkuCgoyMDA5LTEyLTA4IDEyOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBBZGRlZCAjaW5jbHVkZSAibWliZ3JvdXAvdXRpbF9mdW5jcy5oIi4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOS0xMi0wOCAxMjoyNSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBJbmNsdWRlIHRoZSBnZXRob3N0ZW50KCkgLyBzZXRob3N0ZW50KCkgZGVjbGFyYXRpb25zIGJlZm9yZSB1c2luZwogICB0aGVzZQogICBmdW5jdGlvbnMuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTA4IDEyOjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4ZWQgYW4gaW5jb25zaXN0ZW5jeSAod2hpY2ggaXMgYWxsb3dlZCBieSB0aGUgQU5TSSBDIHN0YW5kYXJkKQogICBiZXR3ZWVuCiAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBmdW5jdGlvbiBkZWZpbml0aW9uIG9mCiAgIG5ldHNubXBfYWRkX2dsb2JhbF90cmFwaGFuZGxlciBhbmQKICAgbmV0c25tcF9hZGRfZGVmYXVsdF90cmFwaGFuZGxlciBzdWNoCiAgIHRoYXQgdGhlIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGRvZXMgbm8gbG9uZ2VyIGNvbXBsYWluCiAgIGFib3V0CiAgIHRoaXMuCgoyMDA5LTEyLTA4IDEyOjA4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgaW1wbGljaXRseSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzLgoKMjAwOS0xMi0wOCAxMjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPbmx5IGNvbXBpbGUgdGhlIHdpbkV4dERMTCBzb3VyY2UgY29kZSBpZiB0aGUgcHJlcHJvY2Vzc29yIG1hY3JvCiAgIFVTSU5HX1dJTkVYVERMTF9NT0RVTEUgaGFzIGJlZW4gZGVmaW5lZC4KCjIwMDktMTItMDggMTI6MDMgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuCgoyMDA5LTEyLTA4IDEyOjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSBvdXQgdGhlIGJ1aWxkIG9yZGVyLgoKMjAwOS0xMi0wOCAwOTo0NiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3MgLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbzogZGlzYWJsZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmcKICAgYWJvdXQKICAgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMgKDQwMTgpIGJlY2F1c2UgdGhpcyB3YXJuaW5nIGRvZXMgbm90CiAgIHlpZWxkCiAgIGFueSB1c2VmdWwgaW5mb3JtYXRpb24uCgoyMDA5LTEyLTA4IDA5OjE3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3NjM5IChwYXRjaCAyNzgwNDExIC0tIGZpeCBjb21waWxlciB3YXJuaW5ncyk6CiAgIGFwcGxpZWQKICAgdGhpcyBwYXRjaCB0byBuZXQtc25tcC1jb25maWcuaC5pbiB0b28gc3VjaCB0aGF0CiAgIG5ldC1zbm1wLWNvbmZpZy5oIGFuZAogICBuZXQtc25tcC1jb25maWcuaC5pbiBtYXRjaCBhZ2Fpbi4KCjIwMDktMTItMDggMDg6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnR4X3N5c09SX2NhbGxiYWNrKCkgZG9lcyBub3QgdHJpZ2dlciBhCiAgIGNvbXBpbGVyCiAgIHdhcm5pbmcgd2hlbiB0aGUgdGhpcmQgYXJndW1lbnQgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gaGFzIGJlZW4KICAgZGVjbGFyZWQgY29uc3QuCgoyMDA5LTEyLTA4IDA4OjE0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBvZiBzdHJ0b3VsbCgpIGZyb20gJ3Vuc2lnbmVkIGxvbmcgbG9uZycKICAgKHdoaWNoCiAgIGlzIG5vdCB2YWxpZCBDODkpIHRvICd1aW50NjRfdCcgKGRlY2xhcmVkIGluCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4pLgogICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgY29tcGlsZSBhZ2FpbiB3aXRoCiAgIE1TVkMgNi4wLgoKMjAwOS0xMi0wNyAxMDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFR3ZWFrIG1pc3Npbmcgc3ViaWRlbnRpZmllciBwcm9jZXNzaW5nIHRvIGJlIG1vcmUgdHlwZS1hd2FyZS4KICAgKEFuIGlzc3VlIHdpdGggQUlYLCBhdCBsZWFzdCkKCjIwMDktMTItMDYgMTg6MzggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBNYWtlIHRoZSBsaXN0cyBvZiBjb20yU2VjKkVudHJpZXMgc3RhdGljCgoyMDA5LTEyLTA2IDE4OjM0ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTWFrZSB0aGUgaXRlcmF0b3IgdmFyaWFibGUgaW4gbmV0c25tcF8qX2dldFNlY05hbWUgY29uc3QKCjIwMDktMTItMDYgMTg6MjkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBDaGFuZ2UgdGhlIHR5cGVzIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgIG5ldHNubXBfKl9nZXRTZWNOYW1lIGZyb20gY2hhciogdG8gY29uc3QgY2hhciogc2luY2UgdGhleSBwb2ludAogICBpbnRvIGludGVybmFsIHN0cnVjdHVyZXMuCgoyMDA5LTEyLTA1IDIwOjE5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbiBvZiBzdHJ0b3VsbAoKMjAwOS0xMi0wNSAxNzo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNhbGwgbmV0c25tcF9yZWFkX21vZHVsZSBpbnN0ZWFkIG9mIHJlYWRfbW9kdWxlIHRvIG1ha2UgaXQKICAgY29tcGlsZSB3aXRoCiAgIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFCgoyMDA5LTEyLTAyIDE1OjM5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBpbnZhbGlkIGFjY2VzcyB0byBtZW1vcnkgaW4gVENQLU1JQgogICBUaGlzIHBhcnRseSByZXZlcnRzIHBhdGNoIDE3NzE5IC0gdGhlIGVudHJpZXMgKmFyZSogdXNlZCBhZnRlcgogICByYXdfZGF0YSBjb250YWluZXIgaXMgZnJlZWQuIFRoZXNlIGVudHJpZXMgc2hvdWxkIGJlIGZyZWVkIHdoZW4KICAgYXNzb2NpYXRlZCByb3dyZXFfY3R4IGlzIGZyZWVkLgoKMjAwOS0xMi0wMiAwODozMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgdWRwVGFibGUgaW5kZXhlcyBvbiBiaWctZW5kaWFuIDY0Yml0IExpbnV4LgogICBUaGUgaW5kZXggd2FzIGFsd2F5cyAnMC4wLjAuMCcgaW5zdGVhZCBvZiByZWFsIGxvY2FsIElQIGFkZHJlc3MuCgoyMDA5LTEyLTAxIDEyOjM2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBVcGRhdGUgYSByZWR1bmRhbnQgKGFuZCBwcm9iYWJseSBpbmFjY3VyYXRlKSBjb21tZW50LgoKMjAwOS0xMi0wMSAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4MjIzNjA6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGJ1aWxkaW5nCiAgIHRhYmxlIE9JRHMKCjIwMDktMTItMDEgMTI6MDggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IEJVR1M6IDI4Mzc5OTg6IEhhbmRsZSBtaXNzaW5nIGluc3RhbmNlCiAgIHN1YmlkZW50aWZpZXJzIGluIHJlc3VsdHMKCjIwMDktMTItMDEgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODQxMDA4OiBQcm90ZWN0IGFnYWluc3QgY3Jhc2ggZm9sbG93aW5nCiAgIGZhaWxlZCBBZ2VudFggcmVzcG9uc2UKCjIwMDktMTItMDEgMDc6MzQgIGpzYWZyYW5lawoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCByZXNwb25kaW5nIHRvIGJyb2FkY2FzdCByZXF1ZXN0cy4KICAgVURQIHJlc3BvbnNlcyBhcmUgc2VudCB3aXRoIHNvdXJjZSBJUCBhZGRyZXNzIHdoaWNoIHdhcwogICBkZXN0aW5hdGlvbiBvZgogICBhcHByb3ByaWF0ZSByZXF1ZXN0cyAoaW1wbGVtZW50ZWQgaW4gU1ZOIHJldi4gMTUyMTUpLiBCdXQgaWYgdGhlCiAgIGRlc3RpbmF0aW9uCiAgIG9mIGEgcmVxdWVzdCBpcyBicm9hZGNhc3QgSVAgYWRkcmVzcywgdGhlIHJlcXVlc3Qgd2FzIHNlbnQgd2l0aAogICB0aGUgYnJvYWRjYXN0CiAgIGFkZHJlc3MgYXMgc291cmNlLiBzZW5kbXNnKCkgb24gTGludXggZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFuZAogICByZXR1cm5zIGVycm9yCiAgIC0+IHJlc3BvbnNlIGlzIG5vdCBzZW50LiBJbiBvcmRlciB0byBzZW5kIHJlc3BvbnNlcyBmcm9tIHRoZSBzYW1lCiAgIGludGVyZmFjZSwKICAgaW50ZXJmYWNlIGluZGV4IG9mIHRoZSBhcHByb3ByaWF0ZSBpbnRlcmZhY2UgbXVzdCBiZSB1c2VkLgoKMjAwOS0xMi0wMSAwMDoyOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODUyLgoKMjAwOS0xMi0wMSAwMDoyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODQyLgoKMjAwOS0xMS0zMCAxNjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NzM4NTg6IEZpeCBoYW5kbGluZyBvZiBzY2hlZE93bmVyIGluZGV4LgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggU2NodWJlcnQuCgoyMDA5LTExLTMwIDE2OjQ2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHUzogMjg4ODU2OTogRml4IGdlbmVyYXRpb24gb2YgdGFibGUgY29sdW1ucwogICBhcnJheQoKMjAwOS0xMS0zMCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4OTQwNTk6IEhhbmRsZSBlcnJvcnMgd2hlbiBjb3VudGluZwogICBpbnRlcmZhY2VzCgoyMDA5LTExLTMwIDE2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDI4OTcwMDA6IFN1cHByZXNzIDMyLWJpdCBjb3VudGVyIHRydW5jYXRpb24KICAgd2FybmluZ3MuCgoyMDA5LTExLTMwIDE1OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDMwOTI6IEZpeCBicm9rZW4gaGFuZGxpbmcgb2YgYnJvYWRjYXN0CiAgIGVudHJpZXMuCgoyMDA5LTExLTMwIDE1OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMTAyOTogRml4IGNvbXBpbGVyIHdhcm5pbmcgb24KICAgQ2xvc2VIYW5kbGUoKQogICBFbmRpYW4gcHJvYmxlbXMgYWxyZWFkeSBhZGRyZXNzZWQgYnkgcGF0Y2ggIzI4MzU1NzYKCjIwMDktMTEtMzAgMTU6MTMgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjg5MDkzMTogQmV0dGVyIGhhbmRsaW5nIG9mIENvdW50ZXI2NAogICB2YWx1ZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBSb21hbm92LgoKMjAwOS0xMS0zMCAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODc4MTY6IFByb3RlY3QgYWdhaW5zdCBkaXZpc2lvbi1ieS16ZXJvCiAgIGNyYXNoCgoyMDA5LTExLTMwIDE1OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMyMjA6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aGVuCiAgIGlmWFRhYmxlIGlzIG5vdCBpbmNsdWRlZC4KCjIwMDktMTEtMzAgMTQ6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMxNTU6IEZpeCBtZW1vcnkgbGVhayBpbiBwcm94eQogICBoYW5kbGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgR293dGhhbSBUaG9tbWFuZHJhLgoKMjAwOS0xMS0zMCAxNDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzA5MjogU3VwcG9ydCBtb25pdG9yaW5nIHByb2Nlc3NlcyB0aGF0CiAgIHNob3VsZCBub3QgYmUgcnVubmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQ2hyaXN0aWFuIChjZzc1KS4KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIGJhY2stcG9ydGVkIHRvIGVhcmxpZXIgbGluZXM/CgoyMDA5LTExLTMwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg3NzUxODogRml4IGhhbmRsaW5nIG9mIHNjb3BlZCBBZ2VudFgKICAgdmFyaWFibGVzCgoyMDA5LTExLTMwIDE0OjAxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjgzNTU3NjogRml4IGVuZGlhbm5lc3MgaXNzdWVzIGluCiAgIHBhc3MvcGFzc19wZXJzaXN0CgoyMDA5LTExLTI3IDA4OjU0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYzoKCiAgIFJlbW92ZSBleGVjdXRhYmxlIGF0dHJpYnV0ZSBmcm9tIHNvdXJjZSBmaWxlcy4KCjIwMDktMTEtMjUgMjA6MzUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSBhbGwgdGhlIG9pZHMgYW5kIG9pZCBsZW5ndGhzIGluIGFnZW50X3RyYXAuYwogICBjb25zdCBhbmQgdXNlIHRoZW0gZnJvbSBldmVyeXdoZXJlLgoKMjAwOS0xMS0yNSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEluc3RhbGwgbGlicmFyeS9vaWQuaC4gVGhhbmtzIHRvICJUb21hc3ogTGlzIgogICB3aG8gc3BvdHRlZCB0aGUgYnVnLgoKMjAwOS0xMS0yNSAwOTo0NyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgQ29tbWVudC1vbmx5IGNoYW5nZTogY2hhbmdlZCB0aGUgbmFtZSBpbiB0aGUgZmlsZSBoZWFkZXIgZnJvbQogICB0ZXN0aGFuZGxlci5oCiAgIHRvIGluc3RhbmNlLmggc3VjaCB0aGF0IGl0IG5vdyBtYXRjaGVzIHRoZSBmaWxlbmFtZS4KCjIwMDktMTEtMjQgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0CgoyMDA5LTExLTIzIDA3OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGVudGVycHJpc2UgYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZW5kX3RyYXBzIGFuZCBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGNvbnN0CgoyMDA5LTExLTIzIDA3OjAyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgbmFtZSBhcmd1bWVudCB0byBmaW5kX3ZhcmJpbmRfaW5fbGlzdAogICBjb25zdAoKMjAwOS0xMS0yMiAyMzoyNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIFJlbW92ZSBzb21lIGxvY2FsIHJlZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucwoKMjAwOS0xMS0yMiAwMTowMyAgbWFnZnIKCiAgICogIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nLCBXaW4zMjogUmVtb3ZlIGEgZmV3IHVudXNlZCBjb25maWd1cmUgc3ltYm9scwoKMjAwOS0xMS0yMSAwODowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvU25tcC13aW5FeHRETEwuaCwgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFJlcGxhY2VkIGFuIGFjY2lkZW50YWxseSBjb21taXR0ZWQgZmlsZSBieSB0aGUgcHJvcGVyIGNvbnRlbnRzLgoKMjAwOS0xMS0yMCAxNjoyOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBSZXZlcnRlZCBhY2NpZGVudGFsbHkgbWVyZ2VkIGNoYW5nZXMuCgoyMDA5LTExLTIwIDE2OjI2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMDktMTEtMjAgMTY6MTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3BlbGxpbmcgZml4IGluIEMgc291cmNlIGNvZGUgY29tbWVudHM6IHJlcGxhY2VkICdyZXRyaXZhbCcgYnkKICAgJ3JldHJpZXZhbCcuCgoyMDA5LTExLTIwIDE2OjE1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIGEgbmFtaW5nIGluY29uc2lzdGVuY3k6IHJlcGxhY2VkIHR3byBvY2N1cnJlbmNlcyB3aW5FeHREbGwKICAgYnkgd2luRXh0RExMIGluIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAwOS0xMS0xOSAyMjo1MiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjkwMDA3ODogQWRkIHN1cHBvcnQgZm9yIE9JRCB2YXJpYWJsZXMgd2l0aAogICBzaXplIGluIGVsZW1lbnRzIGluc3RlYWQgb2YgYnl0ZXMsIGNvcnJlY3Qgc3lzT2JqZWN0SUQgdG8gdXNlCiAgIHRoaXMuCgoyMDA5LTExLTEzIDEyOjU5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbG9nZ2luZyBvZiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIKICAgYml0cycgaW4gSVAtTUlCIGFuZCBUQ1AtTUlCCiAgIFRoZSBjb3VudGVycywgd2hpY2ggZ3JvdyBmYXN0IGFyZSBub3cgY3V0IHRvIDMyYml0cy4KCjIwMDktMTEtMTIgMDg6MjYgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBVc2UgYmlnIHByaW50ZidzIGluc3RlYWQgb2YgbWFueSBzbWFsbCBvbmVzIHRvIHNhdmUgYSBmZXcgaHVuZHJlZAogICBieXRlcyBvbiB0aGUgZmluYWwgZXhlY3V0YWJsZSBzaXplLgoKMjAwOS0xMS0xMiAwMjoyNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b2wuYywgICAKICAgICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfUkVQTEFDRV9GVU5DUyB0byBoYW5kbGUgY29kZSB0aGF0IGlzCiAgIG1pc3Npbmcgb24gc29tZSBwbGF0Zm9ybXMuCgoyMDA5LTExLTExIDA5OjAwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBjYWNoZSBmcmVlIHJvdXRpbmUgdG8gbWF0Y2ggaGVhZGVyIGRlY2xhcmF0aW9uLgogICBSZXR1cm4gc3VjY2Vzcy9mYWlsdXJlIHZhbHVlcyBmcm9tIGNhY2hlIGxvYWQgcm91dGluZS4KICAgUHJvYmxlbSBpZGVudGlmaWVkIGJ5IFh1YW4uCgoyMDA5LTEwLTMwIDA5OjUxICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBORVdTOiBzbm1wbGliOiBSZXZlcnQgMTc4MDgsIGluc3RlYWQgZmFjdG9yIG91dCB0aGUgZGVjbGFyYXRpb24KICAgb2Ygb2lkIHRvIGl0J3Mgb3duIGZpbGUgYW5kIGluY2x1ZGUgdGhhdCBmaWxlIGZyb20gYm90aCB0eXBlcy5oCiAgIGFuZCBhc24xLmgKCjIwMDktMTAtMzAgMDg6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgc25tcG5ldHN0YXQ6IEFkZCBjb3JyZWN0IHNpemUgcHJlZml4ZXMKICAgd2hlbiBwcmludGluZyB2YXJpYWJsZXMgb2YgdHlwZSBvaWQuCgoyMDA5LTEwLTMwIDA4OjA3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2Ugb2lkIHRvIGJlIGEgMzItYml0IHR5cGUgb24gSUxQNjQgYW5kCiAgIExQNjQgcGxhdGZvcm1zLgoKMjAwOS0xMC0zMCAwODowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgb2lkIHR5cGVkZWYgZnJvbQogICA8bmV0LXNubXAvbGlicmFyeS9hc24xLmg+LiBJdCBpcyBzdGlsbCBwcmVzZW50IGluCiAgIDxuZXQtc25tcC90eXBlcy5oPiwgdXNlIHRoYXQgZmlsZS4KCjIwMDktMTAtMjggMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZG9uJ3QgcmVxdWlyZSBzdWJhZ2VudF9pbml0KCkgaWYgbm90IG9ubHkgYnVpbGRpbmcgbWFzdGVyIGFnZW50CiAgIGNvZGUKCjIwMDktMTAtMjcgMDY6NDQgIG1hZ2ZyCgogICAqICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzIHRvIHVfY2hhcioKCjIwMDktMTAtMTQgMjM6MTIgIG1hZ2ZyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4KICAgQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCgoyMDA5LTEwLTEyIDIwOjI4ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSBycCB2YXJpYWJsZSB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgb25lLgoKMjAwOS0xMC0wOSAxMjozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOjI4NzE3NDc6IHBsdWcgbWVtb3J5IGxlYWsgaW4gT0lECiAgIHByb2Nlc3NpbmcuCiAgIFRoZSBtZW1vcnkgbGVha2VkIHdoZW4gc21hbGwgT0lELCB3aGljaCBjb3VsZCBmaXQgcHJlLWFsbG9jYXRlZAogICB2cC0+bmFtZV9sb2MsIHdhcyBwbGFjZWQgaW4gZGlmZmVyZW50IChhbGxvY2F0ZWQpIG9uZS4KCjIwMDktMTAtMDkgMDU6MzEgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEJVRzogMjgzODI0MzogQ29ycmVjdCB0aGUgb3V0cHV0IG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgVGhhbmtzIHRvIEphY2sgSHVhbmcgb2YgUXVhbGNvbW0gd2hvIHBvaW50ZWQgb3V0IHRoaXMgYnVnLgoKMjAwOS0xMC0wOSAwNTowMCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBwYXJzaW5nIG9mIHJhbmdlcyB0byBhY2NlcHQgYWxsCiAgIHZhbGlkIHZhbHVlcy4KCjIwMDktMTAtMDcgMjI6MjQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBtaXNjOiBQQVRDSDogMjgzNjExMjogVXNlIHRoZSByaWdodCBtb2RpZmllciB3aGVuCiAgIHByaW50aW5nIHNpemVfdCBhbmQgc3NpemVfdCB2YXJpYWJsZXMuCgoyMDA5LTEwLTA3IDEyOjUwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgY3JlYXRpb24gb2Ygdmlld3MgdXNpbmcgc25tcHVzbSwgT0lEcyB3aXRoCiAgIGluZGV4ZXMgPiAyNTUgYXJlIGFsbG93ZWQgbm93LgogICBUaGlzIHJldmVydHMgU1ZOIGNvbW1pdCAjNzQ5Mi4KCjIwMDktMTAtMDUgMTk6MTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IHRoZSBzcGVsbGluZyBvZiBfX2NwbHVzcGx1cyB3aGVuCiAgIGNoZWNraW5nIGlmIHRoZSBmaWxlIHNob3VsZCBiZSB3cmFwcGVkIGluIGV4dGVybiAiQyIuCgoyMDA5LTEwLTA1IDA2OjEzICBtYWdmcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBDSEFOR0VTOiBzbm1wd2FsazogSGFuZGxlIHRoZSBjYXNlIHdoZW4gdGhlIGVuZCBvaWQgaXMgbG9uZ2VyCiAgIHRoYW4gdGhlIGN1cnJlbnQgb2lkIGNvcnJlY3RseQoKMjAwOS0wOS0zMCAxMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhY2thZ2UgdmVyc2lvbgogICBpbmZvcm1hdGlvbiBjcmFzaGluZyB0aGUgYWdlbnQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgSW55YXZlbiBTYWthcmFpLgoKMjAwOS0wOS0yNyAxNDo1OSAgYWxleF9iCgogICAqICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMjogQmluYXJ5IGJ1aWxkIGluc3RydWN0aW9ucyBhbmQgc2NyaXB0IHVwZGF0ZXMuCgoyMDA5LTA5LTI0IDAwOjA4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjQyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjQwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICByZW1vdmUgU1ZOIGJyYW5jaCB3b3JkaW5nCgoyMDA5LTA5LTIzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBwcm9wZXIgcHJvamVjdCBjYXBpdGFsaXphdGlvbgoKMjAwOS0wOS0yMyAyMzozNSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMiAyMTo1MSAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCB0eXBvcwoKMjAwOS0wOS0xNCAyMjo0OSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjQ4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjozOSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMTQgMjI6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5haXgsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBQYXRjaCBmcm9tIG1hZ2ZyIGZvciA1LjUgc3BlY2lmaWMgYWl4IGJ1aWxkIGZpeGVzCgoyMDA5LTA5LTAyIDA3OjEyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVuYW1lIE1JQiBtYWNybyB0byBORVRTTk1QX01JQjJfT0lELCBNSUIgaXMKICAgdG9vIGdlbmVyaWMgYW5kIG1heSBjb25mbGljdCB3aXRoIGFwcGxpY2F0aW9ucy4KICAgCiAgIFRoZSBvbGQgTUlCIG1hY3JvIGlzIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVubGVzcwogICBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUyBpcyBkZWZpbmVkLgoKMjAwOS0wOC0zMSAxOTozOCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZGl0aW9uYWwgUkZDIG1pYnMKCjIwMDktMDgtMzEgMTk6MzcgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIElBTkEgZml4ZWQgYSBidWcKCjIwMDktMDgtMjkgMDc6MjkgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCjIwMDktMDgtMjkgMDc6MjggIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IHJldCBpcyBvbmx5IHVzZWQgaW4gc2V0dGFibGUgdGFibGVzIHNvIG9ubHkgZGVjbGFyZSBpdAogICB0aGVuLgoKMjAwOS0wOC0yOSAwNzoyNCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVwbGFjZSB0aGUgX29pZF9sZW4gdmFyaWFibGUgd2l0aCBhbiBleHBsaWNpdCBjYWxsIG9mCiAgIE9JRF9MRU5HVEguCgoyMDA5LTA4LTI5IDA3OjIxICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBNYWtlIGV2ZXJ5IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHN0YXRpYyBzdGF0aWMuIFJlbW92ZSB0aGUKICAgZGVjbGFyYXRpb25zIG9mIHRoZSBzdGF0aWMgZnVuY3Rpb25zIGFuZCB0aGUgcHJpdmF0ZSBkZWZpbmVzIGZyb20KICAgdGhlIGhlYWRlci4KCjIwMDktMDgtMjkgMDc6MTkgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlb3JkZXIgdGhlIGZ1bmN0aW9ucyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMuCgoyMDA5LTA4LTI5IDA3OjE2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBuZXRzbm1wX3RhYmxlX3JlZ2lzdGVyIHNob3VsZCBiZSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlCiAgIGFuZCB0YWtlIG9ubHkgdHdvIGFyZ21lbnRzLgoKMjAwOS0wOC0yOSAwNzoxNCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogYnVpbGRfb2lkIGV4cGVjdHMgYSBwb2ludGVyIHRvIGFsbG9jYXRlZCBvaWQuIENoYW5nZSB0bwogICB1c2UgYnVpbGRfb2lkX25vYWxsb2MgYW5kIHJlbW92ZSBvbmUgY29weSBvZiB0aGUgaW5kaWNlcy4KCjIwMDktMDgtMjkgMDc6MTAgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFRoZXJlIGlzIG5vIGluZGV4X29pZF9sZW4gbWVtYmVyIGluIHN0cnVjdCBlbnRyeS4gVXNlIHRoZQogICBpbnRlbmRlZCBsb2NhbCB2YXJpYWJsZSBpbmRleF9vaWRfbGVuLgoKMjAwOS0wOC0yOSAwNzowNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogQ29ycmVjdCB0aGUgcmV0dXJuIHR5cGUgb2YgJHtpfV9nZXQqZW50cnkgdG8gbWF0Y2ggdGhlCiAgIHJldHVybmVkIHR5cGUuCgoyMDA5LTA4LTI2IDIyOjM3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB3aHdvb3BzOyBibGV3IHRoZSBjaGFuZ2Vsb2cgZm9yIHJjMgoKMjAwOS0wOC0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZWQgYmFzZWQgb24gbmV3IFNGIHVwbG9hZCBtZXRob2RzOyBubyBsb25nZXIgYXMgYXV0b21hdGFibGUKCjIwMDktMDgtMjYgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBKYW4gdG8gZW5kbGVzcyBsb29wIGluIGRlZmF1bHQgcm91dGVzCiAgIG9uIGxpbnV4CgoyMDA5LTA4LTI2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gSmFuIHRvIGZpeCBDKysgd3JhcHBlcgoKMjAwOS0wOC0yNiAxNDo1MyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgSW5pdGlhbCBzdGFiIGF0IGEgbWluaW1hbC1oZWxwZXIgKHJhdykgdGFibGUgdGVtcGxhdGUsCiAgIGxlYXZpbmcgbW9zdCBvZiB0aGUgd29yayB0byB0aGUgdXNlci1wcm92aWRlZCBNSUIgaGFuZGxlci4KCjIwMDktMDgtMjYgMTQ6NTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBib2d1cyBmYWlsdXJlcyAocmV0dXJuaW5nIDApIGFuZCBzdWJzZXF1ZW50CiAgIGRvdWJsZS1mcmVlcywKICAgZHVlIHRvIDE1LS8zMS1iaXQgbWFza2luZyB3aGVuIHNlbGVjdGluZyByZXF1ZXN0IElEcy4gSWRlbnRpZmllZAogICBieSBrcm9tZXNreS4KCjIwMDktMDgtMjAgMTM6MzAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwbHVnIGxlYWtzIGluIGlwSWZTdGF0c1RhYmxlLAogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZS4KICAgCiAgIEl0IHNlZW1zIHRvIG1lIHRoZSB0YWJsZXMgd2VyZSB3cm9uZ2x5IGdlbmVyYXRlZCB3aXRoCiAgIG0yY19kYXRhX2FsbG9jYXRlIG9yCiAgIHNvbWVvbmUgZm9yZ290IHRvIHJlbGVhc2UgdGhlIHVzZXIgcHJvdmlkZWQgZGF0YS4KCjIwMDktMDgtMTIgMTU6MDAgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGZpeCBsaWJ0b29sIHZlcnNpb24gaW4gTkVXUwoKMjAwOS0wOC0xMSAwMDo0MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgQ2hhbmdlTG9nOgoKICAgd2hvb3BzOyBhZGQgcmVhbCBjaGFuZ2Vsb2cgZW50ZXJpZXMgZm9yIC5yYzEKCjIwMDktMDgtMTAgMjM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZml4IHR5cG8gaW4gc3ZuMmNsIGxpbmUKCjIwMDktMDgtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDgtMTAgMjE6MzIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMTAgMjE6MjEgIGhhcmRha2VyCgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbCwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA4LTA3IDEwOjMyICBkdHMxMgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgQ29ycmVjdCwgY29uc29saWRhdGUsIGNsYXJpZnkgYW5kIGNsZWFudXAgdGhlIGNhdGFsb2cgb2YgY3VycmVudAogICBjaGFuZ2VzLgoKMjAwOS0wOC0wNiAwNzo1NyAgZHRzMTIKCiAgICogRkFROgoKICAgRXhwYW5kIG9uIGV4ZWMgdnMgZXh0ZW5kLgoKMjAwOS0wOC0wNSAyMDowNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjgyMjM1NTogRml4IG1lbW9yeSBsZWFrcyBvbgogICB1ZHBFbmRwb2ludFRhYmxlIChsaW51eCkKICAgUGF0Y2ggc3VwcGxpZWQgYnkgRnJhbmsgTGljaHRlbmhlbGQKCjIwMDktMDgtMDUgMTk6MDUgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyODIyMzM3OiBGaXggbWVtb3J5IGxlYWsgaW4KICAgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMDktMDgtMDUgMTU6MTYgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBXaGVuIGRlbGV0aW5nIHJvdyBjb250ZXh0LCBkZWxldGUgYWxzbyBhc3NvY2lhdGVkIGRhdGEuCgoyMDA5LTA4LTA1IDE1OjE1ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFRoZSBjb250YWluZXIgdXNlZCB0byB0cmFjayBlbnRyaWVzIHRvIGRlbGV0ZSBmcm9tIGNhY2hlIHNob3VsZAogICBiZSByZWxlYXNlZCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDktMDgtMDUgMTU6MTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gVURQLSBhbmQgVENQLU1JQi4KICAgVGhlIGRhdGEgZnJvbSByYXdfZGF0YSBhcmUgY29waWVkIHRvIGNhY2hlLCBzbyBpdCBzaG91bGQgYmUKICAgZnJlZWQuCgoyMDA5LTA4LTA1IDEwOjE2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogYXBwczogQlVHOiAyODExNTc3OiBGaXggYnVnIGluIEdldEJ1bGsgaGFuZGxpbmcuCiAgIERvbid0IGdldCBjb25mdXNlZCBieSBpbmRleCB2YWx1ZXMgdGhhdCBjb250YWluIGEgJzonIGNoYXJhY3Rlci4KCjIwMDktMDgtMDQgMjE6NTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMjgyNzI2OTogU3VwcHJlc3Mgbm9uLW9yZGVyZWQgVE9ETyBjb21tZW50cy4KCjIwMDktMDgtMDQgMjE6MzUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGNvZGUgZm9yIGEgc2luZ2xlIHRhYmxlLAogICBhcyB3ZWxsIGFzIGEgbGFyZ2VyIGdyb3VwLgogICBBbHNvIGFkZHJlc3NlcyBidWcgMjE1MDI4NQoKMjAwOS0wOC0wNCAyMToxNiAgbWFnZnIKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgc25tcGxpYjogZnJvbSAiQmFydCB2YW4gQXNzY2hlICYgTWFnbnVzIEZyb21yZWlkZSI6IE1vcmUgdXBkYXRlcwogICB0byBzdHJ0b3VsbC5jCgoyMDA5LTA4LTA0IDEwOjU3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gIk1hcmN1cyBS54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOaei2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI4Mjc3MjI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IEltcHJvdmUKICAgc3RydG91bGwgdG8gYmUgbGVzcyBNU1ZDLXNwZWNpZmljCgoyMDA5LTA4LTAzIDE4OjM4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkCiAgIGJlIGluc3RhbGxlZAoKMjAwOS0wNy0yNyAxMjo0MSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA3LTI3IDEyOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZQoKMjAwOS0wNy0yNyAxMjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IGZyZWVic2Q6IHBhdGNoIGZyb20gQ2V6YXJ5IE1vcmdhIHRvIGZpeCBhIG1ha2UgdGVzdCBvbgogICBmcmVlYnNkCgoyMDA5LTA3LTI3IDEyOjAyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA3LTI3IDExOjUyICBoYXJkYWtlcgoKICAgKiAgRkFRLCBORVdTLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDctMjcgMDg6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICByZXZlcnQgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHBhdGNoCgoyMDA5LTA3LTI3IDA4OjM3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgdWRwL2R0bHMKCjIwMDktMDctMjcgMDg6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGNhcnJ5IGEgc2VjTmFtZQoKMjAwOS0wNy0yNiAyMTozNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIGZvciBXb3Jrc3BhY2UgYnVpbGQuCgoyMDA5LTA3LTI2IDE4OjIwICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLUFkZGVkIHN0cnRvdWxsIGZ1bmN0aW9uIGFuZCBjb25maWd1cmUgY2hlY2sgZm9yIHN5c3RlbXMgd2l0aG91dAogICBpdCBzdWNoIGFzIFdpbjMyIE1TVkMgNgogICAtV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIC0gcmVxdWlyZXMgbmV3IHN0cnRvdWxsLmMgZmlsZQogICAtV2luMzI6IE5ldyBidWlsZC1iaW5hcnkgc2NyaXB0IHRvIHNpbXBsaWZ5IGJ1aWxkaW5nIHRoZSBXaW5kb3dzCiAgIGJpbmFyeSBwYWNrYWdlLgoKMjAwOS0wNy0yNSAwNTozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBNYWtlIHN1cmUgYSBtZXNzYWdlIGlzIHdyaXR0ZW4gaWYgdGhlIHJlbGV2YW50IHRhYmxlIGlzIG1pc3NpbmcuCgoyMDA5LTA3LTIzIDIxOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIGFkZHJlc3MgaW4gUkVBRE1FLgoKMjAwOS0wNy0yMyAwMTowNyAgYWxleF9iCgogICAqICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwOCsgZml4ZXMuCgoyMDA5LTA3LTIzIDAwOjU1ICBhbGV4X2IKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwNSsgYnVpbGQgZml4ZXMuIFRoYW5rcyB0byBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA3LTIxIDEyOjIyICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMucm93LmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEFkZCBzaW1wbGUgZGVidWcgb3V0cHV0IHRvIG1pYjJjIHRlbXBsYXRlcy4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTIwIDExOjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oOgoKICAgQWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgZnJvbSBwYXRjaCAjMjA1MzI3My4KCjIwMDktMDctMTkgMTU6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE2IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBBZGQgSVB2NiBvY3RldCBjb3VudGVycy4KICAgTmV3IExpbnV4IGtlcm5lbHMgKGUuZy4gMi42LjMxLXJjMiwgbWF5YmUgc29tZSBlYXJsaWVyKSBwcm92aWRlCiAgIGNvdW50ZXJzIGZvcgogICBpbmNvbWluZy9vdXRnb2luZyBJUHY2IHRyYWZmaWMgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBJZlN0YXRzVGFibGUuCgoyMDA5LTA3LTE1IDIyOjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBwdXQgdGVtcG9yYXJ5IGRhdGEgdG8gd2hlcmUgdGhleSBiZWxvbmcKCjIwMDktMDctMTEgMjE6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZSBjb25maWd1cmUKCjIwMDktMDctMTEgMjE6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIEZyZWVCU0QpOiBhZGp1c3Qga3ZtIGNvbmZpZ3VyZSB0ZXN0cwoKMjAwOS0wNy0xMCAxMjozNSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoZWNrIElQdjYgcG9ydCByYW5nZXMgaW4gdGhlIHNhbWUgd2F5IGFzIElQdjQgcG9ydHMgYXJlIGNoZWNrZWQuCgoyMDA5LTA3LTEwIDA3OjQ2ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmM6CgogICBGaXggYW5vdGhlciBJUHY0IGFkZHJlc3Mgc2l6ZSAtIGxvbmcgaGFzIDggYnl0ZXMgb24gNjRiaXQgTGludXguCiAgIEFsc28gZml4IHRoZSBkZWZhdWx0IHR5cGUgZm9eQ0FTTl9JUEFERFJFU1MgaW4gbWliMmMsIHNvIHRoZQogICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGNhbiBiZSBzYWZlbHkgcmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIGNsZWFudXAgb2YgdGVzdGluZyBjYXNlcyB0byByZW1vdmUgZG91YmxlIGluY2x1ZGUgYW5kIGRvdWJsZQogICBleHBvcnRzCgoyMDA5LTA3LTA5IDIzOjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDMwMHVkcDoKCiAgIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgVENQL0lQdjQgdGVzdAoKMjAwOS0wNy0wOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgZGVmaW5lZCB0cmFuc3BvcnRzCgoyMDA5LTA3LTA5IDIyOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhIENPTkZJR0FQUCBtYWNybyBmb3IgYWRkaW5nIHN0dWZmIHRvIHNubXAuY29uZgoKMjAwOS0wNy0wOCAxNToxMiAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGdldGhvc3RieWFkZHIgcGFyYW1ldGVyLCBuZXRzbm1wX3VkcF9mbXRhZGRyIG5ldmVyIHJldHVybmVkIGEKICAgaG9zdG5hbWUuCgoyMDA5LTA3LTA3IDE1OjQ2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBGaXggSVAgYWRkcmVzcyBsZW5ndGggb24gNjQgYml0IHN5c3RlbXMgaW4gbWliSUksIHBhc3MgYW5kCiAgIHBhc3NfcGVyc2lzdCBtb2R1bGVzLgoKMjAwOS0wNy0wNyAxNToyNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBVc2UgY29ycmVjdGx5IHNpemVkIElQIGFkZHJlc3NlcyBpbiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlCiAgIHByb2Nlc3NpbmcgLSB1X2xvbmcgY2FuIG1ha2UgcHJvYmxlbXMgb24gYmluIGVuZGlhbiA2NCBiaXQKICAgc3lzdGVtcwoKMjAwOS0wNi0yOSAxMzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSBlbnRyeSBmb3IgYSBwYXRjaCB0aGF0IGdvdCByZXZlcnRlZAoKMjAwOS0wNi0yNSAxNToyNCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE1vdmUgbm9uLWNvcmUgZGF0YSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgKGxpYnJhcnkgaW50ZXJuYWxzKQogICBoZWFkZXIgZmlsZS4KICAgTW92ZSB0aGUgbGFyZ2VfZmRfc2V0IGRhdGEgc3RydWN0dXJlIGludG8gdGhpcyBoZWFkZXIgZmlsZS4KCjIwMDktMDYtMTggMjI6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWxsb3cgYnVpbGRpbmcgd2l0aCBQZXJsIHZlcnNpb25zIHRoYXQgbGFjawogICBQRVJMX0VYSVRfREVTVFJVQ1RfRU5ECgoyMDA5LTA2LTE4IDIyOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBidWlsZCBmaXggZm9yIFRydTY0IFVuaXggYW5kIElSSVg6IG1vdmUgX1hPUEVOKgogICBkZWZpbml0aW9ucyB0byB3aGVyZSB0aGV5IGFyZSBpbiA1LjQueCBhbmQgZWFybGllcgoKMjAwOS0wNi0xOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2xlYW4gdXAgLS13aXRoLW5sIGNvbmZpZ3VyYXRpb24KICAgKiAgTW92ZSB0aGUgX0FSR19XSVRIIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlICAyMDA5LTA2LTE2IDE1OjE3CiAgICAgICByc3RvcnkKCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGJlZm9yZSBkZXJlZgoKMjAwOS0wNi0xNSAyMzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IGV4cGxhaW5pbmcgbm90IHF1aXRlIG9idmlvdXMgbGFjayBvZiBtZW1tb3ZlCgoyMDA5LTA2LTE1IDE5OjMyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBSZW1vdmUgI2lmIDAgY29tbWVudGVkIGNvZGUKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5yYzEgLT4gVjUuNi5yYzIKCjIwMTAtMDktMDQgMDE6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOS0wNCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTAzIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHRsc3RjcCBwYXJzaW5nIG9mIGhvc3QgbmFtZXMuCgoyMDEwLTA5LTAzIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIGNoZWNrIHRoZSByZXR1cm4gY29kZSBvZiBmZ2V0cyBhbmQgZm9wZW4gYmVmb3JlIGluc2VydGluZyB0aGUKICAgcmVzdWx0cy4KCjIwMTAtMDktMDMgMjI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUGF0Y2ggZnJvbSB0YW5kZXJzIHRvIGZpeCBicm9rZW4gYWxhcm1zIGFmdGVyIHRoZSBwcmV2aW91cwogICByZS1lbnRyYW50IHBhdGNoCgoyMDEwLTA5LTAzIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDktMDMgMjE6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTgxNDA6IGZyb20gdGFrZXZvczogY2hlY2sgdGhhdCBpbm9kZSBpcwogICBub24temVybwoKMjAxMC0wOS0wMyAyMTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQyODogZnJvbSB0YWtldm9zOiBmaXgKICAgZ2V0X3BpZF9mcm9tX2lub2RlIHdoZW4gdGhlIGlub2RlIGlzIG5vdCBmb3VuZC4KCjIwMTAtMDktMDMgMjA6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgZHVwbGljYXRlIHJldHVybiBiZWZvcmUgdGhlIGVycm9yIGNvZGVzIGdldCBzZXQuCgoyMDEwLTA5LTAxIDE4OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogTG9nIGJlZm9yZSByZXR1cm5pbmcuCgoyMDEwLTA5LTAxIDAyOjQzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIFRMUyBzZW5kX25vdGlmeSBvbiBjbG9zdXJlIGFuZCBzb21lIG1lbW9yeSBjbGVhbi11cCBwYXRjaGVzCgoyMDEwLTA4LTMxIDE3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPbmx5IHByaW50IHRoZSBzZWN1cml0eS9jb250ZXh0IEVuZ2luZUlEIG1pc21hdGNoIG5vdGUgdW5kZXIgVVNNCgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSByZWZlcmVuY2UgdG8gcmV2ZXJ0ZWQgcGF0Y2ggMzA0Mjc2NQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbm90ZSBvbiB3aGVyZSB0byBmaW5kIGNvbnRlbnQgdXNlZCB0byBnZW5lcmF0ZQogICBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHJldmVydCByMTkzNDIsIHBhdGNoIDMwNDI3NjUsIHdoaWNoIGJyb2tlIGNsaWVudCB0Y3AgZGlzY29ubmVjdAogICBoYW5kbGluZwoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggbW9yZSBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBjaGVjayBmb3IgY29uZiBlcnJvcnMgYWZ0ZXIgYWdlbnQgc3RhcnR1cDsgZW5hYmxlIGxvZ1RpbWVzdGFtcDsKICAgbWFrZSBzdXJlCiAgIGFsbCBjZXJ0IG5hbWUvdGFncyBhcmUgdW5pcXVlCgoyMDEwLTA4LTI0IDIxOjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvciBzdHJpbmcgdG8gZGlzY3VzcyB0aGUgcmlnaHQgZmFpbGVkIG9wZW5zc2wgbmV3CiAgIGludm9jYXRpb24KCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUzIC0+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+IFY1LjUucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTEwIDIxOjIxICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0wNyAxMDozMiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIENvcnJlY3QsIGNvbnNvbGlkYXRlLCBjbGFyaWZ5IGFuZCBjbGVhbnVwIHRoZSBjYXRhbG9nIG9mIGN1cnJlbnQKICAgY2hhbmdlcy4KCjIwMDktMDgtMDYgMDc6NTcgIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBvbiBleGVjIHZzIGV4dGVuZC4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgV2hlbiBkZWxldGluZyByb3cgY29udGV4dCwgZGVsZXRlIGFsc28gYXNzb2NpYXRlZCBkYXRhLgoKMjAwOS0wOC0wNSAxNToxNSAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBUaGUgY29udGFpbmVyIHVzZWQgdG8gdHJhY2sgZW50cmllcyB0byBkZWxldGUgZnJvbSBjYWNoZSBzaG91bGQKICAgYmUgcmVsZWFzZWQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMjE6MTYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIHNubXBsaWI6IGZyb20gIkJhcnQgdmFuIEFzc2NoZSAmIE1hZ251cyBGcm9tcmVpZGUiOiBNb3JlIHVwZGF0ZXMKICAgdG8gc3RydG91bGwuYwoKMjAwOS0wOC0wNCAxMDo1NyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTmnotrZXJ0IjogZml4IHBvc3NpYmxlIGNyYXNoIHdoZW4KICAgNjQtYml0IGNvdW50ZXJzIGluIGlwU3lzdGVtU3RhdHNUYWJsZSBnZXQgYmlnZ2VyIHRoYW4gMl4zMgoKMjAwOS0wOC0wMyAxOToyNyAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyODI3NzIyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBJbXByb3ZlCiAgIHN0cnRvdWxsIHRvIGJlIGxlc3MgTVNWQy1zcGVjaWZpYwoKMjAwOS0wOC0wMyAxODozOCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlIGZyb20gdGhlIHNldCBvZiBmaWxlcyB0aGF0IHNob3VsZAogICBiZSBpbnN0YWxsZWQKCjIwMDktMDctMjcgMTI6NDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNy0yNyAxMjoxMSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjM6CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UKCjIwMDktMDctMjcgMTI6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBmcmVlYnNkOiBwYXRjaCBmcm9tIENlemFyeSBNb3JnYSB0byBmaXggYSBtYWtlIHRlc3Qgb24KICAgZnJlZWJzZAoKMjAwOS0wNy0yNyAxMjowMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNy0yNyAxMTo1MiAgaGFyZGFrZXIKCiAgICogIEZBUSwgTkVXUywgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA3LTI3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcmV2ZXJ0IGFjY2lkZW50aWFsbHkgYXBwbGllZCBwYXRjaAoKMjAwOS0wNy0yNyAwODozNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHVkcC9kdGxzCgoyMDA5LTA3LTI3IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByZXF1aXJlIGEgc2Vzc2lvbiB0byBjYXJyeSBhIHNlY05hbWUKCjIwMDktMDctMjYgMjE6MzQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyBmb3IgV29ya3NwYWNlIGJ1aWxkLgoKMjAwOS0wNy0yNiAxODoyMCAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC1BZGRlZCBzdHJ0b3VsbCBmdW5jdGlvbiBhbmQgY29uZmlndXJlIGNoZWNrIGZvciBzeXN0ZW1zIHdpdGhvdXQKICAgaXQgc3VjaCBhcyBXaW4zMiBNU1ZDIDYKICAgLVdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyAtIHJlcXVpcmVzIG5ldyBzdHJ0b3VsbC5jIGZpbGUKICAgLVdpbjMyOiBOZXcgYnVpbGQtYmluYXJ5IHNjcmlwdCB0byBzaW1wbGlmeSBidWlsZGluZyB0aGUgV2luZG93cwogICBiaW5hcnkgcGFja2FnZS4KCjIwMDktMDctMjUgMDU6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgTWFrZSBzdXJlIGEgbWVzc2FnZSBpcyB3cml0dGVuIGlmIHRoZSByZWxldmFudCB0YWJsZSBpcyBtaXNzaW5nLgoKMjAwOS0wNy0yMyAyMToyOSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCBhZGRyZXNzIGluIFJFQURNRS4KCjIwMDktMDctMjMgMDE6MDcgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDgrIGZpeGVzLgoKMjAwOS0wNy0yMyAwMDo1NSAgYWxleF9iCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDUrIGJ1aWxkIGZpeGVzLiBUaGFua3MgdG8gQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNy0yMSAxMjoyMiAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLnJvdy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBBZGQgc2ltcGxlIGRlYnVnIG91dHB1dCB0byBtaWIyYyB0ZW1wbGF0ZXMuCgoyMDA5LTA3LTIxIDEyOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggbWlzc2luZyBzZW1pY29sb24gdHlwb3MuCgoyMDA5LTA3LTIxIDA5OjE1ICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgc3VnZ2VzdGVkIGVudHJpZXMuCgoyMDA5LTA3LTIwIDE5OjI0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPRElORyBzZWN0aW9uLgoKMjAwOS0wNy0yMCAxMTowOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaDoKCiAgIEFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIGZyb20gcGF0Y2ggIzIwNTMyNzMuCgoyMDA5LTA3LTE5IDE1OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPTVBJTElORyBzZWN0aW9uLgoKMjAwOS0wNy0xNiAxMjozOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQWRkIElQdjYgb2N0ZXQgY291bnRlcnMuCiAgIE5ldyBMaW51eCBrZXJuZWxzIChlLmcuIDIuNi4zMS1yYzIsIG1heWJlIHNvbWUgZWFybGllcikgcHJvdmlkZQogICBjb3VudGVycyBmb3IKICAgaW5jb21pbmcvb3V0Z29pbmcgSVB2NiB0cmFmZmljIGZvciBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwSWZTdGF0c1RhYmxlLgoKMjAwOS0wNy0xNSAyMjo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcHV0IHRlbXBvcmFyeSBkYXRhIHRvIHdoZXJlIHRoZXkgYmVsb25nCgoyMDA5LTA3LTExIDIxOjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlZ2VuZXJhdGUgY29uZmlndXJlCgoyMDA5LTA3LTExIDIxOjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgYnVpbGQgZml4IChlLmcuIGZvciBGcmVlQlNEKTogYWRqdXN0IGt2bSBjb25maWd1cmUgdGVzdHMKCjIwMDktMDctMTAgMTI6MzUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGVjayBJUHY2IHBvcnQgcmFuZ2VzIGluIHRoZSBzYW1lIHdheSBhcyBJUHY0IHBvcnRzIGFyZSBjaGVja2VkLgoKMjAwOS0wNy0xMCAwNzo0NiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjOgoKICAgRml4IGFub3RoZXIgSVB2NCBhZGRyZXNzIHNpemUgLSBsb25nIGhhcyA4IGJ5dGVzIG9uIDY0Yml0IExpbnV4LgogICBBbHNvIGZpeCB0aGUgZGVmYXVsdCB0eXBlIGZvXkNBU05fSVBBRERSRVNTIGluIG1pYjJjLCBzbyB0aGUKICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYyBjYW4gYmUgc2FmZWx5IHJlZ2VuZXJhdGVkLgoKMjAwOS0wNy0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBjbGVhbnVwIG9mIHRlc3RpbmcgY2FzZXMgdG8gcmVtb3ZlIGRvdWJsZSBpbmNsdWRlIGFuZCBkb3VibGUKICAgZXhwb3J0cwoKMjAwOS0wNy0wOSAyMzowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHA6CgogICBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFRDUC9JUHY0IHRlc3QKCjIwMDktMDctMDkgMjI6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGRlZmluZWQgdHJhbnNwb3J0cwoKMjAwOS0wNy0wOSAyMjoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYSBDT05GSUdBUFAgbWFjcm8gZm9yIGFkZGluZyBzdHVmZiB0byBzbm1wLmNvbmYKCjIwMDktMDctMDggMTU6MTIgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBnZXRob3N0YnlhZGRyIHBhcmFtZXRlciwgbmV0c25tcF91ZHBfZm10YWRkciBuZXZlciByZXR1cm5lZCBhCiAgIGhvc3RuYW1lLgoKMjAwOS0wNy0wNyAxNTo0NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRml4IElQIGFkZHJlc3MgbGVuZ3RoIG9uIDY0IGJpdCBzeXN0ZW1zIGluIG1pYklJLCBwYXNzIGFuZAogICBwYXNzX3BlcnNpc3QgbW9kdWxlcy4KCjIwMDktMDctMDcgMTU6MjQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgVXNlIGNvcnJlY3RseSBzaXplZCBJUCBhZGRyZXNzZXMgaW4gYWRkcmVzcyB0cmFuc2xhdGlvbiB0YWJsZQogICBwcm9jZXNzaW5nIC0gdV9sb25nIGNhbiBtYWtlIHByb2JsZW1zIG9uIGJpbiBlbmRpYW4gNjQgYml0CiAgIHN5c3RlbXMKCjIwMDktMDYtMjkgMTM6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICByZW1vdmUgZW50cnkgZm9yIGEgcGF0Y2ggdGhhdCBnb3QgcmV2ZXJ0ZWQKCjIwMDktMDYtMjUgMTU6MjQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBNb3ZlIG5vbi1jb3JlIGRhdGEgdHlwZXMgaW50byBhIHNlcGFyYXRlIChsaWJyYXJ5IGludGVybmFscykKICAgaGVhZGVyIGZpbGUuCiAgIE1vdmUgdGhlIGxhcmdlX2ZkX3NldCBkYXRhIHN0cnVjdHVyZSBpbnRvIHRoaXMgaGVhZGVyIGZpbGUuCgoyMDA5LTA2LTE4IDIyOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFsbG93IGJ1aWxkaW5nIHdpdGggUGVybCB2ZXJzaW9ucyB0aGF0IGxhY2sKICAgUEVSTF9FWElUX0RFU1RSVUNUX0VORAoKMjAwOS0wNi0xOCAyMjoxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDSEFOR0VTOiBidWlsZDogYnVpbGQgZml4IGZvciBUcnU2NCBVbml4IGFuZCBJUklYOiBtb3ZlIF9YT1BFTioKICAgZGVmaW5pdGlvbnMgdG8gd2hlcmUgdGhleSBhcmUgaW4gNS40LnggYW5kIGVhcmxpZXIKCjIwMDktMDYtMTggMDY6MDIgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENsZWFuIHVwIC0td2l0aC1ubCBjb25maWd1cmF0aW9uCiAgICogIE1vdmUgdGhlIF9BUkdfV0lUSCB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSAgMjAwOS0wNi0xNiAxNToxNwogICAgICAgcnN0b3J5CgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBiZWZvcmUgZGVyZWYKCjIwMDktMDYtMTUgMjM6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBleHBsYWluaW5nIG5vdCBxdWl0ZSBvYnZpb3VzIGxhY2sgb2YgbWVtbW92ZQoKMjAwOS0wNi0xNSAxOTozMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgUmVtb3ZlICNpZiAwIGNvbW1lbnRlZCBjb2RlCgoyMDA5LTA2LTE1IDE1OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFHRU5UIHNlY3Rpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnByZTIgLT4gVjUuNS5wcmUzCgoyMDA5LTA2LTEzIDAxOjEyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjU2NDU1MjogZnJvbSBhaG1ha2U6IHByb3ZpZGUgbGlibmV0bGluawogICBzdXBwb3J0IGZvciBsb2FkaW5nIHRoZSB0Y3AgdGFibGUKCjIwMDktMDYtMTIgMTk6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDAwMTAxOiByZW1vdmUgZGVsZXRlZCBpbnRlcmZhY2VzIGZyb20KICAgaWZUYWJsZQoKMjAwOS0wNi0xMSAyMzowOSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQ0hBTkdFUzogd2luMzI6IFBBVENIOiAyNjkzNzQ2OiBmcm9tIGJ2YXNzY2hlOiBpbXByb3ZlZCBzb2NrZXQKICAgc3RhcnR1cCBzdXBwb3J0CgoyMDA5LTA2LTExIDIyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTI0MDI6IGRvbid0IGZhaWwgb24gZmFpbHVyZSB0byBsb29rIHVwCiAgIGludGVyZmFjZSBlcnJvciBjb3VudGVycy4KCjIwMDktMDYtMTEgMjI6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHJldmVydCBwcmV2aW91cyBjb21taXQgdG8gbWFrZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYmFjayB0bwogICB0aGVpciByZWd1bGFyIGluc2FuZSBvcmRlcmluZzsgSSBkb24ndCBsaWtlIHRoaXMgc2l0dWF0aW9uIGF0IGFsbAoKMjAwOS0wNi0xMSAyMTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBsYXJnZV9mZF9zZXQuaCBiZWZvcmUgdHlwZWRlZmluZyBzb21ldGhpbmcgYmFzZWQgb24gdGhlCiAgIHN0cnVjdHVyZQoKMjAwOS0wNi0wMyAxMjozNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSEVTOiAyNzkzODU3OiBSZXBvcnQgZmFpbGVkIGFzeW5jaHJvbm91cwogICByZXF1ZXN0cy4KCjIwMDktMDYtMDMgMTE6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIFJlbW92ZSBwYXRjaCAjMjE4MjU5MiAtIHJldmVydCB0byBTVk4gcmV2aXNpb24gMTc2NDYKICAgVGhlIGNsZWFudXAgcm91dGluZXMgZG9uJ3QgYXBwZWFyIHRvIGV4aXN0LgoKMjAwOS0wNi0wMyAxMDoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTgyNTkyOiBDbGVhbiB1cCB2YWNtQ29udGV4dFRhYmxlIGFmdGVyCiAgIHVucmVnaXN0cmF0aW9ucwogICBQYXRjaCBzdXBwbGllZCBieSBKb2huIEZvcnN5dGgKCjIwMDktMDYtMDMgMTA6MTIgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyNzk3MjUxOiBTdXBwb3J0IG11bHRpcGxlIGluaXRpYWxpc2F0aW9uIGFuZAogICBzaHV0ZG93biwgZml4IG1lbW9yeSBsZWFrcwogICBQYXRjaCBzdXBwbGllZCBieSBJdm9zaAoKMjAwOS0wNi0wMSAxNTo1MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFORUdTOiBkb2NzOiBQQVRDSEVTOiAyNzg4MDcyOiBEb2N1bWVudCAnbG9nbWF0Y2gnCiAgIGZ1bmN0aW9uYWxpdHkuCgoyMDA5LTA2LTAxIDE1OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMjc4MDQxMTogRml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA5LTA2LTAxIDE1OjM3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BycHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYywgY29uZmlndXJlLCAgIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9tb25pdG9yLCBtNC9saWJ0b29sLm00LCAgIAogICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgQ0hBTkdFUzogZG9jczogUEFUQ0g6IDI3OTU3Mzk6IEZpeCBpbmNvcnJlY3QgZGlzay9maWxlIHNpemUKICAgZGVzY3JpcHRpb25zICYgdW5pdCBzcGVjaWZpZXJzCgoyMDA5LTA2LTAxIDEzOjExICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgUmV3b3JrIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIG1hdGNoIGN1cnJlbnQgc25tcGQuY29uZig1KQogICBzdHJ1Y3R1cmUsCiAgIGFuZCBtb3JlIGNsZWFybHkgaWxsdXN0cmF0ZSBjdXJyZW50IGJlc3QgcHJhY3Rpc2UuCgoyMDA5LTA1LTMwIDA2OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgUmVtb3ZlIHVudXNlZCBpbmNsdWRlLgoKMjAwOS0wNS0yOSAwOToxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oOgoKICAgQXV0b21hdGljYWxseSBsb2FkIHRoZSBleGFtcGxlIHBhc3N0ZXN0IE1JQgoKMjAwOS0wNS0yOSAwOTowOCAgZHRzMTIKCiAgICogIGxvY2FsL3Bhc3N0ZXN0LCBsb2NhbC9wYXNzdGVzdC5wbCwgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlcyB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzLAogICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBNSUIgc3RydWN0dXJlIGZvciBvdXRwdXQuCiAgIEFkZCBhbiBleGFtcGxlIE1JQiB0byBkZWZpbmUgdGhhdCBzdHJ1Y3R1cmUuCgoyMDA5LTA1LTI4IDEyOjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIE1JQnMgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMTo1NiAgZHRzMTIKCiAgICogRkFROgoKICAgVHdlYWsgcGhyYXNpbmcgb2YgYW4gKG92ZXJsb25nKSBxdWVzdGlvbiBpbiB0aGUgUGVybCBzZWN0aW9uCgoyMDA5LTA1LTI4IDExOjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgZW50cnkgaW4gdGhlIEFwcGxpY2F0aW9ucyBzZWN0aW9uCgoyMDA5LTA1LTI4IDEwOjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFwcGxpY2F0aW9ucyBzZWN0aW9uCgoyMDA5LTA1LTI3IDE1OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEdFTkVSQUwgc2VjdGlvbi4KCjIwMDktMDUtMTkgMTc6NTAgIGFsZXhfYgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBVcGRhdGUgUGVybCBUcmFwUmVjZWl2ZXIgZXhhbXBsZSB0byBwcm9wZXJseSBvdXRwdXQgdGhlCiAgIHNlY3VyaXR5RW5naW5lSUQgYW5kIGNvbnRleHRFbmdpbmVJRC4KCjIwMDktMDUtMTggMTA6MDMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEF2b2lkIGRpdmlzaW9uIGJ5IHplcm8uCgoyMDA5LTA1LTE1IDE5OjIyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDI3ODI3MDA6IGJ1aWxkIGZhaWx1cmUgd2hlbiB1c2luZwogICAtLXdpdGgtcGtjcyBvbgogICBTb2xhcmlzCgoyMDA5LTA1LTE1IDE0OjU5ICBqc2FmcmFuZWsKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgRml4IGNvbXBpbGF0aW9uIG9mIHJwbSBwYWNrYWdlcyBvbiBGZWRvcmEgPj0gMTAgLSBpdCBoYXMgbmV3ZXIKICAgUlBNIGFuZCB0aGUgb2xkIEFQSSBuZWVkcyB0byBiZSBleHBsaWNpdGx5IGVuYWJsZWQgYnkgYSBtYWNyby4KCjIwMDktMDUtMTQgMTM6MzkgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgVGhlIHNubXBjbWQgbWFuIHBhZ2UgaXMgbm90IHNwZWNpZmljIGhvdyByYW5nZSBvZiBsb2cgcHJpb3JpdGllcwogICBzaG91bGQgYmUgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZSwKICAgaS5lLiBib3RoIC1MTyA0LTAgYW5kIC1MTyAwLTQgYXJlIHZhbGlkLiBBbGwgc25tcCBjb21tYW5kcyAoaW5jbC4KICAgc25tcGQpIHNob3VsZCByZWNvZ25pemUgdGhhdC4KCjIwMDktMDUtMTQgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFsbG93ICJtb25pdG9yIiB0byBoYW5kbGUgbmVnYXRpdmUgdGhyZXNob2xkCiAgIHZhbHVlcy4KICAgUmVwb3J0ZWQgYnkgUmljaGFyZCBHaXBwcy4KCjIwMDktMDUtMTMgMjI6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI3OTE0MTc6IGZpeCBzbm1wZCBzZWdmYXVsdCB3aGVuIHJ1biB3aXRoCiAgIC1EQUxMCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFJvbiBSb3NrZW5zLgoKMjAwOS0wNS0xMyAwODowMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBCcmluZyBkb2N1bWVudGF0aW9uIG9mIG5vdGlmaWNhdGlvbkV2ZW50IHN5bnRheCBpbnRvIGxpbmUgd2l0aAogICByZWFsaXR5LgogICAoVXNlcyAiLW0iIHJhdGhlciB0aGFuICItbiIgdG8gcmVnaXN0ZXIgc3RhbmRhcmQgTUlCIHBheWxvYWQKICAgb2JqZWN0cykKICAgSW5jb25zaXN0ZW5jeSByZXBvcnRlZCBieSBSaWNoYXJkIEdpcHBzLgoKMjAwOS0wNS0xMCAyMToxMiAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBBZGRlZCBhdXRvbWF0aWMgbWFuaWZlc3QgbWVyZ2luZyB3aXRoIG10LmV4ZSBmb3IgTVNWQyAyMDA4CiAgIGV0Yy4KCjIwMDktMDUtMDggMTM6MTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENoYW5nZXM6IFdpbjMyOiBBZGQgc3VwcG9ydCBmb3IgV2luZG93cyA3LCBWaXN0YSBhbmQgMjAwOCBmb3IKICAgd2luRXh0RExMLgoKMjAwOS0wNS0wOCAwMjowNyAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgRExMLgoKMjAwOS0wNS0wNyAyMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYzoKCiAgIGJ1aWxkIGZpeCBmb3IgSFAtVVg6IGluY2x1ZGUgPHN5cy9wYXJhbS5oPiBmb3IgREVWX0JTSVpFCgoyMDA5LTA1LTA3IDA1OjExICBuYmEKCiAgICogYWdlbnQvc25tcF9wZXJsLmg6CgogICBVcHMsIG1pc3NlZCBhIG5ldyBwcm90b3R5cGUgaGVhZGVyCgoyMDA5LTA1LTA2IDIyOjI2ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBBIG1hbiBsaW5lIGNhbm5vdCBzdGFydCB3aXRoIGEgJwoKMjAwOS0wNS0wNiAyMjowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIElQdjYgYWRyZXNzZXMgYXJlIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgdGhlbiAzMmJpdHMKCjIwMDktMDUtMDYgMjI6MDYgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudAoKMjAwOS0wNS0wNiAyMjowMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBUcml2aWFsIHdhcm5pbmcgZml4ZXMKCjIwMDktMDUtMDYgMjI6MDAgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIEhtbW0sIElBTkEgZml4ZWQgdGhlaXIgYnVnIHRvbwoKMjAwOS0wNS0wNiAyMTo1OSAgbmJhCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCB0byBjdXJyZW50CgoyMDA5LTA1LTA2IDIxOjU5ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfdmFycy5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIFRyaXZpYWwgd2FybmluZyBmaXhlcwoKMjAwOS0wNS0wNiAyMTo0OSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgY29udGV4dEVuZ2luZUlEIGlzIGEgaGV4c3RyaW5nLCBub3QgYW4gb2JqZWN0IGlkZW50aWZpZXIKCjIwMDktMDUtMDYgMjE6NDUgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9pbnQ2NC5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggZm9ybWF0IHdhcm5pbmdzIGZyb20gZGVidWcgb3V0cHV0CgoyMDA5LTA1LTA2IDIwOjQ1ICBuYmEKCiAgICogbWlicy9zbWlzdHJpcDoKCiAgIFByb3Blcmx5IHJlY29nbml6ZSBtZXNzYWdlIHN5bnRheCBtb2R1bGVzICh0byBiZSBhYmxlIHRvIGlnbm9yZQogICB0aGVtKQoKMjAwOS0wNS0wNiAyMDozNiAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyB1cGRhdGVzCgoyMDA5LTA1LTA2IDIwOjM1ICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBTeW50YXggZml4IGZvciBjdXJyZW50IElBTkEtUFJJTlRFUi1NSUIKCjIwMDktMDUtMDYgMjA6MzQgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgoKMjAwOS0wNS0wNCAxMzo0NyAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgRExMLgoKMjAwOS0wNS0wMSAxNTo0MyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBORVdTOiBzbm1wbGliOiBTdG9wIHVzaW5nIGEgZml4ZWQgc3RyaW5nIGZvciBpbmRlbnRhdGlvbi4gUmVtb3ZlCiAgIHRoZSBERUJVR0lOREVOVCgpIG1hY3JvICh0aGF0IGRpZCBub3RoaW5nKS4gQ2hhbmdlIHRoZSBtZWFuaW5nIG9mCiAgIHRoZSBpbnRlcm5hbCBfX0RCR0lOREVOVCgpIG1hY3JvIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHNwYWNlcwogICB0byBpbmRlbnQgaW5zdGVhZCBvZiBhIHN0cmluZyB0aGF0IHJlcHJlc2VudCB0aGUgaW5kZW50YXRpb24KICAgbGV2ZWwuIERlcHJlY2F0ZSB0aGUgZGVidWdfaW5kZW50IGZ1bmN0aW9uLgoKMjAwOS0wNC0zMCAwNjo1NyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBVc2Ugc3RhdGljIHdhdGNoZXJfaW5mbyBmb3IgYWxsIHdhdGNoZWQgdmFyaWFibGVzCiAgIGFuZCBpbiBpbnRfd2F0Y2guCgoyMDA5LTA0LTMwIDA2OjQxICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBpbml0aWFsaXphdGlvbiBmcm9tIGFsbG9jYXRpb24gZm9yCiAgIG5ldHNubXBfd2F0Y2hlcl9pbmZvIHN0cnVjdHVyZXMgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UKICAgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGF0YS4KCjIwMDktMDQtMzAgMDY6MzQgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIEFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZS4KCjIwMDktMDQtMzAgMDA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIERUTFMgc3VwcG9ydDsgc2VtaSBkb2N1bWVudCB0aGUgU1NIIHN1cHBvcnQgYW5kCiAgIGRvY3VtZW50IHRoZSAtcyBzd2l0Y2ggdG8gbWFueSBWQUNNIHNldHRpbmdzCgoyMDA5LTA0LTI5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm90ZWN0IGFnYWluc3QgY29ubmVjdGlvbiBvcGVuaW5nIGVycm9ycyBhbmQgZnJlZSBtZW1vcnkgb24KICAgZmFpbHVyZXMKCjIwMDktMDQtMjkgMTI6MTkgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IFVwZGF0ZSBkZWZpbmVzIGZvciBfV0lOMzJfV0lOTlQgYW5kIE5URERJX1ZFUlNJT04gdG8KICAgc3VwcG9ydCBXaW5kb3dzIDIwMDAgYW5kIGhpZ2hlciBhbmQgYWRkIElQVjYgZGVmaW5lIHRvIGFsbG93IElQVjYKICAgY29kZSB0byBjb21waWxlLgoKMjAwOS0wNC0yOCAwNjozNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBzbm1wZCwgTGludXg6IFJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA5LTA0LTI4IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgc25tcGQ6IEFkZCBtaXNzaW5nIGFyZ3VtZW50IHRvIHByaW50Zi1saWtlIGNhbGwuCgoyMDA5LTA0LTI4IDA1OjUzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBzbm1wZDogTWFyayBtb3JlIG9pZHMgYXMgY29uc3QuCgoyMDA5LTA0LTI4IDA1OjUxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMKICAgbG9jYXRlZC4KCjIwMDktMDQtMjggMDE6MTIgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBNU1ZDOiBPbmx5IHVzZSBXaW5kb3dzIEFQSSBmdW5jdGlvbnMgYXZhaWxhYmxlIG9uIFdpblhQIG9yCiAgIGJlZm9yZSAoSVBWNikgb3IgMjAwMCBvciBiZWZvcmUgKG5vIElQVjYpLgoKMjAwOS0wNC0yNiAyMzozMCAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IFJlbW92ZSBtYWNoaW5lIHR5cGUgb2YgSTM4NiBmcm9tIExJTkszMl9GTEFHUyB0byBhbGxvdwogICBjb21waWxpbmcgd2l0aCBNU1ZDIDIwMDggYXMgZWl0aGVyIDMyIG9yIDY0LWJpdC4KCjIwMDktMDQtMjYgMTc6MzggIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIE1TVkMgMjAwOC4gQ29weSBhbmQgY2xlYW51cAogICBtYW5pZmVzdCBmaWxlcy4KCjIwMDktMDQtMjYgMTU6MjEgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IFJlLWVuYWJsZSBwYXNzIGFuZCBwYXNzX3BlcnNpc3QgQ291bnRlcjY0IGZvciBNU1ZDLgoKMjAwOS0wNC0yNiAxNDozNCAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIE1TVkMgMjAwOC4gSUZUWVBFIGlzIGRlZmluZWQgYnkKICAgTVNWQyAyMDA4LCBzbyBpbnRlcmZhY2VzLmMgdmFyaWFibGVzIHdlcmUgY2hhbmdlZCB0byBORVRTTk1QXy4KCjIwMDktMDQtMjYgMTM6MDYgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiBVcGRhdGUgYnVpbGQgaW5zdHJ1Y3Rpb25zIGluIGNvbW1lbnRzLgoKMjAwOS0wNC0yNCAxMzoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCB0aGUgQVNOX09QQVFVRSBwYXRjaCB0aGF0IHdhcyBjb21taXRlZCB3aXRob3V0IHByb3BlciBkaWZmCiAgIGNvbnRleHQKCjIwMDktMDQtMjQgMDc6MzEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBDSEFOR0VTOiBIUC1VWDogQlVHOiAyNzc5NDcyOiBGaWxlc3lzdGVtcyBtaXNzaW5nIGluIGhyU3RvcmFnZQogICB0YWJsZSBvbiBIUC1VWCAxMS4zMQogICAoYWxsb3cgZm9yIG1udHRhYiB0aGF0IGlzIGEgY2hhcmFjdGVyIHNwZWNpYWwgZGV2aWNlKQoKMjAwOS0wNC0yNCAwMTozNiAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IEJVRzogMjc3OTU0MSBGaXhlZCBoYW5kbGUgbGVhayBpbiBwYXNzX3BlcnNpc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnByZTEgLT4gVjUuNS5wcmUyCgoyMDA5LTA0LTIzIDIyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wNC0yMyAyMjoyNSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNC0yMyAyMjoyMyAgaGFyZGFrZXIKCiAgICogIG1hbi9jb25maWdfYXBpLjMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIGluaXRpYWwgZG94eWdlbiBleHRyYWN0cyBmb3IgdGhlIG5ldyBoZWFkZXJzCgoyMDA5LTA0LTIzIDIyOjE5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDQtMjMgMjI6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBpbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBmYWlsaW5nIHRvIG9wZW4gbW50dGFiCgoyMDA5LTA0LTIzIDIyOjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ0hBTkdFUzogSFAtVVg6IEJVRzogMjc3OTQ3MjogRmlsZXN5c3RlbXMgbWlzc2luZyBpbiBoclN0b3JhZ2UKICAgdGFibGUgb24KICAgSFAtVVggMTEuMzEKCjIwMDktMDQtMjMgMjE6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDI3NTE1ODg6IEluY29uc2lzdGVudCBkYXRhIChlLmcuIFVEUC9UQ1AKICAgTUlCCiAgIHNjYWxhciB2YWx1ZXMgb2YgemVybykgY2FuIGJlIHJlcG9ydGVkIG9uIFNvbGFyaXMgMTBVNCsKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kZXJzIFBlcnNzb24KCjIwMDktMDQtMjMgMTc6MzAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTAxNzY0OiBmcm9tIGtyaXN6dG9mb3JvIGZvciBzdXBwb3J0aW5nCiAgIGxvZ3dhdGNoIGZpbGVzIHRoYXQgYXJlIGRhdGUgYmFzZWQKCjIwMDktMDQtMjMgMTc6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIE5FV1M6IHBlcmw6IFBBVENIIDE5NTYxOTM6IGZyb20gY2Fjb3lsZTogYmV0YSB0aHJlYWRhYmxlIHBlcmwKICAgbW9kdWxlIGNvZGUgZm9yIFNOTVB2MS9TTk1QdjJjIHVzYWdlLgoKMjAwOS0wNC0yMyAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogc29sYXJpczogUEFUQ0g6IDIwMTI0MDQ6IGRlYWwgd2l0aCBtb3JlIHRoYW4gMTAKICAgaW50ZXJmYWNlcy4gTmV3IGhhcmRjb2RlZCBsaW1pdCBpcyA1MC4gQSBiZXR0ZXIgc2NhbGluZyBwYXRjaAogICB3b3VsZCBiZSBhcHByZWNpYXRlZCA6LSkKCjIwMDktMDQtMjMgMTY6NDcgIGhhcmRha2VyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGRvY3VtZW50IHRoYXQgdGhlIGV0aGVybGlrZS1taWIgaGFzIGFuIGltcGxlbWVudGF0aW9uCgoyMDA5LTA0LTIzIDE2OjQwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9lbnVtcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIwNTMyNzM6IGZyb20gbmFyZW5kcmFfa19kZWxsIHRvIGltbHBlbWVudAogICB0aGUgZXRoZXJsaWtlIG1pYiAoYXQgbGVhc3Qgb24gbGludXgpCgoyMDA5LTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMjEzNjQzNzogbWFrZSBGTEFHIGRlZmluZXMgbW9yZSA2NGJpdAogICBmcmllbmRseSB3aGVuIGh1Z2UgdGFibGVzIGFyZSBlbmNvdW50ZXJlZAoKMjAwOS0wNC0yMyAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmM6CgogICBDSEFOR0VTOiBocHV4OiBQQVRDSDogMjA4ODcyNjogZnJvbSByYXZpbmRyYTExMDMgdG8gZml4IGFuIGlzc3VlCiAgIHdpdGggaHB1eCByZXBvcnRpbmcgbWVtb3J5IGluIG5lZ2F0aXZlIHZhbHVlcy4KCjIwMDktMDQtMjMgMTY6MjEgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwNzQ4MTc6IGZyb20gZmVubmVyIHRvIGZpeCByZWdleHAgZW5naW5lCiAgIENQVSBwZXJmb3JtYW5jZSBpc3N1ZXMKCjIwMDktMDQtMjMgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTYyNjUyOiBwYXRjaCB0byBmaXggc2ltcGxlIGhyZnMgY2hlY2tzCiAgIHdoZW4gTkZTIGlzIGluIHVzZS4KCjIwMDktMDQtMjMgMTY6MTEgIGhhcmRha2VyCgogICAqICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL0Zvcm1hdC5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgcGVybC9tYW5hZ2VyL21hbmFnZXIucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjE4MjA3OTogYXBwbHkgcGF0Y2ggZnJvbSBpbnQzMiB0byBmaXggYQogICBudW1iZXIgb2YgcGVybCB3YXJuaW5ncyBhbmQgZml4IHRoZSBtb2R1bGVzIHNvIHRoYXQgdXNlIHN0cmljdCBpcwogICBwb3NzaWJsZQoKMjAwOS0wNC0yMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgCiAgICAgICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyMTg0MDM5OiBtaXNjIGZpeGVzIGZvciBmcmVlaW5nIG1lbW9yeQogICBkdXJpbmcgZXJyb3IgY29uZGl0aW9ucy4KCjIwMDktMDQtMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIzNjE3MTI6IGZyb20ga2JyaW50IHRvIGZpeCBnZXRidWxrCiAgIG9wdGltaXphdGlvbiBkdXJpbmcgd2Fsa3Mgd2hlcmUgZW5kIGNvbmRpdGlvbm5zIGFyZSBtZXQgb24gbWlkZGxlCiAgIE9JRHMgZmlyc3QuCgoyMDA5LTA0LTIzIDE1OjM1ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgUkVBRE1FIFRoYW5rcyB1cGRhdGUKCjIwMDktMDQtMjMgMTU6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIGZyb20gVHVzaGFyIEdvaGFkIHRvIGNsZWFuIHVwIG5vdGlmaWNhdGlvbgogICByZWdpc3RlcmF0aW9ucyBkdXJpbmcgZGlzbWFuIGV2ZW50IG1pYiBjbGVhbnVwIHByb2Nlc3NpbmcuCgoyMDA5LTA0LTIzIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBTQ1RQIGNvbnRhaW5lcnMuCgoyMDA5LTA0LTIzIDA4OjI5ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXRzbm1wX2xhcmdlX2ZkX3NldCBpcyBwcm9iYWJseSBiZXN0IHJlZ2FyZGVkIGFzIGFuICJvcGFxdWUiCiAgIGRhdGEKICAgc3RydWN0dXJlLCBhbmQgaXNuJ3QgcmVhbGx5IGludGVuZGVkIGZvciBkaXJlY3QgbWFuaXB1bGF0aW9uLgogICBNb3ZlIGl0IGJhY2sgaW50byB0aGUgPGxpYnJhcnkvbGFyZ2VfZmRfc2V0Lmg+IGhlYWRlciBmaWxlLgogICAoTGlrZSBpdCB3YXMgYmVmb3JlIERhdmUgc3R1Y2sgaGlzIG9hciBpbi4uLi4pCgoyMDA5LTA0LTIzIDA4OjE5ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZ1ZXJ0aGVyIGltcHJvdmVtZW50cyB0byB0aGUgbGFyZ2UgRkQgc2V0IHN1cHBvcnQKICAgKFNlZSBwYXRjaCAjMjc3Mjc4NykKCjIwMDktMDQtMjMgMDY6NDUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaDoKCiAgIGJ1aWxkaW5nOiBVc2UgY29uZmlnX2Vycm9yKC4uLikgaW5zdGVhZCBvZgogICBjb25maWdfcmVxdWlyZShub24tZXhpc3RpbmcpIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCgoyMDA5LTA0LTIzIDA2OjQxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmg6CgogICBzbm1wbGliLCBMaW51eDogTW92ZSBnZXRfcGlkX2Zyb21faW5vZGUgdG8gaXQncyBvd24gZmlsZSBhbmQgb25seQogICBjb21waWxlIGl0IGlmIG5lZWRlZCwgYWxzbyByZW5hbWUgaXQgdG8KICAgbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGUuCgoyMDA5LTA0LTIzIDA0OjMzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L3NubXBkLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzEzNTMgZnJvbSBobnJvc2UgdG8gbWFrZSBzb21lIEMrKwogICBjb21waWxlcnMgaGFwcGllcgoKMjAwOS0wNC0yMyAwMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjUwNTQ4ODogZnJvbSBkYWJva2V5IHRvIGZpeCBhbGFybXMgbm90CiAgIGJlaW5nIHRyaWdnZXJlZCBhdCB0aGUgcmlnaHQgdGltZXMgZHVlIHRvIGxhcmdlIGNsb2NrIHNrZXdzLgoKMjAwOS0wNC0yMyAwMDowMSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIE5FV1M6IHNubXBuZXRzdGF0OiBQQVRDSDogMjU2NDUzODogZnJvbSBhaG1ha2UgdG8gc3VwcG9ydCBHRVRCVUxLCiAgIGluIHYyYysgc25tcCB2ZXJzaW9ucwoKMjAwOS0wNC0yMiAyMzo0OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogcG9ydHM6IFBBVENIOiAyNjg4MzQyOiBmcm9tIGFobWFrZSB0byBmaXggdmFyaW91cwogICBjb21waWxlciB3YXJuaW5nCgoyMDA5LTA0LTIyIDIzOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI3NjM3MTogZnJvbSBmaGV3IHRvIGFsbG93IHBlcmwgdG8gdXNlCiAgIE9QQVFVRXMKCjIwMDktMDQtMjIgMjM6MTcgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNzc1ODAwOiBmcm9tIEFkYW0gUm9tYW5layB0byBhbGxvdwogICBweXRob24gdGhyZWFkaW5nIHRvIGNvbnRpbnVlIHdoZW4gYSByZXF1ZXN0IGlzIHNlbnQKCjIwMDktMDQtMjIgMjI6MTEgIGFsZXhfYgoKICAgKiBSRUFETUUsIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZSBUSEFOS1Mgc2VjdGlvbi4KCjIwMDktMDQtMjIgMjE6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZvbGQgdGhlIGZ1bmN0aW9uIGV4dHJhY3RfaW5vZGUuIHdpdGggb25seSBvbmUgdXNlciwgaW50byBpdCdzCiAgIHVzZXIuCiAgIFJlbW92ZSB0aGUgI2RlZmluZSBGSUxFX0RJU1AsIHdpdGggb25seSBvbmUgdXNlciwgd2l0aCB0aGUgYWN0dWFsCiAgIHZhbHVlLgoKMjAwOS0wNC0yMiAyMTowMyAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBTTVVYIGVuYWJsZWQuCgoyMDA5LTA0LTIyIDEzOjQzICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBBZGQgYSBub3RlIGhvdyB0aGUgbmV3IFJNT04tTUlCIGltcGxlbWVudGFpb24gd29ya3MKCjIwMDktMDQtMjIgMTM6NDEgIGR0czEyCgogICAqIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIEZpbGwgb3V0IHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBWYXJiaW5kLXJlbGF0ZWQgQVBJIGNhbGxzLgoKMjAwOS0wNC0yMiAxMzozNyAganNhZnJhbmVrCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLmgsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZW51bXMuaCwgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIxMDM0OTI6IGltcGxlbWVudAogICBSTU9OLU1JQjo6ZXRoZXJTdGF0c0phYmJlcnMKICAgUGF0Y2ggZnJvbSBOYXJlbmRyYSBLLiwgU2FuZGVlcCBLLiBTaGFuZGlseWEgYW5kIFNoeWFtIEl5ZXIKCjIwMDktMDQtMjIgMTA6MDggIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ29ycmVjdCBhIHNlcmlvdXNseSBtaXNsZWFkaW5nIChpLmUuIHdyb25nKSBkZXNjcmlwdGlvbiBvZiB0aGUKICAgcHVycG9zZQogICBhbmQgYmVoYXZpb3VyIG9mIHRoZSBwcmludF9kZXNjcmlwdGlvbiBmYW1pbHkgb2YgY2FsbHMuCgoyMDA5LTA0LTIyIDA5OjMyICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZ1cnRoZXIgcG9saXNoaW5nIG9mIHRoZSBkZXNjcmlwdGlvbnMgb2YgTUlCLXJlbGF0ZWQgQVBJIGNhbGxzLgoKMjAwOS0wNC0yMiAwNzozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJhbmdlIGNoZWNrcy4KICAgKFRoZXNlIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgbGFyZ2VfZmRfc2V0IHJvdXRpbmVzIHRoZW1zZWx2ZXMpLgoKMjAwOS0wNC0yMSAyMzoyNyAgYWxleF9iCgogICAqICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICB3aW4zMjogRml4IFdpbmRvd3MgYnVpbGQgZW52aXJvbm1lbnQgdG8gc3VwcG9ydCBwYXRjaCAyNzcyNzg3LgoKMjAwOS0wNC0yMSAxNTozMyAgZHRzMTIKCiAgICogIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZpc2VkIHZlcnNpb24gb2YgcGF0Y2ggIzI3NzI3ODcKCjIwMDktMDQtMjEgMTU6MTUgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAKICAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBVbmRvIHJldmlzaW9uIDE3NTE1CiAgIChicm9rZW4vaW5jb21wbGV0ZSBwYXRjaCkKCjIwMDktMDQtMjEgMTQ6MzcgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAKICAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjc3Mjc4NzogQ2xlYW5lciBhcHByb2FjaCB0byBoYW5kbGluZwogICBsYXJnZSBmZF9zZXRzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA0LTIxIDE0OjM0ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBQcm9wZXJseSBnZW5lcmF0ZSBuZXcgY29yZSBBUEkgbWFuIHBhZ2VzLgoKMjAwOS0wNC0yMSAwOTozOCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmg6CgogICBGaXJzdC1jdXQgYXQgaWRlbnRpZnlpbmcgdGhlIGNvcmUgTmV0LVNOTVAgQVBJIGNhbGxzLgogICBNb3ZlIHRoZXNlIGludG8gdGhlIGFwcHJvcHJpYXRlIHRvcC1sZXZlbCBoZWFkZXIgZmlsZXMuCgoyMDA5LTA0LTIxIDA5OjM2ICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCAgIAogICAgICBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFJlbmFtZSBjb25maWcvc2Vzc2lvbiBBUEkgbWFuIHBhZ2VzLCBpbiBsaW5lIHdpdGggb3RoZXIgY29yZSBBUEkKICAgc3RydWN0dXJlLgoKMjAwOS0wNC0yMSAwOTozMiAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vcmVhZF9jb25maWcuMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgRG9jdW1lbnQgKG9yIHJlc3RydWN0dXJlKSB0aGUgY29yZSBBUEkgZWxlbWVudHMuCiAgIEFsaWduIHRoaXMgb3JnYW5pc2F0aW9uIHdpdGggdGhlIGZpcnN0LWN1dCByZXN0cnVjdHVyaW5nCiAgIG9mIHRoZSBtYWluIGhlYWRlciBmaWxlcy4KCjIwMDktMDQtMjAgMTA6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFNraXAgZmlsZSBoYW5kbGVzIHRoYXQgYXJlIHRvbyBsYXJnZSBmb3IgZmRfc2V0IHRvIGNvcGUgd2l0aC4KICAgQSBzaW1wbGUgZml4IGZvciB0aGUgaW1tZWRpYXRlIHByb2JsZW0gYWRkcmVzc2VkIGJ5IHBhdGNoCiAgICMxNjI3MDQ5LgoKMjAwOS0wNC0yMCAxMDoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydCBwYXRjaCAjMTYyNzA0OSAoZXh0ZW5zaW9uIHRvIGRlYWwgd2l0aCBsYXJnZSBmaWxlCiAgIGhhbmRsZXJzKS4KICAgU2VlIHRoZSBkaXNjdXNzaW9uIG9uIHRoYXQgdHJhY2tlciBlbnRyeSBmb3IgYmFja2dyb3VuZCBhcyB0bwogICB3aHkuCgoyMDA5LTA0LTIwIDAwOjU5ICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIAogICAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICB3aW4zMjogQnVpbGQgZml4ZXMgZm9yIFdpbmRvd3MuIHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBzdGlsbCBuZWVkCiAgIHRvIGJlIGZpeGVkIHRvIHN1cHBvcnQgQ291bnRlcjY0IG9uIFdpbmRvd3MuCgoyMDA5LTA0LTIwIDAwOjQ4ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHdpbjMyOiBTeW5jIG5ldC1zbm1wLWNvbmZpZy5oLmluIGFuZCBuZXQtc25tcC1jb25maWcuaAoKMjAwOS0wNC0xNyAyMToyMSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQsIAogICAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00OgoKICAgQ0hBTkdFUzogYnVpbGQ6IFVwZ3JhZGUgbGlidG9vbCB2ZXJzaW9uIHRvIDIuMi42IGluIG9yZGVyIHRvIHdvcmsKICAgYXJvdW5kIGEgYnVnbGV0IHRoYXQgbWFkZSBhdXRvcmVjb25mIC12aWYgZXJhc2UgY29uZmlnLnN1YiBhbmQKICAgY29uZmlnLmd1ZXNzLgoKMjAwOS0wNC0xNCAyMTo1OSAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTc2NzcyOiBDaGFuZ2VkIHRoZSBtaWIgcGFyc2VyIHRvIGhhbmRsZQogICBsb25nIGJpbmFyeSBhbmQgaGV4IHN0cmluZ3MuCgoyMDA5LTA0LTExIDEyOjUyICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBzdWdnZXN0IHRydW5jYXRpb24gb2YgQ2hhbmdlTG9nLnJlYWxseWFkZAoKMjAwOS0wNC0xMCAyMzoxOCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIIDI2OTE4NzY6IEFwcGxpZWQgcGF0Y2ggYnkgcmRpZXogdG8gYWxsb3cKICAgY29tcGlsaW5nIHRoZSBzZXJ2aWNlcyB1c2luZyB1bmljb2RlLgoKMjAwOS0wNC0xMCAyMjo1NSAgYWxleF9iCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBXaW4zMjogUEFUQ0ggMjY4ODMwOTogQXBwbGllZCBwYXRjaCBieSBCYXJ0IFZhbiBBc3NjaGUgdG8gcmVtb3ZlCiAgIE1TVkMgMjAwNS8yMDA4IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwOS0wNC0xMCAyMTo0NSAgYWxleF9iCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgICAKICAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgV2luMzI6IE1pbm9yIGJ1aWxkIGFuZCByZWFkbWUgdXBkYXRlcy4KCjIwMDktMDQtMTAgMjE6MzggIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIE5FV1M6IFdpbjMyOiBQQVRDSCAyNjg2MjQ4OiBBcHBsaWVkIHBhdGNoIGJ5IEJhcnQgVmFuIEFzc2NoZQogICB3aGljaCBmaXhlcyBzZXZlcmFsIHdpbkV4dERMTCBidWdzLgoKMjAwOS0wNC0xMCAyMDoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVzdG9yZSBhbm5veWluZyBsb2cgbWVzc2FnZSwgYnV0IGZpeCBjYXVzZSBvZiBpdCBvbiAhZnJlZWJzZAogICBzeXN0ZW1zCgoyMDA5LTA0LTA5IDEyOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NTA3MzA6IFJlcG9ydCBlcnJvcnMgZnJvbSBpdGVyYXRvci1iYXNlZAogICBoYW5kbGVycy4KICAgQmFzZWQgb24gYSBwYXRjaCBwcm92aWRlZCBieSBXYXluZSBHbGFudHoKCjIwMDktMDQtMDkgMTE6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxMjQyODg6IEZpeCBzZXR0aW5nIG9mCiAgIHVzbVVzZXJQcml2UHJvdG9jb2wgYXQgY3JlYXRpb24uCiAgIExvZ2ljIGJ1ZywgcmVwb3J0ZWQgYnkgUmFtZXNoIEtvdGFiYWdpCgoyMDA5LTA0LTA5IDA5OjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMjU4MjI5OiBSZW1vdmUgbWlzbGVhZGluZyBjb21tZW50CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERhbiBBbmRlcnNvbgoKMjAwOS0wNC0wOSAwOTowOCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIyNjA4Mjg6IEZpeCBweXRob24gc25tcHdhbGsgbWVtb3J5IGxlYWsKICAgUGF0Y2ggcHJvdmlkZWQgYnkgR2FicmllbGUgTWVzc2luZW8KCjIwMDktMDQtMDkgMDg6NTggIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMjcyMzQ3OiBJbXBsZW1lbnQgImltcGxpZWQiIGluIE1JQiBoYXNoCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgoyMDA5LTA0LTA5IDA4OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAyMzE2MTI3OiBGaXggYnVnIGluIGl0ZXJhdGVfYWNjZXNzCiAgIGdlbmVyYXRlZCBjb2RlLgoKMjAwOS0wNC0wOSAwODo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzU2ODE6IEVuYWJsZSBpZi1taWIgcmV3cml0ZSAod2l0aAogICBzeXNjdGwgYmFja2VuZCkgb24gTmV0QlNECgoyMDA5LTA0LTA5IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDM1NzkzOiBTdXBwb3J0IDY0LWJpdCBJRi1NSUIgY291bnRlcnMgb24KICAgc3lzY3RsICgqQlNEKSBzeXN0ZW1zLgogICBQYXRjaCBwcm92aWRlZCBieSBKYW4gQW5kcmVzCgoyMDA5LTA0LTA5IDA4OjAwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMDQtMDggMjM6MTcgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG1vdmUgY29tbWVudHMgdG8gYSBwbGFjZSB3aGVyZSB0aGV5IGFyZSBsZWdhbAoKMjAwOS0wNC0wOCAyMzowMyAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSByZW5hbWUgbmV3IGdldFJlcXVlc3RvcklwIHRvIGdldFNvdXJjZUlQIGFuZCBnZXRUYXJnZXRJcCB0bwogICBnZXREZXN0SXAKICAgLSByZW1pbmQgdGhhdCB0aGlzIGlzIGZ1bGx5IHRyYW5zcG9ydC1zcGVjaWZpYywgaS5lLiBVRFAvSVB2NAogICBvbmx5IQoKMjAwOS0wNC0wOCAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMzg0Nzc5OiBGaXggaGFuZGxpbmcgb2YgR2V0QnVsayB3aXRoCiAgIE4+MCxNPT0wCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZ3VzIFNhbGtlbGQKCjIwMDktMDQtMDggMTU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQwNjM3ODogRml4IGhyU1dSdW5QZXJmTWVtIG9uIDY0LWJpdAogICBTb2xhcmlzIHN5c3RlbXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTlR3b08KCjIwMDktMDQtMDggMTU6NDggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjQ3OTcwMDogRml4IHpvbmVkIElQIGFkZHJlc3MgdXNlZCBhcwogICB0YWJsZSBpbmRpY2VzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJyaWFuIFJldGZvcmQuCgoyMDA5LTA0LTA4IDE1OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI0OTIzNzc6IEZpeCB0eXBvL2J1ZyBpbgogICBzbm1wX2VuYWJsZV9jYWxsYmFjaygpCiAgIFJlcG9ydGVkIGJ5IGpveWNlYW5tYWNoaW5lCgoyMDA5LTA0LTA4IDE1OjI5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNTA3MjQ5OiBzY3RwLW1pYiBzdXBwb3J0IGZvciBGcmVlQlNELgoKMjAwOS0wNC0wOCAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MzgxNjk6IFByZXZlbnQgaW5maW5pdGUgcmV0cmllcyBmb3IgYW4KICAgaW52YWxpZCBlcnJvci1pbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRG91ZyBNYW5sZXkKCjIwMDktMDQtMDggMTQ6NTggIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNTgwOTc5OiBGaXggcHl0aG9uIHNlc3Npb24gcG9pbnRlcnMgb24KICAgNjQtYml0IHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEpvaG4gS2h2YXRvdi4KCjIwMDktMDQtMDggMTQ6NDkgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI2Njc0MTU6IFN1cHBvcnQgIlVzZU51bWVyaWMiIG9wdGlvbi4KICAgUmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgaW4gInNubXB3YWxrIiBjb21tYW5kLgogICBQYXRjaCBwcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAwOS0wNC0wOCAxNDozNCAgZHRzMTIKCiAgICogIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMjcyNjMwMjogUGFzcyByZXN1bHRzIG9mIFBlcmwgdHJhcAogICBoYW5kbGVycyB0byB0cmFwIGRhZW1vbgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIFNjaG1pdHoKCjIwMDktMDQtMDggMTQ6MzAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI3MTM4NDE6IEZpeCBydW50aW1lIGVycm9ycyB0cmlnZ2VyZWQgYnkKICAgaGlnaC1BU0NJSSBjaGFycwogICBQYXRjaCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKCjIwMDktMDQtMDggMTQ6MjQgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjcwOTcwNTogUmV0cmlldmUgc3JjL3RhcmdldCBJUCBhZGRyZXNzIGluCiAgIFBlcmwtYmFzZWQgYWdlbnRzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IGZoZXcKCjIwMDktMDQtMDggMTQ6MTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNjg5MzYyOiBGaXggaGFuZGxpbmcgb2YgSVB2NiBob3N0bmFtZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5lc3RvciBNZWxvLgoKMjAwOS0wNC0wOCAxNDowNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjY4ODM0NTogRml4IG5ldHNubXBfYXNzZXJ0KCkgZm9yIFZpc3VhbAogICBTdHVkaW8KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCgoyMDA5LTA0LTA4IDEzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNjg2MjgwOiBSZXBvcnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgYXMKICAgYW4gZXJyb3IgKHJhdGhlciB0aGFuIGEgZmFpbGVkIGFzc2VydGlvbikuCiAgIEZpeCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKICAgCiAgIFFuOiBEb2VzIHRoaXMgZXZlbiBxdWFsaWZ5IGFzIGFuIGVycm9yPyBXb3VsZG4ndCBhIHdhcm5pbmcgYmUKICAgc3VmZmljaWVudD8KCjIwMDktMDQtMDYgMTk6MzMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBzbm1wbGliOiBNYWtlIHRoZSBub2RlIHN0cnVjdCBwcml2YXRlLiBIaWRlIHRoZSBvcmhhbl9ub2RlcwogICB2YXJpYWJsZS4KCjIwMDktMDQtMDYgMTg6NDUgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgc25tcGQscGVybDogSWYgbXlfcGVybCBpcyBOVUxMIHdoZW4gcGFzc2VkIHRvIHBlcmxfZGVzdHJ1Y3QgdGhlbgogICB0aGF0IGZ1bmN0aW9uIGNyYXNoZXMgZm9yIHNvbWUgcGVybCB2ZXJzaW9ucyBzbyBjaGVjayB0aGF0IGl0IGlzCiAgIG5vbi1udWxsIGJlZm9yZSBkZXN0cm95aW5nIGl0LgoKMjAwOS0wNC0wNiAxODo0MiAgbWFnZnIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIHBlcmw6IEF2b2lkIHN1cnByaXNlcyBpZiB0aGUgcGVybCBzdHJpbmcgY29udGFpbnMgcHJpbnRmIGVzY2FwZQogICBjaGFyYWN0ZXJzLgoKMjAwOS0wNC0wNiAxODoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUHJvcGVyIGNoZWNrIGZvciBlbXB0eSBwcm9jZXNzIHN0YXR1cyBmaWxlLgogICAoQXZvaWRzIHRydW5jYXRlZCB3YWxrIG9mIGhyU1dSdW5QYXRoIG9uIFN1U0Ugc3lzdGVtcykKICAgUmVwb3J0ZWQgYnkgS2FtaWwgS2lzaWVsLgoKMjAwOS0wNC0wNiAxMTo1OCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzLCBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBDSEFOR0VTOiBwZXJsOiBCVUcgMTU1NDgxNzogZnJvbSB4YW5jbzogcmV2aXNlZCBmaXggZm9yIHRoZSBjbGFzcwogICBhc3NpZ21lbnQgc28KICAgZ2V0Um9vdE9JRCB3b3JrcyBwcm9wZXJseS4gTm93IHBhc3NlcyAibWFrZSB0ZXN0IiBhbmQgIm1ha2UKICAgcGVybHRlc3QiLgoKMjAwOS0wNC0wNSAxMDowNSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOS0wNC0wNSAwOTo1MyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgTWFrZSBldmVuIG1vcmUgdmFyaWFibGVzIGFuZCB0ZW1wbGF0ZXMgY29uc3QuCgoyMDA5LTA0LTA0IDIyOjEzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmg6CgogICBzbm1wZDogTWFrZSBtb3JlIGxvY2FsIHZhcmlhYmxlcyBjb25zdCBhbmQgbG9jYWwuCgoyMDA5LTA0LTA0IDEwOjA3ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLCBuZXQtc25tcC1jb25maWcuaW46CgogICBNYXJrIHRoZSByZWNvbmZpZyB2YXJpYWJsZSBhcyBzdGF0aWMgc2luY2UgaXQgaXMgcHJpdmF0ZSB0byB0aGUKICAgbW9kdWxlLgoKMjAwOS0wNC0wNCAxMDowMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBNYXJrIHRoZSBmaWxlIHNjb3BlIHByaXZhdGUgdmFyaWFibGUgbWluaW11bV9zd2FwIGFzIHN0YXRpYy4KCjIwMDktMDQtMDQgMDk6NTggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBzbm1wbGliOiBNYWtlIG1vcmUgc3ltYm9scyBjb25zdCBpbiBvcmRlciB0byBtb3ZlIHRoZW0gdG8KICAgcmVhZG9ubHkgbWVtb3J5LgoKMjAwOS0wNC0wMiAyMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogQlVHIDExMjY5NDogUGF0Y2ggZnJvbSBCaWxsIEZlbm5lcjogZG9uJ3Qgb3BlbiAoYW5kCiAgIGNsb2JiZXIpIGFuIGFnZW50eCBzb2NrZXQgaWYgdGhlIG90aGVyIHRyYW5zcG9ydHMgZmFpbCB0byBvcGVuCgoyMDA5LTA0LTAxIDIzOjQxICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjM6MTkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIzOjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDQtMDEgMjM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIGNvbnZlcnQgY29tbWVudHMgdG8gQU5TSSBjb21tZW50cwoKMjAwOS0wNC0wMSAyMjoyMSAgaGFyZGFrZXIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgICAKICAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIyOjAzICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L21ha2VyZWxlYXNlLnhtbCwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40IC0+IFY1LjUucHJlMQoKMjAwOS0wNC0wMSAyMTo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgdXBkYXRlcyBmb3IgU1NICgoyMDA5LTA0LTAxIDE5OjM5ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTWFrZSB0aGUgc3JjIHBvaW50ZXIgb2Ygc25tcF9jbG9uZV9tZW0gYSBwb2ludGVyIHRvIGNvbnN0YW50LgoKMjAwOS0wNC0wMSAxODoyMyAgaGFyZGFrZXIKCiAgICogYXBwczoKCiAgIGlnbm9yZSAnc3NodG9zbm1wJwoKMjAwOS0wNC0wMSAxNzozMSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgc25tcGxpYi9zbm1wU1NIRG9tYWluLmM6CgogICBNYWtlIHNzaCB0cmFuc3BvcnQgc3VwcG9ydCB1c2UgYSB1bml4IHNvY2tldCB3aXRoIHByb3BlcgogICBjcmVkZW50aWFsIHBhc3NpbmcKCjIwMDktMDQtMDEgMTc6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1ha2UgdGhlIGV4ZWMgY2FjaGUgcmVhZGFibGUgb25seSBieSB0aGUgdXNlcgoKMjAwOS0wNC0wMSAxNzoyOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vdmUgc3RyaW5nIHRvIHVpZC9naWQgZnVuY3Rpb25hbGl0eSB0byBzbm1wbGliIGZvciByZXVzZQoKMjAwOS0wMy0zMSAxNToxMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQmFsYW5jZSBwYXJlbnRoZXNlcyBpbiBjYWNoZS1iYXNlZCByZWdpc3RyYXRpb24gY29kZS4KCjIwMDktMDMtMzEgMTU6MDcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJ1dCB0aGV5J3JlIG5vdCBDIGNvbW1lbnRzIGF0IGFsbCwgRGF2ZS4KICAgVGhleSBhcmUgbWliMmMgdGVtcGxhdGUgY29tbWVudHMsCiAgIGFuZCBzaG91bGQgYmUgb21pdHRlZCBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZS4KICAgPHNpZ2g+CgoyMDA5LTAzLTMxIDE1OjAwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDIGNvbW1lbnRzIHVzZSAvKiAuLi4gKi8sIG5vdCAjCgoyMDA5LTAzLTMxIDA4OjA1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHdpdGggZ2xpYmMgPCAyLjQsIElDTVB2NiBtZXNzYWdlIHR5cGVzIHN0YXJ0aW5nCiAgIHdpdGggTUxEXyogaGF2ZSBkaWZmZXJlbnQgbmFtZSB0aGVyZS4KCjIwMDktMDMtMjQgMDY6MDQgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBEbyBub3QgY29tcGlsZSB0aGUgcGFydHMgdGhhdCBkZXBlbmQgb24gbGlic3NsIGlmIGxpYnNzbCBpcwogICBtaXNzaW5nLgoKMjAwOS0wMy0yMyAwOToyMSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgTkVXUzogc25tcGQ6IGlwTmV0VG9QaHlzaWNhbExhc3RVcGRhdGVkIE9JRCBpbXBsZW1lbnRlZAogICAKICAgVGhlIHZhbHVlIGlzIGVzdGltYXRlZCB3aXRoIGV2ZXJ5IGNhY2hlIHJlbG9hZCwgd2hpY2ggaXMgb25jZSBpbgogICA2MCBzZWNvbmRzIGJ5IGRlZmF1bHQuCiAgIFRoYXQgbWVhbnMgdGhlIHZhbHVlIHJlcG9ydGVkIGJ5IHNubXBkIG1heSBkaWZmZXIgZnJvbSByZWFsaXR5IGJ5CiAgIG9uZSBtaW51dGUuCiAgIElmIGFueWJvZHkgbmVlZHMgYmV0dGVyIHByZWNpc2lvbiwgdGhlIGNhY2hlIHRpbWVvdXQgY2FuIGJlCiAgIGNvbmZpZ3VyZWQgYnkgc2V0dGluZwogICBORVQtU05NUC1BR0VOVC1NSUI6Om5zQ2FjaGVUaW1lb3V0LjEuMy42LjEuMi4xLjQuMzUgdG8KICAgYXBwcm9wcmlhdGUgdmFsdWUgYnkgc25tcHNldC4KCjIwMDktMDMtMjAgMTk6MzggIGhhcmRha2VyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBmaXggbGFjayBvZiB3cmFwcGluZyBsaW5lcyBwcm9ibGVtCgoyMDA5LTAzLTIwIDE4OjMxICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgY29uZmlnIG9wdGlvbnMsIGV0YywgZm9yIFNTSCBhbmQgRFRMUwoKMjAwOS0wMy0yMCAxODoyNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIGN1cnJlbnRseSBtaW5pbWFsIGRvY3VtZW50YXRpb24gb24gZHRscyBhbmQgc3NoCgoyMDA5LTAzLTIwIDE2OjUwICBoYXJkYWtlcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zc2h0b3NubXAuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEFkZGVkIGFscGhhIHNubXAgb3ZlciBzc2ggc3VwcG9ydAoKMjAwOS0wMy0yMCAxNjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2hlY2sgdGhlIHNlYyBuYW1lIGxlbmd0aCwgbm90IGp1c3QgdGhlIGNvbnRlbnRzCgoyMDA5LTAzLTIwIDE2OjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHNlcXVlbmNlIHBhcnNpbmcgZml4CgoyMDA5LTAzLTIwIDE1OjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBuZXcgZmxhZyB0byBhbGxvdyBmb3Igc2lnbmFsbGluZyBvZiBsZWdhbCBlbXB0eSBwYWNrZXRzCiAgIGZyb20gYSB0cmFuc3BvcnQKCjIwMDktMDMtMTggMTk6NDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gY29tcGlsZSBhZ2Fpbi4KCjIwMDktMDMtMTggMTA6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIGNwdV9saW51eDogYXZvaWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIKICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTggMTA6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIGxpbnV4OiBpbmNyZWFzZSBzaXplIG9mIGluaXRpYWwgcHJvYyBpL28gYnVmZmVyCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ3MKCjIwMDktMDMtMTggMTA6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIG1lbW9yeV9saW51eDogYXZvaWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE4IDEwOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggdmFsZ3JpbmQgd2FybmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTcgMjI6NTcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBQQVRDSDogMjY4ODM0MjogZnJvbSAiQmFydCBWYW4gQXNzY2hlIjogVXNlIHByb3BlciBmdW5jdGlvbgogICBwb2ludGVycwoKMjAwOS0wMy0xMyAyMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBQcm9jZXNzIGhyTWVtb3J5U2l6ZSAoc2NhbGFyKSBzZXBhcmF0ZWx5IGZyb20gaHJTdG9yYWdlVGFibGUuCiAgIFRoaXMgc2ltcGxpZmllcyB0aGUgaGFuZGxlciBjb2RlIHN0cnVjdHVyZS4KCjIwMDktMDMtMTMgMjE6MjMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBSZWdpc3RlciBDUFUvbWVtb3J5IGhhcmR3YXJlIG1vZHVsZXMgd2l0aAogICBuc0NhY2hlVGFibGUuCiAgIEFsbG93cyBtb25pdG9yaW5nIGZyZXF1ZW5jeSB0byBiZSBjb25maWd1cmVkIGR5bmFtaWNhbGx5LgoKMjAwOS0wMy0xMyAyMToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBdm9pZCBkaXYwIGNyYXNoLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IE5pY2sgSGluZGxleQoKMjAwOS0wMy0xMyAyMToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgU2tpcCBuZXcgQ1BVcywgdGhhdCBoYXZlIGFwcGVhcmVkIHNpbmNlIHRoZSBhZ2VudCBmaXJzdCBzdGFydGVkLgogICAoQW4gYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gY3JlYXRlIGEgbmV3IGVudHJ5IGluc3RlYWQpLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IE5pY2sgSGluZGxleQoKMjAwOS0wMy0xMCAxNToyNSAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgTkVXUzogc25tcGQ6IGlwQWRkcmVzc1NwaW5Mb2NrIGltcGxlbWVudGVkCgoyMDA5LTAzLTAyIDExOjIzICBkdHMxMgoKICAgKiBDT1BZSU5HOgoKICAgRml4IGF0dHJpYnV0aW9uIG9mIGxhdGVzdCBjb3B5cmlnaHQgbm90aWNlLgoKMjAwOS0wMi0yOCAxODoyMSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIHRoZSAjZGVmaW5lIGNvbmZpZ18qKC4uLikgZnJvbSBhY2NvbmZpZy5oIHRvIHRoZSBjb25maWd1cmUKICAgc2NyaXB0IHNvIHRoYXQgdGhleSBhcmUgbmV4dCB0byB0aGUgY29kZSB0aGF0IGhhbmRsZSB0aGUKICAgY29ycmVzcG9uZGluZyBjb25maWdfKiB0b2tlbi4KCjIwMDktMDItMjcgMTM6MjAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEdldCByaWQgb2YgYW5ub3lpbmcgJ2Rpc2tpby5jOiBkb24ndCBrbm93IGhvdyB0byBoYW5kbGUgOQogICByZXF1ZXN0JyBpbiBsb2cuCiAgIEl0J3MgYmVpbmcgd3JpdHRlbiB0byBsb2cgZXZlcnl0aW1lIHNvbWVvbmUgcXVlcmllcwogICBVQ0QtU05NUC1ESVNLSU8gTUlCLgoKMjAwOS0wMi0yNSAwNjo0MSAgbWFnZnIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgVXNlIHRoZSBmZWF0dXJlIHRlc3QgbWFjcm9zIHRvIHNldCB3aGF0IGlzIG5lZWRlZC4KICAgRG8gbm90IHVzZSB0aGUgaW50ZXJuYWwgR05VIGxpYmMgbWFjcm9zIHRoYXQgYXJlIHNldCBieSBzZXR0aW5nCiAgIHRoZSBmZWF0dXJlIHRlc3QgbWFjcm9zLgoKMjAwOS0wMi0yNSAwNjozOCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZS4KCjIwMDktMDItMjQgMDc6MjYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBNYWtlIC1MTiBzdG9wIGR1bXBpbmcgY29yZS4gTWFrZSBiYWQgZGVidWcgbGV2ZWxzIHJlcG9ydAogICB0aGUgb2ZmZW5kaW5nIHN5bWJvbC4KCjIwMDktMDItMjQgMDY6NTAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNb3ZlIHRoZSBkaXJlY3RvcnkgY3JlYXRpb24gY29kZSB0byBoYXBwZW4gYWZ0ZXIgdGhlIGRvbWFpbgogICBzZWxlY3Rpb24gY29kZSBzbyB0aGF0IHRoZSBkaXJlY3RvcnkgY3JlYXRpb24gY29kZSBrbm93cyB3aGF0CiAgIGRpcmVjdG9yeSB0byBjcmVhdGUuCgoyMDA5LTAyLTI0IDA2OjQ3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ2hhbmdlIHRoZSBlcnJvciBjaGVja2luZyBvcHRpb24gLS1lbmFibGUtbXlzcWwgdG8gc3VnZ2VzdCB0aGF0CiAgIHRoYXQgLS13aXRoLW15c3FsIGlzIHVzZWQgcmF0aGVyIHRoYXQgLS13aXRoLW9wZW5zc2wuCgoyMDA5LTAyLTI0IDA2OjQ0ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlIGF1dG9jb25mIGFydGlmYWN0cy4KCjIwMDktMDItMjMgMTg6NDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9zcWwuYzoKCiAgIGFkZCBmb3Jnb3R0ZW4gZmlsZQoKMjAwOS0wMi0yMCAwNDo0MSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgYWRkZWQgZW1hY3MgYXV0b2NvbmYgbW9kZSBzcGVjaWZpZXIKCjIwMDktMDItMTkgMTg6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUuc3FsLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBuZXcgc3FsIHRyYXAgbG9nZ2luZwoKMjAwOS0wMi0xOSAxODoyMCAgcnN0b3J5CgogICAqICBDT1BZSU5HLCBORVdTLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBjb25maWd1cmUsICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgZGlzdC9zY2hlbWEtc25tcHRyYXBkLnNxbCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXB0cmFwZDogYWRkIHRyYXAgaGFuZGxlciBmb3IgbG9nZ2luZyB0cmFwcyB0byBhIG15c3FsCiAgIGRhdGFiYXNlCgoyMDA5LTAyLTE5IDE3OjU4ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGRlZCBpdGVyYXRvciBmb3Igc2luZ2x5IGxpbmtlZCBsaXN0czsgYWRkCiAgIGNvbnRhaW5lciBuYW1lIGluIG1vcmUgZXJyb3IgbXNncwoKMjAwOS0wMi0xOCAxODo1MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHVzbS5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBjaGFuZ2UgTUFYX0VOR0lORUlEX0xFTkdUSCB0byAzMiwgcGVyCiAgIFNOTVAtRlJBTUVXT1JLLU1JQiBTbm1wRW5naW5lSUQgVEMKCjIwMDktMDItMTggMTQ6NDEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgQ29uZmlndXJlIHNjcmlwdCBkb2VzIG5vdCBsaWtlIG5ldC1zbm1wLWNvbmZpZy5oIGJlaW5nIGluY2x1ZGVkCiAgIGZyb20gaGVhZGVyCiAgIGZpbGVzLCB3aGljaCBhcmUgYWRkZWQgYnkgLS13aXRoLW1pYi1tb2R1bGVzPSwgbGV0J3MgcmVtb3ZlIGl0CiAgIGZyb20gdGhlcmUuCgoyMDA5LTAyLTE2IDIxOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IFBhdGNoIGZyb20geGFuY286IGZpeCB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuCgoyMDA5LTAyLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgQ29ycmVjdCBjb3B5L3Bhc3RlIG1pc3Rha2UKCjIwMDktMDItMTIgMDA6MjUgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmM6CgogICBBbiBlYXJseSBleHBlcmltZW50YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIERUTFMgb3ZlciBVRFAKICAgdHJhbnNwb3J0IGZyb20gdGhlIElFVEYgSVNNUyB3b3JraW5nIGdyb3VwCgoyMDA5LTAyLTExIDIzOjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlZCByZWxlYXNlIGluc3RydWN0aW9ucwoKMjAwOS0wMi0wNiAyMTozNiAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhcyBDKysgYWdhaW4uCgoyMDA5LTAyLTA1IDIyOjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEFzc3VtZSB0aGF0IHRoZSB0YXJnZXQgcGxhdGZvcm0gc3VwcG9ydHMgbWVtY3B5LAogICBtZW1tb3ZlLCBtZW1zZXQsIHN0cmNociBhbmQgc3RycmNoci4KCjIwMDktMDItMDQgMDY6NTcgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25wcmludGYuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogUmVtb3ZlIHN1cHBvcnQgZm9yIHVzZSBvZiB2YXJhcmdzLmguIE5vdyBhc3N1bWVzIHRoYXQKICAgc3RkYXJnLmggaXMgYXZhaWxhYmxlLgoKMjAwOS0wMi0wNCAwNjo0OSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IEludHJvZHVjZSBwcmludGYtbGlrZSB2ZXJzaW9ucyBvZiBjb25maWdfcGVycm9yCiAgIGFuZCBjb25maWdfcHdhcm4gKG5ldHNubXBfY29uZmlnX2Vycm9yIGFuZCBuZXRzbm1wX2NvbmZpZ193YXJuKS4KICAgUmVwbGFjZSBtYW55IGluc3RhbmNlcyBvZiB7IHRtcGJ1ZlsuLi5dOyBzcHJpbnRmKHRtcGJ1ZiwgLi4uKTsKICAgY29uZmlnX3AqKHRtcGJ1Zik7IH0gd2l0aCBuZXRzbm1wX2NvbmZpZ18qKC4uLik7CgoyMDA5LTAyLTAzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBhZGQgdGhlIHJlZ2luZm8gYW5kIGFuZCBzZXNzaW9uIHBvaW50ZXIgdG8gdGhlIFJFR0lTVEVSX09JRAogICBjYWxsYmFjawoKMjAwOS0wMi0wMyAwMDoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGZpeGVkIC1sc3NsIGNoZWNrCgoyMDA5LTAxLTI5IDA4OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXR1cm4gYSBsZXNzIG1pc2xlYWRpbmcgZXJyb3Igd2hlbiBhZGRpbmcgYW4gdW5yZWNvZ25pc2VkIHZhbHVlLgoKMjAwOS0wMS0yOCAxMDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggc3JjL2RzdCBjb25mdXNpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgS3J6eXN6dG9mIE9s54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy25ZuYemtpCgoyMDA5LTAxLTI4IDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IEZpeCB0d28gYnVncyB3aXRoIHNtdXggcGFzc3dvcmQgc3VwcG9ydC4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgS3J6eXN6dG9mIE9s54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy25ZuYemtpCgoyMDA5LTAxLTIzIDE0OjUzICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIGxldmVsIHJhbmdlcyBpbiAnLUw8Y2FwaXRhbD4nLgoKMjAwOS0wMS0yMCAxNDo1MSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiA8cnBtL3JwbWZpbGV1dGlsLmg+IGJlZm9yZSBpbmNsdWRpbmcKICAgaXQuCgoyMDA5LTAxLTE5IDIwOjUwICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGhvdXQgSVB2NiBhZ2Fpbi4KCjIwMDktMDEtMTkgMTU6MDEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5Mjc3NTE6IGZyb20gTWl0c3VydSBDaGluZW46IGltcGxlbWVudAogICBpY21wTXNnU3RhdHNUYWJsZSBvbiBMaW51eAoKMjAwOS0wMS0xOSAwOTo0MSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgICAKICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyNDQ5MjEwOiBhZGQgNjQtYml0IGRpc2sgdXNhZ2Ugc3RhdGlzdGljcyB0bwogICBVQ0QtU05NUC1NSUI6OmRza1RhYmxlCgoyMDA5LTAxLTE4IDA3OjQwICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogQlVHOiAyMTY4MTgwOiBDaGFuZ2VkIC0tZGlzYWJsZS1yZWVudHJhbnQgdG8gbm90CiAgIGFjdGl2YXRlIHRoZSByZWVudHJhbnQgY29kZSBhbmQgbWFkZSAtLWVuYWJsZS1yZWVudHJhbnQgYWNjZXB0IG5vCiAgIHZhbHVlcyBvdGhlciB0aGFuIHllcyBhbmQgbm8uIERpZCB0aGUgc2FtZSBmb3IKICAgLS1lbmFibGUtbWliLWNvbmZpZy1jaGVja3MsIC0tZW5hYmxlLW1pYi1jb25maWctZGVidWcsCiAgIC0td2l0aC1kZWZhdWx0cywgLS1lbmFibGUtZGV2ZWxvcGVyIGFuZCAtLWVuYWJsZS10ZXN0aW5nLWNvZGUgYXMKICAgd2VsbC4KCjIwMDktMDEtMTMgMDk6MTcgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENoZWNrIGVuY29kaW5nIG9mIE9JRHMuCiAgIAogICBCRVIgZW5jb2RlZCBPSURzIHNob3VsZCBoYXZlIGhpZ2ggYml0IGNsZWFyIGluIHRoZSBsYXN0IGJ5dGUgb2YKICAgZWFjaCBzdWJpZGVudGlmaWVyLiBUaGlzIGlzIG5vdyBjaGVja2VkIGFuZCBwYXJzaW5nIG9mIE9JRCBmYWlscywKICAgaWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldC4KCjIwMDktMDEtMTEgMjE6NTQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgdGhhdCB0aGUgdGVtcC1maWxlLXBhdHRlcm4gZW5kcyBpbiA2IFgncwogICBhcyBta3N0ZW1wIGFuZCBta3RlbXAgcmVxdWlyZSB0aGF0LgoKMjAwOS0wMS0xMSAyMTozOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQmUgYSBsb3QgbW9yZSBzdHJpY3Qgb24gdGhlIHZhbHVlcyB0aGF0IGFyZQogICBhY2NlcHRhYmxlIGZvciAtLXdpdGgtcGVyc2lzdGVudC1tYXNrIChvbmx5IGFsbG93IHRocmVlIG9jdGFsCiAgIGRpZ2l0cykKCjIwMDktMDEtMTEgMjA6NDIgIG1hZ2ZyCgogICAqICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBtNC9uZXRzbm1wX2FyZy5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXZSBhcmUgY3VycmVudGx5IHVzaW5nIHRoZSBwcmFjdGljZSBvZiBhZGRpbmcKICAgYSBtaXJyb3JpbmcgQUNfQVJHX1dJVEgvRU5BQkxFIHRvIGVhY2ggQUNfQVJHX0VOQUJMRS9XSVRILiBUaGlzCiAgIHBhdGNoIGFkZHMgTkVUU05NUF9BUkdfV0lUSC9FTkFCTEUgbWFjcm9zIHRoYXQgYXV0b21hdGljYWxseSBhZGRzCiAgIHRoZSBtaXJyb3IgdmFyaWFibGUgYW5kIHRoZW4gY29udmVydHMgdGhlIGNvbmZpZ3VyZSBtYWNoaW5lcnkgdG8KICAgdXNlIHRoZW0uCgoyMDA5LTAxLTExIDIwOjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTW92ZSBBQ19ERUZJTkVTIGluIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlIHRvIGJlIGxvY2F0ZWQgbmV4dAogICB0byB0aGUgQUNfQVJHXy4uLiB0aGV5IGRlcGVuZCBvbi4KCjIwMDktMDEtMTEgMjA6MzQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDaGFuZ2UgdGhlIGRlZmF1bHQgdmVyc2lvbiBudW1iZXIgY2hlY2tpbmcgdG8gYmUgZWFzaWVyIHRvIHJlYWQKCjIwMDktMDEtMTEgMTk6MTkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTW92ZSB0aGUgbGFzdCBBQ19BUkdfLi4uJ3MgdG8gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUuCgoyMDA5LTAxLTExIDE5OjA4ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IENoYW5nZSB0aGUgbWFjcm8gZm9yIC0td2l0aC1mZWF0dXJlcy1vZiBmcm9tCiAgIEFDX0FSR19FTkFCTEUgdG8gQUNfQVJHX1dJVEggaW4gb3JkZXIgdG8gbWFrZSB0aGUgb3B0aW9uIGJlCiAgIC0td2l0aC1mZWF0dXJlcy1vZi4KCjIwMDktMDEtMDggMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIGFwcHM6IFBhcnNlciBvZiAtTFMgY29tbWFuZCBsaW5lIGFyZ3VtZW50IG5vdwogICBhY2NlcHRzIGJvdGggJy1MUyA8bGV2ZWw+IDxmYWNpbGl0eT4nIGFuZCAnLUxTCiAgIDxsZXZlbD48ZmFjaWxpdHk+Jy4KICAgCiAgIEJlZm9yZSBwYXRjaCAjMTgwNjMzNiB0aGUgZmlyc3Qgc3ludGF4IHdhcyB0aGUgb25seSBvbmUKICAgc3VwcG9ydGVkLiBUaGUgcGF0Y2gKICAgY2hhbmdlZCB0aGUgc3ludGF4IHRvIHRoZSBzZWNvbmQgb25lLCBjYXVzaW5nIGluY29tcGF0aWJpbGl0aWVzCiAgIGluIHN0YWJsZQogICBicmFuY2hlcy4gV2Ugbm93IHN1cHBvcnQgYm90aCBvZiB0aGVtLgoKMjAwOS0wMS0wOCAwMzo1MSAgbWFnZnIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgRG8gbm90IGRlcGVuZCBvbiB0aGUgZXhpc3RhbmNlIG9mIC9iaW4vc2guIEFsc28gZm9sbG93IHRoZSBhZHZpY2UKICAgb2YgdGhlIGF1dG9jb25mIG1hbnVhbCBhbmQgZmluYWxseSBhbGxvdyBmb3IgbGlidG9vbCB0aGF0IGFkb3B0cwogICB0aGUgZ2VuZXJhdGVkIHNjcmlwdCBhZnRlciB0aGUgY2FwYWJpbGl0aWVzIG9mIFNIRUxMLgoKMjAwOS0wMS0wNyAxNjowMiAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBSZW9yZGVyIHRoZSBuZXRpbmV0L2ljbXBfdmFyLmggYW5kIG5ldGluZXQvaXBfaWNtcC5oLCB0aGUgbGF0ZXIKICAgb25lIG11c3QgYmUgY2hlY2tlZCBmaXJzdCBvbiBGcmVlQlNEIDcKCjIwMDktMDEtMDYgMjI6MjMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB1cGRhdGUgU1BBUlRBIGZvciAyMDA5CgoyMDA5LTAxLTAzIDIwOjIzICBtYWdmcgoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgVXBncmFkZSB0aGUgQUNfUFJPTVBUX1VTRVIgbWFjcm9zIHRvIGF1dG9jb25mIDIuNjMgd2hlcmUKICAgQUNfRkRfTVNHIGlzIGRlcHJlY2F0ZWQgYW5kIEFTX01FU1NBR0VfRkQgaXMgcmVjb21tZW5kZWQuCgoyMDA5LTAxLTAzIDE0OjIwICBtYWdmcgoKICAgKiAgYWNpbmNsdWRlLm00LCBhY2xvY2FsLm00LCBjb25maWd1cmUsIG00L2FjX2FkZF9zZWFyY2hfcGF0aC5tNCwgICAKICAgICAgbTQvYWNfbXNnX2NhY2hlLm00LCBtNC9hY19tc2dfbW9kdWxlX2RiZy5tNCwgICAKICAgICAgbTQvYWNfcHJvbXB0X3VzZXIubTQsIG00L25ldHNubXBfc2VhcmNoX2xpYnMubTQ6CgogICBTcGxpdCBhY2luY2x1ZGUubTQgaW50byBzbWFsbGVyIHBhcnRzIGJ5IGZ1bmN0aW9uLgoKMjAwOS0wMS0wMyAxNDoxNSAgbWFnZnIKCiAgICogTWFrZWZpbGUuYW06CgogICBNYWtlIGF1dG9yZWNvbmYgd29yayBhZ2Fpbi4KCjIwMDktMDEtMDMgMTQ6MTEgIG1hZ2ZyCgogICAqICBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluc3RhbGwtc2gsIGx0bWFpbi5zaCwgbTQsIAogICAgICAgIG00L2xpYnRvb2wubTQsIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00LCAKICAgICAgICBtNC9sdH5vYnNvbGV0ZS5tNDoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sLTIuMi40CgoyMDA5LTAxLTAzIDEzOjI4ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6IENoZWNrIGZvciBhIGZ1bmN0aW9uLCBub3QgYSBtYWNyby4KICAgY29uZmlndXJlOiBSZWdlbmVyYXRlCgoyMDA5LTAxLTAzIDAxOjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIHJlcXVpcmUgLWxzc2w7IHdpbGwgYmUgY2hhbmdlZCBsYXRlciB0byBkbyAnaWYgbmVlZGVkJwoKMjAwOS0wMS0wMyAwMDoxOSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCBhZ2VudC9taWJncm91cC90YXJnZXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBVbmlmeSBhbGwgc25tcGQgc3RhdGlzdGljIHZhcmlhYmxlcyBhbmQgbWFrZSB0aGUKICAgaGFuZGxlcnMgaW5zdGFuY2VzIG9mIGEgY29tbW9uIGhhbmRsZXIuCgoyMDA5LTAxLTAxIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGNsZWFuIHVwIGEgZmV3IGNvbW1lbnRzIGFuZCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDA5LTAxLTAxIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIG1lbW9yeSBsZWFrIGlzc3VlcwoKMjAwOS0wMS0wMSAxNDoyOCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjLCAKICAgICAgICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgb2lkIGFyZ3VtZW50cyBmcm9tIG9pZCogdG8KICAgY29uc3Qgb2lkKi4gVXBkYXRlIG1pYjJjIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBjaGFuZ2UuCgoyMDA5LTAxLTAxIDEzOjU2ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDaGVjayByZXR1cm4gdmFsdWVzIGFuZCBmcmVlIGFsbG9jYXRlZCByZXNvdXJjZXMgb24gZXJyb3IuCgoyMDA5LTAxLTAxIDEyOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBEbyBub3QgbGVhayBhbGlhc19saXN0IG9uIHJldHVybiBmcm9tIF9uZXh0X2FsaWFzLgoKMjAwOS0wMS0wMSAxMToyNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgTWFrZSB2YXJpYWJsZSBjb25zdCBhcyBpdCBuZXZlciBpcyBjaGFuZ2VkLgoKMjAwOS0wMS0wMSAxMToyNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAwOC0xMi0zMSAyMTo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IHVzZSB0aGUgZnVuY3Rpb25zIGlmIHdlJ3JlIG5vdCBsaW5rZWQgd2l0aCBvcGVuc3NsCgoyMDA4LTEyLTMxIDIwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOgoKICAgbmV3ZXIgcGVybCBnZW5lcmF0ZWQgdXBkYXRlcwoKMjAwOC0xMi0zMSAxODowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBmZXcgbW9yZSByZWN2L3NlbmQgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDgtMTItMzEgMTg6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgcXVvdGVkIHNlY3VyaXR5IG5hbWVzIGZvciBvbmVzIGNvbnRhaW5pbmcgc3BhY2VzCgoyMDA4LTEyLTMxIDE4OjAxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYW4gb3BlbnNzbCBpbml0aWFsaXphdGlvbiB3cmFwcGVyCgoyMDA4LTEyLTMwIDAwOjAzICBtYWdmcgoKICAgKiBhcHBzL3NubXB0ZXN0LmMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBVc2Ugc25tcF9kdXBsaWNhdGVfb2JqaWQgaW5zdGVhZCBvZiB2YXJpb3VzIG1hbGxvYyttZW1jcHkKICAgdmFyaWFudHMgaW4gb3JkZXIgdG8gbWFrZSBjbGVhcmVyIGNvZGUuCgoyMDA4LTEyLTI5IDIzOjM0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2FzbjEuYzoKCiAgIFVzZSBmb3JtYXQgc3RyaW5ncyBmb3IgcHJpbnRmLWxpa2UgZnVuY3Rpb25zLgogICBQcmVmZXIgc3RyY3B5IG92ZXIgc3ByaW50ZihkZXN0LCAiJXMiLCBzcmMpCiAgIFByZWZlciBERUJVR01TR1RMKChmb3JtYXQsIGFyZ3MpKSBvdmVyIHNwcmludGYobG9jYWwsIGZvcm1hdCwKICAgYXJncyk7IERFQlVHTVNHVEwoKCIlcyIsIGxvY2FsKSkKCjIwMDgtMTItMTggMTc6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGV4cG9ydCBvdXQgb2YgdGhlIGZpbGUgc29tZSBoZWxwZnVsIGdlbmVyaWMgdWRwIGZ1bmN0aW9ucwoKMjAwOC0xMi0xNiAwMDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBjaGFuZ2UgbG9jYWxzbSBzZWN1cml0eSBtb2RlbCB0byB0c20gKGFuZCBhZGQgMSkKCjIwMDgtMTItMTUgMjM6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYzoKCiAgIFBhdGNoIHRvIGNoYW5nZSBhIHR5cGVkZWYgbmFtZSBmcm9tIGxpbmsgdG8gbm9kZWxpbmsgdG8gYXZvaWQKICAgbmFtaW5nIGNvbmZsaWN0IGlzc3Vlcy4KCjIwMDgtMTItMDkgMDE6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICB1c2UgaW50MzJfdCBpbnN0ZWFkIG9mIGludF8zMiB3aGljaCBkb2Vzbid0IHdvcmsgYXQgYWxsIG9uIEYxMAoKMjAwOC0xMi0wOSAwMTowNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlbW92ZSB0aGUgbm90ZSB0aGF0IHdlIG1vdmVkIHRvIHN2bi4uLiBvYnNvbGV0ZSBhdCB0aGlzIHBvaW50LAogICB0byBzYXkgdGhlIGxlYXN0CgoyMDA4LTEyLTA5IDAxOjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiB0aGUgVFNNIGltcGxlbWVudGF0aW9uCgoyMDA4LTEyLTA5IDAwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZsYWcgc29tZSBzdGVwcyBhbmQgbWFuZGF0b3J5CgoyMDA4LTEyLTA5IDAwOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgcmVtb3ZlIGFjY2lkZW50aWFsIG5ldyBkZWZpbmVzIHRoYXQgYXJlbid0IG5lZWRlZCB5ZXQKCjIwMDgtMTItMDkgMDA6NTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBsb2NhbHNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcGxvY2Fsc20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmM6CgogICByZW1vdmUgb2xkZXIgbG9jYWxzbSBzZWN1cml0eSBtb2RlbCBhbmQgcmVwbGFjZSB3aXRoIGEgbmV3ZXIgVFNNCiAgIGJhc2VkIG9uIHRoZSB1cGNvbWluZyBJRVRGIHNwZWMKCjIwMDgtMTItMDkgMDA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBpc3N1ZSB3aXRoIGNvbnRleHQgcHJvYmluZwoKMjAwOC0xMi0wNCAxMjozMyAganNhZnJhbmVrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEYWVtb25pemUgYWZ0ZXIgdHJhbnNwb3J0cyBhcmUgY3JlYXRlZCBhbmQgbGlzdGVuaW5nIHNvY2tldHMgYXJlCiAgIGJvdW5kIHRvIGFwcHJvcHJpYXRlIHBvcnRzLiBUaGlzIGFsbG93cyB0byBleGl0IHdpdGggbm96ZXJvIGV4aXQKICAgY29kZSB3aGVuIHRoZSBiaW5kaW5nIGZhaWxzLgoKMjAwOC0xMi0wNCAxMTo0NCAganNhZnJhbmVrCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFByaW50IHBvcnRzIGFzIHVuc2lnbmVkIG51bWJlcnMuCgoyMDA4LTExLTI0IDE5OjA5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIF9fRVhURU5TSU9OU19fIGlzIG5vdyBoYW5kbGVkIGJ5IGNvbmZpZ3VyZQoKMjAwOC0xMS0yMiAxODozNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIERvIG5vdCB0cnkgdG8gdXNlIHRoZSBtb2R1bGUgbGlzdCBhcyBhIGZpbGUgdGhhdCBzaG91bGQgYmUKICAgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLCB0aHVzIG1ha2luZyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbgogICBTb2xhcmlzLgoKMjAwOC0xMS0yMCAyMjozMCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgCiAgICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlcGxhY2UgbWVtZHVwKCh1X2NoYXIqKikmeCwgKHVfY2hhciopeSwgeiAqIHNpemVvZihvaWQpKSB3aXRoIHgKICAgPSBzbm1wX2R1cGxpY2F0CiAgIGVfb2JqaWQoeSwgeikgc2luY2UgdGhlIGxhdGVyIGlzIGVhc2llciB0byByZWFkIGFuZCBleHByZXNzZXMgdGhlCiAgIGludGVudGlvbiBvZiB0CiAgIGhlIGNvZGUgY2xlYXJlci4KCjIwMDgtMTEtMjAgMjI6MDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBtZW1tb3ZlIHRvIGNvcHkgb2lkcyBhcyBpdCBpcyBrbm93biB0aGF0CiAgIHRoZSBhcmVhcyBhcmUgbm9ub3ZlcmxhcHBpbmcuCgoyMDA4LTExLTIwIDIwOjUxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIE1ha2UgbG9nIHJlZmVyIHRvIHRoZSByaWdodCBmdW5jdGlvbi4KCjIwMDgtMTEtMjAgMjA6NDYgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBEbyBub3QgdXNlICVtIGluIHByaW50Zi1mb3JtYXR0ZWQgc3RyaW5ncyBzaW5jZSAlbSBpbgogICBwcmludGYgaXMgYSBnbGliYyBleHRlbnNpb24uCgoyMDA4LTExLTE2IDIyOjAxICBtYWdmcgoKICAgKiBjb25maWd1cmUuYWM6CgogICBCdW1wIHRoZSByZXF1aXJlZCBhdXRvY29uZiB2ZXJzaW9uIHRvIDIuNjMgYXMgcGVyIDE3MzAxLgoKMjAwOC0xMS0xNiAyMTo1NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgUmVtb3ZlIGFuIHVudXNlZCBmdW5jdGlvbiBmcm9tIHRoZSBjb25maWd1cmUgdGVzdCBmb3IgX19mdW5jX18uCgoyMDA4LTExLTE2IDIxOjUxICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTTQgdXNlcyBkbmwsIG5vdCBcIGZvciBsaW5lIGNvbmNhdGVuYXRpb24uCiAgIFwgaW50cm9kdWNlZCBhIHNwdXJpb3VzIGRlZmluZSBpbiBuZXQtc25tcC1jb25maWcuaC5pbiwgdGh1cyB0aGlzCiAgIGNoYW5nZS4KICAgUmVyYW4gYXV0b2NvbmYgYW5kIGF1dG9oZWFkZXIuCgoyMDA4LTExLTEzIDIyOjE0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIE5FV1M6IGJ1aWxkOiB1cGRhdGUgdG8gYXV0b2NvbmYgMi42MwoKMjAwOC0xMS0xMyAwMDozMCAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDIyNTg5MzU6IFB5dGhvbiBFeHRlbnNpb24gTW9kdWxlIGZhaWxzIG9uCiAgIFNvbGFyaXMKCjIwMDgtMTEtMTMgMDA6MjYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBmaXggdHlwbwoKMjAwOC0xMS0xMyAwMDoyNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIGZpeCB0eXBvCgoyMDA4LTExLTEzIDAwOjE5ICB0YW5kZXJzCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBtYWtlIHNjcmlwdHMgZXhlY3V0YWJsZQoKMjAwOC0xMS0xMiAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBmaXggdHlwby9zcGVsbGluZyBpbiBhbiBlbWJlZGRlZCBwZXJsIGVycm9yIG1lc3NhZ2UKCjIwMDgtMTEtMTEgMTM6MTMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggY29tcGlsYXRpb24gb24gb2xkZXIgTGludXhlcyB3aXRob3V0IFNQRUVEXzEwMDAwIGFuZAogICBTUEVFRF8yNTAwLgoKMjAwOC0xMS0wMSAxOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgTkVXUzogc25tcGQ6IEFwcGx5aW5nIHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSB0byBmaXggdGhlCiAgIGdldGJ1bGsgaXNzdWUgcmVwb3J0ZWQgYnkgT3NjYXIgTWlyYS1TYW5jaGV6CgoyMDA4LTEwLTMwIDIyOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgcmVtb3ZlIHRoZSBvbGRlciAob2Jzb2xldGUpIG1ha2VyZWxlYXNlIHNjcmlwdAoKMjAwOC0xMC0yMiAxNzoyNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHRoZSBsaWIgdXNpbmcgYSBDKysgY29tcGlsZXIgb25jZSBtb3JlLgoKMjAwOC0xMC0yMiAwNzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRG9uJ3QgY2xlYXIgc2Vzc2lvbiBmbGFncyB3aGVuIHRlc3Rpbmcgb25lIGJpdC4KCjIwMDgtMTAtMjEgMjE6MTAgIG1hZ2ZyCgogICAqICBBR0VOVC50eHQsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgbG9jYWwvbWliMmMub2xkLWFwaS5jb25mLCAgIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0ZBUS5odG1sOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDE3Mzc3Mjc6IGZyb20gam95Y2Vhbm1hY2hpbmU6IEFkZCBhCiAgIE5FVFNOTVBfT0xEQVBJXyBwcmVmaXggdG8gdGhlIGFjY2VzcyBtYWNyb3MgdGhhdCBhcmUgdXNlZCBpbiB0aGUKICAgb2xkLWFwaSBoZWxwZXIuCiAgIEkgZGlkIGFkZCB0aGUgcHJlZml4IHRvIGFsbCB1c2VycyBpbiBvdXIgY29kZS4KCjIwMDgtMTAtMjEgMjE6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAKICAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMTczNzcyNzogZnJvbSBqb3ljZWFubWFjaGluZTogUmVwbGFjZSBhbGwgdXNlcwogICBvZiBORVRTTk1QX0NMRUFOX05BTUVTUEFDRSB3aXRoIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgoyMDA4LTEwLTE2IDA5OjU2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDgyNzI2OiBjb3JyZWN0bHkgcmVwb3J0IE5JQyBzcGVlZHMKICAgaGlnaGVyIHRoYW4gNEdiaXQvcwoKMjAwOC0xMC0xNiAwODowMCAganNhZnJhbmVrCgogICAqIG1hbjoKCiAgIFNjcmF0Y2ggcHJldmlvdXMgY29tbWl0LCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xIHRvIGJlIGlnbm9yZWQuCgoyMDA4LTEwLTE2IDA3OjM3ICBqc2FmcmFuZWsKCiAgICogbWFuOgoKICAgQWRkIGNvbXBpbGVkIG5ldC1zbm1wLWNvbmZpZy4xIHRvIHN2bjppZ25vcmUgbGlzdAoKMjAwOC0xMC0xNSAxMjo1NyAganNhZnJhbmVrCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZW51bXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9vaWRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMTc5NzExMTogaW1wbGVtZW50IElQLU1JQjo6aXBJZlN0YXRzVGFibGUKCjIwMDgtMTAtMTUgMDk6MjcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcG9ydGFiaWxpdHkgZml4OiBhdm9pZCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW4gdGhlIG1pZGRsZSBvZgogICBjb2RlCgoyMDA4LTEwLTE0IDE4OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMDQzMDE4OiBmaXggcmVjdmZyb20gaGFuZ3MKICAgQWxzbyBhZGRyZXNzZXMgKGNsb3NlZCkgYnVncyAxMTcxOTA0IGFuZCAxMzQ1Mjk2CgoyMDA4LTEwLTE0IDA5OjQ0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayB3aGVuIG11bHRpcGxlIGludGVyZmFjZXMgaGF2ZSB0aGUKICAgc2FtZSBJUHY2IGFkZHJlc3MKCjIwMDgtMTAtMTQgMDk6MzcgIGpzYWZyYW5lawoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjkzMDM5OiBiZSBzaWxlbnQgd2hlbiBpbnNlcnQgZmFpbHMuCgoyMDA4LTEwLTEzIDE5OjAxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTk3NzQzOTogRml4IHBhc3MvX3BlcnNpc3QgYnVnIHdpdGggU0VUCiAgIG9pZCB2YWx1ZQoKMjAwOC0xMC0xMiAxNzoyNCAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBSZWltcGxlbWVudGF0aW9uIG9mIHNubXBNUERTdGF0cy4KCjIwMDgtMTAtMTAgMjE6MTMgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENvbnNvbGlkYXRlIGNoZWNrcyBvbiBnZW5lcmFsIE8vUyBjaGFyYWN0ZXJpc3RpY3MKCjIwMDgtMTAtMDcgMDg6NTAgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDk1OTgzOiBmaXggc3ludGF4IGVycm9yIGluCiAgIGZpbmQtcmVxdWlyZXMgaGVscGVyIHNjcmlwdCBhbmQgbWFrZSBpdCBleGVjdXRhYmxlCgoyMDA4LTEwLTA2IDE5OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGlmZGVmIHN5cy9wb2xsCgoyMDA4LTEwLTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIHBhdGNoIGZyb20gU2hhY2hhciBTY2hlbWVzaCB0byBmaXggYSBxdW90ZSBlc2NhcGluZwoKMjAwOC0wOS0zMCAyMjoxOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZGVkIGEgbmVlZGVkIHRyYWlsaW5nIG5ld2xpbmUKCjIwMDgtMDktMzAgMjI6MTEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjAyMjk0ODogRml4IGZvciBDb3VudGVyNjQgaW4gcGVybCBzdWJhZ2VudAoKMjAwOC0wOS0zMCAyMTo0MCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIE5FV1M6IHNubXBsaWI6IEltcGxlbWVudGVkIFJGQzUzNDMgY29udGV4dEVuZ2luZUlEIHByb2JpbmcuCiAgIFRoaXMgYWxsb3dzIGZvciBwcm9iaW5nIG9mIHRoZSBjb250ZXh0RW5naW5lSUQgd2l0aG91dCByZXF1aXJpbmcKICAgdGhlIFVTTSBzZWN1cml0eSBtb2RlbC4KICAgLSBpbXBsZW1lbnRlZCBlbnRpcmVseSB3aXRoaW4gdGhlIGxpYnJhcnkgZm9yIGJvdGggY2xpZW50cyBhbmQKICAgc2VydmVycy4KCjIwMDgtMDktMzAgMjE6MzMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgQWRkIGEgbG9jYWwgZGVmaW5pdGlvbiBmb3IgaGF2aW5nIHNlY3VyaXR5IG1vZGVscyBkZWZpbmUgdGhlaXIKICAgb3duCiAgIGNvbnRleHRFbmdpbmVJRCBwcm9iZQoKMjAwOC0wOS0zMCAyMTozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZCBhIGRlZmluaXRpb24gZm9yIHRoZSBTU0ggZG9tYWluCgoyMDA4LTA5LTMwIDIxOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDEyNTczNDc6IE5vbi1maXhlZCBzaXplIGNvbm5lY3Rpb24gYnVmZmVyCgoyMDA4LTA5LTMwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbgogICBNYWtlZmlsZS4KICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCgoyMDA4LTA5LTI0IDIwOjU4ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIElkZW50aWZ5IHdoZXJlIHBhcnRpY3VsYXIgY2hlY2tzIGFyZSBhY3R1YWxseSB1c2VkCiAgIChsaWJyYXJ5LCBhZ2VudCwgYXBwbGljYXRpb25zIG9yIG5vdCBhdCBhbGwpCgoyMDA4LTA5LTI0IDEyOjUzICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYzoKCiAgIFVzZSB0aGUgbG9uZ2VzdCBpbnRlZ2VyIGZvciBpbm9kZSBudW1iZXJzIGFuZCAocG9zc2libHkgNjQgYml0KQogICBjb3VudGVycy4KCjIwMDgtMDktMjAgMDk6MDEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzOgoKICAgTkVXUzogYnVpbGQ6IERvIG5vdCByZXF1aXJlIHVzZSBvZiAtLXdpdGgtZW5kaWFubmVzcyB3aGVuCiAgIGNyb3NzLWNvbXBpbGluZy4KCjIwMDgtMDktMTkgMTU6MTkgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBDb3JyZWN0IGxvY2F0aW9uIG9mIGRvY3VtZW50YXRpb24gZmlsZXMuCgoyMDA4LTA5LTE5IDA1OjI4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBbmQgYWRkIHRoZSBjaHVuayB0aGF0IEkgbG9zdC4KCjIwMDgtMDktMTkgMDU6MjMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIG1vcmUgdGhpbmdzIGZyb20gYWNjb25maWcuaCB0byB0aGUgdGVtcGxhdGVzIGluIHRoZQogICBjb25maWd1cmUgaW5wdXQgZmlsZXMuCgoyMDA4LTA5LTE3IDEzOjMxICBqc2FmcmFuZWsKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzOgoKICAgbWFrZSBmaW5kLXJlcXVpcmVzIGV4ZWN1dGFibGUgc28gaXQncyBhY3R1YWxseSB1c2FibGUgYnkgdGhlCiAgIG5ldC1zbm1wLnNwZWMKCjIwMDgtMDktMTcgMTI6MDggIGpzYWZyYW5lawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZjoKCiAgIGFkZCBtYW4gcGFnZSBmb3IgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIKCjIwMDgtMDktMTYgMTg6MDIgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZ1cnRoZXIgbWluaW1pemF0aW9uIG9mIGFjY29uZmlnLmgKCjIwMDgtMDktMTEgMjI6MjggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW92ZSBhIGZldyBtb3JlIHZhcmlhYmxlcyBvdXQgb2YgYWNjb25maWcuaAoKMjAwOC0wOS0xMSAyMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzM3NDM5OiBmcm9tIGVtaXk6IGF1dG9tYXRpYyBsaW5rIHVwL2Rvd24KICAgdHJhcHMgb24gYSB3YWxrOyBzdGlsbCBuZWVkIGEgYmV0dGVyIGludGVyZmFjZSBmb3IgbWFudWFsbHkgZG9pbmcKICAgdGhpbmdzIG9uIGFuIG9jY2FzaW9uYWwgYmFzaXMKCjIwMDgtMDktMTEgMjA6MjUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiA3MDA2ODE6IGxpbWl0ZWQgc3VwcG9ydCBmb3IgVURQdjQgYnJvYWRjYXN0CiAgIGFkZHJlc3NlcwoKMjAwOC0wOS0xMCAwNjozOSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX0NIRUNLX1RZUEVTIGluc3RlYWQgb2YgYSBob21lZ3Jvd24KICAgYWx0ZXJuYXRpdmUgdG8gY2hlY2sgZm9yIHR5cGVzCgoyMDA4LTA5LTA5IDIwOjI3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCBhbGwgdGhlIHBhcnRzIG9mIGNvbmZpZ3VyZS5hYyB0byB0aGUgZGVwZW5kZW5jeSBsaXN0CgoyMDA4LTA5LTA5IDE4OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ3VyZS5pbiAtPiBjb25maWd1cmUuYWMgY2hhbmdlCgoyMDA4LTA5LTA5IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgZGVmYXVsdCB0byAtcDAKCjIwMDgtMDktMDggMjM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGxvY2Fsc20uYzoKCiAgIGNoZWNrIGZvciBhIHNlc3Npb24gdHVubmVsZWQgZmxhZyBiZWZvcmUgcmV0dXJuaW5nIGFuCiAgIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUKCjIwMDgtMDktMDggMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgdHVubmVsZWQgZmxhZyB3aGVuIGRlYWxpbmcgd2l0aCBhIHR1bm5lbC1iYXNlZCB0cmFuc3BvcnQ7CiAgIGRvbid0IHJlcXVpcmUgYSBzZWN1cml0eUVuZ2luZUlEIGlmIHRoZSBzZWN1cml0eSBtb2RlbCBkb2Vzbid0CiAgIGhhdmUgb25lIChqdXN0IFVTTSBuZWVkcyBpdCkKCjIwMDgtMDktMDggMjA6MjQgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAyMDk5OTg1OiBBZGRlZCBjb25zdCBxdWFsaWZpZXJzIHRvIHRpbWUKICAgY29udmVyc2lvbiByb3V0aW5zCgoyMDA4LTA5LTA1IDA3OjUxICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgVXBkYXRlIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zLCBpbiBsaW5lIHdpdGggbWFrZXJlbGVhc2UueG1sCiAgIChRbjogV2h5IGlzbid0IG1ha2VyZWxlYXNlLnhtbCBiZWluZyBwaWNrZWQgdXAgaGVyZT8pCgoyMDA4LTA5LTA0IDIyOjUyICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMTg2ODI3ODogUHl0aG9uIHNlZ2ZhdWx0IChpbnRyb2R1Y2VkIGJ5CiAgIHIxNjk2MikKCjIwMDgtMDktMDMgMTM6NDMgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDIwMDA4NzQ6IENsZWFudXAgdHJhbnNwb3J0IHNlbGVjdGlvbi4KCjIwMDgtMDktMDMgMTM6MjkgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBUaWR5IHVwIHBlcmwvcHl0aG9uIGFuZCBPL1MgZGF0YSBzdHJ1Y3R1cmUgdGVzdHMuCgoyMDA4LTA4LTMxIDE4OjE0ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgVGlkeSB1cCAobW9zdCBvZikgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50cyBvZiB0aGUgY29uZmlndXJlCiAgIGZyYW1ld29yay4KICAgVGhpcyBpcyBtb3N0bHkgcmUtaW5kZW50YXRpb24sIHJlLWNvbW1lbnRpbmcsIGFuZCBhIGNlcnRhaW4KICAgYW1vdW50CiAgIG9mIGp1ZGljaW91cyByZS1vcmRlcmluZyBvZiB0aGUgdGVzdHMgd2l0aGluIGluZGl2aWR1YWwKICAgc3ViLXNjcmlwdC4KCjIwMDgtMDgtMzEgMTc6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQW5ub3RhdGUgY29uZmlndXJlIHRlbXBsYXRlIHdpdGggc3VnZ2VzdGVkIGJlc3QgcHJhY3RpY2UKICAgc3RydWN0dXJlLgogICBOb3RlIHRoYXQgbm9uZSBvZiB0aGVzZSBjaGFuZ2VzIGhhcyBhbHRlcmVkIHRoZSBjb2RlIHdpdGhpbgogICAnY29uZmlndXJlJyBpdHNlbGYgKG90aGVyIHRoYW4gYWZmZWN0aW5nIGxpbmUgbnVtYmVycykKCjIwMDgtMDgtMzEgMTc6MjYgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGJ1aWxkOiBzcGxpdCBjb25maWd1cmUgdGVtcGxhdGUgaW50byBzZXBhcmF0ZSBwaWVjZXMuCiAgIChNb3N0bHkpIHNlbGYtY29udGFpbmVkLCBhbmQgc2lnbmlmaWNhbnRseSBsZXNzIGNvbmZ1c2luZyEKCjIwMDgtMDgtMzEgMTc6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmluOgoKICAgUmVuYW1lIGNvbmZpZ3VyZSB0ZW1wbGF0ZSBpbiBsaW5lIHdpdGggY3VycmVudCBiZXN0IHByYWN0aWNlLgoKMjAwOC0wOC0yOSAxOTo1NCAgZHRzMTIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBSZXRhaW4gZmlsZW5hbWVzIHdoaWNoIGRvbid0IGluY2x1ZGUgdGhlIGV4cGVjdGVkIHByZWZpeC4KCjIwMDgtMDgtMjcgMjE6NTUgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jczoKCiAgIGlnbm9yZSAubGlicyBkaXJlY3RvcmllcwoKMjAwOC0wOC0yNyAxMzozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFMvMzkwIHVzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1hdCBvZiB0aGUgL3Byb2MvY3B1aW5mbyBmaWxlOgogICBwcm9jZXNzb3IgMDogdmVyc2lvbiA9IEZGLCBpZGVudGlmaWNhdGlvbiA9IDA2MEFGRSwgbWFjaGluZSA9CiAgIDIwOTQKCjIwMDgtMDgtMjIgMjM6NDcgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1zCgoyMDA4LTA4LTIyIDIzOjI3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IEJVRzogMjAyMzgwMzogQ29tcGlsYXRpb24gcHJvYmxlbXMgb24gSFAtVVggMTEuMzEKICAgQ0hBTkdFUzogYnVpbGQ6IExpbWl0IHRoZSB1c2Ugb2YgX0tFUk5FTCBkZWZpbml0aW9ucyBpbiBjb25maWd1cmUKICAgdGVzdHMgdG8gbWF0Y2ggdGhlIHVzZQogICBvZiBfS0VSTkVMIGluIG91ciBjb2RlYmFzZQoKMjAwOC0wOC0yMiAwMDoxOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggYnVpbGQgZmFpbHVyZSBvbiBIUC1VWCAxMS4zMTogdXNlIGdldHBhZ2VzaXplKCkgaW5zdGVhZCBvZgogICBQR1NISUZULgogICBTdWNjZXNzZnVsbHkgdGVzdGVkIG9uIEhQLVVYIDEwLjIwLCAxMS4wMCwgMTEuMTEsIDExLjIzIGFuZAogICAxMS4zMS4KCjIwMDgtMDgtMjEgMTA6MDMgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgU0NUUC1NSUIKCjIwMDgtMDgtMjAgMTc6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSGF2ZSBvbmx5IG9uZSB2YXJpYWJsZSBuYW1lZCBwYXNzd2QgaW4gc211eF9hdXRoX3BlZXIuCgoyMDA4LTA4LTE5IDIzOjIyICB0YW5kZXJzCgogICAqIFJFQURNRS50cnU2NDoKCiAgIHVwZGF0ZSBSRUFETUUgZm9yIFRydTY0IGFmdGVyIHRoZSBzZW5kdG8vcmVjdmZyb20gZml4ZXMKCjIwMDgtMDgtMTkgMjA6MjcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgZml4IHNpZ25pZmljYW50IHR5cG8KCjIwMDgtMDgtMTkgMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIEZvcmNlIHVzZSBvZiAvcHJvYy8lZC9wc2luZm8gaW50ZXJmYWNlIG9uIFNvbGFyaXMuCiAgIFRlbXBvcmFyeSBoYWNrIHdoaWxlIHdlIGludmVzdGlnYXRlIHRoZSBpc3N1ZXMgd2l0aAogICB0aGUga3ZtX3Byb2MoKSBjb2RlLgogICAKICAgVGhlICdjb25maWdfcmVxdWlyZScgcHJvY2Vzc2luZyBkb2Vzbid0IGN1cnJlbnRseQogICBwaWNrIHVwIHRoZSBmdWxsICNpZmRlZiBlbnZpcm9ubWVudCwgc28gZGVmYXVsdHMKICAgdG8gdXNpbmcga3ZtX3Byb2MoKS4gSSdtIG5vdCBjb252aW5jZWQgdGhpcyB3YXMKICAgd29ya2luZyBiZWZvcmUgYW55d2F5LAoKMjAwOC0wOC0xOSAxMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmM6CgogICBGaXggcHJvYmxlbXMgaW4gL3Byb2MvJWQvcHNpbmZvIGludGVyZmFjZSBwcm9jZXNzaW5nLgoKMjAwOC0wOC0xOSAwODo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2VzczoKCiAgIElnbm9yZSBsaWJyYXJ5IGFuZCBvYmplY3QgZmlsZXMKCjIwMDgtMDgtMTkgMDg6MzYgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQWN0aXZhdGUgc3RhdGlzdGljcyB0aGF0IGFyZSBzdXBwb3J0ZWQgb24gU29sYXJpcyBhbmQvb3IgTGludXgKICAgSVB2NgoKMjAwOC0wOC0xOSAwODoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBJbXByb3ZlZCB0cmFjaW5nIG9mIFNNVVggYXV0aGVudGljYXRpb24gcHJvYmxlbXMuCgoyMDA4LTA4LTE5IDA4OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jOgoKICAgQmV0dGVyIHRyYWNpbmcgb2YgRGlzTWFuIG9iamVjdCBwcm9jZXNzaW5nLgoKMjAwOC0wOC0xOCAyMjo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oOgoKICAgcmVtb3ZlIGJvZ3VzIHdoaXRlIHNwYWNlCgoyMDA4LTA4LTE4IDIyOjAxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMDIxNDQ0OiBTdXBwb3J0IFNOTVB2MmMgaW4gZ2V0dGFibGUKICAgcHJvY2Vzc2luZwoKMjAwOC0wOC0xOCAyMTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjAwMzQ1MDogRml4IGEgY291cGxlIG9mIDY0LWJpdAogICBwcm9ibGVtcy4KCjIwMDgtMDgtMTggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgcmV2ZXJ0IDE3MTU3IHNpbmNlIGl0IGJyb2tlIHNvbWV0aGluZwoKMjAwOC0wOC0xOCAwNzowNiAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIFNDVFAtTUlCIGltcGxlbWVudGF0aW9uIChMaW51eCBvbmx5KQoKMjAwOC0wOC0xNyAyMTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMjI5MzY6IEZpeCBBZ2VudFggQ291bnRlcjY0IGRlY29kaW5nIG9uCiAgIDY0LWJpdCBhcmNoaXRlY3R1cmVzCgoyMDA4LTA4LTE3IDIwOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDE0MjA0OiBTdXBwb3J0IC1nIHtncm91cG5hbWV9CgoyMDA4LTA4LTE1IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIE5FV1M6IHNubXB1c206IFBBVENIOiAxNTkxMzU1OiBmcm9tIHBwYXNzZXJhOiBBbGxvdyBjbG9uaW5nIHRvCiAgIGVuZ2luZUlEcyB0aGF0IGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgYWdlbnQncyBlbmdpbmVJRAoKMjAwOC0wOC0xNCAxNTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jOgoKICAgU1dSdW4gcHJvY2Vzc2luZyBuZWVkcyBhY2Nlc3MgdG8gdGhlIGludGVybmFscyBvZiAnc3RydWN0IHVzZXInCiAgIChTb2xhcmlzKQoKMjAwOC0wOC0xMyAxMzowMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBDb3JyZWN0bHkgcGFyc2UgaW50ZXJmYWNlIGluZGV4ZXMgaGlnaGVyIHRoYW4gMHhmZi4KCjIwMDgtMDgtMTIgMDg6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDbG9zZSBmaWxlIHdoZW4gcGFyc2luZyBvZiAvcHJvYy9YWFgvc3RhdHVzIGZhaWxzLgoKMjAwOC0wOC0xMiAwNzoyNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYiwgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9TQ1RQLU1JQi50eHQ6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIwMjM2MzM6IGFkZCBTQ1RQLU1JQiBpbXBsZW1lbnRhdGlvbiAoTGludXgKICAgb25seSkKCjIwMDgtMDgtMDcgMTA6MDMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBGaXggaW5ldE5ldFRvTWVkaWFUYWJsZSB0YWJsZSBwcm9jZXNzaW5nIC0gY29udGludWUgd2l0aCBuZXh0CiAgIGVudHJ5IHdoZW4gZmlsbHVwX2VudHJ5X2luZm8oKSBmYWlscy4KCjIwMDgtMDgtMDcgMDk6MDAgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBkb2N1bWVudGF0aW9uIG9mIGV4ZWMgc3RhdGFtZW50IC0gaXQgZG9lcyBub3QgY2FjaGUgcmVzdWx0cwogICBhbnltb3JlLiBSZWxhdGVkIHRvIGJ1ZyA4ODMxMzQKCjIwMDgtMDctMzEgMjM6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYzoKCiAgIEZpeCBhIHR5cG8sIGFuZCBhIGJvZ3VzIGZpZWxkIG5hbWUgaW4gdGhlIEFJWCBwcm9jaW5mbyBzdHJ1Y3R1cmUuCgoyMDA4LTA3LTMxIDIzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmM6CgogICBJbmNsdWRlIG1pc3NpbmcgaGVhZGVycywgYW5kIGZpeCBvbmUgYm9ndXMgZmllbGQgbmFtZSBpbiBTb2xhcmlzCiAgIHByb2Mgc3RydWN0dXJlLgoKMjAwOC0wNy0zMCAxNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyMDAzMTQ0OiBJbmNyZWFzZSBzaXplIG9mIEFnZW50WCBwYWNrZXQKICAgYnVpbGQgYnVmZmVyCgoyMDA4LTA3LTMwIDA3OjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAyMDI3ODM0OiBFeHRlbmQgc3RyaW5nIHByaW50IGJ1ZmZlciBieSB0aGUKICAgbWluaW11bSBuZWNlc3NhcnkuCgoyMDA4LTA3LTI5IDIzOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9jeWd3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jOgoKICAgRml4IGFzc29ydGVkIHNpbGx5IHR5cG9zIC0gdW5iYWxhbmNlZCBwYXJlbnRoZXNlcwogICBhbmQgdGhlIHdyb25nIHR5cGUgZW51bWVyYXRpb24gdmFsdWUgbmFtZXMuCgoyMDA4LTA3LTI5IDIzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmM6CgogICBFbnN1cmUgc3dydW4gZGF0YSBpcyBhdmFpbGFibGUgZm9yIHRoZSBwclRhYmxlIGNhbGxzLAogICByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGhyU1dSdW5UYWJsZSB0byB0cmlnZ2VyIHRoaXMuCgoyMDA4LTA3LTI5IDE2OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGEpIEZpeCB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGluIGp1c3Qgb25lIHBsYWNlCiAgIChtYWtlcyBpdCBlYXNpZXIgdG8gY2hhbmdlIGlmIG5lY2Vzc2FyeSkKICAgYikgRml4IHZhcmlvdXMgdW5mb3J0dW5hdGUgbGluZS1icmVha3MgKHdpdGhpbiAicGR1LT5mbGFncyIpCgoyMDA4LTA3LTI5IDE2OjA1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBJZiB0aGUgcmUtd3JpdHRlbiBTV1J1biBtb2R1bGUgaWYgYXZhaWxhYmxlLCB0aGVuIHVzZSBpdCBmb3IKICAgdGhlIFVDRC1zcGVjaWZpYyBwclRhYmxlIGFzIHdlbGwgYXMgdGhlIGhyU1dSdW5UYWJsZS4KICAgQ29uc2lzdGVuY3kgaXMgZ29vZC4uLi4KCjIwMDgtMDctMjkgMTU6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgU3VwcHJlc3MganVuayBpbiBoclNXUnVuTmFtZSAmIGhyU1dSdW5QYXJhbWV0ZXJzIHZhbHVlcwoKMjAwOC0wNy0yOSAxMDoyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYzoKCiAgIFRoZSBjYWNoZS9jb250YWluZXIgcmVsYXRlIHRvIHRoZSBkYXRhIGl0c2VsZiwgc28gc2hvdWxkCiAgIG1vcmUgbmF0dXJhbGx5IGJlIGhhbmRsZWQgYnkgdGhlIGRhdGFfYWNjZXNzIG1vZHVsZSwKICAgcmF0aGVyIHRoYW4gYSBwYXJ0aWN1bGFyIE1JQiB0YWJsZSBtb2R1bGUuCgoyMDA4LTA3LTI4IDIxOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICAndXNlZCcgYW5kICdmcmVlJyBhcmUgbm90IHRoZSBzYW1lIHRoaW5nLCBEYXZlLiBQYXkgYXR0ZW50aW9uIGF0CiAgIHRoZSBiYWNrLi4uLgoKMjAwOC0wNy0yOCAxNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyMDIzODAzOiBFbnN1cmUgY29tcGlsYXRpb24gaXMgbm90IGRlcGVuZGVudAogICBvbiBhbiBpcnJlbGV2YW50IGNvbmZpZ3VyZSBjaGFyYWN0ZXJpc3RpYyBmb3IgSFAtVVggMTEKCjIwMDgtMDctMjggMTA6NTYgIGR0czEyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgQ0hBTkdFUzogYXBwczogQlVHOiAxOTY0MTM2OiBEcm9wIE5VTEwgdHlwZSBmcm9tIHNubXBzZXQgdXNhZ2UKICAgbWVzc2FnZS4KCjIwMDgtMDctMjUgMTQ6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaDoKCiAgIFVzZSAnLS1lbmFibGUtbmV3LWZlYXR1cmVzJyBtZWNoYW5pc20gdG8gaW5jbHVkZSBoclNXKiByZS13cml0ZXMKCjIwMDgtMDctMjUgMTQ6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX251bGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jOgoKICAgUHJlbGltaW5hcnkgT1Mtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIFJ1bm5pbmcgYW5kIEluc3RhbGxlZAogICBTb2Z0d2FyZSBkYXRhIGFjY2Vzcy4KCjIwMDgtMDctMjQgMjM6MjIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDIwMjcxMjk6IGZpeCB0eXBvIGluIHNubXBjbWQuMQoKMjAwOC0wNy0yNCAxMDowMCAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNlZHNjcmlwdC5pbjoKCiAgIHJlZmxlY3QgZGVmYXVsdCB0ZW1wIGZpbGUgcGF0dGVybiBpbiBtYW4gcGFnZSBpZiBpdCdzIG1vZGlmaWVkIGJ5CiAgIC4vY29uZmlndXJlIHNjcmlwdAoKMjAwOC0wNy0yNCAwODozNiAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IGFkZCAtLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4gY29uZmlndXJlIG9wdGlvbgoKMjAwOC0wNy0yNCAwNjo1MyAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MjM4MDA6IHJlbGVhc2UgYW5kIHJlbG9hZCBhbGwgdHJhcAogICBkZXN0aW5hdGlvbnMgb24gU0lHSFVQCgoyMDA4LTA3LTIyIDE0OjMzICBqc2FmcmFuZWsKCiAgICogbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW46CgogICBmaXggbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIgdG8gcnVuIHdpdGhvdXQgYXJndW1lbnRzCgoyMDA4LTA3LTIyIDE0OjIxICBqc2FmcmFuZWsKCiAgICogIC4sIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbjoKCiAgIE5FV1M6IG1pc2M6IHNlcGFyYXRlIHVzZXIgbWFuYWdlbWVudCBmcm9tIG5ldC1zbm1wLWNvbmZpZyBpbnRvCiAgIG5ldyBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciBzY3JpcHQKCjIwMDgtMDctMjEgMTM6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDE5NDQ1ODE6IFByb3RlY3QgYWdhaW5zdCBjb3JlIGR1bXBzIHdpdGgKICAgbG9uZyBzdHJpbmcgaW5kZXggdmFsdWVzLgoKMjAwOC0wNy0xOCAxNToxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBuZXcgc2lnbmluZyBrZXkKCjIwMDgtMDctMTcgMTA6MDUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyMDE4MDMxOiBEb24ndCBwcm9iZSBlbmdpbmVJRCBpbiBpbnRlcm5hbAogICBtb25pdG9yIHNlc3Npb25zLgoKMjAwOC0wNy0xMCAxOTozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggYSByZWdleHAgcXVvdGUKCjIwMDgtMDctMTAgMTQ6MTIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgZ2V0YWRkcmluZm8gKGUuZy4gSFAtVVgKICAgMTEuMCBhbmQgZWFybGllciwgU29sYXJpcyA3IGFuZCBlYXJsaWVyKQoKMjAwOC0wNy0xMCAxMzo1MCAgYWxleF9iCgogICAqIHdpbjMyL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEJVRzogMjAxNDUyNjogV2luMzI6CiAgIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oIG5vdCBpbnN0YWxsZWQKCjIwMDgtMDctMDYgMTU6MDUgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVsZGluZzogQWRkIHN1cHBvcnQgZm9yIHdpbkV4dERMTCB0byBidWlsZC5iYXQgKHdpbjMyKQoKMjAwOC0wNy0wNiAxMjozOCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzIC0gYWRkIG1pc3NpbmcgZnVuY3Rpb24gZm9yIERMTCBidWlsZC4KCjIwMDgtMDctMDIgMTI6MzkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjAwNjc4NjogSW50ZXJmYWNlIG5hbWUgY2FuIGhhdmUgbW9yZSB0aGFuIDgKICAgY2hhcmFjdGVycy4KCjIwMDgtMDYtMjUgMTc6MzkgIHRhbmRlcnMKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkxNjg0MDogbmV3IGNvbmZpZyBvcHRpb24gdG8gc2V0IFNOTVB2MSB0cmFwCiAgIGFnZW50IGFkZHJlc3MKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE5MTY4NDA6IGludHJvZHVjZQogICBuZXRzbm1wX2dldGhvc3RieW5hbWVfdjQKCjIwMDgtMDYtMjUgMTU6MTYgIGpzYWZyYW5lawoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBhc3NlcnRpb24gd2hlbiB1c2VkIHdpdGggcGVybCA1LjEwCgoyMDA4LTA2LTI0IDA1OjAxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogQlVHOiAyMDAxMTI0OiBBbGxvdyBlbWJlZGRlZCBOVUwKICAgY2hhcmFjdGVycyBpbiB1c21Vc2VyUHVibGljCgoyMDA4LTA2LTIzIDE5OjU3ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBPbmx5IHJlc2VydmUgc3BhY2UgZm9yIHRoZSBleHRyYSBcMCBhZnRlciB0aGUgZGF0YSBmb3IgT0NURVQKICAgU1RSSU5HIHZhbHVlZCBlbnRpdGllcwoKMjAwOC0wNi0yMyAxOToxMyAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERpc2FibGUgdGVzdHMgaWYgdGhlIGFnZW50IGlzIGJ1aWx0IHdpdGhvdXQKICAgdGhlIG1pYiBtb2R1bGUgdGhleSBkZXBlbmQgb24uCgoyMDA4LTA2LTIxIDEyOjE0ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSBzcHVyaW91cyBBQ19NU0dfUkVTVUxUIGluc2lkZSBhbiBBQ19DQUNIRV9DSEVDSwoKMjAwOC0wNi0xOCAwNTowNyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBIYW5kbGUgc29sYXJpcyBhd2sgYXMgd2VsbC4KCjIwMDgtMDYtMTcgMTY6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTk1NzUzOiBmcm9tIHZvbGtvdl9wZXRlcjogbWlub3IgY2xlYW51cAogICBhZ2VudC9hdXRvX25saXN0LmMKCjIwMDgtMDYtMTcgMDg6NTcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIEZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHNwcmludGYgZm9yIFRDUC9JUHY2CiAgIENyb3NzLXBvcnQgb2YgcmV2aXNpb24gMTY2NjgKCjIwMDgtMDYtMTYgMjM6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTk5NTE3MjogZml4IC0td2l0aG91dC1lbGYgY29uZmlndXJlIHVzYWdlCiAgIG1lc3NhZ2UKCjIwMDgtMDYtMTMgMjI6MTYgIGR0czEyCgogICAqIGRpc3QvZmluZC1yZXF1aXJlcywgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEltcHJvdmVkIFJQTSBzcGVjIGZpbGVzLCBmb3IgYmV0dGVyIGNvbnNpc3RlbmN5CiAgIHdpdGggdmVuZG9yLXByb3ZpZGVkIHBhY2thZ2VzLgogICBQcm92aWRlZCBieSBKYW4gU2FmcmFuZWsKCjIwMDgtMDYtMTMgMjE6MDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxODk5NzYyOiBUd2VhayBlbWJlZGRlZF9wZXJsIGNvbmZpZ3VyZQogICBjaGVja3MuCgoyMDA4LTA2LTEzIDA1OjQzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBSZXRpcmUgdGhlIGNvbmZpZ19vbGQvbmV3X3JlcXVpcmUgZmVhdHVyZSBhbmQKICAgcmVwbGFjZSBpdCB3aXRoIGNvbmZpZ192ZXJzaW9uX3JlcXVpcmUgdGhhdCBjb21wYXJlcyB2ZXJzaW9uCiAgIG51bWJlcnMgdG8gYWNoaWV2ZSBhIHNpbWlsYXIgdGhpbmcKCjIwMDgtMDYtMTIgMTI6NTAgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBPbmx5IGFkZCBub24tZGVmYXVsdCBNSUIgbW9kdWxlcyB0byB0aGUgdGVzdCBidWlsZHMuCiAgIFNwZWNpZnlpbmcgdGhlIGhvc3QgbW9kdWxlIGlzIG5vdCBuZWVkZWQgb24gTGludXggc3lzdGVtcywKICAgYW5kIG1heSBicmVhayBvbiBvdGhlciBPL1NzLiBTcGVjaWZ5aW5nIHRoZSBkaXNtYW4vZXZlbnQKICAgTUlCIGlzIHVubmVjZXNzYXJ5IG9uIGFueSBzeXN0ZW0uCgoyMDA4LTA2LTExIDEwOjE2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgT25seSBlbmFibGUgSVBYIHRyYW5zcG9ydCBvbiBMaW51eCBzeXN0ZW1zCgoyMDA4LTA2LTEwIDE0OjM3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgc25tcGQ6IFBBVENIOiAxOTE4MzgzOiBGaXggRGlzTWFuIG1vbml0b3Jpbmcgb2YgQWdlbnRYIHN1YmFnZW50cwogICBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IGFjdHVhbGx5IHVzZSB0aGUgY29kZSBzdWJtaXR0ZWQgaW4gdGhhdAogICBwYXRjaC4KICAgSW5zdGVhZCBpdCBpbnNlcnRzIGEgY2FsbGJhY2sgaG9vayBpbnRvIHRoZQogICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiCiAgIHJvdXRpbmUgKHVzaW5nIHRoZSBteXZvaWQgcG9pbnRlciBhbmQgYSBuZXcgc2Vzc2lvbiBmbGFnKSwgd2hpY2gKICAgaGFzCiAgIHRoZSBzYW1lIGVmZmVjdCB3aXRob3V0IG5lZWRpbmcgdG8gZHVwbGljYXRlIGFueSBjb2RlLgoKMjAwOC0wNi0xMCAxMjo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIEZpeCBsb2dpYyBlcnJvcnMgaW4gaGFuZGxpbmcgb2Ygb2xkL2N1cnJlbnQgdmFyYmluZCBsaXN0cy4KICAgUmVwb3J0ZWQgYnkgRnJlZCBHYW8gaW4gcGF0Y2ggIzE5MTgzODMKCjIwMDgtMDYtMDkgMTk6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHVwZGF0ZSB0byBtYXRjaCBwdWJsaXNoZWQgcmVsZWFzZQoKMjAwOC0wNi0wOSAxNjo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGRlZCBzbm1wX3ZlcnNpb24uYwoKMjAwOC0wNi0wOSAwOTowNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEEgY291cGxlIG1vcmUgbWlzc2luZyBlcnJvciBjaGVja3MuCiAgIEJhc2VkIG9uIHRob3NlIHJlcG9ydGVkIGJ5IEJveWEgU3VuCgoyMDA4LTA2LTA2IDEyOjAyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBlbWJlZGRlZCBwZXJsIG9uIE1hYyBPUy9YCiAgIChuZWFybHkgd29ya2luZyBvbiBMZW9wYXJkIG5vdykKCjIwMDgtMDYtMDMgMjM6MTQgIHRhbmRlcnMKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5FV1M6IGFpeDogQWRkIHN1cHBvcnQgZm9yIEFJWCA2LngKCjIwMDgtMDYtMDMgMjI6NDYgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIE5FV1M6IGJ1aWxkOiBVcGRhdGUgdG8gbGlidG9vbCAxLjUuMjYgKGZyb20gMS41LjI0KSwgZS5nLiB0bwogICBiZXR0ZXIgc3VwcG9ydCBBSVggNi4xIGFuZCBNYWMgT1MgWCBMZW9wYXJkCgoyMDA4LTA2LTAzIDIyOjM5ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB3aHkgYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgbmV3IHN0dWZmPwoKMjAwOC0wNi0wMyAwOTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRW5zdXJlIHRoZSBkZWZhdWx0IGludGVybmFsIHF1ZXJ5IHNlc3Npb24gaGFzIGEgdmFsaWQgZW5naW5lSUQsCiAgIHRvIGF2b2lkIGhhdmluZyB0byBwcm9iZSBmb3IgaXQgb24gdGhlIGZpcnN0IHVzZS4KCjIwMDgtMDYtMDIgMjI6MTcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi90b29scy5jOgoKICAgTkVXUzogc25tcGxpYjogQ29udmVydCBnZW5lcmljIHNvdXJjZSBhcmd1bWVudHMgZnJvbSBjb25zdAogICB1X2NoYXIqIHRvIGNvbnN0IHZvaWQqIGZvciBzbm1wX3BkdV9hZGRfdmFyaWFibGUsCiAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUsIHNubXBfc2V0X3Zhcl92YWx1ZSwKICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlIGFuZCBtZW1kdXAuCgoyMDA4LTA2LTAyIDEzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICJ0cmlnZ2VyIGFybWVkIiBmbGFnIGlzIGNsZWFyZWQgd2hlbmV2ZXIgdGhlCiAgIG1hdGNoaW5nCiAgIGV4cHJlc3Npb24gaXMgZm91bmQgdG8gaG9sZCAtIGV2ZW4gaWYgdGhlIHRyaWdnZXIgZG9lc24ndAogICBhY3R1YWxseSBmaXJlLgogICBUaGlzIGFmZmVjdHMgdGhlIGJlaGF2aW91ciBvZiBpbml0aWFsbHktdHJ1ZSBleHByZXNzaW9ucywgd2hlbgogICB0aGlzCiAgIGluaXRpYWwgZmlyaW5nIGlzIHN1cHByZXNzZWQgdXNpbmcgdGhlIG10ZVRyaWdnZXIqU3RhcnR1cCBvYmplY3QuCiAgIFdpdGhvdXQgdGhpcyB0d2VhaywgdGhlIHRyaWdnZXIgd2lsbCBmaXJlIG9uIHRoZSBzZWNvbmQgc2FtcGxpbmcKICAgKGFzIGlmIHRoZSBleHByZXNzaW9uIGhhZCBldmFsdWF0ZWQgZmFsc2UgZmlyc3QgdGltZSByb3VuZCkuCgoyMDA4LTA2LTAxIDIwOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmg6CgogICBIYW5kbGUgdmFyYmluZCBwYXlsb2FkIGZvciBpbnRlcm5hbCBsaW5rVXAvRG93biBub3RpZmljYXRpb25zLgoKMjAwOC0wNi0wMSAwNjo0NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBORVdTOiBzbm1wdHJhcGQ6IEJVRzogMTk1NTIyNzogTWVtb3J5IGxlYWsgZm9yIGVtYmVkZGVkIFBlcmwgb24KICAgeDg2XzY0CgoyMDA4LTA1LTMxIDEyOjA4ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFRoZSBzY2FsYXIgaGVscGVyIHRoYXQgd2FzIGNhbGxlZCBmcm9tIHRoZQogICBzY2FsYXJfZ3JvdXAgaGVscGVyIGRpZCBub3RoaW5nIHNhdmUgYWRkaW5nIGEgdHJhaWxpbmcgMCB0byB0aGUKICAgYXJndW1lbnQuIFJlbW92ZSB0aGUgdXNlIG9mIHRoZSBzY2FsYXIgaGVscGVyIGZyb20gdGhlCiAgIHNjYWxhcl9ncm91cCBhbmQgYWRkIHRoZSB0cmFpbGluZyAwIGluIHRoZSBzY2FsYXJfZ3JvdXAgaGVscGVyLgoKMjAwOC0wNS0zMCAxMzo1NiAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFR3ZWFrIGxpc3Qgb2Ygb24tbGluZSBzb2Z0d2FyZSBkaXJlY3RvcmllcyB0byBiZSB1cGRhdGVkLgoKMjAwOC0wNS0yOSAwOTo1OSAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgYXBwcy9zbm1wdGVzdC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIFZhcmlvdXMgbWlzc2luZyBlcnJvciBjaGVja3MsIGV0Yy4KICAgUmVwb3J0ZWQgYnkgQm95YSBTdW4uCgoyMDA4LTA1LTI4IDExOjQ4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUmVwb3J0IGNhY2hlZCBtZW1vcnkgc2l6ZS91c2FnZSBwcm9wZXJseSAocGFydGljdWxhcmx5IG9uCiAgIEZyZWVCU0QpLgoKMjAwOC0wNS0yOCAxMToyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBCcmluZyBtZW1CdWZmZXIgY29kZSBpbnRvIGxpbmUgd2l0aCByZXZpc2lvbiAxNjk3NS4KCjIwMDgtMDUtMjggMTE6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIExpbnV4IDIuNiBrZXJuZWwgZG9lcyBub3QgcmVwb3J0IHNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24uCgoyMDA4LTA1LTI4IDA5OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxOTMxMzkxOiBGaXggcmVwb3J0aW5nIG9mIE1lbW9yeSBidWZmZXJzIGFuZAogICBjYWNoZWQgbWVtb3J5LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IGRvY29uZWlsbC4KCjIwMDgtMDUtMjggMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgVHdlYWsgdGhlIGZpeCBmb3IgYnVnICMxOTEyNjQ3CgoyMDA4LTA1LTI4IDA2OjU2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEVuZm9yY2UgdGhlIGxvd2VyIGxpbWl0IG9uIHNjYWxhcl9ncm91cHMKICAgVGhpcyBmaXhlcyB0aGUgY2FzZSBvZiBnZXRuZXh0IGljbXAuMCByZXR1cm5pbmcgaWNtcC4wLjAgaW5zdGVhZAogICBvZiB0aGUKICAgZXhwZWN0ZWQgaWNtcEluTXNncy4wCgoyMDA4LTA1LTI3IDIyOjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTkxMjY0NzogRml4IG1lbW9yeSBsZWFrIGZvbGxvd2luZyBmYWlsZWQKICAgcmVxdWVzdHMuCiAgIEZpeCBwcm92aWRlZCBieSBBbnRvbiBQYWsKCjIwMDgtMDUtMjcgMjE6MjIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTk1ODA0MTogRW5zdXJlIElEcyBhcmUgbm90IHRydW5jYXRlZC4KCjIwMDgtMDUtMjcgMTQ6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jOgoKICAgTW9uaXRvciBtZW1vcnkgYnVmZmVycyBvbiBGcmVlQlNEIHN5c3RlbXMuCiAgIEFQSSBzdWdnZXN0ZWQgYnkgQ2hyaXMKCjIwMDgtMDUtMjcgMTI6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBGaXggY2FyZWxlc3MgdHlwbyB3aGVuIGFwcGx5aW5nIE1heGltJ3MgcGF0Y2guCgoyMDA4LTA1LTI1IDIxOjM3ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlaW1wbGVtZW50YXRpb24gb2YgdXNtU3RhdHMuCgoyMDA4LTA1LTI1IDA3OjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmM6CgogICBSZW1vdmUgYSBsb2NhbCB2YXJpYWJsZSBvbmx5IHVzZWQgdG8gdHJhY2sgYSBsb2NhbCBzdHJpbmcKICAgY29uc3RhbnQgYW5kIHJlcGxhY2UgdCB3aXRoIGEgZGlyZWN0IHJlZmVyZW5jZSB0byB0aGUgc3RyaW5nCiAgIGNvbnN0YW50LgogICBNYXJrIHR3byBsb2NhbCBmdW5jdGlvbnMgc3RhdGljIGFzIHdlbGwuCgoyMDA4LTA1LTI1IDA3OjE3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBSZW9yZGVyIHRvIGF2b2lkIG9uZSBzdHJsZW4gY2FsbC4KICAgQWRkIG1pc3NpbmcgY2FzdC4KCjIwMDgtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBNYWtlIGlwZndfbmFtZSBhIHN0YXRpYyBhcnJheSBpbnN0ZWFkIG9mIGEgcG9pbnRlciBhcyBpdCBpcwogICBwcml2YXRlIHRvIHRoaXMgbW9kdWxlLgoKMjAwOC0wNS0yNSAwNzowNSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgV2hlbiBjYXN0aW5nLCBjYXN0IHRvIHRoZSByaWdodCB0eXBlLgoKMjAwOC0wNS0yNSAwNjowOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFJlbW92ZSB3YXJuaW5ncyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIG9uIHNvbGFyaXMuCgoyMDA4LTA1LTI0IDIwOjMwICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDE4MjYxNzQ6IENoZWNrIGZvciBidWZmZXIgb3ZlcmZsb3cgd2hlbgogICBwcmludGluZyB2YWx1ZXMuCiAgIEFkZHJlc3NlcyBDVkUtMjAwOC0yMjkyCgoyMDA4LTA1LTI0IDEzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE9uIEFJWCBuZXRpbmV0L2luX3BjYi5oIGRlcGVuZHMgb24gbmV0L3JvdXRlLmguIEFkZCB0aGUgaW5jbHVkZQogICBmb3IgY29uZmlndXJlLgoKMjAwOC0wNS0yNCAwOTowNiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTWFrZSB0aGUgY2hlY2tzIGZvciBuZXRpbmV0L2luX3BjYi5oIGFuZCBzeXMvZGlza2xhYmVsLmggdXNlIHRoZQogICBub3JtYWwKICAgbWFjaGluZXJ5LgogICBBZGQgYSBuZXRzbm1wIHByZWZpeCB0byB0aGUgY2FjaGUgdmFyaWFibGUKICAgY3Zfc3lzX2lvY3RsX2hfaGFzX1NJT0NHSUZBRERSIHRvCiAgIHBhY2lmeSBhY2xvY2FsLgoKMjAwOC0wNS0yMyAyMDoyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBGaXggZm9yIENQVSBzdGF0cyBvbiBGcmVlQlNECiAgIFByb3ZpZGVkIGJ5IE1heGltIFNvYm9sZXYKCjIwMDgtMDUtMjMgMjA6MTIgIGR0czEyCgogICAqIGRpc3Qvc25tcGQtaW5pdC5kLCBkaXN0L3NubXB0cmFwZC1pbml0LmQ6CgogICBDSEFOR0VTOiBpbnN0YWxsOiBQQVRDSDogMTk2OTYyNzogSGFuZGxlIGVtcHR5CiAgIC9ldGMvc3lzY29uZmlnL25ldHdvcmsgZmlsZQogICBGaXggcHJvdmlkZWQgYnkgSm9zaCBXaWxtZXMKCjIwMDgtMDUtMjMgMjA6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTY3MTk0OiBSZWNvZ25pc2UgTkZTNCBtb3VudHMKICAgU3VibWl0dGVkIGJ5IEZhYnJpY2UgQmFjY2hlbGxhCgoyMDA4LTA1LTIyIDIwOjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERvbid0IGNoYW5nZSBsZW5ndGggb2YgT0lEIGJ1ZmZlciBpZiBwYXJzaW5nIHRoZSBPSUQgZmFpbHMuCiAgIFJlcG9ydGVkIGJ5IHNhaWZ1bGxhIE1vaGQgQWJkdWwuCgoyMDA4LTA1LTIyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZSB0aGUgYWR2ZXJ0aXNpbmcgc2VjdGlvbiBhbmQgY2hhbmdlIG5vdGUgYWJvdXQgaG93IHRvCiAgIHVwbG9hZCBmaWxlcyAoYWRkaW5nIGFuIGF1dG9tYXR0ZWQgcnN5bmMgY29tbWFuZCkKCjIwMDgtMDUtMjIgMDQ6MDggIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZS4KCjIwMDgtMDUtMjEgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHRoZSBhbGlhcyBtb2R1bGUgd2l0aCBhIEMrKyBjb21waWxlci4KCjIwMDgtMDUtMjEgMTM6NDAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWRkZWQgRlNGIGRpcmVjdG9yeSBpbmZvCgoyMDA4LTA1LTIxIDA5OjIxICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgQWRkIEZyZWUgU29mdHdhcmUgRGlyZWN0b3J5IHRvIHRoZSBsaXN0IG9mIHBsYWNlcyB0byBiZSB1cGRhdGVkLgoKMjAwOC0wNS0yMCAyMzowMCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBUaGUgbWFqb3JpdHkgb2YgdGhlIGRlcGVuZGVuY2llcyBvbiB1dGlsX2Z1bmNzIGlzCiAgIGZvciB0aGUgaGVhZGVyXyogZnVuY3Rpb25zLiBGYWN0b3Igb3V0IHRoZSBoZWFkZXJfKiBmdW5jdGlvbnMgYW5kCiAgIGFkanVzdCB0aGUgcmVxdWlyZW1lbnRzLgoKMjAwOC0wNS0yMCAyMjo0MCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBEbyBub3QgY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcykgaWYgbm90aGluZyBmcm9tCiAgIHV0aWxfZnVuY3MgaXMgdXNlZAoKMjAwOC0wNS0xNCAxMzozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBmaXggYnVpbGQgZmFpbHVyZXMgd2l0aCBlYXJsaWVyIExpbnV4IGtlcm5lbHMgKGUuZy4gd2l0aCBSSDcuMSkKICAgaW50cm9kdWNlZCBieSByMTY5MDkKCjIwMDgtMDUtMTMgMTg6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggY29tbWVudCB0eXBvCgoyMDA4LTA1LTEzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgdGhlIC10IHN3aXRjaCBjaGFuZ2UKCjIwMDgtMDUtMTMgMTU6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGFsaWFzIGtleXdvcmQKCjIwMDgtMDUtMTMgMTU6NDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgYWxsb3cgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyB0byBiZSB1c2VkIGZvciB0aW1lb3V0IHZhbHVlcwoKMjAwOC0wNS0xMiAyMToxMSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmM6CgogICBBZGRlZCBhIHJlYWwgc25tcEFsaWFzRG9tYWluIE9JRCBkZWZpbml0aW9uCgoyMDA4LTA1LTEyIDIxOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlZCBORVdTIHdpdGggbmV3IGFsaWFzIGJsdXJiCgoyMDA4LTA1LTEyIDIxOjA3ICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQWxpYXNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogc25tcGxpYjogQWRkZWQgYSBhbGlhcyB0cmFuc3BvcnQgZm9yIG1hcHBpbmcgY29tcGxleAogICB0cmFuc3BvcnQgc3RyaW5ncyB0byBzaW1wbGUgbmFtZSBkZWZpbml0aW9ucwoKMjAwOC0wNS0xMiAxOTozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBzdHJpcCBvZmYgdHJhaWxpbmcgbW9kdWxlIG5hbWUKCjIwMDgtMDUtMTIgMDY6MDMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICBNYWtlIG1pYklJL3NubXAgd29yayBhZ2Fpbi4KCjIwMDgtMDUtMTAgMjE6NDcgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDgtMDUtMTAgMDk6NTUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBSZXBsYWNlIHRoZSBpbnZhbGlkICUwOHAgZm9ybWF0CiAgIHNwZWNpZmllciB3aXRoIHRoZSBjb3JyZWN0ICU4cC4KCjIwMDgtMDUtMTAgMDk6NTEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBuZXRzdGF0LCBzbm1wdHJhcGQsIHNubXBkZWx0YTogVXNlIE5VTEwKICAgaW5zdGVhZCBvZiAwIGZvciBOVUxMIHBvaW50ZXJzLiBVc2UgY2FzdGVkIDAncyBpbnN0ZWFkIG9mIDAgZm9yCiAgIE5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA4LTA1LTEwIDA5OjQwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoKMjAwOC0wNS0xMCAwOTozOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgaW5jbHVkZSBmaWxlcy4KCjIwMDgtMDUtMTAgMDk6MzMgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYiwgbWliMmM6IE1vdmUgdGhlIGRlZmluaXRpb24gb2YgaW5saW5lCiAgIGZ1bmN0aW9ucyBzbyB0aGF0IHRoZSBjb21waWxlciBzZWVzIHRoZW0gYmVmb3JlIGl0IHNlZXMgdXNlcyBvZgogICB0aGVtLgoKMjAwOC0wNS0xMCAwOTozMCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogUmVtb3ZlIHRoZSBpbmxpbmUgZGVjbGFyYXRpb25zIGZvcgogICBmdW5jdGlvbnMgdGhhdCBsYWNrIGFuIGlubGluZSBkZWZpbml0aW9uLgoKMjAwOC0wNS0wOSAyMTozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgIAogICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFVzZSBOVUxMIGluc3RlYWQgb2YgMCBmb3IgTlVMTCBwb2ludGVycy4KICAgVXNlIGNhc3RlZCAwJ3MgaW5zdGVhZCBvZiAwIGZvciBOVUxMIGZ1bmN0aW9uIHBvaW50ZXJzLgoKMjAwOC0wNS0wOSAyMToyNyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgIAogICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZwogICAoKV0uCgoyMDA4LTA1LTA5IDIxOjIzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYzoKCiAgIFJlbW92ZSBkZWFkIGNvZGUuCgoyMDA4LTA1LTA5IDE5OjE2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgTWlzc2luZyBNRDUgc2lnbmF0dXJlIGZpbGUgZm9yIHppcCByZWxlYXNlCgoyMDA4LTA1LTA5IDE5OjE1ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgQmFzaWMgZG9jdW1lbnRhdGlvbiBhbmQgaGVscC91c2FnZSBtZXNzYWdlcy4KCjIwMDgtMDUtMDggMTQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERyb3Agc3VwcG9ydCBmb3IgdGhlIGludGVyaW0gU0lPQ0RFVlBSSVZBVEUtYmFzZWQgaW9jdGwgY2FsbHMuCiAgIFNJT0NHTUlJUEhZL1NJT0NHTUlJUkVHIGhhdmUgYmVlbiBkZWZpbmVkIHNpbmNlIGF0IGxlYXN0IFNlcHQKICAgMjAwMSAoa2VybmVsIDIuNC4xMCksCiAgIHNvIHRoZSByaXNrIG9mIGNhbGxpbmcgYW4gaW5hcHByb3ByaWF0ZSBwcml2YXRlIGlvY3RsIGlzIHByb2JhYmx5CiAgIGdyZWF0ZXIgdGhhbgogICB0aGF0IG9mIG1pc3NpbmcgaW5mb3JtYXRpb24gZnJvbSBhbiBhbmNpZW50IHN5c3RlbS4KCjIwMDgtMDUtMDggMDk6MDIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvbid0IHRyeSB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbm9ueW1vdXMgdXNlcnMuCiAgIChBbiBpbnZhbGlkIHRyYXBzZXNzIGRpcmVjdGl2ZSBtYXkgY3Jhc2ggdGhlIGFnZW50KQoKMjAwOC0wNS0wNiAwODozOCAganNhZnJhbmVrCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gcmVtb3ZlICV7bGliY3VycmVudH0KICAgLSBhZGQgb3BlbnNzbC1kZXZlbCB0byBidWlsZCByZXF1aXJlbWVudHMKICAgLSBkb24ndCB1c2UgUHJvdmlkZXM6IHVubGVzcyBuZWNlc3NhcnksIGxldCBycG1idWlsZCBjb21wdXRlIHRoZQogICBwcm92aWRlZCBsaWJyYXJpZXMKICAgLSBkb24ndCBzcGVjaWZ5IFBSRUZJWCBmb3IgcGVybAoKMjAwOC0wNS0wNiAwODozOCAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHJldmVydGluZyBhY2NpZGVudGFseSBjb21taXRlZCBmaWxlcwoKMjAwOC0wNS0wNiAwODozNCAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gcmVtb3ZlICV7bGliY3VycmVudH0KICAgLSBhZGQgb3BlbnNzbC1kZXZlbCB0byBidWlsZCByZXF1aXJlbWVudHMKICAgLSBkb24ndCB1c2UgUHJvdmlkZXM6IHVubGVzcyBuZWNlc3NhcnksIGxldCBycG1idWlsZCBjb21wdXRlIHRoZQogICBwcm92aWRlZCBsaWJyYXJpZXMKICAgLSBkb24ndCBzcGVjaWZ5IFBSRUZJWCBmb3IgcGVybAoKMjAwOC0wNS0wNSAyMTo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBNZWNoYW5pc20gdG8gc2VsZWN0IHVwY29taW5nIG1vZHVsZSByZS13cml0ZXMgYW5kL29yCiAgIHJlY2VudGx5LWRlcHJlY2F0ZWQgbW9kdWxlcy4KCjIwMDgtMDUtMDIgMTA6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIEhhbmRsZSB1ZHBUYWJsZSBpbmRleGluZyBvbiBib3RoIFBQQyBhbmQgSW50ZWwgaGFyZHdhcmUuCgoyMDA4LTA0LTMwIDE5OjQ1ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgZ2VuZXJhdGlvbiBvZiBzdGF0aXN0aWNzCiAgIG9mIGhvdyBvZnRlbiBhIGNlcnRhaW4gZGVidWcgbG9nIGxldmVsIGlzIHRyaWdnZXJlZC4KCjIwMDgtMDQtMzAgMTk6NDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSB2YXJpYWJsZSBkZWJ1Z19udW1fZXhjbHVkZWQuCiAgIFRoZXJlIGlzIG5vdGhpbmcgdGhhdCBzZXRzIGRlYnVnX251bV9leGNsdWRlZCBhbmQgdGhlcmUgaXMgbm8gd2F5CiAgIHRvIGZvciBpdAogICB0byBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhbnkgZnVuY3Rpb24uCgoyMDA4LTA0LTMwIDA1OjI4ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFJlbW92ZSB1bm5jZXNzYXJ5IHByb3RvdHlwZXMKCjIwMDgtMDQtMjMgMTY6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWN0dWFsbHkgdXNlIHRoZSBicmFuY2ggcGF0aCwgZG9uJ3QganVzdCBzYXkgeW91J3JlIGdvaW5nIHRvCgoyMDA4LTA0LTE5IDIyOjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgZG9uJ3QgZGVwZW5kIG9uIE9JRCByZXNvbHV0aW9uIGZvciBkaXNtYW4gbGlua1VwRG93bk5vdGlmaWNhdGlvbnMKCjIwMDgtMDQtMDggMjA6NDMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgQWNjZXB0IHRoYXQgcGVvcGxlIHdpbGwgdHJ5IHRvIGNvbXBpbGUgdGhpcyBjb2RlIHdpdGggcHJlLUFOU0kKICAgY29tcGlsZXJzIGFuZCBjaGFuZ2UgaXQgdG8gaGFuZGxlIHRoYXQgY2FzZS4KCjIwMDgtMDQtMDggMjA6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBleHRyYSBicmFjZSBpbiB0aGUgZG9jcyBwb2ludGVkIG91dCBieQogICBKYXNvbiBNYXJ0aW4KCjIwMDgtMDQtMDggMjA6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlIGFuZCByZXN0cnVjdHVyZSBhIGJpdCB0byBmaXggYSBmZXcgcHJvYmxlbXMKCjIwMDgtMDQtMDcgMjA6MDYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFzIHRoZSBudWxsIGhhbmRsZXIgaXMgcGVyZmVjdGx5IGNhcGFibGUgb2YKICAgaGFuZGxpbmcgR0VUX0JVTEsgcmVxdWVzdHMgaXQgaXMgbm93IG1hcmtlZCBhcyBzdWNoIGluIHRoZQogICByZWdpc3RyYXRpb24uCgoyMDA4LTA0LTA3IDE0OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBbm90aGVyIG92ZXItc2hvcnQgREVTQ1JJUFRJT04gYnVmZmVyLgoKMjAwOC0wNC0wNyAxMzo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgSGFuZGxlIGxvbmdlciBERVNDUklQVElPTi9SRUZFUkVOQ0Ugc3RyaW5ncyBpbiBDYXBhYmlsaXRpZXMKICAgc3RhdGVtZW50cy4KICAgKENvbnNpc3RlbnQgcHJvY2Vzc2luZyB3aXRoIG90aGVyIE1JQiBkZWZpbml0aW9uIG1hY3JvcykuCiAgIEZpeCBwcm92aWRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDgtMDQtMDIgMTk6MzUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1lbnRpb24gbGliZWxmIHBhY2thZ2UgcmVuYW1lCgoyMDA4LTAzLTI5IDA5OjI5ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAKICAgICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgTkVXUzogc25tcGQ6IEVuYWJsZSBhdXRvbWF0aWMgcmVyZWdpc3RlcmluZyBvZiBzeXNPUlRhYmxlIGVudHJpZXMKICAgZnJvbSBBZ2VudFggc3ViYWdlbnRzLiBBZGQgdGhlIHN5c09SVGFibGUgaW50ZXJmYWNlIHRvIHRoZQogICBpbmNsdWRlIGRpcmVjdG9yeS4gUmV3cml0ZSB0aGUgc3lzT1JUYWJsZSBtb2R1bGUgdG8gdXNlIHRoZQogICB0YWJsZV9jb250YWluZXIgaGFuZGxlci4KCjIwMDgtMDMtMjcgMDM6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UsIGRpc3QvbmV0LXNubXAuc3BlYywgZGlzdC9wYXRtZToKCiAgIHVuY29tbWl0IDMgYWNjaWRlbnRhbCBtdWx0aXBsZSBmaWxlIGNvbW1pdHMKCjIwMDgtMDMtMjcgMDM6MTggIGhhcmRha2VyCgogICAqICBkaXN0L21ha2VyZWxlYXNlLCBkaXN0L21ha2VyZWxlYXNlLnhtbCwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBkaXN0L3BhdG1lOgoKICAgdmFyaW91cyByZXdvcmRpbmcsIHJlc3RydWN0dXJpbmcgYW5kIHByb3BlciBmaWxlIHJlcGxhY2VtZW50CiAgIHNjaGVtZQoKMjAwOC0wMy0yNiAwNzo1MiAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTkVXUzogc25tcGxpYjogZnJvbSAiQWxla3NhbmRyIExvbWFub3YiOiBDb3JyZWN0ZWQgcmVnaXN0ZXJpbmcgb2YKICAgbXVsdGlwbGUgcHJlbWliIGNvbmZpZyBoYW5kbGVycyBzbyB0aGF0IGFsbCBvZiB0aGVtIGdldAogICByZWdpc3RlcmVkIGFzIHByZW1pYiBoYW5kbGVycyBhcyBvcHBvc2VkIHRvIHRoZSBlYXJsaWVyIGJlaGF2aW91cgogICB3aGVyZSB0aGV5IGFsd2F5cyBnb3QgcmVnaXN0ZXJlZCBhcyBub3JtYWwgY29uZmlnIGl0ZW1zLgoKMjAwOC0wMy0yNiAwNzoxNiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBHZXQgdGhlIHRhYmxlX2NvbnRhaW5lciBkYXRhIGZyb20gdGhlIHJpZ2h0CiAgIGhhbmRsZXIgd2hlbiB1bnJlZ2lzdGVyaW5nIGEgdGFibGVfY29udGFpbmVyLgoKMjAwOC0wMy0yNSAwNjowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlbW92ZSBzcHVyaW91cyBwcmludGYgZnJvbSB1bnJlZ2lzdGVyX21pYl9jb250ZXh0CgoyMDA4LTAzLTI0IDE3OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE4NzQwNTksMTczNzA2ODogSGFuZGxlIE1JQiBvYmplY3RzIHdpdGgKICAgZW1iZWRkZWQgaHlwaGVucwoKMjAwOC0wMy0yNCAxNzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE4NjY2NTU6IEhhbmRsZSBwYXJzaW5nIGludmFsaWQgT0lECiAgIHN1YmlkZW50aWZpZXJzCgoyMDA4LTAzLTI0IDE2OjUzICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAxOTIxODYxOiBBdm9pZCBlbmRsZXNzIGxvb3AgYWZ0ZXIKICAgdHJ1bmNhdGluZyA2NGJpdCBpbnQKCjIwMDgtMDMtMjQgMTU6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgyMzM4MTogVmFsaWQgTUlCIGRpcmVjdG9yeSBzZWFyY2ggcGF0aCBvbgogICBXaW5kb3dzCgoyMDA4LTAzLTIyIDA4OjQyICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBzbm1wdHJhcGQgd2l0aG91dCBlbWJlZGRlZCBwZXJsIGFnYWluLgoKMjAwOC0wMy0yMSAxNzo1NSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmM6CgogICBORVdTOiBsaWJzbm1wOiBQQVRDSDogMTg5NTkyNzogZnJvbSBqaHVtODExMTogY2hhbmdlIG9ic29sZXRlCiAgIHJlY3Yvc2VuZCB0byByZWN2ZnJvbS9zZW5kdG8KCjIwMDgtMDMtMjEgMTc6NDkgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAxODYyMTc3OiBmcm9tIHdhZmZsZXNvdWZmbGU6IG1hZGUgY29kZQogICBtb3JlIHdpbmRvd3MvY3lnd2luIGNvbXBpbGVyIGZyaWVuZGwKCjIwMDgtMDMtMjEgMTc6NDUgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4Nzc4NDA6IGZpeCBNSUIgbGFiZWwgYW5kIGluZGV4aW5nIGR1ZQogICB0byBzbGlnaHRseSBicm9rZW4gcmVnZXhwCgoyMDA4LTAzLTIxIDE3OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTIwMzkwOiBmcm9tIHdpbG1lc2o6IGZpeCByZWdpc3RyYXRpb24gb2YKICAgdGFibGVzIHdpdGggLjAgYXMgSUlEcwoKMjAwOC0wMy0yMSAxNzozMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0NTogZnJvbSB3aWxtZXNqOiBiZXR0ZXIgZW5kIG9mIG1pYgogICBzdXBwb3J0CgoyMDA4LTAzLTIxIDE3OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MTQ2NDM6IGZyb20gd2lsbWVzajogZml4IGlzc3VlcyB3aXRoCiAgIGVtYmVkZGVkIHBlcmwgcmV0dXJuaW5nIDAgYmVpbmcgcmVjbGFzc2lmaWVkIGFzIGEgd3JvbmcgZGF0YSB0eXBlCiAgIHdoZW4gYW4gaW50IHdvcmtzLgoKMjAwOC0wMy0yMSAxNzoyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0ggMTkxNDM5ODogZnJvbSB3aWxtZXNqOiBpbnN0YWxsCiAgIG1pYjJjLnBlcmwuY29uZgoKMjAwOC0wMy0yMSAxNzowMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDM5MzogZnJvbSB3aWxtZXNqOiByZWdpc3RlckFnZW50IGNhbgogICBub3cgYmUgcnVuIG11bHRpcGxlIHRpbWVzCgoyMDA4LTAzLTIxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5MDk4MTM6IGZpeCB0YWJsZV9pdGVyYXRvciBoaW50IHRvIGdldF9maXJzdAogICB3aGVuIFNPUlRFRCBmbGFnIGlzIHNldAoKMjAwOC0wMy0yMSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IFBBVENIOiAxOTA4Mjg4OiBmcm9tIGFuZWRlbDogSWYgc25tcHRyYXBkIC1mCiAgIGludGVycnVwdGVkIHdpdGggY3RybC1DIHJ1biBwZXJsIEVORCBibG9jawoKMjAwOC0wMy0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE5MDIxMTM6IGZyb20ganNhZnJhbmVrOiBmaXggZXJyb3IgbG9nIGluCiAgIGluZXROZXRUb01lZGlhdGFibGUKCjIwMDgtMDMtMjEgMTY6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE5MDIxMDU6IGZyb20ganNhZnJhbmVrOiBoaWRlIGFuZCBpbXByb3ZlIGRlYnVnCiAgIGxvZyBtZXNzYWdlcyBjcmVhdGVkIGJ5IHBhdGNoIDE3MDU1OTQKCjIwMDgtMDMtMDcgMTU6NDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmg6CgogICBIQUwtYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGhyRlNUYWJsZS4KCjIwMDgtMDMtMDcgMTU6NDAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW91bnRzLmg6CgogICBJbml0aWFsIEhBTCBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uCgoyMDA4LTAzLTA3IDE1OjM1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBnZXR2ZnNzdGF0KCkKCjIwMDgtMDMtMDcgMTU6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgyMzM4MTogVXNlIGEgc2Vuc2libGUgZGVmYXVsdCBNSUJESVIgcGF0aAogICBvbiBDeWd3aW4vTWluR1cKICAgKFNob3VsZCB0aGlzIGJlIGFwcGxpZWQgdG8gb3RoZXIgYnJhbmNoZXM/IElmIHNvLCB3aGljaD8pCgoyMDA4LTAyLTI3IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgRml4IEMrKyBzdHlsZSBjb21tZW50CgoyMDA4LTAyLTI3IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFRoZSBMVk0gZGlzayBwYXRjaCBpbnRyb2R1Y2VkIGEgbWVtb3J5IGxlYWsuIFRoaXMgcmVtb3ZlcyB0aGUKICAgbGVhay4KCjIwMDgtMDItMjYgMjM6MjcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWFrZSB0aGUgc2NyaXB0IG1vcmUgaGllcmFyY2hpYWwvc3RydWN0dXJlZAoKMjAwOC0wMi0yNiAyMTozNiAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgQ0hBTkdFUzogSW5pdGFsaXplIGxvZyBzdWJzeXN0ZW0KCjIwMDgtMDItMjYgMjE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBGaXggZm9yIHJlZnMgdG8gT0JKRUNULUdST1VQIGluIGFub3RoZXIgTUlCCgoyMDA4LTAyLTI2IDIxOjIzICBuYmEKCiAgICogIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgICAKICAgICAgbWlicy9JUC1GT1JXQVJELU1JQi50eHQsIG1pYnMvSVAtTUlCLnR4dCwgICAKICAgICAgbWlicy9JUFY2LUZMT1ctTEFCRUwtTUlCLnR4dCwgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsICAgCiAgICAgIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIG1pYnMvU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0LCAgIAogICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gYXV0b2V4dHJhY3RlZCBtaWIgZmlsZXMgKGJsYW5rIGxpbmUgY2hhbm1nZXMpCgoyMDA4LTAyLTI2IDIwOjQ2ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudGx5IHJlbGVhc2VkIFJGQyBNSUJTCgoyMDA4LTAyLTI2IDIwOjQ1ICBuYmEKCiAgICogIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0LCBtaWJzL0lBTkEtUlRQUk9UTy1NSUIudHh0LCAgIAogICAgICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBJQU5BIE1JQlMgdG8gY3VycmVudCB2ZXJzaW9uCgoyMDA4LTAyLTI1IDIyOjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGFkZCBtaXNzaW5nICNpbmNsdWRlPHB0aHJlYWQuaD4gZm9yIHB0aHJlYWRfbXV0ZXhfdAoKMjAwOC0wMi0yNSAyMjowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYzoKCiAgIGEgYmV0dGVyIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0yMyAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnN0YW50cy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MDU1OTQ6IGZyb20gY192YXJ1bjogRml4IHZhcmlvdXMgYXNwZWN0cyBvZgogICBsaW51eCBpcEFkZHJlc3NQcmVmaXhUYWJsZSByZXBvcnRpbmcuCgoyMDA4LTAyLTIyIDIzOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4OTYxMTg6IHBhdGNoIGZyb20ganNhZnJhbmVrOiBmaXggaWZUYWJsZQogICAzMmJpdCBjb3VudGVycyBvbiBsaW51eAoKMjAwOC0wMi0yMiAyMzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIHBhdGNoIGZyb20ganNhZnJhbmVrOiBDcmVhdGUgaXB2NlNjb3BlWm9uZUVudHJ5IG9ubHkgZm9yCiAgIGxpbmstbG9jYWwgYWRkcmVzc2VzIGFuZCBvbmx5IG9uY2UgcGVyIGludGVyZmFjZS4KCjIwMDgtMDItMjIgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODk4MjA0OiBmcm9tIE1pa2UgV2VzY290dDogZml4IGJ1ZwogICAxODk4MTk4IGluIHBhcnNlLmMgdG8gYXZvaWQgYSBzZWdmYXVsdCB3aGVuIHBhcnNpbmcgYnJva2VuIG1pYnMuCgoyMDA4LTAyLTE4IDEyOjExICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIENsYXJpZnkgdGhlIG5lZWQgdG8gcmVzZXQgYnVmZmVyIGxlbmd0aCB3aGVuIGNhbGxpbmcgJ3JlYWRfb2JqaWQnCiAgIHJlcGVhdGVkbHkuCgoyMDA4LTAyLTE4IDEwOjMyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE4IDA3OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgbWFrZSBzdXJlIHRoYXQgbmV0c25tcF9pcXVlcnlfdXNlcl9zZXNzaW9uIGV0IGFsLiBhcmUgcHJvcGVybHkKICAgZGVjbGFyZWQKCjIwMDgtMDItMTcgMTg6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA4LTAyLTE3IDA4OjM4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTUgMTc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGxvd2VyZWQgZmFpbHVyZSBtZXNzYWdlIHRvIGluc2VydCB0byBkZWJ1ZzsgcmVtb3ZlZCBDVlMgSUQgZnJvbQogICB0b3Agb2YgbGluZQoKMjAwOC0wMi0xNSAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgZG9uJ3QgaW5zZXJ0IGVtcHR5IGVudHJpZXMKCjIwMDgtMDItMTUgMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIHBhdGNoIGZyb20ganNhZnJhbmUgb24gaXJjOiBtYWtlIGlwdjYgZW50cmllcyB3b3JrIG9uIDY0IGJpdAogICBtYWNoaW5lcwoKMjAwOC0wMi0xNSAxNjoyNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBwYXNzIDEgYXQgYSBuZXcgbWFrZXJlbGVhc2Ugc2NyaXB0OyBjdXJyZW50bHkganVzdCBjb252ZXJ0ZWQgY29kZQogICBtb3N0bHkKCjIwMDgtMDItMTUgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgcmVtb3ZlIGxpbnV4IGNoZWNrcwoKMjAwOC0wMi0xNSAxNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gUkRBX1JUQQoKMjAwOC0wMi0xNSAxNTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgZG9uJ3QgY29tcGlsZSBpbiB0aGUgaXB2NiBjb2RlIGlmIE5EQV9SVEEgaXNuJ3QgZGVmaW5lZAoKMjAwOC0wMi0xNSAxMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE1IDA2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBtaW5vciBidWcgdXBkYXRlIGZyb20gY192YXJ1bgoKMjAwOC0wMi0xNSAwNToxMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcwNDEwNTogZnJvbSBjX3ZhcnVuOiBBZGQgSVB2NiBzdXBwb3J0IHRvCiAgIHRoZSBpbmV0TmV0VG9NZWRpYVRhYmxlIGZvciBsaW51eAoKMjAwOC0wMi0xNSAwNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICByZXF1aXJlIG5ldyBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSB0YWJsZQoKMjAwOC0wMi0xNSAwNTowMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfb2lkcy5oLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3Njb3Blem9uZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzE1NDA1OiBmcm9tIGNfdmFydW46IEltcGxlbWVudCB0aGUKICAgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUgb24gbGludXgKCjIwMDgtMDItMTUgMDQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MTY1NDg6IGZyb20gbXlhbWF0bzogRml4IGhlbHAgb3V0cHV0IHNvCiAgIG5vIHNwYWNlIGlzIHByaW50ZWQgYmV0d2VlbiAtRCBhbmQgYXJndW1lbnRzLgoKMjAwOC0wMi0xNSAwNDoyNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24uaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzIzNjExOiBmcm9tIEVtaSBZYW5hZ2k6IE5ldyBpbXBsZW1lbnRhdGlvbgogICBvZiB0aGUgcm1vbiBhbGFybVRhYmxlCgoyMDA4LTAyLTE1IDAzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODkzNDY4OiBmcm9tIGdrb2VuaWc6IGZpeGVkIHJlZ2lzdHJhdGlvbiBvZgogICBPSURzIHdpdGggcmFuZ2VzCgoyMDA4LTAyLTE0IDIxOjQwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgZGVjbGFyYXRpb24gKHVuYnJlYWtzIHRoZSBidWlsZCBvbiBhIGZldwogICBzeXN0ZW1zKQoKMjAwOC0wMi0xNCAwMDoyOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlIGZvciBzcGFydGEKCjIwMDgtMDItMTMgMjM6MzcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSBDT05UQUlORVJfSU5TRVJUIHRvIG5vdCBkbyBwYXJ0aWFsIGluc2VydHMKICAgaW4gY29udGFpbmVycyB3aXRoIG11bHRpcGxlIGluZGljZXMgd2hlbiBvbmUgaW5zZXJ0IGZhaWxzLgoKMjAwOC0wMi0xMyAyMzoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCB0aGUgY3JlYXRlVXNlciBsaW5lIHRvIHNwZWNpZnkgdGhlIC1lIGZsYWcgKHJlc3BvbmRpbmcgdG8gYQogICBjb21wbGFpbnQgYWJvdXQgaXQgYmUgbWlzc2luZykKCjIwMDgtMDItMTMgMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzc5NTU4OiBmcm9tIGJydW1iczogSW1wbGVtZW50IHRoZQogICBkaXNrSU9MQTEsNSwxMCBvYmplY3Rpb25zIGluIHRoZSBkaXNraW8tbWliIHVuZGVyIGxpbnV4CgoyMDA4LTAyLTEzIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzgzNzMzOiBQdXQgdGhlIHBhY2thZ2UgdmVyc2lvbiBudW1iZXIKICAgaW50byB0aGUgaHJTV0luc3QgdGFibGUgZm9yIHNvbGFyaXMuCgoyMDA4LTAyLTEzIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODM0MjM6IGZyb20ganNhZnJhbmVrOiByZXR1cm4gYSBjb3JyZWN0CiAgIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyIG9mIGxvb3BiYWNrIG9uIGxpbnV4CgoyMDA4LTAyLTEzIDE2OjEyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzg0NzQ3OiBmcm9tIGpzYWZyYW5lazogRml4IGxvbmcgdXNhZ2UKICAgZm9yIGlwIGFkcmVzc2VzIG9uIDY0IGJpdCBzeXN0ZW1zIGluIHZhcmlvdXMgTUlCLUlJIHRhYmxlcy4KCjIwMDgtMDItMTMgMTY6MDcgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODA2NTAxOiBmcm9tIGptYWdkZXI6IEFkZCBhIHNubXBfdjN0cmFwCiAgIGZ1bmN0aW9uIGZvciBzZW5kaW5nIHRyYXBzIHdpdGggYSBzbm1wdjMgY29udGV4dAoKMjAwOC0wMi0xMyAxNjowMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MjYxMDI6IGZyb20ganNhZnJhbmVrOiBzdXBwb3J0IGxvbmdlcgogICBpbnRlcmZhY2UgbmFtZXMgb24gbGludXgKCjIwMDgtMDItMTIgMjM6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTgwNzQ4OTogZml4IGlnbm9yaW5nIG9mIGRpc3BsYXkgaGludHMuCgoyMDA4LTAyLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAKCjIwMDgtMDItMTIgMjM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAxODIzNDY1IGZyb20ganNhZnJhbmVrOiBmaXggaWNtcCBjYWNoZQogICByZWdpc3RyYXRpb24KCjIwMDgtMDItMTIgMjI6MTYgIGhhcmRha2VyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTgyODYwMjogZnJvbSB0Z29oYWQ6IFN1cHBvcnQgaXBEZWZhdWx0VFRMCiAgIGFuZCBpcEZvcndhcmRpbmcgU0VUcyBvbiBsaW51eAoKMjAwOC0wMi0xMiAyMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NjY4MjM6IGZyb20ganNhZnJhbmVrOiB0cnVuY2F0ZSAzMiBiaXQKICAgY291bnRlciB2YWx1ZXMgb24gNjQgYml0IG1hY2hpbmVzIHRvIGF2b2lkIGJvZ3VzIHdhcm5pbmdzLgoKMjAwOC0wMi0xMiAxOTowNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODQ5OTAzOiBmcm9tIGpzYWZyYW5lazogZG8gbm90IHNwYW0gbG9nCiAgIHdpdGggYXNzZXJ0cyB3aGVuIFhFTiBpcyB1c2VkCgoyMDA4LTAyLTEyIDE4OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTg3NTAyMjogZnJvbSBzZW1fcHJnOiBpbXByb3ZlIGNhbGxiYWNrCiAgIGxvY2tpbmcgbWVjaGFuaXNtcwoKMjAwOC0wMi0xMiAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NzkyNjE6IGZyb20gYW1lc2J1cnk6IEFkZCBpbiBpbmFjdGl2ZQogICBtZW1vcnkgdG8gdGhlIGNhY2hlZCByZXBvcnQgZm9yIGZyZWVic2QKCjIwMDgtMDItMTIgMTU6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIE5FV1M6IGxpYnNubXA6IFBhdGNoOiAxODgyMDY5OiBmcm9tIG5zY2hyZW5rOiBBZGQgYSBleGFjdEVuZ2luZUlECiAgIHRva2VuIGZvciBzcGVjaWZ5aW5nIGFuIGV4YWN0IFNOTVB2MyBlbmdpbmVJRCB0byB1c2UKCjIwMDgtMDItMTIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgbWlub3IgY2xlYW51cHMgZnJvbSByZXZpZXdpbmcgcGFydHMgb2YgdGhlIGNvZGUKCjIwMDgtMDItMTIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODgyNjIxOiBmcm9tIGpzYWZyYW5lazogQWRkIExWTSBzdXBwb3J0IHRvCiAgIHRoZSBwYXJ0aXRpb24gdGFibGUKCjIwMDgtMDItMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHF1b3RlZCBzdHJpbmdzIGluIGhlbHAgb3V0cHV0CgoyMDA4LTAxLTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZGVkIHZhY21fY29uZiB0byBleGlzdGluZyBjb25maWd1cmUgZmlsZXMgKGZvciB0cmFwZCB0b28pCgoyMDA4LTAxLTIwIDA3OjU1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTg3MjI2NjogUEVSTENDIGNoZWNrIGZhaWxzIGZvciBDQyB3aXRoCiAgIG9wdGlvbnMKCjIwMDgtMDEtMTcgMDE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgZml4IGRlZmF1bHQgbWlicyB0byBpbmNsdWRlIHZhY21fY29uZiB0b28KCjIwMDgtMDEtMTcgMDA6MDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjA4ODogZnJvbSBKYW4gU2FmcmFuZWs6IFVzZSB0aGUgcmlnaHQKICAgaW50ZXJmYWNlIHQgcmVhZCB0aGUgbmV0bWFzawoKMjAwOC0wMS0xNiAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogSGFuZGxlIGRldmljZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcyBpbgogICBVQ0QtU05NUC1NSUI6OmRza0RldmljZQoKMjAwOC0wMS0xNiAwMDo0NyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI4ODM5OiBmcm9tIGpzYWZyYW5layB0byBwcm92aWRlIGJldHRlcgogICBoYW5kbGluZyBvZiBkaXNrcyBtb3VudGVkIG9uIHBhdGhzIHdpdGggZW1iZWRkZWQgc3BhY2VzCgoyMDA4LTAxLTE1IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAyMDU6IGRvdWJsZSBjaGVjayBwb2ludGVyIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDgtMDEtMTQgMjM6NTUgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5oOgoKICAgVXBkYXRlIHRoZSBzbm1wIGFuZCBzeXN0ZW0gbWlicyB0byBiZSBoYW5kbGVyIGJhc2VkCgoyMDA4LTAxLTEzIDAwOjAwICBtYWdmcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TLCAgCiAgICAgICBkb3h5Z2VuLmNvbmYsIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGwsIHNlZHNjcmlwdC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIExlc3NlbiB0aGUgbnVtYmVyIG9mIHBsYWNlcyB0aGF0IG5lZWQgdG8gYmUgY2hhbmdlZCBpbiBvcmRlciB0bwogICBkbyBhIHJlbGVhc2UuCiAgIENoYW5nZSB0byB1c2UgdGhlIGNvbmZpZ3VyZSB2ZXJzaW9uIG51bWJlciBhcyB0aGUgcGFja2FnZSB2ZXJzaW9uCiAgIG51bWJlci4KCjIwMDgtMDEtMDkgMjE6NTggIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgRGVsZXRlIHVudXNlZCBzdGF0aWMgZnVuY3Rpb25zCgoyMDA4LTAxLTA2IDEzOjAxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIGVycm9yX3N0cmluZyBwcml2YXRlIGFuZCByZWFkb25seQoKMjAwNy0xMi0yMiAxOToyMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE4MjYxNzQ6IENoZWNrIGZvciBidWZmZXIgb3ZlcmZsb3cgd2hlbgogICBwcmludGluZyB2YWx1ZXMuCgoyMDA3LTEyLTIxIDIzOjE5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTc0NzczMzogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgdW5kZWZpbmVkCiAgIHZhbHVlcy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWF0dGkgTGlubmFudnVvcmkKCjIwMDctMTItMjEgMjE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzQ4MjA2OiBQcm90ZWN0IGFnYWluc3QgZmFpbHVyZXMgdG8gb3BlbgogICAvZXRjL210YWIgKG9yIGVxdWl2KQoKMjAwNy0xMi0yMSAxODo0MiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQnJpbmcgb3JkZXIgb2YgYWdlbnQgbGlicmFyeSBsaW5raW5nIGludG8gbGluZSB3aXRoIGFnZW50CiAgIE1ha2VmaWxlLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFN0ZXZlIE1jQ2FydGh5LgogICBRbjogU2hvdWxkIDUuMi54IGFuZCA1LjMueCBhbHNvIHVzZSB0aGUgc2FtZSBvcmRlcj8KICAgKGZvciBib3RoIGFnZW50IE1ha2VmaWxlIGFuZCBuZXQtc25tcC1jb25maWcpCgoyMDA3LTEyLTIxIDEzOjExICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4MDI4MzM6IEVuc3VyZSBzbm1wdHJhcGQgYnVpbGRzIHdpdGgKICAgLS1kaXNhYmxlLXNubXB2MS8yYwoKMjAwNy0xMi0yMCAxNjoyNiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE4MzQ1Mzk6IENvbnNpc3RlbnQgaGFuZGxpbmcgb2YgT0lEIHBhcnNpbmcuCiAgIEFwcGxpZXMgcGF0Y2ggIzE4MzQ5ODMsIHByb3ZpZGVkIGJ5IERtaXRyeSBLYXJhc2lrCgoyMDA3LTEyLTIwIDE2OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3JlIGludGVybmFsIHF1ZXJ5IGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTEyLTIwIDE0OjIwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE4MjIzNjA6IEZpeCBzcGlubG9jayBoZWxwZXIgZXJyb3IgaGFuZGxpbmcuCgoyMDA3LTEyLTIwIDE0OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTc5NTg0MDogU2lnbmVkIDMyLWJpdCB0cnVuY2F0aW9uIGxvZ2dlZAogICBhcyBkZWJ1ZyBtZXNzYWdlIHJhdGhlciB0aGVuIGVycm9yLgoKMjAwNy0xMi0yMCAxNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzkyODkwOiBpbmNsdWRlIENJRlMgbW91bnRzIHdoZW4gc2tpcHBpbmcKICAgcmVtb3RlIGZpbGVzeXN0ZW1zCgoyMDA3LTEyLTIwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzcxMjIxOiBSZXRhaW4gaWZMYXN0Q2hhbmdlIGluZm9ybWF0aW9uIG9uCiAgIGRhdGEgcmVsb2FkLgoKMjAwNy0xMi0yMCAxNDowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc1ODIxMjogSGFuZGxpbmcgbWlzc2luZyB2YXJpYWJsZSB0eXBlcwogICAoSXBBZGRyZXNzLENvdW50ZXIsT3BhcXVlKQoKMjAwNy0xMi0xOSAyMjozOSAgbWFnZnIKCiAgICogIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ29ycmVjdCBkb3h5Z2VuIHdhcm5pbmdzCgoyMDA3LTEyLTE5IDIyOjMxICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFVzZSBORVRTTk1QXy1wcmVmaXhlZCBzeW1ib2xzIHdoZW4gZGVjaWRpbmcgd2hhdCB0ZXN0cyB0byBydW4gYXMKICAgdGhlIGNvbXBhdCBzeW1ib2xzIGFyZW4ndCBkZWZpbmVkLgoKMjAwNy0xMi0xOSAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQlVHIDE4MzE1Njg6IHN0cmR1cCBtaWdodCBmYWlsIGFuZCByZXR1cm4gTlVMTCAtIHRha2UgY2FyZSBvZiBpdAogICBpbiB0aGlzIGNhc2UgYXQgbGVhc3QuCgoyMDA3LTEyLTE5IDIxOjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQlVHIDE4MjQ4ODM6IFJlbW92ZSBtZW1vcnkgbGVhawoKMjAwNy0xMi0xOSAyMDo0NiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBCVUc6IDE4NTEwNDc6IERvIG5vdCB0cnkgdG8gZG8gbW9yZSBoYW5kbGluZyBvZiBhIHZhbHVlCiAgIG9uY2UgaXQgaXMgZm91bmQgdG8gYmUgY29ycnVwdCBieSB0aGUgd2F0Y2hlciBoZWxwZXIsIHRodXMKICAgYXZvaWRpbmcgY29kZSB0aGF0IGNvdW50cyBvbiBnZXR0aW5nIHRoZSByaWdodCB0eXBlLiBUaGlzIGJ1ZyB3YXMKICAgZm91bmQgYnkgQ2hhcmxpZSBNaWxsZXIsIEluZGVwZW5kZW50IFNlY3VyaXR5IEV2YWx1YXRvcnMuCgoyMDA3LTExLTI3IDA5OjU2ICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgQ2xhcmlmeSB1c2Ugb2YgdGhlIC1BIChsb2cgYXBwZW5kKSBvcHRpb24uCgoyMDA3LTExLTIyIDE1OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBjaGVjayByZXF1ZXN0LCBub3QgcmVxdWVzdHMuIHJlcG9ydGVkIGJ5IHVsaW0gb24gaXJjCgoyMDA3LTExLTIyIDE1OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICBjaGVjayByZXF1ZXN0LCBub3QgcmVxdWVzdHMuIHJlcG9ydGVkIGJ5IHVsaW0gb24gaXJjCgoyMDA3LTExLTE5IDIxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxODM0Njk5OiBmcm9tIGFwZXJzc29uOiBGaXggMTgzMzI5NDoKICAgRExQSSBwcm9ibGVtcyBvbiBTb2xhcmlzIDIuNgoKMjAwNy0xMS0xNyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBVc2UgdGhlIHdvcmtlciBoZWxwZXJzIGZyb20gdGhlCiAgIHJlZ2lzdGVyXypfaW5zdGFuY2UgaGVscGVycyBhbmQgc2NoZWR1bGUgdGhlIGluc3RhbmNlIGhlbHBlcnMgZm9yCiAgIHJlbW92YWwgaW4gNS42CgoyMDA3LTExLTE0IDEyOjIxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuaDoKCiAgIFN1cHBvcnQgdjMgbG1zZW5zb3JzIEFQSS4KCjIwMDctMTEtMTQgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgRml4IG1pc2xlYWRpbmcgZGVidWcgb3V0cHV0IG1lc3NhZ2UuCgoyMDA3LTExLTEzIDEzOjU5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9kdW1teV9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvc2Vuc29ycy5oOgoKICAgUHJlbGltaW5hcnkgcmUtd29ya2luZyBvZiB0aGUgTE0tU0VOU09SUy1NSUIsIHRvIHNlcGFyYXRlIG91dAogICB0aGUgc2Vuc29yIGhhcmR3YXJlIHByb2Nlc3NpbmcgZnJvbSB0aGUgTUlCIHRhYmxlcyB0aGVtc2VsdmVzLgoKMjAwNy0xMS0wOCAyMzoxNyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MjQxOTY6IHtpZk9wZXJTdGF0dXMsaXBBZEVudElmSW5kZXh9CiAgIHJlcG9ydGVkIGluY29ycmVjdGx5CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEFuZGVycyBQZXJzc29uLiBGaXhlcyBCdWdzIDE4MjIyNzUgYW5kIDE4MTkxODkuCgoyMDA3LTEwLTI2IDIxOjIyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBORVdTOiBzbm1wZDogQWRkZWQgc3VwcG9ydCBmb3IgYSB1c2VyIHByb3ZpZGVkIGxlbmd0aCB2YXJpYWJsZQogICBhbmQgQyBzdHJpbmcgdmFsdWVzIHRvIHRoZSB3YXRjaGVyIGhlbHBlci4KCjIwMDctMTAtMTYgMjI6MzkgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFVzZSAlcCB0byBwcmludCBwb2ludGVycy4gRG8gbm90IHVzZSAlcCB0byBwcmludCBudW1iZXJzLgoKMjAwNy0xMC0xNiAwNzozMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWFrZSB0aGUgbGlicmFyeSBidWlsZGFibGUgYXMgQyBhZ2Fpbi4KCjIwMDctMTAtMTYgMDc6MTcgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogbWlzYzogYXZvaWQgY2FsbGluZyBkZWJ1ZyBtYWNyb3Mgd2l0aCB0b28gbWFueQogICBhcmd1bWVudHMuCgoyMDA3LTEwLTE2IDA2OjE4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfc2VydmljZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBNYWtlIHRoZSBsaWJyYXJ5IGJ1aWxkYWJsZSBhcyBDKysgYWdhaW4uCgoyMDA3LTEwLTE1IDIwOjUyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBkZWNsYXJlIG5ldHNubXBfYmluYXJ5X2FycmF5X29wdGlvbnNfc2V0OyBpbmNsdWRlIGhlYWRlciBmb3IgaXQKICAgYXMgbmVlZGVkCgoyMDA3LTEwLTE1IDIwOjM5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmM6CgogICBDb252ZXJ0IGFuIGluZmluaXRlIGxvb3AgdG8gYSBmaW5pdGUgb25lLgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAwNy0xMC0xNCAyMjoxMCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CgogICBDSEFOR0VTOiBtaXNjOiBBdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzLgoKMjAwNy0xMC0xNCAyMDo1MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTgxMTQ2OTogcmVhZF9jb25maWdfZmlsZXNfaW5fcGF0aCgpCiAgIHJlYWRzIHBhc3QgbWFsbG9jJ2QgYnVmZmVyCgoyMDA3LTEwLTE0IDIwOjQxICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE4MTE0NjM6IHBlcmwgYXN5bmMgY2FsbGJhY2sgY29yZWR1bXAKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNjA2MDYyOiBwZXJsIGJ1bGt3YWxrIChhc3luYykgY29yZWR1bXAKCjIwMDctMTAtMTQgMTk6MDcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODA2MzM2OiBmaXggLUxTIG9wdGlvbiBwYXJzaW5nCgoyMDA3LTEwLTE0IDEyOjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggY29tbWVudAoKMjAwNy0xMC0xMyAyMzoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIENIQU5HRVM6IHRlc3Q6IGVuaGFuY2Ugc25tcG5ldHN0YXQgdGVzdCB0byBjaGVjayB0Y3BUYWJsZSBpbiBUQ1AKICAgbW9kZQoKMjAwNy0xMC0xMyAyMjoyOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxODEwODE0OiB0Y3BUYWJsZSBtaXNzaW5nIGVudHJpZXMgYW5kCiAgIHdyb25nIHBvcnRzCgoyMDA3LTEwLTEyIDIxOjQ2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENIQU5HRVM6IFNvbGFyaXM6ICNkZWZpbmUgTkVXX01JQl9DT01QTElBTlQgdG8gc3VwcG9ydCBTb2xhcmlzCiAgIDEwVTQrCgoyMDA3LTEwLTExIDIwOjQ2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBsZWFrIG1lbW9yeSB3aGVuZXZlciBhbiB1ZHAgYWRkcmVzcyBpcwogICBmb3JtYXR0ZWQuCgoyMDA3LTEwLTAzIDAxOjAyICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9SRUFETUUudHh0LCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9BZGQyUGF0aC5uc2ksICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIC1GaXggZm9yIGJ1ZyAxNzY4Nzk3LiBOU0lTIEluc3RhbGxlciBzY3JpcHQgbm93IHdhcm5zIHRoZSB1c2VyIGlmCiAgIHRoZSBQQVRICiAgIGlzID4gMTAyNCBhcyBOU0lTIGNhbiBub3QgaGFuZGxlIHZhcmlhYmxlcyBsYXJnZXIgdGhhbiAxMDI0LgogICAtVXBkYXRlcyB0byBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDA3LTA5LTMwIDIwOjU5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIENIQU5HRVM6IEJVRzogMTgwMTgzNTogQWRkZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBtdWx0aXBsZSBkZWZhdWx0CiAgIHRyYW5zcG9ydHMgZm9yIGFuIGFwcGxpY2F0aW9uLiBPbiBvcGVuIHRoZSBkaWZmZXJlbnQgdHJhbnNwb3J0cwogICB3aWxsIGJlIHRyaWVkIGluIG9yZGVyLiBBcyBhIGNvbnNlcXVlbmNlIHNubXAgYW5kIHNubXB0cmFwIG5vdwogICB3aWxsIHRyeSBmaXJzdCB1ZHAgYW5kIHRoZW4gdWRwNiBhbmQgYWdlbnR4IHdpbCB0cnkgZmlyc3QgdW5peAogICBhbmQgdGhlbiB0Y3AuCgoyMDA3LTA5LTI5IDEzOjEwICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgdHJ5IHRvIGxvb2sgdXAgZW1wdHkgc3RyaW5ncyBhcwogICBob3N0bmFtZXMgZm9yIElQdjYKICAgQWRkaXRpbmFsbHksIHByaW50IHdoYXQgc3RyaW5nIGZpbGVkIHRvIHJlc29sdmUgdXNpbmcgZ2V0YWRkcmluZm8KICAgZm9yIElQdjYKCjIwMDctMDktMjkgMDY6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MDQ0NDU6IGZyb20gYXBlcnNzb246IEhpZ2ggb3JkZXIgYml0cyBvZgogICBIQ0luT2N0ZXRzIG5vdCBzZXQgb24gU29sYXJpcwoKMjAwNy0wOS0yNCAyMDo0MyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCgoyMDA3LTA5LTIzIDA2OjAzICB0YW5kZXJzCgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBmaXggI2VsaWYKCjIwMDctMDktMjEgMjI6MDQgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYXR0ZW1wdCB0byBmaXggYnVpbGQgZm9yIFNvbGFyaXMvQUlYL0hQLVVYCiAgIGJyb2tlbiBieSByMTY2ODQKCjIwMDctMDktMjAgMjE6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ2ODMxOiBmcm9tIGN1bm5pamQ6IGZpeCBwcm9jZXNzCiAgIGNoZWNraW5nIHJhY2UKICAgY29uZGl0aW9uIHVuZGVyIExpbnV4IGFuZCBwbGF0Zm9ybSAjaWZkZWZzCgoyMDA3LTA5LTE5IDIxOjA5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiBDb3Zlcml0eSAjMTgzOiBmaXggbWVtb3J5IGxlYWsgaWYKICAgSVBfUEtUSU5GTyBmYWlscwoKMjAwNy0wOS0xOSAxOTo1NyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIEZpeCBtaXNudW1iZXJpbmdzIG9mIHN0ZXBzLgogICBJdCBpcyAqc28qIGRpZmZpY3VsdCB0byBmaW5kIHByb3Blcmx5IG51bWVyYXRlIHN0YWZmIHRoZXNlCiAgIGRheXMuLi4uCgoyMDA3LTA5LTE2IDA5OjUxICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBSZW1vdmUgYmFzaGlzbXMuIFRoaXMgaXMgbmV0YnNkIHBhdGNoLWV0IGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA5OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgVXNlIGNvbnN0IGNoYXIqIGZvciB0ZW1wb3JhcnkgY29uc3RhbnQgc3RyaW5nIHZhcmlhYmxlLiBUaGlzIGlzCiAgIG5ldGJzZCBwYXRjaC1lYSBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwOTo0MCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIHRoZSBuYXR1cmFsIHR5cGUgb2YgaW5fYWRkcl90J3MgZm9yIGNvbXBhcmlzaW9ucy4gVGhpcyBpcwogICBuZXRic2QgcGF0Y2gtZWEgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDc6MDYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENIQU5HRVM6IEJVRzogMTc5MzU0NTogVGFrZSB0aGUgbmFtZSBmcm9tIHRoZSBzb2NrYWRkcl91biBpbgogICBvcmRlciB0byBhdm9pZCB0cmFuc3BvcnQgc3BlY2lmaWVycyBhbmQgb3RoZXIgZGVjb3JhdGlvbnMuCgoyMDA3LTA5LTE0IDEzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGhlYWRlciBmb3Igc3dydW4gcmV3cml0ZQoKMjAwNy0wOS0xNCAxMzoxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBhZGQgdXRpbGl0eSBtYWNybwogICAtIGFjdGl2YXRlIG5ldyBob3N0IHJlc291cmNlIHJld3JpdGVzCgoyMDA3LTA5LTE0IDEzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGNvbmZpZ19yZXF1aXJlIGZvciBuZXcgcmV3cml0ZXMsIGlmIGVuYWJsZWQKCjIwMDctMDktMTQgMTM6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZC9maXggZGlzay9wYXJ0aXRpb24gdGFibGVzIG9uIGRhcndpbgoKMjAwNy0wOS0xNCAxMzowOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBhZGQgaHJTV0luc3RhbGxlZFRhYmxlIGZvciBkYXJ3aW4KCjIwMDctMDktMTQgMDg6NDQgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBQcm90ZWN0IGFnYWluc3QgdW5leHBlY3RlZCBjb21tYW5kIGFyZ3VtZW50cy4KCjIwMDctMDktMTQgMDg6MDAgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBEb2N1bWVudCB1c2Ugb2YgInN2biBleHBvcnQiIHJhdGhlciB0aGFuICJzdm4gY2hlY2tvdXQiLgogICBDb3ZlciBnZW5lcmF0aW9uIG9mIHRoZSB6aXAgYXJjaGl2ZSBhcyB3ZWxsIGFzIHRoZSB0YXJiYWxsLgoKMjAwNy0wOS0xMyAyMToyNSAgdGFuZGVycwoKICAgKiBSRUFETUU6CgogICBkcm9wIG9ic29sZXRlIG1pcnJvcnMKCjIwMDctMDktMTMgMTc6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBob3N0IHJlc291cmNlcyBTV1J1biBhbmQgU1dSdW5QZXJmIFRhYmxlIGZvciBkYXJ3aW45CgoyMDA3LTA5LTEzIDE3OjIyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaW1wcm92ZSBlcnJvciBoYW5kbGluZyBhbmQgY2xlYW51cCBpbiByZWdpc3RyYXRpb24gZnVuY3Rpb25zCgoyMDA3LTA5LTEzIDE3OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBmb3IgZGFyd2luOSwgcmV4ZWMgYWZ0ZXIgZm9yayB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIHNvbWUgbWFjaAogICBjYWxscwoKMjAwNy0wOS0xMiAxODo1MSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IHV0aWxpdHkgZnVuY3Rpb24gdG8gcmVhZCBhIGRpcmVjdG9yeSBoaWVyYXJjeSBpbnRvIGEKICAgY29udGFpbmVyCgoyMDA3LTA5LTEyIDE3OjU1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIG5ldyBzdHJpbmcgY29tcGFyZSBjYWxsYmFjawoKMjAwNy0wOS0xMiAxNzo1MyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IG5ldHNubXBfY2FjaGVfZnJlZSBmdW5jdGlvbgoKMjAwNy0wOS0xMiAxNzo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZyBtc2cKCjIwMDctMDktMTIgMTc6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIFBhdGNoZXMgZnJvbSBBcHBsZQogICAtIGFkZCBvcHRpb25hbCBjYWNoZQogICAtIGNoZWNrL2hhbmRsZSBlcnJvcnMgZm9yIGFsbCBmdW5jdGlvbnMgaW4gaW5pdCBmdW5jCiAgIC0gdHlwZWRlZiBnZW5lcmF0ZWQgc3RydWN0CiAgIC0gc2tpcCBwcm9jZXNzZWQgcmVxdWVzdHMKICAgLSBjaGVjayBmb3IgbnVsbCB3aGVuIGV4dHJhY3Rpbmcgcm93CgoyMDA3LTA5LTEyIDE3OjM1ICByc3RvcnkKCiAgICogQ09QWUlORzoKCiAgIGFkZCBuZXcgY29weXJpZ2h0L2NvbnRyaWJ1dG9yCgoyMDA3LTA5LTA1IDIwOjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDb21iaW5lIHN5c3RlbV9wYXJzZV9jb25maWdfc3lze2xvYyxjb24sbmFtZX0gaW50byBvbmUgZnVuY3Rpb24KICAgc2luY2UgdGhleSBhbGwgZG8gdGhlIHNhbWUgdGhpbmcKCjIwMDctMDgtMjUgMTQ6MjQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIE1ha2UgbW9zdCBvZiBub3RpZmljYXRpb25fbG9nIHN0YXRpYy4gTWluaW1pemUgdGhlIGhlYWRlciBmaWxlLgoKMjAwNy0wOC0yMiAyMTo1NiAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgTkVXUzogYWdlbnQ6IHN1cHByZXNzIGFubm95aW5nICJyZWdpc3RyYXRpb24gIT0gZHVwbGljYXRlIgogICB3YXJuaW5nIGZvciByb290IG9pZHMKICAgKG90aGVyd2lzZSwgeW91J2xsIGdldCB0aGlzIG1lc3NhZ2Ugb24gYWxtb3N0IGV2ZXJ5IHN0YXJ0dXApCgoyMDA3LTA4LTIwIDA4OjA2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHNwcmludGYgZm9yCiAgIFVEUC9JUHY2CgoyMDA3LTA4LTE3IDA5OjEwICBkdHMxMgoKICAgKiBGQVE6CgogICBTdWJ2ZXJzaW9uLCBub3QgQ1ZTLgoKMjAwNy0wOC0xNyAwODo1OSAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSBoYW5kbGluZyBvZiB1bmtub3duIGNvbW11bml0aWVzCgoyMDA3LTA4LTE2IDE1OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIERvbid0IGp1c3QgcmVwb3J0IHRoZSBwcm9ibGVtIC0gaXQgbWlnaHQgYmUgc2Vuc2libGUgdG8gYXZvaWQKICAgY3Jhc2hpbmcgdGhlIGFnZW50IGFzIHdlbGwhCgoyMDA3LTA4LTE2IDE1OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc0NDE1NzogUmVwb3J0IGR1cGxpY2F0ZSAiZXh0ZW5kL2V4ZWMiCiAgIGlkZW50aWZpZXJzLgoKMjAwNy0wOC0xNiAxNToyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFwcHMvc25tcHRyYXBkX2RzLmg6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNzQ2OTkyOiBJbXByb3ZlIHNubXB0cmFwZAogICBhY2Nlc3MtY29udHJvbCBlcnJvciBtZXNzYWdlcy4KCjIwMDctMDgtMTYgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MjkzNDogRml4IG9mZi1ieS1vbmUgcXNvcnQgZXJyb3IgaW4KICAgdGFibGUgdXRpbGl0aWVzLgoKMjAwNy0wOC0xNiAxMzozMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDM3OiBGaXggZXJyb3IgaW5kZXggb24gZmFpbGluZyBTRVQKICAgcmVxdWVzdHMKCjIwMDctMDgtMTYgMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQ0OTogRml4IEFnZW50WCBlcnJvciBwcm9wYWdhdGlvbgoKMjAwNy0wOC0xNiAxMjozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0NjM6IEZpeCBBZ2VudFggc3ViYWdlbnQgcGluZyBhbGFybQogICBoYW5kbGluZwoKMjAwNy0wOC0xNiAxMjoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzU4MjA4OiBGaXggbWVtb3J5IGxlYWsKCjIwMDctMDgtMTYgMTI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc3NDYxMjogTW9yZSByZXNpbGllbnQgcHJvY2VzcyBzdGF0dXMKICAgaGFuZGxpbmcKCjIwMDctMDgtMTYgMTE6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NzUxMjQ6IEZpeCBjbGllbnRhZGRyIGZ1bmN0aW9uYWxpdHkKCjIwMDctMDgtMTYgMDk6MzggIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNzY4Mjg1OiBDb3VudCBNSUIgZmlsZXMgY29ycmVjdGx5IGluCiAgIGFkZF9taWJkaXIoKQoKMjAwNy0wOC0xNiAwOTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3Njc3MjU6IENsb3NlIGFsbCBub24gc3RhbmRhcmQgZmlsZQogICBoYW5kbGVzCgoyMDA3LTA4LTE2IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jOgoKICAgRGVjbGFyZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lIGNvcnJlY3RseSwgYW5kIG9taXQgdW51c2VkCiAgIHZhcmlhYmxlcy4KICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wOC0xNiAwODo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgUmVhZCBpbiBhZ2VudCBjb25maWd1cmF0aW9uIHNldHRpbmdzICpiZWZvcmUqIHRoZSBoZWFkZXIKICAgZmlsZXMgdGhhdCBtaWdodCByZWx5IG9uIHRoZW0uCgoyMDA3LTA4LTA1IDE2OjE2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBDaGFuZ2Ugd2luMzIgYnVpbGQgcmVhZG1lIGZpbGVzIHRvIENSTEYuCgoyMDA3LTA4LTA1IDE0OjE2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgV2luMzI6IENoYW5nZSBidWlsZCBkb2NzIHRvIHVzZSBkeW5hbWljIChETEwpIGluc3RlYWQgb2Ygc3RhdGljLgoKMjAwNy0wOC0wMiAxMzo0NiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgSXQgbWlnaHQgYmUgc2xpZ2h0bHkgbGVzcyBjb25mdXNpbmcgaWYgdGhlIG5ldFNubXBFeGFtcGxlU3RyaW5nCiAgIE1JQiBvYmplY3QgZGlkIGFjdHVhbGx5IHRha2Ugc3RyaW5nIHZhbHVlcy4gUGlja3ksIEkga25vdy4uLi4KCjIwMDctMDctMjggMTM6MDIgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgZml4IHRhZyBleHRyYWN0aW9uOyBjaGVjayBmb3IgZW1wdHkgdGFnIGVhcmxpZXIKCjIwMDctMDctMjUgMjI6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzYwNjMzOiBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA3LTA3LTIxIDIxOjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBmb3J3YXJkaW5nIGVuY29kaW5nCgoyMDA3LTA3LTIwIDA4OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBUd2VhayB3YXJuaW5nIG1lc3NhZ2UgZm9yIChvbGQtc3R5bGUsIGludmFsaWQgZm9ybWF0KSAiZXhlYyBPSUQiCiAgIGRpcmVjdGl2ZXMuCgoyMDA3LTA3LTE2IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQXBwbHkgKGNvcnJlY3QpIHBhdGNoIGZyb20gTWFyY3VzIFJ1ZWNrZXJ0IHRvIHJlbW92ZSBhc3NlcnRzCiAgIHVzaW5nIHNvcnQtby1pbGxlZ2FsIEMgc3RyaW5nIGNvbXBhcmVzCgoyMDA3LTA3LTE2IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgUmVtb3ZlIHByZXZpb3VzIHBhdGNoIHdoaWNoIHdhcyB0aGUgd3JvbmcgdmVyc2lvbgoKMjAwNy0wNy0xNiAyMzo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gTWFyY3VzIFJ1ZWNrZXJ0IHRvIHJlbW92ZSBhc3NlcnRzIHVzaW5nCiAgIHNvcnQtby1pbGxlZ2FsIEMgc3RyaW5nIGNvbXBhcmVzCgoyMDA3LTA3LTEzIDE5OjI3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZ2VuZXJhdGUgemlwIGZpbGVzCgoyMDA3LTA3LTEyIDIxOjUxICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBmaXggc3ViYWdlbnQgZXhhbXBsZSAoZG9jdW1lbnRhdGlvbikKCjIwMDctMDctMTIgMjE6MjcgIHRhbmRlcnMKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBzbm1wX3Nlc3NfcmVhZCByZXR1cm5zIGludCwgbm90IHZvaWQKCjIwMDctMDctMDYgMjM6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBidWlsZDogdXNlIGxpYnRvb2wgY2xlYW4gZm9yIHJlbW92aW5nIGZpbGVzIHRvIGVuc3VyZSB3ZQogICBkZWxldGUgYWxsIGxpYnRvb2wgdGVtcG9yYXJ5IGZpbGVzLgoKMjAwNy0wNy0wNiAyMzozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIHVzZSBhIHJlY3Vyc2l2ZSByZXZlcnQgaW5zdGVhZCBvZiBybS91cGRhdGU7IHJlbW92ZSBkb3VibGUgLyBmcm9tCiAgIGVkaXRpbmcgY2FsbHMKCjIwMDctMDctMDYgMjE6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdG9wIHNlYXJjaGluZyBwYXRocyB3aGVuIGRvbmUKCjIwMDctMDctMDYgMjE6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBkbyBub3QgZnJlZSBpbnRlcmZhY2UgZW50cnkganVzdCBiZWNhdXNlIHdlIGNhbiBub3QgZ2V0IHN0YXRzIGZvcgogICBpdAoKMjAwNy0wNy0wNiAxNTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHIDE3NDUxMTM6IEhhbmRsZSBzaW5nbGUtbGluZSAoYW5kIHplcm8tbGluZSkKICAgb3V0cHV0IGluIFVDRCBjb21wYXRhYmlsaXR5IG1vZGUuCgoyMDA3LTA3LTA2IDA5OjA4ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0ggMTcyODI0NzogZnJvbSBNaXRzdXJ1IENoaW5lbjogY2xlYW5zIHVwCiAgIHRoZSBpbnQ2NCB0eXBlIGNoZWNraW5nIGFuZCB1c2FnZSBmb3IgYnVpbGRpbmcgcGFja2V0cyBlc3BlY2lhbGx5CiAgIHVuZGVyIE1TVkMuCgoyMDA3LTA3LTA1IDE0OjQ1ICByc3RvcnkKCiAgICogLiwgUkVBRE1FLm9zWDoKCiAgIHIyMDA0NEBkaGNwMjExOiByc3RvcnkgfCAyMDA3LTA3LTA1IDEwOjQ0OjAxIC0wNDAwCiAgIHJlbW92ZSBkaXNhYmxlLXN0YXRpYyBmcm9tIHJlY29tbWVuZGVkIG9wdGlvbnMKCjIwMDctMDctMDUgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBza2lwIHN0YXRzIHBhcnNpbmcgb24gaW50ZXJmYWNlcyB3aXRoIG5vIHN0YXRpc3RpY3MKCjIwMDctMDctMDUgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICBjaGVjayBmb3IgZGlyIGV4aXN0ZW5jZQoKMjAwNy0wNy0wNCAyMzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IHBlcmw6IGluc3RhbGwgZW1iZWRkZWQgcGVybCBpbml0IGZpbGVzIGZvcgogICBzbm1wZC9zbm1wdHJhcGQgd2l0aCBtb2RlIDY0NCBpbnN0ZWFkIG9mIDc1NQoKMjAwNy0wNy0wNCAyMTo0MiAgdGFuZGVycwoKICAgKiBSRUFETUUub3NYOgoKICAgUGVybCBwcm9ibGVtcyAoYmVsaWV2ZWQgdG8gYmUpIGZpeGVkCgoyMDA3LTA3LTAzIDEyOjU2ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgcmVtb3ZlIGV4ZWN1dGFibGUgZmxhZyBmcm9tIFNWTiBwcm9wZXJ0aWVzCgoyMDA3LTA3LTAyIDA2OjUzICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB2YWNtLmM6CgogICBSZW1vdmUgdW51c2VkIG9pZCBkZWNsYXJhdGlvbnMKCjIwMDctMDctMDIgMDY6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgoKICAgQWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlIHRvIF9tdGVFdmVudF9maXJlX25vdGlmeS4KCjIwMDctMDctMDIgMDU6MzEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIFJlbW92ZSB0aGUgZGVjbGFyYXRpb24gb2YgYW4gdW5kZWZpbmVkIHN0YXRpYyBmdW5jdGlvbi4KCjIwMDctMDctMDEgMjA6MzIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItbmlnaHRseSwgZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2UgZ2V0b3B0cyB3b3JrIG9uIFRydTY0IGJ5IHJlc3Bhd25pbmcgaW4gUG9zaXggbW9kZQoKMjAwNy0wNy0wMSAxOTo1NiAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogLS1kaXNhYmxlLWFzLW5lZWRlZCBub3cgYWxsb3dzIHRvIHJldmVydCB0byB0aGUKICAgZm9ybWVyIGRlZmF1bHQgYmVoYXZpb3VyIG9mIGxpbmtpbmcgbGlicGVybCB0byBhcHBsaWNhdGlvbnMKICAgcmF0aGVyIHRoYW4gTmV0LVNOTVAgTGlicmFyaWVzIChpbiBjYXNlIG9mIGFueSBwcm9ibGVtcykKCjIwMDctMDYtMzAgMDY6MTcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhY3R1YWxseSBjYWxsIHJlbW92ZWZpbGVzCgoyMDA3LTA2LTI4IDIzOjUwICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgTkVXUzogc25tcGxpYjogQWRkZWQgR0NDIGZvcm1hdCBjaGVja2luZyBhdHRyaWJ1dGVzIHRvIHRoZSBkZWJ1ZwogICBmdW5jdGlvbnMuCgoyMDA3LTA2LTI4IDIzOjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFJlbW92ZSBjYXN0cyBvZiB1bnVzZWQgdmFsdWVzCgoyMDA3LTA2LTI4IDIzOjM2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCjIwMDctMDYtMjggMjI6MDkgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgcmVuYW1lIGxhc3Qgb2NjdXJlbmNlIG9mIERFRkFVTFRfTUlCW0RJUl1TIHRvCiAgIE5FVFNOTVBfREVGQVVMVF9NSUJbRElSXVMKCjIwMDctMDYtMjggMDg6MTUgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBEbyBub3QgdHJhbnNmb3JtIHRoZSBpZ25vcmVkIHJlc3VsdCBvZiByZWFsbG9jX2Zvcm1hdF90cmFwCgoyMDA3LTA2LTI2IDIyOjEyICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogd29yayBhcm91bmQgbGlibmV0c25tcGFnZW50L2xpYm5ldHNubXBoZWxwZXJzCiAgIGRlcGVuZGVuY3kgaXNzdWVzIHdoZW4gbGlua2luZyBzbm1wdHJhcGQKCjIwMDctMDYtMjYgMjE6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogdXNlIExERkxBR1Mgd2hlbiBidWlsZGluZyBhZ2VudCwgaGVscGVycyBhbmQgbWliCiAgIGxpYiB0byBiZSBjb25zaXN0ZW50IHdpdGggbGlibmV0bm1wCgoyMDA3LTA2LTI2IDIxOjI4ICB0YW5kZXJzCgogICAqIElOU1RBTEw6CgogICBtaW5vciB1cGRhdGVzCgoyMDA3LTA2LTI2IDE1OjEwICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGRvbid0IGluaXRpYWxpemUgdmFyIGluIGV4dGVybiBkZWNsOyBpbnN0ZWFkLCBpbml0aWFsaXplIGFjdHVhbAogICB2YXIKCjIwMDctMDYtMjUgMjE6MjkgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIE5FV1M6IGJ1aWxkOiB1cGRhdGUgdG8gbGlidG9vbCAxLjUuMjQgKGZyb20gMS41LjIyKQoKMjAwNy0wNi0yNCAxMjo1NyAgdGFuZGVycwoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBIQVZFX1NTSVpFX1QgY2xlYW51cAoKMjAwNy0wNi0yMyAyMjo1NiAgdGFuZGVycwoKICAgKiBSRUFETUUuaHB1eDExOgoKICAgZG9uJ3Qgc3VnZ2VzdCAtLXdpdGgtbGlicz0tbG5tCgoyMDA3LTA2LTIyIDE1OjA1ICBkdHMxMgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBFbmZvcmNlIERPUy1zdHlsZSBsaW5lIGVuZGluZ3MsIHRvIGtlZXAgVmlzdWFsIFN0dWRpbyBoYXBweS4KCjIwMDctMDYtMjEgMTQ6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIGRlZmF1bHQgdG8gdXNpbmcgaWZUYWJsZSByZXdyaXRlcwoKMjAwNy0wNi0yMCAyMTozNCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBmaXggdHlwbwoKMjAwNy0wNi0xOSAyMjoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBQZXJsLXJlbGF0ZWQgYXV0b2NvbmYgbWVzc2FnZXMKCjIwMDctMDYtMTkgMTU6MDggIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCAiQnVpbGRSZXF1aXJlczogcGVybC1FeHRVdGlscy1FbWJlZCIgdG8gdGhlCiAgIHNwZWMgZmlsZSwgZS5nLiBmb3IgRmVkb3JhIDcKCjIwMDctMDYtMTggMjI6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGJyb2tlbiBjb21tZW50LgoKMjAwNy0wNi0xOCAyMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIHJldmVydCBkb3VibGUgbGlua2luZyBvZiBsaWJuZXRzbW5wIHBhcnQgb2YgcGF0Y2ggdGhhdCB3YXMKICAgc3VwcG9zZWQgdG8gYmUgcHVsbGVkIGJvZmVyIGFwcGx5aW5nIGluIHIxNjUzOCAodGhhbmtzIHRhbmRlcnMKICAgZm9yIGNhdGNoaW5nIGl0KQoKMjAwNy0wNi0xOCAyMTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBwYXRjaCBmcm9tIGFwcGxlIHRvIHNpbXBsaWZ5IG1ha2VmaWxlIHRhcmdldAogICByZWZlcmVuY2VzIGluIHNvbWUgcnVsZXMuCgoyMDA3LTA2LTE4IDIxOjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggbWlub3IgZG9jdW1lbnRhdGlvbiBidWdzLgoKMjAwNy0wNi0xOCAyMToxMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgCgoyMDA3LTA2LTE4IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBpbXByb3ZlIG1lbW9yeSByZXBvcnRpbmcKCjIwMDctMDYtMTggMjE6MDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gZml4IGNyb3NzLWNvbXBpbGUgYnVpbGRzIGluIGFwcGxlcwogICBidWlsZCBlbnZpcm9ubWVudC4KCjIwMDctMDYtMTggMjA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBwYXRjaDogMTczNzA4NTogZnJvbSBqc2FmcmFuZWs6IGZpeCB0aGUgLU0gc3dpdGNoIGZvcgogICBtaWIgcGFyc2luZyBieSBsb2FkaW5nIGRlZmF1bHRzIGZpcnN0IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzZXQKICAgc28gaXQgZG9lcyBub3QgZ2V0IG92ZXJ3cml0dGVuIGJ5IHRoZSBkZWZhdWx0cyBsYXRlci4KCjIwMDctMDYtMTggMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogcGF0Y2g6IDE3MjUwNDk6IGZpeCBidWxrd2FsayBpbiBjYXNlcyBvZiBub24tcmVwZWF0ZXIKICAgdXNhZ2UuCgoyMDA3LTA2LTE4IDE0OjEwICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogcGVybDogZml4IHByZXJlcXVpc2l0ZXMgZm9yIE5ldFNOTVA6OlRyYXBSZWNlaXZlcgoKMjAwNy0wNi0xOCAxMzozOSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBzeW50YXggZXJyb3IgaW4gTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQKCjIwMDctMDYtMTYgMjM6MDEgIHRhbmRlcnMKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluOgoKICAgTkVXUzogcGVybDogQlVHOiAxNjE5ODI3OiBsaW5rIGxpYm5ldHNubXBhZ2VudC9saWJuZXRzbm1wdHJhcGQKICAgKHJhdGhlciB0aGFuIHNubXBkL3NubXB0cmFwZCkgYWdhaW5zdCBsaWJwZXJsLgoKMjAwNy0wNi0xNCAxNTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggdHlwbyBpbiB1c2VyIG91dHB1dCwgYXMgbm90ZWQgb24gY29kZXJzCgoyMDA3LTA2LTE0IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXNlICdzdm4gaW5mbycgdG8gcXVlcnkgZm9yIHVybAoKMjAwNy0wNi0xNCAwNDozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBBZGQgbWlzc2luZyBhcmd1bWVudCB0eXBlIGluIG9yZGVyIHRvIHNpbGVuY2UgYSBnY2Mgd2FybmluZwoKMjAwNy0wNi0xMyAwNjozNyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEbyBub3QgdHJ5IHRvIGJlIGNsZXZlciBpbiB0aGUgaGFuZGluZyBvZiAtbGt2bSBpbiBMQUdFTlRMSUJTLgogICBJbmNsdWRlIGl0IGlmIGFueSBzb3VnaHQgZnVuY3Rpb24gaXMgaW4gaXQuCgoyMDA3LTA2LTExIDEwOjExICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBkb2N1bWVudCB4bGM8LT5jY19yIGNvbXBpbGVyIGlzc3VlcyB3aXRoIFBlcmwgb24gQUlYIChzZWUgYnVnCiAgICMxNjAwMDk5KQoKMjAwNy0wNi0xMCAyMjoyOSAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODI0NzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogQWRkIHR5cGUKICAgY2hlY2sgZm9yIGludD8/X3QgYW5kIHVpbnQ/P190CgoyMDA3LTA2LTEwIDIyOjIyICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjQ0OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBBZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBzaW42X3Njb3BlX2lkCgoyMDA3LTA2LTEwIDIyOjE1ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTcyODI0MTogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkIGNvbmZpZ3VyZSBjaGVjawogICBmb3IgPHN5cy91aW8uaD4gKG1ha2Ugc3VyZSBpb3Ygc3RydWN0dXJlIGlzIGRlY2xhcmVkKQoKMjAwNy0wNi0xMCAwNjozMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciBzeXN0ZW0gc3BlY2lmaWMKICAgbGlicmFyaWVzCgoyMDA3LTA2LTEwIDA2OjI2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxzZW5zb3JzCgoyMDA3LTA2LTEwIDA2OjE4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sZGV2c3RhdAoKMjAwNy0wNi0xMCAwNjoxMyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sZGwKCjIwMDctMDYtMDkgMDg6NTggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGt2bQoKMjAwNy0wNi0wOCAyMDozMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgZGlzdC9tYWtlcmVsZWFzZToKCiAgIEZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgcjE2NDc5OiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItVAogICB0Y3AiJyBub3cKICAgd29ya3MgYWdhaW4uIG1ha2VyZWxlYXNlIG5vdyB1c2VzIHRoZSByaWdodCBvcHRpb24uCgoyMDA3LTA2LTA4IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGRUFUVVJFOiA3NDEzNzU6IEV4dGVuZCAtRiBmbGFnIHRvIGNvdmVyCiAgIHN5c2xvZy9leGVjdXRlIGZvcm1hdCBzdHJpbmdzLgoKMjAwNy0wNi0wOCAxMDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEltcHJvdmUgbWVtb3J5IGhhbmRsaW5nIG9mIHN0eWxlLXNwZWNpZmljIGZvcm1hdCBzdHJpbmdzLgoKMjAwNy0wNi0wOCAxMDozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBEZWZhdWx0IHRvIHJlcG9ydGluZyBORlMgbW91bnRzIGFzIE5ldHdvcmtEaXNrLgoKMjAwNy0wNi0wOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1scnBtIGFuZAogICB0aGluZ3MgaXQgZGVwZW5kcwogICBvbgoKMjAwNy0wNi0wOCAwNTo1OSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCBtaXNzaW5nIFwKCjIwMDctMDYtMDggMDU6MzEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGtzdGF0CgoyMDA3LTA2LTA4IDA1OjI4ICBtYWdmcgoKICAgKiBhY2luY2x1ZGUubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGEgdmFyaWF0aW9uIG9mIEFDX1NFQVJDSF9MSUJTIHdoZXJlIHRoZQogICByZXN1bHQgdmFyaWFibGUgaXMgc2V0dGFibGUuCgoyMDA3LTA2LTA4IDA1OjE2ICBtYWdmcgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVtb3ZlIHRoZSB1bnVzZWQgdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFYuCiAgIFRoZSBQZXJsX2V2YWxfcHYgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZQogICBIQVZFX1BFUkxfRVZBTF9QVl9bVUxdQyBkZWZpbmVzLAogICB0aGlzIG9uZSBpcyBuZXZlciBzZXQgYnkgb3VyIGNvbmZpZ3VyZSBzY3JpcHQuCgoyMDA3LTA2LTA3IDE2OjAyICBkdHMxMgoKICAgKiAgLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZSwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLy5jdnNpZ25vcmUsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLy5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBkaXN0Ly5jdnNpZ25vcmUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvLmN2c2lnbm9yZSwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlLCAKICAgICAgICBsb2NhbC8uY3ZzaWdub3JlLCBtYW4vLmN2c2lnbm9yZSwgbWlicy8uY3ZzaWdub3JlLAogICAgICBvdi8uY3ZzaWdub3JlLCAgICBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvQVNOLy5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvT0lELy5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvU05NUC8uY3ZzaWdub3JlLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci8uY3ZzaWdub3JlLCBwZXJsL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUsIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlLCAgIAogICAgICBzbm1wbGliLy5jdnNpZ25vcmUsIHRlc3RpbmcvLmN2c2lnbm9yZSwgd2luMzIvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvYmluLy5jdnNpZ25vcmUsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGliLy5jdnNpZ25vcmUsIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvLmN2c2lnbm9yZSwgd2luMzIvbGlibmV0c25tcHRyYXBkLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGlidWNkbWlicy8uY3ZzaWdub3JlLCB3aW4zMi9uZXQtc25tcC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsIHdpbjMyL25ldHNubXBtaWJzLy5jdnNpZ25vcmUsICAKICAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBidWxrZ2V0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvLmN2c2lnbm9yZSwgd2luMzIvc25tcGRmLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvLmN2c2lnbm9yZSwgd2luMzIvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHNldC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wc3RhdHVzLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdGVzdC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdXNtLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB3YWxrLy5jdnNpZ25vcmU6CgogICBSZW1vdmUgcmVkdW5kYW50IENWUy1hZG1pbiBmaWxlcy4KCjIwMDctMDYtMDcgMTI6NTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIEhhbmRsZSB1bnJlZ2lzdGVyaW5nIHRoZSBmaXJzdCBTZWN1cml0eSBNb2RlbCBpbiB0aGUgbGlzdC4KICAgUmVwb3J0ZWQgYnkgQWxla3NhbmRyIExvbWFub3YuCgoyMDA3LTA2LTA3IDA5OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBoZWFkZXIgZmlsZXMgZm9yIHN0YXNoX2NhY2hlIGFuZCBzdGFzaF90b19uZXh0IGhlbHBlcnMuCgoyMDA3LTA2LTA3IDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgU2VwYXJhdGUgb3V0IGhlYWRlciBmaWxlcyB0aGF0IGRvbid0IGhhdmUgYSBjb3JyZXNwb25kaW5nIEMKICAgc291cmNlIGZpbGUuCgoyMDA3LTA2LTA3IDA4OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgU29ydCBsaXN0cyBvZiBoZWxwZXJzIChzb3VyY2UgY29kZSwgb2JqZWN0IGZpbGVzIGFuZCBoZWFkZXJzKS4KICAgVGhpcyBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCBmaWxlcyB0aGF0IGhhdmUgYmVlbiBvbWl0dGVkLgoKMjAwNy0wNi0wNyAwODo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHN5c3RlbXMgd2l0aG91dCBTX0lTRElSLgoKMjAwNy0wNi0wNiAyMjozNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBXZSBhcmVuJ3QgdXNpbmcgbGlidG9vbHMgZGxvcGVuIHN1cHBvcnQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8KICAgY29uZmlndXJlIGZvciBpdAoKMjAwNy0wNi0wNiAxMjozNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEFJWDogdXNlICItV2wsLWJydGwiIHdoZW4gY29tcGlsaW5nIHdpdGggZ2NjCgoyMDA3LTA2LTA2IDEwOjI2ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVtb3ZlIHRoZSB1bnVzZWQgdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFYuCiAgIFRoZSBQZXJsX2V2YWxfcHYgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZQogICBIQVZFX1BFUkxfRVZBTF9QVl9bVUxdQyBkZWZpbmVzLAogICB0aGlzIG9uZSBpcyBuZXZlciBzZXQgYnkgb3VyIGNvbmZpZ3VyZSBzY3JpcHQuCgoyMDA3LTA2LTA2IDEwOjIwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRW5zdXJlIG91dHB1dCBpcyBwcm9wZXJseSBkaXJlY3RlZCB0byBzeXNsb2cuCiAgIE90aGVyd2lzZSwgcHJvYmxlbXMgaW4gdGhlIGNvbmZpZyBlbnZpcm9ubWVudCBjYW4gdHJpZ2dlcgogICBlcnJvcnMgYmVpbmcgZGlyZWN0ZWQgdG8gc3RkZXJyLCBhbmQgc3Vic2VxdWVudCBsb2dnaW5nCiAgIG91dHB1dCBnZXRzIGxvc3QuCgoyMDA3LTA2LTA2IDEwOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3JlIGhlbHBmdWwgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMDYtMDYgMDU6NTMgIG1hZ2ZyCgogICAqICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgQ0hBTkdFUzogbWlzYzogRG9uJ3QgdXNlIHRoZSBsZWdhY3kgc3ltYm9sCiAgIFNOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAoKMjAwNy0wNi0wNSAxNzo0OSAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgZXhwbGljaXQgZGVmaW5pdGlvbnMgb2YgaXRlbXMgdGhhdAogICBhdXRvaGVhZGVyIGFsc28gZGVmaW5lcwoKMjAwNy0wNi0wNSAxNTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTcyOTYyOTogRml4IG1lbW9yeSBsZWFrIGluIGRpc21hbgogICBhZ2VudC4KCjIwMDctMDYtMDUgMTQ6NTIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFN1cHBvcnQgcGVyLXRyYXAgZm9ybWF0IHNwZWNpZmljYXRpb25zCgoyMDA3LTA2LTA1IDA2OjU3ICBtYWdmcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBORVdTOiBtaXNjOiBBZGQgY29uZmlnIHJlcmVhZGluZyBzdXBwb3J0IHRvIHRoZSBzdWJhZ2VudAogICBnZW5lcmF0ZWQgYnkgbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudAoKMjAwNy0wNi0wNCAyMjoyOSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbXBsaWZ5IHRoZSBkZXRlY3Rpb24gb2YgbGlicmFyaWVzIG5lZWRlZCBmb3IKICAgZ2V0aG9zdGJ5bmFtZQoKMjAwNy0wNi0wNCAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIHNubXBfc2Vzc19hZGRfZXggdG8gY29uc2lzdGVudGx5IGNsb3NlIGFuZAogICBkZWxldGUgdGhlIHRyYW5zcG9ydCBhcmd1bWVudCBvbiBmYWlsdXJlLCBlYXJsaWVyIHRoZSBsaXZlbmVzcyBvZgogICB0aGUgdHJhbnNwb3J0IGFyZ3VtZW50IHdhcyB1bmRlY2lkZWQuCgoyMDA3LTA2LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgZGlzdC9tYWtlcmVsZWFzZSwgdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Q6IHN1cHBvcnQgYSAtbiBmbGFnIHRvIFJVTlRFU1RTIHRvIHByaW50IHRoZSB0ZXN0CiAgIG51bWJlciBmb3VuZCBpbiB0aGUgdGVzdCBmaWxlIGFzIG9wcG9zZWQgdG8gdGhlIG51bWVyaWNhbCBjb3VudAoKMjAwNy0wNi0wNCAxMzowOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzNzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogTW92ZQogICB2YXJpYWJsZSBkZWNsYXJhdGlvbiBhdCB0aGUgdG9wIG9mIG5ldHNubXBfdWRwX3NlbmR0bwoKMjAwNy0wNi0wNCAxMjo1MiAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzMzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWFrZSBzdXJlCiAgIHR5cGUgbmZkc190IGlzIGRlZmluZWQKCjIwMDctMDYtMDQgMTI6MTMgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzMDogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkCiAgIGNvbmZpZ3VyZSBjaGVjayBmb3IgZ2FpX3N0cmVycm9yKCkKCjIwMDctMDYtMDQgMTA6MzUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjI2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgSUZfTkFNRVNJWkUgaXMgZGVmaW5lZAoKMjAwNy0wNi0wNCAxMDoyOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIyMzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkCiAgIGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0bGluayBzb2NrZXQKCjIwMDctMDYtMDQgMDk6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhbHNvIHNraXAgdGhpcyB0ZXN0IG9uIElSSVg2NAoKMjAwNy0wNi0wMiAxNjoxMyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4IGNvbXBpbGF0aW9uIG9uIElSSVgKCjIwMDctMDYtMDIgMDg6MjQgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBhcGk6IERvIG5vdCB1c2UgZ2V0c2VydmJ5bmFtZSB0byBmaW5kIGRlZmF1bHQgcG9ydAogICBudW1iZXJzLCBqdXN0IGhhcmRjb2RlIHRoZW0gYW5kIGxldCB0aGUgdXNlciBvdmVycmlkZSB0aGVtIGlmCiAgIG5lZWRlZC4KCjIwMDctMDYtMDEgMjI6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogTGluayBsaWJkbCBhZ2FpbnN0IGxpYm5ldHNubXBtaWJzIGluc3RlYWQgb2YKICAgc25tcGQuCiAgIEZpeGVzIHRoZSBidWlsZCBvbiAoc29tZSkgU29sYXJpcyBzeXN0ZW1zLgoKMjAwNy0wNi0wMSAyMjozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTCBjb25maWd1cmUgY2hlY2sgb24gSVJJWAogICAocmVncmVzc2lvbiBmcm9tIHIxNjQ1MSkKCjIwMDctMDYtMDEgMTQ6MzMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IFdpdGhkcmF3IGRlcHJlY2F0ZWQgb3B0aW9ucy4KICAgKFRocmVlIGFuZCBhIGhhbGYgeWVhcnMnIHdhcm5pbmcgc2hvdWxkIGJlIGVub3VnaCBmb3IgYW55b25lISkKCjIwMDctMDUtMzEgMjM6NTEgIHRhbmRlcnMKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IExpbmsgbGlia3ZtIGFuZCBsaWJ3cmFwIHRvIGxpYm5ldHNubXBhZ2VudAogICBpbnN0ZWFkIG9mIHNubXBkLgogICBGaXhlcyB0ZXN0ICM0NCAoUGVybCBzdWJhZ2VudCkgb24gc3lzdGVtcyB1c2luZyBvbmUgb2YgdGhvc2UKICAgbGlicmFyaWVzLgoKMjAwNy0wNS0zMSAyMzo0MiAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1vdmUgc3lzT1JMYXN0Q2hhbmdlIGZyb20gbWliSUkvc3lzdGVtX21pYiB0bwogICBtaWJJSS9zeXNPUlRhYmxlIGluIG9yZGVyIHRvIGtlZXAgdGhlIGRhdGEgYW5kIHRoZSB1c2UgdG9nZXRoZXIuCgoyMDA3LTA1LTMxIDE0OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBsb2dnaW5nIG9mIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uLgoKMjAwNy0wNS0zMSAxMDoxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBSZW1vdmUgYm9ndXMgZGVidWcgb3V0cHV0LgoKMjAwNy0wNS0zMSAwOTo0OCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZS4KCjIwMDctMDUtMzEgMDk6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZFQVRVUkU6IDExNTk5NDc6IEFsbG93IGNvbnRyb2wgb2YgdHJhcGhhbmRsZQogICBkYXRhIGZvcm1hdAoKMjAwNy0wNS0zMCAyMjo1MyAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogQUlYOiBidWlsZCBmaXhlcyBmb3IgZW1iZWRkZWQgUGVybAoKMjAwNy0wNS0zMCAyMjozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEhQLVVYIDExLnggYW5kIElSSVggNi41IGJ1aWxkIGZpeCAocmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5CiAgIHIxNjQ1MSkKCjIwMDctMDUtMjkgMjM6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogbWFrZSB1c2Ugb2YgQUNfUFJPR19TRUQvQUNfUFJPR19HUkVQIGFuZCAvIHRvCiAgIGZ1cnRoZXIgbWluaW1pemUgc2VkL2dyZXAgcHJvYmxlbXMKCjIwMDctMDUtMjkgMjI6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSB0aGUgZGVmYXVsdF90YXJnZXQgYXJndW1lbnQgaWYgaXQgaXMKICAgbm9uLU5VTEwsIG5vdCBpZiBpdCBpcyBOVUxMLgoKMjAwNy0wNS0yOSAxMDozMCAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgbW9yZSBuZXQtc25tcCBzcGVjaWFscyBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdHMgdG8gZWFzZSBtYWludGVuYW5jZS4KICAgQWxzbyBjaGFuZ2UgcmVjZW50bHkgYWRkZWQgU1RSVUNUX1NPQ0tBRERSX1NUT1JBR0VfSEFTX1NTX0ZBTUlMWS4KCjIwMDctMDUtMjkgMTA6MjcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgcmVjZW50IG1mZCByZXdyaXRlcwoKMjAwNy0wNS0yOSAxMDoyMiAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgbW9yZSBuZXQtc25tcCBzcGVjaWFscyBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdHMgdG8gZWFzZSBtYWludGVuYW5jZS4KICAgQWxzbyBjaGFuZ2Ugd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggZm9yIGNvbnNpc3RlbmN5LgoKMjAwNy0wNS0yOCAyMzozMCAgbWFnZnIKCiAgICogIFBPUlRJTkcsIGFjY29uZmlnLmgsIGFjaW5jbHVkZS5tNCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgCiAgICAgICBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgoKMjAwNy0wNS0yOCAxNjozMSAgZHRzMTIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogMTQwNzQ3NjogUmVuYW1lICdzdHJpY3RDb21tZW50VGVybScKICAgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGJlaGF2aW91ci4KCjIwMDctMDUtMjggMTU6MjUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiAxMDQxODg4OiBDaGVjayBkaXJlY3RvcnkgcGF0aHMgZm9yCiAgIGNvbmZpZyBmaWxlcy4KCjIwMDctMDUtMjggMTM6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiA4NTE4ODc6IFJlcG9ydCByYW5nZSBpbmZvcm1hdGlvbiBmb3IKICAgaW52YWxpZCBTRVQgcmVxdWVzdHMuCgoyMDA3LTA1LTI4IDEyOjA4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE3MTk3MzA6IGZyb20gYXBlcnNzb246IHN1cHBvcnQgZm9yCiAgIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQgaXBBZGRyZXNzVGFibGUKICAgUGFydCAyIChTb2xhcmlzLXNwZWNpZmljIG5ldyBmaWxlcykKCjIwMDctMDUtMjggMTI6MDIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmg6CgogICBORVdTOiBMaW51eDogUEFUQ0g6IDE3MjQ2MDI6IGZyb20gbWl0c3VydV9jaGluZW46IG1mZC1iYXNlZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZSBpbXBsZW1lbnRhdGlvbgoKMjAwNy0wNS0yOCAxMjowMCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9lbnVtcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX29pZHMuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDExOjU5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICBORVdTOiBMaW51eDogUEFUQ0g6IDE3MjQ2MDI6IGZyb20gbWl0c3VydV9jaGluZW46IG1mZC1iYXNlZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZSBpbXBsZW1lbnRhdGlvbgoKMjAwNy0wNS0yOCAxMDowOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBEb2N1bWVudCB0aGUgLUNFIG9wdGlvbi4KCjIwMDctMDUtMjcgMjE6NDIgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBTb21lIGxhbWUgbGlua2VycyAoZS5nLiBvbiBIUC1VWCAxMS4yMy9JQTY0KSBuZWVkIHF1aXRlIGEgYml0IG9mCiAgIGhlbHAgdG8gc3VjY2Vzc2Z1bGx5IGxpbmsgdGhlIFBlcmwgbW9kdWxlcy4KCjIwMDctMDUtMjcgMjE6MzMgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBQQVRDSDogMTcyMzYyMDogU3BlY2lmeSBhbiBleHBsaWNpdCBlbmQtcG9pbnQKICAgZm9yIHRoZSB3YWxrLgogICBBbiBhbHRlcm5hdGl2ZSAobW9yZSBmbGV4aWJsZSkgYXBwcm9hY2ggdG8gdGhlIHByb3Bvc2VkIHBhdGNoLAogICBidXQgb25lIHRoYXQKICAgcHJvdmlkZXMgZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5LiBBbHNvIGFkZHJlc3NlcyBGZWF0dXJlIFJlcXVlc3QKICAgIzcyMjc4NC4KCjIwMDctMDUtMjcgMjA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGQgZGVzY3JpcHRpb25zIHRvIEFDX0RFRklORTsgZHJvcCBvYnNvbGV0ZSBBQ19DSEVDS19MSUIobSwKICAgYXNpbikuCgoyMDA3LTA1LTI3IDE5OjI4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDQ1NDAyODogRGV0ZWN0IGVtcHR5IE1JQiBpbmRleCBmaWxlcy4KCjIwMDctMDUtMjcgMTk6MDYgIGR0czEyCgogICAqICBhZ2VudC9zbm1wZC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBGRUFUVVJFUzogMTAxOTQyOTogU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIHZpYQogICBpbml0Z3JvdXBzKDMpCgoyMDA3LTA1LTI3IDA2OjI3ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE3MTk3MzA6IGZyb20gYXBlcnNzb246IHN1cHBvcnQgZm9yCiAgIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQgaXBBZGRyZXNzVGFibGUKCjIwMDctMDUtMjcgMDY6MjAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGdyYW1tYXIgZml4CgoyMDA3LTA1LTI2IDE2OjQxICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9idWlsZC5wbCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgSVB2NiBidWlsZCBmaXhlcy4gSVB2NiBub3cgcmVxdWlyZXMgUFNESy4KCjIwMDctMDUtMjYgMTU6MTYgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJUHY2IGJ1aWxkIGZpeGVzIGZvciBidWlsZC5iYXQsIENvbmZpZ3VyZSBhbmQgUkVBRE1FLndpbjMyLgoKMjAwNy0wNS0yNSAyMzowMyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4LCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnRydTY0OgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUgdy5yLnQuIHJlY2VudCBjaGFuZ2VzIChtaWJJSS9pcHY2IGFuZCBBSVgKICAgc2hhcmVkIGxpYnJhcnkgYnVpbGRpbmcpLgoKMjAwNy0wNS0yNSAxODo1NCAgcnN0b3J5CgogICAqIGRpc3QvY3Zzc2hvdzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHVybCBmb3JtYXQgaW4gc3ZuIGVudHJpZXMKCjIwMDctMDUtMjUgMTU6MjggIHRhbmRlcnMKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgU29tZSBzeXN0ZW1zIChlLmcuIEhQLVVYIDExLjIzL0lBNjQpIGN1cnJlbnRseSBzdGlsbCBuZWVkCiAgICJuZXQtc25tcC1jb25maWcgLS1saWJzIiAoaW5zdGVhZCBvZiBqdXN0IC0tbmV0c25tcC1saWJzKSBmb3IKICAgbGlua2luZwogICBsaWJuZXRzbm1wIHRvIGEgUGVybCBtb2R1bGUuCgoyMDA3LTA1LTI0IDIzOjU1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IG9ubHkgZW5hYmxlIG1pYklJL2lwdjYgdGhyb3VnaCAtLWVuYWJsZS1pcHY2IG9uCiAgIHN5c3RlbXMgaXQgYnVpbGRzIHByb3Blcmx5IG9uIChMaW51eCBhbmQgKkJTRCkKCjIwMDctMDUtMjQgMjM6MTUgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgU29tZSBzeXN0ZW1zIChlLmcuIEhQLVVYIDExLjIzL0lBNjQpIGN1cnJlbnRseSBzdGlsbCBuZWVkCiAgICJuZXQtc25tcC1jb25maWcgLS1saWJzIiAoaW5zdGVhZCBvZiBqdXN0IC0tbmV0c25tcC1saWJzKSBmb3IKICAgbGlua2luZyBsaWJzbm1wYWdlbnQgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjI6MDEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENvcnJlY3Qgb2J2aW91c2x5IGJyb2tlbiB1c2Ugb2YgdGhlIEtMT09LVVAgbWFjcm8gdG8gYmUKICAgY29uc2lzdGVudCBhdCBsZWFzdAoKMjAwNy0wNS0yNCAyMDo1MSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNy5oOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogYWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdXBjb21pbmcgRnJlZUJTRCA3CgoyMDA3LTA1LTI0IDE0OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCBsaWJjdXJyZW50IHRvIDIwIHRvIGxlYXZlIHNwYWNlIGZvciA1LjQueCByZWxlYXNlcwoKMjAwNy0wNS0yNCAxMjo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBsaWJyYXJ5IGxpbmtpbmcgb24gSFAtVVggMTEuMjMvSUE2NAoKMjAwNy0wNS0yMyAxOTowNSAgdGFuZGVycwoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuaW4sIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IEJVRzogMTYxOTgyNzogbGluayBuZXQtc25tcCBsaWJyYXJpZXMgYW5kIGJpbmFyaWVzCiAgIGFnYWluc3QgdGhlIG5ldC1zbm1wIGxpYnJhcmllcyB0aGV5IHJlYWxseSBkZXBlbmQgb24KICAgLSByZWZsZWN0IGxpYnJhcnkgaW50ZXJkZXBlbmRlbmNpZXMgYXQgbGluayB0aW1lCiAgIC0gZml4IGRlcGVuZGVuY2llcyBvbiBsaWJjcnlwdG8sIGxpYnBrY3MxMSBhbmQgbGlia3N0YXQKICAgLSBpbnN0YWxsIGxpYnJhcmllcyBpbiBjb3JyZWN0IG9yZGVyIChpbXBvcnRhbnQgZm9yIGxpYnRvb2wKICAgcmVsaW5raW5nKQogICBORVdTOiBQZXJsOiBsaW5rIFBlcmwgbW9kdWxlcyBhZ2FpbnN0IHRoZSBleGFjdCBzZXQgb2YgbGlicmFyaWVzCiAgIHRoZXkgZGVwZW5kIG9uCgoyMDA3LTA1LTIyIDE2OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIHN2biBleHBvcnQgaW5zdGVhZCBvZiBjaGVja291dAoKMjAwNy0wNS0yMiAwMDowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpZ25vcmUgd2luRXh0RExMIGluIGNvbW1lbnQgY2hlY2sKCjIwMDctMDUtMjEgMjM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jOgoKICAgLy8gLT4gQyBjb21tZW50CgoyMDA3LTA1LTIxIDIzOjMzICB0YW5kZXJzCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4xMC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgc3luYyB3aXRoIDUuNCwgdGhlc2UgYXJlIG9ic29sZXRlIG5vdwoKMjAwNy0wNS0yMSAyMzoxMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSBpbmxpbmluZyBvbiBzb2xhcmlzIGFzIHRoZXJlIGFyZSBzb21lCiAgIGxpbmtpbmcgZXJyb3JzIHRoYXQgc2hvdyB1cCBpZiB0aGUgaW5saW5lIHN1cHBvcnQgaXMgbGVmdAogICBlbmFibGVkLgoKMjAwNy0wNS0yMSAwNjowNSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQXQgbGVhc3QgU3VuIEMgNS43IGZhaWxzIGlmIG9uZSB0cmllcyB0bwogICBhY2Nlc3MgX19mdW5jX18gaW4gYSBleHRlcm4gaW5saW5lIGZ1bmN0aW9uLCBzbyB0ZXN0IGZvciB0aGF0CiAgIGNhc2UuCgoyMDA3LTA1LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IEJVRzogMTYxOTgyNzogbGluayBhZ2FpbnN0IG5lZWRlZCBleHRlcm5hbAogICBsaWJyYXJpZXMgYXQgbGlicmFyeSBsaW5rIHRpbWUgKHdoZXJlIHRoZXkgYXJlIHJlZmVyZW5jZWQpLAogICByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCiAgIEFscmVhZHkgY292ZXJzIG1vc3Qgb2YgbGlibmV0c25tcG1pYnMnIGV4dGVybmFsIGRlcGVuZGVuY2llcy4KICAgRml4ZXMgYnVpbGQgaXNzdWVzIG9uIHNvbWUgcGxhdGZvcm1zIChlLmcuIGJ1aWxkaW5nIHdpdGggc2hhcmVkCiAgIGxpYnJhcmllcyBvbiBBSVgpLiBUZXN0ZWQgb24gZGlmZmVyZW50IHZlcnNpb25zIG9mIExpbnV4LAogICBTb2xhcmlzLCBIUC1VWCwgQUlYIGFuZCBJUklYLgoKMjAwNy0wNS0xOSAxNToyNyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IENoZWNrIGZvciBzdXBwb3J0IG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zCiAgIGluc3RlYWQgb2YgbmVzdGVkIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIHdoZW4gZGV0ZXJtaW5pbmcgaWYKICAgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd29yawoKMjAwNy0wNS0xOSAwODo0MCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB1c2Ugb2YgdGhlIEM5OSBwcmVkZWZpbmVkIHZhcmlhYmxlCiAgIF9fZnVuY19fIGluIGFkZGl0aW9uIHRvIHRoZSBHQ0Mgc3ltYm9sIF9fRlVOQ1RJT05fXyB0byBnZXQgdGhlCiAgIG5hbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24KCjIwMDctMDUtMTggMTg6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzIxMDk2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiByZW1vdmUKICAgdW51c2VkIHZhcmlhYmxlIHN0YXRzIGZyb20ga2VybmVsIGV4dHJhY3Rpb24gZm9yIGJldHRlcgogICBwb3J0YWJpbGl0eS4KCjIwMDctMDUtMTggMTg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE5MjU0OiBmcm9tICJDaHJpc3RhbiBKdW5nIjogdXBkYXRlCiAgIEhSRlNfaWdub3JlIGxpc3QgdG8gY3VycmVudCBsaW51eCBsaWtlbHlob29kcwoKMjAwNy0wNS0xOCAxODowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MTkyNTM6IGZyb20gIkNocmlzdGlhbiBKdW5nIjogZml4CiAgIHNraXBORlNJbkhvc3RSZXNvdXJjZXMgc28gaXQgZG9lcyBub3QgYnJlYWsgb24gdGhlIHNlY29uZCB3YWxrIG9mCiAgIHRoZSB0YWJsZS4KCjIwMDctMDUtMTggMTc6NTUgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvaGVhZGVyIGFuZCBhZGp1c3RlZCBhY2NvbmZpZy5oIGFmdGVyIGNoYW5nZXMgaW4gcjE2Mzg3CgoyMDA3LTA1LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTU0MDY6IGZyb20gbWl0c3VydV9jaGluZW46IHJlZ2lzdHJhdGlvbgogICBvcmRlcmluZyBmaXhlcyBmb3IgaWNtcFN0YXRzVGFibGUKCjIwMDctMDUtMTggMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxNTM5NTogZml4IGljbXAgdGFibGUgZXJyb3JzIGluIG5ldyBpY21wCiAgIGNvZGUKCjIwMDctMDUtMTggMTc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIAoKMjAwNy0wNS0xOCAxNTowNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IEFJWDogZml4IGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgYnVpbGRpbmcgaW5zdGVhZCBvZiBmb3JjaW5nCiAgIHN0YXRpYwoKMjAwNy0wNS0xOCAxNDoxOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX0NIRUNLX01FTUJFUlMgaW5zdGVhZCBvZgogICBBQ19DSEVDS19TVFJVQ1RfRk9SIHdoZW4gY2hlY2tpbmcgZm9yIHN0cnVjdCBpcHN0YXQgbWVtYmVycyBpbgogICBvcmRlciB0byBtYWtlIGNvbmZpZ3VyZS5pbiBzbWFsbGVyCgoyMDA3LTA1LTE4IDEwOjIyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBDb3JyZWN0IHRoZSBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGZvcgogICBob3N0L2hyX3N0b3JhZ2UKCjIwMDctMDUtMTggMDk6NTcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBEbyBub3QgdGVybWluYXRlIG9uIFNJR0NITEQgc2luY2UgZGFzaCBhbmQKICAgc291bWUgYm91cm5lIHNoZWxscyB3aWxsIGV4aXQgdGhlIG1haW4gc2hlbGwgd2hlbiBhIHN1YnNoZWxsCiAgIHRlcm1pbmF0ZXMgaW4gdGhhdCBjYXNlLgoKMjAwNy0wNS0xOCAwOToyMiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFVuZG9pbmcgYWNjaWRlbnRhbCBjaGFuZ2UgY29tbWl0dGVkIGluIHIxNjM3My4KCjIwMDctMDUtMTcgMjM6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzM3OiBJbXBsZW1lbnQgX3Nlc3Nfb3BlbiBpbiB0ZXJtcwogICBvZiBzbm1wX3Nlc3NfYWRkCgoyMDA3LTA1LTE3IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiBzZW5kaW5nIHNvIHRoYXQKICAgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiByZWNlcHRpb24gc28KICAgdGhhdCBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBhcHBzOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiBzZW5kaW5nIHNvIHRoYXQKICAgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MjA0MjQ6IEhvbm9yCiAgIE5FVFNOTVBfRFNfTElCX0RFRkFVTFRfUE9SVCBvdmVyIHRoZSBkZWZhdWx0IHN5c3RlbQoKMjAwNy0wNS0xNyAyMTo1MyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxMDYzMjogZnJvbSBtYXZhcmxleTogZml4IG1lbW9yeSBsZWFrIG9uCiAgIGJyb2tlbiBjb250YWluZXIgaW5zZXJ0aW9ucyBmb3IgdGhlIGlwQWRkcmVzc1RhYmxlCgoyMDA3LTA1LTE3IDE4OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTcxOTI0NDogZml4IG1mZCBnZW5lcmF0aW5nIG1hcCBmdW5jdGlvbgoKMjAwNy0wNS0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcwODI0MzogZnJvbSBuaG9ybWFuOiBpbXBsZW1lbnQgdGhlCiAgIGlwRGVmYXVsdFJvdXRlVGFibGUgb24gbGludXgKCjIwMDctMDUtMTcgMTY6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHBvcnRzOiBwYXRjaDogMTcwNjM0NDogZnJvbSBuYXlsb3I6IGZpeCBjb21waWxhdGlvbiB3aXRoCiAgIGN5Z3dpbgoKMjAwNy0wNS0xNyAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzAwMTU3OiBmcm9tIGFmcmlrYTogZml4ZXMgb3JkZXJpbmcgb2YgZXhlYwogICB0b2tlbnMgaW4gdGhlIHJlc3VsdGluZyBtaWIgdHJlZQoKMjAwNy0wNS0xNyAxNTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE2MTcyNTU6IGZpeCBsZW5ndGggb2YgdGhlIGhpc3RvcnkgYXJyYXkKICAgdG8gbWF0Y2ggY29kZS4KCjIwMDctMDUtMTcgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDEyMjU0NDA6IEFwcGx5IGludGVudCBvZiBwYXRjaDogdG8gZGVsYXkKICAgc2lnaHVwIHRpbGwgaXQgaXMgc2FmZS4KICAgQ0hBTkdFUzogc25tcHRyYXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0bwogICBkZWxheSBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgoKMjAwNy0wNS0xNyAxMzozNSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgY29uZmlnX2Vycm9yIGluc3RlYWQgb2YgY29uZmlnX3JlcXVpcmUgb2YKICAgYSBib2d1cyBmaWxlLyNlcnJvciB0byBnZW5lcmF0ZSBlcnJvciBtZXNzYWdlcyBhdCBjb25maWd1cmUgdGltZS4KCjIwMDctMDUtMTcgMDQ6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAxNjQ1Njk4OiBmaXggNjQtYml0IHNpZ25lZCBpbnRlZ2VyCiAgIGVuY29kaW5nCgoyMDA3LTA1LTE2IDIzOjUzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IEhQLVVYOiBIUC1VWCBuZWVkcyBfUkVFTlRSQU5UIGRlZmluZWQgdG8gcGljayB1cAogICBzdHJ0b2tfci4KICAgT3RoZXJ3aXNlLCBhdCBsZWFzdCBmb3IgNjQtYml0IGNvZGUsIHN0cnRva19yIHdpbGwgbm90IHdvcmsKICAgYW5kIHdpbGwgbWFrZSBuZXQtc25tcCBzZWdmYXVsdC4KCjIwMDctMDUtMTYgMjM6MzkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggcGF0Y2ggMTYyNTA2OSAocjE2MzY1KSB0byBub3QgYnJlYWsgdGhlIGJ1aWxkIG9uIFNvbGFyaXMKICAgMi42LzcKCjIwMDctMDUtMTUgMTc6MzMgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgLSBhZGQgd2FybmluZyBpZiBzdGFyIG5vdCBhdmFpbGFibGUKICAgLSBmaXggcGF0dGVybiB0byBleGNsdWRlIC5zdm4gZGlycyBmcm9tIHRhcmJhbGxzCgoyMDA3LTA1LTE1IDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHdhcm4gaWYgc3RhciBub3QgYXZhaWxhYmxlCgoyMDA3LTA1LTE1IDE0OjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgZml4IHR5cG8KCjIwMDctMDUtMTQgMjE6NDkgIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIENGTEFHUyB0byBsaW5rIGxpbmUKCjIwMDctMDUtMTQgMjE6NDggIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIENGTEFHUyB0byBsaW5rIGxpbmUKCjIwMDctMDUtMTQgMTU6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNjI1MDY5OiBzcGVlZCBpbXByb3ZlbWVudHMgZm9yIHNvbGFyaXMKICAgcm91dGluZyB0YWJsZSBhY2Nlc3MKCjIwMDctMDUtMTQgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTU5NTU2ODogZnJvbSBjeXJpbF9tYXJnYXJpYTogZml4CiAgIGRlbGVnYXRlZCBTRVQgcmVxdWVzdHMgZnJvbSBhZ2VudHggc3ViYWdlbnRzCgoyMDA3LTA1LTE0IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHRvIHBvaW50IHRvIHdpa2kgYW5kIGEgZmV3IG1vcmUgY3ZzIC0+IHN2biBjaGFuZ2VzCgoyMDA3LTA1LTEzIDE0OjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVhZCB0aGUgY29uZmlnIHBhcmFtZXRlcnMgZGVmVGFyZ2V0IGFuZAogICBkZWZEb21haW4gZnJvbSBzbm1wLmNvbmYgYXMgd2VsbCBhcyBmcm9tIDxhcHBsaWNhdGlvbj4uY29uZgoKMjAwNy0wNS0xMiAxMToxNyAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERlYWxsb2NhdGUgdGhlIF9taWJpbmRleGVzIGNhY2hlIGluCiAgIHNodXRkb3duX21pYiB0byBtYWtlIGZvciBhIGNsZWFuZXIgZXhpdCBvZiB0aGUgbGlicmFyeQoKMjAwNy0wNS0xMiAxMToxNCAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERlYWxsb2NhdGUgdGhlIGNvbmZtaWJzIGFuZCBjb25mbWliZGlycwogICB2YXJpYWJsZXMgaW4gc2h1dGRvd25fbWliIHRvIG1ha2UgZm9yIGEgY2xlYW5lciBleGl0IG9mIHRoZQogICBsaWJyYXJ5CgoyMDA3LTA1LTExIDIxOjA2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjg3MzM2OiBTdGFydCB1c2luZyB0aGUgZW5oYW5jZWQKICAgcmVhZF9jb25maWcgaW50ZXJmYWNlCgoyMDA3LTA1LTExIDIwOjMzICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMiBvZiB0aGUgcGF0Y2ggLSBXaGVuIHJlZ2lzdGVyaW5nCiAgIG11bHRpcGxlIHByZW1pYiBoYW5kbGVycyBvbmx5IHRoZSBsYXN0IG9uZSB3YXMgcmVnaXN0ZXJlZCBwcmVtaWIsCiAgIHRoZSBvdGhlcnMgd2VyZSByZWdpc3RlcmQgYXQgdGhlIG5vcm1hbCB0aW1lLiBUaGlzIHBhdGNoIHB1dHMgYWxsCiAgIHJlZ2lzdHJhdGlvbiBpbiBvbmUgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgcHJvYmxlbWF0aWMgdmFsdWUgYXMKICAgYW4gYXJndW1lbnQgYW5kIG1ha2VzIHRoZSBvbGQgZnVuY3Rpb25zIHRoaW4gd3JhcHBlcnMgb2YgdGhlIG5ldwogICBvbmUKCjIwMDctMDUtMTEgMjA6MjQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRTogc25tcGxpYjogUEFUQ0ggMTY4NzMyOTogQXBwbGllZCBwYXJ0IDMgb2YgdGhlIHBhdGNoIC0gdXNlCiAgIHRoZSBzYW1lIGFsZ29yaXRobSB0byBkZXRlcm1pbmUgd2hhdCB0byB1bnJlZ2lzdGVyIGFzIGlzIHVzZWQgdG8KICAgZGV0ZXJtaW5lIHdoYXQgdG8gcmVnc3RlcgoKMjAwNy0wNS0xMSAxNjozMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBEb24ndCBsb2cgaG9zdC9ocl9wcm9jIGV2ZW50cyBpbiB0aGUgc25tcGQgZG9tYWluCgoyMDA3LTA1LTExIDE2OjI3ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIERlY29yYXRlIG1vcmUgZGVidWcgbGluZXMgd2l0aCB0aGUgdGFnIHRoYXQgY29udHJvbHMgdGhlIGxvZwoKMjAwNy0wNS0xMSAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjI4NjEzOiBSZXN0b3JlIG1lbVRvdGFsRnJlZS4wIG9uIFNvbGFyaXMKCjIwMDctMDUtMTAgMjE6NTIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIHB5dGhvbi9zZXR1cC5weToKCiAgIE5FV1M6IHB5dGhvbjogUEFUQ0g6IDE3MTYxMTQ6IExldCBweXRob24gYnVpbGQgaW4gc291cmNlIHRyZWUKICAgUGF0Y2ggcHJvdmlkZWQgYnkgSm9jaGVuIEZyaWVkcmljaCAoRGViaWFuIHBhdGNoICMzOCkuCgoyMDA3LTA1LTEwIDA1OjE4ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMSBvZiB0aGUgcGF0Y2ggLSBsZXNzZW5zIHRoZSBzY29wZSBvZgogICB0aGUgbHRtcDIgdmFyaWFibGUKCjIwMDctMDUtMDkgMjM6NTcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBkb2N1bWVudCBvcHRpbWl6ZWQgSVJJWCBjcHUgc3RhdHMKCjIwMDctMDUtMDkgMjM6NDkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmg6CgogICBORVdTOiBpcml4OiBQQVRDSDogMTcwOTc0ODogT3B0aW1pemVkIElSSVggY3B1IHN0YXRzCgoyMDA3LTA1LTA5IDIxOjIzICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXBkYXRlIHRvIHNob3cgc3ZuIHJlcG8gdG9vCgoyMDA3LTA1LTA5IDE1OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGljbXBTdGF0c1RhYmxlIGlzIG9ubHkgaW1wbGVtZW50ZWQgZm9yIExpbnV4CgoyMDA3LTA1LTA4IDE5OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZXZlcnQgbWlzdGFrZW5seSBjb21taXR0ZWQgZXh0cmEgdHJhY2UgbG9ncwoKMjAwNy0wNS0wNyAyMDo0NiAgaGFyZGFrZXIKCiAgICogIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB1cGRhdGUgYWdlbnQ6OmRlZmF1bHRfc3RvcmUgcGVybCBtb2R1bGUgZm9yIG5ldyBkZWZzCgoyMDA3LTA1LTA3IDIwOjI0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBzdm4gY29udmVyc2lvbiBmaXhlcwoKMjAwNy0wNS0wNyAyMDoyMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE5FV1M6IHNubXBkOiBCVUc6IDE3MTI5ODg6IGRlZmF1bHQgYW5kIGNvbmZpZ3VyYWJsZSBtYXhpbXVtCiAgIG51bWJlciBvZiB2YXJiaW5kcyByZXR1cm5hYmxlIHRvIGEgR0VUQlVMSyByZXF1ZXN0CgoyMDA3LTA1LTA3IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgcmVuYW1lIG9mIGJyYW5jaCBkaXJzCgoyMDA3LTA1LTA3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYXR0ZW1wdGVkICh1bnRlc3RlZCkgdXBkYXRlCgoyMDA3LTA1LTA3IDEzOjU1ICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIGRvbid0IGRlbGV0ZSB0YXJiYWxsIGlmIHNjcCBmYWlscwoKMjAwNy0wNS0wNCAyMDoyNyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBTTk1QIFNFVCBmb3IgSVAgYWRkcmVzc2VzIG9uIDY0LWJpdAoKMjAwNy0wNS0wNCAxMDoyMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZHJhZ29uZmx5LmgKCjIwMDctMDUtMDMgMjM6MDEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5Lmg6CgogICBDSEFOR0VTOiBCVUc6IDE3MTA5MTA6IGluaXRpYWwgc3VwcG9ydCBmb3IgRHJhZ29uRmx5IEJTRAoKMjAwNy0wNS0wMyAyMjoxMCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBTTk1QIFNFVCBmb3IgSVAgYWRkcmVzc2VzIG9uIDY0LWJpdAogICBQYXRjaCBwcm9wb3NlZCBieSBKZWZmIExhbmdlLgoKMjAwNy0wNS0wMyAxNjowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIGVhcmx5IEFJWCk6IHVzZSB1aW50MzJfdCBpLnMuby4gX191aW50MzJfdAoKMjAwNy0wNS0wMiAxMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBzaW5nbGUtbGluZSBleHRlbmQgc2NyaXB0cy4KCjIwMDctMDUtMDEgMTk6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIHRlc3QgZm9yIElGQV9GX1RFTVBPUkFSWSBiZWZvcmUgdXNpbmcKICAgLSByZW1vdmUgcmVkdW5kYW50IGlmZGVmCgoyMDA3LTA1LTAxIDExOjM0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBTdXBwb3J0IGZvciBmb3J3YXJkaW5nIHRyYXBzIGJ5IE9JRCBzdWJ0cmVlLgogICAoQ29uc2lzdGVudCB3aXRoIHN1YnRyZWUtYmFzZWQgc2NyaXB0IHByb2Nlc3NpbmcpLgoKMjAwNy0wNC0zMCAxNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDMwMDQ6IENvbnNvbGlkYXRlIHNubXA2IGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBOZWlsIEhvcm1hbiwgcGx1cyBzb21lIGV4dHJhIHRpZHlpbmcgdXAuCgoyMDA3LTA0LTMwIDE0OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMjM2NjogU3VwcG9ydCBmb3IgaWNtcFN0YXRzVGFibGUKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTmVpbCBIb3JtYW4KCjIwMDctMDQtMzAgMTQ6MzEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMjM2MTogUmVhZCBzdGF0cyBmcm9tIC9wcm9jL25ldC9zbm1wNgoKMjAwNy0wNC0zMCAxNDoxNCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4gSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkLgoKMjAwNy0wNC0zMCAxMzoyNiAgZHRzMTIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAwNzM3OiBUaWR5IHVwIHNldFNlcmlhbE5vCiAgIGltcGxlbWVudGF0aW9ucy4KCjIwMDctMDQtMzAgMTM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAwNzMyOiBGaXggZGVidWcgb3V0cHV0IHN0YXRlbWVudHMuCgoyMDA3LTA0LTMwIDEzOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzA6IFJlbW92ZSB1bnVzZWQgZXh0ZXJuIGRlY2xhcmF0aW9uLgoKMjAwNy0wNC0zMCAxMTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjk4MTg0OiBSZWdpc3RlciBub24tZGVmYXVsdCBjb250ZXh0CiAgIGludGVnZXJzIGFzIHdyaXRhYmxlLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXJrIE5heWxvci4KCjIwMDctMDQtMzAgMTE6MjYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY5ODE3OiBJbXByb3ZlZCBSRkMgNDI5MyBzdXBwb3J0LgogICBJbmNsdWRlcyBub24tdW5pY2FzdCBhbmQgcmFuZG9tbHkgY2hvc2VuIElQIGFkZHJlc3Nlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgVmFydW4gQ2hhbmRyYW1vaGFuCgoyMDA3LTA0LTMwIDExOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjkyNzY4OiBGaXggY29weWluZyBvZiBub24tb2N0ZXQtYWxpZ25lZAogICBJUCBhZGRyZXNzIHByZWZpeGVzLgoKMjAwNy0wNC0zMCAxMDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3MDUxMTogSW1wbGVtZW50IG5ldHdvcmsgY29ubmVjdGlvbgogICBwcm9jZXNzIElEIG9iamVjdHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFZhcnVuIENoYW5kcmFtb2hhbgoKMjAwNy0wNC0zMCAxMDo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBGaXggZGVjbGFyYXRpb24gb2Ygc25tcF9zZXNzX3JlYWRfZXh0ZCgpCgoyMDA3LTA0LTMwIDEwOjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzI1OiBGaXggcHJvYmxlbSB3aXRoIG9wZXJhdG9yCiAgIHByZWNlZGVuY2UuCgoyMDA3LTA0LTMwIDEwOjIxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzE5OiBEZWNsYXJlIHNubXBfc2Vzc19yZWFkX2V4dGQoKQoKMjAwNy0wNC0zMCAxMDoxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTg6IE1ha2UgX3Nlc3Nfc2VscG9sX2luZm8gc3RhdGljLgoKMjAwNy0wNC0zMCAxMDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTc6IFJlbW92ZSBhbiB1bnVzZWQgbG9jYWwgdmFyaWFibGUKCjIwMDctMDQtMzAgMTA6MDcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTY6IERvbid0IGRyb3AgY29uc3QgZnJvbSBjYXN0cy4KCjIwMDctMDQtMjcgMTA6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBCcmluZyBkeW5hbWljIG1vZHVsZSB1bmxvYWQgcHJvY2Vzc2luZyBtb3JlIGludG8gbGluZSB3aXRoCiAgICJub3JtYWwiIE1JQiBtb2R1bGVzLiBTdWdnZXN0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KICAgU2VlIGNvZGVycyB0aHJlYWQgInNodXRkb3duX2ZvbyBvciBkZWluaXRfZm9vIi4KCjIwMDctMDQtMjcgMTA6MTcgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBVcGRhdGUgcG9zdC1yZWxlYXNlIGFubm91bmNlbWVudCBpbnN0cnVjdGlvbnMuCgoyMDA3LTA0LTI0IDEyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIE9JRCBoYW5kbGluZyBvZiBzaW5nbGUtbGluZSBleHRlbmQgc2NyaXB0cy4KICAgUmVwb3J0ZWQgYnkgTWF4IG9uIGNvZGVycyBsaXN0LCA3dGggQXByaWwuIFNlZSB0aHJlYWQKICAgIi4uLiBzZWdmYXVsdCAuLiB3aGVuIGF0dGVtcHRpbmcgU05NUCBHRVQgb24gZXh0ZW5kIG9yIGV4ZWMgaXRlbSIKCjIwMDctMDQtMjAgMDg6MzAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBvZiBhIGxvYWQgdGhyZXNob2xkIG9mIDAuCiAgIFJlcG9ydGVkIGJ5IEZvbmcgVHN1aS4KCjIwMDctMDQtMjAgMDg6MjEgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIExvbmctdGVybSBsb2FkIGF2ZXJhZ2UgaXMgY2FsY3VsYXRlZCBvdmVyIDE1IG1pbnV0ZXMsIG5vdCAxMC4KICAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpCgoyMDA3LTA0LTE5IDEyOjUzICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVHdlYWsgQ2hhbmdlTG9nIGluc3RydWN0aW9ucyBmb3IgU1ZOCgoyMDA3LTA0LTEwIDE0OjE2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIERldGVjdCBPSUQgcmV0cmFja2luZyAoYXMgd2VsbCBhcyBzaW1wbGUgcmVwZXRpdGlvbnMpIHdoZW4KICAgYnVsa3dhbGtpbmcgYW4gT0lEIHRyZWUuCiAgIFNlZSB1c2VycyB0aHJlYWQgIm1pc3NpbmcgaW5kaWNlcyBpbiBidWxrd2FsayByZXN1bHQiLgoKMjAwNy0wNC0xMCAxMTo0OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgQ2xhcmlmeSBjb3B5cmlnaHQgc3RhdHVzIG9mIFdpbjMyIEFQSSBkZWZpbml0aW9ucy4KCjIwMDctMDQtMTAgMTE6MjcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4Lmg6CgogICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgQlNELWRlcml2ZWQgVENQVFYqIGRlZmluaXRpb25zLgoKMjAwNy0wNC0wOSAxNDowMiAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICAtIHJlbW92ZSBkZWJ1Z2dpbmcKICAgLSBjaGVjayByYyBmb3IgdGFyLCBnemlwIGFuZCBzY3Agc3RlcHMKCjIwMDctMDQtMDYgMTg6MzggIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgc3ZuIGVxdWl2YWxlbnQgb2YgY3ZzdXAKCjIwMDctMDQtMDMgMDg6NTQgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRW1waGFzaXNlIHRoZSB1c2Ugb2YgU05NUHYzIGluIERpc01hbiBtb25pdG9yaW5nLgogICBGaXggdGhlIHN5bnRheCBvZiBub24tZXhpc3RhbmNlL3ZhbHVlLWNoYW5nZSB0ZXN0cy4KCjIwMDctMDQtMDIgMTQ6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNDYzMjc6IFJlc2V0ICJpbmNsdWRlQWxsRGlza3MiIGZsYWcgd2hlbgogICByZWxvYWRpbmcuCgoyMDA3LTA0LTAyIDE0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjAyMjg2OiBEb24ndCBsZXQgdGFibGUgaG9sZXMgYmxvY2sgbGF0ZXIKICAgcm93cy4KCjIwMDctMDQtMDIgMTM6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNzM3ODI6IFJlc3RvcmUgUGVyZlN0YXQgdmFsdWVzIGZvciBGcmVlQlNECiAgIDUueCBzeXN0ZW1zLgogICBJdCdzIHVuY2xlYXIgd2h5IHRoZSAibmV3IiBjYWxjdWxhdGlvbiB3YXMgYSkgcHJvcG9zZWQsIGIpCiAgIHdpdGhkcmF3biwKICAgYW5kIGMpIHdoYXQgd2FzIHdyb25nIHdpdGggdGhlIHByZXZpb3VzIGNhbGN1bGF0aW9uICh3aGljaCBzZWVtcwogICB0bwogICBtYXRjaCB0aGUgb3V0cHV0IG9mICdwcycpCgoyMDA3LTA0LTAyIDEzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDkwMjYxMDogRG9uJ3QgZGlzY2FyZCBwZW5kaW5nIGRhdGEgZm9sbG93aW5nCiAgIGEgVFJBUC4KCjIwMDctMDQtMDIgMTI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyODAxOiBGaXggb3JkZXJpbmcgb2YgU01VWC1yZWdpc3RlcmVkCiAgIHN1YnRyZWVzLgoKMjAwNy0wNC0wMiAxMjozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjg1MDY3OiBNb3JlIHByZWNpc2UgaGFuZGxpbmcgb2YKICAgU05NUHYzLWFkbWluIE1JQiB0YWJsZXMuCiAgIFRoaXMgYWN0dWFsbHkgZml4ZXMgdGhyZWUgc2VwYXJhdGUgcHJvYmxlbXM6CiAgICogIEEgR0VUIHJlcXVlc3QgZm9yICd2YWNtQWNjZXNzU3RhdHVzLiJncm91cCIuIiIuMy40JyB3aWxsICAgCiAgICAgIHN1Y2NlZWQgICAgKHNpbmNlIFZBQ00gY2hlY2tzIGFjY2VwdCB0aGUgZ2l2ZW4gc2VjdXJpdHkgbGV2ZWwKICAgICAgKm9yKmhpZ2hlciopICAyMDA3LTA0LTAyIDEyOjI2ICBkdHMxMgoKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDaGVjayB0aGF0IEdFVCByZXF1ZXN0cyBtYXRjaCBhIHZhbGlkIE9JRC4KICAgKE90aGVyd2lzZSBhIHJlcXVlc3QgZm9yIGhyU3RvcmFnZXtDb2x1bW59LntpbmRleH0ue2FueXRoaW5nfQogICB3aWxsIGlnbm9yZSB0aGUgZXh0cmEgc3ViaWRzLCBhbmQgcmV0dXJuIHN1Y2Nlc3MpCgoyMDA3LTA0LTAyIDEyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmM6CgogICBQcmV2ZW50IGNyYXNoIHdoZW4gd2Fsa2luZyAoaW52YWxpZD8pIEV2ZW50LU1JQiBPYmplY3RzIFRhYmxlLgoKMjAwNy0wNC0wMiAxMTozMCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcyBpbiB0aGUgcmUtd29ya2VkIG1ha2VyZWxlYXNlIHNjcmlwdC4KCjIwMDctMDMtMjkgMTI6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggc3ludGF4IGVycm9yICgiPT0iIGlzIGJhZCkKCjIwMDctMDMtMjcgMDg6NTUgIGR0czEyCgogICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWFkIHVzZXItcHJvbXB0ZWQgdmFsdWVzIGZyb20gb3JpZ2luYWwgc3RkaW4gKG5vdCAvZGV2L251bGwpCgoyMDA3LTAzLTI3IDA4OjM4ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFjY2VwdCAnMmMnIGFzIGEgdmFsaWQgcmVzcG9uc2Ugd2hlbiBjaG9vc2luZyB0aGUgZGVmYXVsdCB2ZXJzaW9uCgoyMDA3LTAzLTI3IDA4OjI5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGNvbmZpZ3VyZTogQlVHOiAxNTY3MzI0OiBDbGFyaWZ5IHByb21wdGluZyBmb3IKICAgdXNlci1zdXBwbGllZCB2YWx1ZXMuCiAgIE5vdyBvbmx5IHJlbWVtYmVycyAoYW5kIHVzZXMpIHByZXZpb3VzIHZhbHVlcyB3aGVuIGV4cGxpY2l0bHkKICAgdG9sZCB0byBkbyBzbywKICAgZS5nLiBjb25maWd1cmUgLUMKCjIwMDctMDMtMjcgMDg6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGluY29uc2lzdGVuY3kgaW4gcGF0Y2ggIzE2MjcwNDkgLSA8cG9sbC5oPiB2cyA8c3lzL3BvbGwuaD4KCjIwMDctMDMtMjUgMjI6MzEgIGR0czEyCgogICAqICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBWYXJpYWJsZS1sZW5ndGggc3RyaW5nIHZhbHVlcyBhcmUgbW9yZSBsaWtlbHkgdGhhbiBmaXhlZCBsZW5ndGguCgoyMDA3LTAzLTI1IDIyOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiA4MzM2NzM6IE1vcmUgZm9jdXNlZCBzaXplIGNoZWNrcy4KCjIwMDctMDMtMjUgMjE6MjUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzcwNjM6IENoZWNrIGZvciBmYWlsZWQgbWFsbG9jIGNhbGxzLgoKMjAwNy0wMy0yNSAxOTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIENoZWNrIFNFVCByZXF1ZXN0cyBhZ2FpbnN0IHRoZSBjb3JyZWN0IHR5cGUgKElQIEFkZHJlc3MgIT0gT2N0ZXQKICAgU3RyKQoKMjAwNy0wMy0yNSAxODo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2ODUwODE6IENoZWNrIGZvciB2YWxpZCBPSUQgb24gRnJlZS9VbmRvCiAgIHBhc3Nlcy4KCjIwMDctMDMtMjMgMDk6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQ0hBTkVHUzogc25tcGxpYjogQlVHOiAxNjg2Mzg0OiBEb2N1bWVudCBub24tdXNlIG9mICdyZW1vdGVfcG9ydCcKICAgZmllbGQuCgoyMDA3LTAzLTIzIDA5OjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIEFsbG93IHNwYWNlIGZvciBleHRlcm5hbCBpbmRleGVzIHdoZW4gc2F2aW5nIHRhYmxlIGVudHJpZXMuCiAgIChTZWUgcGF0Y2ggIzE2NDIyNTUpCgoyMDA3LTAzLTIzIDA5OjE0ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDIyNTU6IEhhbmRsZSBzYXZpbmcgbG9uZwogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUgZW50cmllcy4KCjIwMDctMDMtMjMgMDk6MDkgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjgxOTc3OiBBZGQgY2FsbGJhY2tzIHByaW9yIHRvIHJlYWRpbmcKICAgY29uZmlnLgoKMjAwNy0wMy0yMyAwOTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3NjQ3ODogZml4IHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzcwogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjc2NDc2OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCgoyMDA3LTAzLTIzIDA5OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY1MzY3MDogQ29uc2lzdGVudCBTTk1QdjMgYmVoYXZpb3VyCiAgIHdoZW4gb3BlbmluZyBzZXNzaW9ucy4KCjIwMDctMDMtMjMgMDg6NTcgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjI3MDQ5OiBOZXcgQVBJIHRvIGhhbmRsZSBsYXJnZSBudW1iZXJzCiAgIG9mIGZpbGUgZGVzY3JpcHRvcnMuCgoyMDA3LTAzLTIyIDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4MTAzMDogQmV0dGVyIGhhbmRsaW5nIG9mIGVtcHR5CiAgIGFwcHR5cGUgY29uZmlncy4KCjIwMDctMDMtMjIgMTk6MTIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsICAgCiAgICAgIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2Nzg3ODg6IEJldHRlciBoYW5kbGluZyBvZiBTTVVYIHNvY2tldAogICBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODMwNTQ6IHNldCB1ZHBFbmRwb2ludEluc3RhbmNlIHRvCiAgIGlkZW50aWZ5IGRpZmZlcmVudCBwcm9jZXNzZXMuCgoyMDA3LTAzLTIxIDEyOjM1ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBEZWNsYXJlIE9JRCBjb25zdGFudHMgYXMgc3VjaCAocmF0aGVyIHRoYW4gQVBJIGNhbGxzKS4KICAgUHJvcG9zZWQgYnkgQWxleCBCdXJnZXIKCjIwMDctMDMtMjAgMjA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTY2NjczNzogaW5jbHVkZSBpcHY2IGNvdW50cyBpbgogICB1ZHBJbkRhdGFncmFtcywgdWRwTm9Qb3J0cywgdWRwSW5FcnJvcnMsIHVkcE91dERhdGFncmFtcwoKMjAwNy0wMy0xOSAyMjowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jOgoKICAgdXNlIHBtRnJlZVJlc3VsdCgpIGluc3RlYWQgb2YgZnJlZSgpCgoyMDA3LTAzLTE5IDA5OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDMtMTYgMTQ6MDQgIGR0czEyCgogICAqICBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TLCBkaXN0L2NoYW5nZWxvZ2ZpeCwgZGlzdC9tYWtlcmVsZWFzZSwgICAKICAgICAgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIENvbnZlcnQgYnVpbGQgc3lzdGVtIHRvIFNWTiB2ZXJzaW9uLgoKMjAwNy0wMy0xNSAxMDo1OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTY4MTA3MzogI2lmZGVmIGJhc2VkIGNvbmZpZ19lcnJvciBpbnN0ZWFkCiAgIG9mIHNwZWNpYWwgY2FzZXMgaW4gY29uZmlndXJlCgoyMDA3LTAzLTE1IDEwOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAzLTE0IDIzOjMxICB0YW5kZXJzCgogICAqICBSRUFETUUuaXJpeCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmg6CgogICBORVdTOiBJUklYOiBQQVRDSDogMTY3NTg2OTogZnJvbSBiYmljZTogQ1BVIHN0YXRpc3RpY3MgZm9yIElSSVgKICAgYmFzZWQgb24gUENQCgoyMDA3LTAzLTE0IDIyOjA5ICB0YW5kZXJzCgogICAqICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4MTA0MzogZnJvbSBtYWdmcjogY2xlYW4gdXAgaGVscGVyCiAgIGluY2x1ZGVzCgoyMDA3LTAzLTE0IDIxOjU0ICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjgxMDM1OiBmcm9tIG1hZ2ZyOiBpbXByb3ZlIG5ldC1zbm1wLWNvbmZpZwogICAvYmluL3NoIGNvbXBhdGliaWxpdHkKCjIwMDctMDMtMTQgMTg6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjc4MzAwOiBmcm9tIG1hZ2ZyOiBjb21waWxlLXN1YmFnZW50CiAgIGRvZXNuJ3QgY2FsbCBzaHV0ZG93bl8gbWV0aG9kcwoKMjAwNy0wMy0xNCAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDQyODA6IERvbid0IGF1dG9tYXRpY2FsbHkgcHJvYmUgZm9yCiAgIHYzIEVuZ2luZUlEcy4KCjIwMDctMDMtMTMgMTA6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENoZWNrIGZvciB6ZXJvLXNpemUgcHNldWRvLWZpbGVzeXN0ZW1zLiBSZXBvcnQgdGhlbSBhcyBlbXB0eQogICByYXRoZXIgdGhhbiBmdWxsLCBzbyB0aGV5IHdvbid0IGJlIHRyZWF0ZWQgYXMgYW4gZXJyb3IuCgoyMDA3LTAzLTEzIDA1OjU5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaDoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA1OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBjYWNoZSBpbgogICBoYXJkd2FyZS9jcHUvY3B1IG9uIHNodXRkb3duIChoZWFkZXIgcGFydCkKCjIwMDctMDMtMTIgMjM6MDkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDY6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGxvZyBpbgogICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nCgoyMDA3LTAzLTEyIDIzOjA0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA1OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBjYWNoZSBpbgogICBoYXJkd2FyZS9jcHUvY3B1IG9uIHNodXRkb3duCgoyMDA3LTAzLTEyIDIyOjU3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMjogZnJvbSBtYWdmcjogbmV0c25tcF9taWJpbmRleF9sb2FkIGxlYWtzCiAgIG1lbW9yeQoKMjAwNy0wMy0xMiAyMjo1MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMTogZnJvbSBtYWdmcjogZGVhbGxvY2F0ZSBkb21haW4gcmVnaXN0cnkKICAgYXQgc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgyOTg6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQgY2hlY2tzIGZvcgogICBiYWQgSEFWRV9TSUdOQUxfSAoKMjAwNy0wMy0xMiAyMTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjkwNDg6IEFkZCBzdXBwb3J0IGZvcgogICBpcHY2SW50ZXJmYWNlSWRlbnRpZmllcgoKMjAwNy0wMy0xMiAyMTozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxMzcyODogUmVmZXJlbmNlIGluZGV4IHZhbHVlcyBpbiBkZWJ1ZwogICBvdXRwdXQgY29ycmVjdGx5LgoKMjAwNy0wMy0xMiAyMTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTEwMjA1ODogU2tpcCBub24tbW91bnRlZCBkaXNrcyAoZS5nLiBzd2FwCiAgIHBhcnRpdGlvbnMpCgoyMDA3LTAzLTEyIDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2ODE5MzogVXBkYXRlIHJlZ2lzdHJhdGlvbiBvZgogICBSZWFzbU1heFNpemUgc3VwcG9ydC4KCjIwMDctMDMtMTIgMjE6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2ODE5MzogRml4IGNoZWNrIGZvciB2NiBSZWFzbU1heFNpemUKICAgc3VwcG9ydC4KCjIwMDctMDMtMTIgMTk6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4OTUyOiBJZ25vcmUgem9tYmllIHByb2Nlc3Nlcy4KCjIwMDctMDMtMTIgMTk6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTk4NTogSW1wbGVtZW50IGlwUmVhc21UaW1lb3V0CiAgIFRob3VnaCB0aGlzIHJlZ2lzdGVycyBhbiBpbnN0YW5jZSwgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgc2NhbGFyCiAgIG9iamVjdAoKMjAwNy0wMy0xMiAxOTo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0hFUzogMTY2NTU0MzogSGFuZGxlIFZBQ00gY2hlY2tzIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjU1NDk6IEhhbmRsZSBjcmVhdGluZyBWQUNNIGVudHJpZXMKICAgY29ycmVjdGx5LgogICBbQm90aCBwYXRjaGVzIGFyZSByZXF1aXJlZCBmb3IgY29ycmVjdCBvcGVyYXRpb25dCgoyMDA3LTAzLTEyIDE5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjU5NjIzOiBIYW5kbGUgU01VWCBwZWVycyB3aXRoIGFuIGVtcHR5CiAgIHBhc3N3b3JkLgoKMjAwNy0wMy0xMiAxOTo0NCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY1Nzc0MTogSGFuZGxlIDY0LWJpdCB0eXBlcyB2aWEgcGFzcwogICBtZWNoYW5pc20uCgoyMDA3LTAzLTEyIDE5OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogVXNlIHRoZSBjb3JyZWN0IGVuZ2luZUlEIHdoZW4KICAgc2VuZGluZyB2MyB0cmFwcy4KCjIwMDctMDMtMTIgMTk6MzIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIRVM6IDE2NDIwNzE6IERvbid0IGZpZGRsZSB3aXRoIHRoZSBzdG9yYWdlCiAgIG9mIHByZS1leGlzdGluZyB1c2Vycy4KCjIwMDctMDMtMTIgMTk6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQxODY1OiBEb24ndCBkb3VibGUgY2hlY2sgc25tcFRyYXBPSUQKICAgaW4gdGhlIGZpbHRlciB0YWJsZS4KCjIwMDctMDMtMTIgMTk6MjUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjM5NzI2OiBSZXBvcnQgcGh5c2ljYWwgbWVtb3J5CiAgIGNvcnJlY3RseSBvbiAqQlNECgoyMDA3LTAzLTA5IDIxOjMxICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDI5OTogZnJvbSBtYWdmcjogTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgem9uZQogICB2YXJpYWJsZSBpbiBkdW1wX3JlYWxsb2Nfb2lkX3RvX2luZXRhZGRyZXNzCgoyMDA3LTAzLTA5IDIxOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0MzAyOiBmcm9tIG1hZ2ZyOiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSBsZW4KICAgdmFyaWFibGUgaW4gY29udmVydF92MnBkdV90b192MQoKMjAwNy0wMy0wOCAxNTo1MiAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg6CgogICBJbmNsdWRlIEhvc3QgUmVzb3VyY2VzIE1JQiBvbiBOZXRCU0QgYW5kIE9wZW5CU0QKCjIwMDctMDMtMDcgMDk6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQyOTg6IGZyb20gbWFnZnI6IFJlbW92ZSB1bnVzZWQgc2lua3BvcnQKICAgdmFyaWFibGUKCjIwMDctMDMtMDYgMTM6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDExNTk5MDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wMy0wMiAyMjo0MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL01TRzAwMDAxLmJpbjoKCiAgIG5vIGVvbC1zdHlsZSBmb3IgYmluYXJ5IGZpbGVzCgoyMDA3LTAzLTAyIDIyOjI2ICB0YW5kZXJzCgogICAqIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGF+OgoKICAgZG9uJ3Qgc2hpcCBlZGl0b3IgYmFja3VwIGNvcGllcwoKMjAwNy0wMy0wMiAxNjoyMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL01TRzAwMDAxLmJpbjoKCiAgIGZsYWcgYXMgYmluYXJ5CgoyMDA3LTAzLTAyIDEyOjQ0ICB0YW5kZXJzCgogICAqIENvZGluZ1N0eWxlOgoKICAgZml4IHR5cG8KCjIwMDctMDMtMDIgMDk6NTcgIGR0czEyCgogICAqIFRPRE86CgogICBNaW5vciB0d2VhayAtIHBsYXlpbmcgd2l0aCBTVk4gYXMgbXVjaCBhcyBhbnl0aGluZy4uLi4KCjIwMDctMDMtMDEgMjM6NTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoYXQgd2UgbW92ZWQgdG8gU1ZOCgoyMDA3LTAyLTI4IDE1OjI3ICBkdHMxMgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2csIE5FV1M6CgogICBDaGVja3BvaW50IHN1bW1hcnkgb2YgQ1ZTIGNoYW5nZXMsIHByZXBhcmF0b3J5IGZvciB0aGUgU1ZOCiAgIHN3aXRjaC4KCjIwMDctMDItMjcgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBCVUc6IDE2NjYwMDU6IEZhaWwgdG8gd2FsayBpcHY2SW50ZXJmYWNlVGFibGUgb24gTGludXgKCjIwMDctMDItMjcgMTM6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDE2NjgxNzE6IHNraXAgdW5rbm93biBjb2xzIGluIG1pbi9tYXggcmFuZ2UgZm9yIHRhYmxlcywgaW5zdGVhZCBvZiBlcnJvcgoKMjAwNy0wMi0yNyAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oOgoKICAgYWRkIGhlYWRlciBmb3IgZWFzaWVyIGNvbmZpZ3VyZSAtLXdpdGgtbWliLW1vZHVsZQoKMjAwNy0wMi0yNiAxNDo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZS1jb3JyZWN0IGludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gdGhlIEFnZW50WCBzcGVjcy4KICAgKGZvciB0aGUgbGFzdCB0aW1lLCBJIHRydXN0ISkKCjIwMDctMDItMjYgMTQ6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oOgoKICAgRml4IHJlZmVyZW5jZSB0byBOZXQtU05NUCBpbmNsdWRlIGxvY2F0aW9ucwoKMjAwNy0wMi0yNiAxMjo0NyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICAgIFNOTVAvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgUHJvbXB0aW5nIGZvciBhIHNpbmdsZSBkaXJlY3RvcnksIG5vdCBhbiBhcnJheS4KCjIwMDctMDItMjYgMTE6MzIgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZiwKICAgICBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxNDI5NDcyOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBpbnN0YW5jZXMgKGFuZCBpbnZhbGlkIG9iamVjdHMpCgoyMDA3LTAyLTI2IDExOjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIEZpeCBpbnZhbGlkIG1pYjJjIGRpcmVjdGl2ZS4KCjIwMDctMDItMjYgMTE6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE0MTYyNzY6IEhhbmRsZSBkZXBlbmRlbmN5IG9uIE1JQiBwYXJzaW5nIEFQSS4KCjIwMDctMDItMjMgMjE6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgcXVvdGVzIHRvIGZpeCBzaGVsbCBzeW50YXggZXJyb3Igd2hlbiBlbXB0eQoKMjAwNy0wMi0yMiAyMjozNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIExhc3QgY29tbWl0IGJyb2tlIHRoZSBidWlsZC4gTm93IGVzY2FwZSBiYWNrc2xhc2hlcyBwcm9wZXJseS4KCjIwMDctMDItMjIgMTU6MzggIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxMjQ3MTY0OiBEb2N1bWVudCB1c2Ugb2YgT0lEIG1hY3JvcwoKMjAwNy0wMi0yMiAwMDoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywKICAgICB1Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBBSVg6IFBBVENIOiAxNjY1MDc5OiBmcm9tICJNaWNoYWVsIEt1a2F0IjogQUlYIHBhdGNoZXMgZm9yIGNwdSBzdGF0cyBhbmQgcHJvY2VzcyBtb25pdG9yaW5nCgoyMDA3LTAyLTIxIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBsYW1lLW1ha2Ugc3lzdGVtcyB0aGF0IGNhbid0IGhhbmRsZSB3aGl0ZXNwYWNlIHRlcm1pbmF0aW5nIHdyYXBwZWQgbGluZXMKCjIwMDctMDItMjEgMTU6MzMgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogV2luMzI6IEJVRzogMTY2Mjk4NzogY29tcGlsZSBlcnJvciBvbiBDeWd3aW4KCjIwMDctMDItMjEgMTM6NTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgdG9vbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTY2MDA2MTogVmFsaWRhdGUgZW5naW5lSURzIG1vcmUgc3RyaWN0bHkuCgoyMDA3LTAyLTIxIDEzOjQ5ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEuZGVmLCBzbm1wLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDE0MDc0NzY6IENsYXJpZnkgTUlCIHBhcnNpbmcgdG9nZ2xlIG9wdGlvbnMgYW5kIE1JQiBjb21tZW50IGhhbmRsaW5nLgoKMjAwNy0wMi0yMSAxMzozNyAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxMDk2MTY2OiBIYW5kbGUgLS13aXRob3V0LWxvZ2ZpbGUgY29ycmVjdGx5LgoKMjAwNy0wMi0xOSAxNjozNCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gcmVtb3ZhbCBmcm9tIENWUyBvZiBkZWxldGVkIGZpbGVzCgoyMDA3LTAyLTE5IDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgUmV3b3JrIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIHRvIHRha2UgYWNjb3VudCBvZiAibWFrZXJlbGVhc2UiIHNjcmlwdAoKMjAwNy0wMi0xOSAxMDo0OSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIERvbid0IGFzc3VtZSBsb2NhbCB1c2VybmFtZXMgbWF0Y2ggQ1ZTIGFjY291bnQgbmFtZXMuCgoyMDA3LTAyLTE5IDEwOjQxICBkdHMxMgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgSW1wcm92ZSBsYXlvdXQgb2YgQ0hBTkdFUyBpbmZvcm1hdGlvbi4KCjIwMDctMDItMTkgMTA6MDYgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRG9uJ3QgaW52b2tlICd2ZXJzaW9udGFnJyBmb3IgdGFnZ2luZyB0aGUgQ1ZTIHRyZWUuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHRoaXMgYW55IG1vcmUuICAoVXNlICdtYWtlcmVsZWFzZScgaW5zdGVhZCkKCjIwMDctMDItMTkgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBEb24ndCBmYWlsIHNpbGVudGx5IHdoZW4gY2FsbGVkIHRvIHRhZyB0aGUgQ1ZTIHRyZWUuCiAgIFJldHVybiBpbmRpY2F0aW9uIG9mIGZhaWx1cmUgdG8gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24gKGUuZy4gbWFrZSkKCjIwMDctMDItMTYgMTI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUmV2ZXJ0IHRvIHByZXZpb3VzICJudWxsIE9JRCIgaW50ZXJwcmV0YXRpb24gKGJ1dCB3aXRoIHRoZSBjb3JyZWN0IGVuY29kaW5nKS4KCjIwMDctMDItMTUgMTE6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MDAyNjE6IEhhbmRsZSBub24teDg2IC9wcm9jL2NwdWluZm8gZm9ybWF0CiAgIChBIHdvcmthcm91bmQsIHJhdGhlciB0aGFuIGEgZml4IC0gd2UgcmVhbGx5IG5lZWQgdG8gcGFyc2UgdGhlc2UKICAgIG90aGVyIGZvcm1hdHMgcHJvcGVybHkgaW4gdGhlIGluaXQgcm91dGluZSkKCjIwMDctMDItMTUgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ29ycmVjdCBtaXNpbnRlcnByZXRhdGlvbiBvZiAibnVsbCBPSUQiIGluIEFnZW50WCBzcGVjcy4KCjIwMDctMDItMTUgMDk6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlamVjdCBvdmVybHktc2hvcnQgVHJhcCBPSURzLgogICBEb24ndCBjcmFzaCBvdXQgY29tcGxldGVseSBvbiBmYWlsZWQgdjE8LT52MiB0cmFwIGNvbnZlcnNpb25zLgoKMjAwNy0wMi0xMiAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjMzNTk1OiBGaXggQWdlbnRYIGhhbmRsaW5nIG9mIENvdW50ZXI2NCB2YWx1ZXMKCjIwMDctMDItMDkgMjE6MTUgIGR0czEyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMzk3ODk1OiBpbmNsdWRlIG1pc3NpbmcgaW50ZXJmYWNlIGRlY2xhcmF0aW9ucwoKMjAwNy0wMi0wOCAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2ggZnJvbSBXb2p0ZWsgSmF3b3IgdG8gaGFuZGxlIHJvdyBkZWxldGlvbiBpc3N1ZXMgaW4gZGF0YXNldCB0YWJsZXMKCjIwMDctMDItMDcgMTc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oLCBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0CjoKCiAgIGFkZGVkIHRoZSBmbG93IGxhYmxlIG1pYiwgd2hpY2ggdGhlIHR1bm5lbC1taWIgcmVmZXJzIHRvCgoyMDA3LTAyLTA1IDIzOjAyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgcG9ydGFiaWxpdHkgZml4ZXMKCjIwMDctMDItMDUgMjI6NTAgIHRhbmRlcnMKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgdXNlIC9iaW4vc2ggdW5sZXNzIGJhc2ggZmVhdHVyZXMgYXJlIHJlYWxseSBuZWVkZWQKCjIwMDctMDItMDUgMjE6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBub3RlIHRoYXQgY3VycmVudCBzaG91bGQgYmUgYnVtcGVkIGJ5IDUgd2hlbiBidW1wZWQKCjIwMDctMDItMDUgMjE6NDkgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSBub3RlIHRoYXQgY3VycmVudCBzaG91bGQgYmUgYnVtcGVkIGJ5IDUgd2hlbiB1cGRhdGVkCiAgIC0gYWRkIHBvaW50ZXIgdG8gbmV3IGNoZWNrLWFwaS1jaGFuZ2VzIHNjcmlwdAoKMjAwNy0wMi0wNSAyMTo0NiAgcnN0b3J5CgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIHNpbXBsaXN0aWMgbmV3IHNjcmlwdCB0byBoZWxwIGNoZWNrIGZvciBhcGkgY2hhbmdlcyBiZXR3ZWVuIHJlbGVhc2VzCgoyMDA3LTAyLTA1IDIxOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0Lmg6CgogICBtYWtlIG5ldyBzdHJ1Y3QgbWVtYmVyIGNvbmRpdGlvbmFsLCBzaW5jZSB1c2UgaXMgY29uZGl0aW9uYWwKCjIwMDctMDItMDUgMjE6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSBmdW5jdGlvbiBjYWxsIG91dCBvZiBhc3NlcnQKCjIwMDctMDItMDUgMTU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDE4OTU6IEV4dGVuZCBzaG9ydCB2aWV3IG1hc2tzIChhcyBwZXIgUkZDIHNwZWNzKQogICBQYXRjaCBzdXBwbGllZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAyLTA1IDE0OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM5MzYwOiBGaXggc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZSByb3cgY3JlYXRpb24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTE6MDEgIGR0czEyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBjb21waWxhdGlvbiBpZiBMT0NLX1BFUl9DQUxMQkFDS19TVUJJRCBub3QgZGVmaW5lZC4KICAgUmVwb3J0ZWQgYnkgRW1pIFlhbmFnaQoKMjAwNy0wMi0wNSAwOTo0OCAgZHRzMTIKCiAgICogRkFROgoKICAgU3BlbGxpbmcgY29ycmVjdGlvbjogJ3N1cGVyY2VkZWQnIC0+ICdzdXBlcnNlZGVkJwogICAoT2gsIHRoZSBzaGFtZSBvZiBpdCEpCgoyMDA3LTAxLTMxIDEzOjUxICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE2NDc5NzY6IEN5Z3dpbi9NaW5HVyBXaW5kb3dzIGJ1aWxkIGZhaWxzIGR1ZSB0byBsaWJ0b29sIGVycm9yCgoyMDA3LTAxLTMwIDEzOjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiB5ZXQgYW5vdGhlciBmaXggdG8gYWRkcmVzcyBidWlsZCBpc3N1ZXMgd2l0aCBldGh0b29sIChvbiBSSDkpLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0zMCAwOToxMCAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB3aGVuIHN5bWxpbmsgZml4IGlzL2lzbid0IGFwcHJvcHJpYXRlLiAgU3luY2ggd2l0aCBXaWtpLgoKMjAwNy0wMS0yOSAxMToxMiAgZHRzMTIKCiAgICogRkFROgoKICAgQXV0aGVudGljYXRlZCBTTk1QdjMgcmVxdWVzdHMgc3RpbGwgbmVlZCBhIHVzZXJuYW1lLiAgKFN5bmNoIHdpdGggV2lraSkKCjIwMDctMDEtMjkgMTE6MDMgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCjoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTI4IDEzOjM2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBiYWQgdGVzdAoKMjAwNy0wMS0yOCAxMzowNiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW5hbWUgdmFyaWFibGUgdG8gcmVzb2x2ZSBuYW1lIGNsYXNoIGFuZCB0byB1bmJyZWFrIG5pZ2h0bHkgYnVpbGRzIG9uIFNvbGFyaXMKCjIwMDctMDEtMjggMTI6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjcgMTQ6NDAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCB0eXBvCgoyMDA3LTAxLTI3IDE0OjIzICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjYgMTE6MTUgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2U6CgogICBtb3JlIEJvdXJuZSBzaGVsbCBjb21wYXRpYmlsaXR5IGZpeGVzCgoyMDA3LTAxLTI1IDIyOjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogZml4IGNvbmZpZ3VyZSB3YXJuaW5nIGZvciBzeXMvY29uZi5oCgoyMDA3LTAxLTI1IDIyOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZToKCiAgIHJlcGxhY2UgYnkgbW9yZSByZWFzb25hYmxlIGNvbnRlbnQKCjIwMDctMDEtMjUgMjI6MDUgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTAxLTI1IDIxOjMxICB0YW5kZXJzCgogICAqIFJFQURNRS5pcml4OgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2NDQ3MzU6IGZyb20gIkJyZW50IEJpY2UiOiBhZGQgZ2NjIGJ1aWxkIGluc3RydWN0aW9ucyBmb3IgSVJJWAoKMjAwNy0wMS0yNSAyMToxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDQ3MTQ6IGZyb20gIkxlbGFuZCBXYWxsYWNlIjogcmVwbGFjZSBsYXN0IHJlbWFpbmluZyBpbnN0YW5jZSBvZiBkZXByZWNhdGVkIGNvcHlfd29yZCBieSBjb3B5X253b3JkCgoyMDA3LTAxLTI1IDE1OjMwICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseQosIG5zYi1wYWNrYWdlLCBuc2ItcGxhdGZvcm06CgogICBtYW55IEJvdXJuZSBzaGVsbCBwb3J0YWJpbGl0eSBmaXhlcwoKMjAwNy0wMS0yNCAxNjozOSAgZHRzMTIKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2UsIG5zYi1wbGF0Zm9ybToKCiAgIFByZS1Qb3NpeCBCb3VybmUgc2hlbGwgY29tcGF0YWJpbGl0eS4KCjIwMDctMDEtMjQgMTQ6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFR3ZWFrIGRlYnVnIG91dHB1dAoKMjAwNy0wMS0yNCAxMzo1OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgU2hlbGxzY3JpcHQgcG9ydGFiaWxpdHkuICAoRXZlcnl0aGluZyBoYXMgL2Jpbi9zaCkKCjIwMDctMDEtMjQgMTM6NDkgIGR0czEyCgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cCwgbnNiLWNvbmZpZywKICAgICBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2UsCiAgICAgbnNiLXBsYXRmb3JtOgoKICAgSW1wcm92ZSBzaGVsbC1zY3JpcHQgcG9ydGFiaWxpdHkuIChFdmVyeXRoaW5nIGhhcyAvYmluL3NoISkKCjIwMDctMDEtMjQgMTM6NDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBfY2xpZW50LmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDA3LTAxLTI0IDEzOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgUHJlbGltaW5hcnkgdGFibGUgdW5yZWdpc3RyYXRpb24gQVBJLgoKMjAwNy0wMS0yNCAxMzoxMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBNb3ZlIGhvc3RuYW1lIHRyYW5zbGF0aW9uIGludG8gdGhlIHRyYW5zcG9ydC1zcGVjaWZpYyBsaWJyYXJ5IHJvdXRpbmVzLgogICAoV2hlcmUgaXQgYmVsb25ncyEpCgoyMDA3LTAxLTI0IDEzOjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEJhc2ljIGZyYW1ld29yayBmb3IgdHJhbnNwb3J0LXNwZWNpZmljIHRyYW5zbGF0aW9uIG9mIGhvc3RuYW1lcy4KCjIwMDctMDEtMjQgMTI6MjcgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgU3VwcHJlc3MgYXNzb3J0ZWQgd2FybmluZ3MuCgoyMDA3LTAxLTI0IDEyOjE4ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG1ha2Ugc3VyZSB1aW50cHRyX3QgaXMgYWx3YXlzIGRlZmluZWQgYXMgdW5zaWduZWQuIFNwb3R0ZWQgYnkgRGF2aWQgRm9yZC4KCjIwMDctMDEtMjMgMjI6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMjI6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCB0cnkgdG8gcmVtb3ZlIGEgcm93IHRoYXQgd2FzIG5ldmVyIGluc2VydGVkCgoyMDA3LTAxLTIzIDE2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzkyODI6IFNhdmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0UGFyYW1zVGFibGUgc2V0dGluZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzNzI4NzogSGFuZGxlIG11bHRpcGxlIHRhcmdldCB0YWdzIGNvcnJlY3RseS4KICAgRml4IHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTYzNzI4NzogSGFuZGxlIG11bHRpcGxlIHRhcmdldCB0YWdzIGNvcnJlY3RseS4KICAgRml4IHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTU6NDQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjM0NjIwOiBGaXggbGVha3MgZnJvbSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gZmFpbHVyZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNDo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVRzogMTYzODIyNTogRml4IGludGVycHJldGF0aW9uIG9mIHRyYW5zcG9ydCBhZGRyZXNzIGRhdGEuCiAgIChLZWVwIHRoaXMgY29uc2lzdGVudCB3aXRoIHNubXBVRFBEb21haW4uYykKICAgVGhpcyBkb2VzIG5vdCBmZWVsIHRoZSByaWdodCB3YXkgdG8gaGFuZGxlIHRoaXMhCgoyMDA3LTAxLTIzIDE0OjEwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBCcmluZyB0cmFwIGhhbmRsaW5nIGluIGxpbmUgd2l0aCBSRkMgMjU3Ni8zNTg0IC0gZHJvcCBTTk1QdjEgdHJhcHMKICAgY29udGFpbmluZyBDb3VudGVyNjQgdmFyYmluZHMuICBSZXF1ZXN0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMjIgMjI6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDE5NzI6IGZyb20gbWFnZnI6IGFkZCBtaXNzaW5nIGNvbnN0CgoyMDA3LTAxLTIyIDE2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDEzMzI6IEluY2x1ZGUgbWlzc2luZyBhZ2VudCBjb25maWcgZGVmaW5pdGlvbnMuCgoyMDA3LTAxLTIyIDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgZml4IHR5cG8gb3ZlcndyaXRpbmcgY29udGFpbmVyIG5hbWUKCjIwMDctMDEtMjIgMTY6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MTY4NTogSGFuZGxlIHVucmVzcG9uc2l2ZSBBZ2VudFggc3ViYWdlbnRzIG1vcmUgcmVsaWFibHkuCiAgIEZpeCBwcm92aWRlZCBieSBKb3NlZiBNb2VsbGVycwoKMjAwNy0wMS0yMiAxNTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MDExNDogRG9uJ3Qgc3RvcmUgdHJhaWxpbmcgbnVsbCBjaGFyYWN0ZXIuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgTkVXUzogQlVHUyAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE2OjUzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEZyZWVCU0Q6IEJVRzogMTYzMzQ4MzogU3VwcG9ydCBDUFUgSEFMIG9uIEZyZWVCU0Q0LngKICAgKGJlZm9yZSBDUFUgZGVmaW5pdGlvbnMgd2VyZSBtb3ZlZCB0byA8c3lzL3Jlc291cmNlLmg+KQoKMjAwNy0wMS0xOSAxNjoxNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiAqbW92ZSogKHJhdGhlciB0aGFuIGNvcHkpIGdsb2JhbCB2YXJpYWJsZXMKICAgZnJvbSBzbm1wdHJhcGQgdG8gbGlibmV0c25tcHRyYXBkCgoyMDA3LTAxLTE5IDE0OjE4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IExpbnV4OiBmaXggZXRodG9vbCBjb25maWd1cmUgY2hlY2sgZm9yIHJlY2VudCBzeXN0ZW1zIChlLmcuIEZDNiwgUkhFTDUpLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0xOSAxMToyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCBjb25maWd1cmUgY2hlY2sgZm9yIGhhc21udG9wdCB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbXMgdGhhdCBsYWNrIGl0CgoyMDA3LTAxLTE4IDEyOjUwICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogbW92ZSBnbG9iYWwgdmFyaWFibGVzIGZyb20gc25tcHRyYXBkIHRvIGxpYm5ldHNubXB0cmFwZAoKMjAwNy0wMS0xOCAxMToxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRyb3AgIi1lIi9wcmludEV2ZW50TnVtYmVycyBzdXBwb3J0IGZvciBzbm1wdHJhcGQgKG9ic29sZXRlLCBkZXByZWNhdGVkIGFuZCBicmVha3MgbGlicmFyeSBsYXllcmluZykKCjIwMDctMDEtMTYgMTA6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIFJlc2V0ICdzZW5kJyBmbGFnIHRvIGNvbnNpZGVyIGVhY2ggc2luayBpbmRpdmlkdWFsbHkuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTYgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBzZW5kaW5nIG1pc21hdGNoZWQgdHJhcHMgKHYxIHRyYXAgb24gdjIgc2luaykuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTYgMDk6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRG9uJ3QgaGFyZGNvZGUgdGhlIHNpemUgb2YgY291bnRlcjY0IHN0cnVjdHVyZSAobWF5IGJlIHdyb25nIG9uIDY0LWJpdCBib3hlcykKCjIwMDctMDEtMTYgMDk6MDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTAxLTExIDIyOjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBDSEFOR0VTOiBzbm1wbGliOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogaW50cm9kdWNlIG5ldHNubXBfbWt0ZW1wIHRvIHByZXZlbnQgbGlibmV0c25tcGFnZW50IGZyb20gZGVwZW5kaW5nIG9uIGxpYm5ldHNubXBtaWJzCgoyMDA3LTAxLTExIDIxOjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIGF1dG9jb25mIHJlcSB0byAyLjYxCgoyMDA3LTAxLTExIDIxOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICAgIHNubXBTVEREb21haW4uYywgc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBEb21haW4uYywKICAgICBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wX3NlcnZpY2UuYywKICAgICBzbm1wX3RyYW5zcG9ydC5jOgoKICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIG1ha2UgdGhlIHRyYW5zcG9ydCBzeXN0ZW1zIEMrKyBjb21wYXRpYmxlCgoyMDA3LTAxLTExIDA5OjE3ICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgRml4IHNvbWUgbWFuZ2xlZCB0ZXh0LgoKMjAwNy0wMS0xMCAyMDo1OCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDE2MTQxMDQ6IGJyb2tlbiBzbm1wZCg4KSBtYW51YWwgcGFnZSBpbiA1LjQKCjIwMDctMDEtMDkgMjE6NTAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogSUYtTUlCIGZpeDogYWRkIG1pc3NpbmcgcmV0dXJuIGF0IGVuZCBvZiBnZXRfaWZfc3RhdHMKCjIwMDctMDEtMDggMDg6MzAgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6IGJ1aWxkIGxpYnJhcmllcyBpbiB0aGUgY29ycmVjdCBvcmRlciAobGlibmV0c25tcGFnZW50IGJlZm9yZSBsaWJuZXRzbm1waGVscGVycyBiZWZvcmUgbGlibmV0c25tcG1pYnMpCgoyMDA3LTAxLTA3IDE5OjQ3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaDoKCiAgIGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBuZXRzbm1wX3JlZ2lzdGVyX3NlcnZpY2VfaGFuZGxlcnMgKGZyb20gbWFnZnIpCgoyMDA3LTAxLTA2IDAwOjU0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IEJVRzogMTYyNjE1Mzogbm8gaHJTV1J1biBpbmZvcm1hdGlvbnMgb24gU29sYXJpcyB6b25lcwogICBQYXRjaCBwcm92aWRlZCBieSBLbGF1cyBNdWVobGZlbGQKCjIwMDctMDEtMDYgMDA6MzAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTQ1MDY2OTogUEFUQ0g6IDE2Mjc5NDk6IGZyb20gbWFydGluOTg3OiBhIHBlcmwgYWdlbnR4IGNvbnN1bWVzIG1lbW9yeQoKMjAwNy0wMS0wMyAyMjo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTAyIDIzOjMzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBCVUc6IENvdmVyaXR5ICMxNzM6IHJlbW92ZSBzdXBlcmZsdW91cyBOVUxMIGNoZWNrIChhbHJlYWR5IGRlcmVmZXJlbmNlZCBlYXJsaWVyIGFueXdheSkKCjIwMDctMDEtMDIgMjM6MDggIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG9ubHkgbG9nIGEgbWVzc2FnZSB3aGVuIHRoZSBtaWJfaW5kZXhlcyBkaXJlY3RvcnkgaXMgKnJlYWxseSogY3JlYXRlZAoKMjAwNy0wMS0wMiAyMjo1MyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEJVRzogQ292ZXJpdHkgIzE3ODogbmV2ZXIgcGFzcyBhIE5VTEwgb2lkX2Fycl9sZW4gcG9pbnRlciB0byBfX2NvbmNhdF9vaWRfc3RyICh3aGljaCBkZXJlZmVyZW5jZXMgaXQpCgoyMDA3LTAxLTAyIDIyOjA4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE5MzogcHJvcGVybHkgaW5pdGlhbGl6ZSBzZXNzaW9uIHBvaW50ZXIgYmVmb3JlIHVzZQoKMjAwNy0wMS0wMiAyMDoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgYmFjayBvdXQgcHJldmlvdXMgYmFkIGNoYW5nZSB0byBhZ2VudCByZWdpc3RyeQoKMjAwNy0wMS0wMiAxOTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MDE0NTM6IGZyb20gIlJvYmVydCBXaWxjb3giOiBEeW5hbWljIE1lbW9yeSBmYWlsdXJlIGhhbmRsaW5nIGltcHJvdmVtZW50cwoKMjAwNy0wMS0wMiAxOTo1MiAgdGFuZGVycwoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjAxNDUzOiBmcm9tICJSb2JlcnQgV2lsY294IjogRHluYW1pYyBNZW1vcnkgZmFpbHVyZSBoYW5kbGluZyBpbXByb3ZlbWVudHMKCjIwMDctMDEtMDIgMTc6NTYgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgTERfUlVOX1BBVEggY29tbWVudCBmb3IgcHl0aG9uCgoyMDA3LTAxLTAyIDE3OjM4ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHVwZGF0ZSB0byBhdXRvY29uZiAyLjYxCgoyMDA3LTAxLTAyIDE3OjIzICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9rZnJlZWJzZC5oOgoKICAgTkVXUzogUG9ydHM6IFBBVENIOiAxNjIzODc0OiBmcm9tICJQZXRyIFNhbGluZ2VyIjogYWRkIEdOVS9rRnJlZUJTRCBzdXBwb3J0CgoyMDA3LTAxLTAyIDE3OjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhZGQgd29ya2Fyb3VuZCBmb3IgQUNfRlVOQ19HRVRNTlRFTlQoKSBidWcgaW4gYXV0b2NvbmYgMi42MGIgYW5kIDIuNjEgKHNlZSBEZWJpYW4gYnVncyAjNDAzMjQzLCAjNDAzMDc5KQoKMjAwNy0wMS0wMiAxNjo0OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxNTgyOTcyOiBIYW5kbGUgQHdoaWxlQC9AZW5kQCBwcm9wZXJseS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRG91Z2xhcyBEZWFuCgoyMDA3LTAxLTAyIDE2OjAwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE2MDAxNzE6IFN1cHBvcnQgbG9uZ2VyIGNvbW11bml0eSBzdHJpbmdzIGluIFZBQ00gY29uZmlnLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2JlcnQgV2lsY294CgoyMDA3LTAxLTAyIDExOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNTQ2ODE3OiBGaXggc25tcEVudGVycHJpc2UgdmFyYmluZCB3aGVuIGZvcndhcmRpbmcgdjEgdHJhcHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFBhYmxvIFBhc3NlcmEuCgoyMDA3LTAxLTAyIDEwOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTYyNTEzNTogY29uZmlndXJlIGxvY2F0aW9uIG9mIHB5dGhvbiBpbnRlcnByZXRlcgogICBQcm92aWRlZCBieSBBbmRyZXcgTGFuZ21lYWQKCjIwMDctMDEtMDIgMTA6MzQgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICBORVdTOiBjb25maWd1cmU6IFBBVENIIDE2MjUxMzU6IGNvbmZpZ3VyZSBsb2NhdGlvbiBvZiBweXRob24gaW50ZXJwcmV0ZXIKICAgUHJvdmlkZWQgYnkgQW5kcmV3IExhbmdtZWFkCgoyMDA3LTAxLTAyIDEwOjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTYyNDQwNjogb3B0aW9uIHRvIGhhcmRjb2RlIGxvY2F0aW9uIG9mIG1vdW50IHRhYmxlCiAgIFN1Ym1pdHRlZCBieSBKb2NoZW4KCjIwMDctMDEtMDEgMTc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYwMTE4OCwgQlVHOiAxNjAwNDMyOiBIYW5kbGUgc2lnbmFscyBwcm9wZXJseSB3aGVuIHJlc3RhcnRpbmcgdGhlIGFnZW50LgogICBGaXggcHJvdmlkZWQgYnkgTG9pYyBEb21haWduZS4KCjIwMDctMDEtMDEgMTc6MzUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBIYW5kbGUgbm9uLXdyaXRhYmxlIE1JQiBpbmRleGVzIChlLmcuIHJ1biBhcyBub24tcHJpdmlsZWdlZCB1c2VyKQoKMjAwNy0wMS0wMSAxNjowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYwo6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSEVTIDE1OTI3MDY6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsb25pbmcgdmFyYmluZHMuCiAgIEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBTdGV2ZW4gRG9yaWdvdHRpLgoKMjAwNy0wMS0wMSAxNjowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1OTI3MDY6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsb25pbmcgdmFyYmluZHMuCiAgIEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBTdGV2ZW4gRG9yaWdvdHRpLgoKMjAwNy0wMS0wMSAxNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgTkVXUzogYWdlbnQ6IFBBVENIIDE1ODUxNDY6IEV4dGVuZCByYW5nZSBvZiBhdmFpbGFibGUgZXJyb3IgY29kZXMKICAgU3VibWl0dGVkIGJ5IEFudGhvbnkgTm92YXRzaXMuCgoyMDA3LTAxLTAxIDE1OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1NDg2NzA6IEZpeCByYW5nZSBjaGVja3MgZm9yIHVuc2lnbmVkIGludGVnZXJzCiAgIEZyb20gS2V2aW4gSHVtcGhyaWVzLiBTZWUgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM4MzM4MAoKMjAwNy0wMS0wMSAxNToxNiAgZHRzMTIKCiAgICogYXBwcy86IHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jOgoKICAgTW92ZSBnbG9iYWwgJ2ZhaWx1cmVzJyB2YXJpYWJsZSBjbG9zZXIgdG8gd2hlcmUgaXQgaXMgdXNlZC4KICAgQ0hBTkdFUzogYXBwczogUEFUQ0g6IDE1Mjk1MjM6IENsb3NlIFNOTVAgc2Vzc2lvbiBvbiBmYWlsdXJlLgoKMjAwNy0wMS0wMSAxNDozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBwb3RlbnRpYWwgZG91YmxlIGRlbGV0ZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMDEgMTQ6MjIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmM6CgogICBNYWludGFpbiBNSUIgZGlyZWN0b3J5IGluZGV4IGZpbGVzIHVuZGVyIC92YXIvbmV0LXNubXAKICAgKGluIGxpbmUgd2l0aCBGaWxlIEhpZXJhcmNoeSBTdGFuZGFyZCBzcGVjaWZpY2F0aW9ucykKICAgU2VlIGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz0zODk0MzQKICAgYW5kIGRpc2N1c3Npb24gIk1JQnMgaW4gbmV0LXNubXAiIG9uIGNvZGVycyBsaXN0IChPY3QgMjAwNikKCjIwMDctMDEtMDEgMTE6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIEVuc3VyZSBzeXNPUkRlc2NyaXB0aW9ucyBhcmUgbnVsbC10ZXJtaW5hdGVkLCBzbyB0aGV5IGNhbiBiZQogICBzYWZlbHkgcGFzc2VkIHRvICdzdHJkdXAoKScuICBSZXBvcnRlZCBieSBXb2xmZ2FuZyBQZWRvdC4KCjIwMDYtMTItMjkgMTc6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFN5bmNocm9uaXNlIHdpdGggV2lraSB2ZXJzaW9uLgoKMjAwNi0xMi0yOCAyMzoyOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjE2OTEyOiBmcm9tICJNYWdudXMgRnJvbXJlaWRlIjogZml4IG1lbW9yeSBsZWFrIGluIHNubXBfdWRwX3RyYW5zcG9ydAoKMjAwNi0xMi0yOCAyMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTYyMzQ0NzogZnJvbSAiSHJ2b2plIEhhYmphbmljIjogaHJTV1J1biBmaXg6IDxleGl0ZWQ+IGluc3RlYWQgb2YgZW5kT2ZUYWJsZSBmb3IgdGVybWluYXRlZCBwcm9jZXNzZXMKCjIwMDYtMTItMjcgMTk6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZml4IGV4dGVybmFsIHJlZmVyZW5jZSB0byBORVRTTk1QX0tMT09LVVAgb24gSFAtVVggMTAuMjAgKG1heWJlIG90aGVycykKCjIwMDYtMTItMjYgMTY6NTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMTYyMjA4MDogZnJvbSBHcnVlbmluZ2VyIEE6IHBhc3MgV2luMzIgaGFuZGxlcyByZW1haW4gb3Blbi4KCjIwMDYtMTItMTcgMTg6MDEgIGFsZXhfYgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLWFwcHMuaW4sIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQWRkIGdkaTMyLmxpYiB0byBmaXggbGlua2luZyBwcm9ibGVtIHdoZW4gdXNpbmcgdGhlIHN0YXRpYyB2ZXJzaW9uIG9mIHRoZQogICBTU0wgbGlicmFyaWVzLiAgVGhhbmtzIHRvIFNpbW9uIEVkd2FyZHMgZm9yIHRoZSBmaXguCgoyMDA2LTEyLTE3IDE2OjUxICBhbGV4X2IKCiAgICogRkFROgoKICAgVXBkYXRlIFdpbmRvd3MgaW5mbyBpbiB0aGUgRkFRCgoyMDA2LTEyLTEyIDIzOjUzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMTU4MTI5NDogZnJvbSAiTWljaGFlbCBUYXRhcmlub3YiOiBob3N0LXJlc291cmNlcyBpbXByb3ZlbWVudHMKCjIwMDYtMTItMTIgMjE6MjcgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgcmUtYWRkIFVEUF9BRERSRVNTRVNfSU5fSE9TVF9PUkRFUgoKMjAwNi0xMi0xMiAyMTowMSAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHN5bmMgd2l0aCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAoKMjAwNi0xMi0xMiAyMDozMSAgdGFuZGVycwoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBDSEFOR0VTOiBXaW4zMjogZml4IHdpbjMyL0NvbmZpZ3VyZSAtLXdpdGgtaXB2NgoKMjAwNi0xMi0xMiAxODoxMCAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIE5FV1M6IFdpbjMyOiBmaXggQUVTIHN1cHBvcnQKCjIwMDYtMTItMTIgMDM6MDEgIGFsZXhfYgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIEFkZCB2ZXJzaW9uIHRvIEZBUS5odG1sLgoKMjAwNi0xMi0wOSAxNzoxMSAgYWxleF9iCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtYWtlX2luZGV4LnBsLCBtYW5fc2VjdGlvbnMudHh0CjoKCiAgIC1DcmVhdGUgaHRtbCBwYWdlcyBmb3IgQUxMIG1hbiBwYWdlcy4KICAgLUltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGNyZWF0aW5nIHRoZSBpbmRleC5odG1sIGZpbGUuCgoyMDA2LTEyLTA5IDE3OjA2ICBhbGV4X2IKCiAgICogbG9jYWwvOiBodG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLCBodG1sLXRleHRmaWxlLWZpeC5wbAo6CgogICBBZGQgdGlkeSBjb21tYW5kIGxpbmUgb3B0aW9uIGFuZCBhZGQgbWlzc2luZyBSRUFETUUgZmlsZXMuCgoyMDA2LTEyLTA5IDAwOjE2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZGFyd2luOC5oLCBkYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBNYWNPU1g6IFBBVENIOiAxNjAwNDUzOiBmcm9tICJDaHJpcyBKYWxiZXJ0IjogT1MgWCBjb21waWxlLXRpbWUgZW5kaWFuIGRldGVybWluYXRpb24KCjIwMDYtMTItMDggMjI6NDcgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHNvbWUgbW9yZSBwb3N0LXJlbGVhc2UgdGFza3MKCjIwMDYtMTItMDggMjI6MjYgIHRhbmRlcnMKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zCiwgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMKLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zCiwgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMKLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMKLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMwosIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtCiwgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0KLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzdC9NYWtlZmlsZSwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNS5kZXYgKQoKMjAwNi0xMi0wOCAyMjoyMCAgdGFuZGVycwoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZml4IGRpc3QvTWFrZWZpbGUgbXVuZ2luZwoKMjAwNi0xMi0wOCAxNDozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgTkVXUzogQlVHOiAxNjExNTI0OiBmaXggdGNwIGNvbm5lY3Rpb24gdGFibGUgZmQgbGVhawoKMjAwNi0xMi0wOCAxMzoxNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbToKCiAgIHJldmVydCB1bmluZm9ybWVkIHZlcnNpb24gY2hhbmdlCgoyMDA2LTEyLTA3IDIxOjUwICB1aWQzOTAzOQoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbSwgU05NUC54cywKICAgICB0L2NvbmYudDoKCiAgIGNsZWFuIHVwIGNvbXBpbGUgYW5kIGZpeCB0ZXN0cwoKMjAwNi0xMi0wNyAxNjo0OCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNvbW1lbnQgZml4CgoyMDA2LTEyLTA3IDE1OjUyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfbWFjaC5jLAogICAgIGNwdS9jcHVfbWFjaC5oOgoKICAgTkVXUzogTWFjT1NYOiBQQVRDSDogMTYwMDUyMjogZnJvbSAiQmlsbCBGZW5uZXIiOiBDUFUgSEFMIGltcGxlbWVudGF0aW9uIGZvciBtYWNoL2RhcndpbgoKMjAwNi0xMi0wNyAxMzoxMCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjA0NTgwOiBTTk1QKDMpIG1hbnVhbCBwYWdlIGNvcnJlY3Rpb25zIChzcG90dGVkIGJ5IHRlay1vcHMpCgoyMDA2LTEyLTA2IDIwOjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgdmFyaW91cyBhc3BlY3RzIG9mIHBvc3QtcmVsZWFzZSB0aGluZ3MgdG8gZG8KCjIwMDYtMTItMDYgMTU6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhZGQgbmVlZGVkIGhlYWRlcgoKMjAwNi0xMi0wNiAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTU1ODgyMzogZml4IGlwQWRkcmVzc1RhYmxlIG1lbW9yeSBsZWFrCgoyMDA2LTEyLTA2IDE1OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYzoKCiAgIE5FV1M6IEJVRzogMTU5NjYzODogbWVtb3J5IGxlYWsgaW4gaXBDaWRyUm91dGVUYWJsZSwgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA2LTEyLTA2IDE0OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgdHdlYWsvYWRkIGRlYnVnIG1zZ3MgaW4gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA2LTEyLTA1IDIzOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIGZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDA2LTEyLTA1IDIzOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQlVHOiAxNjAwMDkzOiBhdXRvY29uZiAyLjYwIGJyZWFrcyB0aGUgYnVpbGQKCjIwMDYtMTItMDQgMTc6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjaGFuZ2UgdG9wIHRleHQgdG8gcmVtb3ZlIGhpc3Rvcnkgc2VjdGlvbiB3aGljaCB3YXMgb3V0IG9mIGRhdGUKCjIwMDYtMTItMDMgMjM6MjAgIGFsZXhfYgoKICAgKiB3aW4zMi86IGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMjogIFdvcmtzcGFjZSBjb21waWxlIGZpeCwgYnVpbGQgaW5zdHJ1Y3Rpb25zIHVwZGF0ZS4KCjIwMDYtMTEtMjQgMTc6NTMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40ICkKCjIwMDYtMTEtMjQgMTc6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNi0xMS0yNCAxNzo0OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMzIC0+IFY1LjQKCjIwMDYtMTEtMjQgMDk6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTI0IDA5OjQzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40ICkKCjIwMDYtMTEtMjQgMDk6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXIgdG8gZml4IE1TVkMgaXNzdWVzCgoyMDA2LTExLTI0IDA4OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSBDT0RJTkcgc2VjdGlvbi4KICAgSSdtIHN1cmUgdGhlcmUgYXJlIG1vcmUgY2hhbmdlcyB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIG1hZGUsCiAgIGJ1dCBMaWZlJ3MgVG9vIFNob3J0LiAgIE9LLCBXZXMgLSBpdCdzIGFsbCB5b3Vycy4uLi4KCjIwMDYtMTEtMjQgMDc6MzggIGR0czEyCgogICAqIFJFQURNRToKCiAgIFR3ZWFrIHdlYiBsaW5rcyBzbGlnaHRseSwgYW5kIG1lbnRpb24gdGhlIFdpa2kuCgoyMDA2LTExLTI0IDA3OjA5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jIHVwZGF0ZSBiYXNlZCBvbiBwZXJsIGNoYW5nZXMKCjIwMDYtMTEtMjQgMDY6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIERyb3Agb2Jzb2xldGUgZW50cmllcy4KCjIwMDYtMTEtMjQgMDY6MjMgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPTVBJTElORyBzZWN0aW9uLgoKMjAwNi0xMS0yNCAwNjowMiAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgcmVzdCBvZiB0aGUgQUdFTlRTIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA1OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBDb21taXQgcmV2aXNpb25zIHRvIHRoZSBNSUJTIGFuZCAobW9zdCBvZikgdGhlIEFHRU5UUyBzZWN0aW9ucy4KICAgNDMgcGFnZXMgZG93biwgMTggdG8gZ28uLi4uCgoyMDA2LTExLTI0IDA1OjEzICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGFkZCBzb21lIG1vcmUgd29ya2luZyBwbGF0Zm9ybXM7IHBlcmwgLT4gUGVybAoKMjAwNi0xMS0yNCAwMzoyMSAgZHRzMTIKCiAgICogRkFROgoKICAgUmV2aXNpb24gb2YgdGhlIGZpcnN0IHRocmVlIHNlY3Rpb25zIChHRU5FUkFMLCBBUFBMSUNBVElPTlMsIFBFUkwpLgogICBQcm9iYWJseSByYWNpbmcgYSBsb3NpbmcgYmF0dGxlIGFnYWluc3QgcGFja2FnaW5nIHRoZSB1cGNvbWluZyByZWxlYXNlIQoKMjAwNi0xMS0yMyAxOTozMCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZXMgYW5kIGNsZWFudXAgZm9yIDUuNAoKMjAwNi0xMS0yMyAxNzoxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjAxMjYxOiBmcm9tICJTdGVwaGVuIEouIEZyaWVkbCI6IHVwZGF0ZSBSRUFETUUuc211eAoKMjAwNi0xMS0yMyAxNjozOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBtaXNjOiBSUE0gc3BlYyBmaWxlIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTIzIDAxOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFJlbW92ZSBpcnJlbGV2YW50IGNvbW1lbnRzIChsZWZ0IG92ZXIgZnJvbSB0aGUgZGV2ZWxvcG1lbnQgcGhhc2UpLgoKMjAwNi0xMS0yMiAxNjowNiAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHVzZSAtLXdpdGhvdXQgZm9yIHBlcmwgbm93IGlmIG9mZgoKMjAwNi0xMS0yMiAxNTo1NCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpbmFsIHZlcmlzb24gY2hhbmdlCgoyMDA2LTExLTIyIDE1OjI1ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHJldmVydCB0byBjb3JyZWN0IHZlcnNpb24KCjIwMDYtMTEtMjIgMTU6MjMgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgYmFkIHBhdGNoIHJlZmVyZW5jZQogICAtIGVuYWJsZSBQZXJsIGJ5IGRlZmF1bHQsIGJ1dCBhbGxvdyBmb3IgLS13aXRob3V0IHBlcmxfbW9kdWxlc3xlbWJlZGRlZF9wZXJsCiAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCBmb3IgbG9jYWwgZGVmaW5lcwoKMjAwNi0xMS0yMiAwODo0OSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ2xhcmlmaWNhdGlvbiBvZiB0aGUgYmVoYXZpb3VyIG9mIG9iamVjdHMgaW4gdGhlIG1lbW9yeSAmIHN5c3RlbVN0YXRzIGdyb3VwcywKICAgYW5kIG9iamVjdHMgdXNlZCBmb3IgcmVwb3J0aW5nL2ZpeGluZyBlcnJvcnMuCgoyMDA2LTExLTIyIDA3OjA3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbjoKCiAgIG1hbmFsaWFzIGFsd2F5cy1tYWRlIGZpeDsgbm93IHRvdWNoZXMgYSB0ZW1wIGZpbGUgKGFuZCBjbGVhbnMgbGF0ZXIpCgoyMDA2LTExLTIyIDA1OjI1ICB0YW5kZXJzCgogICAqIC5jdnNpZ25vcmU6CgogICBhZGQgbmV3ICdtaycgc3ViZGlyCgoyMDA2LTExLTIyIDA1OjI0ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMKCjIwMDYtMTEtMjIgMDU6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU5ODk2NjogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTk4OTI3OiAjZWxpZiBidWlsZCBmaXgKCjIwMDYtMTEtMjIgMDQ6NTggIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE1OTg5Njg6IGZyb20gIlBldGVyIEVja2VsIjogRml4IGJ1ZyAjMTU4Nzc1OTogc25tcHRyYXBkIGRvZXNuJ3QgcmVjb2duaXplIC1BIG9wdGlvbgoKMjAwNi0xMS0xOCAwOTo1NiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4ZXMgZm9yIE5vbmUgcmV0dXJuIHRweWUgYW5kIG9jdGV0IHZhbCBoYW5kbGluZwoKMjAwNi0xMS0xOCAwNzoyOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMyIC0+IFY1LjQucmMzCgoyMDA2LTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMS0xOCAwNzoxMyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKMjAwNi0xMS0xOCAwNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBmaXggbWlzc2luZyBtZW1DYWNoZWQuMCBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMKCjIwMDYtMTEtMTYgMjA6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggcGVybCBDQyBleHRyYWN0aW9uIHRvIGFsbG93IGZvciBwYXRocwoKMjAwNi0xMS0xNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDEzOjM4ICB0YW5kZXJzCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgbWFudWFsIHBhZ2VzIHRvIHRoZSBidWlsZCBwcm9jZXNzCgoyMDA2LTExLTE2IDAxOjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBwcm9wZXJseSBwcm90ZWN0IG5saXN0IGNvZGUgdG8gZml4IGJ1aWxkIGlzc3VlcyB3LyAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0xNSAxNjoyMiAgdGFuZGVycwoKICAgKiBtYW4vOiBlbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBmaXhwcm9jLjEuZGVmLAogICAgIG1pYjJjLXVwZGF0ZS4xLmRlZiwgbmV0LXNubXAtY29uZmlnLjEuZGVmLAogICAgIHRrbWliLjEuZGVmLCB0cmFwdG9lbWFpbC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTU3NzkxMzogYWRkIG1pc3NpbmcgbWFudWFsIHBhZ2VzIGZvciBleGVjdXRhYmxlcywgc3VwcGxpZWQgYnkgRGViaWFuCgoyMDA2LTExLTE1IDE1OjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSB0byB0aGUgbmV3IHN5bnRheCBvZiB0aGUgc25tcG5ldHN0YXQgcmV3cml0ZS4gSW5zcGlyZWQgYnkgRGViaWFuLgoKMjAwNi0xMS0xNSAxNDo0NSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHNldC4xLmRlZjoKCiAgIGZvcm1hdCBmaXggKGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoKQoKMjAwNi0xMS0xNSAxMTozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIFB1dCBkZXNjcmlwdGlvbiBvbiBhIHNpbmdsZSBsaW5lLiBUYWtlbiBmcm9tIERlYmlhbiBwYXRjaCAwN19kb2NmaWxlcy5wYXRjaAoKMjAwNi0xMS0xNCAxNjowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgRml4IGluaXRpYWxpc2F0aW9uIHByb2JsZW0gKHdoaWNoIHJlc3VsdHMgaW4gdGhlIGFnZW50IGZhaWxpbmcKICAgdG8gc3RhcnQgb24gRnJlZUJTRCBzeXN0ZW1zLCB3aGVuIHJ1biBhcyBhbiB1bnByaXZpbGVnZWQgdXNlcikuCgoyMDA2LTExLTE0IDE1OjQ0ICB0YW5kZXJzCgogICAqIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGF+OgoKICAgZG8gd2UgYWdyZWUgdG8gbm90IHNoaXAgZWRpdG9yIGJhY2t1cCBjb3BpZXM/CgoyMDA2LTExLTE0IDAzOjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyBvbiBJUklYIGFuZCBUcnU2NCBVbml4CgoyMDA2LTExLTE0IDAxOjU2ICB0YW5kZXJzCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE1OTYwMjg6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogY29uc3QgZml4ZXMgZm9yIHRoZSBtaWJfYXBpKDMpIG1hbnVhbCBwYWdlCgoyMDA2LTExLTEzIDE2OjE3ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIENIQU5HRVM6IHBlcmw6IG1ha2UgcGVybHRlc3QgZml4ZXMgZm9yIFNvbGFyaXMgMi42IGFuZCBlYXJsaWVyCgoyMDA2LTExLTEzIDE1OjU0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogU05NUC5wbSBmaXhlcyBmb3IgNjQtYml0IHBsYXRmb3JtcwoKMjAwNi0xMS0xMyAxNTo0OSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSFAtVVgKCjIwMDYtMTEtMTMgMTU6MjYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgRHJvcCBEYXRhOjpEdW1wZXIgc2luY2UgUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aCBJUklYIDYuNSBkb2Vzbid0IGluY2x1ZGUgaXQuCgoyMDA2LTExLTEzIDE0OjUxICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEcm9wIHVubmVlZGVkIGRlcGVuZGVuY3kgb24gRGF0YTo6RHVtcGVyLgoKMjAwNi0xMS0xMyAxNDo0NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSVJJWAoKMjAwNi0xMS0xMiAxNzo1MyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwKICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IGNvbXBpbGluZyB3aXRoIHRoZSBTTk1QIGxpYnJhcnkgRExMLgoKMjAwNi0xMS0xMCAwMzoyNCAgdGFuZGVycwoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIC0tZW5hYmxlLW1pbmktYWdlbnQgcmVjb21tZW5kYXRpb24gYmVjYXVzZSAtLXdpdGhvdXQta21lbS11c2FnZSBubyBsb25nZXIgcmVxdWlyZXMgaXQKCjIwMDYtMTEtMTAgMDE6MjEgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFJlZmVyZW5jZSB0aGUgY29ycmVjdCBtYW4gcGFnZSBmb3Igc25tcF90cmFwX2FwaSBhbGlhc2VzLgogICBSZXBvcnRlZCBhbmQgZml4ZWQgYnkgQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTEtMDggMDg6MjQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzEgLT4gVjUuNC5yYzIKCjIwMDYtMTEtMDggMDc6NTYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTA4IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgoyMDA2LTExLTA4IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgUGF0Y2ggZnJvbSBSb2JlcnQgdG8gY2hlY2sgcHJvY2Vzc2VkIGZsYWcgYmVmb3JlIHByb2NlZWRpbmcKCjIwMDYtMTEtMDcgMTU6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgRml4IGR1cGxpY2F0ZSBjYXNlIHN0YXRlbWVudHMgKGFuZCBpbmRpY2F0ZSB3aGljaCBhcmUgdGhlIGRlcHJlY2F0ZWQgb2JqZWN0cykKCjIwMDYtMTEtMDcgMTQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgQ2xhcmlmeSBtZWFuaW5nIG9mIG1lbSpUZXh0IG9iamVjdHMgKGFuZCBkZWZpbmUgbmV3IGNvbnNpc3RlbnQgdmVyc2lvbnMpLgoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGQgYSBtaXNzaW5nIHBhcmVuIHRvIGEgZGVzY3JpcHRpb24gZmllbGQKCjIwMDYtMTEtMDcgMDY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBNYWtlZmlsZS5pbiwKICAgICBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggdG8gZml4IHNlZCB1c2FnZSBvbiBzeXN0ZW1zIHdpdGggYSB2ZXJ5IG9sZCBzZWQKCjIwMDYtMTEtMDYgMTU6NTAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBtZW50aW9uIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDE1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcEFkZHIuYwosIGlwdjYuYywgdGNwVGFibGUuYywgdWRwVGFibGUuYywKICAgICB2YXJfcm91dGUuYzoKCiAgIGltcHJvdmVkIGtsb29rdXAgZXJyb3IgaGFuZGxpbmcKCjIwMDYtMTEtMDYgMTU6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBSRUFETUUuYWl4LCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQva2VybmVsLmg6CgogICBDSEFOR0VTOiBzbm1wZDogYnVpbGQgZml4IGZvciAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0wNiAwNzoxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHNoIGRvZXNuJ3QgbGlrZSAiPT0iLCBvZiBjb3Vyc2UuCgoyMDA2LTExLTA2IDAzOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2tpcCBwcm94eSB0ZXN0cyBmb3IgVENQIGJlY2F1c2UgdGhlIHByb3h5IGNvZGUgZG9lc24ndCBzdXBwb3J0IFRDUCB5ZXQKCjIwMDYtMTEtMDMgMTc6MzkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNThhZ2VudGF1dGh0cmFwLCBUMDY1YWdlbnRleHRlbmQsCiAgICAgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgQ0hBTkdFUzogbWlzYzogIm1ha2UgdGVzdCIgZml4ZXMgZm9yIG5vbi1VRFAgdHJhbnNwb3J0cwoKMjAwNi0xMS0wMyAwODo0MCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYzoKCiAgIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBweXRob24gaW50ZXJmYWNlCgoyMDA2LTExLTAyIDE1OjMwICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW4gcGFnZSBhbGlhc2VzCgoyMDA2LTExLTAxIDE1OjUzICB0YW5kZXJzCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZyBzaGFsbCBvbmx5IGRvY3VtZW50IGNoYW5nZXMgb2YgdGhlIGJyYW5jaCBpdCdzIGNvbnRhaW5lZCBpbgoKMjAwNi0xMS0wMSAwODozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IEJVRzogMTU4NTgxNTogZml4IG1mZCBiaXRzIGxlbmd0aCBjYWxjdWxhdGlvbgoKMjAwNi0xMC0zMSAxNDoyOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlNCAtPiBWNS40LnJjMQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMzEgMTI6NTEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCjIwMDYtMTAtMzEgMTI6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgcmVtb3ZlIHRoZSBrbG9va3VwIGRlZmluZSBhcyAoMCkgc2luY2UgRGF2ZSBmb3VuZCBkZWZpbml0ZSBzcG90cyB3aGVyZSB0aGlzIHdhcyB1bnNhZmUKCjIwMDYtMTAtMzEgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgUGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGF0dGVtcHQgdG8gZml4IGxhY2sgb2Yga21lbSBzdXBwb3J0IGZvciB2YXJpb3VzIHBsYXRmb3JtcyB3aGVuIGttZW0gaXNuJ3QgYXZhaWxhYmxlCgoyMDA2LTEwLTMxIDA3OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYSBwcm9ibGVtIHdpdGggdGhlIG1hbiBnZW5lcmF0aW9uIHBhdGNoIGFzIHBvaW50ZWQgb3V0IGJ5IENocmlzIEphbGJlcnQKCjIwMDYtMTAtMzEgMDc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgbWlub3IgcGF0Y2ggZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBsbXNlbnNvcnMgMjQwIGNsYXNzIG1hY2hpbmVzCgoyMDA2LTEwLTMwIDEzOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1lbVRvdGFsRnJlZSBzaG91bGQgcmVwb3J0IHRvdGFsIHZpcnR1YWwgaW5zdGVhZCBvZiBwaHlzaWNhbCBtZW1vcnkKCjIwMDYtMTAtMzAgMDk6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBtZW0gSEFMIGZpeGVzIGZvciBJUklYCgoyMDA2LTEwLTMwIDA3OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB1c2UgZ2VuZXJhdGVkIGFsaWFzIG1hbiBwYWdlcwoKMjAwNi0xMC0yOCAxODoyMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIC0tZGlzYWJsZS1lbWJlZGRlZC1wZXJsIC0td2l0aG91dC1wZXJsLW1vZHVsZXMgZm9yIE1pbkdXIC8gQ3lnd2luLgoKMjAwNi0xMC0yNyAxMzoxOSAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9idWlsZC5wbCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluCjoKCiAgIC1BbGxvdyBidWlsZGluZyBvZiBhcHBsaWNhdGlvbnMgd2l0aCBsaWJyYXJ5IERMTCBpbiBidWlsZC5iYXQgYnVpbGQgc3lzdGVtLgogICAtRml4IERMTCBleHBvcnQvaW1wb3J0IHZhcmlhYmxlcyBmb3IgbGlicmFyeSBETEwKCjIwMDYtMTAtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa2luZyBvZmYgb2YgYSBjbGlmZgoKMjAwNi0xMC0yNyAwNzozMiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBjbGllbnQucHkKCjIwMDYtMTAtMjcgMDI6MDQgIHRhbmRlcnMKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICBDSEFOR0VTOiBtaXNjOiBCVUdTOiAxNTg1MjUwOiBkb24ndCB1c2UgZGVwcmVjYXRlZCBvcHRpb25zIGluIHN0YXJ0IHNjcmlwdAoKMjAwNi0xMC0yNiAxNzo1MCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6ICBBZGQgYSBjb3VwbGUgREVCVUcgbGluZXMuCgoyMDA2LTEwLTI2IDE3OjE1ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogUkVBRE1FIHVwZGF0ZSwgYnVpbGQgc3RlcHMgdXBkYXRlLgoKMjAwNi0xMC0yNiAwOToyMSAgdGFuZGVycwoKICAgKiBDb2RpbmdTdHlsZToKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMTAtMjYgMDQ6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcyBmb3IgImNvbmZpZ3VyZSAtLWhlbHAiIG91dHB1dCwgZXNwZWNpYWxseSBmb3IgTUlCIG1vZHVsZXMKCjIwMDYtMTAtMjYgMDM6MjQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogYnVpbGQgZml4IGZvciBtaWJJSS91ZHBUYWJsZQoKMjAwNi0xMC0yNSAxMTo1MSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIE5FVFNOTVBfIHByZWZpeCBtaXNzaW5nIGZvciBPUEVOU1NMLgoKMjAwNi0xMC0yNSAwOToxNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHBlcmwvT0lEL09JRC54cywKICAgICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogcmVuYW1lIGluaXRfbWliIHRvIG5ldHNubXBfaW5pdF9taWIgdG8gYXZvaWQgc3ltYm9sIGNsYXNoIHdpdGggSFAtVVgncyBsaWJubQoKMjAwNi0xMC0yMyAxNDowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgQUlYIHNoaXBzIGhvc3QgYnkgZGVmYXVsdAoKMjAwNi0xMC0yMiAxODowMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0RldmVsb3Blcl9GQVEuaHRtbCwgaHRtbGhlbHAvRkFRLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIGluc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgVXBkYXRlIFdpbmRvd3MgYmluYXJ5IGJ1aWxkIGZpbGVzLgoKMjAwNi0xMC0yMSAwOTo0MiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHdpbkV4dERMTCB1cGRhdGUuCgoyMDA2LTEwLTIxIDA5OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZWFkbWUgdXBkYXRlIGZvciB3aW5FeHRETEwsIGNoYW5nZSBjb21tYW5kIGxpbmUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMTAtMjEgMDc6MDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENvZGUgY2xlYW51cC4gIEFkZCBzdXBwb3J0IGZvciB4U25tcEV4dGVuc2lvblF1ZXJ5RXggZm9yIFNFVC9HRVRORVhULgoKMjAwNi0xMC0yMSAwNTo0NSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogc25tcHNldCBzdHJpbmcsIERMTCBsb2FkaW5nIGFuZCBzbm1wd2FsayBmaXhlcy4KCjIwMDYtMTAtMjEgMDU6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgcmVtb3ZlIG5vdC1leGlzdGVudCBTQlNNIGRlZmluaXRpb24gZnJvbSB0ZXN0IGNhc2VzCgoyMDA2LTEwLTIwIDE3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTQgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUzIC0+IFY1LjQucHJlNAoKMjAwNi0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgUGVyc3NvbiB0byBjaGFuZ2UgdF91c2NhbGFyX3QgdG8gc29tZXRoaW5nIG1vcmUgcG9ydGFibGUgKHVpbnQzMl90KQoKMjAwNi0xMC0yMCAxMzo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2RzX2FnZW50LmgsCiAgICAgbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBEb2N1bWVudCB0aGUgbmVlZCB0byB1cGRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgcGVybCBpbnRlcmZhY2VzCiAgIHdoZW4gY2hhbmdlcyBhcmUgbWFkZS4KCjIwMDYtMTAtMjAgMDg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgYWxsIGRhcndpbiwgdW50aWwgY29kZSB3b3JrcwoKMjAwNi0xMC0yMCAwODoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBDbGFyaWZ5IGNvbW1lbnRzIHRvIHJlZmxlY3QgcmVhbGl0eS4KCjIwMDYtMTAtMjAgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBmaXggc3ludGF4IGVycm9yOyBtYWtlIHN1cmUgd2UgZ2V0IGNwdV9udWxsIGZvciBkYXJ3aW42LzcsIGNwdV9zeXNjdGwgZm9yIGRhcndpbjgrCgoyMDA2LTEwLTIwIDA3OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICB1c2UgY3B1X251bGwgZm9yIGRhcndpbjcgYW5kIGRhcndpbjYKCjIwMDYtMTAtMjAgMDE6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBvcGVuYnNkNCBhbmQgZGFyd2luIHNob3VsZCB1c2UgY3B1X3N5c2N0bAoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMTkgMjI6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgoyMDA2LTEwLTE5IDE2OjQ0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYzoKCiAgIGZpeCB1cCBoZWFkZXIgaW5jbHVzaW9uIGEgYml0CgoyMDA2LTEwLTE5IDE1OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICB0ZXN0IGZvciBkYXJ3aW5nIGJlZm9yZSBmcmVlYnNkLCBzaW5jZSBkYXJ3aW4gZGVmaW5lcyBmcmVlYnNkCgoyMDA2LTEwLTE5IDE0OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgZml4IGJyb2tlbiBiYWQgZXZpbCBpZlRhYmxlLmggdXNhZ2UKCjIwMDYtMTAtMTkgMTM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfZGVmcy5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkb24ndCBsZXQgaWZUYWJsZS5oIHJlZGVmaW5lIHJhbmRvbSBzeW1ib2xzIGFmZmVjdGluZyBvdGhlciBjb2RlCgoyMDA2LTEwLTE5IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBsaWJoZWxwZXJzIGZyb20gdGhlIGxpbmsgbGluZSBvZiBsaWJhZ2VudHMKCjIwMDYtMTAtMTkgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCB0cmFuc3BvcnQgc29jayBwYXRjaAoKMjAwNi0xMC0xOSAwNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3OTM2NDogZnJvbSBqYWxiZXJ0OiBVcGRhdGVkIGRhcndpbiBwYXRjaCB0byBmaXggY29tcGlsYXRpb24gb24gVGlnZXIgYW5kIExlYXBvcmQKCjIwMDYtMTAtMTggMTY6NTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaW5pc2ggYWRkaW5nIHN1cHBvcnQgZm9yIERMTHMgdGhhdCBzdXBwb3J0IG11bHRpcGxlCiAgIHJhbmdlcy4KCjIwMDYtMTAtMTggMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5jLAogICAgIG10ZUV2ZW50Q29uZi5oLCBtdGVPYmplY3RzQ29uZi5jLCBtdGVPYmplY3RzQ29uZi5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIENsZWFubHkgaGFuZGxlIHJlLWxvYWRpbmcgIm1vbml0b3IiIChhbmQgcmVsYXRlZCkgZGlyZWN0aXZlcy4KCjIwMDYtMTAtMTggMTQ6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgSGFuZGxlIGludmFsaWQgcGF5bG9hZCBvYmplY3QgT0lEcy4KCjIwMDYtMTAtMTggMTI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAiZXh0ZW5kIiBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAwNzo0NSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICAtIHVzZXIgL3Vzci9iaW4vZW52IGZvciBwb3J0YWJpbGl0eQogICAtIG9ubHkgdGVzdCBmb3IgdGFyIGlmIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdAoKMjAwNi0xMC0xOCAwMzoyOSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5ldyBwYXNzX3BlcnNpc3QgZXJyb3IgbWVzc2FnZXMgaW50cm9kdWNlZCBieSBwYXRjaCAxNTY4MTUwCgoyMDA2LTEwLTE3IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUub3NYOgoKICAgdXBkYXRlIGZyb20gQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0xNyAyMDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMTU2NTcwMzogcGF0Y2ggdG8gZml4IHJhcGlkIHJlZ2lzdHJhdGlvbnMvZGVyZWdpc3RyYXRpb24gaXNzdWVzCgoyMDA2LTEwLTE3IDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSCAxNTYyNjg4OiBmaXggcGluZy9yZWF0dGFjaCBhZ2VudHggY29kZQoKMjAwNi0xMC0xNyAyMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMTU2MjE2ODogY2hlY2sgZm9yIGEgc29jayBmZCBsZXNzIHRoYW4gMC4KCjIwMDYtMTAtMTcgMTk6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwo6CgogICB1c2luZyB2Zm9yayBhbmQgbmFtZWQgcGlwZXM6IE5FV1M6IHNubXBkOiBQQVRDSDogMTU1MTk0ODogZnJvbSBhcHJvZW1lbDogTWFrZSBwYXNzX3BlcnNpc3QgdXNhYmxlIG9uIHVDbGludXgKCjIwMDYtMTAtMTcgMTk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTY4MTUwOiBmcm9tIGdhdmluX2hhbjogRXh0ZW5kIHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSBwYXNzZWQgYmFjayBmcm9tIHRoZSBzY3JpcHQKCjIwMDYtMTAtMTcgMTk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU3MDY1MDogZnJvbSAiQmVub2l0IEFtaWF1eCI6IGNyZWF0ZSBhIGxvZ2dpbmcgc2h1dGRvd24gZnVuY3Rpb24gdG8gcHJvcGVybHkgY2xlYW4gdXAgbG9nIHJlZ2lzdHJhdGlvbnMgaWYgbmVlZGVkLgoKMjAwNi0xMC0xNyAxOTowNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogbWFrZSBkZWxldGUgdGFibGUgZnVuY3Rpb24gcHVibGljCgoyMDA2LTEwLTE3IDE4OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxNTc1OTM3OiBmcm9tIG1hcnRpbjk4NzogZml4IHVzZW51bWVyaWMgb3V0cHV0IGluIGFzeW5jIHZhcmJpbmRzIHNvIHRoZXkgcmV0dXJuIE9JRHMgaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmdzLgoKMjAwNi0xMC0xNyAxODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3NTk4NDogZnJvbSBydHlsZTogYmxvY2sgU0lHSFVQIGR1cmluZyByZWNvbmZpZwoKMjAwNi0xMC0xNyAxODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIHJlbW92ZSBjb3JyZWN0IHN1YiBkaXJlY3RvcnkKCjIwMDYtMTAtMTcgMTg6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54cywgZ2VuLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkc19hZ2VudC5oIGRlZmluZXMKCjIwMDYtMTAtMTcgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCBnZW4sIHRlc3QucGw6CgogICBzdXBwb3J0IGxhdGVzdCBoMnhzOyBORVdTOiBwZXJsOiB1cGRhdGUgZGVmYXVsdF9zdG9yZSBtb2R1bGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgYy1iaW5kaW5nIHRva2VucwoKMjAwNi0xMC0xNyAxNjowNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgY29uZmlnIGdlbmVyYXRlZCBmaWxlcyBvbiBhIG1ha2UgZGlzdGNsZWFuCgoyMDA2LTEwLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgcHJvcGVybHkgZml4IHRoZSBzZWQgaXNzdWVzIHdpdGhvdXQgcmVtb3ZpbmcgZnVuY3Rpb25hbGl0eSBieSB1c2luZyBmaWxlcyBpbnN0ZWFkIG9mIHNlZCBleHByZXNzaW9ucwoKMjAwNi0xMC0xNyAxNDowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIG1ha2Uga2xvb2t1cCBkZWJ1Z2dpbmcgbGVzcyB2ZXJib3NlCgoyMDA2LTEwLTE3IDEzOjMyICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgYWRkIGtsb29rdXAgZGVidWdnaW5nCgoyMDA2LTEwLTE3IDEwOjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN0aWxsIGJ1aWxkIGlmIGtlcm5lbCBzeW1ib2xzIHVuZGVmaW5lZAoKMjAwNi0xMC0xNyAwOToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBBc3NvY2lhdGUgZXJyb3JzIGZyb20gZGVsZWdhdGVkIHJlcXVlc3RzIHdpdGggdGhlIGNvcnJlY3QgdmFyYmluZCwKICAgYW5kIGZpeCBwcm9ibGVtcyB3aXRoIGZhaWxlZCBwcm94aWVkIHJlcXVlc3RzIHRpbWluZyBvdXQuCiAgIFJlcG9ydGVkIGJ5IFBhYmxvIFBhc3NlcmEgIChTZWUgY29kZXJzIGxpc3QgLSA1dGggT2N0IGZmKQoKMjAwNi0xMC0xNyAwOToxMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogLS1lbmFibGUtYXMtbmVlZGVkIHdpbGwgdHJ5IHRvIGxpbmsgYnVpbHQgbGlicmFyaWVzIGFnYWluc3QgbmVlZGVkIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSwgcmF0aGVyIHRoYW4gYXBwbGljYXRpb24gbGluayB0aW1lLgoKMjAwNi0xMC0xNyAwNzo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSAnY29tcGlsZXIgb3B0aW9ucycgaGVhZGVyIGluIGhlbHAgb3V0cHV0CgoyMDA2LTEwLTE3IDA3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGJhY2sgb3V0IGhvc3QvaHJfc3dydW4gcGFydCBvZiB0aGUgQUlYIGp1bWJvIHBhdGNoIHNpbmNlIGl0IG92ZXJ3cm90ZSBhIG1vcmUgY29tcGxldGUsIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gd2l0aCBhIHNlZ2ZhdWx0aW5nIG9uZQoKMjAwNi0xMC0xNiAxNjozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBDSEFOR0VTOiBJUklYOiBwcm9wZXIgaW1wbGVtZW50YXRpb24gZm9yIFVDRC1TTk1QLU1JQjo6bGFUYWJsZSAoYXZvaWRpbmcgbmxpc3QpCgoyMDA2LTEwLTE2IDExOjQzICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCB0ZXN0cy90ZXN0LnB5OgoKICAgbnVtZXJpYyBhbmQgT0lEIHNldHMgd2l0aCB0ZXN0aW5nCgoyMDA2LTEwLTE2IDA4OjU0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGRpc2FibGluZyBubGlzdCBzaG91bGRuJ3QgZGlzYWJsZSBwZXJmc3RhdAoKMjAwNi0xMC0xNiAwODoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZGVhbCB3aXRoIG1pc3NpbmcgQVJQVEFCX1NJWkVfU1lNQk9MCgoyMDA2LTEwLTE2IDA3OjU0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIENIQU5HRVM6IFRydTY0OiAtIGZpeCAiYXV0b19ubGlzdCBmYWlsZWQgb24gYXJwdGFiX3NpemUgYXQgbG9jYXRpb24gMCIgZXJyb3JzCgoyMDA2LTEwLTE1IDE3OjIzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIGZpeGVzIGZvciBzbm1wd2FsayAvIHNubXBnZXRuZXh0LgoKMjAwNi0xMC0xNSAxNDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvbid0IG1vYW4gYWJvdXQgbm9ybWFsIGNvbm5lY3Rpb24tYmFzZWQgdHJhbnNwb3J0IGFjdGl2aXR5CiAgIChhbmQgKmRvKiBtb2FuIHNlbnNpYmx5IGFib3V0IGZhaWxlZCBzZW5kcykuCgoyMDA2LTEwLTE1IDE0OjQzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFN0b3JlIFRDUC9JUHY0IGFkZHJlc3MgaW5mb3JtYXRpb24gaW4gdGhlIHNhbWUgZm9ybWF0IGFzIFVEUC9JUHY0LgogICBUaGlzIGFsbG93cyB0aGUgY29tbXVuaXR5IC0+IHNlY3VyaXR5IG5hbWUgbWFwcGluZyB0byB3b3JrIGNvcnJlY3RseS4KICAgRml4ZXMgQnVnICMxNTcxOTQ1LgogICAgICBBIGJldHRlciAobW9yZSBtb2R1bGFyKSBzb2x1dGlvbiB3b3VsZCBiZSBwcmVmZXJhYmxlIChzZWUgZGlzY3Vzc2lvbnMKICAgb24gdGhlIG1haWxpbmcgbGlzdHMpLCBidXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgYWxsb3cgNS40IHRvIHByb2NlZWQuCgoyMDA2LTEwLTE1IDEwOjAzICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAga2xvb2t1cCB0YWtlcyB0aHJlZSBhcmd1bWVudHMsIG5vdCBvbmUKCjIwMDYtMTAtMTQgMTQ6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGtlcm5lbC5oLAogICAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHByZXBhcmUgZm9yIDY0LWJpdCBubGlzdCBjaGFuZ2VzCgoyMDA2LTEwLTE0IDEwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgRml4IE9JRCBzZXRzLCBtZW1vcnkgbGVha3MuCgoyMDA2LTEwLTE0IDA2OjQ5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBVc2UgYWxhcm0gaW5zdGVhZCBvZiB0aHJlYWQgZm9yIHRyYXBzLiAgVmFyaW91cyB0cmFwCiAgIGZpeGVzLgoKMjAwNi0xMC0xMyAxNjoxMyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEFkZCB0cmFwIHN1cHBvcnQgZm9yIHJlbWFpbmluZyB0eXBlcywgZml4CiAgIEFTTl9JUEFERFJFU1MgR0VUIHN1cHBvcnQuCgoyMDA2LTEwLTEzIDE1OjE2ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6NDkgIGR0czEyCgogICAqIFJFQURNRS5vc1g6CgogICBVcGRhdGUgd2l0aCByZWNlbnQgYnVpbGQgcmVwb3J0cyBmcm9tIENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTEzIDE0OjQ1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSGFuZGxlIGVycm9ycyBmcm9tIHJlY3YoKSAtIHNlZSBCdWcgIzE1Mjc5MzAKCjIwMDYtMTAtMTMgMTQ6MjUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRXhwbGljaXRseSByZWZlcmVuY2VkIFZOQU1FIHRva2VuIHdoZW4gZGVzY3JpYmluZyAidmlldyIgdG9rZW4gdXNhZ2UuCiAgIChTdWdnZXN0ZWQgYnkgSm9obiBSb3VpbGxhcmQpCgoyMDA2LTEwLTEzIDEzOjUwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHJlbW92ZSBORVRTTk1QX0RTX0FHRU5UX0ggd2hpY2ggaXNuJ3QgYSBkZWZhdWx0IHN0b3JlIHZhcmlhYmxlCgoyMDA2LTEwLTEzIDA3OjE0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZpeCBzeW50YXggdHlwbwoKMjAwNi0xMC0xMyAwMjoxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGRvbid0IGNvbW1pdCBib29sZWFuIGxvZ2ljIGxhdGUgYXQgbmlnaHQKCjIwMDYtMTAtMTMgMDE6MjggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ2xhcmlmeSB0aGUgcGFyc2luZyBvZiBib29sZWFuICJtb25pdG9yIiBleHByZXNzaW9ucy4KCjIwMDYtMTAtMTIgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHVzZSBtZW1vcnlfZGFyd2luIGZvciBkYXJ3aW43CgoyMDA2LTEwLTEyIDE1OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgaW50ZXJuYWwgcXVlcnkgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgKGFuZCBhY3RpdmUpCiAgICpiZWZvcmUqIG1vbml0b3IgZGlyZWN0aXZlcyBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMTIgMTU6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBidWlsZCBmaXggZm9yIHN5c3RlbXMgd2l0aCBubyBSVEhPU1RfU1lNQk9MIG9yIG5vIFJUTkVUX1NZTUJPTCAobGlrZSBBSVgpCgoyMDA2LTEwLTEyIDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTEwLTEyIDA5OjAzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgY29ycmVjdCBBUlBUQUJfU1lNQk9MIGFuZCBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIENIQU5HRVM6IEFJWDogQlVHIDEyMDUzMDA6IG5saXN0IGVycjogbmVpdGhlciBucHJvYyBub3IgX25wcm9jIGZvdW5kIChzYW1lIGZvciBydF90YWJsZSwgcnRoYXNoc2l6ZSwgcnRob3N0LCBydG5ldCkKCjIwMDYtMTAtMTIgMDQ6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBTdXBwcmVzcyB0aGUgc3Vic3RpdHV0aW9uIG9mIHRoZSBsaXN0IG9mIG1vZHVsZSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgcHVyZWx5IGEgdGVtcG9yYXJ5IHN0b3AtZ2FwIGZpeCwgdG8gaGFuZGxlIHNlZCBjb21tYW5kcyB3aGljaAogICBjaG9rZSBvbiBvdmVyLWxvbmcgc3Vic3RpdHV0aW9ucy4gIEEgYmV0dGVyIGFwcHJvYWNoIGlzIG5lZWRlZC4KCjIwMDYtMTAtMTIgMDQ6NDAgIGR0czEyCgogICAqIE5FV1M6CgogICBEb2N1bWVudCBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciAoaW5jbHVkaW5nIGJlaGF2aW91ciBjaGFuZ2VzKS4KCjIwMDYtMTAtMTIgMDM6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiBhc3NpZ25tZW50cyB0byBtdGVUcmlnZ2VyVmFsdWVJRAogICAgICAgW0J1ZyAjMTU3NDcxMywgUGF0Y2ggIzE1NzQ3NDMsIGZyb20gUm9zcyBUeWxlcl0KCjIwMDYtMTAtMTIgMDI6NTQgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgVHdlYWtzIGZvciBEYXJ3aW4gOSBzdXBwb3J0IC0gW1BhdGNoICMxNTc1NDMzLCBmcm9tIENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44Lmg6CgogICBVcGRhdGVkIHN5c3RlbSBoZWFkZXIgZmlsZSBmb3IgRGFyd2luOCAtIFtQYXRjaCAxNTc1NDMwLCBieSBDaHJpcyBKYWxiZXJ0XQoKMjAwNi0xMC0xMiAwMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgbWVtb3J5Lmg6CgogICBJbmNsdWRlIHRoZSBhcHByb3ByaWF0ZSBIQUwgbW9kdWxlcyBmb3IgRGFyd2luIChEYXJ3aW45KSBzeXN0ZW1zLgogICBTdXBwbGllZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMC0xMSAwOToyMSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIGFkZCBub3RlIHRoYXQgLS1lbmFibGUtbWZkLXJld3JpdGVzIGlzIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsIGlmLW1pYiBwb3J0cwogICAtIHJlbW92ZSBsaW5lIG9uIHBhdGNoIHRvIHByZXZpb3VzbHkgdW5yZWxlYXNlIGNvZGUKCjIwMDYtMTAtMTEgMDk6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGZyZWVic2QuaCwgb3BlbmJzZC5oOgoKICAgaW5jbHVkZSBpZi1taWIgcmV3cml0ZXMgaWYgbWZkIHJld3JpdGVzIGlzIGRlZmluZWQKCjIwMDYtMTAtMTEgMDg6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMCAxNzoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQcml2b3h5V2luZG93T3Blbj8gTXVzdCBoYXZlIGJlZW4gbWlzc2luZyBhIG1ham9yIGZlYXR1cmUgYWRkaXRpb246LSkKCjIwMDYtMTAtMTAgMTU6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTEwLTEwIDE0OjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE1Njk1MzcsMTU2OTUzOTogbmV3IFVEUC1NSUIgYW5kIFRDUC1NSUIgaW1wbGVtZW50YXRpb24gKGVuYWJsZSB0aHJvdWdoIC0td2l0aC1taWItbW9kdWxlcz11ZHAtbWliLHRjcC1taWIpCgoyMDA2LTEwLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTcwOTgyIFNvbGFyaXMgSUYtTUlCOiBTdXBwb3J0IGZvciBJUHY2LW9ubHkgaW50ZXJmYWNlcwoKMjAwNi0xMC0xMCAwNzozMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHByZWFkNjQgKEFJWCkgYW5kIG5saXN0NjQgKElSSVgpCgoyMDA2LTEwLTEwIDA2OjE2ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgbWlzc2luZyBTVFJVQ1RfTkxJU1Q2NF9IQVNfTl9WQUxVRSB2YXJpYWJsZSBzbyB0aGF0IHRoZSB0ZXN0IHJlc3VsdCBpcyBhY3R1YWxseSBzYXZlZAoKMjAwNi0xMC0xMCAwMzo1MiAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggc2hlbGwgc3ludGF4IGVycm9ycyByZXBvcnRlZCBieSBSaWNoYXJkIENob25hawoKMjAwNi0xMC0wOSAwNjoxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIG1vcmUgcm9idXN0IFNvbGFyaXMgQ1BVIHRlc3Rpbmc6IHRoZSBpbmRleCBmb3IgdGhlIGZpcnN0IENQVSBtYXkgdmFyeSBhY3Jvc3Mgc3lzdGVtcyAoQ1BVIDAgPSBpbmRleCA3NjgsIENQVSAxID0gaW5kZXggNzY5IGV0Yy4pCgoyMDA2LTEwLTA5IDA0OjIxICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgb24gREVCVUdNU0cqCgoyMDA2LTEwLTA4IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBjcHUvY3B1X3BzdGF0LmM6CgogICBBY3RpdmF0ZSBwc3RhdC1iYXNlZCBDUFUgaGFuZGxpbmcgb24gSFAtVVggc3lzdGVtcy4KCjIwMDYtMTAtMDggMTM6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIERvbid0IHJlZGVmaW5lIGFuIGV4aXN0aW5nIHRva2VuIHdpdGhvdXQgdW5kZWZpbmluZyBpdCBmaXJzdC4KCjIwMDYtMTAtMDggMTM6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRW5zdXJlIHRoYXQgaGlzdG9yaWNhbCBkYXRhIGlzIGF2YWlsYWJsZSBiZWZvcmUgd2UgYXR0ZW1wdCB0byB1c2UgaXQuCgoyMDA2LTEwLTA3IDE0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIEZpeCBzaXplIGNoZWNrIGZvciBzcGVjaWFsaXNlZCBpbnRlZ2VyLWJhc2VkIGFzc2lnbm1lbnRzLgogICAoQnVnICMxNTcyMzk0IC0gcGF0Y2ggcHJvdmlkZWQgYnkgUGhpbCBXaWxzb24pCgoyMDA2LTEwLTA3IDA2OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUzc29sYXJpc3N3YXA6CgogICBBZGp1c3QgdG8gY2hhbmdlcyBpbiBjZXJ0YWluIEhvc3RSZXMgaW5kZXhpbmcuCgoyMDA2LTEwLTA1IDE1OjQ0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFdoYXQncyBhIHN0cmF5IHVuZGVyc2NvcmUgaGVyZSBvciB0aGVyZSBiZXR3ZWVuIGZyaWVuZHM/CgoyMDA2LTEwLTA1IDA4OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tzdGF0LmM6CgogICBEZWJ1Z2dpbmcgY29kZS4KCjIwMDYtMTAtMDUgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdGhlIHVzZSBvZiBDUFUgaW5kZXhpbmcuCgoyMDA2LTEwLTA0IDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X251bGwuYwo6CgogICBBbGxvdyBzeXN0ZW1zIHdpdGhvdXQgYW4gZXhwbGljaXQgSEFMIG1lbW9yeSBtb2R1bGUgdG8gY29tcGlsZQogICAoZXZlbiBpZiB0aGUgYWdlbnQgY2FuJ3QgcmVwb3J0IHRoZSByZWxldmFudCBzdGF0aXN0aWNzKS4KCjIwMDYtMTAtMDQgMTQ6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfa3N0YXQuYzoKCiAgIEluY2x1ZGUga3N0YXQtYmFzZWQgQ1BVIHByb2Nlc3Npbmcgb24gU29sYXJpcyBzeXN0ZW1zLCBhbmQgYW1lbmQgdGhpcyBjb2RlCiAgIHRvIGFjdHVhbGx5IGNvbXBpbGUvd29yay4gIChNdWNoIG9mIHRoaXMgc3VwcGxpZWQgYnkgQnJ1Y2UgU2hhdykKCjIwMDYtMTAtMDMgMTE6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgdGhlIGFjdHVhbCBiZWhhdmlvdXIgb2YgLVV4IC1EeD14LCBhbmQgb25seSB1c2UgdGhpcyBpZiBpdCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMTAtMDEgMDg6NDMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMjogIEFkZCBOU0lTIGluc3RhbGxlciBvcHRpb24gZm9yIGluc3RhbGxpbmcgd2luRXh0RExMIHZlcnNpb24gb2YKICAgc25tcGQuZXhlCgoyMDA2LTEwLTAxIDA2OjQyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwo6CgogICBXaW4zMjogIEFkZCB0cmFwIHN1cHBvcnQgdG8gd2luRXh0RExMIGFuZCBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNi0wOS0yOSAxOTowMCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIFJlbW92ZSB3aW5FeHRETEwgc25tcGQuY29uZiBvcHRpb24sIGFkZCBTTk1QIHYyIHN1cHBvcnQuCgoyMDA2LTA5LTI5IDEzOjI4ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIHRlc3QgZml4CgoyMDA2LTA5LTI5IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudF9pbnRmLmMsIGNsaWVudF9pbnRmLmM6CgogICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICB0ZXN0aW5nIHVwZGF0ZXMKCjIwMDYtMDktMjkgMTM6MDMgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBzdXBwb3J0IGZvciBhIGdlbmVyaWMgd2FsayB3cmFwcGVyCgoyMDA2LTA5LTI5IDEyOjMxICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIGNsZWFudXAKCjIwMDYtMDktMjggMTg6NTAgIG1hcnoKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBhZGRlZCAnc2V0JyBtZXRob2QsIGZpeGVzL2FkZGl0aW9ucyB0byByZWFkbWUKCjIwMDYtMDktMjcgMjM6MDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYzoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE1NjY3Nzc6IGZyb20gamFsYmVydDogYnVpbGQgZml4ZXMgZm9yIG1lbW9yeV9kYXJ3aW4uYwoKMjAwNi0wOS0yNyAxNToyMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIHJld29yZGluZwoKMjAwNi0wOS0yNyAxNDozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTIgLT4gVjUuNC5wcmUzCgkKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjcgMTQ6MjggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgoyMDA2LTA5LTI3IDE0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeDpjZmxhZ3MgLT46Y2NmbGFncwoKMjAwNi0wOS0yNyAxMzozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NjY1MjM6IGZyb20gYXBlcnNzb246IE1lbW9yeSBsZWFrIGluIGlmLW1pYiAoU29sYXJpcykKICAgLSB0YWtlIGFkdmFudGFnZSBvZiBpZl9uYW1ldG9pbmRleCgpIHdoZW4gcG9zc2libGUKICAgLSBncmFiIHRoZSBJUHY2IGludGVyZmFjZSBJZGVudGlmaWVyIGlmIGF2YWlsYWJsZQoKMjAwNi0wOS0yNyAxMDo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICAtIHVwZGF0ZSBmb3IgbmV3IHJlYXNtX21heCB2NC92NiBzcGxpdAogICAtIGFkZCAnbCcgdG8gcHJpbnRmIHNwZWMgZm9yIHNpemVfdCBwYXJhbQoKMjAwNi0wOS0yNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbGFyZ2VmaWxlIHN1cHBvcnQgb24gc29sYXJpcyBhbmQgZGlzYWJsZSBlbWJlZGRlZCBwZXJsIHdoZW4gb24KCjIwMDYtMDktMjcgMDk6NTEgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIHBsYXRmb3JtIGxpc3QKCjIwMDYtMDktMjcgMDY6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRob3V0LXB5dGhvbi1tb2R1bGVzCgoyMDA2LTA5LTI2IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIG9wZW5ic2Q0IHRvIHN5c2N0bCBpbnRlcmZhY2UgbGlzdAoKMjAwNi0wOS0yNiAxNTo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE1OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE0OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29uc2lzdGVudGx5IHNheSAiUGVybCIsIG5vdCAicGVybCIuCgoyMDA2LTA5LTI2IDE0OjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IG5lZWQgdG8gZG91YmxlIGNsZWFuIHB5dGhvbgoKMjAwNi0wOS0yNiAxNDoxOSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcGVybC1tb2R1bGVzCgoyMDA2LTA5LTI2IDEyOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgSW5jbHVkZSBzb21lIChwcm9iYWJseSBub3QgYWxsKSBuZWNlc3NhcnkgaGVhZGVyIGZpbGVzLgoKMjAwNi0wOS0yNiAxMjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4ZWQgcHl0aG9uIG1ha2UgY2xlYW4gd2hlbiBubyBweXRob24gc3VwcG9ydCB3YXMgcmVxdWVzdGVkCgoyMDA2LTA5LTI2IDA5OjM5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHNldCB1cCBzeW1saW5rcyBiZWZvcmUgcnVubmluZyBjb25maWd1cmUgdG8gc3Vydml2ZSB0aGUgbmV3IHBlcmwgdGVzdHMKCjIwMDYtMDktMjYgMDk6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBwZXJsIHRlc3RzIHRvIGFsbG93IGZvciBzeW1saW5rcwoKMjAwNi0wOS0yNiAwOTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXhlZCBycG0gY2hlY2tzLi4uICBvcHBwcwoKMjAwNi0wOS0yNiAwOTowOSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZG9jdW1lbnRlZCBBSVggc2VkIGlzc3VlcwoKMjAwNi0wOS0yNiAwNzo0OSAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50LnB5LAogICAgIG5ldHNubXAvY2xpZW50X2ludGYuYywgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cCwgd2VpcmQgbGVhZiBvYmogaGFuZGxpbmcsIGFkZGVkIHNubXBnZXRidWxrCgoyMDA2LTA5LTI1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUyICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMSAtPiBWNS40LnByZTIKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTI1IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKMjAwNi0wOS0yNSAyMTozNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeGVkIHN5bnRheCBlcnJvcgoKMjAwNi0wOS0yNSAxNzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJhbiBhdXRvaGVhZGVyCgoyMDA2LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVcGRhdGUgZm9yIGEgLS13aXRoLXB5dGhvbi1tb2R1bGVzIGZsYWc7IHdpbGwgcnVuIGludG8gc29tZSBvZiB0aGUgc2FtZSBidWlsZC1pbi1wbGFjZSBpc3N1ZXMgdGhhdCBwZXJsIGhhcyBidXQgaXQncyBhIHN0YXJ0CgoyMDA2LTA5LTI1IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzCgoyMDA2LTA5LTI1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NTkzNTg6IGZyb20gdHJhbWtlcjogY2hlY2sgc2NhbmYgcmVzdWx0cyBmb3IgZGlza2lvIHNjYW5uaW5nCgoyMDA2LTA5LTI1IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNTY0MjMzOiBIYXZlIGNvbmZpZ3VyZSB0ZXN0IGZvciBycG0gaGVhZGVycyBub3QganVzdCB0aGUgbGlicmFyaWVzCgoyMDA2LTA5LTI1IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IHdhcm4gYWJvdXQgZXhjbHVkaW5nIHJlcXVpcmVkIG1vZHVsZXMgd2hlbiB0aGUgY3VycmVudCBmaWxlIGlzIGRlZmF1bHRfbWlicwoKMjAwNi0wOS0yNSAxNDozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU2NTI5MzogZnJvbSBhZHA6IFVEUElQdjYgdHJhbnNwb3J0IHJlcG9ydHMgd3JvbmcgcG9ydCBudW1iZXIKCjIwMDYtMDktMjUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdGVzdHMgdG8gc2VlIGlmIHdlJ3JlIGluIHRoZSBtYWluIHNvdXJjZSB0cmVlIHNvIHdlIGNhbiBpbnN0YWxsIHRoZSBwZXJsIG1vZHVsZXMgb3Igbm90CgoyMDA2LTA5LTI1IDA5OjI1ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgYnVsa3dhbGsudCwgY29uZi50LAogICAgIGdldC50LCBnZXRuZXh0LnQsIG1pYi50LCBtaWJsb2FkLnQsCiAgICAgbm90aWZ5LnQsIHNlc3Npb24udCwgc2V0LnQ6CgogICBNYWtlIHBlcmwgdGVzdCBzdWl0ZSB3b3JrIGV2ZW4gaWYgbmV0LXNubXAgaXNuJ3QgaW5zdGFsbGVkIHlldC4KCjIwMDYtMDktMjUgMDg6NDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgTmV0U05NUDo6YWdlbnQgdGVzdHMgbmVpdGhlciBuZWVkIGNvbmZpZyBub3IgTUlCcwoKMjAwNi0wOS0yNSAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBleGNsdWRlIENWUyBmaWxlcyBmcm9tIG5pZ2hseSB0YXJiYWxscwoKMjAwNi0wOS0yNSAwNzozMCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYywKICAgICB0ZXN0cy90ZXN0LnB5OgoKICAgYWRkaW5nIGdldGJ1bGssIHJlbW92aW5nIHNvbWUgZGVidWcKCjIwMDYtMDktMjUgMDU6MzUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIERvbid0IG1peCB0YWJzIGFuZCBzcGFjZXMgZm9yIGluZGVudGF0aW9uLiBDb252ZXJ0IGFsbCAocmFyZWx5IHVzZWQpIHRhYnMgdG8gc3BhY2VzLgoKMjAwNi0wOS0yNSAwMTo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaAosIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIERpc3Rpbmd1aXNoIGJldHdlZW4gIk9JRC4qIiBhbmQgIk9JRCoiIHdpbGRjYXJkIHN5bnRheCAoZXhjbHVzaXZlIGFuZAogICBpbmNsdXNpdmUgc3VidHJlZSBtYXRjaGVzIHJlc3BlY3RpdmVseSkuCgoyMDA2LTA5LTI1IDAxOjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYKOgoKICAgSW1wbGVtZW50IChhbmQgZG9jdW1lbnQpICJPSUQuKiIgc3ludGF4IGZvciBzdWJ0cmVlIG1hdGNoaW5nLgoKMjAwNi0wOS0yNCAxNToyOCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTCAtIEZpeCBidWcgd2l0aCBzZXQgcmVxdWVzdHMsIHN0YXJ0IHRvIGFkZCBTTk1QdjIgc3VwcG9ydC4KCjIwMDYtMDktMjMgMDA6MTMgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIE9JRC5wbSB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTQ6MTggIHRhbmRlcnMKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHNvbWUgbml0LXBpY2tpbmcKCjIwMDYtMDktMjIgMTM6NTYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFNOTVAucG0gcGVybCB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTI6NDcgIG1hcnoKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIFJFQURNRSBlZGl0cwoKMjAwNi0wOS0yMiAxMjowMyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbW9kcyB0byBSRUFETUUgd2l0aCBzb21lIHVzYWdlIGluZm8KCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBwcm9wZXIgbmFtaW5nCgoyMDA2LTA5LTIyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBweXRob24vOiBMSUNFTlNFLCBSRUFETUU6CgogICBhZGRlZCBhIHJlYWRtZSBhbmQgbGljZW5zZSBmaWxlCgoyMDA2LTA5LTIyIDEwOjIwICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGF0ZSB1cGRhdGUKCjIwMDYtMDktMjIgMDc6NTggIG1hcnoKCiAgICogcHl0aG9uLzogc2V0dXAucHksIG5ldHNubXAvX19pbml0X18ucHksCiAgICAgbmV0c25tcC9jbGllbnQucHksIG5ldHNubXAvY2xpZW50X2ludGYuYywKICAgICBuZXRzbm1wL3Rlc3RzL19faW5pdF9fLnB5LCBuZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmYsCiAgICAgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgQWRkaW5nIGluaXRpYWwgYWxwaGEgc3VwcG9ydCBmb3IgbmV0LXNubXAgcHl0aG9uIGJpbmRpbmcKCjIwMDYtMDktMjIgMDQ6NDcgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgZmFpbCBvbiAiTE9HX0VSUiIuCgoyMDA2LTA5LTIyIDAzOjI5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90Lzogbm90aWZ5LnQsIHN0YXJ0YWdlbnQucGw6CgogICBmaXggU05NUC5wbSBub3RpZnkgdGVzdCAoc3RhcnQgc25tcHRyYXBkIHdpdGggdmFsaWQgb3B0aW9ucykKCjIwMDYtMDktMjEgMDk6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luZG93cyBidWlsZCBmaXhlcy4KCjIwMDYtMDktMjEgMDc6NDMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIFN5bmMgc3RydWN0IG5ldHNubXBfdHJhcGRfaGFuZGxlcl9zIHdpdGggdGhlIGxpYnJhcnkgY29kZSBhZ2FpbiAoYWRkICJmbGFncyIpLgoKMjAwNi0wOS0yMSAwNjowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBmaXggcG90ZW50aWFsIHNlZ2ZhdWx0IGludHJvZHVjZWQgYnkgcGF0Y2ggMTU2MTI3NwoKMjAwNi0wOS0yMSAwNToyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+IGZvciBTTk1QX1NUUk9STlVMTAoKMjAwNi0wOS0yMSAwMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICpyZWFsbHkqIGtlZXAgcHJlWC9yY1ggaW4gdmVyc2lvbiBzdHJpbmdzCgoyMDA2LTA5LTIwIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgY2hhbmdlIGFnZW50eCBzb2NrZXQgZGVmaW5lIHRvIE5FVFNOTVBfIHByZWZpeGVkCgoyMDA2LTA5LTIwIDEzOjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQ2hlY2sgaW5jb21pbmcgdHJhcCBPSURzIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgdHJhcGhhbmRsZSBPSUQKICAgKGJ1dCBub3QgdGhlIG90aGVyIHdheSByb3VuZCEpCgoyMDA2LTA5LTIwIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNoYW5nZSBwcmUgdGFncyB0byAwLiB0byBhdm9pZCBiYWRseSBnZW5lcmF0ZWQgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA5LTIwIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYXV0b21hdHRlZCB0ZXN0aW5nIG9mIHRoZSBwcm9kdWNlZCB0YXItYmFsbAoKMjAwNi0wOS0xOSAyMjoyMyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeCBwYXRoIHRvIGV4dHJhY3RuZXdzCgoyMDA2LTA5LTE5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBjb25maWd1cmUsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjMgLT4gVjUuNC5wcmUxCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKMjAwNi0wOS0xOSAxNzoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2F2ZSB0byBwdXR0aW5nIGluIHNvbWUgYnVmZmVyIHNwYWNlIGZvciBsaWJjdXJyZW50OyA1LjMgd2FzIDEwIGFuZCBpbmNyZW1lbnRzIG9mIDUgbWFrZSBpdCBlYXN5LCBzbyA1IGl0IGlzLgoKMjAwNi0wOS0xOSAxNzowOCAgaGFyZGFrZXIKCiAgICogZGlzdC86IGV4dHJhY3RuZXdzLCBtYWtlcmVsZWFzZToKCiAgIHlldCBtb3JlIHVwZGF0ZXMgZm9yIG1ha2luZyByZWxlYXNlcwoKMjAwNi0wOS0xOSAxNjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciB1ZHAgZG9tYWluczogcmVtb3ZlIHJlcXVpcmVtZW50IGZvciBpbmV0X2F0b24gd2hpY2ggb24gc29tZSBzeXN0ZW1zIGV4aXN0cyBpbiBsaWJyZXNvbHYKCjIwMDYtMDktMTkgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgdWRwIGRvbWFpbiBmaXhlcwoKMjAwNi0wOS0xOSAxNjowNCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGJ1aWxkIGZpeCBmb3IgSVJJWCB3aXRoIFNHSSdzIGNjCgoyMDA2LTA5LTE5IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcHRyYXBkOiB0aGUgdHJhcGhhbmRsZSBkaXJlY3RpdmUgbm93IHN1cHBvcnRzIGEgLXQgc3dpdGNoIHRvIGluZGljYXRlIG1hdGNoaW5nIGFueSBPSUQgaW4gdGhlIHRyZWUgYmVsb3cgdGhlIHNwZWNpZmllZCBPSUQKCjIwMDYtMDktMTkgMTU6MTggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgY2xlYW5lZCB1cCBwZXJsIHZhcnMgZm9yIHN1cHBvcnQgb24gb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNi0wOS0xOSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggZXJyb3IgbG9naWMgaW4gcGVybCB0ZXN0cwoKMjAwNi0wOS0xOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzbWFydCBkZXRlY3Rpb24gb2YgYXZhaWxhYmxlIHBlcmwgc3VwcG9ydAoKMjAwNi0wOS0xOSAxMToyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCBjYyB0ZXN0IHRvIGFsbG93IGZvciBkYXNoIG9wdGlvbnMKCjIwMDYtMDktMTkgMTA6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCB0aGUgYXBwcm9wcmlhdGUgcHJlZml4IG1hdGNoIHdoZW4gb25lIE9JRCBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIuCiAgIFRoZSBwcmV2aW91cyBjb2RlIHRyZWF0ZWQgdGhpcyBhcyBhIG5vbi1tYXRjaCAocmV0dXJuaW5nIDApLgogICBJJ20gbm90IGF0IGFsbCBjb252aW5jZWQgYnkgdGhlICIrMSIgaGFuZGxpbmcgZWl0aGVyLgoKMjAwNi0wOS0xOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBpdGVtcyBjYWxjdWxhdGlvbiB3aXRob3V0IHBvcHBpbmcgYSBtYXJrCgoyMDA2LTA5LTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTUwNzI1OiBmcm9tICdXYXluZSBHbGFudHonOiBBIG5ldyB1aW50IGluc3RhbmNlIGhlbHBlciB0byBtYXRjaCB0aGUgZXhpc3RpbmcgaW50LCBsb25nIGFuZCB1bG9uZyBoZWxwZXJzCgoyMDA2LTA5LTE5IDA5OjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTUyNzkzMDogZml4IHNtdXggYXV0aGVudGljYXRpb24KCjIwMDYtMDktMTkgMDk6MTcgIGhhcmRha2VyCgogICAqIGRpc3QvOiBSRUxFQVNFLUlOU1RSVUNUSU9OUywgZXh0cmFjdG5ld3M6CgogICByZW1vdmUgZnJvbSB1c2VyIHN0cmluZ3MgaW4gTkVXUyBhbmQgQ0hBTkdFUyBsaW5lcwoKMjAwNi0wOS0xOSAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIHJlbW92ZSByb2JlcnQncyBzZWxmLWNhbGxlZCBoYWNrIGZvciBtYWtpbmcgc25tcHRyYXBkIGhhbmRsZSBwYXJ0aWFsIE9JRHMuICBBcyBhZ3JlZWQgdG8gb24gY29kZXJzIHRoaXMgY2FuJ3QgYmUgZG9uZSBhcyBpcyBiZWNhdXNlIGl0IGNvbXBsZXRlbHkgY2hhbmdlcyBleGlzdGluZyB1c2FnZS4gIEEgbmV3IG1lY2hhbmlzbSBpcyBuZWVkZWQgdG8gc3VwcG9ydCB0aGlzIGJlaGF2aW91ciBzbyBpdCBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYml0eSB3aXRoIHBvdGVudGlhbCBzZWN1cml0eSByYW1pZmljYXRpb25zCgoyMDA2LTA5LTE5IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAxMjgyNTY2OiBmcm9tIG1hZ2ZyIHRvIHJld29yayB0cmFuc3BvcnQgY3JlYXRpb24gdG8gYWxsb3cgZm9yIGFsdGVybmF0aXZlIGludGVycHJldGF0aW9ucyBvZiB0aGUgYWRkcmVzcyBhbmQgYSBtb3JlIGZsZXhpYmxlIHRyYW5zcG9ydCByZWdpc3RyYXRpb24gc3lzdGVtCgoyMDA2LTA5LTE5IDA2OjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU2MTI3NzogdXNlIG5ldC5pcHY2Lm5laWdoLmxvLmJhc2VfcmVhY2hhYmxlX3RpbWVfbXMgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGJhc2VfcmVhY2hhYmxlX3RpbWUKCjIwMDYtMDktMTkgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50LmMsIG10ZU9iamVjdHMuYwo6CgogICBEb24ndCByZS1pbml0aWFsaXNlIGJ1aWx0LWluIEV2ZW50LU1JQiBldmVudHMsIGV0Yy4KCjIwMDYtMDktMTkgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBGaXJzdCBzdGVwcyBpbiBzdXBwb3J0aW5nIHNpbmdsZS1pbnN0YW5jZSByZWdpc3RyYXRpb25zLgoKMjAwNi0wOS0xOCAyMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTQ3NDQ2ODogaWZDb25uZWN0b3JQcmVzZW50IGFsd2F5cyByZXR1cm5zIDAKCjIwMDYtMDktMTggMjA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgbW9kaWZpZWQgdGhlIGhvc3QgcmVzb3VyY2VzIHNraXAgTkZTIHBhdGNoIHRvIGZpeCBhIGJ1ZyBhbmQgdG8gdXNlIHRoZSBkZWZhdWx0IHN0b3JhZ2UgY29uZmlnIGluc3RlYWQKCjIwMDYtMDktMTggMjA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1MjQ3NTU6IGZyb20gYXBlcnNzb24gdG8gYmV0dGVyIHN1cHBvcnQgdGhlIFVEUFRhYmxlIGZvciB1bmtub3duIGFkZHJlc3MgdHlwZXMKCjIwMDYtMDktMTggMjA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1MzQ4Nzc6IGZyb20gYnVja2ggdG8gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIE5GUyBlbnRyaWVzIGluIHRoZSBob3N0IHJlc291cmNlcyBoclN0b3JhZ2VUYWJsZS4gIFNlZSB0aGUgc2tpcE5GU0luSG9zdFJlc291cmNlcyB0b2tlbiBpbiB0aGUgc25tcGQuY29uZiBmaWxlIGZvciBkZXRhaWxzLgoKMjAwNi0wOS0xOCAyMDowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IGFjY2VwdGlsZSBORVdTIHRva2VucwoKMjAwNi0wOS0xOCAxNzozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHRoZSBuZXcgQ1ZTIE5FV1MgdGFnIHN5c3RlbQoKMjAwNi0wOS0xOCAxNjowNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTkVXUzogc25tcHRyYXBkOiAtIFBBVENIOiAxNTM2NzczOiBzdXBwb3J0IHBhcnRpYWwgb2lkIG1hdGNoaW5nCgogICBXZSBjYW4gc3RpbGwgYWRkL3JlcXVpcmUgYSBzcGVjaWFsIHRva2VuL3N5bnRheCBmb3IgdGhpcyBhZnRlciBwcmUxCiAgIGlmIHRoaXMgd2FzIHRoZSBjb25zZW5zdXMuCgoyMDA2LTA5LTE4IDE1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgZml4IHJlY2VudCBidWlsZCBpc3N1ZXMgb24gU29sYXJpcyA3IChwYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbikKCjIwMDYtMDktMTggMDc6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBhZGQgZGVidWdnaW5nLCBmaXggc29tZSBmaWd1cmVzCgoyMDA2LTA5LTE4IDAyOjA4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvTUFOSUZFU1Q6CgogICBhZGQgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQgZmlsZXMKCjIwMDYtMDktMTggMDE6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgTW92ZSB1cCBhbmQgcmVuYW1lIHRoZSAjaWZuZGVmIHRvIHByZXZlbnQgZHVwbGljYXRlIGluY2x1ZGUuIEZpeGVzIGNvbXBpbGUgZXJyb3JzIHdydC4gQ291bnRlcjY0IG9uIFNvbGFyaXMgNyBhbmQgZWFybGllci4KCjIwMDYtMDktMTYgMTY6MzMgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUgdXBkYXRlIGZvciB3aW5FeHRETEwuCgoyMDA2LTA5LTE2IDE1OjIyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzIHdpbkV4dERMTDogVXNlIHJlZ2lzdHJ5IGVudHJpZXMgZm9yIFdpbmRvd3MgU05NUCBleHRlbnNpb24gdG8gZ2V0CiAgIHRoZSBsaXN0IG9mIERMTHMgdG8gbG9hZC4KCjIwMDYtMDktMTYgMTM6NDkgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FVFNOTVBfIGRlZmluZSBmaXhlcy4KCjIwMDYtMDktMTYgMTI6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBjaGVjayBmb3IgPHN5cy9zeXN0ZW1jZmcuaD4gKEFJWCkKCjIwMDYtMDktMTYgMTE6MDEgIHRhbmRlcnMKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBmaXggc29tZSBORVRTTk1QX05FVFNOTVBfKiAiZG91YmxlIHJlbmFtZSIgZXJyb3JzIGZvciBXaW5kb3dzCgoyMDA2LTA5LTE2IDEwOjU2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcmV2ZXJ0IHRvIChsb2NhbCkgT0xEX0hFSU1EQUwgZGVmaW5lCgoyMDA2LTA5LTE2IDEwOjIzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgRE9OVF9VU0VfTkxJU1QKCjIwMDYtMDktMTYgMTA6MTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA5LTE2IDA4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiwgbGlic25tcC5kZWYuaW46CgogICBXaW5kb3dzIE1TVkMgUGVybCBjb21waWxlIGZpeGVzLgoKMjAwNi0wOS0xNiAwODoxOSAgYWxleF9iCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTDoKCiAgIEZpeCBmb3IgYnVpbGRpbmcgdW5kZXIgV2luZG93cyAoTVNWQykuCgoyMDA2LTA5LTE1IDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWN0aXZhdGUgbWVtb3J5IEhBTCBjb2RlIGZvciBJUklYCgoyMDA2LTA5LTE1IDA5OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jOgoKICAgaW5pdGlhbCBJUklYIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDktMTUgMDc6NDggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgPHN5cy9zeXNnZXQuaD4gKElSSVgpCgoyMDA2LTA5LTE1IDA3OjE0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBpbnRyb2R1Y2UgbmV0c25tcF9vc19rZXJuZWxfd2lkdGgoKSB0byBiZSBhYmxlIHRvIGRldGVjdCA2NGJpdCBrZXJuZWxzIGF0IHJ1bnRpbWUKCjIwMDYtMDktMTUgMDY6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3Igc3lzL3N5c3RlbWNmZy5oIChBSVgpIGFuZCBzeXMvc3lzdGVtaW5mby5oIChJUklYKQoKMjAwNi0wOS0xNSAwNTo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICBzbm1wbGliL3NjYXBpLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlCiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCB3aW4zMi9Db25maWd1cmU6CgogICBtb3JlIHJlbmFtZXMgYW5kIGZpeGVzCgoyMDA2LTA5LTE1IDA0OjE1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBzeW50YXggZXJyb3IgdGhhdCBicm9rZSB0aGUgU29sYXJpcyBidWlsZAoKMjAwNi0wOS0xNSAwMzo0NCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCB3cm9uZyByZW5hbWVzCgoyMDA2LTA5LTE1IDAzOjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgcmVzdHJpY3QgSVBfUEtUSU5GTyBjb2RlIHRvIExpbnV4CgoyMDA2LTA5LTE1IDAyOjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggc3ludGF4IGVycm9ycyB3aGljaCBicm9rZSB0aGUgYnVpbGQgb24gU29sYXJpcwoKMjAwNi0wOS0xNCAyMTowMyAgYWxleF9iCgogICAqIHdpbjMyLzogY29uZmlnLmguYm9ybGFuZCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoYW5nZSBOZXQtU05NUCBkZWZpbmVzIHRvIHVzZSBORVRTTk1QXyBwcmVmaXguCgoyMDA2LTA5LTE0IDE3OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgICAgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywKICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wa2NzLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYwosIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgQWx3YXlzIHVzZSB0aGUgbmV3IG5ldC1zbm1wLWNvbmZpZy5oIGRlZmluaXRpb25zIGZyb20gd2l0aGluIHRoZSBORVRTTk1QXwogICBuYW1lc3BhY2UuCgoyMDA2LTA5LTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgZmlyc3QgcGFzcyBhdCBleHRyYWN0aW5nIE5FV1MvQ0hBTkdFUyBmaWxlcyBmcm9tIGN2cyBsb2dzCgoyMDA2LTA5LTE0IDE2OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZGV0ZWN0IHNvbGFyaXMgaWJkL2lwLnR1bi9hdGggaW50ZXJmYWNlIHR5cGVzIHByb3Blcmx5CgoyMDA2LTA5LTE0IDE1OjI4ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBtZW50aW9uIFNvbGFyaXMgaWYtbWliIHJld3JpdGUKCjIwMDYtMDktMTQgMTU6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDYtMDktMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTkVXUzogUEFUQ0hFUzogMTUwOTk0MzogcmVzcG9uc2VzIHdpbGwgZ2V0IHNlbnQgZnJvbSB0aGUgb3JpZ2luYWwgZGVzdCBJUCBhZGRyZXNzIHdoZW4gcG9zc2libGUuCgoyMDA2LTA5LTE0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogUEFUQ0hFUzogMTU1NDgyNzogZnJvbSBydHlsZTogZml4IGhhbmRsaW5nIG9mIGZhaWxlZCBwcm94eSBTRVQgcmVxdWVzdHMKCjIwMDYtMDktMTQgMTM6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jCjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNTU3NTE0IGZyb20gcnR5bGU6IERvIG5vdCBhdHRlbXB0IHRvIGNvbGxlY3QgZGF0YSBkdXJpbmcgU0VUIHByb2Nlc3NpbmcuCgoyMDA2LTA5LTE0IDEzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhc3MgMiBhdCBnZXR0aW5nIGF1dG8tYnVpbGQgc3VwcG9ydCBmb3IgLnNvIGZpbGVzLiAgSSdtIG5vdyBjb252aWVuY2VkIGl0J3MgY2xvc2UgdG8gaW1wb3NzaWJsZSB0byBkbyBjb3JyZWN0bHkgd2l0aCBkZXBlbmRlbmN5IGlzc3VlcyBhbmQgbm8gc3VwcG9ydCBmb3IgcmVjdXJzaXZlIGZ1bmN0aW9ucyBpbiBzaAoKMjAwNi0wOS0xNCAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpcEFkZHIuYywgdmFyX3JvdXRlLmMKOgoKICAgdXNlIG5ldyBkYXRhIGFjY2VzcyByb3V0aW5lIGZvciBzb2xhcmlzLCBpZiByZXdyaXRlIGluIGVmZmVjdAoKMjAwNi0wOS0xNCAxMDozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICB1c2UgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgdG8gZGVjaWRlIGFib3V0IGlmLW1pYiBzdXBwb3J0CgoyMDA2LTA5LTE0IDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzb2xhcmlzIHN1cHBvcnQgZm9yIGlmLW1pYiA2NGJpdCBjb3VudGVycwoKMjAwNi0wOS0xNCAxMDoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvY29uZiAmJiBhdXRvaGVhZGVyCgoyMDA2LTA5LTE0IDEwOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdHlwZSBjaGVjayBmb3Igc29sYXJpcyBDb3VudGVyNjQKCjIwMDYtMDktMTQgMTA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgc3BsaXQgcmVhc21fbWF4IGludCB0d28gdmFycyAodjYvdjYpCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUwoKMjAwNi0wOS0xNCAwNzo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIG1pYklJL2lmVGFibGUuaDoKCiAgIE9ubHkgdHJ5IHRvIHVzZSBtZmQgY29kZSBpZmYgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgaXMgZGVmaW5lZAoKMjAwNi0wOS0xNCAwNzo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lZCBmb3IgbmV3IGlmT3BlclN0YXR1cyB2YWx1ZXMKCjIwMDYtMDktMTQgMDI6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMKLCBsb2NhbC9taWIyYy5yb3cuY29uZjoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgc2luZ2xlLXJvdyBoZWxwZXIuCgoyMDA2LTA5LTEzIDEwOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIHBhc3Mgb25lIGF0IHNwZWNpZnlpbmcgZGxscyB0byBidWlsZCB2aWEgbW9kdWxlcy4gIERvIG5vdCB1c2UgdGhpcyB5ZXQgYXMgdGhlcmUgYXJlIGNvbmZsaWN0IGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgd29ya2VkIG91dAoKMjAwNi0wOS0xMiAxODozMiAgYWxleF9iCgogICAqIE5FV1MsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMKLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwKICAgICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbmRvd3M6IG5ldyB3aW5FeHRETEwgZXh0ZW5zaW9uIG1vZHVsZSB0byBhbGxvdyBzbm1wZCB0byBsb2FkIFdpbmRvd3MKICAgU05NUCBzZXJ2aWNlIGV4dGVuc2lvbiBETExzIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgSE9TVC1SRVNPVVJDRVMtTUlCCiAgIGFuZCBvdGhlciBNSUJzIHByb3ZpZGVkIHdpdGggV2luZG93cy4KCjIwMDYtMDktMTIgMTY6MTUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENBTl9VU0VfU1lTQ1RMIC0+IE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKCjIwMDYtMDktMTIgMTU6NDIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcwoKMjAwNi0wOS0xMiAxNTozNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBzZWRzY3JpcHQuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42Lmg6CgogICBORVdTOiBtaXNjOiAtIE1vc3QgbmV0LXNubXAgc3BlY2lmaWMgZGVmaW5lcyBhcmUgbm93IChhbHNvKSBhdmFpbGFibGUgdW5kZXIgYSBwcm9wZXIgTkVUU05NUF8gcHJlZml4LiBUaGUgb2xkZXIsIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIG5hbWVzIGFzIHdlbGwgYXMgdGhlIGF1dG9jb25mIHZhcmlhYmxlcyBjYW4gbm93IGJlIHR1cm5lZCBvZmYgYnkgYSBzcGVjaWFsIGRlZmluZS4KCjIwMDYtMDktMTIgMTA6MzMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTOiAxNDI3NDEwXSBTZXQgYXV0aCBlbmdpbmVJRCBmb3IgU05NUHYzIHRyYXBzLgogICAocmF0aGVyIHRoYW4gc2VuZGluZyBhIHRyYXAgd2l0aCBubyBhdXRoIGVuZ2luZUlEKQoKMjAwNi0wOS0xMiAxMDozMCAgZHRzMTIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtIFtCVUdTIDE0MTY0ODFdIFN1cHBvcnQgc3BlY2lmeWluZyBhbiBleHBsaWNpdCBsaW5rZXIuCiAgIERlZmF1bHRzIHRvICRDQyBpZiBub3QgZXhwbGljaXRseSBzZXQuCgoyMDA2LTA5LTEyIDEwOjI3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTIDE1MDIyNjddIEJ1aWxkIGFjY2VzcyBsaXN0IGluIHRoZSBjb3JyZWN0IG9yZGVyLgoKMjAwNi0wOS0xMiAwNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBlbWJlZGRlZCBQZXJsIGFuZCB0aGUgUGVybCBtb2R1bGVzIGJ5IGRlZmF1bHQKCjIwMDYtMDktMDggMDg6NDMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBORVdTOiBtaWIyYzogLSBbQlVHUzogMTQ3OTkxNl0gUmVzdG9yZSBjb25zaXN0ZW5jeSBpbiByb3cgY3JlYXRpb24gY29kZS4KCjIwMDYtMDktMDggMDU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgTkVXUzogc25tcGQ6IC0gW0JVR1M6IDE1MzU5MDNdIFN1cHBvcnQgc3BhY2VzIHdpdGhpbiBzZWN1cml0eSBuYW1lcwoKMjAwNi0wOS0wNyAyMDo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXgsIEkgdGhpbmssIHRoZSBidWxrd2FsayBwcm9ibGVtczsgYWxsIHRlc3RzIHBhc3MuICBJIGJlbGlldmUgdGhlIHBhdGNoIGlzIHRoZSBjb3JyZWN0IGNvbWJpbmF0aW9uIGJldHdlZW4gdGhlIHR3byBkaWZmZXJlbnQgcGF0Y2hlcyAodGhlIG9sZCBvbmUgYW5kIHRoZSBuZXcgb25lKSB0aGF0IHNob3VsZCBmaXggYm90aCBwcm9ibGVtcy4gIE5FV1M6IHBlcmwgLSBGaXhlZCB0aGUgcGVybCBidWxrd2FsayBmdW5jdGlvbgoKMjAwNi0wOS0wNyAwOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIHdoaWNoIGJyb2tlIHBlcnNpc3RlbmNlCgoyMDA2LTA5LTA3IDA5OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBVc2UgdGhlIGNvcnJlY3QgQVBJIGNhbGwgZm9yIHJlbWVtYmVyaW5nIGEgbmV3bHktY3JlYXRlZCByb3cuCiAgIChTcG90dGVkIGJ5IFpoYW5nIENodWFuKS4KCjIwMDYtMDktMDcgMDQ6MzcgIGR0czEyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBORVdTOiBzbm1wZGY6IC0gW0JVR1M6IDE1MTU1MDddIEhhbmRsZSBmYWlsZWQgcmVxdWVzdHMgYmV0dGVyCiAgIChEb24ndCBnbyBpbnRvIGFuIGluZmluaXRlIGxvb3AhKQoKMjAwNi0wOS0wNyAwNDozMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgICBzbm1wbGliL21pYi5jOgoKICAgTkVXUzogc25tcGxpYiAtIFtCVUdTOiAxNTM3NDU5LCBCVUdTOiAxNTQwNzQ1XSBGaXggbWlzc2luZyBNSUIgcGFyc2luZyB0b2tlbnMKCjIwMDYtMDktMDcgMDQ6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBORVdTLAogICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50CjoKCiAgIFJldmVydCBkZWZhdWx0IGJlaGF2aW91ciBvZiBjb252ZW5pZW5jZSBhY2Nlc3MgY29udHJvbCBkaXJlY3RpdmVzCiAgIHRvIG1hdGNoaW5nIGFsbCBjb250ZXh0LiAgQW4gZXhwbGljaXQgY29udGV4dCBmaWVsZCB3aWxsIGJlIHRha2VuCiAgIGFzIGFuIGV4YWN0IG1hdGNoLCB1bmxlc3MgaXQgZW5kcyBpbiAnKicuCgoyMDA2LTA5LTA2IDEwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICBmaXggc29tZSBtaXNzaW5nIHN0YXRzIGluIGlmVGFibGUvaWZYVGFibGUKCjIwMDYtMDktMDYgMDY6NDUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgYWRkIG5vdGUgb24gZXhwZXJpbWVudCBGcmVlQlNEL09wZW5CU0QgaWZYVGFibGUgc3VwcG9ydAoKMjAwNi0wOS0wNiAwNjo0MiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIEZyZWVCRFMgYW5kIE9wZW5CU0QgZm9yIGlmLW1pYgoKMjAwNi0wOS0wNSAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBkZWFsIHcvcHJldiBwdHJzIHRvbwoKMjAwNi0wOS0wNSAwNzo1OCAgZHRzMTIKCiAgICogTkVXUywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCBuZXcgYWNjZXNzIGNvbnRyb2wgKGFuZCBjb250ZXh0KSBiZWhhdmlvdXIuCgoyMDA2LTA5LTA1IDA1OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50OgoKICAgRXhwbGljaXRseSBhdXRob3Jpc2UgYWxsIGNvbnRleHRzLgogICAoVGhpcyByZXN1bHRzIGZyb20gYSBtaW5vciBhbHRlcmF0aW9uIGluIGJlaGF2aW91ciBmb2xsb3dpbmcgYW5vdGhlciBjb2RlCiAgICBjaGFuZ2UsIGJ1dCBmZWVscyBtb3JlIHNlY3VyZSB0aGFuIGF1dG9tYXRpY2FsbHkgb3BlbmluZyB1cCBhbGwgY29udGV4dHMKICAgIGJ5IGRlZmF1bHQuICBUaG91Z2ggSSdtIGhhcHB5IHRvIGJlIHBlcnN1YWRlZCBvdGhlcndpc2UuLi4pCgoyMDA2LTA5LTA1IDAyOjQ0ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgKGFnYWluKQoKMjAwNi0wOS0wNSAwMTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudF9taWJzLmgsIGFnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgKOgoKICAgSW5jbHVkZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlIChhbmQgTUlCKSBpbiB0aGUgZGVmYXVsdCBidWlsZC4KCjIwMDYtMDktMDUgMDE6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIG5zVmFjbUFjY2Vzc1RhYmxlIG5vdCBiZWluZyBpbmNsdWRlZC4KICAgKGFuZCBzaW1pbGFyIGZvciB1c21Vc2VyVGFibGUgLSBhIGNsZWFuZXIgY2hlY2sgdGhhbiBiZWZvcmUpCgoyMDA2LTA5LTA1IDAxOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmMsIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIFN1cHBvcnQgbWFuaXB1bGF0aW9uIG9mIHRoZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlLgoKMjAwNi0wOS0wNSAwMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0IGJvdGggZXhhY3QgYW5kIGNvbnRleHQgcHJlZml4IG1hdGNoZXMgZm9yIHRoZSBjb252ZW5pZW5jZSBkaXJlY3RpdmVzCiAgIChhcyB3ZWxsIGFzICdhdXRoYWNjZXNzJykuCgoyMDA2LTA5LTA1IDAxOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHJvdyBjcmVhdGlvbi9kZWxldGlvbi4KICAgU3VwcHJlc3MgdmFyaW91cyBtaW5vciB0eXBlIG1pc21hdGNoZXMuCgoyMDA2LTA5LTA0IDE2OjA3ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIChwcmVsaW1pbmFyeSkgaW5mb3JtYXRpb24gb24gbmV3IE5FVC1TTk1QLVZBQ00tTUlCCgoyMDA2LTA5LTA0IDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgdHdlYWsgLmN2c2lnbm9yZSBmaWxlcyBmb3IgbmV3IHVkcC1taWIvdGNwLW1pYgoKMjAwNi0wOS0wNCAxNTo1NSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA2LTA5LTA0IDA3OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBUZWxsIGEgZnVzc3kgY29tcGlsZXIgKFMvVywgbm90IGh1bWFuKSB0byBzaHV0IHVwLgoKMjAwNi0wOS0wNCAwNjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBhZ2VudC9leHRlbmQuYywKICAgICB1Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBEcm9wIHRoZSBvbGQgVUNEIGV4dGVuc2libGUgbW9kdWxlIGZyb20gdGhlIGRlZmF1bHQgYnVpbGQuCiAgIFJlbHkgb24gdGhlIHJld29ya2VkIChjYWNoZWQsIHZhbGlkIHN5bnRheCkgImV4dGVuZCIgbW9kdWxlIGluc3RlYWQuCgoyMDA2LTA5LTA0IDA0OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIFN1cHBvcnQgcmVnaXN0ZXJpbmcgVkFDTSBleHRlbnNpb25zIGluIGEgbm9uLWRlZmF1bHQgY29udGV4dAogICAoc3VjaCBhcyB1c2VkIGJ5ICdzbm1wdHJhcGQnKQoKMjAwNi0wOS0wNCAwNDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgbm9uLWRlZmF1bHQgY29udGV4dHMgd2l0aCB0aGUgYXV0aCogY29udmVuaWVuY2UgZGlyZWN0aXZlcy4KCjIwMDYtMDktMDQgMDQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVHdlYWsgdmFyaWFibGUgbmFtZXMgdG8gYmUgbGVzcyBjb25mdXNpbmcuCiAgICgiYXV0aHR5cGUiIG5vdyBoYXMgYSBzcGVjaWZpYyBtZWFuaW5nLCBjb250cmFyeSB0byB0aGUgdXNlIGhlcmUpLgoKMjAwNi0wOS0wMSAxNzozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggY3Zzcm9vdAoKMjAwNi0wOS0wMSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCAtWQoKMjAwNi0wOS0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1ha2Ugc25tcGQgc3VwcG9ydCB0aGUgLVkgY29uZmlnIGZsYWcgbGlrZSB0aGUgb3RoZXIgY29tbWFuZHMgZG8KCjIwMDYtMDktMDEgMTU6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBVcGRhdGUgdG8gNS40LmRldgogICAtIGludHJvZHVjZSAle2xpYmN1cnJlbnR9CiAgIC0gdXNlIG5ldyBkaXNtYW4vZXZlbnQgbmFtZQogICAtIGFkZDogUkVBRE1FLmFpeCBSRUFETUUub3NYIFJFQURNRS50cnU2NCBSRUFETUUuaXJpeCBSRUFETUUuYWdlbnQtbWlicwogICAgIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQKICAgLSBhZGQgbmV3IE5ldFNOTVA6OmFnZW50OjpTdXBwb3J0CgoyMDA2LTA5LTAxIDEwOjU4ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gbm90ZSBuZXcgbWliMmMuZW11bGF0aW9uLmNvbmYKICAgLSBub3RlIG5ldyBsaW51eCBpcHY2IGF3YXJlIGRlZmF1bHQgbWlicwogICAtIGV4cGFuZCBzY29weSBvZiBub3RlIG9uIGZpeGVzIHRvIG5vbi1saW51eCBpcGFkZHJlc3Mgc2l6ZQoKMjAwNi0wOS0wMSAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgdGNwIGFuZCB1ZHAgbWliIHRhYmxlcyB0byBsaW51eCBtaWJJSSBtb2R1bGUgbGlzdAoKMjAwNi0wOS0wMSAxMDo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSBvbmx5IGxvZyBlcnJvciBvbmNlIGlmIHdlIGNhbid0IG9wZW4gL3Byb2MvbmV0L3RjcDYKICAgLSBhZGQgYWJpbGl0eSB0byBvbmx5IGxvYWQgaXB2NCBkYXRhCgoyMDA2LTA5LTAxIDEwOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGZpeCBieXRlb3JkZXIgcHJvYmxlbXMKCjIwMDYtMDktMDEgMTA6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvICdieXRlc3dhcCcgaGV4LXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhZGRyZXNzCgoyMDA2LTA5LTAxIDA3OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgbW9yZSBpcCBhZGRyZXNzIHNpemUgZml4ZXMKCjIwMDYtMDktMDEgMDU6NDEgIHRhbmRlcnMKCiAgICogcGVybC86IFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIGFnZW50L2FnZW50LnhzCjoKCiAgIGFsaWduIHRoZSBuZXRzbm1wX29pZCBzdHJ1Y3QgZGVmaW5pdGlvbiAob2lkLCBzaXplX3QhKSB3aXRoIHRoZSBvbmUgZnJvbSBOZXRTTk1QOjpPSUQKCjIwMDYtMDktMDEgMDI6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS50cnU2NDoKCiAgIGFkZCBub3RlcyBvbiBJUHY2CgoyMDA2LTA4LTMxIDE3OjQzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggdHlwbwoKMjAwNi0wOC0zMSAxNzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBPSUQgbGVuIHNob3VsZCBiZSBhIHNpemVfdAoKMjAwNi0wOC0zMSAxNTo0NyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgY29ycmVjdCBzb2NrYWRkcl9zdG9yYWdlLltfX11zc19mYW1pbHkgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlndXJlIHRlc3QuIE1ha2VzIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlIHdvcmsgb24gYXQgbGVhc3QgQUlYIGFuZCBUcnU2NCBVbml4LgoKMjAwNi0wOC0zMSAxNTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWNjb25maWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSB1c2VkIGluIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlCgoyMDA2LTA4LTMxIDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBmaXggSXBBZGRyZXNzIGxlbmd0aHMgb24gbm9uLUxpbnV4IDY0Yml0IHBsYXRmb3JtcwoKMjAwNi0wOC0zMSAwMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaWNvbG9uIChldmVuIG9uZS1saW5lIHBhdGNoZXMgY2FuIGVhc2lseSBicmVhayB0aGUgYnVpbGQgOy0pKQoKMjAwNi0wOC0zMCAxNzozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIGNvdmVydGl5IGJ1ZyAxMjc6IGRvdWJsZSBjaGVjayBuYW1lX3AgcG9pbnRlciBhY3R1YWxseSBnb3QgZmlsbGVkIGJlZm9yZSAgdXNpbmcgaXQKCjIwMDYtMDgtMzAgMTc6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBtYWtlIHN1cmUgc25tcF9sb2dfb3B0aW9ucyBjaGVja3MgZm9yIE5VTExzIG9mIGFyZ3YgaW4gaWxsZWdhbCBjYWxscyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDgtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDU5OiBkb3VibGUgY2hlY2sgc3lzdGVtIGhhbmRsZXMgaW50L3VpbnQgY29udmVyc2lvbnMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBjb3ZlcnR5IGJ1ZyAxNTU6IGZyZWUgZmlsZSBwb2ludGVyIGR1cmluZyBpcHY2IGZvcndhcmRpbmcKCjIwMDYtMDgtMzAgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvdmVydHkgYnVnIDE1NjogZnJlZSByZXNvdXJjZXMgZHVyaW5nIG1pYiBwYXJzaW5nIGZhaWx1cmVzCgoyMDA2LTA4LTMwIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBjb3ZlcnR5IGJ1ZyA2MDogZG91YmxlIGNoZWNrIHRoYXQgc3lzdGVtcyBoYW5kbGUgbmVnYXRpdmUgcmV0dXJucyB0byB1bnNpZ25lZCB2YXJpYWJsZXMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMDg6MzUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggcHJpbnRpbmcgb2Ygb3BhcXVlIGZsb2F0IGFuZCBkb3VibGUgY29tcGlsZSB3YXJuaW5ncwoKMjAwNi0wOC0zMCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzoKCiAgIFNpbXBsZSBTRVQgc3VwcG9ydCBmb3IgdGhlIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMzAgMDg6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgUGVyc2lzdGVudCBzdG9yYWdlIGZvciBOZXQtU05NUCBWQUNNIGV4dGVuc2lvbiBhdXRodHlwZXMuCgoyMDA2LTA4LTI5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGdlbmVyaWMgSVB2NiBzdGFjayBkZXRlY3Rpb24sIGUuZy4gZm9yIFNvbGFyaXMKCjIwMDYtMDgtMjkgMDk6MDUgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgRml4IGluY29uc2lzdGVudCBuYW1pbmcuCgoyMDA2LTA4LTI5IDA2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEd1YXJkIGFnYWluc3QgbWlzc2luZyAob3IgaW5jb21wbGV0ZSkgQ1BVIGhpc3Rvcnkgc3RhdHMuCgoyMDA2LTA4LTI5IDA2OjE5ICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgZml4IHNvbWUgYmFzaWMgc21pbGludCBjb21wbGFpbnRzCgoyMDA2LTA4LTI5IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsCiAgICAgbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBQcm92aXNpb25hbCAocmVhZC1vbmx5KSBpbXBsZW1lbnRhdGlvbiBvZiBhIE1JQiBmb3IgdGhlIE5ldC1TTk1QCiAgIGFjY2VzcyBjb250cm9sIGV4dGVuc2lvbnMuCgoyMDA2LTA4LTI5IDAzOjExICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBHZXQtTmV4dCBwcm9jZXNzaW5nIGRpZG4ndCBoYW5kbGUgdXBkYXRpbmcgdGhlIGluZGV4IGxpc3QgZm9yIG11bHRpLWluZGV4ZWQKICAgdGFibGVzIHByb3Blcmx5LiAgSXQgd29ya2VkIE9LIGZvciB0aGUgZmlyc3QgY2FuZGlkYXRlIGZvdW5kLCBidXQgc3Vic2VxdWVudAogICAoYmV0dGVyKSBjYW5kaWRhdGVzIG9ubHkgdXBkYXRlZCB0aGUgZmlyc3QgaW5kZXggdmFsdWUuCiAgICAgVGhpcyBjb2RlIGlzIHNsaWdodGx5IGxlc3MgZWZmaWNpZW50LCBidXQgd29ya3MgYXMgZXhwZWN0ZWQuCgoyMDA2LTA4LTI5IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9saW51eC5jLCB2bXN0YXRfbGludXguaAo6CgogICBTaGlwIG9sZGVyIHZtc3RhdCBpbXBsZW1lbnRhdGlvbiBjb2RlIC0gYWxsb3cgYWRtaW5zIHRoZSBvcHRpb24gb2YgcmV2ZXJ0aW5nLgoKMjAwNi0wOC0yOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KICAgW0Rvbid0IGNvbW1pdCBmcm9tIG1vcmUgdGhhbiBvbmUgd29ya2luZyBzeXN0ZW0sIERhdmUhXQoKMjAwNi0wOC0yOSAwMjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBLZWVwIGJyYWNlcyBiYWxhbmNlZCAtIGl0IG1ha2VzIHRyYWNpbmcgY29kZSAqc28qIG11Y2ggZWFzaWVyIQoKMjAwNi0wOC0yNyAxNDozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIHVkcFRhYmxlIHJlcXVpcmVzIC9kZXYva21lbSBhY2Nlc3MgKHJvb3Q6c3lzdGVtKSBvbiBBSVgKCjIwMDYtMDgtMjcgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaG9zdC9ocl9wcm9jLmMsCiAgICAgaG9zdC9ocl9wcm9jLmg6CgogICBVc2UgSEFMIENQVSBpbnRlcmZhY2UgZm9yIGJvdGggVUNELXNwZWNpZmljIGFuZCBIb3N0UmVzIHByb2Nlc3NvciBtb2R1bGVzLgoKMjAwNi0wOC0yNyAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBFbnN1cmUgdGhhdCBzb21lIGZvcm0gb2YgSEFMIENQVSBtb2R1bGUgaXMgaW5jbHVkZWQgZm9yIGFsbCBzeXN0ZW1zLgoKMjAwNi0wOC0yNyAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X251bGwuYywgY3B1X251bGwuaDoKCiAgIER1bW15IEhBTCBDUFUgbW9kdWxlLCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IHVzZSBhbnkgb2YgdGhlCiAgIHN1cHBvcnRlZCBpbnRlcmZhY2VzLgoKMjAwNi0wOC0yNyAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIEhhbmRsZSBob2xlcyBpbiB0aGUgdGFibGUgcHJvcGVybHkuCgoyMDA2LTA4LTI3IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tlcm5kYXRhLmMsCiAgICAgY3B1X3BlcmZzdGF0LmMsIGNwdV9wc3RhdC5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHNpbmdsZS1DUFUgc3lzdGVtcy4KICAgRG9uJ3QgY3JlYXRlIG5ldyBDUFUgZW50cmllcyB3aGVuIGxvYWRpbmcgc3RhdHMuCgoyMDA2LTA4LTI3IDA5OjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBSZXBvcnQgcHJvY2Vzc29yIHN0YXR1cwoKMjAwNi0wOC0yNiAxNjoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbWFrZSBhdXRvaGVhZGVyIHByb3RlY3QgUEFDS0FHRV8qIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAxNjoyMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBTdjN1c21jb25maWdhZ2VudCwKICAgICBTdmFueWNvbmZpZzoKCiAgIEZpeCBzbXV4c29ja2V0IGNvbmZpZyB0byBwb2ludCB0byAvc211eF9zb2NrZXQgaW5zdGVhZCBvZiAvZGV2L251bGwgdG8gYXZvaWQgcmVtb3ZpbmcgL2Rldi9udWxsIHdoZW4gcnVubmluZyBhcyByb290LgoKMjAwNi0wOC0yNSAwOTo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IGRpc2N1c3Npb24gb2YgdmlldyBtYXNrcy4gIFRoYW5rcyB0byBEb21pbmlxdWUgQmFzdGllbi4KCjIwMDYtMDgtMjUgMDc6MjAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhbGxvdyBmb3Igd2hpdGVzcGFjZSBpbiBQZXJsIGNjIChlLmcuIG9uIElSSVggNi41KQoKMjAwNi0wOC0yNSAwNjo1NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXJseSBjYXN0IHdoZW4gcHJpbnRpbmcgcG9pbnRlcnMKCjIwMDYtMDgtMjUgMDY6MzUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIG5ldHNubXBfdHJhcGRfY2hlY2tfYXV0aCgpIG9ubHkgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQKCjIwMDYtMDgtMjUgMDU6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4OiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCjIwMDYtMDgtMjUgMDQ6NTEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkKCjIwMDYtMDgtMjUgMDQ6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICNpbmNsdWRlICJtaWJJSS92YWNtX2NvbmYuaCIgZm9yIHZhY21fc3RhbmRhcmRfdmlld3MKCjIwMDYtMDgtMjUgMDQ6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBwcmludCBvaWQgYXMgdW5zaWduZWQgbG9uZwoKMjAwNi0wOC0yNSAwMjo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgbWFrZSBzdXJlIHdlIGNhbiBmdWxmaWxsIGV4dGVybmFsIGxpYnJhcnkgZGVwZW5kZW5jaWVzCgoyMDA2LTA4LTI1IDAyOjQxICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBpbml0aWFsaXplIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAwMjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXIgdHlwZXMgaW4gZm9ybWF0IHN0cmluZwoKMjAwNi0wOC0yNSAwMTo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAiLVV4IiBiZWZvcmUgIi1EeD14IiBmb3IgZ2NjIHRvIGF2b2lkIGFubm95aW5nIGNvbXBpbGVyIHdhcm5pbmdzCiAgIG9uIHBsYXRmb3JtcyB0aGF0IGFscmVhZHkgZGVmaW5lIHggKHRvIDEpLgoKMjAwNi0wOC0yNCAxNzo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHVzZSBuZXcgc25tcF9jc3RyY2F0CgoyMDA2LTA4LTI0IDE3OjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSW50cm9kdWNlIHNubXBfY3N0cmNhdCB0aGF0IHRha2VzIGEgKGNoYXIgKikgYXMgdGhlIGxhc3QgYXJndW1lbnQsCiAgIGNhc3RzIGl0IHRvIGEgKGNvbnN0IHVfY2hhciAqKSBhbmQgY2FsbHMgc25tcF9zdHJjYXQuIFNpbXBsaWZpZXMgY29kZQogICBhbmQgZml4ZXMgYSAqbG90KiBvZiBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjQgMTY6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIC0gcG9pbnRlciBzaXplIGZpeGVzIGZyb20gZGFyaXgKICAgLSBpbml0aWFsaXplIHZhcmlhYmxlcwogICAtIHByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI0IDE1OjQ1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZQoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgSEFWRV9QRVJMX0VWQUxfUFYgdW5kZWYgZm9yIHdob2V2ZXIgZm9yZ290IHRvIGFkZCBpdAoKMjAwNi0wOC0yNCAxMzoxOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgY29uZmlnX2Vycm9yIGFuZCBjb25maWdfd2FybmluZyBlbXB0eSBtYWNyb3MKCjIwMDYtMDgtMjQgMDk6MTQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4KCjIwMDYtMDgtMjQgMDg6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgS2VlcCBwcmludGluZyBzb21lIGtub3ctdG8tYmUtc21hbGwgc2l6ZV90IHZhbHVlcyBhcyBpbnRlZ2VycywgYnV0IHByb3Blcmx5CiAgIGNhc3QgdGhlbSB0byBxdWlldCB0aGUgY29tcGlsZXIuCgoyMDA2LTA4LTI0IDA3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgdXNlIG5ldyBpbnRlcmZhY2Vfc3lzY3RsIGZvciBPcGVuQlNEIDIsIEZyZWVCU0QgNC02CgoyMDA2LTA4LTI0IDA3OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX29wZW5ic2QuYywKICAgICBpbnRlcmZhY2Vfc3lzY3RsLmMsIGludGVyZmFjZV9zeXNjdGwuaDoKCiAgIHJlbW92ZSBPUyBzcGVjaWZpYyBmaWxlIGluIGZhdm9yIG9mIG1ldGhvZCBzcGVjaWZpYyBmaWxlcwoKMjAwNi0wOC0yNCAwNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tzdGF0LmMsIGNwdV9ubGlzdC5jCiwgY3B1X3BzdGF0LmMsIGNwdV9zeXNjdGwuYzoKCiAgIEluY2x1ZGUgZGVzY3JpcHRpb25zIGZvciBpbmRpdmlkdWFsIENQVSBlbnRyaWVzLgoKMjAwNi0wOC0yNCAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tlcm5kYXRhLmgsCiAgICAgY3B1X2tlcm5kYXRhLmM6CgogICBJbXBsZW1lbnRhdGlvbiBmb3IgRHluaXggKGFuZCBzaW1pbGFyKSBzeXN0ZW1zLgoKMjAwNi0wOC0yNCAwNTo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFJlbWVtYmVyIHRoZSBudW1iZXIgb2YgQ1BVcyBkZXRlY3RlZC4KICAgKFE6IHdoYXQgdG8gZG8gaWYgdGhpcyBjaGFuZ2VzPykKCjIwMDYtMDgtMjMgMTc6MzMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcuIEZpeGVzIDY0LWJpdCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjMgMTc6MTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgQUNfUFJPR19FR1JFUCBhbmQgdXNlICRFR1JFUCBpbnN0ZWFkIG9mIGVncmVwCgoyMDA2LTA4LTIzIDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBzdHJ1Y3QgdHlwZSBpbiBjYXNlCgoyMDA2LTA4LTIzIDE2OjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjMgMTY6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgYmFjayBjaGVjayBmb3Igc2VkCgoyMDA2LTA4LTIzIDEzOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBza2lwIGlmQ29ubmVjdG9yUHJlc2VudC9pZkxpbmtVcERvd25UcmFwRW5hYmxlIGlmIG5vIGRhdGEKCjIwMDYtMDgtMjMgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGNvcnJlY3Qgc2NhbGUgd2hlbiB1c2luZyBpZlNwZWVkIGFzIGlmSGlnaFNwZWVkCgoyMDA2LTA4LTIzIDExOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICB1c2UgaWZTcGVlZCBpZiBpZkhpZ2hTcGVlZD09MAoKMjAwNi0wOC0yMyAwODo1MyAgdGFuZGVycwoKICAgKiBzbm1wbGliLzogY29udGFpbmVyLmMsIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgICBkYXRhX2xpc3QuYywga2V5dG9vbHMuYywgbWliLmMsIG9pZF9zdGFzaC5jCiwgc2NhcGkuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jLCB0ZXh0X3V0aWxzLmMsCiAgICAgdG9vbHMuYzoKCiAgIENhc3QgYXdheSBjb21waWxlciB3YXJuaW5ncy9lcnJvcnMgYXQgYSBsb3Qgb2YgcGxhY2VzLgoKMjAwNi0wOC0yMyAwNjowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIGNwdSBIQUwgY29kZSBmb3IgQUlYIDQueAoKMjAwNi0wOC0yMyAwMzoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IGNoZWNrIHR3aWNlIGZvciBzZWQuCgoyMDA2LTA4LTIzIDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIE1vcmUgcG9ydGFibGUgaGFuZGxpbmcgb2Ygc3RyaW5nIGFzc2lnbm1lbnRzLgogICBSZW1vdmUgQysrLXN0eWxlIGNvbW1lbnRzLgoKMjAwNi0wOC0yMyAwMzowNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtb3JlIHdoaXRlc3BhY2UgaXNzdWVzIGluIG1pYiBtb2R1bGUgY29uZmlnCgoyMDA2LTA4LTIyIDE0OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaGFyZHdhcmUvY3B1Lmg6CgogICBhY3RpdmF0ZSBtZW0vY3B1IEhBTCBjb2RlIGZvciBBSVgKCjIwMDYtMDgtMjIgMDk6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFVzZSBjb3JyZWN0IEFQSSBjYWxscy4KCjIwMDYtMDgtMjIgMDc6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgVXBkYXRlIGZvciA1LjQgYW5kIGVtYmVkZGVkIFBlcmwuCgoyMDA2LTA4LTIyIDA2OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuaCwgY3B1X3BlcmZzdGF0LmgKLCBjcHVfcHN0YXQuaDoKCiAgIE1pc3NpbmcgSEFMIENQVSBBUEktc3BlY2lmaWMgaGVhZGVyIGZpbGVzCgoyMDA2LTA4LTIyIDA2OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgSGFuZGxlIGNoYW5nZSBpbnRyb2R1Y2VkIHdpdGggTmV0QlNEIDMuMC4KICAgc3lzY3RsKCBLRVJOX0NQX1RJTUUgKSBub3cgcmV0dXJucyA2NC1iaXQgdmFsdWVzLgoKMjAwNi0wOC0yMiAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiBFdmVudC1NSUIgbW9kdWxlIHRlcm1pbm9sb2d5LgoKMjAwNi0wOC0yMiAwMzozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEltcHJvdmUgcm9idXN0bmVzcyBvZiB0aGUgZW1iZWRkZWQgcGVybCBjaGVja3MuCgoyMDA2LTA4LTIyIDAyOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ2hhbmdlICIjaWYgZnJlZWJzZDQiIHRvICIjaWZkZWYgZnJlZWJzZDQiIHRvIG1hdGNoIGN1cnJlbnQgLURmcmVlYnNkND1mcmVlYnNkNC4KCjIwMDYtMDgtMjIgMDI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd3J1bi5jCiwgbWliSUkvcm91dGVfaGVhZGVycy5oOgoKICAgQ2hhbmdlICIjaWYgc29sYXJpczIiIHRvICIjaWZkZWYgc29sYXJpczIiIHRvIG1hdGNoIGN1cnJlbnQgLURzb2xhcmlzMj1zb2xhcmlzMi4KCjIwMDYtMDgtMjEgMTc6NDcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAiLVUiIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZCB3aXRoIFN1bidzIGNjLgoKMjAwNi0wOC0yMSAxNzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIFBlcmxfZXZhbF9wdiAodGhlIHVwcGVyLWNhc2UgdmFyaWFudCkgbmVlZHMgdGhyZWUgYXJndW1lbnRzIGluc3RlYWQgb2YgdHdvLgoKMjAwNi0wOC0yMSAxNzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFlldCBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBQQVJUSUFMVEFSR0VUT1MgKGUuZy4gc29sYXJpczIpIGRlZmluaXRpb25zLgoKMjAwNi0wOC0yMSAxNjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlcGxhY2VtZW50IGZvciBuZXdTVnV2KCkgYmVjYXVzZSBwZXJsIGRpZG4ndCBoYXZlIGl0IHVudGlsIDUuNi4wCgoyMDA2LTA4LTIxIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmV3b3JkaW5nIG9mIHBlcmwgY2MgY2hlY2sgZXJyb3JzLgoKMjAwNi0wOC0yMSAxNDowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBPUyBkZWZpbmUgdG8gcmVkZWZpbmUgYXMgdGhlIHNhbWUgbmFtZQoKMjAwNi0wOC0yMSAwOTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBwZXJsIGNjIGNoZWNrcyBmb3IgZW1iZWRkZWQgcGVybAogICAtIGludHJvZHVjZSAtLWRpc2FibGUtcGVybC1jYy1jaGVja3MgdG8gZGlzYWJsZSB0aGVzZSB0ZXN0cwoKMjAwNi0wOC0yMSAwOTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjEgMDM6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGZpeCBjb25maWdfYXJjaF9yZXF1aXJlCiAgIC0gcmVtb3ZlIG9ic29sZXRlIEFDX0VYRUVYVAoKMjAwNi0wOC0yMSAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBBY3RpdmUgSEFMIENQVSBtb2R1bGUgZm9yICpCU0Qgc3lzdGVtcy4KCjIwMDYtMDgtMjEgMDI6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBhbmQgcmVwb3J0IG1lbW9yeS1yZWxhdGVkIHN0YXRpc3RpY3MuCiAgIChTdGlsbCBub3QgY29udmluY2VkIHRoZXNlIHJlYWxseSBiZWxvbmcgaGVyZS4uLi4pCgoyMDA2LTA4LTIxIDAyOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUmV0cmlldmUgQ1BVIHN0YXRzIGNvcnJlY3RseS4KCjIwMDYtMDgtMTggMTU6MjggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCAtVjpjYwoKMjAwNi0wOC0xOCAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICBVc2UgdGhlIEhBTCBDUFUgbW9kdWxlcyB0byBpbXBsZW1lbnQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cy4KICAgSW5pdGlhbGx5IG9ubHkgdXNlZCBieSBMaW51eCBzeXN0ZW1zLCBidXQgdGhpcyBjb2RlIGlzIG5vdwogICBmdW5kYW1lbnRhbGx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudC4KCjIwMDYtMDgtMTggMDg6NTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg6CgogICBBZGRpdGlvbmFsIGZpZWxkcyBmb3IgQ1BVLXJlbGF0ZWQgKHNvcnQtb2YpIGhpc3RvcnksIGV0Yy4KCjIwMDYtMDgtMTggMDg6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfa3N0YXQuYywgY3B1X2xpbnV4LmMsIGNwdV9ubGlzdC5jLAogICAgIGNwdV9ubGlzdC5oLCBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmMsCiAgICAgY3B1X3N5c2N0bC5jLCBjcHVfc3lzY3RsLmg6CgogICBQcm92aXNpb25hbCBoYXJkd2FyZS1hYnN0cmFjdGlvbiBtb2R1bGVzIGZvciBhc3NvcnRlZCBDUFUgc3RhdGlzdGljcy4KICAgKGluY2x1ZGluZyBtdWx0aS1DUFUgaW5mb3JtYXRpb24pCgoyMDA2LTA4LTE4IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIHlldCBtb3JlIHBvdGVudGlhbCBwZXJsIGZpeGVzCgoyMDA2LTA4LTE4IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDc6NDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB1c2UgInBlcmwgLVY6Y2MiIHRvIGZpbmQgUGVybCdzIGNjCgoyMDA2LTA4LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvbW1lbnRpbmcgYW5kIGEgYml0IG9mIHNwYWNpbmcgaW4gdGhlIG1vZHVsZSBsaXN0IGNvZGUKCjIwMDYtMDgtMTcgMTc6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIG1ha2UgY29uZmlndXJlIGJhaWwgd2hlbiBlbWJlZGRlZCBwZXJsIGZ1bmN0aW9uIGNhbiBub3QgYmUgZm91bmQgOyBmaXggdGhlIGZhY3QgdGhhdCAzIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIG5vdCAyIGFuZCB3b3JrIGFyb3VuZCBhdXRvY29uZiB1cHBlci1jYXNlIG9ubHkgZGVmaW5lcyB0aGF0IGNhdXNlcyB0aGUgZXhpc3RpbmcgYnJva2VuLXBlcmwgcHJvYmxlbTsgTkVXUyAtIHBlcmw6IGZpeCB0aGUgJ2Jyb2tlbiBwZXJsJyBpc3N1ZSB3aXRoIGVtYmVkZGVkIHBlcmwKCjIwMDYtMDgtMTcgMTY6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBic2RpMy5oLCBic2RpNC5oLCBkYXJ3aW4uaAosIGRhcndpbjcuaCwgZHluaXguaCwgZnJlZWJzZDMuaCwKICAgICBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLCBmcmVlYnNkNi5oLCBnZW5lcmljLmgKLCBocHV4LmgsIG1pbmd3MzJtc3ZjLmgsIG5ldGJzZC5oLAogICAgIG9wZW5ic2QuaCwgb3NmNS5oOgoKICAgIiNkZWZpbmUgeCB4IiBpbnN0ZWFkIG9mICIjZGVmaW5lIHggMSIgZm9yIGFsbCBwbGF0Zm9ybSBuYW1lcwoKMjAwNi0wOC0xNyAwODo0NCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTQ5OiBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDA2LTA4LTE3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICBEcm9wIERpc01hbiBFdmVudCBNSUIgcmUtd3JpdGUgd2FybmluZy4KCjIwMDYtMDgtMTcgMDg6MTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE1OTogcG90ZW50aWFsIHJlc291cmNlIGxlYWsgYWZ0ZXIgbWFsbG9jIGZhaWx1cmUKCjIwMDYtMDgtMTcgMDg6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgaWYgbWFsbG9jIGZhaWxzCgoyMDA2LTA4LTE3IDA3OjUwICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQlVHOiBDb3Zlcml0eSAjNTY6IGRvbid0IGNvbnRpbnVlIGFmdGVyIGZhaWxlZCBtYWxsb2MKCjIwMDYtMDgtMTcgMDc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc0OiBkb24ndCByZXR1cm4gcHRyIHRvIGZyZWVkIG1lbW9yeQoKMjAwNi0wOC0xNyAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBGaXggdmFyaWFibGUgdHlwZXMgdG8gbWF0Y2ggcGFyYW1ldGVyIHVzYWdlLiAgU3BvdHRlZCBieSBTY290dCBNb3luZXMuCgoyMDA2LTA4LTE2IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpc3N1ZSB3aXRoIE9TIG5hbWUgYmVpbmcgZGVmaW5lZCBhcyAxCgoyMDA2LTA4LTE2IDE2OjA4ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXBkYXRlIGZvciByZXdvcmtlZCBTb2xhcmlzIGhlYWRlcnMKCjIwMDYtMDgtMTUgMjI6NTQgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcGQuOC5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBmaXggdHlwbwoKMjAwNi0wOC0xNSAxNDoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgRml4IGVtYWlsIGFkZHJlc3MKCjIwMDYtMDgtMTUgMDg6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2xlYW4gdXAgdGhlIHRtcCBjcmVhdGVkIGZpbGUKCjIwMDYtMDgtMTUgMDc6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4ZWQgY29uZmlnX2FyY2hfcmVxdWlyZQoKMjAwNi0wOC0xNSAwNzoyNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgZm9yY2UgIiN1bmRlZiBJRk5FVF9ORUVEU19LRVJORUwiIG9uIEZyZWVCU0QgNS54IG9ubHkKCjIwMDYtMDgtMTUgMDc6MDcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBzb2xhcmlzMi4xMC5oLCBzb2xhcmlzMi43LmgKLCBzb2xhcmlzMi44LmgsIHNvbGFyaXMyLjkuaDoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBoZWFkZXIgZmlsZXMKCjIwMDYtMDgtMTUgMDU6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBhdm9pZCBjb21tZW50IGluc2lkZSBjb21tZW50CgoyMDA2LTA4LTE1IDAxOjQ4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzCgoyMDA2LTA4LTE0IDIwOjI1ICBoYXJkYWtlcgoKICAgKiBhY2luY2x1ZGUubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBDbGVhbmVkIHVwIHRoZSBkZWJ1Z2dpbmcgY29kZSBmb3IgdGhlIG1vZHVsZSBzZWN0aW9uCiAgICAgLSBBZGRlZCBhIEFDX01TR19NT0RVTEVfREJHIG1hY3JvIHRvIGNsZWFuIHVwIHRoZSB6aWxsaW9ucyBvZiBpZnMKICAgLSBSZXdvcmtlZCB0aGUgbTQgcXVvdGluZyBvZiB0aGUgc2VjdGlvbiB0byBvbmx5IGNoYW5nZXF1b3RlIHdoZW4KICAgICBhY3R1YWxseSBuZWVkZWQsIHJhdGhlciB0aGFuIGRvaW5nIHRoZSByZXZlcnNlIGFuZCBoYXZpbmcgdG8gY2hhbmdlCiAgICAgdG8gIm5vcm1hbCIgcXVvdGluZyB3aGVuIGEgbWFjcm8gY2FsbCBpcyBuZWVkZWQuCgoyMDA2LTA4LTE0IDE2OjI5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZnJlZWJzZDQuaCwgZnJlZWJzZDUuaCwKICAgICBmcmVlYnNkNi5oOgoKICAgc2ltcGxpZnkvYWdncmVnYXRlIEZyZWVCU0QgaGVhZGVycwoKMjAwNi0wOC0xNCAxNTo1NyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IHNvbGFyaXMuaCwgc29sYXJpczIuMy5oLAogICAgIHNvbGFyaXMyLjQuaCwgc29sYXJpczIuNS5oLCBzb2xhcmlzMi42Lmg6CgogICBSZXdvcmsgb2YgaGVhZGVyIGZpbGVzIGZvciBTb2xhcmlzLiBzb2xhcmlzLmggbm93IGNvdmVycyBTb2xhcmlzIDcgYW5kIHVwIChpbmNsdWRpbmcgYW55IGZ1dHVyZSB2ZXJzaW9ucykgd2hpbGUgc29sYXJpczIuWzMtNl0uaCBjb3ZlcnMgbGVnYWN5IHN1cHBvcnQuCgoyMDA2LTA4LTE0IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUKCjIwMDYtMDgtMTQgMTM6MjQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICB1cGRhdGVkIFVDRCByZWZlcmVuY2VzIHRvIE5ldC1TTk1QLCB1cGRhdGVkIGNvbnRhY3QgaW5mbwoKMjAwNi0wOC0xNCAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgTmV3IGNvbmZpZ3VyZSBiYXNlZCBkZWZhdWx0X21vZHVsZXMuaCBmaWxlIHRvIGRlY2lkZSB3aGljaCBtb2R1bGVzIHRvCiAgIGJ1aWxkIGludG8gdGhlIGFnZW50LgogICBORVdTOiBzbm1wZCAtLSBBZ2VudCBidWlsZHMgZGVmYXVsdCBtb2R1bGUgbGlzdCBmcm9tIGEgZGVmYXVsdF9taWJzLmggcmF0aGVyIHRoYW4gYSBoYXJkIGNvZGVkIGNvbmZpZ3VyZSBsaXN0CgoyMDA2LTA4LTE0IDEzOjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgdXBkYXRlZCByZWZlcmVuY2VzIHRvIFVDRCB0byBOZXQtU05NUCwgdXBkYXRlZCBjb250YWN0IGluZm8KCjIwMDYtMDgtMTEgMTg6MTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBJbnRyb2R1Y2UgLS13aXRoLWFnZW50eC1zb2NrZXQ9RklMRSBjb25maWd1cmUgb3B0aW9uLiBIZWxwcyBwYWNrYWdlcnMgdG8gKnByb3Blcmx5KiBjdXN0b21pemUgdGhhdCBwYXRoIChub3QgZW5jb3VyYWdlZCwgYnV0IHF1aXRlIGNvbW1vbikuCgoyMDA2LTA4LTExIDA3OjU2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB2c25wcmludGYoKSBuZWVkcyB0byBiZSBmb2xsb3dlZCBieSB2YV9lbmQKCjIwMDYtMDgtMTEgMDY6NDUgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGRvbid0IGNhbGwgdmFfZW5kKCkgaWYgd2UndmUgb25seSBtZW1jcHkoKWVkCgoyMDA2LTA4LTExIDAyOjU5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBzaW1wbGUgYXR0ZW1wdCB0byBmaXggcmVjZW50bHkgaW50cm9kdWNlZCB2YV9jb3B5KCkgYnVpbGQgaXNzdWVzCgoyMDA2LTA4LTEwIDA3OjExICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXBvcnQgYSBmYWlsdXJlIHRvIGJ1aWxkIHRoZSBQRFUuICAoUmVmIEJ1ZyAjMTM5OTM3MCkKCjIwMDYtMDgtMTAgMDE6NTggIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBXaXRoIGZlYXIgYW5kIHRyZXBpZGF0aW9uLCByZW1vdmUgdGhlIHdhcm5pbmdzIGFnYWluc3QgdXNlIG9mIEFnZW50WC4KICAgRG9vbWVkLCB3ZSdyZSBhYWFhbGwgZG9vb29vbWVkLi4uLgoKMjAwNi0wOC0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9NQU5JRkVTVDoKCiAgIHVwZGF0ZWQgdG8gY29ycmVjdCBsaXN0CgoyMDA2LTA4LTA5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgYW5vdGhlciBwYXNzIGF0IHBlcmwvQ1BBTiBzcGVjaWZpYyB2ZXJzaW9uaW5nIGNoZWNrcwoKMjAwNi0wOC0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGFsbG93IGZvciB2ZXJ5IG1pbm9yIGRldmlhdGlvbnMgaW4gcGVybCBDUEFOIHNvdXJjZSB2ZXJzaW9ucyBmcm9tIG5ldC1zbm1wIHZlcnNpb25zCgoyMDA2LTA4LTA5IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgbWFqb3IgdXBkYXRlIGZvciBDUEFOIHJlbGVhc2UKCjIwMDYtMDgtMDkgMDk6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIG1hdGNoIDUuMyB0cmVlIGZvciBvcmRlcmluZwoKMjAwNi0wOC0wOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbmVlZGVkIHRlc3RpbmcgZmlsZXMKCjIwMDYtMDgtMDggMTc6NTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBidWlsZCBmaXgKCjIwMDYtMDgtMDggMTU6MTYgIHRhbmRlcnMKCiAgICogYWNpbmNsdWRlLm00OgoKICAgTW92ZSBvdXIgb3duIG00IG1hY3JvcyBmcm9tIGFjbG9jYWwubTQgaW50byBhY2luY2x1ZGUubTQgYW5kIHByb3Blcmx5IHF1b3RlIHRoZW0uIEZvbGxvd3MgbGlidG9vbC9hdXRvbWFrZSByZWNvbW1lbmRhdGlvbnMgYW5kIGFsbG93cyB0byByZWdlbmVyYXRlIGFjbG9jYWwubTQgKGNvbnRhaW5pbmcgbGlidG9vbC5tNCkgYnkgY2FsbGluZyBhY2xvY2FsIHdoaWNoIEkndmUganVzdCBkb25lLiBJbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggIzIxLgoKMjAwNi0wOC0wOCAxNTowNyAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBtaW5vciBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOC0wOCAxNTowMiAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00OgoKICAgTW92ZSBvdXIgb3duIG00IG1hY3JvcyBmcm9tIGFjbG9jYWwubTQgaW50byBhY2luY2x1ZGUubTQgYW5kIHByb3Blcmx5IHF1b3RlIHRoZW0uIEZvbGxvd3MgbGlidG9vbC9hdXRvbWFrZSByZWNvbW1lbmRhdGlvbnMgYW5kIGFsbG93cyB0byByZWdlbmVyYXRlIGFjbG9jYWwubTQgKGNvbnRhaW5pbmcgbGlidG9vbC5tNCkgYnkgY2FsbGluZyBhY2xvY2FsIHdoaWNoIEkndmUganVzdCBkb25lLiBJbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggIzIxLmFjaW5jbHVkZS5tNAoKMjAwNi0wOC0wOCAwNjoxOCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDgtMDggMDY6MTggIHRhbmRlcnMKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBIQVZFX0xJQk5NIGluIG9yZGVyIHRvIG1ha2UgYXV0b2hlYWRlciB3b3JrIGFnYWluCgoyMDA2LTA4LTA3IDE1OjUzICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlCiwgTkVXUywgbHRtYWluLnNoOgoKICAgbGlidG9vbCB1cGRhdGUgdG8gMS41LjIyIChmcm9tIDEuNCkuIFN1cGVyc2VkZXMgcGF0Y2ggMTQ5Njk0NSBhbmQgZml4ZXMgYnVnIDE1MTgxMTcgKHByb2JhYmx5IHBsdXMgYSBmZXcgbW9yZSkuCgoyMDA2LTA4LTA3IDA4OjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBbHJlYWR5IHJhbmRvbWl6ZSB0aGUgaW5pdGlhbCBwb3J0IHdlIHRyeS4gTG93ZXJzIHRoZSBjaGFuY2Ugb2YgY29sbGlzaW9ucyBpZiBtdWx0aXBsZSB0ZXN0IHN1aXRlcyBydW4gaW4gcGFyYWxsZWwuCgoyMDA2LTA4LTA3IDA1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBleHBsaWNpdCBjYXN0IHRvIGtlZXAgY29tcGlsZXIgaGFwcHkKCjIwMDYtMDgtMDcgMDM6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHR5cG8uICBTcG90dGVkIGJ5IExlbyBMZWkKCjIwMDYtMDgtMDUgMTc6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYzoKCiAgIEJ1aWxkIGZpeGVzIGZvciBBSVggSE9TVC1SRVNPVVJDRVMtTUlCIHN1cHBvcnQKCjIwMDYtMDgtMDUgMTI6MTcgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicGVybC5zbyB0byBMRF9SVU5fUEFUSAoKMjAwNi0wOC0wNCAxNTozNiAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFNDUwIHJlcG9ydGluZyBQUyB0ZW1wcyBhcyB2b2x0YWdlLCBvdGhlciBwcm9ibGVtcwoKMjAwNi0wOC0wMyAxODowMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG92ZXJyaWRlIExEX1JVTl9QQVRIIGZvciB0aGUgcGVybCBtb2R1bGVzIHRvIGF2b2lkIGRlcGVuZGVuY2llcyBvbiB0aGUgYnVpbGQgZGlyZWN0b3J5IChwYXRjaCBmcm9tIGRhcml4KQoKMjAwNi0wOC0wMSAwNDo0MyAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgb25lIG1vcmUgY29ycmVjdGlvbgoKMjAwNi0wNy0zMSAyMjo1MiAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0wNy0zMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgZml4IGEgdGVzdCB0aGF0IG1heSBzdWNjZWVkIHdoZW4gaXQgc2hvdWxkbid0CgoyMDA2LTA3LTMxIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBnZXR0YWJsZSBwYXRjaAoKMjAwNi0wNy0zMSAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBmaXggZ2V0YnVsayBhdCBlbmQtb2YtbWlidmlldyBib3VuZGFyaWVzCgoyMDA2LTA3LTMxIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgdXBkYXRlIGFnYWluIHRvIG1vc3QgcmVjZW50CgoyMDA2LTA3LTMxIDE1OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gdGhlIGxhdGVzdCB2ZXJzaW9uLgoKMjAwNi0wNy0zMSAxNTo0MCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHZlcnNpb24gdGFnIGRveHlnZW4gZmlsZXMKCjIwMDYtMDctMzEgMTU6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTA3LTMxIDEzOjMxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIHNubXB0cmFwZCBhdXRob3JpemF0aW9uIHVuY29uZGl0aW9uYWxseSBvZiB1c2luZyBBZ2VudFggKGZpeGVzIGJ1ZyAxNTI3NjYxKQoKMjAwNi0wNy0zMSAwNzoyNSAgbWFyegoKICAgKiBkb2MvcmZjLzogYWdlbnR4L3JmYzI3NDEudHh0LCBtaXNjL3JmYzM1MTIudHh0LAogICAgIG1pc2MvcmZjMzU4NC50eHQsIHNtaVYyL3JmYzI1NzgudHh0LAogICAgIHNtaVYyL3JmYzI1NzkuZXJyYXRhLCBzbWlWMi9yZmMyNTc5LmVycmF0YX4sCiAgICAgc21pVjIvcmZjMjU3OS50eHQsIHNtaVYyL3JmYzI1ODAudHh0LAogICAgIHNubXBWMS9yZmMxMTU1LnR4dCwgc25tcFYxL3JmYzExNTcudHh0LAogICAgIHNubXBWMS9yZmMxMjEyLnR4dCwgc25tcFYxL3JmYzEyMTMudHh0LAogICAgIHNubXBWMi9yZmMxOTAxLnR4dCwgc25tcFYyL3JmYzE5MDIudHh0LAogICAgIHNubXBWMi9yZmMxOTAzLnR4dCwgc25tcFYyL3JmYzE5MDQudHh0LAogICAgIHNubXBWMi9yZmMxOTA1LnR4dCwgc25tcFYyL3JmYzE5MDYudHh0LAogICAgIHNubXBWMi9yZmMxOTA3LnR4dCwgc25tcFYyL3JmYzE5MDgudHh0LAogICAgIHNubXBWMi9yZmMyMDg5LnR4dCwgc25tcFYzL3JmYzM0MTAuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDEwLnR4dCwgc25tcFYzL3JmYzM0MTEudHh0LAogICAgIHNubXBWMy9yZmMzNDEyLnR4dCwgc25tcFYzL3JmYzM0MTMuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDEzLnR4dCwgc25tcFYzL3JmYzM0MTQuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE0LnR4dCwgc25tcFYzL3JmYzM0MTUuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE1LnR4dCwgc25tcFYzL3JmYzM0MTYudHh0LAogICAgIHNubXBWMy9yZmMzNDE3LnR4dCwgc25tcFYzL3JmYzM0MTguZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE4LnR4dDoKCiAgIGFkZGluZyByZmNzIGFuZCBlcnJhdGEgdG8gZGlzdHJpYnV0aW9uCgoyMDA2LTA3LTMxIDA1OjQzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIERvbid0IGNhdGNoICIuLi4gc25tcG5ldHN0YXQgZmluZHMgLi4uIiAodGVzdCA1OCkgYXMgYW4gZXJyb3IuCgoyMDA2LTA3LTMwIDE3OjI4ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENhdGNoICJQZXJtaXNzaW9uIGRlbmllZCIgZXJyb3JzLCBlLmcuIGR1cmluZyAibWFrZSBpbnN0YWxsIi4KCjIwMDYtMDctMzAgMTY6MDggIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2F0Y2ggIkNhbid0IGZpbmQgLi4uIiBlcnJvcnMsIGUuZy4gZnJvbSBsZAoKMjAwNi0wNy0zMCAxNTo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcGFzcyBMREZMQUdTIHRvIGFsbG93IGZvciBub24tc3RhbmRhcmQgbGliY3J5cHRvIGxvY2F0aW9uCgoyMDA2LTA3LTI5IDE2OjU4ICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgKGNvcnJlY3RseSkgbWFrZSB1c2Ugb2YgcmVjZW50bHkgaW50cm9kdWNlZCBTTk1QX1NUUk9STlVMTCh4KQoKMjAwNi0wNy0yOSAxNjoxOCAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIG1ha2UgdXNlIG9mIHJlY2VudGx5IGludHJvZHVjZWQgU05NUF9TVFJPUk5VTEwoeCkKCjIwMDYtMDctMjggMDU6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU3VwcG9ydCBzZXR0aW5nIHRoZSBwZXJzaXN0ZW50IG1hc2sgdmlhIGNvbmZpZ3VyZS4gIChiYXNlZCBvbiBQYXRjaCAjMTQzNzM4NSkKCjIwMDYtMDctMjggMDQ6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAnLWFzLW5lZWRlZCcgc3VwcG9ydCBmb3IgbGlua2luZyBsaWJyYXJpZXMuICAoUGF0Y2hlcyAjMTM5ODg3MyAmIDE0OTM1MjIpCgoyMDA2LTA3LTI4IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgSnVtYm8gcGF0Y2ggZm9yIGltcHJvdmVkIEFJWCA1Lnggc3VwcG9ydC4gIChQYXRjaCAjMTQ4NjMwNykKICAgTm90ZSB0aGF0IHRoZSBtZW1vcnktcmVsYXRlZCBwcm9jZXNzaW5nIChob3N0L2hyX2ZzdG9yYWdlLmMpCiAgIGlzIG5vdyBtb3N0bHkgaGFuZGxlZCBieSBoYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jCgoyMDA2LTA3LTI3IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHBhdGNoIGZyb20gSnVsaWVuIFBpbm9uIHRvIGZpeCBhIGZldyB0a21pYiBwcm9ibGVtcwoKMjAwNi0wNy0yNyAwODo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBTdXBwb3J0IGZvciBIRlMgc3lzdGVtcywgcGx1cyBORlMgZml4ZXMgZm9yIERhcndpbi4gIChQYXRjaCAjMTUyMDI4OSkKCjIwMDYtMDctMjcgMDY6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUHJldmVudCBwb3RlbnRpYWwgY3Jhc2ggaW4gRGFyd2luLiAgKFBhdGNoICMxNTIwMjg2KQoKMjAwNi0wNy0yNyAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBTdXBwb3J0ICctLXdpdGhvdXQta21lbS11c2FnZScgb24gbm9uLUxpbnV4IHN5c3RlbXMuICAoUGF0Y2ggIzE1MjAyNzgpCgoyMDA2LTA3LTI3IDA1OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5jbHVkZSAncGtjcycgaW4gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gY29tcGlsZS4gIChQYXRjaCAjMTUxNDg2NykKCjIwMDYtMDctMjcgMDU6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBBY2NlcHQgLVogMCB2YWx1ZXMgZm9yIGVuZ2luZUJvb3QvZW5naW5lVGltZS4gIChQYXRjaCAjMTUxMDAzMikKCjIwMDYtMDctMjcgMDQ6MzcgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBTdXBwb3J0IHJ1bm5pbmcgdHJhcCByZWNlaXZlciBhcyBub24tcm9vdCB1c2VyL2dyb3VwLiAgKFBhdGNoICMxNDk3NDY3KQoKMjAwNi0wNy0yNyAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQXR0ZW1wdCB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSBzeXNjdGwgQVBJcy4gIChQYXRjaCAjMTQ4MjE2OSkKCjIwMDYtMDctMjYgMDg6NTggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZiwKICAgICBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBHZW5lcmF0ZSBwcm9wZXIgY29kZSBmb3Igbm9uLWludGVnZXIgdmFsdWUgb2JqZWN0cywgYW5kIGRldGVybWluZQogICB0aGUgZmlyc3QgYW5kIGxhc3QgYWNjZXNzaWJsZSBjb2x1bW4gb2JqZWN0cy4gIChQYXRjaCAjMTQyNzcxMikKCiAgIFE6IElzIGl0IHdvcnRoIHB1bGxpbmcgc29tZSBvZiB0aGlzIGNvZGUgb3V0IGludG8gYSBzZXBhcmF0ZSBtaWIyYwogICAgICB1dGlsaXR5IGZpbGUsIHNpbmNlIG11Y2ggb2YgdGhlIHByb2Nlc3NpbmcgaXMgZWZmZWN0aXZlbHkgaWRlbnRpY2FsCiAgICAgIGluIGFsbCB0aHJlZSBjYXNlcz8KCjIwMDYtMDctMjYgMDQ6NTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBIYW5kbGUgbG9uZyAoZHluYW1pYy1idWZmZXJlZCkgbWVzc2FnZXMgY29ycmVjdGx5LiAgKEJ1ZyAjMTUxNjA0NSkKCjIwMDYtMDctMjYgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVuc3VyZSB0aGUgc2VjTW9kZWwgaXMgaW5pdGlhbGlzZWQgZm9yIFNOTVB2MyBub3RpZmljYXRpb25zLiAoQnVnICMxNTE3NDU0KQoKMjAwNi0wNy0yNiAwNDoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgT25seSBzb3J0IHJlbG9jYXRhYmxlIGV4dGVuc2lvbiBlbnRyaWVzLiAgVGhvc2UgaW4gdGhlIG1haW4gZXh0VGFibGUKICAgZG9uJ3QgaGF2ZSBhbiBPSUQgdG8gc29ydCBvbiwgc28gYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgc2NyYW1ibGUKICAgdGhlbSBpbnRvIGEgcmFuZG9tIG9yZGVyLiAgKEJ1ZyAjMTUwNjcwNykKCjIwMDYtMDctMjUgMDg6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmgsIGhyX25ldHdvcmsuaCwKICAgICBocl9vdGhlci5oLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuaCwKICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuaDoKCiAgIEluZGljYXRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIEhvc3RSZXMgbW9kdWxlcy4gIChCdWcgIzE1MDUzMjUpCgoyMDA2LTA3LTI1IDA4OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEVuc3VyZSB0aGF0IElQIEFkZHJlc3MgdmFsdWVzIGFyZSByZXBvcnRlZCBhcyA0LW9jdGV0CiAgIHZhbHVlcyBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4gIChCdWcgIzE1MDQ1MDEpCgoyMDA2LTA3LTI1IDA2OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgSGFuZGxlIG1hbGZvcm1lZCBEaXNwbGF5IEhpbnRzIHNlbnNpYmx5LCByYXRoZXIgdGhhbgogICBnb2luZyBpbnRvIGFuIGluZmluaXRlIGxvb3AuICAoQnVnICMxNDU5NjY1KQoKMjAwNi0wNy0yNSAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoYXQgYWxsIHJlcXVlc3RzIGFyZSBuZWNlc3NhcmlseSB2YWxpZC4gKEJ1ZyAjMTQ0NTExNikKCjIwMDYtMDctMjUgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSB0aGUgZGVmaW5lZCBkZWZhdWx0IHBvcnQgKGlmIHNwZWNpZmllZCkgZm9yIG51bWVyaWMgSVB2NgogICBhZGRyZXNzZXMsIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgU05NUF9QT1JULiAgKEJ1ZyAjMTQ0NTA4OSkKCjIwMDYtMDctMjUgMDM6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRG9uJ3QgY2hva2Ugb24gbWlzc2luZyBsYWJlbHMgKEJ1ZyAjMTQyOTQ2OSkKCjIwMDYtMDctMjUgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluY2x1ZGUgbWlzc2luZyBmbGFncyBwYXJhbWV0ZXIgKEJ1ZyAjMTQyMjcwOCkKCjIwMDYtMDctMjUgMDE6MzEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSBicm9rZW4gYXNzZXJ0aW9uIChCdWcgIzEzOTkzNzApCgoyMDA2LTA3LTI1IDAxOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHYzLmM6CgogICBSZS1maXggdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwIChCdWcgIzEzOTc4OTEpCiAgIGluY2x1ZGluZyBmaXggZm9yIHRlc3QgIzI0CgoyMDA2LTA3LTI1IDAxOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBGaXggc2lnbmVkbmVzcyBvZiByZXR1cm4gdmFsdWVzIChCdWcgIzEzOTc5MDYpCgoyMDA2LTA3LTE4IDA3OjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIFNOTVBfVFlQRURFRl9NQUxMT0MgLT4gU05NUF9NQUxMT0NfVFlQRURFRgoKMjAwNi0wNy0xMyAxNDozMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG5ld3MgdXBkYXRlIGZvciByZWNlbnQgZmVhdHVyZXMKCjIwMDYtMDctMTMgMDg6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2FsbGJhY2sgc3VwcG9ydCBmb3IgZ2V0dGFibGUoKS4KICAgICAtIG5vdCBleHRlbnNpdmVseSB3ZWxsIHRlc3RlZCwgYnV0IGl0IGRvZXMgd29yawoKMjAwNi0wNy0xMiAwMjo0MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggaWZJbk9jdGV0cyBzdGF0aXN0aWNzIG9uIFNvbGFyaXMgKHBhdGNoIDE1MjA2MDMgZnJvbSBKb2huIEdyZWVuKQoKMjAwNi0wNy0wNyAxNTowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0eXBvIGZpeAoKMjAwNi0wNy0wNyAxNDo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEYXZlJ3MgcGF0Y2ggdG8gcmVtb3ZlIGhvc3QgbWliIHN1cHBvcnQgZm9yIHdpbmRvd3MgYnkgZGVmYXVsdAoKMjAwNi0wNy0wNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgRGF2ZSdzIHBhdGNoIGZvciBjb21waWxhdGlvbiBmaXhlcyBmb3Igd2luZG93cwoKMjAwNi0wNy0wNyAxNDo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gTWF0aGV3IEJpZWxlamVza2kgdG8gZnJlZSB1c2VyIGxpc3QgYW5kIGVuZ2luZSB0aW1lIGNhY2hlIGF0IHNodXRkb3duCgoyMDA2LTA3LTA3IDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4IHBvc3NiaWxlIG51bGwgZGVyZWZlbmNlLCBub3RlZCBvbiBjb2RlcnMKCjIwMDYtMDctMDYgMTU6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICBhZGp1c3QgT0lEIGZvciBTb2xhcmlzIHN3YXAgc3BhY2Ugc2l6ZQoKMjAwNi0wNy0wNiAxNTowMSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYXNzaWdubWVudCBpbiByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeCgpIGZvciBBU05fSVBBRERSRVNTCgoyMDA2LTA3LTA1IDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICAtIGFkZCB3YXJuaW5nIGNvbW1lbnQgZm9yIGRlcHJlY2F0ZWQgb2JqZWN0cwogICAtIHNob3J0ZW4gc2NhbGFyIG5vZGUgY29tbWVudHMgYnkgYSBsaW5lCiAgIC0gc2hvcnRlbiBjb2x1bW4gbm9kZSBjb21tZW50cwoKMjAwNi0wNy0wNSAxNDo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCB1bnNpZ25lZCB0byBhc250eXBlcwoKMjAwNi0wNy0wNSAxNDoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgYWRkICogbmV4dCB0byBzY2FsYXIgZW51bSBkZWZ2YWwKCjIwMDYtMDctMDUgMTQ6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIC0gJ292ZXJyaWRlJyBhbmQgJ2FkZF9yb3cnIGRlZmF1bHQgdG8gY29tbWVudGVkIG91dAogICAtIGFkZCBtaXNzaW5nIHR5cGUgaW5mbyB0byBvdmVycmlkZQogICAtIG1ha2UgY29uZiBmaWxlIGhlYWRlciBtaWIyYyBjb21tZW50cyBzbyBpdCdzIG5vdCBpbmNsdWRlZCBpbiBvdXRwdXQKCjIwMDYtMDctMDUgMDc6NDIgIHJzdG9yeQoKICAgKiBtaWJzLzogRElTTUFOLU5TTE9PS1VQLU1JQi50eHQsIERJU01BTi1QSU5HLU1JQi50eHQsCiAgICAgRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIFJGQyA0NTYwCgoyMDA2LTA3LTAzIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBQcm9wZXJseSBoYW5kbGUgc25tcCBlbnVtcyB1c2luZyB0aGUgd29yZCAiZGVwcmVjYXRlZCIKCjIwMDYtMDctMDMgMjA6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIGFwcHJvcHJpYXRlbHkgbWFyayBkZXByZWNhdGVkIHRhYmxlIG9iamVjdHMKCjIwMDYtMDYtMzAgMjI6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBzdXBwb3J0IGZvciBvcHRpb25hbCBmaWxlcyAoZG9uJ3QgZXhpc3QgaW4gZXZlcnkgYnJhbmNoKQoKMjAwNi0wNi0zMCAyMTo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGRveHlnZW4uY29uZiBzdXBwb3J0CgoyMDA2LTA2LTMwIDIxOjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgY2hlY2sgZm9yIGZpbGUgZXhpc3RlbmNlCgoyMDA2LTA2LTMwIDIxOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZXhpdCB3aXRoIHRoZSBjdnMgY29tbWl0IHN0YXR1cyBpZiBydW4KCjIwMDYtMDYtMzAgMTU6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgYmV0dGVyIGVudiBuYW1lIGZvciBub3QgY2hlY2tpbmcgdGhlIHZlcnNpb24KCjIwMDYtMDYtMzAgMTU6MTcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHZlcnNpb24gY2hhbmdpbmcgc3VwcG9ydDsgbm93IGluIG1ha2VyZWxlYXNlCgoyMDA2LTA2LTMwIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHRhZyBzdXBwb3J0IGZyb20gdmVyc2lvbnRhZzsgbm93IGluIG1ha2VyZWxlYXNlCgoyMDA2LTA2LTMwIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbXVjaCBiZXR0ZXIgc3VwcG9ydCBmb3IgY3ZzIGNvbW1pdCwgdmVyc2lvbiBudW1iZXJpbmcsIGV0YwoKMjAwNi0wNi0zMCAxNToxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHZhcmlvdXMgZml4ZXMgYW5kIGltcHJvdmVtZW50cwoKMjAwNi0wNi0zMCAxNToxMyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBBU04vQVNOLnBtLCBBU04vTWFrZWZpbGUuUEwKLCBBbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgT0lEL01ha2VmaWxlLlBMLAogICAgIE9JRC9PSUQucG0sIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvU05NUC5wbSwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KLCBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvYWdlbnQucG0sCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBwZXJsIHZlcnNpb24gbnVtYmVyaW5nIGNoYW5nZXMKCjIwMDYtMDYtMzAgMTU6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvTWFrZWZpbGUuc3Vicy5wbDoKCiAgIFVwZGF0ZSB0byBjaGVjayBmb3IgQ1BBTiByZXF1aXJlZCBwZXJsIHZlcnNpb24gbnVtYmVycwoKMjAwNi0wNi0yOSAxNjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgZmlyc3QgcGFzcyBhdCBhdXRvZ2VuZXJhdGluZyBvdmVycmlkZS90YWJsZS9hZGRfcm93IGVudHJpZXMgZm9yIGEgTUlCCgoyMDA2LTA2LTI3IDExOjQwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDYxYWdlbnRwZXJsLCBUMTE1YWdlbnR4cGVybDoKCiAgIHNldCBEWUxEX0xJQlJBUllfUEFUSCBmb3IgT1NYIGFuZCBTSExJQl9QQVRIIGZvciBIUC1VWAoKMjAwNi0wNi0yNyAxMTowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IG1vcmUgdWRwVGFibGUgYnl0ZS1vcmRlciBpc3N1ZXMgKGluZGljZXMpIG9uICpCU0QgYW5kIFNvbGFyaXMveDg2CgoyMDA2LTA2LTI3IDA5OjQyICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlbW92ZSBlbWJlZGVkIHBlcmwgaW5mbzsgYWRkIHBlcmwgYWdlbnR4IGluZm8KCjIwMDYtMDYtMjYgMTU6MjggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGFkZCBuZXRzdGF0IHBhdGggZm9yIElSSVgKCjIwMDYtMDYtMjYgMDg6MzMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICB1ZHBUYWJsZSBieXRlLW9yZGVyIGZpeCAodmFsdWVzIG9ubHkpIGZvciBOZXRCU0QgYW5kIE9wZW5CU0QKCjIwMDYtMDYtMjUgMTQ6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgcHJlcGVuZCAoaW5zdGVhZCBvZiByZXBsYWNlKSBhIG5vbi1lbXB0eSBMRF9MSUJSQVJZX1BBVEg7IGZpeGVzIHRlc3QgZXJyb3JzIG9uIHN5c3RlbXMgdGhhdCByZWx5IG9uIGl0CgoyMDA2LTA2LTI1IDE0OjI1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgZml4IHRlc3QgZXJyb3Igb24gU29sYXJpcyBldGMuOiBvbmx5IHVzZSAiaWQgLXUiIG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGl0CgoyMDA2LTA2LTI1IDA4OjQzICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgICAgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwKLCBTTk1QL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICAtJ3BlcmwgTWFrZWZpbGUuUEwgLU5FVC1TTk1QLUlOLVNPVVJDRT10cnVlJyB3YXMgbm90IHdvcmtpbmcuICBGaXg6IGNhbGwKICAgICduc2NvbmZpZycgLS12ZXJzaW9uIGluc2lkZSBvZiBJbml0TWFrZVBhcmFtcyBpbnN0ZWFkIG9mIENoZWNrX1ZlcnNpb24KICAgLVN1cHBvcnQgbW9kdWxlOiBOZXRTTk1QR2V0T3B0cyBjYWxsIHNob3VsZCBwYXNzIHBhcmVudCBmb2xkZXIgc28gbmV0LXNubXAtY29uZmlnCiAgICBjYW4gYmUgZm91bmQKICAgLVN1cHBvcnQvTWFrZWZpbGUuUEwgd2FzIG1pc3NpbmcgZnJvbSBNYWtlZmlsZS5tYWtlZmlsZXMKCjIwMDYtMDYtMjQgMDk6MDAgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIC1Ta2lwIHZlcnNpb24gY2hlY2sgZm9yIFdpbjMyIE1TVkMKICAgLWFkZCBUcmFwUmVjZWl2ZXIgdG8gTWFrZWZpbGUubWFrZWZpbGVzCiAgIC1tYWtlLXBlcmwtbWFrZWZpbGVzOiAgcmVuYW1lIGZpbGVzIEFGVEVSIGNsb3NpbmcgdGhlbSwgbm90IGJlZm9yZQoKMjAwNi0wNi0yMyAxMjo1MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGNoZWNrIGZvciAxMjcuMC4wLjEuLCBub3QganVzdCAsIHRvIGlkZW50aWZ5IGJ5dGUtb3JkZXIgaXNzdWVzCgoyMDA2LTA2LTIzIDA5OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDbGVhbiBmaXhpbmcgb2Ygb3JkZXJpbmcgcHJvYmxlbXMgd2l0aCBrZXJuZWwgc3RvcmFnZSBvZiBVRFAgdmFsdWVzCgoyMDA2LTA2LTIzIDA4OjUyICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRG9jdW1lbnQgY3VycmVudCBiZXN0LXByYWN0aXNlIGZvciBhbm5vdW5jaW5nIG5ldyByZWxlYXNlcwogICAoaW5jbHVkaW5nIHByZS1yZWxlYXNlcyBhbmQgcmVsZWFzZSBjYW5kaWRhdGVzKS4KICAgU2F5IHdoYXQgd2UgZG8sIHJhdGhlciB0aGFuIGRvIHdoYXQgd2Ugc2F5LgoKMjAwNi0wNi0yMyAwNToxOSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCgoyMDA2LTA2LTIzIDAyOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggZWFybGllciAiZG9uJ3QgcmV2ZXJzZSBhZGRyZXNzIGJ5dGUgb3JkZXIgZm9yIHNvbGFyaXMgKHNwZWNpZmljYWxseSB4ODYpIGZvciBsb2NhbCBhZGRyZXNzZXMiIHBhdGNoIHRoYXQgYnJva2UgYnl0ZSBvcmRlciBmb3IgYWxsIHBsYXRmb3JtcwoKMjAwNi0wNi0yMCAxNTozNSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX1BSRUZJWCBhbmQgc3dpdGNoIHRvIC0tcHJlZml4PS91c3Igbm93IHRoYXQgd2Ugc3VwcG9ydCBERVNURElSIGZvciBldmVyeXRoaW5nOyBlLmcuIHRvIGF2b2lkIHRoYXQgdGhlIGluc3RhbGxhdGlvbiBlbmRzIGluIC9kZXN0ZGlyL2Rlc3RkaXIKCjIwMDYtMDYtMjAgMTQ6NDYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9FWFRSQV9JTlNUQUxMIHRvIGJlIGFibGUgdG8gcGFzcyBleHRyYSBhcmdzIHRvICJtYWtlIGluc3RhbGwiCgoyMDA2LTA2LTIwIDEyOjEyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGV4cG9ydGluZwoKMjAwNi0wNi0yMCAwNTo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBzZXQgTERfTElCUkFSWV9QQVRIIHRvIG1ha2Ugc3VyZSB0aGF0IE5ldFNOTVA6OmFnZW50J3MgYWdlbnQuc28gY2FuIGxvYWQgKHVuaW5zdGFsbGVkKSBsaWJuZXRzbm1wKi5zbzsgb3RoZXJ3aXNlIHRlc3QgZmFpbHMgYXQgbGVhc3Qgb24gRnJlZUJTRAoKMjAwNi0wNi0xNSAxNToxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBzdXBwcmVzcyBzdGRlcnIgd2FybmluZ3MgZm9yICJwcyAtZSIgaW4gb3JkZXIgdG8gZml4IFtmYWxzZV0gbmlnaHRseSBidWlsZCBlcnJvciBtZXNzYWdlcyBvbiBTRiBDRiBob3N0IGFscGhhLWxpbnV4MQoKMjAwNi0wNi0xNSAwNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkZCBPcGVuQlNEIGFuZCBOZXRCU0QgdG8gdGhlIGxpc3Qgb2Ygc3lzdGVtcyB0aGF0IHJlcXVpcmUgcm9vdCBwcml2aWxlZ2VzIGZvciB1ZHBUYWJsZSAoYWNjb3JkaW5nIHRvIERhdmUncyB0ZXN0aW5nKQoKMjAwNi0wNi0xMyAxNDo1OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgc2V0IE5FVFNOTVBfRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgKG5lZWRlZCBmb3IgZS5nLiBTb2xhcmlzIDIuNikKCjIwMDYtMDYtMTMgMDU6NDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGJ1ZyAxNTA1MzQxOiBhZ2VudCBzZWdmYXVsdHMgb24gU29sYXJpcyB3aXRoIC1EQUxMCgoyMDA2LTA2LTEyIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY29tbWl0IHRoZSBkb3h5Z2VuLmNvbmYgZmlsZQoKMjAwNi0wNi0xMiAxNjo0MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW50cm9kdWNlICJuZXQtc25tcC1jb25maWcgLS1wZXJscHJvZyIgYW5kIHVzZSBpdCBpbiB0aGUgIkFnZW50WCBzdWJhZ2VudCBpbiBwZXJsIiB0ZXN0CgoyMDA2LTA2LTEyIDE2OjAwICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIGludHJvZHVjZSAibmV0LXNubXAtY29uZmlnIC0tcGVybHByb2ciIGFuZCB1c2UgaXQgaW4gdGhlICJBZ2VudFggc3ViYWdlbnQgaW4gcGVybCIgdGVzdAoKMjAwNi0wNi0xMiAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRlZmluZSBtZmRfKl9yb3dyZXFfZnJvbV9pbmRleCBpZiBwZXJzaXN0ZW50IGVuYWJsZWQKCjIwMDYtMDYtMTIgMTU6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGluY2x1ZGUgaXBhZGRyIGluc3RlYWQgb2YgcmVkZWZpbmluZyBjb25zdGFudHMKCjIwMDYtMDYtMTIgMTU6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgYWRkIGNvbW1lbnQgdy9pbnRlZ2VyIHZhbHVlIGZvciBlYXN5IGdyZXBwaW5nCgoyMDA2LTA2LTEyIDEzOjIzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIHJvdXRlLmM6CgogICBhZGQgc3lzL3R5cGVzLmggdG8gZml4IE9TIFggYnVpbGQKCjIwMDYtMDYtMTIgMTM6MDUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICAtIGZpeCBiYWQgcGFyYW1ldGVyIGluIHNjYWxhciByZWdpc3RyYXRpb24KICAgLSBrZWVwIHNjYWxhciB2YWx1ZSBmcmVzaCB1c2luZyB0YWJsZSBjYWNoZSArIGNhY2hlIGhlbHBlcgoKMjAwNi0wNi0xMiAxMzowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFkZCBhY2Nlc3MgdG8gdGFibGUgY2FjaGUKCjIwMDYtMDYtMTIgMTA6MzAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIGZpeCBmb3IgbmV3IGZhaWx1cmUgZXJyb3IgY29kZQoKMjAwNi0wNi0xMiAxMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGJ1ZyByZXBvcnRlZCBieSBSb2JlcnQgV2lsY294OiByZXR1cm4gbm8gYWNjZXNzIGluc3RlYWQgb2Ygbm90IHdyaXRhYmxlIG9uIFZBQ00gZGVuaWFscwoKMjAwNi0wNi0xMiAwOTowMCAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpbmFsbHkgYSB3b3JraW5nIHZlcnNpb24gb2YgdGhlIHZlcnNpb24gd29ya2luZyBjaGVjawoKMjAwNi0wNi0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpeCBwcmVYIHZlcnNpb24gbnVtYmVycyBiZWZvcmUgY2hlY2tpbmcKCjIwMDYtMDYtMTIgMDg6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGVjayB0aGUgcGVybCBtb2R1bGUgdmVyc2lvbiBudW1iZXIgYWdhaW5zdCB0aGUgbmV0LXNubXAgdmVyc2lvbiBudW1iZXIKCjIwMDYtMDYtMTIgMDE6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCBtYW51YWwgc3RlcCB0byB1cGRhdGUgdmVyc2lvbiBudW1iZXIgaW4gZG94eWdlbi5jb25mCgoyMDA2LTA2LTEyIDAxOjE2ICB0YW5kZXJzCgogICAqIGRveHlnZW4uY29uZjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA2LTA2LTEwIDA1OjU3ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIGZpeCBzeW50YXggZXJyb3IgaW50cm9kdWNlZCBpbiBsYXN0IGNvbW1pdAoKMjAwNi0wNi0wOSAxMzo0MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTA2LTA5IDA1OjU2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgLSBkb24ndCBmcmVlIHBkdSBpZiBpdCdzIG5vdCBhIGNsb25lCiAgIC0gaWZkZWYgbW9yZSBjb2RlIG5vdCB1c2VkIGlmIHNubXB2MSBkaXNhYmxlZAoKMjAwNi0wNi0wNyAwNToyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcGF0Y2ggZnJvbSBEYXZlIHRvIHByZXZlbnQgY3Jhc2ggd2l0aCAtRHJlZ2lzdGVyX21pYgoKMjAwNi0wNi0wNyAwNToxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBudG9obCBvbiBocHV4MTAuMjAKCjIwMDYtMDYtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IGRvdWJsZS1mcmVlIG9mIGRlbGVnYXRlZCBjYWNoZQoKMjAwNi0wNi0wNSAxNDoyNyAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIGFkZCB2YWNtIHNldCB0ZXN0cwoKMjAwNi0wNi0wNSAxNDoyMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWc6CgogICBhZGQgKHJvfHJ3KWNvbW11bml0eSBjb25maWcgZm9yIHJ3IHZhY20gdGVzdAoKMjAwNi0wNi0wNSAxMTowNiAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIHNvbWUgdmFjbSBtYXRjaGluZyBkZWJ1ZyBtc2dzCgoyMDA2LTA2LTA1IDEwOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIC0gdXNlIG5ldyBhYmlsaXR5IHRvIHNjaGVkdWxlIGFsYXJtIGluIDAgc2VjIHRvIHJ1biBtdGUgdGlyZ2dlcnMgYXNhcCBhZnRlcgogICAgIHN0YXJ0dXAsIGluc3RlYWQgb2YgZHVyaW5nIGNvbmZpZyBmaWxlIHBhcnNpbmcKICAgLSBhZGQgbWlzc2luZyBcbiB0byBsb2cgbXNnCgoyMDA2LTA2LTA1IDEwOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIGFsbG93IGEgMCB0aW1lIGluIHNubXBfYWxhcm1fcmVnaXN0ZXIsIHRvIG1lYW4gcnVuIEFTQVAgKGkuZS4gMSB1c2VjKQogICAtIGFsbG93IHNlYy91c2VjIG9mIDAgaW4gc2FfdXBkYXRlX2VudHJ5LCBleGNlcHQgZm9yIFNBX1JFUEVBVCBjYXNlCgoyMDA2LTA2LTA1IDEwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICAtIGxvZyBlcnJvciAoYW5kIGRvbid0IGNyZWF0ZSBlbnRyeSkgaWYgc2VzcyB1c2VyIG5vdCBmb3VuZAogICAtIGxvZyBlcnJvciBpZiBhZ2VudFNlY05hbWUgKGRlZmF1bHQgdXNlcikgbm90IHNwZWNpZmllZAogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGRlYnVnIG1zZwoKMjAwNi0wNi0wNSAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGNoYW5nZSBsZW4gdHlwZSB0byBzaXplX3QKCjIwMDYtMDYtMDUgMDk6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgY29udGFpbmVyIG5hbWVzCgoyMDA2LTA2LTAxIDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZW5mb3JjZSBNSUIgb2JqZWN0IGxlbmd0aHMKCjIwMDYtMDUtMjkgMDI6NDAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2VhayB0aGUgZXJyb3IgcmVnZXgKCjIwMDYtMDUtMjkgMDE6MzUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsOgoKICAgcmUtZml4IG5ld2xpbmUgaXNzdWVzCgoyMDA2LTA1LTI4IDEzOjEzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHRvIHByZXZlbnQgc25tcHRyYXBkIGVtYmVkZGVkIHBlcmwgY3Jhc2ggb24geDg2XzY0IChidWcgMTQ5NDg4MikKCjIwMDYtMDUtMjcgMjM6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgdXNlIENIRUNLT1JESUUgaW5zdGVhZCBvZiBDSEVDS0ZJTEUgd2hlbiBkb2luZyBtdWx0aXBsZSBjaGVja3MgKHdhcyBzdWNjZWVkaW5nIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUpLiAgQWxzbywgb3BlbiBlbWJlZGRlZCBwZXJsIExPRyBpbiBhcHBlbmQgbW9kZSBzbyBzZWNvbmQgcm91dGluZSBkb2Vzbid0IHRydW1wIHRoZSBmaXJzdAoKMjAwNi0wNS0yNyAyMjozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L2luLmggYW5kIGFycGEvaW5ldC5oIHRvIHBpY2sgdXAgaHRvbmwsIGV0Yywgb24gaHB1eDEwLjIwCgoyMDA2LTA1LTI3IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB3YXkgc2ltcGxlIERFU1RESVIgc3VwcG9ydAoKMjAwNi0wNS0yNyAyMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgYSBmZXcgcGVvcGxlIGZyb20gcHJldmlvdXMgcGF0Y2hlcwoKMjAwNi0wNS0yNyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgc2V0IGxpYnRvb2wtbGlrZSBMRF9MSUJSQVJZX1BBVEggdG8gbWFrZSBzdXJlIHRoZSBwZXJsIGFnZW50IHN0YXJ0cyBwcm9wZXJseSAoZml4ZXMgYnVnIDE0OTU0MzMpCgoyMDA2LTA1LTI2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZG9uJ3QgcmV2ZXJzZSBhZGRyZXNzIGJ5dGUgb3JkZXIgZm9yIHNvbGFyaXMgKHNwZWNpZmljYWxseSB4ODYpIGZvciBsb2NhbCBhZGRyZXNzZXMKCjIwMDYtMDUtMjYgMTU6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgcmVtb3ZlIGRvdWJsZSBlbnRyeSBjb21tZW50CgoyMDA2LTA1LTI2IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9uZSBpbnRwdHJfdCBjYXN0IGZyb20gYSBwb2ludGVyCgoyMDA2LTA1LTI2IDA5OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIGNvbmZpZ3VyZToKCiAgIGNoZWNrIGZvciB1aW50cHRyX3QgYW5kIGludHB0cl90CgoyMDA2LTA1LTI2IDA2OjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBBbm90aGVyIHByb3BlciBwb2ludGVyIGNhc3QKCjIwMDYtMDUtMjYgMDY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsCiAgICAgYWdlbnQvYWdlbnQueHM6CgogICBQYXRjaCBmcm9tIGRhcml4IHRvIHByb3Blcmx5IGNhc3QgcG9pbnRlcnMgdG8gYW4gSVYgaW5zdGVhZCBvZiBhbiBpbnQgdG8gZml4IDY0Yml0IGlzc3VlcwoKMjAwNi0wNS0yNiAwMTo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtYWtlIGRhZW1vbnMgYmluZCB0byBsb2NhbGhvc3QgYnkgZGVmYXVsdCBvbmx5IChmaXhlcyBidWcgMTQyNDI5MykKCjIwMDYtMDUtMjUgMTU6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QX1BFUlNJU1RFTlRfRElSIGZvciBhbGwgYXBwcy9kYWVtb25zCgoyMDA2LTA1LTI1IDE1OjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgU05NUENPTkZQQVRIIGZvciBhbGwgYXBwcy9kYWVtb25zCgoyMDA2LTA1LTI1IDA5OjE0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjUgMDg6MDUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3VzbWNvbmZpZ2FnZW50LCBTdmFueWNvbmZpZzoKCiAgIGRvbid0IG9wZW4gZGVmYXVsdCBzbXV4IHBvcnQvc29ja2V0CgoyMDA2LTA1LTI0IDA4OjMyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgcGVybAoKMjAwNi0wNS0yNCAwODoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgZG91YmxlLWZvcmsgdGhlIHBlcmwgc3ViYWdlbnQgdG8gYXZvaWQgc2hlbGwgb3V0cHV0IGZyb20gam9iIGhhbmRsaW5nCgoyMDA2LTA1LTI0IDA2OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbnRyb2R1Y2UgYWRkaXRpb25hbCB2YXJpYWJsZXMgZm9yIHN1YmFnZW50IHRlc3RzOiBBR0VOVFhfQ09ORklHX0ZJTEUsIFNOTVBfQUdFTlRYX1BJRF9GSUxFLCBTTk1QX0FHRU5UWF9MT0dfRklMRQoKMjAwNi0wNS0yNCAwNjozOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgbmV3IHRlc3Q6ICdBZ2VudFggc3ViYWdlbnQgaW4gUGVybCAodXNpbmcgTmV0U05NUDo6YWdlbnQpJwoKMjAwNi0wNS0yMiAxNTo0OCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zeXN0ZW0gaW4gcGFydGljdWxhciBhbmQgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNTo0MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX2RldmljZSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgdGhpcyB0ZXN0IHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZToKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyCgoyMDA2LTA1LTIyIDAzOjA4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3RvcmFnZSBpbiBwYXJ0aWN1bGFyCgoyMDA2LTA1LTE5IDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBmaXggZm9yIGJ1ZyAxMzEzNjY3IHJlbW92ZWQgc3luY2ggc2VuZCwgYWxsb3dpbmcgdXMgdG8gdW5jb21tZW50IHRoZQogICAgIGNvbW1lbnRlZCBvdXQgcGR1IGZyZWUgb24gZXJyb3IsIHBsdWdnaW5nIGEgbWVtb3J5IGxlYWsgaWRlbnRpZmllZAogICAgIG9uIGNvZGVycyBieSBkZXJla2wgYXQgYmx1ZXlvbmRlciBjbyB1awoKMjAwNi0wNS0xOSAxMDowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSB1c2UgbnJwcm9jcy0xIGFzIGluZGV4IGluc3RlYWQgb2YgaSwgd2hpY2ggd2lsbCBiZSBuZWdhdGl2ZSBpZiBjcHVpbmZvCiAgICAgZG9lc24ndCBjb250YWluIGEgJ3Byb2Nlc3NvcicgbGluZQoKMjAwNi0wNS0xNyAxNToxMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIG5lZWQgc3lzL3R5cGVzLmggYmVmb3JlIG5ldGluZXQvaW4uaCBvbiBzb21lIHBsYXRmb3JtcwoKMjAwNi0wNS0xMyAwMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVwZGF0ZSBDVlMgaG9zdCBuYW1lCgoyMDA2LTA1LTEyIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIC1XIGZsYWcgc3Vic3RpdGlvbiB0byBiZSBleGFjdCBtYXRjaCBvZiBmbGFncyB0byByZW1vdmUsIHJhdGhlciB0aGFuIHJlbW92aW5nIGFueSAtVyBmbGFnIGZvciBwb3J0YWJpbGl0eSByZWFzb25zCgoyMDA2LTA1LTEyIDA5OjEwICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1pc2MuIGFkZGl0aW9ucyBmb3IgbW9yZSBjb25maWd1cmF0aW9uIGNvbnRyb2wgb24gYnVpbGQgZmFybXMsIGluY2x1ZGluZyBlbWJlZGRlZCBwZXJsIGJ1aWxkaW5nCgoyMDA2LTA1LTEyIDA4OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDYwdHJhcGRwZXJsLCBUMDYxYWdlbnRwZXJsOgoKICAgZml4IG5ld2xpbmUgaXNzdWVzCgoyMDA2LTA1LTEyIDA4OjEzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgZW5zdXJlIHRoZSB0ZXN0cyB3b3JrIGV2ZW4gaWYgVUNELVNOTVAtTUlCIGlzbid0IGluIGRlZmF1bHRzIE1JQlMgbGlzdAoKMjAwNi0wNS0xMiAwODoxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgaW50cm9kdWNlIGRlbGF5cyB0byBub3QgbG9zZSB0cmFwcwoKMjAwNi0wNS0xMiAwNzo1NCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgQUlYIGJhc2VkIG9uIGJ1aWxkIHRlc3QgZXhwZXJpZW5jZSBvbiBBSVggNC4zLjMvNS4xLzUuMi81LjMKCjIwMDYtMDUtMDggMDM6MDcgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9MSUJXUkFQIHRvIGJlIGFibGUgdG8gc3BlY2lmeSAtLXdpdGhbb3V0XS1saWJ3cmFwPXh4eAoKMjAwNi0wNS0wOCAwMToxMSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgc211eCBmcm9tIE5TQl9ESVNUX01PRFVMRVMgKGl0J3MgYWxyZWFkeSBpbiBOU0JfRVhUUkFfTU9EVUxFUykKCjIwMDYtMDUtMDggMDA6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmg6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4geGxjIG9uIEFJWCA0LjMuMyk6IG5vIHRyYWlsaW5nIGNvbW1hIGFmdGVyIGxhc3QgZW50cnkgb2YgYSAidHlwZWRlZiBlbnVtIgoKMjAwNi0wNS0wNSAxNjowMyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFraW5nIG9mIHRoZSBleGNlcHRpb24gcmVnZXgKCjIwMDYtMDUtMDUgMTU6MjggIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBJbml0aWFsIFJFQURNRSBmb3IgSVJJWAoKMjAwNi0wNS0wNSAxNDo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBwdXQgdGhlIHNucHJpbnRmIGxlbmd0aCBpbnRvIGEgZGVyZWZlcmVuY2VkIHBvaW50ZXIKCjIwMDYtMDUtMDQgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvdmVydGl5IDEzNTogZG91YmxlIGNoZWNrIG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4IHJldHVybnMgYSBwb3NpdGl2ZSByZXN1bHQgKHNob3VsZCBvbmx5IGhhcHBlbiBpbiBicm9rZW4tdHJlZSBjYXNlcykKCjIwMDYtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY292ZXJpdHkgIzEzNjogZnJlZSBtZW0gbGVhayBpbiByYXJlIGJhZC1hZ2VudHggcGFja2V0IGNhc2UKCjIwMDYtMDUtMDMgMTM6NTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIE5FV1M6CgogICBbIDE0ODEwMTIgXSBIUC1VWCAxMS4wLzExaTogaXBBZEVudEJjYXN0QWRkciB3cm9uZyAocGF0Y2ggc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKCjIwMDYtMDQtMzAgMjI6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgWyAxNDc4NjE2IF0gc25tcHVzbSBvdXRwdXRzIHRvIHN0ZGVyciBvbiBzdWNjZXNzCgoyMDA2LTA0LTMwIDIyOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFsgMTQ3OTA3MSBdIDY0IGJpdHMgY291bnRlciBvbiBMaW51eCAmIGdvb2QgcGFyc2luZyBvZiBkaXNrc3RhdHMgKGFnYWluKSBbbW9kaWZpZWRdIGZyb20gRmFicmljZSBCYWNjaGVsbGEKCjIwMDYtMDQtMjUgMTA6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIFsgMTQ2NjQ1MCBdIGZpeCBjb21waWxhdGlvbiB3aXRoIGxpbnV4L2V0aHRvb2wuICBJbiBvdGhlciB3b3JkczogdWdoIG5hc3R5IGJ1dCBuZWVkZWQgcGF0Y2gKCjIwMDYtMDQtMjUgMTA6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgbW9kaWZpZWQgdmVyc2lvbiBvZiBbIDE0NjY0NTEgXSBpcEFkZHJlc3Mgc2l6ZSB3aXRoIDY0Yml0IHRvIHVzZSBzaXplb2YoKSBmb3IgdGhlIGRhdGF0eXBlIGluIHF1ZXN0aW9uCgoyMDA2LTA0LTIxIDA1OjMwICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgU2tpcCBtaXNzaW5nIGVudHJpZXMgKHJhdGhlciB0aGFuIGNyYXNoaW5nIG91dCBjb21wbGV0ZWx5KQoKMjAwNi0wNC0yMCAxNzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliLzogY29udGFpbmVyLmMsIHNubXB1c20uYzoKCiAgIGZpeCB0eXBvcwoKMjAwNi0wNC0yMCAxNzoxMyAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgcmVwaHJhc2VkCgoyMDA2LTA0LTIwIDE2OjU1ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBjaGFuZ2VzIHNpbmNlIDUuMy4wLjEKCjIwMDYtMDQtMjAgMTY6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE2OjAzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjI3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gZml4IGJ1ZyAxNDczMjg5OiBSZS1pbml0IG9mIDUuMy4wLjEgZGFlbW9ucyBmYWlsIGFmdGVyIFNJR0hVUAoKMjAwNi0wNC0yMCAxNToyNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gZml4IGJ1ZyAxNDczMjg5OiBSZS1pbml0IG9mIDUuMy4wLjEgYWdlbnQgZmFpbHMgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjE1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIGFkZCBTSUdIVVAgdGVzdAoKMjAwNi0wNC0yMCAxNTowOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgSFVQUFJPRygpLCBIVVBBR0VOVCgpIGFuZCBIVVBUUkFQRCgpIGZvciB1cGNvbWluZyBTSUdIVVAgdGVzdHMKCjIwMDYtMDQtMTggMTI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQnVnICMxNDMyMTY1OiB0eXBvcyBpbiB0aGUgZmlsZW5hbWVzCgoyMDA2LTA0LTE4IDExOjAxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBidWcgMTQ1ODY4NTogbWFuIHBhZ2UgZm9yIHNldGFjY2VzcyB3YXMgbWlzc2luZyBhIHRva2VuIGluIHRoZSBzdW1tYXJ5IGxpbmUKCjIwMDYtMDQtMTggMTA6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4ODE4OiBhdXRoY29tbXVuaXR5IGFuZCBmcmllbmRzIHVzZSAtViBub3QgLXYgdG8gc3BlY2lmeSBhIHZpZXcKCjIwMDYtMDQtMTggMTA6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFsgMTM0MTA5OCBdIEZpeCBtaWIyYy5vbGQtYXBpLmNvbmYgb2lkIHN1ZmZpeGVzLCBzdWZmaXggbGVuZ3RocyBmcm9tIG5zaHVsbWFuCgoyMDA2LTA0LTE4IDEwOjMyICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgZWFzaWVyIGVtYmVkZGVkIHBlcmwgaW50ZWdyYXRpb246IFsgMTM2OTk5NiBdIG1pYiB0byBwZXJsIHN1cHBvcnQgYnkgUGV0ZXIgTWFydGluCgoyMDA2LTA0LTE4IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvLmN2c2lnbm9yZSwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIGxvY2FsL21pYjJjLnBlcmwuY29uZjoKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFsgMTQ2NTQ4NSBdIG5ldHNubXBfY29uZmlnX3JlbWVtYmVyX2ZyZWVfbGlzdCBtZW0gbGVhayBmcm9tIFJvYmVydCBXaWxjb3gKCjIwMDYtMDQtMTggMDY6NTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUC1GT1JXQVJELU1JQi50eHQsIElQLU1JQi50eHQsIHJmY2xpc3QKOgoKICAgdXBkYXRlIGZyb20gbmV3bHkgcHVibGlzaGVkIFJGQ3MKCjIwMDYtMDQtMTMgMTM6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFsgMTM2NDI0OCBdIEFkZCBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50IHBhcmFtZXRlcnM6IGdlbmVyYWwgcmV3b3JrIG9mIHRoZSBtYWluIHdyYXBwZXIgZm9yIGF1dG8tc3ViYWdlbnRzIGZyb20gbWFnZnIKCjIwMDYtMDQtMTMgMTM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxMzcxNzc4IF0gZGlza0lPVGFibGUgY29udGFpbnMgaW52YWxpZCBkYXRhIGZvciBzb21lIGRldmljZXMgb24gTGludXgKCjIwMDYtMDQtMTMgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgWyAxMzg2MjY0IF0gNS4yLjIgLSBmaXggTGludXggQ1BVIGNvdW50ZXJzIG9uIFNNUCBtYWNoaW5lcwoKMjAwNi0wNC0xMiAxMjoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4IHBhcnNpbmcgb2YgYWRkcmVzc2VzIHRoYXQgSSBicm9rZSB3aGVuIGltcGxlbWVudGluZyBwYXJzaW5nIG9mIGZpeGVkLXdpZHRoIHN0cmluZ3MKCjIwMDYtMDQtMTIgMTA6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IGEgYnVnIHJlcG9ydGVkIGluIDExMTg4MTQgd2hlcmUgaW5pdCBsZW5ndGggd2Fzbid0IGdldHRpbmcgaW5pdGlhbGl6ZWQgcHJvcGVybHkKCjIwMDYtMDQtMTIgMDk6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZpeGVzIGZvciBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTIgMDk6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwNi0wNC0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZWQgbGVuZ3RoIHN0cmluZyBwYXJzaW5nCgoyMDA2LTA0LTExIDA0OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEJ1aWxkIGZpeCBmb3IgImNvbmZpZ3VyZSAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9Q2FsbGJhY2siIChmaXhlcyBmaXJzdCBwYXJ0CiAgIG9mIGJ1ZyAxNDY3NzI0KS4KICAgV2h5IGRvIHRlc3RzIDIxLTI1IGFuZCAzNC0zNSAoYWxsIGludm9sdmluZyBzbm1wdHJhcGQpIGZhaWwgaW4gNS4zKyAodW5saWtlCiAgIDUuMi54KSBpZiB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGlzbid0IGF2YWlsYWJsZT8KCjIwMDYtMDQtMTAgMDc6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgWyAxMzY0NjQ4IF0gRml4IHNlZ2ZhdWx0IG9uIHBlcmwgYXN5bmMgYnVsa3dhbGsgZnJvbSBPbGUgQmpvcm4KCjIwMDYtMDQtMTAgMDc6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFsgMTQxNTU4NiBdIDUuMy4wLjEgaG9zdC9ocl9zd3J1bi5jIHBhdGNoZXMgZm9yIEFJWCA0LDMvNS4yIGZyb20gSm9lIEJ1ZWhsZXIKCjIwMDYtMDQtMDkgMjE6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwgbWliSUkvaWZUYWJsZS5oCjoKCiAgIFsgMTQyNzc5MyBdIGlmKFgpVGFibGUgaW1wbGVtZW50YXRpb24gZm9yIE9wZW5CU0QgMy54IGZyb20gTm9ydGh0cm9OCgoyMDA2LTA0LTA5IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBbIDE0Mjk0NTUgXSBlbmRsZXNzIGxvb3AsIHRhYmxlX2l0ZXJhdG9yLCA1LjMgZnJvbSBLcmlzICh0aW5rZXIxMDUpCgoyMDA2LTA0LTA5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYzoKCiAgIFsgMTQ2MDA4MiBdIFtQQVRDSF06IEZpeCBleHRlcm5hbCBmZCBoYW5kbGluZyAoYW5vbikKCjIwMDYtMDMtMjcgMTY6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICByZW1vdmUgKHVzZWZ1bCkgIi1DcCAtQ3QiIHN0ZGVyciBvdXRwdXQgc2luY2UgaXQgaGFzIGJlZW4gc2VlbiB0byBpbnRlcmZlcmUgd2l0aCB0aGUgc3Rkb3V0IG1lc3NhZ2VzIHRvIGJlIGNoZWNrZWQKCjIwMDYtMDMtMjQgMDg6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgUmVjb2duaXNlIGZhaWxlZC9kdXBsaWNhdGUgcmVnaXN0cmF0aW9ucywgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzCgoyMDA2LTAzLTI0IDA4OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIERvbid0IGNob2tlIG9uIFNOTVB2MiBleGNlcHRpb25zCiAgIChTdGlsbCBuZWVkIHRvIGhhbmRsZSBTTk1QdjEgZXJyb3JzKQogICBGaXggYSBjb3VwbGUgb2YgbWlub3Igb3V0cHV0IHR5cG9zLgoKMjAwNi0wMy0yMyAxNjowMCAgdGFuZGVycwoKICAgKiBtYW4vbWliMmMuY29uZi41LmluOgoKICAgRml4IHNlY3Rpb24gb2YgbWliMmMuY29uZi41IChEZWJpYW4gcGF0Y2ggIzE2IGZyb20gNS4yLjItMykKCjIwMDYtMDMtMjMgMTE6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gb3B0aW9uYWxseSB0dXJuIG9mZiBjb25uZWN0aW9uIGxvZ2dpbmcgZm9yIHRjcF93cmFwcGVycwoKMjAwNi0wMy0xNiAwMTo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSb290IHNlY29uZCBvdXRwdXQgdGFibGUgY29ycmVjdGx5CgoyMDA2LTAzLTE2IDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ29ycmVjdCBsb2dpYyBvZiBzdGFydHVwIHRlc3RzCgoyMDA2LTAzLTE1IDA4OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIEZpeCBTQ19BSU5GTyBzd2FwY3RsKCkgY2FsbC4KCjIwMDYtMDMtMTUgMDU6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgUmVjb2duaXNlIGJ1aWx0LWluIHZlcnN1cyBjb25maWctZGVmaW5lZCBub3RpZmljYXRpb25zLAogICBhbmQgc2V0IG93bmVyIGFjY29yZGluZ2x5LgoKMjAwNi0wMy0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBkb24ndCB1c2UgcGVyZmVjdGx5IGxlZ2FsIHBlcmwgc3RydWN0dXJlcyBpbiBDIGNvZGUKCjIwMDYtMDMtMDkgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTAzLTA5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBmaXggc2NoZWR1bGUgdHlwbwoKMjAwNi0wMy0wOSAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZnJlZSBtYWxsb2MgaW4gZXJyb3IgY29uZGl0aW9uIHdoZW4gZGVjb2RlIGZ1bmN0aW9uIG5vdCBzcGVjaWZpZWQKCjIwMDYtMDMtMDkgMTM6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wdjMuYzoKCiAgIGVuc3VyZSB0aGF0IGlmIG9wID09IHJlY2VpdmVkIG1lc3NhZ2UgdGhhdCB3ZSBoYXZlIGEgUERVIHRvbyAoYWx3YXlzIHdpbGwgYmUgdGhlIGNhc2UpCgoyMDA2LTAzLTA5IDEzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb250IGRlbHZlIGludG8gZnV0dXJlIGlmIHN0YXRlbWVudCB3aGVuIHNlc3Npb24gZmFpbHMgdG8gcHJvYmUKCjIwMDYtMDMtMDkgMTM6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZyZWUgYSBwZHUgb24gdGhlIGVycm9yIGNhc2Ugb2Ygbm8gc2Vzc2lvbi4uLgoKMjAwNi0wMy0wOSAxMzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICByZXZlcnNlIGEgcGF0Y2ggdGhhdCB3YXMgdHJ5aW5nIHRvIGZyZWUgYW4gYXJyYXkKCjIwMDYtMDMtMDkgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBjb3Zlcml0eSA3NTogZW5zdXJlIGZyZWUgaW4gcmFyZSBjYXNlIHdoZXJlIG90aGVyIHNpZGUgb2YgdHJhbnNwb3J0IG5vdCBmb3VuZCAoc2hvdWxkbid0IGV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOSAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1pc2MgZXJyb3IgY2hlY2tpbmcgKHVubmVlZGVkIGJ5IG90aGVyIGxvZ2ljLCBidXQuLi4gIHdoeSBub3QpCgoyMDA2LTAzLTA5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IDM0OiBjaGVjayB0aGF0IHVzbSB3YXNuJ3QgYWN0dWFsbHkgaWxsZWdhbGx5IHBhc3NlZCBhIG51bGwgc2Vzc2lvbiAoc2hvdWxkIGhhdmUgYmVlbiBzdG9wcGVkIGxvbmcgYmVmb3JlIG5vdykKCjIwMDYtMDMtMDkgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgY292ZXJpdHkgbXVsdGlwbGU6IGNoZWNrIGEgZmV3IHBvaW50ZXJzIGZvciBudWxsIHJlZnMganVzdCBpbiBjYXNlCgoyMDA2LTAzLTA5IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdGV4dF91dGlscy5jLCB2YWNtLmM6CgogICBjb3Zlcml0eSA3OTogZnJlZSBtZW1vcnkgaW4gZXJyb3IgY29uZGl0aW9uIHNwb3RzCgoyMDA2LTAzLTA5IDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGFsbG93IGZvciBxdWVzdGlvbmFibHkgbGVnYWwgbnVsbCBjb21tdW5pdHkgc3RyaW5ncwoKMjAwNi0wMy0wOSAxMjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJpdHkgNjE6IGNoZWNrIHJldHVybiB2YWx1ZSBmcm9tIGluIHRyZWUgdG8gZW5zdXJlIGl0J3Mgbm90IG5lZ2F0aXZlCgoyMDA2LTAzLTA5IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb3Zlcml0eSA4MDogZnJlZSB2Ymxpc3QgaW4gc29tZSBmYWlsdXJlIGNhc2VzCgoyMDA2LTAzLTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmM6CgogICBjb3Zlcml0eSA4MzogZnJlZSBtZW0gb24gc2hvdWxkLW5ldmVyLWdldC1oZXJlIHNwb3QKCjIwMDYtMDMtMDkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGZyZWUgbWVtb3J5IG9uIG90aGVyIG1hbGxvYyBmYWlsdXJlcwoKMjAwNi0wMy0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIG1vcmUgY29tbWFuZCBsaW5lIGZsYWdzIGZvciBmYXN0ZXIgcGF0Y2ggYXBwbGljYXRpb24KCjIwMDYtMDMtMDkgMTA6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGNoZWNrIGZvciBudWxsIG93bmVyIGluIDIgb3RoZXIgc3BvdHMKCjIwMDYtMDMtMDkgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGNvdmVyaXR5IDk3LzQ4OiBmcmVlIGxvc3QgbWVtb3J5IG9uIGlsbGVnYWwgdGFibGU7IGNoZWNrIGZvciBudWxsIHRoYXQgc2hvdWxkbid0IGV2ZXIgYmUKCjIwMDYtMDMtMDkgMTA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGNvdmVyaXR5IDk2OiBmaXggcG90ZW50aWFsIGxlYWsgd2hlbiBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMTA6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIGZyZWUgYSBoYW5kbGVyIGlmIGEgc3Vic2VxdWVuY2UgbWFsbG9jIGZhaWxzCgoyMDA2LTAzLTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBjb3Zlcml0eSA5OC0xMDA6IGZyZWUgc3VjY2VzcyBtYWxsb2NzIHdoZW4gb25lIGZhaWxzCgoyMDA2LTAzLTA5IDA5OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGNvdmVyaXR5IDEwMi8xMDE6IGluIGNhc2Ugb2YgbWFsbG9jIGZhaWx1cmVzIGZyZWUgd2hhdCB5b3UgaGF2ZSBzdWNjZWVkIGluIG1hbGxvY2luZwoKMjAwNi0wMy0wOSAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG5ldmVyLXNob3VsZC1iZS1udWxsIGNvbmRpdGlvbnMgYXJlIHRydWUKCjIwMDYtMDMtMDkgMDk6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgY292ZXJpdHkgOTE6IGZyZWUgdmFyaW91cyBtZW1vcnkgYWxsb2NhdGlvbnMgd2hlbiBzdWJzZXF1ZW50IGFsbG9jYXRpb25zIGZhaWwKCjIwMDYtMDMtMDkgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBjb3Zlcml0eSAjNDE6IG5vdCBsaWtlbHkgYSByZWFsIG51bGwgZGVyZWYgZm9yIHZhbGlkIHVzZSBjYXNlczsgY2FzZXMuICBkb3VibGUgY2hlY2sgZm9yIGlzc3VlcyBhbnl3YXkKCjIwMDYtMDMtMDkgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRnVsbGVyIGltcGxlbWVudGF0aW9uIG9mIG1lbW9yeSBIQUwgZm9yIFNvbGFyaXMgKDEwIGF0IGxlYXN0KQoKMjAwNi0wMy0wOSAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MDogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgY292ZXJpdHkgNTE6IGRvdWJsZSBjaGVjayB3ZSBjb3VsZCBmaW5kIHRoZSBleHRlbnNpb24gdG8gcmVtb3ZlCgoyMDA2LTAzLTA5IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGVuc3VyZSBpbGxlZ2FsIGNvbmZpZ3VyYXRpb24gb2YgdG9vIGxvbmcgT0lEcyBkb2Vzbid0IG9jY3VyCgoyMDA2LTAzLTA5IDA4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjY6IGNoZWNrIHRoYXQgbnVsbCBpc24ndCB3cml0dGVuIGJleW9uZCBlbmQKCjIwMDYtMDMtMDkgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIGNvdmVyaXR5IDY3OiBlbnN1cmUgd2UgZG9uJ3Qgd3JpdGUgdGhlIG51bGwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcgoKMjAwNi0wMy0wOSAwODowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGEgc2NyaXB0IHRvIGhlbHAgYXV0b21hdHRlZCBwYXRjaCBtYW5hZ2VtZW50IGFuZCBhcHBseSBwYXRjaGVzIHRvIG11bHRpcGxlIGJyYWNoZXMgb2YgdGhlIG5ldC1zbm1wIHRyZWUKCjIwMDYtMDMtMDkgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTI6IGZyZWUgZGF0YSBzdHJ1Y3R1cmUgaW4gZXZlbnQgc29tZWhvdyBhbiB1bnN1cHBvcnRlZCBkYXRhIHR5cGUgaXMgcGFzc2VkIGluIChjYW4ndCBhY3R1YWxseSBoYXBwZW4gd2l0aCBjdXJyZW50IGNvZGUpCgoyMDA2LTAzLTA5IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IDkzOiBmcmVlIHBvaW50ZXJzIHdoZXJlIG1hbGxvYyBzdWNjZWVkZWQgaWYgaXQgc3VkZGVubHkgc3RvcHBlZCBzdWNjZWVkaW5nCgoyMDA2LTAzLTA5IDA3OjMzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgdHlwbwoKMjAwNi0wMy0wOSAwNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGNvdmVyaXR5ICMxMDU6IGZyZWUgc3RvcmFnZSBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDIxOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBjb3Zlcml0eSA1MjogcmFyZSAobmV2ZXIpIGRlcmVmZXJlbmNlIGluIGlsbGVnYWwgY29kZSBjYXNlcy4KCjIwMDYtMDMtMDggMjE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY292ZXJpdHkgMTA2OiByYXJlIG1lbW9yeSBsZWFrIG9uIGlsbGVnYWwgYWdlbnR4IHBkdSdzIGJlaW5nIHBhc3NlZCB0byB0aGUgY2xpZW50CgoyMDA2LTAzLTA4IDIxOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBjb3Zlcml0eSAxMTI6IGNsb3NlIGZpbGUgaGFuZGxlIGZvciAvcHJvYy9uZXQvYXJwCgoyMDA2LTAzLTA4IDIxOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTEzOiBmY2xvc2UgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgaW4gZXJyb3IgbG9vcAoKMjAwNi0wMy0wOCAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgY292ZXJpdHkgYnVnICM1MzogY2hlY2sgdGhhdCBjbG9zZV9hZ2VudHhfc2Vzc2lvbiB3YXNuJ3QgcGFzc2VkIGEgTlVMTCBzZXNzaW9uCgoyMDA2LTAzLTA4IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBjb3Zlcml0eSAjMTA3OiBmaXggcmFyZSBwZHUgbWVtb3J5IGxlYWsgd2hlbiBmdW5jdGlvbiBjYWxsZWQgaWxsZWdhbHkKCjIwMDYtMDMtMDggMTY6MDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgICphdCBsZWFzdCogaXNzdWUgYSBXQVJOSU5HIGlmIHdlJ2xsIGNyZWF0ZSBub24tcG9ydGFibGUgdGFyIGFyY2hpdmVzIGp1c3QgYmVjYXVzZSB0aGUgcmVsZWFzZSBtYW5hZ2VyIGZhaWxlZCB0byBpbnN0YWxsIHN0YXIuCgoyMDA2LTAzLTA4IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBjb3Zlcml0eSBidWcgIzEwODogc3RpbGwgc2hvdWxkIGZyZWUgbWVtb3J5IGluIHRoZSBuZXZlci1zaG91bGQtaGFwcGVuIGNhc2UKCjIwMDYtMDMtMDggMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgY292ZXJpdHkgIzEwOTogY2xvc2UgZmlsZSBwb2ludGVyIGluIGVycm9yIGNvbmR0aW9ucyB0byBhdm9pZCBwb3RlbnRpYWwgcmFyZSBsZWFrcwoKMjAwNi0wMy0wOCAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNvdmVyaXR5IGJ1ZyA4NSwgcjE1OiBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCgoyMDA2LTAzLTA4IDE0OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgLSBjb3Zlcml0eSBidWcgNDAsIHJ1biAxNTogZml4IHBvdGVudGlhbCBudWxsIGRlcmVmZXJlbmNlCiAgIC0gbWlzYyBvdGhlciBjbGVhbnVwL2Vycm9yIGhhbmRsaW5nCiAgICAgLSByZWxlYXNlIG1lbW9yeSB0aGF0IHdvbid0IGJlIHVzZWQgYmVmb3JlIHJldHVybmluZyBlcnJvcnMKICAgICAtIGNoZWNrIGZvciBwb3RlbnRpYWwgbnVsbCByZXR1cm4gZnJvbSBmdW5jdGlvbgogICAgIC0gYXNzaWduIHZhbHVlcyB0byBjb3JyZWN0IHZhcmlhYmxlCgoyMDA2LTAzLTA4IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgY292ZXJpdHkgYnVnICMgMTI5OiBjaGVjayBzZXNzaW9uIG9wZW4gcmVzdWx0cyB3aGVuIGZvcndhcmRpbmcgYW5kIGJhaWwgaWYgZmFpbGVkIHRvIG9wZW4KCjIwMDYtMDMtMDggMTQ6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICBjb3Zlcml0eSBidWcgIyBjaGVjayBmb3IgbnVsbCBiZWZvcmUgZGVyZWZlcmVuY2luZwoKMjAwNi0wMy0wOCAxNDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMTU6IGNoZWNrIGZvciBtYWxsb2MgZmFpbHVyZSBiZWZvcmUgdXNpbmcgdGhlIHJlc3VsdHMKCjIwMDYtMDMtMDggMTM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMTY6IGNoZWNrIChhbnl3YXkpIGZvciBudWxsIGluIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBuZXZlciBiZSBudWxsCgoyMDA2LTAzLTA4IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExNzogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgY292ZXJpdHkgYnVnICMxMTg6IGRvdWJsZSBjaGVjayB0aGF0IHBvaW50ZXIgaXNuJ3QgbnVsbCBmb3Igc2FmZSBwcm9ncmFtbWluZyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDMtMDggMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjb3Zlcml0eSBidWcgIzEyMDogYXZvaWQgYSBwb3NzaWJsZSBkZWZlcmVuY2UgdG8gYSBmcmVlZCB2YXJpYWJsZQoKMjAwNi0wMy0wOCAxMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgY292ZXJpdHkgYnVnICMxMjI6IHJldHVybiBOVUxMIGFmdGVyIGZhaWxpbmcgdG8gb3BlbiB0cmFuc3BvcnQuCgoyMDA2LTAzLTA4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMzogYXZvaWQgZG91YmxlIGZyZWUgZm9yIGxvbmcgT0lEIGNhc2VzIGR1cmluZyBnZXRuZXh0CgoyMDA2LTAzLTA4IDEwOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoZWNrIGZvciBzdGFyIGJlZm9yZSB1c2luZwoKMjAwNi0wMy0wOCAxMDo0OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB1c2Ugc3RhciBpZiBhdmFpbGFibGUKCjIwMDYtMDMtMDggMDY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYSB2ZXJ5IHJhcmUgb2lkIHBhcnNpbmcgYnVnIGZvciBzdHJpbmdzIGluIHRydW5jYXRlZCBPSURzCgoyMDA2LTAzLTA4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3dpbi5jOgoKICAgV2luZG93cyB2ZXJzaW9uIG9mIG1lbW9yeSBIQUwgaW50ZXJmYWNlCgoyMDA2LTAzLTA4IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEV4dHJhIHByb3RlY3Rpb24gd2hlbiBjb21waWxpbmcgdW5kZXIgV2luZG93cwoKMjAwNi0wMy0wNyAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBjb3Zlcml0eSBidWcgIzEwNDogcmFyZSBjYXNlIG1lbW9yeSBsZWFrIGlmIHlvdSdyZSBvdXQgb2YgbWVtb3J5IGluIHRoZSBmaXJzdCBwbGFjZQoKMjAwNi0wMy0wNyAyMjo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBjb3Zlcml0eSBidWdzICMxMTkgaW5pdGlhbGl6ZSAyIHBvaW50ZXJzIHRvIDAKCjIwMDYtMDMtMDcgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgYnVnICMxMzI6IGZyZWUgdmFyaW91cyBwb2ludGVycyBpbiBlcnJvciBsb29wcwoKMjAwNi0wMy0wNyAyMjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMzogZnJlZSBrZXkgYWZ0ZXIgbWFsbG9jIGluIGV4aXQgbG9vcCBhZnRlciBvcGVuc3NsIGZhaWxlZAoKMjAwNi0wMy0wNyAyMjoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgY292ZXJpdHkgYnVnICMxMzQ6IGZyZWUgbmV3cGR1IGR1cmluZyBhIHZhY20tbm90LWNvbmZpZ3VyZWQgYmFpbC1vdXQKCjIwMDYtMDMtMDYgMDg6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBVcGRhdGUgTWVtb3J5IEhBTCBmcmFtZXdvcmsgdG8gc3VwcG9ydCBIb3N0UmVzIHN0b3JhZ2UKICAgaW5mb3JtYXRpb24sIGFuZCB0d2VhayBoclN0b3JhZ2VUYWJsZSBpbXBsZW1lbnRhdGlvbiB0byB1c2UgaXQuCiAgIFRoaXMgaGFzIGJlZW4gdGVzdGVkIG9uIHtGcmVlLE5ldCxPcGVufUJTRCwgTGludXggYW5kIEhQLVVYLgogICBJdCdzIHByb2JhYmx5IHN0aWxsIGJyb2tlbiBvbiBBSVgsIERhcndpbiwgRHluaXggYW5kIFNvbGFyaXMKICAgKGFuZCBhbnkgc3lzdGVtIG5vdCBleHBsaWNpdGx5IG1lbnRpb25lZD8pCgoyMDA2LTAzLTA2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEZpeCByZXRyaWV2YWwgb2YgZmlsZXN5c3RlbSBpbmZvcm1hdGlvbiBvbiBOZXRCU0QKCjIwMDYtMDMtMDYgMDM6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBTdXBwb3J0IFVDRCBtZW1vcnkvY3B1IE1JQnMgb24gT3BlbkJTRCAzLngKCjIwMDYtMDItMjcgMDQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBUd2VhayBVQ0QgbWVtb3J5IGNvbmZpZ3VyZSBwcm9jZXNzaW5nIHRvIHdvcmsgd2l0aCB0aGUgbW9zdCByZWNlbnQKICAgT3BlbkJTRCBhbmQgTmV0QlNEIHJlbGVhc2VzLCBhbmQgdG8gdXNlIHRoZSBtZW1vcnkgSEFMCgoyMDA2LTAyLTI3IDA0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFR3ZWFrIG1lbW9yeSBIQUwgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMKCjIwMDYtMDItMjcgMDQ6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS86IG1lbW9yeV9mcmVlYnNkLmMsCiAgICAgbWVtb3J5X25ldGJzZC5jOgoKICAgRml4IHByb2JsZW1zIHdpdGggbWVtb3J5IEhBTCBjb2RlIG9uICpCU0Qgc3lzdGVtcwoKMjAwNi0wMi0yNyAwNDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYywgbWVtb3J5Lmg6CgogICBVcGRhdGUgVUNEIG1lbW9yeSBncm91cCB0byBtYWtlIHByb3BlciB1c2Ugb2YgbWVtb3J5IEhBTCByb3V0aW5lcwoKMjAwNi0wMi0yNyAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBkZWZpbml0aW9ucyB0byBtYXRjaCBuZXcgbWVtb3J5IEhBTCBjb2RlCgoyMDA2LTAyLTI0IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeS5jLAogICAgIHVjZC1zbm1wL21lbW9yeS5oOgoKICAgVXNlIG1lbW9yeSBIQUwgZm9yIHRoZSBVQ0QgbWVtb3J5IGdyb3VwIChhbGwgYXJjaGl0ZWN0dXJlcykuCiAgIFRoaXMgd2lsbCBwcm9iYWJseSBicmVhayB0aGUgYWdlbnQgb24gYWxsIGJhciBMaW51eCBzeXN0ZW1zCiAgIGFuZCBtYWtlIGV2ZXJ5b25lIChpbmNsdWRpbmcgVGhvbWFzKSB1bmhhcHB5LgogICBTbyB0aGUgY3ljbGUgb2YgbGlmZSBjb250aW51ZXMuICBPaCBGb3J0dW5hLi4uLgoKMjAwNi0wMi0yNCAwODoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBtZW1vcnkuaCwgbWVtb3J5L21lbW9yeV9haXguYwosIG1lbW9yeS9tZW1vcnlfZGFyd2luLmMsIG1lbW9yeS9tZW1vcnlfZHluaXguYywKICAgICBtZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgbWVtb3J5L21lbW9yeV9saW51eC5jLCBtZW1vcnkvbWVtb3J5X25ldGJzZC5jLAogICAgIG1lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRXh0ZW5kIG1lbW9yeSBIQUwgdG8gY292ZXIgYWxsICh3ZWxsLCBtb3N0KSBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KICAgTm90IHlldCB0ZXN0ZWQgb24gbW9zdCBvZiB0aGVzZSBzeXN0ZW1zLCBzbyB0aGVyZSBtYXkgZWFzaWx5IGJlIHByb2JsZW1zLgogICBCdXQgYXQgbGVhc3QgdGhpcyBzaG91bGQgc2VydmUgdG8ga2VlcCBUaG9tYXMgaGFwcHkuLi4uCgoyMDA2LTAyLTIyIDA4OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci86IGV4cEVycm9yVGFibGUuYywKICAgICBleHBFeHByZXNzaW9uLmMsIGV4cEV4cHJlc3Npb24uaCwgZXhwRXhwcmVzc2lvbkNvbmYuYwosIGV4cEV4cHJlc3Npb25Db25mLmgsIGV4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGV4cE9iamVjdC5jLCBleHBWYWx1ZS5jLCBleHBWYWx1ZS5oLAogICAgIGV4cFZhbHVlVGFibGUuYywgZXhwX2VudW0uaDoKCiAgIEltcHJvdmVkIGV4cHJlc3Npb24gcGFyc2luZywgYW5kIHByZWxpbWluYXJ5IGV2YWx1YXRpb24gb2YgZXhwcmVzc2lvbnMuCgoyMDA2LTAyLTIwIDE1OjQ0ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHJlZmVyZW5jZXMgdG8gdGFyIHByb2JsZW1zIChhdCBldmVuIG1vcmUgcGxhY2VzKQoKMjAwNi0wMi0yMCAxNTozOCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIFJlbW92ZSBoaXN0b3JpYyBwYXJhZ3JhcGggb24gdGFyIHByb2JsZW1zOi0pCgoyMDA2LTAyLTIwIDE1OjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAoZnVydGhlcikgY2xhcmlmeSB0aGUgb3JpZ2luYWwgR05VIHRhciBwcm9ibGVtcwoKMjAwNi0wMi0yMCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBzdGFyIGluc3RlYWQgb2YgdGFyIGZvciBjcmVhdGluZyBhcmNoaXZlcyB0byBnZXQgYXJvdW5kIGdudSB0YXIgaW5jb21wYXRpYmlsaXRpZXMKCjIwMDYtMDItMTcgMDc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAtZml4IGJ1ZyAxMzk5NDIxOiA1LjIrOiB0dW5uZWwgbWliIGZhaWxzIHRvIGJ1aWxkIHcvIGlmLW1pYiByZXdyaXRlCgoyMDA2LTAyLTE2IDE1OjE5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgVDA0OXNubXB2M2luZm9ybQosIFQwNDlzbm1wdjNpbmZvcm1hdXRoLCBUMDQ5c25tcHYzaW5mb3JtcHJpdiwKICAgICBUMDUyc25tcHYyY2luZm9ybSwgVDA1N3RyYXBkYXV0aHRlc3QsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QyLCBUMDU3dHJhcGRhdXRodGVzdDMsCiAgICAgVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIGFkZCAiLXQgJFNOTVBfU0xFRVAiIHRvIHNubXBpbmZvcm0gaW4gb3JkZXIgdG8gYXZvaWQgdGVzdCBmYWlsdXJlcyBvbiBzbG93IG1hY2hpbmVzIGV2ZW4gd2l0aCBhbiBpbmNyZWFzZWQgU05NUF9TTEVFUCAoZml4ZXMgYnVnIDE0MDM2ODgpCgoyMDA2LTAyLTE1IDE2OjI3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGRvbid0IGxldCBzbm1wdHJhcGQgb3BlbiBzeXN0ZW0gYWdlbnR4IHNvY2tldCBkdXJpbmcgdGVzdGluZyAoc2VlIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wMi0xNSAxNjowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA0OXNubXB2M2luZm9ybWF1dGgKLCBUMDQ5c25tcHYzaW5mb3JtcHJpdiwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgICBUMDU3dHJhcGRhdXRodGVzdCwgVDA1N3RyYXBkYXV0aHRlc3QyLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0MywgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIGRvbid0IGxldCBzbm1wdHJhcGQgb3BlbiBzeXN0ZW0gYWdlbnR4IHNvY2tldCBkdXJpbmcgdGVzdGluZyAoc2VlIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wMi0xNSAxMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZTogIGZpeCByZXBlYXQgY291bnQgZm9yIFNOTVB2MSAmIGZpeCAtY29sdW1ucyB0byBhY3R1YWxseSB3b3JrCgoyMDA2LTAyLTE0IDA2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgUmVnaXN0ZXIgaWZOdW1iZXIgYXMgYSBzY2FsYXIgb2JqZWN0LCBub3QgYW4gaW5zdGFuY2UsIHNvIHRoYXQKICAgaXQgaGFuZGxlcyBpbnZhbGlkIGluc3RhbmNlcyBwcm9wZXJseSwgYW5kIGZpeCBPSUQgcmVnaXN0cmF0aW9uLgoKMjAwNi0wMi0xMyAxNzo0MiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZSBQU0RLIGRvd25sb2FkIGluc3RydWN0aW9ucy4KCjIwMDYtMDItMTMgMTU6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgZml4IGJ1ZyAxMzk5MzY5OiBpZk51bWJlciBicm9rZW4KCjIwMDYtMDItMTMgMTA6NDkgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGFkZCA1LjMuMC4xIHNlY3VyaXR5IGZpeCBhbmQgc211eCB0cmFwIHBhdGNoCgoyMDA2LTAyLTEzIDEwOjMyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgZml4IHRyYXAgcHJvY2Vzc2luZyBmcm9tIFNNVVggcGVlcnMgKHBhdGNoIDE0MzA4MjQgZnJvbSBEZWxsLCBzdWJtaXR0ZWQgYnkgU3VTRSkKCjIwMDYtMDItMTMgMDc6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGluY3JlYXNlIG51bWJlciBvZiByZXRyaWVzIGZvciBwb3J0IHByb2JpbmcgdG8gbG93ZXIgdGhlIGNoYW5jZSBmb3Igc3B1cmlvdXMgdGVzdCBmYWlsdXJlcwoKMjAwNi0wMi0xMSAxNTozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBzZXQgcGVyc2lzdGVudERpciBmb3Igc25tcHRyYXBkIGluIG9yZGVyIHRvIGF2b2lkIGJlaW5nIGludmFzaXZlIChzZWUgYnVncyAxNDAzNjg4LCAxNDI0MjkzKQoKMjAwNi0wMi0xMCAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICAgIGhlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYSB0YW5nbGVkIHdlYiBvZiBmaXhlcyBmb3Igb3ZlcnJpZGUKICAgICAtIGJhY2sgb3V0IGZpeCBmb3IgNzExNDY1OiBvdmVycmlkZSBkaXJlY3RpdmUgaWdub3JlZCB3aXRoIHNubXBidWxrZ2V0CiAgICAgLSBhcHBseSBuZXcgZml4ZXMgZm9yIDcxMTQ2NSAoc2VlIGJ1ZyByZXBvcnQgZm9yIGdvcnkgZGV0YWlscykKICAgICAtIGFsc28gZml4IG92ZXJyaWRlIG9mIHRhYmxlIGluc3RhbmNlLCByZXBvcnRlZCBvbiBjb2RlcnMKICAgLSBhbmQsIHF1b3RpbmcgRGF2ZToKCiAgIEknbSBub3QgYXQgYWxsIHN1cmUgdGhhdCB0aGlzIGlzIG5lY2Vzc2FyaWx5IHRoZSBjb3JyZWN0IGZpeCwgYnV0CiAgIGl0IHdhc24ndCB2ZXJ5IGNsZWFyIGFzIHRvIGV4YWN0bHkgd2hhdCBpcyBiZWluZyBoYW5kbGVkIGhlcmUuCiAgIFRoaXMgY2hhbmdlIGNlcnRhaW5seSBhZGRyZXNzZXMgdGhlIGFib3ZlIGJ1ZyByZXBvcnQsIHdpdGhvdXQKICAgc2VlbWluZyB0byBicmVhayBhbnl0aGluZyBlbHNlLgoKICAgTGV0J3MgZ2l2ZSB0aGlzIHBhdGNoIHRpbWUgdG8gc2V0dGxlIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgY29kZSwKICAgYW5kIHRoZW4gY29uc2lkZXIgYmFjay1wb3J0aW5nIGl0IHRvIGVhcmxpZXIgbGluZXMuLi4uLgoKMjAwNi0wMi0wNiAxNTozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBjaGVja3MgZm9yICJzdHJ1Y3Qgbmxpc3Q2NCIsIG9mZjY0X3QgYW5kIGxzZWVrNjQgKGZvciBJUklYIGFuZCBmcmllbmRzKQoKMjAwNi0wMi0wNCAxNDozMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBmYWlsICJtYWtlIiBvbiBTTk1QX0VSUl9OT0VSUk9SCgoyMDA2LTAyLTAzIDE3OjMyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBiYWNraW5nIG91dCBwcmV2aW91cyBwYXRjaCAod2hpY2ggYnJlYWtzIHRlc3QgIzI0ICJTTk1QdjMgdHJhcHMgcmVjZWl2ZWQgYW5kIHNlbnQgYnkgdG9vbHMiKSB1bnRpbCBzb21lb25lIGZpbmRzIHRoZSB0aW1lIHRvIHJldmlldyBpdCBhZ2FpbgoKMjAwNi0wMi0wMyAxNjozNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkOgoKICAgZml4IHR5cG8KCjIwMDYtMDItMDIgMTk6MzEgIGFsZXhfYgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGZvciBidWcgMTQyMDc1OC4gIE1pc3NpbmcgY2FsbCAodHlwbz8pIGZvciBGRF9aRVJPKCZleGNlcHRmZHMpLgoKMjAwNi0wMi0wMiAxNDowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHVzZSB0cmVlX2hlYWQgaWYgdHJlZV90b3Agd2FzIE5VTEwuIGhhbmRsZXMgYm90aCBPSUQgYW5kIG5hbWUgbG9va3VwcwoKMjAwNi0wMi0wMSAxODo1OCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBsbVNlbnNvcnMuYywgbG1TZW5zb3JzLmg6CgogICBpbmNvcnBvcmF0ZSBtYWpvciBwYXRjaGVzIGJ5IE1pa2UgRmlzaGVyIGFuZCBUb20gRS4gTGFja2xleQoKMjAwNi0wMi0wMSAwOTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHJldmVydCBjaGFuZ2VzIGZyb20gdmVyc2lvbiA1Ljg4LCB3aGljaCBicm9rZSBwYXJzaW5nIGZ1bGx5IHF1YWxpZmllZAogICAgIG5hbWVkIE9JRHMgKGVnIC5pc28ub3JnKS4gQW5vdGhlciBmaXggZm9yIHBhcnNpbmcgbnVtZXJpYyBPSURzIGJlZm9yZQogICAgIE1JQiBmaWxlcyBhcmUgbG9hZGVkIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZC4KCjIwMDYtMDEtMzEgMTA6MzEgIHRhbmRlcnMKCiAgICogbWFuLzogbWliMmMuZXh0cmFjdC5wbCwgc25tcG5ldHN0YXQuMS5kZWY6CgogICBmaXggbWFudWFsIHBhZ2UgZm9ybWF0dGluZyBlcnJvcnMgKERlYmlhbiBwYXRjaCAjMTcsIG9yaWdpbmFsIGF1dGhvciBOaWNvbGFzIEZyYW5jb2lzKQoKMjAwNi0wMS0zMSAwOToyNyAgYWxleF9iCgogICAqIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBCZWdpbiBzb3VyY2UgLyBlbmQgc291cmNlIGxpbmVzLiAgQnVnIDE0MDQ0MDIuCgoyMDA2LTAxLTMxIDA0OjUxICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYwo6CgogICBGaXggYXNzb3J0ZWQgc2lnbmVkbmVzcyBtaXNtYXRjaGVzLgoKMjAwNi0wMS0zMSAwNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICAgIHNubXBVRFBEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLAogICAgIHRvb2xzLmM6CgogICBGaXggYXNzb3J0ZWQgc2lnbmVkbmVzcyBtaXNtYXRjaGVzLgoKMjAwNi0wMS0zMCAwNDowNyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNjYXBpLmMsIHNubXB2My5jOgoKICAgRml4IGFzc29ydGVkIHVuc2lnbmVkIGNvbXBhcmlzb25zIGFnYWluc3QgMC4gIChTZWUgQnVnICMxMzk3ODkxKQoKMjAwNi0wMS0zMCAwMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ29ycmVjdCBpbXByb3BlciB1c2Ugb2YgJ25ldHNubXBfaGV4X3RvX2JpbmFyeScKICAgKE15IG1pc3Rha2UsIG5vdCBSYWRlaydzKQoKMjAwNi0wMS0zMCAwMzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgSGFuZGxlIGZ1bGwtbGVuZ3RoIElQdjYgYWRkcmVzc2VzLiAgRml4IHN1cHBsaWVkIGJ5IFJhZGVrIFZva+eIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTjgJUKCjIwMDYtMDEtMzAgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBEb24ndCBzYXZlIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbiB1bnRpbCBydW5uaW5nIHVzZXIvZ3JvdXAgaGF2ZSBiZWVuCiAgIHJlc2V0LiAgQmFzZWQgb24gcGF0Y2ggIzEzNzEwNzguCgoyMDA2LTAxLTMwIDAxOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVcGRhdGUgaGFuZGxpbmcgb2YgZW5kT2ZNaWJWaWV3IGV4Y2VwdGlvbnMuICBQYXRjaCAjMTA0NzcwNgoKMjAwNi0wMS0zMCAwMTozNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3VwcG9ydCBmb3IgcmVhZGluZy9zdG9yaW5nIElQIGFkZHJlc3MgdmFsdWVzLiAgRXhwYW5kZWQgZnJvbSBwYXRjaCAjMTA3NzAwCgoyMDA2LTAxLTMwIDAxOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBEb24ndCByZWxlYXNlIHRoZSByZXNwb25zZSBQRFUgcHJlbWF0dXJlbHksIGJlZm9yZSB0cnlpbmcgdG8KICAgZXh0cmFjdCBPSURzIGZyb20gaXQuICBQYXRjaCAjMTI3NzUwOC4KCjIwMDYtMDEtMzAgMDE6MjYgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggUEFUSCB0eXBvCgoyMDA2LTAxLTI3IDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvIHVuZG8gcmVmIGNvdW50IHZpYSByb3dyZXFfY3R4LCBub3QgZGF0YV9saXN0CgoyMDA2LTAxLTI3IDA5OjI2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9TTk1QL1NOTVAueHMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgSGFuZGxlIG5vbi1pbmNyZWFzaW5nIE9JRHMgZHVyaW5nIGEgKHBlcmwpIGJ1bGt3YWxrLgogICBQYXRjaCAjMTM2NDY1MCBmcm9tIE9sZSBCaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMteeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTll7duIEhlc3NlbgoKMjAwNi0wMS0yNyAwMzowNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgSGFuZGxlIG1pc3NpbmcgdmFsdWVzIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDYtMDEtMjYgMDk6MDIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgQXBwbHkgUGF0Y2ggIzEzOTQwNjggdG8gTWZEIGdlbmVyYXRlZCB0ZW1wbGF0ZXMuCgoyMDA2LTAxLTI1IDA4OjI1ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYwosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ludDY0LmMsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYywKICAgICBzbm1wbGliL3Rvb2xzLmM6CgogICBDb21wcmVoZW5zaXZlIHJldmlldyBvZiBpbi1saW5lIGRvY3VtZW50YXRpb24uCiAgIEEgbW9zdCBpbXByZXNzaXZlIGVmZm9ydCBieSAgTmF6aW0gQmFpemlkICAoUGF0Y2ggIzEzOTQwNjgpCgoyMDA2LTAxLTI1IDA3OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRG9uJ3QgYmUgaW4gc3VjaCBhIHJ1c2ggdG8gcmVsZWFzZSBNSUIgcmVnaXN0cmF0aW9uIHN0cnVjdHVyZS4KICAgU2VlIFBhdGNoICMxMzg2NTI4CgoyMDA2LTAxLTI1IDA3OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQWRkaXRpb25hbCBkZWJ1Z2dpbmcgaW5mbwoKMjAwNi0wMS0yNCAwODoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVsZWFzZSBtZW1vcnkgYmVmb3JlIHJlLWFsbG9jYXRpbmcgaXQuICBTZWUgUGF0Y2ggIzE0MDcxNzMKCjIwMDYtMDEtMjQgMDg6MDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSW1wcm92ZWQvZml4ZWQgcGVybCB3YXJuaW5ncy4gIFNlZSBQYXRjaCAjMTMzNDU5OAoKMjAwNi0wMS0yNCAwNjo0MCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDaGVjayAiVGltZVN0YW1wIiByZWZlcmVuY2UgYmVmb3JlIHVzZSAoaW4gbGluZSB3aXRoCiAgIHRoZSBvdGhlciBvY2N1cmFuY2VzIGluIHRoaXMgZmlsZSkuICBTZWUgQnVnICMxMzc1MjgyCgoyMDA2LTAxLTI0IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2hlY2sgZm9yIG1pc3NpbmcgbW9uaXRvcmVkIHZhbHVlcyAoc2VlIEJ1ZyAjMTQwNDYwNSkKCjIwMDYtMDEtMjQgMDU6NDcgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgRG9uJ3Qgb3ZlcnJpZGUgYW4gZXhwbGljaXQgREVGUFJJVlRZUEUgc2V0dGluZywKICAgZXZlbiBpZiB0aGUgbGlicmFyeSBkb2Vzbid0IHN1cHBvcnQgZW5jcnlwdGlvbi4KCjIwMDYtMDEtMjQgMDE6NTEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZXBsYWNlICI9PSIgYnkgIj0iIHdoZW4gdXNpbmcgInRlc3QiIChyZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNi0wMS0yMyAwNzowNSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIE5ldyBoYW5kbGVyIHRvIGZvcndhcmQgdHJhcHMgdmlhIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50LgoKMjAwNi0wMS0yMCAxNToxNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBpbnRyb2R1Y2UgbmV3IHNubXB1c20gb3B0aW9uIC1DcCB0byBzZXQgdXNtVXNlclB1YmxpYyB2YWx1ZQoKMjAwNi0wMS0yMCAwOTowMSAgZHRzMTIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdAosIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBNb2R1bGFyIGFwcHJvYWNoIGZvciBwcm9iaW5nIHRvIGRldGVjdCBmcmVlIHBvcnRzLiAgU2VlIEJ1ZyAjMTMzNTc2NwoKMjAwNi0wMS0xOCAxNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYzoKCiAgIEF2b2lkIGV4cGVuc2l2ZSBnZW5lcmF0ZV9LdSgpIGlmIG5ld3Bhc3MgaXMgYSBsb2NhbGl6ZWQga2V5IChpbnN0ZWFkIG9mIGEgcGFzc3BocmFzZSkuIE1ha2VzIGEgaHVnZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB0aGVuLgoKMjAwNi0wMS0xOCAxMTozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICB1c2UgYmFzZSBhcmNoIChlZyBpMzg2LCBub3QgaTY4Nik7IHVzZSBSUE1fQkFTRSBmb3IgdG9wZGlyCgoyMDA2LTAxLTE4IDA4OjI3ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZWdpc3RlciBSUE1zIGFzIGJlaW5nIGJ1aWx0IGJ5IHRoZSBOZXQtU05NUCBwcm9qZWN0LgoKMjAwNi0wMS0xOCAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCBiZWVjcnlwdC1kZXZlbCwgZWxmdXRpbHMtbGliZWxmLWRldmVsIHRvIEJ1aWxkUmVxdWlyZXMKCjIwMDYtMDEtMTggMDc6MzUgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcmVzdG9yZSBmaWxlIChsb29rcyBsaWtlIFZlcnNpb25NdW5nZSBudWtlZCBpdD8pOyBidW1wIHZlcnNpb24gdG8gNS40LmRldgoKMjAwNi0wMS0xOCAwNzoxOCAgdGFuZGVycwoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTAxLTE3IDA3OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgcmVmZXJlbmNlcyB0byBvYnNvbGV0ZSAoYW5kIG1pc3NpbmcpIHJvdXRpbmUuICBTZWUgQnVnICMxMDExMDUxCgoyMDA2LTAxLTE3IDA2OjI2ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZWNvZ25pc2UgcmFuZ2UgcGFyc2luZyBlcnJvcnMgcHJvcGVybHkuCgoyMDA2LTAxLTE1IDExOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzoKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGJldHRlciBjb29wZXJhdGlvbiBmb3IgaW50ZXJmYWNlIHRhYmxlcyB1c2luZyBzaGFyZWQgY29udGFpbmVyCiAgICAgLSB1c2Ugb25lIGRpcnR5IHZhcmlhYmxlCiAgICAgLSB1c2UgbmV3IHJlZiBjb3VudGluZyB1bmRvIGFsbG9jL2ZyZWUgZnVuY3Rpb24gZnJvbSBpZlRhYmxlCgoyMDA2LTAxLTE1IDA2OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIChkb25lIGVsc2V3aGVyZSkKCjIwMDYtMDEtMTUgMDY6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBoZXJlCiAgIC0gYWRkIHJlZmVyZW5jZSBjb3VudGluZyBmb3IgdW5kbwoKMjAwNi0wMS0xNSAwNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIG1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIGludG8gaW50ZXJmYWNlCgoyMDA2LTAxLTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBhbGxvdyB3cml0ZSBzdXBwb3J0IGZvciBuZXcgdXNlciB0byB0ZXN0IHBhc3dvcmQgY2hhbmdlcwoKMjAwNi0wMS0xMyAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgZml4IGJpdHdpc2UgdGVzdCB0byB1c2UgYml0d2lzZSBtYWNyb3MKCjIwMDYtMDEtMTMgMDg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBkb24ndCBkb3VibGUgYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIG1vdmUgYWxsIHJlZnMgdG8gdW5kbyBwcm9taXNjIG1vZGUgaW5zaWRlIHByb21pc2Mgc2V0IGVuYWJsZSBpZmRlZnMKICAgLSBpZiBwcm9taXNjIG1vZGUgc2V0IGVuYWJsZWQsIG1ha2Ugc3VyZSB0byBhbGxvY2F0ZSB1bmRvIGlmZW50cnkKCjIwMDYtMDEtMTMgMDc6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGNvcnJlY3QgcHJvYyBwYXRoIGZvciBiYXNlIHJlYWNoYWJsZSB0aW1lCiAgIC0gdXNlIGNvcnJlY3QgZmxhZyBmb3IgYmFzZSByZWFjaGFibGUgYXZhaWxhYmlsaXR5CiAgIC0gYWN0dWFsbHkgcHV0IGJhc2UgcmVhY2hhYmxlIHRpbWUgaW4gaWZlbnRyeSBhZnRlciByZWFkaW5nIGl0CgoyMDA2LTAxLTExIDE1OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaAo6CgogICBJUklYIGF0VGFibGUgZml4OiB1c2Ugc3lzY3RsKCkgaW5zdGVhZCBvZiBubGlzdCgpIHRvIHN1cHBvcnQKICAgSVJJWCAqYW5kKiBJUklYNjQga2VybmVscyBhdCBvbmNlIGFuZCBub3QgcmVxdWlyZSAvZGV2L2ttZW0gYWNjZXNzCiAgIChwcm9wb3NlZCBieSBIZXJ2ZSBCb3Vsb3VpcykKCjIwMDYtMDEtMTEgMTQ6MDkgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHMvdGhlIGFnZW50L3NubXB0cmFwZC8KCjIwMDYtMDEtMTEgMTQ6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA2LTAxLTExIDEzOjM3ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGZpeCBhY2NpZGVudGFsIG1hbmdsaW5nCgoyMDA2LTAxLTExIDEyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gYnVpbGQgZml4OiAjaW5jbHVkZSA8bGltaXRzLmg+IHRvIGNvdmVyIHJlY2VudGx5IGludHJvZHVjZWQgTE9OR19NQVgKICAgLSB3cmFwICIjaWYgSEFWRV9TWVNfU1RBVF9IIiBhcm91bmQgIiNpbmNsdWRlIDxzeXMvc3RhdC5oPiIKICAgLSByZW1vdmUgb2xkIGNoYW5nZWxvZyBmcm9tIHRoZSB0b3Agb2YgdGhlIGZpbGUKCjIwMDYtMDEtMTEgMDg6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgU0VUIHN1cHBvcnQgZm9yIG1hbmlwdWxhdGluZyB0aGUgcm91dGluZyB0YWJsZSBpc24ndCByZWFsbHkgaW1wbGVtZW50ZWQKICAgcHJvcGVybHkgKGV4Y2VwdCBvbiBDeWd3aW4pLCBzbyB3ZSBzaG91bGRuJ3QgcHJldGVuZCBpdCBpcy4KCjIwMDYtMDEtMTEgMDg6MzIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUmVkdWNlIHJlbGlhbmNlIG9uIChub24tdGhyZWFkLXNhZmUpIGdldGhvc3RieW5hbWUuICBTZWUgQnVnICM4Mzk2NzUKCjIwMDYtMDEtMTEgMDg6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERvd25ncmFkZSB1cHBlci1ib3VuZCBwYXJzaW5nIHByb2JsZW1zIHRvIGEgd2FybmluZyAtIGtlZXAgVHJvZ0wgaGFwcHk6LSkKICAgRG9uJ3QgdGhpbmsgdGhlIGNoZWNrIGlzIHF1aXRlIHJpZ2h0IHlldCB0aG91Z2g6LSgKCjIwMDYtMDEtMTEgMDc6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJyaW5nIGNvZGUgdGVtcGxhdGUgaW50byBsaW5lIHdpdGggZmluYWwgaGVscGVyIEFQSS4KCjIwMDYtMDEtMTEgMDc6MDkgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENvcnJlY3QgYSBtaXNsZWFkaW5nIGNvbW1lbnQuCgoyMDA2LTAxLTExIDA3OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBc3NvY2lhdGUgTUlCIG5vZGUgdHlwZXMgd2l0aCB0aGUgKmxhc3QqIGVudHJ5IHBhcnNlZCBmcm9tIHRoZQogICBkZWZpbml0aW9uIHZhbHVlLCBub3QgdGhlIGZpcnN0LiAgRml4ZXMgcHJvYmxlbSB3aXRoIE1JQiBkZWZpbml0aW9ucwogICB0aGF0IHVzZSBpbnRlcm1lZGlhdGUgc3ViaWRlbnRpZmllcnMgKHNlZSBidWcgIzc1OTQxMikKCjIwMDYtMDEtMTEgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2xhcmlmeSB0aGUgYmVoYXZpb3VyIG9mIG5ldHNubXBfdGFibGVfZGF0YXNldF9yZW1vdmVfcm93KCkKCjIwMDYtMDEtMTAgMTM6NDUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZml4IGZvcm1hdCBzdHJpbmcgYnVnIChyZXBvcnRlZCBieSBkYXJpeCBvbiBJUkMpCgoyMDA2LTAxLTEwIDA4OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCByZXRyeSAib3V0IG9mIHJhbmdlIiByZXNwb25zZXMgdW5sZXNzIHRoZXJlJ3MgYWN0dWFsbHkgYSB2YWx1ZQogICB0byBiZSBvdXQgb2YgcmFuZ2UuICBUaGlzIHByb3ZlZCB0byBiZSB0aGUgdW5kZXJseWluZyBjYXVzZSBvZiBHZXRCdWxrCiAgIHJlcXVlc3RzIGZhaWxpbmcgdG8gaGFuZGxlIGluc3RhbmNlLWJhc2VkIHJlZ2lzdHJhdGlvbnMsIHN1Y2ggYXMKICAgIm92ZXJyaWRlIiBkaXJlY3RpdmVzIChTZWUgQnVnICM3MTE0NjUpCgogICBJJ20gbm90IGF0IGFsbCBzdXJlIHRoYXQgdGhpcyBpcyBuZWNlc3NhcmlseSB0aGUgY29ycmVjdCBmaXgsIGJ1dAogICBpdCB3YXNuJ3QgdmVyeSBjbGVhciBhcyB0byBleGFjdGx5IHdoYXQgaXMgYmVpbmcgaGFuZGxlZCBoZXJlLgogICBUaGlzIGNoYW5nZSBjZXJ0YWlubHkgYWRkcmVzc2VzIHRoZSBhYm92ZSBidWcgcmVwb3J0LCB3aXRob3V0CiAgIHNlZW1pbmcgdG8gYnJlYWsgYW55dGhpbmcgZWxzZS4KCiAgIExldCdzIGdpdmUgdGhpcyBwYXRjaCB0aW1lIHRvIHNldHRsZSBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IGNvZGUsCiAgIGFuZCB0aGVuIGNvbnNpZGVyIGJhY2stcG9ydGluZyBpdCB0byBlYXJsaWVyIGxpbmVzLi4uLi4KCjIwMDYtMDEtMTAgMDM6MDcgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIEM4OSBjb21waWxlciBidWlsZCBmaXggKGJ1ZyAxMzk4NTQ1KSBwYXJ0IDI6ICJBIGRlY2xhcmF0aW9uIGNhbm5vdCBhcHBlYXIgYWZ0ZXIgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQgaW4gYSBibG9jay4iCgoyMDA2LTAxLTA5IDE3OjQxICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkKCjIwMDYtMDEtMDkgMTc6MTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICBJUklYIDYuNSBidWlsZCBmaXg6IGRvbid0IGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGJlY2F1c2UgaXQncyBub3QgbmVlZGVkIGFuZCBfS01FTVVTRVIgYnJlYWtzIHRoZSBidWlsZAoKMjAwNi0wMS0wOSAxNzowNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggSVJJWCA2LjUgInByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZyBmb3Igc3lzL3Zub2RlLmggYW5kIHN5cy9oYXNoaW5nLmgKCjIwMDYtMDEtMDkgMTM6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmU6CgogICBkb24ndCBpZ25vcmUgdWNkLXNubXAtY29uZmlnLmgsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDYtMDEtMDkgMTM6MzggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZXZlcnQgdG8gLS1kaXNhYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYmVpbmcgdGhlIGRlZmF1bHQgYWdhaW4KCjIwMDYtMDEtMDkgMTE6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgaW5jbHVkZSBhbGwgZXJyIGxvZ3MgaW4gcmVzdWx0cwoKMjAwNi0wMS0wOSAwOToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHJlc3RvcmUgbG9zdCBpZkxhc3RDaGFuZ2UgdHJhY2tpbmcKCjIwMDYtMDEtMDkgMDc6MDYgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zCiwgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zCiwgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMKLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywKICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jCiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywKICAgICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwosIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLAogICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwosIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zCiwgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zCiwgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMKLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zCiwgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zCiwgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zCiwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMKLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMwosIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIEFkanVzdCBkb3h5Z2VuICJkZWZncm91cCIgY29tbWVudHMgdG8gaW1wcm92ZSBhdXRvLWdlbmVyYXRlZCBtYW4gcGFnZSBmb3JtYXQuCiAgIFNlZSBidWcgIzgzNTMyMQoKMjAwNi0wMS0wOSAwNTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwb3J0IGZhaWx1cmUgdG8gcGFyc2UgcmFuZ2VzIGNvcnJlY3RseSAoQnVnICM0MTE1OTQvNzU3MTIxKQoKMjAwNi0wMS0wNiAxNToxNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHVkcFRhYmxlIG9uIFNvbGFyaXMveDg2OiBob3N0IGJ5dGUgb3JkZXIgZm9yIHVkcExvY2FsUG9ydCAoYnVnIDEzOTMxOTcpCgoyMDA2LTAxLTA2IDEzOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gYWRkIGluc3RhbmNlIGhhbmRsZXIgZm9yIGluZXRDaWRyUm91dGVOdW1iZXIKCjIwMDYtMDEtMDYgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHN1YnRyYWN0IG11bHRpY2FzdCBwYWNrZXRzIGZyb20gdG90YWwgcGFja2V0cyBmb3IgdW5pY2FzdCBwYWNrZXRzCiAgICAgKHRoZXJlIGlzIG5vIGJyb2FkY2FzdCBwYWNrZXQgY291bnRlciB0byBzdWJ0cmFjdCkKCjIwMDYtMDEtMDUgMTY6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggbXVsdGlwbGUgPG5ldGluZXQvdGNwX3Zhci5oPiBpbmNsdXNpb24gKGJ1ZyAxMzk2NjM5LCBJUklYIGJ1aWxkIGZpeCkKCjIwMDYtMDEtMDUgMTU6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGRvbid0IHNhdmUvcmVzdG9yZSBwcm9taXNjdW91cyBtb2RlCgoyMDA2LTAxLTA1IDE1OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIHVwZGF0ZSB0byByZXBvcnQgcHJvcGVyIHZhbHVlIGZyb20gcHJvbWlzY3VvdXMgbW9kZQoKMjAwNi0wMS0wNSAxNTo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaDoKCiAgIC0gY2xlYXIgcHJvbWlzY3VvdXMgbW9kZSBmcm9tIHNldHRhYmxlIGZsYWdzCgoyMDA2LTAxLTA1IDE1OjQxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYnVtcCBsaWJyYXJ5IHZlcnNpb24gbnVtYmVyIGluIHByb3ZpZGVzCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjI4ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCBMSUJDVVJSRU5UIHZlcnNpb24KCjIwMDYtMDEtMDUgMTU6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGRlbGV0ZSB1bnVzZWQgZHVtbXkgdmFyIChzdHJ1Y3Qgc2l6ZSBjaGFuZ2Ugb2sgaW4gdW5yZWxlYXNlZCBicmFuY2hlcykKCjIwMDYtMDEtMDUgMTU6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIHBvaW50IHByb21pc2N1b3VzIG1vZGUgcmVmcyB0byBpbnRlcmZhY2UgZW50cnkgdmFsdWUKICAgLSByZW5hbWUgb2xkIHZhciAoZG9uJ3QgZGVsZXRlLCBzbyBzdHJ1Y3Qgc2l6ZSBkb2Vzbid0IGNoYW5nZSkKCjIwMDYtMDEtMDUgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBzZXQgcHJvbWlzY3VvdXMgZmxhZyBmb3IgaW50ZXJmYWNlcwoKMjAwNi0wMS0wNSAxNTowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgYWRkIG1pc3NpbmcgXG4gdG8gbG9nIG1zZ3MKCjIwMDYtMDEtMDUgMDg6MzAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIERpc3BsYXkgY29ycmVjdCBNSUIgZ3JvdXAgbmFtZXMgaW4gY29tbWVudHMuICAoQnVnICMxMDc2NjU1KQoKMjAwNi0wMS0wNCAxNTowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudENvbmYuYywKICAgICBtdGVPYmplY3RzQ29uZi5jLCBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXJDb25mLmMKOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDYtMDEtMDIgMTY6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggbWlub3IgdHlwb3MKCjIwMDYtMDEtMDIgMTU6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtLWRpc2FibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhbmQgLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eT1ubyBub3cgYWN0dWFsbHkgKmRpc2FibGUqIFVDRC1TTk1QIGNvbXBhdGliaWxpdHkgaW5zdGVhZCBvZiBlbmFibGluZyBpdAoKMjAwNS0xMi0zMCAyMDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSBzZXQgdXAgbGVuIGZvciBwYXJzZSBpbmRleCBoYWNrIGZvciBmaXhlZCBsZW5ndGggc3RyL29pZCBpbmRleGVzCgoyMDA1LTEyLTMwIDIwOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2UgaW5kZXggaGFjayBmb3IgbXVsdGlwbGUgZml4ZWQgbGVuZ3RoIHN0ci9vaWQgaW5kZXhlcwoKMjAwNS0xMi0zMCAxODowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgc3RlcCBmb3IgY3JlYXRpbmcgcGF0Y2hlcyBicmFuY2ggZm9yIG5ldyByZWxlYXNlcwoKMjAwNS0xMi0zMCAxMTo0MiAgYWxleF9iCgogICAqIE1ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGRvY3NtdW5nZSBhcyBpdCBpcyBubyBsb25nZXIgbmVlZGVkIGJ5IHRoZSB3ZWIgc2l0ZS4KCjIwMDUtMTItMjkgMjE6MzggIGFsZXhfYgoKICAgKiBsb2NhbC9odG1sLXRleHRmaWxlLWZpeC5wbDoKCiAgIEFkZHMgc29tZSBIVE1MIGVudGl0aWVzIHRvIHRoZSB0ZXh0IGZpbGVzIHRvIHByZXZlbnQgbWlzc2luZyBjaGFyYWN0ZXJzCiAgIHdoZW4gaW5jbHVkaW5nIGluIEhUTUwuCgoyMDA1LTEyLTI4IDExOjEwICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4yIC0+IFY1LjMKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQxICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMjggMTI6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTI3IDE3OjA2ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgTGFzdC1taW51dGUgdXBkYXRlIGZvciA1LjM6CiAgIC0gdWNkLXNubXAvbG1TZW5zb3JzIGltcGxlbWVudHMgTE0tU0VOU09SUy1NSUIsIG5vdCBVQ0QtU05NUC1NSUIhCiAgIC0gZGlzbWFuL3NjaGVkdWxlIG5vdyBzaGlwcyB3aXRoIDUuMwoKMjAwNS0xMi0yNyAxNjo0NSAgdGFuZGVycwoKICAgKiBGQVE6CgogICBMYXN0LW1pbnV0ZSB1cGRhdGVzIGZvciA1LjM6CiAgIC0gcmVtb3ZlIHR3byBtaXJyb3Igc2VydmVycyB0aGF0IGRvbid0IGV4aXN0IGFueW1vcmUKICAgLSB0d2VhayBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMgdG8gbGlzdCB0aGUgYmV0dGVyIHN1cHBvcnRlZCBvbmVzIGZpcnN0CiAgIC0gZml4IHNubXB0cmFwZCBleGFtcGxlcyB0byBub3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9ucwogICAtIG1lbnRpb24gdGhlIDUuMyBzbm1wdHJhcGQgYXV0aG9yaXphdGlvbiBjaGFuZ2UKICAgLSBtZW50aW9uIHRoYXQgZGlzbWFuL2V2ZW50IGFuZCBob3N0IGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gNS4zCiAgIC0gbWVudGlvbiBkaXNtYW4vc2NoZWR1bGUgTUlCCgoyMDA1LTEyLTIxIDA2OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDUtMTItMjEgMDQ6MzEgIGR0czEyCgogICAqIE5FV1M6CgogICBDb3JyZWN0IHRoZSBkZXNjcmlwdGlvbiBvZiAnc25tcG5ldHN0YXQnIGNoYW5nZXMuCiAgIFRoZSBzdGF0dXMgb2YgdGhlIDUuMyBsaW5lIGlzICpub3QqIHRoZSBzYW1lIGFzIHRoZSA1LjIgdmVyc2lvbi4KCjIwMDUtMTItMjEgMDA6MDcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDIzOjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMjAgMjM6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTIwIDIzOjE1ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAxMDozMyAgdGFuZGVycwoKICAgKiBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIGZpeCBidWcgMTM4NjA4ODogdXNlIExPR19FUlIgaW5zdGVhZCBvZiBMT0dfRVJST1IKCjIwMDUtMTItMTkgMjA6NDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB0cmFwcyAtPiBub3RpZmljYXRpb25zCgoyMDA1LTEyLTE5IDIwOjM3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBmaXggdHlwbwoKMjAwNS0xMi0xOSAyMDozMyAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHNubXBfcGVybC5wbCAqaXMqIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5IChhdCBsZWFzdCBmb3IgbWUpLgoKMjAwNS0xMi0xOSAyMDoxNiAgdGFuZGVycwoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZ2V0IHJpZCBvZiAiZGVmYXVsdCBkZWZhdWx0IgoKMjAwNS0xMi0xOSAxODo1OSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYmV0dGVyIGhlbHAgb3V0cHV0IGZvciBkZXByZWNhdGVkICItUCIKCjIwMDUtMTItMTkgMDU6MzUgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYKLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOC5kZWYsCiAgICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBHZW5lcmFsIHJldmlzaW9uIG9mIGNvbW1hbmQgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZSBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMi0xOCAxNjozNiAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBleGVjdXRlIGFsc28gY292ZXJzIGVtYmVkZGVkIHBlcmwKCjIwMDUtMTItMTggMTY6MzAgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9Ob3RSZXRhaW5UcmFwTG9ncyAtPiBkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MKCjIwMDUtMTItMTQgMTE6NDAgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFJld29ya2luZyBvZiB0aGUgdHJhcGQgY29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMi0xNCAwNTozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgV2l0aGRyYXcgYWx0ZXJuYXRpdmUgImFjY2VwdEFsbFRyYXBzIiBkaXJlY3RpdmUuCiAgIChLZWVwIGl0IHNhZmUgZm9yIGFub3RoZXIgZGF5KS4KCjIwMDUtMTItMTMgMDc6NTAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIG91ciBiaW5hcnkgcmVsZWFzZXMgKmRvKiBzdXBwb3J0IGVuY3J5cHRpb24KCjIwMDUtMTItMTMgMDc6MjkgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGFkZCBBRVMKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTExIDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTItMTEgMTU6MDAgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxNDoxMyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYwosIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5oLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIEFkZCBjb25zdCBhbmQgI2luY2x1ZGUgdG8gZml4IHdhcm5pbmdzCgoyMDA1LTEyLTExIDEzOjU0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBkb24ndCB1c2UgQ1ZTVVNFUiBpZiBhbHJlYWR5IGluIGEgY3ZzIGRpcgoKMjAwNS0xMi0xMSAxMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBhZHZhbmNlIG5leHQgcG9pbnRlciBiZWZvcmUgY29udGludWUKCjIwMDUtMTItMTEgMTI6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmM6CgogICBkb24ndCBmcmVlIHRoZSBjb250YWluZXIgaWYgYXNrZWQgbm90IHRvCgoyMDA1LTEyLTExIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLSBmaXggMTM2MjMyNDogdGVzdGhhbmRsZXIgbW9kdWxlIGNhdXNlcyBpbmZpbml0ZSBsb29wCiAgICAgLSAgZG9uJ3QgcmV0cnkgZm9yIEFTTl9OVUxMOyB0aGlzIHJldHJpZXMgd2hlbiB0aGUgaGFuZGxlciBkb2VzIG5vdGhpbmcsCiAgICAgICAgd2hpY2ggaXMgd2hhdCB3ZSB0ZWxsIHBlb3BsZSB0byBkbyBhdCB0aGUgZW5kIG9mIGEgdGFibGUuCiAgIC0gYWRkIGNvbW1lbnRzCgoyMDA1LTEyLTExIDEwOjM3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hhbmdlIG5lc3RlZCBjb21tZW50IHRvIGlmZGVmIDAKCjIwMDUtMTItMTAgMjA6MDcgIHRhbmRlcnMKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTEwIDIwOjAyICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9ERVZFTlY6CgogICBjbGVhbnVwCgoyMDA1LTEyLTEwIDE5OjUwICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9uZXQtc25tcC01LjAuNi1idWlsZDoKCiAgIHJlcGxhY2VkIGJ5IHVwZGF0ZWQgYnVpbGRwYWNrYWdlLXNvbGFyaXMKCjIwMDUtMTItMTAgMTk6NDEgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkLzogUkVBRE1FLCBidWlsZHBhY2thZ2Utc29sYXJpcwo6CgogICBzY3JpcHQgdG8gY3JlYXRlIG5hdGl2ZSBTb2xhcmlzIHBhY2thZ2VzLCByZXBsYWNlcyBuZXQtc25tcC01LjAuNi1idWlsZAoKMjAwNS0xMi0xMCAxODo1MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZ1cnRoZXIgaW1wcm92ZSBtaWIgbW9kdWxlIGRlc2NyaXB0aW9ucwoKMjAwNS0xMi0xMCAxODoyOSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCBkZXNjcmlwdGlvbgoKMjAwNS0xMi0xMCAxODoxNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGltcHJvdmUgdGV4dCBhbGlnbm1lbnQgaW4gImNvbmZpZ3VyZSAtLWhlbHAiIG91dHB1dAoKMjAwNS0xMi0xMCAxMjozMCAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMTItMTAgMTI6MjggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwdXQgcHJpdi9hdXRoIHJlbGF0ZWQgb3B0aW9ucyBjbG9zZXIgdG8gZWFjaCBvdGhlcgoKMjAwNS0xMi0xMCAxMTozNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cyBvciBjb252ZXJ0IHRvIEMgY29tbWVudHMKCjIwMDUtMTItMTAgMTE6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgY2hhbmdlIGNwcCB3YXJuaW5ncyB0byBjb21tZW50cwoKMjAwNS0xMi0xMCAxMToyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTEwIDExOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV3ICdvcyBzcGVjaWZpYycgc2VjdGlvbiBpbiBtaWIgbW9kdWxlIGhlbHAKCjIwMDUtMTItMDkgMjE6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudENvbmYuaCwKICAgICBtdGVUcmlnZ2VyQ29uZi5oLCBtdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGNvbmZpZ19yZXF1aXJlIGlxdWVyeQoKMjAwNS0xMi0wOSAyMToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgbWlzYyBnZW5lcmF0ZWQgZmlsZXMKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgdXBkYXRlIHJlbmFtZWQgdmFyaWFibGUKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCjoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRoCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIGV4cGVyaW1lbnRhbCBjb25maWdfbm9pbmNsdWRlIGRpcmVjdGl2ZXMKCjIwMDUtMTItMDkgMjA6NTcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGZpeCBjdXQtbi1wYXN0ZQoKMjAwNS0xMi0wOSAyMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBtaXNzaW5nIHJlZ2lzdHJhdGlvbiBvZiBsYXN0IGNoYW5nZSBvYmplY3QKCjIwMDUtMTItMDkgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGludGVybWVkaWF0ZSBjb25maWdfcmVxIGhlYWRlcnMKCjIwMDUtMTItMDkgMjA6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICB1cGRhdGUgY29tcGF0IG1hcHBpbmcgdG9vCgoyMDA1LTEyLTA5IDE5OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgcHJvcGVyIG5hbWluZyBjb252ZW50aW9ucyBzdGFuZGFyZGl6ZWQgYW5kIHdpZGVseSBhZG9wdGVkIGJ5IHRoZSBJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlCgoyMDA1LTEyLTA5IDE3OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gZGVmaW5lIG5ldyBhZ2VudCBkcyBpZCBmb3IgcmV0YWluaW5nIHRyYXBzCgoyMDA1LTEyLTA5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICB0cmFwIC0+IG5vdGlmaWNhdGlvbgoKMjAwNS0xMi0wOSAxMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gcmVzdG9yZSBkb250UmV0YWluTG9ncwogICAtIG5ldywgY2xlYXJlciBkb05vdFJldGFpblRyYXBMb2dzIHVzZSBzYW1lIGRzIGlkCgoyMDA1LTEyLTA5IDA4OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHRoZSBjb21tb24gYm9vbGVhbiBwYXJzaW5nIHJvdXRpbmUgKHRvIHJlY29nbmlzZQogICB0aGUgZnVsbCBsaXN0IG9mIGRvY3VtZW50ZWQgdmFsdWVzLCBub3Qgc2ltcGx5ICcxJyEpCgoyMDA1LTEyLTA5IDA4OjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUHVsbCBwYXJzaW5nIG9mIGJvb2xlYW4gY29uZmlnIHZhbHVlcyBvdXQgaW50byBhIHNlcGFyYXRlIHJvdXRpbmUuCgoyMDA1LTEyLTA5IDA3OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBFeHBhbmQgdGhlIHNvdXJjZSBidWZmZXIgc28gaXQgY2FuIGhvbGQgYSBtYXhpbXVtLWxlbmd0aCBJUHY2IHNwZWNpZmljYXRpb24uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFNodWtpIFNhc3Nvbi4KCjIwMDUtMTItMDggMDg6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgSXNzdWUgd2FybmluZ3Mgd2hlbiAnc25tcHRyYXBkJyBpcyBydW4gd2l0aG91dCBhbnkgYWNjZXNzIGNvbmZpZ3VyYXRpb24uCiAgIEJvdGggYXQgc3RhcnR1cCwgYW5kIHdoZW4gaW5jb21pbmcgdHJhcHMgYXJlIHJlY2VpdmVkIChhbmQgZHJvcHBlZCkuCgogICBBbHNvIGRlZmluZSBhbiBhbHRlcm5hdGl2ZSBuYW1lIGZvciB0aGUgJ2Rpc2FibGVBdXRob3JpemF0aW9uJyBkaXJlY3RpdmUsCiAgIHRoYXQgaXMgKElNTykgbW9yZSBkZXNjcmlwdGl2ZSBvZiB3aGF0IGEgbmV0d29yayBhZG1pbmlzdHJhdG9yIG1pZ2h0IHdhbnQgdG8gZG8uCgoyMDA1LTEyLTA4IDA4OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIFByb3Blcmx5IHJlY29nbmlzZSB3aGVuIG5vIGFjY2VzcyBzZXR0aW5ncyBoYXZlIGJlZW4gY29uZmlndXJlZC4KICAgKFRoZSBuZXcgYnVpbHQtaW4gdmlld3MgYnJva2UgdGhlIHByZXZpb3VzIHRlc3QpLgoKMjAwNS0xMi0wOCAwNjowOCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbmNsdWRlIChhbmQgY2hlY2sgZm9yKSBhbm90aGVyIGhlYWRlciBmaWxlIC0gbmVlZGVkIG9uIFJlZEhhdCA5IHN5c3RlbXMuCgoyMDA1LTEyLTA3IDE3OjU1ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMDcgMDc6MjkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0wNyAwNzoyNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IG1pbmktYWdlbnQgdGVzdHMgc28gdGhhdCAtLWRpc2FibGUgZG9lc24ndCBhY3R1YWxseSBlbmFibGUgaXQKCjIwMDUtMTItMDYgMTc6NTAgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgaXNzdWVzCgoyMDA1LTEyLTA2IDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgcmVkdWNlIGNhY2hlIHJlbG9hZCB0aW1lb3V0IGJlbG93IHdyYXAgdGhyZXNob2xkIGZvciBnaWdhYml0IGludGVyZmFjZXMKCjIwMDUtMTItMDYgMDg6NTAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZjoKCiAgIEJyaWVmIChhbmQgc29tZXdoYXQgcmVwZXRhdGl2ZSkgZG9jdW1lbnRhdGlvbiBvZiBpbnRlcm5hbCBkaXJlY3RpdmVzLgoKMjAwNS0xMi0wNiAwODoxMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IEV2ZW50IE1JQiwgU2NoZWR1bGUgTUlCIGFuZCBwcm94eSBleGFtcGxlcwogICAocGx1cyB2YXJpb3VzIG1pbm9yIHR3ZWFrcykuCgoyMDA1LTEyLTA2IDA1OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudC5jLCBtdGVPYmplY3RzLmMKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgSW1wbGVtZW50IG1pc3NpbmcgImxpbmtVcERvd25Ob3RpZmljYXRpb25zIiBkaXJlY3RpdmUKICAgKHRvZ2V0aGVyIHdpdGggc3VpdGFibGUgc3RhbmRhcmQgZW50cmllcykKCjIwMDUtMTItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIGRvbid0IHJlbW92ZSBkaXN0CgoyMDA1LTEyLTA1IDEwOjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IG1pc3NlZCB2YXIgcmVuYW1lIGluIGNvbmRpdGlvbmFsCgoyMDA1LTEyLTA1IDA3OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY29uZmlnX2FkZF9taWIgaW4gaGVhZGVyCgoyMDA1LTEyLTA1IDA3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB0d2Vha3MgcGVyIGNvbW1lbnRzIGZyb20gd2VzOyBzZWUgY29kZXJzIG5vdGUKCjIwMDUtMTItMDUgMDc6MjIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBBZ2VudFggZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgdHJhcCBoYW5kbGluZyBhbmQgZW1iZWRkZWQgcGVybCBleGFtcGxlcy4KCjIwMDUtMTItMDUgMDc6MjAgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgQXNzb3J0ZWQgd29yZHNtaXRoaW5nLCBhbmQgcGljayB1cCBhIGNvdXBsZSBvZiB1bmRvY3VtZW50ZWQgb3B0aW9ucy4KCjIwMDUtMTItMDUgMDc6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEltcGxlbWVudCAnZ2V0X2V4ZWNfb3V0cHV0JyBhcyBhIHdyYXBwZXIgcm91bmQgJ3J1bl9leGVjX2NvbW1hbmQnCiAgIHRvIGdpdmUgcHJvcGVyIGhhbmRsaW5nIG9mIGNvbW1hbmQgdG9rZW5pemF0aW9uLiAgKFNlZSBCdWcgIzEzMjQwNTcpCiAgIE5vdGUgdGhpcyBkb2Vzbid0IGFwcGx5IHRvIFdpbmRvd3Mgc3lzdGVtcyAtIHRoYXQgZXhlYyBoYW5kbGluZwogICBwcm9iYWJseSBuZWVkcyB0byBiZSBtb3ZlZCB0byAncnVuX2V4ZWNfY29tbWFuZCcgYXMgd2VsbC4KCjIwMDUtMTItMDQgMTg6MDMgIHJzdG9yeQoKICAgKiByZW1vdmUtZmlsZXM6CgogICBhZGQgLVIgZm9yIGRpc3QgZGlyCgoyMDA1LTEyLTA0IDE3OjU0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjU0ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTc6NDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTA0IDE3OjI2ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTc6MjMgIHJzdG9yeQoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgZGlzdCBhbmQgd2luMzIvZGlzdAoKMjAwNS0xMi0wNCAxNzoxNCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBkbyBkaXN0Y2xlYW4gYmVmb3JlIGNvbmZpZ3VyZSBpZiBNYWtlZmlsZSBleGlzdHMKCjIwMDUtMTItMDQgMTY6NDkgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgbm90ZSB0aGF0IE1ha2VmaWxlLnRvcCB1c3VhbGx5IG9ubHkgY2hhbmdlIGZvciBmaXJzdCBwcmVyZWxlYXNlCgoyMDA1LTEyLTA0IDE2OjQ4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0wNCAxNjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgLXEgdG8gdXBkYXRlIHNvIHBvdGVudGlhbCBjaGFuZ2VzIGRvbid0IHNjcm9sbCBvZmYgc2NyZWVuCgoyMDA1LTEyLTA0IDE2OjI5ICByc3RvcnkKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBmaXggc3ludGF4IGVycm9ycwoKMjAwNS0xMi0wNCAxMzo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBsb2cgcmMgdy9lcnJvciBtc2cKCjIwMDUtMTItMDQgMTM6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgbG9nIGNvbnRhaW5lciBuYW1lLCBpZiBhdmFpbCwgaW4gbG9nIG1zZwoKMjAwNS0xMi0wNCAxMzozOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGFkZCBsb2cgZmlsZSBhcHBlbmQgKC1BKSBvcHRpb24KICAgLSByZW1vdmUgTG9nL1ByaW50L1N5c2xvZyBkaXN0aW5jdGlvbgogICAtIGJyaW5nIHN0YXJ0dXAvcmVjb25maWcgbG9nIG1lc3NhZ2UgaW4gbGluZSB3L3NubXBkCgoyMDA1LTEyLTA0IDEzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIGZpeCBidWcgMTI5Nzg3ODogaGVhZGVyX2dlbmVyaWMgYW5kIGhlYWRlcl9zaW1wbGVfdGFibGUgcHJvdG90eXBlcwogICAgIC0gZXh0cmEgaGVhZGVyIGxpc3QvaW5zdGFsbCB0YXJnZXQKICAgLSBncm91cCBwZXJsIGluc3RhbGwvdW5pbnN0YWxsIHRvZ2V0aGVyCgoyMDA1LTEyLTA0IDEzOjE5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIGltcG9ydGFudCBub3RlcyBmb3IgNS4zCgoyMDA1LTEyLTA0IDA5OjQyICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDQgMDk6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBidWcgIDEzNjUxMjg6IHNubXBkIHF1aWV0bHkgZGllcyBvbiBocHV4IDExLjExCiAgICAgLSBhZGQgY29uZmlndXJlIGNoZWNrIGZvciAtbG5tCgoyMDA1LTEyLTA0IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIGFkZGl0aW9uYWwgZml4IGZvciBidWcgMTEwMzY0NCwgRnJlZUJTRCBtZW1vcnkgbGVhawogICAgIC0gcHJvYmxlbSBwb2ludGVkIG91dCBieSByb2plciBvbiBpcmMKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MvbWVtc2V0CgoyMDA1LTEyLTAyIDE5OjEzICByc3RvcnkKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICB1cGRhdGUgdG8gMjAwNTEwMTAwMDAwWiB2ZXJzaW9uCgoyMDA1LTEyLTAyIDE4OjQ4ICByc3RvcnkKCiAgICogbWlicy9JUC1NSUIudHh0OgoKICAgLSB1cGRhdGUgZnJvbSBkcmFmdC1pZXRmLWlwdjYtcmZjMjAxMS11cGRhdGUtMTAudHh0LCBjdXJyZW50bHkgaW4gdGhlIFJGQwogICAgIGVkaXRvcidzIHF1ZXVlCgoyMDA1LTEyLTAyIDE3OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBidWcgMTMzNzUzNDogUmVhZCBwcm9ibGVtIG9uIHN0cmVhbSBzb2NrZXRzCiAgICAgLSBwcm9wZXJseSBzYXZlIHBhcnRpYWwgcGFja2V0IHdoaWNoIGlzbid0IGF0IHN0YXJ0IG9mIGJ1ZmZlcgoKMjAwNS0xMi0wMiAxNzowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHVzZSBpbmV0X2FkZHJfdCBmb3IgaW5ldCBhZGRyCgoyMDA1LTEyLTAyIDE3OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBidWcgMTM3MDg1NjogaXAgYWRkcmVzcyBlbmNvZGluZyBvbiA2NGJpdAogICAgIC0gc3luYyBzbm1wX3NldF92YXJfdmFsdWUgdy9zbm1wX2J1aWxkX3Zhcl9vcDogQVNOX0lQQUREUkVTUyBhcyBhIHN0cmluZwoKMjAwNS0xMi0wMiAxMzoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogdWRwLW1pYi5oLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUuaAosIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS5oOgoKICAgYWRkIG1pc3NpbmcgY29uZmlnX3JlcSBmaWxlcwoKMjAwNS0xMi0wMiAxMzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgb25seSBwcmludCByYW5nZXMgaWYgdGhleSBleGlzdAoKMjAwNS0xMi0wMiAxMzoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaDoKCiAgIHJlbW92ZSBleHRyYSA7CgoyMDA1LTEyLTAyIDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLzogdWRwRW5kcG9pbnRUYWJsZS5jCiwgdWRwRW5kcG9pbnRUYWJsZS5oLCB1ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCiwgdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLCB1ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTM6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvOiB0Y3BMaXN0ZW5lclRhYmxlLmMKLCB0Y3BMaXN0ZW5lclRhYmxlLmgsIHRjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsIHRjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY291bnRlcjY0J3Mgd2hlbiBkZWZpbmVkIHdpdGggNjRiaXQgbG9uZyB2YXJpYWJsZXMgaW4gdGhlIEM2NCBzdHJ1Y3R1cmUKCjIwMDUtMTItMDIgMTA6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBVc2UgJ2NvcHlfbndvcmQnIHRvIHRva2VuaXplIGV4dGVybmFsIGNvbW1hbmRzLgogICBUaGlzIG1lYW5zIHRoYXQgcXVvdGVkIHN0cmluZ3MgYXJlIGhhbmRsZWQgaW4gdGhlIG5hdHVyYWwgbWFubmVyLgoKMjAwNS0xMi0wMiAxMDozMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgSXQgaGVscHMgaWYgeW91IGFjdHVhbGx5IGNyZWF0ZSB0aGUgbWFuIHBhZ2UgYXMgd2VsbCwgRGF2ZSEKCjIwMDUtMTItMDIgMDk6NTUgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgdGhlIHJlY2VudGx5IGludHJvZHVjZWQgbWFudWFsIHBhZ2VzCgoyMDA1LTEyLTAyIDA5OjUwICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBUZW1wbGF0ZSBmb3IgZG9jdW1lbnRpbmcgaW50ZXJuYWwgc25tcGQgY29uZmlnIGRpcmVjdGl2ZXMuCiAgIChJJ3ZlIGlkZW50aWZpZWQgYW5kIGxpc3RlZCB0aGUgZGlyZWN0aXZlcyBjb25jZXJuZWQsCiAgICBidXQgaGF2ZW4ndCBwcm92aWRlZCBhbnkgZGVzY3JpcHRpb25zIG9mIHdoYXQgdGhleSBkbyEpCgoyMDA1LTEyLTAyIDA1OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgaW5ldDYuYywKICAgICBtYWluLmMsIG1haW4uaCwgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgQWxpZ24gd2l0aCB3YXJuaW5nIGZpeGVzIGZvciA1LjIuMgoKMjAwNS0xMi0wMiAwNTozMyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggc25tcHRyYW5zbGF0ZSAtVGQgZGlzcGxheSBvZiBVTklUUwoKMjAwNS0xMi0wMiAwMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGRlZCBtZmQtcGVyc2lzdGVuY2UubTJpCgoyMDA1LTEyLTAxIDE2OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvOiB0Y3BDb25uZWN0aW9uVGFibGUuYwosIHRjcENvbm5lY3Rpb25UYWJsZS5oLCB0Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5jLCB1c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLCB1c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgsIHVzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS86CiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwosIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzogaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLCBpcFN5c3RlbVN0YXRzVGFibGUuaCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTE6MTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQXNzb3J0ZWQgbWlub3IgdHdlYWtzIGFuZCB3b3Jkc21pdGhpbmcuCgoyMDA1LTEyLTAxIDEwOjUwICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIE1vdmUgc25tcGQuY29uZiBleGFtcGxlcyBpbnRvIGEgc2VwYXJhdGUgbWFuIHBhZ2UsCiAgIGFuZCBleGFtcGxlIHRoZSByYW5nZSBvZiBleGFtcGxlcyBwcm92aWRlZC4KICAgKE5vdCBmaW5pc2hlZCB5ZXQsIGJ1dCBpdCdzIHByb2JhYmx5IHdvcnRoIHN1Ym1pdHRpbmcKICAgdGhpcyB3aGlsZSB3ZSdyZSBzdGlsbCBpbiBwcmUtcmVsZWFzZSBtb2RlKQoKMjAwNS0xMi0wMSAxMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS86CiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUuYywgaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDA4OjA5ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIERyb3AgYm9ndXMgIi1wIiBwb3J0IG9wdGlvbiAoYW5kIGFwcGx5IGNvbnNpc3RlbnQgaW5kZW50YXRpb24pLgogICBTaG91bGQgdGhlIG90aGVyIGNoYW5nZXMgc3VnZ2VzdGVkIGluIGJ1ZyAjMTI0NzE2NCBiZSBhcHBsaWVkLCB0b28/CgoyMDA1LTEyLTAxIDA3OjQ1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIERvbid0IGNyYXNoLWFuZC1idXJuIG9uIFNOTVAgZXhjZXB0aW9ucyAoc2VlIGJ1ZyAjMTI3ODgwOSkKCjIwMDUtMTEtMzAgMTk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS86IGluZXROZXRUb01lZGlhVGFibGUuYwosIGluZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxODo0NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgUmV3cml0dGVuIGZyb20gc2NyYXRjaCB0byB2ZXJpZnkgbm9BdXRoTm9Qcml2LCBhdXRoTm9Qcml2ICphbmQqIGF1dGhQcml2IFNOTVB2MyB0cmFwcy4gTGV0J3MgbmV2ZXIgYnJlYWsgdGhpcyBhZ2Fpbi4KCjIwMDUtMTEtMzAgMTg6NDQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZDoKCiAgIGNyZWF0ZSBub0F1dGhOb1ByaXYgdXNlcgoKMjAwNS0xMS0zMCAxODo0MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2U6CgogICBpbnRyb2R1Y2UgIHRvIHNwZWNpZnkgdGhlIGVuZ2luZSBJRCBmb3IgY3JlYXRlVXNlcgoKMjAwNS0xMS0zMCAxNzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuYywgaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTc6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBpbml0IHZhcgoKMjAwNS0xMS0zMCAxNjowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBmaXggYXV0b21hdGljIHVzZXIgY3JlYXRpb24gZm9yIHNlc3Npb25zIHRoYXQgaGF2ZSBwcm9iaW5nIG9mZiBvciBkZWxheWVkCgoyMDA1LTExLTMwIDE2OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2NvbnN0YW50cy5oLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL1JFQURNRToKCiAgIGFkZGVkIGEgUkVBRE1FIGZpbGUgdGhhdCBoYXMgYmVlbiBzaXR0aW5nIGluIG15IGRpcmVjdG9yeSB1bi1jaGVja2VkLWluCgoyMDA1LTExLTI5IDE4OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlZmVyIHRvIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FIHJhdGhlciB0aGFuICJ0aGUgdWNkLXNubXAgZnRwIHNpdGUiIGZvciBpcGZ3Y2hhaW5zCgoyMDA1LTExLTI5IDE3OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfY29uc3RhbnRzLmgsIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMjkgMTQ6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIHR5cG8gaW4gbG9nIG1zZwoKMjAwNS0xMS0yNSAwOToxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE2MHNubXBuZXRzdGF0LCBUMjAwc25tcHYyY3dhbGthbGw6CgogICB1c2UgU0tJUAoKMjAwNS0xMS0yNSAwNToxMiAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgU2tpcCB0ZXN0cyB0aGF0IGFyZSBrbm93biB0byBmYWlsIHdoZW4gbm90IHJ1biBhcyByb290LgogICAoTWF5IG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gb3RoZXIgTy9TJ3MgYXMgd2VsbCkuCgoyMDA1LTExLTI0IDE4OjI0ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IHR5cG8gYW5kIGxheW91dAoKMjAwNS0xMS0yNCAxODoxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgICBUMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgVDA0OXNubXB2M2luZm9ybXByaXY6CgogICBmaXggdGVzdHMgdG8gd29yayB3aXRoIC0tZGlzYWJsZS1wcml2YWN5CgoyMDA1LTExLTIzIDE5OjU2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0xMS0yMyAxOToyMiAgdGFuZGVycwoKICAgKiBORVdTLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgbWFrZSAiY29uZmlndXJlIC0tZGlzYWJsZS1hZ2VudCIgZmluYWxseSB3b3JrIChmaXhlcyBidWdzIDEwMDY0MTUsIDkwODU3MSkKCjIwMDUtMTEtMjMgMDg6MTQgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBXaW4zMjogTVNWQyBidWlsZCBmaXggZm9yIG5ldHNubXBtaWJzLmRzcAoKMjAwNS0xMS0yMyAwNDoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1vdmUgb3BlbmluZyBicmFjZSBvdXQgb2YgYWx0ZXJuYXRlICNpZmRlZiBjbGF1c2VzCiAgIChjb25mdXNlcyBicmFjZS1tYXRjaGluZyBlZGl0b3JzISkKCjIwMDUtMTEtMjIgMTY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICB1cGRhdGUgZGVwcyBmb3IgZGVsZXRlZCBmaWxlCgoyMDA1LTExLTIyIDA1OjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBCZWVmIHVwIHRoZSAicmVsb2NhdGFibGUgZXhlYyIgd2FybmluZyBtZXNzYWdlLgoKMjAwNS0xMS0yMiAwNTozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCBTY2hlZHVsZSBNSUIgY29uZmlndXJhdGlvbi4KCjIwMDUtMTEtMjEgMjA6NDAgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgd2luMzIvYWdlbnRfbW9kdWxlX2luaXRzLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzI6ICBNU1ZDIGFuZCBDeWd3aW4gY29tcGlsZSBmaXhlcwoKMjAwNS0xMS0yMSAxOToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlczsgcmVpbXBsZW1lbnRlZCBpbiBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTExLTIxIDA2OjI3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgRGlzTWFuIEV2ZW50LU1JQiBkb2N1bWVudGF0aW9uIHRvIG1hdGNoIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uCgoyMDA1LTExLTIxIDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFByb3Blcmx5IGRldGVjdCBhbGwgdGhyZWUgc3R5bGVzIG9mIG1vbml0b3IgZXhwcmVzc2lvbiBhdXRvbWF0aWNhbGx5LgogICAoVGhpcyBtYWtlcyB0aGUgJy10JyBvcHRpb24gcmVkdW5kYW50LCB0aG91Z2ggaXQncyBzdGlsbCBhY2NlcHRlZCkKCjIwMDUtMTEtMjAgMTg6NTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hFQ0tBTkRESUUoKSBzaG91bGQgRVhQRUNUUkVTVUxUIDAKCjIwMDUtMTEtMjAgMTg6MzAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBtYWtlIHRoZSB0ZXN0IGFsc28gRkFJTCBvbiAiV3JvbmcgVHlwZSAoc2hvdWxkIGJlIC4uLikiCgoyMDA1LTExLTIwIDE4OjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBDSEVDS0FORERJRSgpIHRvIEZBSUwgaWYgYSBwYXR0ZXJuICppcyogZm91bmQKCjIwMDUtMTEtMjAgMTg6MDAgIHRhbmRlcnMKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICB1cGRhdGUgTEFTVC1VUERBVEVEIGZpZWxkIHRvIHJlZmxlY3QgcmVjZW50IGNoYW5nZXMKCjIwMDUtMTEtMjAgMTc6NDggIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBjbGFyaWZ5IHRoYXQgImhvc3QiIGlzIG9ubHkgZW5hYmxlZCBieSBkZWZhdWx0IG9uIHRoZSBtYWpvciBzdXBwb3J0ZWQgcGxhdGZvcm1zCgoyMDA1LTExLTIwIDE3OjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGRlc2NyaXB0aW9uIGZvciBlbmdpbmVJRAoKMjAwNS0xMS0yMCAxNzoyNyAgdGFuZGVycwoKICAgKiBORVdTLCBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbm9QZXJzaXN0ZW50TG9hZCBhbmQgbm9QZXJzaXN0ZW50U2F2ZQoKMjAwNS0xMS0yMCAxNjozMCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2UgLXEgb24gZmluYWwgY3ZzdXBkYXRlOyBhZGQgc3BhY2luZwoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE3ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE2OjA3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTIwIDE2OjA1ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMjAgMTU6NTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSByZW1vdmUgaG93dG8gb24gbGlidG9vbCB2ZXJzaW9uaW5nIG1hdGNoIHJlbGVhc2UgbnVtYmVycwogICAtIHVwZGF0ZSBzdWdnZXN0ZWQgY29uZmlndXJlIHRlc3Qgb3B0aW9ucwoKMjAwNS0xMS0yMCAxNTozOCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2UgZW5hYmxlLWlwdjYgaW5zdGVhZCBvZiBzcGVjaWZ5aW5nIHRyYW5zcG9ydHMKCjIwMDUtMTEtMjAgMTU6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjM1ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCBtaXNzaW5nIDsKCjIwMDUtMTEtMjAgMTQ6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBidWcgMTM0NzcwOTogc25tcGQgZG9lc250IGhhbmRsZSBsYXJnZSBsb2cgZmlsZXMgKD49IDJHQikgZ3JhY2VmdWxseQogICAgIC0gcGFydGlhbCBmaXg6IG9wZW4vdHJ1bmNhdGUgbG9nIGZpbGVzIGF0IHN0YXJ0dXAKCjIwMDUtMTEtMjAgMTQ6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldyBkcyBib29sZWFuIGZvciBhcHBlbmQgbG9nZmlsZXMsIGluc3RlYWQgb2YgbG9jYWwgdmFyCgoyMDA1LTExLTIwIDE0OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIG5ldyBsaWIgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzCgoyMDA1LTExLTE4IDE2OjU3ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc3VwcG9ydCBmb3IgY291bnRlcnMgaW4gcmVhZF9jb25maWdfcmVhZF9tZW1vcnkKCjIwMDUtMTEtMTggMTQ6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhbGxvdyBzZXNzaW9uIHBhcmFtcyB0byBvdmVycmlkZSBnbG9iYWwgZGVmYXVsdHMKCjIwMDUtMTEtMTggMTA6NTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aXNlIHRoZSBpbnRyb2R1Y3Rpb24gdG8gc25tcGQgY29uZmlnIGZpbGVzLgoKMjAwNS0xMS0xOCAxMDozNiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgRGlzTWFuIEV2ZW50IE1JQiBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNyAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBhY2NvdW50IGZvciBwb3NzaWJsZSBOVUxMIHZhbHVlIGZyb20gZnVuY3Rpb24KCjIwMDUtMTEtMTcgMTc6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgaW5jbHVkZSBDT05GSUdVUkVfT1BUSU9OUyBpbiByZXN1bHRzIGVtYWlsCgoyMDA1LTExLTE3IDE3OjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGlmZGVmIF9fYXBsaGEsIGlmZGVmIG91dCBvcHRpbWl6YXRpb24gY2F1c2luZyBhbHBoYS1saW51eDEgdG8gc2VnZmF1bHQKCjIwMDUtMTEtMTcgMTQ6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG1lbW9yeS92bXN0YXRzIGZvciBmcmVlYnNkNgoKMjAwNS0xMS0xNyAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGV4cGxpY3RseSBjb25maWcgaXB2NiB0cmFuc3BvcnRzOyBlbmFibGUtaXB2NiBpbnN0ZWFkCgoyMDA1LTExLTE3IDEyOjQxICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIC0gdXNlIHNlbmRtYWlsIG9uIGZyZWVic2QgdG9vCiAgIC0gYWRkIEVycm9ycy1UbyBoZWFkZXIgdG8gbWFpbAogICAtIGVjaG8gdG8vc3ViamVjdCB0byBzdGRvdXQKCjIwMDUtMTEtMTcgMTE6NDUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdHJhcCBkZXN0aW5hdGlvbiBoYW5kbGluZy4KCjIwMDUtMTEtMTcgMTE6MTYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTWlub3Igd29yZHNtaXRoaW5nIGFuZCBmb3JtYXR0aW5nIGNvcnJlY3Rpb25zLgoKMjAwNS0xMS0xNyAxMToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGV4Y2x1ZGUgaW50ZXJmYWNlIGdldC9uZXh0IHByb3RvdHlwZXMgaWYgdXNpbmcgbWZkIHJld3JpdGVzCgoyMDA1LTExLTE3IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZXhwbGljaXQgY2FzdCB0byBtYXRjaCBwcm90b3R5cGUKCjIwMDUtMTEtMTcgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGU7IGFkZCBDKysgZXh0ZXJuIHdyYXBwZXJzCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIHF1aXRlIGNvbXBpbGVyOiBhZGQgaGVhZGVycyBmb3IgbWlzc2luZyBwcm90b3R5cGVzCgoyMDA1LTExLTE3IDEwOjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIHNwZWNpYWwgY2FzZSBmb3Igb3BlbmJzZCBtYWlsCgoyMDA1LTExLTE3IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICBDbGFyaWZ5IHRoYXQgdGhlICJldmVudC1taWIuaCIgd2FybmluZyAqaXMqIGEgd2FybmluZyByYXRoZXIgdGhhbgogICBzaW1wbHkgYSBub3RlICh3aGljaCB3b3VsZCBiZWxvbmcgaW4gdGhlIGRvY3VtZW50YXRpb24pCgoyMDA1LTExLTE2IDE2OjM2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMTYgMTY6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXRic2Qgd2FudHMgbmV0aW5ldC9pcDYuaCBiZWZvcmUgbmV0aW5ldDYvaW42X3BjYi5oCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMTYgMTY6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkaXNhbGxvdyBpcHY2IHRyYW5zcG9ydHMgaWYgaXB2NiBub3QgZW5hYmxlZAoKMjAwNS0xMS0xNiAxNTozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk6IGV4cGxpY2l0IGFyZ3VtZW50IGNhc3QKCjIwMDUtMTEtMTYgMTU6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgQysrIGNsZWFudXA6IGRvbid0IHVzZSBuZXcgYXMgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxNToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0xMS0xNiAxNToxOCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAo6CgogICBtb3ZlIGluaXRpYWxpemVfdGFibGVfaWZYVGFibGUgcHJvdG90eXBlIHRvIGhlYWRlcgoKMjAwNS0xMS0xNiAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgcHJvdG90eXBlcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaW50ZXJmYWNlIGZ1bmN0aW9ucwoKMjAwNS0xMS0xNiAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIEMrKyBleHRlcm4gIkMiIHdyYXBwZXJzCgoyMDA1LTExLTE2IDE1OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgaW5jbHVkZSBoZWFkZXIgdy9uZWVkZWQgcHJvdG90eXBlCgoyMDA1LTExLTE2IDE0OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIEMrKyBjbGVhbnVwCiAgICAgLSBkb24ndCB1c2UgX19QKCkgKG5vd2hlcmUgZWxzZSBpbiB0aGUgY29kZSB1c2VzIGl0KQogICAgIC0gZG9uJ3QgdXNlIG5ldyBhcyBhIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTI6MTcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIC8vIC0+IC8qICovCgoyMDA1LTExLTE2IDEwOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIGZvciBOSV9NQVhIT1NUIGlmIG1pc3NpbmcuCgoyMDA1LTExLTE2IDEwOjEwICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMKLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZToKCiAgIGJ1aWxkIGZpeGVzIGZvciBzb2xlIC0tZGlzYWJsZS1zbm1wdjEgKCp3aXRob3V0KiAtLWRpc2FibGUtc25tcHYyYykKCjIwMDUtMTEtMTYgMDg6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgYnVpbGQgZml4IGZvciAtLWRpc2FibGUtc25tcHYxLy0tZGlzYWJsZS1zbm1wdjJjCgoyMDA1LTExLTE2IDA2OjIwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBidWlsZCBmaXggZm9yIC0tZGlzYWJsZS1zbm1wdjEvLS1kaXNhYmxlLXNubXB2MmMKCjIwMDUtMTEtMTYgMDU6NTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQmV0dGVyIGxheW91dCBvZiAnaW5qZWN0X2hhbmRsZXInIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE2IDA1OjA5ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIGxvYWQgYXZlcmFnZSBhbmQgZmlsZSBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24uCiAgIChwbHVzIGFzc29ydGVkIHRpZHlpbmcgdXApLgoKMjAwNS0xMS0xNiAwNDo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgZGlzayBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIHByb2Nlc3MgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBIb3N0IFJlc291cmNlcyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBzeXN0ZW0gZ3JvdXAgY29uZmlndXJhdGlvbi4KCjIwMDUtMTEtMTYgMDQ6NTUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ29uc29saWRhdGUgdGhlICJzeXN0ZW0gaW5mb3JtYXRpb24iLCBhbmQgImFnZW50IGJlaGF2aW91ciIgY29uZmlndXJhdGlvbgogICBkaXJlY3RpdmVzIHRvIGJlIGRvY3VtZW50ZWQgdG9nZXRoZXIgKGFzIHR3byBkaXN0aW5jdCBzZWN0aW9ucykuCgoyMDA1LTExLTE1IDIxOjE0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1bmNvbW1lbnQgb3V0IGNsZWFudXAgY29kZQoKMjAwNS0xMS0xNSAyMToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgZXh0cmEgZXJyb3IgY2hlY2tpbmcgZm9yIGZyZWVic2QKCjIwMDUtMTEtMTUgMjE6MDggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICByZW1vdmUgY3BwICN3YXJuaW5nIGxpbmVzCgoyMDA1LTExLTE1IDIxOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIC0gdXNlIGZpbmQgZm91bmQgYnkgY29uZmlndXJlCiAgIC0gdHdlYWsgY29tbWVudGNoZWNrIHJlZ2V4cCB0byBtaXNzIHJlZ2V4cCBpbiBwZXJsIGhlYWRlcgoKMjAwNS0xMS0xNSAyMDozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICAtIHNvbGFyaXMgZml4ZXMKICAgICAtIGRvbid0IHNldCBzb3J0ZWQgZmxhZyBmb3Igc29sYXJpcyAoZGF0YSBvbiBzZiBjZiA1LjkgaXMgbm90IHNvcnRlZCkKICAgICAtIHJldmVyc2UgY29uZGl0aW9uIG9uIGlkbGUgdGVzdCBzbyBzb21lIGRhdGEgZ2V0cyByZXR1cm5lZAoKMjAwNS0xMS0xNSAxOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwo6CgogICB1c2Ugc3RhdGUgZnJvbSBhcnAgZW50cnkgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUKCjIwMDUtMTEtMTUgMTk6MjQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkZWZhdWx0IHJvdyBzdGF0dXMgdG8gYWN0aXZlCgoyMDA1LTExLTE1IDE5OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kOgoKICAgaW50cm9kdWNlIHNubXBkIHRlc3QgZm9yIGV4dGVuZAoKMjAwNS0xMS0xNSAxOToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIC0gZG9uJ3QgaWdub3JlIGluY29tcGxldGUgZW50cmllcwogICAtIHNldCBzdGF0ZSB0byByZWFjaGFibGUgaWYgISBpbmNvbXBsZXRlCgoyMDA1LTExLTE1IDE5OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTUgMTg6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgc29tZSBvcHRpbWl6YXRpb24KCjIwMDUtMTEtMTUgMTg6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZG9jdW1lbnQgZGVmYXVsdCBwaW5nIGludGVydmFsCgoyMDA1LTExLTE1IDE4OjEyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlub3IgdHdlYWtzCgoyMDA1LTExLTE1IDE3OjQ2ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtaW5vciB0d2Vha3MKCjIwMDUtMTEtMTUgMTE6MzcgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgcGluZywgcG9uZzsgcmVzdG9yZSBuZXRzbm1wX3J1bm5pbmcgY2hhbmdlcwoKMjAwNS0xMS0xNSAxMDo1MSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBBZ2VudFggY29uZmlnLgoKMjAwNS0xMS0xNSAwOTozNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBkbG1vZCwgcHJveHkgYW5kIFNNVVggZGVzY3JpcHRpb25zCiAgIChwbHVzIGFzc29ydGVkIG1pbm9yIHR3ZWFrcykKCjIwMDUtMTEtMTUgMDU6MjggIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBkaXNjdXNzaW9uIG9mIG1pYjJjIGNvbmZpZ3MuCgoyMDA1LTExLTE0IDIwOjE5ICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgV2luMzI6ICBzbm1wbmV0c3RhdCBJUHY2IGJ1aWxkIGZpeGVzCgoyMDA1LTExLTE0IDE5OjExICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIFdlIGZpbmFsbHkgaGF2ZSBzbm1wZCBlbWJlZGRlZCBwZXJsIHRlc3RpbmcuIEZlZWwgZnJlZSB0byByZXZpZXcvc2NyZWFtL2JhY2sgb3V0IC0tIG9yIGFwcGxhdWQuCgoyMDA1LTExLTE0IDE4OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICAtIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMKICAgLSBhZGQgYWRkaXRpb25hbCBlcnJvciBoYW5kbGluZy9sb2dnaW5nCiAgIC0gbW9yZSBjb21tZW50cwogICAtIGRveHlnZW4gZG9jcwoKMjAwNS0xMS0xNCAxODowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBTVEREb21haW4uYywgc25tcGxvY2Fsc20uYzoKCiAgIHJlbW92ZSBDKysgcmVsYXRlZCBjb21tZW50cwoKMjAwNS0xMS0xNCAxNzo1OSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGRvbid0IG1hbnVhbCB1cGRhdGUgdG8gU0Ygc2VydmVycwoKMjAwNS0xMS0xNCAxNzo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gdW5kZWZpbmUgIE5FVFNOTVBfUEFSQU5PSURfTEVWRUxfSElHSCwgZG9jdW1lbnQgd2hhdCBpdCBkb2VzCiAgIC0gdXBkYXRlIGxvY2sgYXNzZXJ0L3dhcm4gY2FzZXMgZm9yIGxvY2sgcGVyIGNhbGxiYWNrIGV4cGVjdGF0aW9ucwoKMjAwNS0xMS0xNCAxNzoyOCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmM6CgogICByZW1vdmUgY29tbWVudGVkIG91dCBpbmNsdWRlcwoKMjAwNS0xMS0xNCAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTExLTE0IDE3OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgY29tbWVudHMKCjIwMDUtMTEtMTQgMTM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGJ1ZyAxMzUyNTU0OiBTZWcgZmF1bHQgaW4gbmV0c25tcF9jb250YWluZXJfdGFibGVfcm93X2luc2VydAoKMjAwNS0xMS0xNCAxMzoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG1vdmUgcnVubmluZyBmbGFnIGJhY2sgaW50byBhcHBsaWNhdGlvbnMKICAgLSByZXN0b3JlIGluZmluaXRlIGxvb3AgaW4gZ2V0LW5leHQgbG9vcCBoYW5kbGluZwoKMjAwNS0xMS0xNCAxMTozMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHNtdXhzb2NrZXQgYW5kIGVuaGFuY2UgQWdlbnRYKgoKMjAwNS0xMS0xNCAxMDo1NCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIGZpeGVzIGFmdGVyIHJldmlld2luZyBEYXZlJ3MgY2hhbmdlcwoKMjAwNS0xMS0xNCAxMDo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBlbWJlZGRlZCBwZXJsIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE0IDA2OjM1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcywgYW5kIHNwZWNpZnkgYSBtb3JlIGRlZmluaXRlIFNFVAogICBwcm90b2NvbCBmb3IgJ3Bhc3NfcGVyc2lzdCcgLSBjb21wYXRpYmxlIHdpdGggdGhlCiAgIGN1cnJlbnQgYmVoYXZpb3VyLCBidXQgb3BlbmluZyB0aGUgZG9vciBmb3IgbW9yZQogICBmbGV4aWJsZSBoYW5kbGluZyBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMS0xNCAwNjoyOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBwYXNzLXRocm91Z2ggc3VwcG9ydC4KCjIwMDUtMTEtMTQgMDY6MjIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgImV4ZWMiLyJleHRlbmQiIGRvY3VtZW50aW9uCgoyMDA1LTExLTE0IDA1OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIGFsbCB0aGUgZXh0ZW5zaW9uIG1lY2hhbmlzbXMgdG8gYmUgZG9jdW1lbnRlZCB0b2dldGhlci4KCjIwMDUtMTEtMTQgMDU6NTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IHRoZSBBY2Nlc3MgQ29udHJvbCBzZWN0aW9uLCBpbmNsdWRpbmcgc2VwYXJhdGlvbiBpbnRvCiAgIGRpc3RpbmN0IHN1YnNlY3Rpb25zLgoKMjAwNS0xMS0xNCAwNTo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBTaW1wbGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGF1dGgqIGRpcmVjdGl2ZXMuCgoyMDA1LTExLTE0IDA0OjQxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xNCAwMTo1MiAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjaGVjayBmb3IgZ3BnIGtleSBpbnN0ZWFkIG9mIHVzZXJpZAoKMjAwNS0xMS0xNCAwMTo0NyAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgb3B0aW9uIHRvIHJlcGVhdCBmYWlsZWQgc3RlcHMKCjIwMDUtMTEtMTQgMDE6NDQgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgYWdlbnR4IHN1YmFnZW50IGNvbm5lY3QgYWZ0ZXIgY29uZmlncyBmaXgKCjIwMDUtMTEtMTQgMDE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTE0IDAxOjI1ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMToxMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDA6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHVubmVlZGVkIHJlcG9zaXRvcnkgc3BlYwoKMjAwNS0xMS0xMyAyMjoxMCAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIC1XaW4zMjogQWRkIG1pc3NpbmcgbWliMmMtZGF0YSB0byBpbnN0YWxsZXIKICAgLVdpbjMyOiBVc2Ugd2lsZGNhcmRzIGluIGluc3RhbGxlciBmb3IgaW5zdGFsbGluZyBmaWxlcyB0byBoZWxwIHByZXZlbnQKICAgIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTExLTEzIDIyOjAwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gbmV3IG5ldHNubXBfcnVubmluZyBnbG9iYWwgaW4gYWdlbnQgbGliCiAgICAgLSB1c2VkIGluIHBsYWNlIG9mIHdoaWxlKDEpIGluIGdldCBuZXh0IHByb2Nlc3NpbmcgbG9vcAogICAgIC0gZGFlbW9ucyB3L3NpZ2hhbmRsZXIgdXBkYXRlZCB0byBjbGVhciBmbGFnIG9uIHNpZ3Rlcm0KCjIwMDUtMTEtMTEgMjE6NTUgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMjogIEZpeCBOSV9NQVhIT1NUIGRlZmluZS4KCjIwMDUtMTEtMTEgMjE6MTEgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFdpbjMyOiBXb3JrIGFyb3VuZCBmb3IgYnVnIDEyNzg3NDM6ICBJZiB0cnlpbmcgdG8gcmV2ZXJzZSBsb29rdXAKICAgMTI3LjAuMC4xLCByZXR1cm4gJ2xvY2FsaG9zdCcgdG8gcHJldmVudCBXaW5kb3dzIGZyb20gcmV0dXJuaW5nIHRoZQogICBsb2NhbCBjb21wdXRlciBuYW1lIGJlY2F1c2UgaXQgaWdub3JlcyB0aGUgaG9zdHMgZmlsZS4KCjIwMDUtMTEtMTAgMTk6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTAgMTk6MTggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggc3ludGF4IHR5cG8KCjIwMDUtMTEtMTAgMTg6NTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBjbGFyaWZ5IHRoYXQgdGhpcyB0ZXN0IHJlcXVpcmVzIGEgd29ya2luZyB1ZHBUYWJsZQoKMjAwNS0xMS0xMCAxODoyMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg6CgogICBidWlsZCBmaXggZm9yIE9wZW5CU0QvU1BBUkMgMy43CgoyMDA1LTExLTEwIDE0OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzIHRvIHN1YmFnZW50X2luaXQKICAgICAtIGRvbid0IGNvbm5lY3QgdG8gbWFzdGVyIGluIHN1YmFnZW50X2luaXQsIGluc3RlYWQgcmVnaXN0ZXIgUE9TVF9DT05GSUcKICAgICAgIGNhbGxiYWNrIHRvIGRvIHNvCgoyMDA1LTExLTEwIDE0OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaW5lciBncmFpbmVkIGxvY2tpbmcgb2YgY2FsbGJhY2tzIChwZXIgc3ViaWQpLCBhbGxvd2luZyBhIGNhbGxiYWNrIHRvCiAgICAgbWFuaXB1bGF0ZSAocmVnL3VucmVnKSBvdGhlciBjYWxsYmFja3MKICAgLSBtb3JlIGRlYnVnZ2luZwogICAtIGFkZCBzdGF0aWMgZmxhZyBmb3IgaW5pdAogICAgIC0gbWVtc2V0IGFuZCBpbml0IHZhcmlhYmxlcyBpbiBpbml0X2NhbGxiYWNrIGlmIG5vdCBkb25lIHlldAogICAgIC0gY2FsbCBpbml0X2NhbGxiYWNrLCBpZiBuZWVkZWQsIGZyb20gYWxsIGZ1bmN0aW9ucwoKMjAwNS0xMS0xMCAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAobm8gc3ViYWdlbnQgaW5pdCBpbiBpbml0X21hc3Rlcl9hZ2VudCgpKQoKMjAwNS0xMS0xMCAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6CiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAoY2FsbCBzdWJhZ2VudCBpbiBpbiBpbml0X2FnZW50KQoKMjAwNS0xMS0xMCAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQtbWliLmgsCiAgICAgb2xkLWV2ZW50LW1pYi5oOgoKICAgU3BsaXQgb3JpZ2luYWwgYW5kIG5ldyBFdmVudCBNSUIgaW1wbGVtZW50YXRpb25zIGludG8gZGlzdGluY3QKICAgIm1vZHVsZSBncm91cCIgaGVhZGVycywgYW5kIHVzZSB0aGUgb3JpZ2luYWwgbmFtZSB0byB3YXJuIG9mIHRoZSBjaGFuZ2VzLgoKMjAwNS0xMS0xMCAwNToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgc3VwcG9ydCBmb3IgTUlCIG1vZHVsZXMgdG8gZ2VuZXJhdGUgY29uZmlndXJlIHdhcm5pbmdzIG9yIGVycm9ycwoKMjAwNS0xMS0xMCAwNDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgU2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncwoKMjAwNS0xMS0xMCAwNDo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRG9uJ3QgY2hva2Ugb24gbWlzc2luZyBpbnRlcmZhY2VzIChhbmQgc2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncykKCjIwMDUtMTEtMTAgMDQ6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICBTdXBwcmVzcyBoZWFkZXJzIGZvciBlbXB0eSBUQ1AgZGlzcGxheXMgKGFuZCBmaXggYSBtaW5vciB0eXBvKQoKMjAwNS0xMS0wOSAyMTozMyAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICAtV2luMzI6IEZvcmNlIEV2ZW50IExvZywgU0NNLCByZWdpc3RyeSBldGMgdG8gdXNlIGxvbmcKICAgIG5hbWUgZm9yIHNlcnZpY2UgKE5ldC1TTk1QIEFnZW50IGluc3RlYWQgb2Ygc25tcGQpLiAgTmVlZGVkCiAgICBiZWNhdXNlIG9mIG5ldyAtbiBvcHRpb24gaW4gc25tcGQuICBOb3RlOiAgVGhlIHNubXBkIC1uIG9wdGlvbgogICAgZG9lcyBub3QgY2hhbmdlIHRoZSBXaW5kb3dzIHNlcnZpY2UgbmFtZSBldGMsIG9ubHkgdGhlIGNvbmZpZwogICAgZmlsZSBsb2FkZWQuCgoyMDA1LTExLTA5IDE5OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAibWFrZSB0ZXN0LW1pYnMiIHN0aWxsIHdvbid0IHdvcmsgaWYgYnVpbGQgZGlyICE9IHNvdXJjZSBkaXIsIGJ1dCBpdCdzIGNsb3NlciBub3cKCjIwMDUtMTEtMDkgMTg6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmgsIHN1YmFnZW50Lmg6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBwcm90b3R5cGVzIGZvciByZW5hbWVkIGZ1bmN0aW9ucwoKMjAwNS0xMS0wOSAxODoyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGRlYnVnIG1lc3NhZ2Ugc2hvdWxkIG1hdGNoIGNvZGUKCjIwMDUtMTEtMDkgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZXhlY3V0YWJsZXMsIG1ha2VmaWxlcywgdHh0IGZpbGVzLCBzdWJhZ2VudCBmaWxlcwoKMjAwNS0xMS0wOSAxNzozMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZQoKMjAwNS0xMS0wOSAxNzoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgc3BlY2lmaWMgZXJyb3IgcmVnZXhwCgoyMDA1LTExLTA5IDE3OjI2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFnZW50eCBpbml0IHJld29yazogdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZXMKCjIwMDUtMTEtMDkgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBpZmRlZiBlbnRpcmUgbW9kdWxlIGJhc2VkIG9uIHVzaW5nIGFnZW50eCBzdWJhZ2VudCBtb2R1bGUKICAgICAtIHJlbmFtZSBpbml0IGZ1Y250aW9uIHNvIHdlIGNhbiBjb250cm9sIHdoZW4gaXQgaXMgY2FsbGVkCiAgICAgLSByZW1vdmUgc3ViYWdlbnRfcHJlX2luaXQKICAgICAgIC0gY29uZmlnIHN0dWZmIG1vdmVkIGludG8gYWdlbnR4X2NvbmZpZy5jCiAgICAgICAtIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBtb3ZlZCB0byBzdWJhZ2VudF9pbml0LCBub3cgdGhhdCBpdCdzIGNhbGxlZAogICAgICAgICBhZnRlciBjb25maWdzIGhhdmUgYmVlbiByZWFkCgoyMDA1LTExLTA5IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIC0gY29uc29saWRhdGUgbWFzdGVyIGFuZCBzdWJhZ2VudCBjb25maWdzIGluIHRoaXMgZmlsZQogICAgIC0gc2xpZ2h0IGNvZGUgcmUtb3JnIChubyBjaGFuZ2VzOyBtb3ZlIGFnZW50eCBzb2NrZXQgcGFyc2luZyB0byB0b3ApCiAgICAgLSByZWdpc3RlciBwaW5nIGludGVydmFsIGNvbmZpZyBhbmQgc2V0IGRlZmF1bHQKICAgICAtIHJlbmFtZSBpbml0IGZ1bmN0aW9uIHNvIGNvbmZpZ3VyZSB3b24ndCBhZGQgaXQgdG8gbW9kdWxlcyBpbml0cywgc28gd2UKICAgICAgIGNhbiBjYWxsIGl0IHdoZW4gd2Ugd2FudCBpdCB0byBiZSBjYWxsZWQKCjIwMDUtMTEtMDkgMTc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yazogaW5pdCBzdWJhZ2VudCBpbiBpbml0X21hc3Rlcl9hZ2VudAogICAtIGFzc2VydCBpZiByb2xlIGlzbid0IG1hc3RlciBvciBzdWItYWdlbnQKCjIwMDUtMTEtMDkgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBkb24ndCBpbml0IHN1YmFnZW50IGhlcmUgKGNvbmZpZ3MgaGF2ZW4ndCBiZWVuIHJlYWQgeWV0KQogICAgIC0gb25seSBpbml0IG1hc3Rlci9zdWIgY29uZmlncwoKMjAwNS0xMS0wOSAxNzoxMiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlIGZvciBuZXcgdGFibGVzCgoyMDA1LTExLTA4IDA3OjIxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBJbXBsZW1lbnQgT3Blbi9OZXRCU0Qtc3R5bGUgb2N0ZXQgaW50ZXJmYWNlIGRpc3BsYXkuCgoyMDA1LTExLTA4IDA3OjE3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBSaWdodC1qdXN0aWZ5IGhlYWRpbmdzIGZvciBjb3VudGVyIHZhbHVlcy4KICAgKGxvb2tzIG5lYXRlciB3aGVuIGluZGl2aWR1YWwgdmFsdWVzIGJlY29tZSByZWxhdGl2ZWx5IHdpZGUpCgoyMDA1LTExLTA4IDA3OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBGaXggcHJvYmxlbXMgd2Fsa2luZyB0aGUgSVB2NiBjb25uZWN0aW9uIHRhYmxlcy4KCjIwMDUtMTEtMDggMDY6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgT25seSBzY2hlZHVsZSBhdXRvbWF0aWMgbG9hZGluZyBvbmNlIGZvciBhbnkgZ2l2ZW4gY2FjaGUuCgoyMDA1LTExLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgQ2hhbmdlTG9nIG5vdGUKCjIwMDUtMTEtMDcgMjE6NDUgIGFsZXhfYgoKICAgKiB3aW4zMi86IG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBidWlsZCBmaXhlcy4KCjIwMDUtMTEtMDcgMTk6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsOgoKICAgaW50cm9kdWNlIGVtYmVkZGVkIHBlcmwgdGVzdCBmb3Igc25tcHRyYXBkICh0b28gZmFuY3kgdG8gcmVzaXN0KQoKMjAwNS0xMS0wNyAxOTo0MiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYnVpbGQgZml4OiBmc3MtPmZmcwoKMjAwNS0xMS0wNyAxODo1NCAgdGFuZGVycwoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICBmaXggdHlwbwoKMjAwNS0xMS0wNyAxODozNCAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmaXggdHlwb3MKCjIwMDUtMTEtMDcgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZHJvcCBkZWZhdWx0IHRpbWVvdXQgZG93biB0byBJTlRfTUFYLCBhbmQgZG9jdW1lbnQgd2h5CgoyMDA1LTExLTA3IDA5OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogTWFrZWZpbGUuaW4sIGZmcy5jLCBpZi5jLAogICAgIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgVHdlYWtzIHRvIHN1cHBvcnQgYnVpbGRpbmcgdW5kZXIgV2luZG93cwogICAgIChpbmNsdWRpbmcgcmVuYW1lZCAnZmZzKCknIHJvdXRpbmUsIHRha2VuIGZyb20gT3BlbkJTRCBzb3VyY2UgdHJlZSkKCjIwMDUtMTEtMDcgMDY6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERpc3BsYXkgaW50ZXJmYWNlIGFkZHJlc3NpbmcgaW5mb3JtYXRpb24uCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTA3IDAxOjQzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBhZ2VudCB2YXIgaW4gYmFzZSBsaWIgKGl0IHdhcyBsYXRlLCBvaz8pCgoyMDA1LTExLTA3IDAwOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYnJlYWsgb3V0IG9mIHdhaXRpbmcgbG9vcHMgaWYgISBydW5uaW5nCgoyMDA1LTExLTA2IDIyOjM0ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6ICBNb3ZlIHVpbnQxNl90IGRlZmluaXRpb24gdG8gc3RhdGljIHdpbjMyIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA1LTExLTA2IDIxOjI3ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTExLTA1IDE4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYnJlYWsgb3V0IG9mIGdldG5leHQgbG9vcCBpZiAhIHJ1bm5pbmcKCjIwMDUtMTEtMDUgMTc6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG9ubHkgdXNlICJ1bGltaXQgLXYiIGluIGJhc2gKCjIwMDUtMTEtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMS0wNSAxNzoyNCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGp1c3QgZXJyb3IgcmVnZXg6IGRvbid0IGZhaWwgb24gJmVudHJ5LT5zY2hlZExhc3RGYWlsZWQsICZmYWlsIGV0Yy4KCjIwMDUtMTEtMDUgMTc6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICAtIGFsbG93IG92ZXItcmlkZSBvZiBOU0JfKERJU1R8RVhUUkEpX01PRFVMRVMKICAgLSByZW1vdmUgdGVzdGhhbmRsZXIgZnJvbSBFWFRSQSBtb2R1bGVzIChoYW5ncyBzbm1wd2FsaykKICAgLSBzZXQgU05NUF9UTVBESVJfQkFTRSAoZnV0dXJlIHVzZSkKCjIwMDUtMTEtMDUgMTc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEknbGwgdGFrZSBteSBwb3J0IG51bWJlcnMgdW5zaWduZWQsIHBsZWFzZQoKMjAwNS0xMS0wNSAxNjo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L3RjcF92YXIuaCwgaWYgYXZhaWxhYmxlCgoyMDA1LTExLTA1IDE2OjM4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBkZWxpYmVyYXRlbHkgaWdub3JlIHVsaW1pdCBmYWlsdXJlcwoKMjAwNS0xMS0wNSAxNjoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgcmVtb3ZlIHN5cy9zb2NrZXR2YXIuaCwgc2luY2UgbWliSUlfY29tbW9uLmggYWxyZWFkeSBoYXMgaXQKCjIwMDUtMTEtMDUgMTQ6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIHN3aXRjaCBkaXNtYW4gbW9kdWxlIGxpc3QgYmFjayB0byBldmVudC1taWIgKHN0aWxsIHVzZXMgbmV3IGNvZGUpCiAgIC0gcmVtb3ZlIGV2ZW50IG1pYiBjb25mbGljdCBjaGVjayAoaGFuZGxlZCBieSBjb25maWdfZXhjbHVkZXMpCgoyMDA1LTExLTA1IDE0OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgLSBjZW50cmFsaXplIGV2ZW50IG1pYiByZXF1aXJlcyBpbiBvcmlnaW5hbCBldmVudC1taWIuaAogICAtIGRlZmF1bHQgdG8gcmUtd3JpdGVzCiAgIC0gd2hpY2hldmVyIGltcGxlbWVudGF0aW9uIGlzIHNlbGVjdGVkLCBjb25maWdfZXhjbHVkZSB0aGUgb3RoZXIKCjIwMDUtMTEtMDUgMTQ6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKCjIwMDUtMTEtMDUgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBmaXggb3B0UHJvYyBzaWduYXR1cmUKCjIwMDUtMTEtMDQgMTg6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgQnVpbGQgZml4OiBwcm90ZWN0ICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUKCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaDoKCiAgIGNoZWNrIGlmIHdlIGhhdmUgaGVhZGVyIGJlZm9yZSBpbmNsdWRpbmcgaXQKCjIwMDUtMTEtMDQgMTE6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaDoKCiAgIE1vdmUgdGhlIG9wdGlvbiBmbGFnIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbnRvIGEgY29kZSBmaWxlLgoKMjAwNS0xMS0wNCAxMTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgUG9lcnRhYmlsaXR5IG9mICdzaW42X2xlbicgZmllbGQgaXMgdW5jbGVhcgogICAoYW5kIGl0IGRvZXNuJ3QgaW1tZWRpYXRlbHkgc2VlbSB0byBiZSBuZWVkZWQpCgoyMDA1LTExLTA0IDExOjQ0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBhZGQgdm9pZCB0byBlbXB0eSBwcm90b3R5cGUgcGFyYW0gbGlzdAoKMjAwNS0xMS0wNCAwOTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBEZXRlY3QgKGFuZCByZWplY3QpIHVzZSBvZiBjb25mbGljdGluZyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb25zLgoKMjAwNS0xMS0wNCAwNzo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgbWFpbi5oLAogICAgIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydAoKMjAwNS0xMS0wNCAwNzozMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBQbHVnIG1pbm9yIG1lbW9yeSBsZWFrLgoKMjAwNS0xMS0wMyAyMDowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIHVwZGF0ZSAuaCBmcm9tIHRoZSB0cmFwZC5oIGZpbGVzCgoyMDA1LTExLTAzIDE5OjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBtYWtlIHBlcmwgb25seSByZXF1aXJlIHRoZSBleGVjdXRlIGJpdAoKMjAwNS0xMS0wMyAxMTo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkanVzdCB0byBuZXcgc25tcG5ldHN0YXQgb3B0aW9ucwoKMjAwNS0xMS0wMyAxMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgcm91dGUuYzoKCiAgIEVuc3VyZSBJUHY2IGNvZGUgaXMgb21pdHRlZCAodW50aWwgaXQgY2FuIGJlIHByb3Blcmx5IHBvcnRlZC90ZXN0ZWQpCgoyMDA1LTExLTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIE9taXQgcmVkdW5kZW50IGRlY2xhcmF0aW9ucy4KCjIwMDUtMTEtMDMgMTE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUmVtb3ZlIGNvZGUgZm9yIGRldGVybWluaW5nIFJQQyBzZXJ2aWNlIG5hbWVzCiAgIChub3QgcmVsZXZhbnQvYXBwcm9wcmlhdGUgZm9yIFNOTVAtYmFzZWQgcXVlcmllcykKCjIwMDUtMTEtMDMgMDg6NTggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBob3N0LXNwZWNpZmljIHJvdXRlcywgYW5kIGRpc3BsYXlpbmcgZ2F0ZXdheS9ob3N0IG5hbWVzLgoKMjAwNS0xMS0wMyAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgcm91dGUuYzoKCiAgIFJlLWltcGxlbWVudCByb3V0aW5nIHRhYmxlIGRpc3BsYXkgKGJhc2VkIG9uIE9wZW5CU0QgY29kZSkKCjIwMDUtMTEtMDMgMDc6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHJlcGVhdGVkIGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wMiAxNjoyMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIG1vdmUgaW5jbHVkZSBhZnRlciBuZXQtc25tcC1pbmNsdWRlcy5oOyBmaXggZ2xvYmFsIHNlc3Npb24gbmFtZQoKMjAwNS0xMS0wMiAxMjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaDoKCiAgIHJlbW92ZSBib2d1cyBleHBlcmltZW50YWwgY29uZmlnIG1hY3JvCgoyMDA1LTExLTAyIDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0xMS0wMiAwOToyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICAgIG1haW4uaCwgbmV0c3RhdC5oOgoKICAgUHJlbGltaW5hcnkgcmUtaW1wbGVtZW50YXRpb24sIGJhc2VkIG9uIHJlLWRpc3RyaWJ1dGFibGUgT3BlbkJTRCBjb2RlLgogICAoTm90ZSB0aGF0IGlmLmMgZHJhd3MgaGVhdmlseSBvbiB0aGUgRnJlZUJTRCBpbnRlcmZhY2UgZGlzcGxheSBiZWhhdmlvdXIsCiAgICB3aGljaCBpcyBzb21ld2hhdCBkaWZmZXJlbnQgdG8gdGhlIE5ldC9PcGVuQlNEIGFwcHJvYWNoKQoKMjAwNS0xMS0wMiAwMTo1NiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHdvcmQgdHdpZGRsZXMKCjIwMDUtMTEtMDIgMDE6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCBlbWJlZGRlZCBwZXJsIGFuZCBlbnN1cmUgY29tcGlsYXRpb24gZmFpbHVyZXMgaWYgdHVybmVkIG9uIGJ1dCBmdW5jdGlvbnMgbWlzc2luZwoKMjAwNS0xMS0wMSAxNToyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkb24ndCBhZGQgbm90aWZ5IG9iamVjdHMgdG8gdGhlIHNjYWxhciBsaXN0CgoyMDA1LTExLTAxIDA0OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIHVsaW1pdAoKMjAwNS0xMC0zMSAwNzo0MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBUcnU2NCBVbml4IDUuMSBidWlsZCBmaXg6IG1ha2Ugc3VyZSBVSU5UMzJfTUFYIGlzIGRlZmluZWQKCjIwMDUtMTAtMzEgMDY6MTEgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgYmFzaAoKMjAwNS0xMC0zMSAwNTozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIFNvbGFyaXMgYnVpbGQgZml4OiBpbmNsdWRlIGxpbWl0cy5oIGZvciBbVV1MT05HX01BWCBhbmQgTE9OR19NSU4KCjIwMDUtMTAtMzEgMDQ6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTAtMzEgMDQ6MjcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMC0zMSAwNDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwKICAgICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgcGF0Y2hlcyBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDA0OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZGFyd2luNy5jLAogICAgIG1lbW9yeV9kYXJ3aW43LmgsIHZtc3RhdF9kYXJ3aW43LmMsIHZtc3RhdF9kYXJ3aW43LmgKOgoKICAgbWVtb3J5L3Ztc3RhdHMgY29kZSBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDAzOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfcHJpdmF0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBmaXJzdCBwYXNzIGF0IHVkcEVuZHBvaW50VGFibGUKCjIwMDUtMTAtMzEgMDM6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBjcHUgYW5kIG1lbW9yeSBsaW1pdHMgdG8gcHJldmVudCBtYWpvciBkYW1hZ2UsIGVzcGVjaWFsbHkgc2luY2Ugd2Ugbm93IGhhdmUgYSBmdWxsIHNubXB3YWxrIHRlc3QKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBkYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMTAtMzAgMjM6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIGNhbGN1bGF0ZSBwcmVmaXggb2lkIGFzIG5lZWRlZAoKMjAwNS0xMC0zMCAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlbW92ZSBwcmVmaXggb2lkOyBhZGQgcHJlZml4IGxlbgoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICByZW1vdmUgcHJlZml4IG9pZAoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGdldCByaWQgb2YgcHJlZml4IG9pZAogICAtIGFkZCBwcmVmaXggbGVuCiAgIC0gYWRkIHByZWZpeCBmdW5jdGlvbiBwcm90b3R5cGVzCgoyMDA1LTEwLTMwIDIyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIC0gZG9uJ3QgdXNlIHRlc3QgY29ycmVjdCBmbGFnIGJpdAogICAtIGFkZCBwcmVmaXggdXRpbGl0eSByb3V0aW5lcwoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBhZGQgYWNjZXNzIHRvIGNvbnRhaW5lcgoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRvIG5vdCB1c2UgaW5pdCBmbGFnIHdpdGggbG9hZCByb3V0aW5lCgoyMDA1LTEwLTMwIDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW1vdmUgaW5ldDYgY29kZSwgc2luY2UgdGhlcmUgd2UgYXJlbid0IHVzaW5nIGlwdjYgaW9jdGxzCiAgIC0gYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBtb3ZlIGRldGFpbGVkIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBkb3duIGEgbGV2ZWwKCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgdXNlIG5ldyB1dGlsIGZ1bmMgdG8gY2FsY3VsYXRlIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGNoZWNrIGRpcnR5IGZsYWcgZm9yIHdyaXRhYmxlIHRhYmxlcwoKMjAwNS0xMC0zMCAyMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS86CiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUuYywgaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIHBhc3MgYXQgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXcgbmV0c25tcF9jdmFsdWUgdW5pb24KCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCBzbm1wbGliL3RleHRfdXRpbHMuYwo6CgogICBtb3JlIG5ldyB1dGlsaXR5IGZ1bmN0aW9ucwoKMjAwNS0xMC0zMCAxNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIG5ldyB1dGlsIGZpbGVzCgoyMDA1LTEwLTMwIDEzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3VwcG9ydCBmb3IgdW5zb3J0ZWQgZmxhZwoKMjAwNS0xMC0zMCAxMzo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICAtIGFkZCBjb21wYXJlIGZ1bmN0aW9uIHB0ciB0byBjb250YWluZXIgdHlwZSBzdHJ1Y3QKICAgLSBzZXQgY29tcGFyZSBmdW5jIGZyb20gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gcmVnaXN0ZXIgc29tZSBzdHJpbmcgY29tcGFyZSBiYXNlZCBiaW5hcnkgYXJyYXkgdHlwZXMKCjIwMDUtMTAtMzAgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIG5ldyBjb250YWluZXIgcmVnaXN0ZXIgd2l0aCBjb21wYXJlIHByb3RvdHlwZQogICAtIGFkZCB1bnNvcnRlZCBjb250YWluZXIgZmxhZwogICAtIGZpeCBjb250YWluZXIgb3B0aW9ucyBtYWNyb3MKICAgICAtIGFkZCByYyBwYXJhbQogICAgIC0gbWlzc2luZyB9CgoyMDA1LTEwLTI5IDE4OjEyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICB0ZXN0IGNoYW5nZSBhbmQgdXNhZ2Ugb2YgbG9jYWxpemVkIGtleXMKCjIwMDUtMTAtMjkgMTc6MjkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgaW50cm9kdWNlIHNubXB0cmFwZCB0cmFwaGFuZGxlIHRlc3QKCjIwMDUtMTAtMjkgMTU6NTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBJbnRyb2R1Y2UgZnVsbCBzbm1wd2FsayB0ZXN0LiBOZWVkcyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiBDUFUgY3ljbGVzLCBidXQgd2lsbCBjYXRjaCBpbXBvcnRhbnQgaXNzdWVzIGxpa2Ugd2hlbiBhIHNpbXBsZSB3YWxrIGNyYXNoZXMvaGFuZ3MgdGhlIGFnZW50LgoKMjAwNS0xMC0yOSAwODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZGF0YV9zZXQuaCwgZGVsYXllZF9pbnN0YW5jZS5oCiwgZXhhbXBsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZS5oLAogICAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwgbm90aWZpY2F0aW9uLmgKLCBzY2FsYXJfaW50LmgsIHVjZERlbW9QdWJsaWMuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBwcm90ZWN0IGFuZC9vciBjcGx1c3BsdXMgaWZkZWZzCgoyMDA1LTEwLTI5IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyIGZvciB3YXRjaGVkLmgKCjIwMDUtMTAtMjggMjM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICAtIHJlbW92ZSBleHRyYSA7CiAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIG1hY3JvCgoyMDA1LTEwLTI4IDIzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICByZWR1Y2Ugc2NvcGUgb2YgaW9jdGwgdmVyc2lvbiBjaGVja2luZyB0byB2NCBvbmx5IChubyBpcHY2IGlvY3RscykKCjIwMDUtMTAtMjggMjM6MjcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIGNvcnJlY3QgY3V0LW4tcGFzdGUgZXJyb3IgaW4gcHJvdG90eXBlCgoyMDA1LTEwLTI4IDIzOjI2ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB5YW5rIG1vcmUgY29kZSB3aGljaCBpcyB1bnVzZWQgZHVlIHRvIGNvbnRhaW5lciBzaGFyaW5nCgoyMDA1LTEwLTI4IDIzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAo6CgogICB1cGRhdGUgZm9yIGNoYW5nZWQgaWZlbnRyeSB2YXIgbmFtZXMKCjIwMDUtMTAtMjggMjM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCjoKCiAgIHNraXAgdmFycyB0aGF0IGRvIG5vdCBoYXZlIGlmZW50cnkgZmxhZyBzZXQKCjIwMDUtMTAtMjggMjM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIGFkZCBtaXNzaW5nIGZsYWdzIHBhcmFtIHRvIGFyY2ggY29udGFpbmVyIGxvYWQKICAgLSBzdXBwb3J0IGZvciBpcHYoNHw2KSBvbmx5IGxvYWQgZmxhZwogICAtIHRyeSB0byBsb2FkIGlwdjYgZXZlbiBpZiBpcHY0IGZhaWxzCgoyMDA1LTEwLTI4IDIzOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIHBhc3MgY29ycmVjdCBmbGFncyB0byBjb250YWluZXIgaW5pdCBkdXJpbmcgbG9hZAoKMjAwNS0xMC0yOCAyMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHR3ZWFrcyBhbmQgc3VwcG9ydCBmb3IgaXB2NkludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDIzOjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIG5ldyBsb2FkIGZsYWdzCgoyMDA1LTEwLTI4IDIzOjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpbnNlcnQgZmlsdGVyaW5nCgoyMDA1LTEwLTI4IDIzOjEzICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIHJlZHVjZSBkZXBlbmRlbmN5IGxpc3Qgb24gc25tcF92YXJzLmxvIHRvIGFnZW50X21vZHVsZV9saXN0X2gKICAgLSBhZGQgbWliX21vZHVsZV9saXN0X2ggYXMgZGVwIGZvciBtaWJfbW9kdWxlcy5sbwogICAtIGRvY3VtZW50IHdoeSByZWFkX2NvbmYubG8gZGVwcyBhcmUgaGVyZSBhbmQgbm90IGluIHNubXBsaWIvTWFrZWZpbGUuaW4KCjIwMDUtMTAtMjggMjM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLzogaXB2NkludGVyZmFjZVRhYmxlLmMKLCBpcHY2SW50ZXJmYWNlVGFibGUuaCwgaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oCiwgaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGltcGxlbWVudCBpcHY2SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMjM6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgc2h1dGRvd24gcHJvdG90eXBlCgoyMDA1LTEwLTI4IDE4OjM4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIHBvcnRhYmxlIHdheSBvZiBleHBvcnRpbmcgU05NUENPTkZQQVRICgoyMDA1LTEwLTI4IDE3OjI4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBsb2dpYyBjaGFuZ2Ugb24gZ2V0S3N0YXRJbnQKCjIwMDUtMTAtMjggMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW1vdmUgOyBmcm9tIGNvbmZpZ19yZXF1aXJlIG1hY3JvcwoKMjAwNS0xMC0yOCAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIC0gbW92ZSBsb2NhbCBpbmNsdWRlIHdpdGggb3RoZXIgbG9jYWwgaW5jbHVkZXMKICAgLSBpZmRlZiBwcm9wdHlwZXMgdGhhdCB3b24ndCBiZSBkZWZpbmVkIGZvciBOT0FSQ0ggY2FzZQoKMjAwNS0xMC0yOCAxNTo0MCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgZm9yZ290IHRoZSBpbmNsdWRlIGZvciBzb21lIG5ldHNubXBfYXJjaF9pbnRlcmZhY2Ugc3R1ZmYKCjIwMDUtMTAtMjggMTQ6NDkgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgeW91IGNhbid0IG5vdCBkZWNsYXJlIEhSTl9pbmRleCBmb3Igc29sYXJpcyB0aGVuIGV4cGVjdCBpdCB0byByZXR1cm4gYSBmZXcgbGluZXMgbGF0ZXIKCjIwMDUtMTAtMjggMTQ6MjAgIGJzaGF3NjY2CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpdCdzIHVpbnQxNl90IG5vdCB1X2ludDE2X3QKCjIwMDUtMTAtMjggMTI6NTUgIHRhbmRlcnMKCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICB1cGRhdGUgb24gLUNFIGFuZCAtQ2sKCjIwMDUtMTAtMjggMTI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CgogICByZW1vdmUgYWNjaWRlbnRhbCBjaGVja2luIG9mIHVuaW1wbGVtZW50ZWQgY29uZmlnIG1hY3JvCgoyMDA1LTEwLTI4IDEyOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjggMTI6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbmV3IGFyZ3VtZW50IHRvIHR1cm4gb24gZGVidWcgZHVyaW5nIG1pYiBtb2R1bGUgcHJvY2Vzc2luZwoKMjAwNS0xMC0yOCAxMjoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIHJlcXVpcmUgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjggMTI6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHJlbmFtZS9yZXZhbXAgaW50ZXJmYWNlIGNvdW50IGZ1bmN0aW9uCiAgICAgLSBhbGxvY2F0ZSBsb2NhbCBpZmNvbmYgaWYgY2FsbGVkIGRpZG4ndCBwYXNzIG9uCiAgICAgLSBkb2N1bWVudCB0aGF0IGZ1bmN0aW9uIGFsbG9jYXRlcyBtZW1vcnkgdGhhdCBjYWxsZXIgbXVzdCByZWxlYXNlIGlmCiAgICAgICB0aGV5IHBhc3MgaW4gdGhlaXIgb3duIGlmY29uZiBwb2ludGVyCgoyMDA1LTEwLTI4IDEyOjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmg6CgogICAtIHJlbW92ZSAnOycgZm9ybSBjb25maWdfKiBtYWNyb3MKICAgLSBjb25maWdfcmVxdWlyZSBpZlRhYmxlLCBpbmNsdWRlIGlmVGFibGUgaGVhZGVyCgoyMDA1LTEwLTI4IDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBjYWxsIGlmVGFibGUgaW5pdCB0byBtYW5hZ2UgaWZYVGFibGUgaW5pdAoKMjAwNS0xMC0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWRkIGNhbGxzIHRvIGlwdig0fDYpIGludGVyZmFjZSB0YWJsZXMgd2hlbiB1cGRhdGluZyByb3dzCiAgIC0gY29ycmVjdCBpZlRhYmxlTGFzdENoYW5nZSBiZWhhdmlvdXIgdG8gY29tcGx5IHdpdGggb2JqZWN0IGRlZmluaXRpb24KICAgLSBjbGFyaWZ5IHNvbWUgY29tbWVudHMKICAgLSBhZGQgYXNzZXJ0IHRvIG5vdGlmeSB1cyB3aGVuL2lmIGFuZCBvcyB0cmFja3MgbGFzdCBjaGFuZ2VkIG9uIGl0J3Mgb3duCgoyMDA1LTEwLTI4IDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBmaXggY29uZmlnX3JlcXVpcmUgbWFjcm9zCiAgIC0gYWRkIHJlcXVpcmUgZm9yIGRhdGFfYWNjZXNzL2ludGVyZmFjZQogICAtIHJlbW92ZSBsYXN0IGNoYW5nZSBmcm9tIGRhdGEgY29udGV4dCwgdXNlIGlmZW50cnkgdmVyc2lvbiBpbnN0ZWFkCgoyMDA1LTEwLTI4IDExOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSBtYWtlIGluaXRfaWZUYWJsZSB0aGUgY29tbW9uIGluaXQgZnVuY3Rpb24gZm9yIGludGVyZmFjZSBtb2R1bGVzCiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgY2FsbHMKICAgICAtIHByb3BlciBpbml0IGZ1bmN0aW9uIGNhbGxzIGZvciBpcHYoNHw2KUludGVyZmFjZVRhYmxlL2lmWFRhYmxlCgoyMDA1LTEwLTI4IDExOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBtb3ZlIHN0YXRzIHBhcnNpbmcgdG8gaXQncyBvd24gZnVuY3Rpb24KICAgLSBzdXBwb3J0IG5ldyBsb2FkIGZsYWdzOiBpcHY0IG9ubHksIG5vIHN0YXRzCiAgIC0gYWRkIChoYXJkY29kZWQgcmVhc21fbWF4KQogICAtIGdldCBhcnAgcmV0cmFuc21pdCB0aW1lIGZyb20gL3Byb2MKCjIwMDUtMTAtMjggMTE6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmg6CgogICBhZGQgY29uZmlnX3JlcXVpcmUgb2YgZGF0YV9hY2Nlc3MvaXBhZGRyZXNzCgoyMDA1LTEwLTI4IDExOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGNoZWNrIGFuIGludGVyZmFjZSBmb3IgaXB2KDR8NikgaXAgYWRkcmVzc2VzCgoyMDA1LTEwLTI4IDExOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIHdhcm5pbmdzIHRvIHVwZGF0ZSBmdW5jdGlvbnMgd2hlbiBhZGRpbmcvZGVsZXRpbmcgc3R1Y3QgbWVtYmVycwogICAtIG1ha2UgZmxhZ3MgZmllbGQgdW5zaWduZWQKICAgLSB1bnNpZ25lZCBpbnQgLT4gdV9pbnQKICAgLSBhZGQgZmllbGRzIGZvciBpcHY0SW50ZXJmYWNlVGFibGUKICAgLSBmaXggb3NfZmxhZ3MgY29tbWVudAogICAtIG5ldyBuc19mbGFncyBkZWZpbmVzIGZvciBpcHYoNHw2KUludGVyZmFjZVRhYmxlCiAgIC0gbmV3IGxvYWQgZmxhZ3MgZGVmaW5lcwoKMjAwNS0xMC0yOCAxMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICByZW5hbWUgdG8gaW50ZXJmYWNlLmMKCjIwMDUtMTAtMjggMTE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICByZW5hbWUgaW50ZXJmYWNlX2NvbW1vbi5jIHRvIGludGVyZmFjZS5jIHRvIGVhc3kgY29uZmlndXJlIHByb2Nlc3NpbmcKCjIwMDUtMTAtMjggMTE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSByZXZlcnQgdG8gcHJldmlvdXMgYmVoYXZpb3Igb2YgaWZEZXNjciA9IGludGVyZmFjZSBuYW1lCiAgIC0gYWRkIG5ldy9taXNzaW5nIHN0cnVjdHVyZSBtZW1iZXJzIHRvIGludGVyZmFjZSBjb3B5IHJvdXRpbmUKICAgLSByZW5hbWUgaW5pdCBmdW5jdGlvbiBmb3IgcGVuZGluZyBmaWxlIHJlbmFtZQoKMjAwNS0xMC0yOCAxMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUuaCwgaXAtbWliL2lwQWRkcmVzc1RhYmxlLmgKLCBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwLW1pYi9pcF9zY2FsYXJzLmgKLCBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19jb21tb24uaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwgdGNwLW1pYi90Y3BDb25uVGFibGUuaCwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUuaAosIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmg6CgogICAtIG1vc3RseSByZW1vdmluZyBleHRyYW5lb3VzICc7JyBvbiBjb25maWdfKiBtYWNyb3MKICAgLSBhIGZldyB0d2VhayBjb25maWdfKiBtYWNyb3MKCjIwMDUtMTAtMjggMTE6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yOCAxMToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY2hlY2sgZm9yIHByb2dyYW0gJ2ZpbmQnCiAgIC0gb25seSBhZGQgaGVhZGVyIHRvIChhZ2VudHxtaWIpX21vZHVsZV9pbmNsdWRlcy5oIGlmIGluaXQvc2h1dGRvd24gZm91bmQKCjIwMDUtMTAtMjggMTA6MjYgIHRhbmRlcnMKCiAgICogZGlzdC86IFJFQURNRS5idWlsZC1zY3JpcHRzLCBuc2ItbmlnaHRseSwKICAgICBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvCgoyMDA1LTEwLTI4IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS86IGlwdjRJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NEludGVyZmFjZVRhYmxlLmgsIGlwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaAosIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmM6CgogICBpbXBsZW1lbnQgaXB2NEludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDA4OjEzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgbWFrZSBzdXJlIHNubXBuZXRzdGF0IGNhbiBiZSBleGVjdXRlZDsgc2tpcCBvdGhlcndpc2UKCjIwMDUtMTAtMjcgMDU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvOiBnZXRvcHQuYywgc3RydG9sLmMsIHN0cnRvdWwuYzoKCiAgIFJlbW92ZSBVQ0IgYWR2ZXJ0aXNpbmcgY2xhdXNlIChyZXNjaW5kZWQgMjIgSnVseSAxOTk5KQoKMjAwNS0xMC0yNyAwNTozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgVXBkYXRlIEJTRCBjb3B5cmlnaHQgbGljZW5zZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24uCgoyMDA1LTEwLTI2IDE4OjU0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRkIHNpbXBsZSB0ZXN0IGZvciBzbm1wbmV0c3RhdCB0byB2ZXJpZnkgdGhlIHVwY29taW5nIHJld3JpdGUKCjIwMDUtMTAtMjYgMTg6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgc2tpcCBvbiBESVNBQkxFX1NFVF9TVVBQT1JUCgoyMDA1LTEwLTI2IDE3OjQ3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIGRvY3VtZW50IGdlbmVyaWMgLS08bmFtZT49PHZhbHVlPiBjb21tYW5kLWxpbmUgb3B0aW9uCgoyMDA1LTEwLTI2IDE3OjIyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBkb2N1bWVudCBnZW5lcmljIC0tPG5hbWU+PTx2YWx1ZT4gY29tbWFuZC1saW5lIG9wdGlvbgoKMjAwNS0xMC0yNiAxMzoxNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGFsbG93cyB0byB1c2Ugb2xkIGFuZC9vciBuZXcgbG9jYWxpemVkIGtleSBpbnN0ZWFkIG9mIHBhc3MtcGhyYXNlIHdpdGggLUNrCgoyMDA1LTEwLTI2IDEyOjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG1ham9yIHJld3JpdGU6IGFkZHMgbW9yZSB0ZXN0cyBhbmQgdXNlcyBuZXcgU3YzdXNtY29uZmlnKgoKMjAwNS0xMC0yNiAxMjoyMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2U6CgogICBmaXggc29tZSB2YXJpYWJsZSBuYW1lcwoKMjAwNS0xMC0yNiAwODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHJlbW92ZSBwYXRjaCBmbHViCgoyMDA1LTEwLTI2IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyB0byBoZWxwIGRpc3Rpbmd1aXNoIGJldHdlZW4gZGlmZmVyZW50IGNhY2hlIHRpbWVycy4KCjIwMDUtMTAtMjYgMDc6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgU2xpZ2h0IHJldGhpbmsgYWJvdXQgaG93IHRvIGhhbmRsZSB0aGUgcmVtb3ZhbCBvZiBhIE1JQiByZWdpc3RyYXRpb24uCiAgIChUaGlzIGlzIGRlZmluaXRlbHkgb25lIGZvciA1LjQsIG1ldGhpbmtzISkKCjIwMDUtMTAtMjYgMDY6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGdlbmVyaWMgdGFibGUgQVBJIHJvdXRpbmUgbmFtZXMuCgoyMDA1LTEwLTI2IDA2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQnJpbmcgJ3RkYXRhJyByb3V0aW5lIG5hbWVzIGludG8gbGluZSB3aXRoIHRoZSBwcm9wb3NlZCB0YWJsZSBBUEkKCjIwMDUtMTAtMjYgMDY6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBmaXggY29tcGlsZSBlcnJvciBkdWUgdG8gd3JvbmcgaHB1eDExIHRlc3QKCjIwMDUtMTAtMjYgMDU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgTW92ZSByZWdpc3RyYXRpb24gb2Ygc3RhbmRhcmQgdmlld3Mgc28gdGhhdCB0aGV5J3JlIHBpY2tlZCB1cAogICBieSBib3RoIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIgaW5pdGlhbGlzYXRpb24uCiAgIENsYXJpZnkgd2hpY2ggaW5pdGlhbGlzYXRpb24gcm91dGluZXMgYXJlIGNhbGxlZCBieSB3aGljaCBhcHBzLgoKMjAwNS0xMC0yNSAxOTowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHRlbXBvcmFyeSB3b3JrYXJvdW5kIGFzIHN1Z2dlc3RlZCBieSBEYXZlIHRvIGdldCBzbm1wdHJhcGQgd29ya2luZyBhZ2FpbgoKMjAwNS0xMC0yNSAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICAtIG5hcnJvdyBzY29wZSBvZiBhc3NlcnQgdGVzdAogICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAwNS0xMC0yNSAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI1IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IHRlc3RzIGZvciBlbXB0eSB2YXIgY2FzZQoKMjAwNS0xMC0yNSAxMjo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICAuLi4gYW5kIHNheSBzby4KCjIwMDUtMTAtMjUgMTI6NDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgY2xhcmlmeSBhcyBiZWluZyBhIG5vQXV0aE5vUHJpdiB0ZXN0CgoyMDA1LTEwLTI1IDExOjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IE9wZW5CU0QgMy40ICJwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmc6IHN5cy9zd2FwLmggbmVlZHMgc3lzL3BhcmFtLmggZm9yIE1BWFBBVEhMRU4KCjIwMDUtMTAtMjUgMTE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgTUZEX1JFV1JJVEUgZGVmaW5lIHRlc3RzCgoyMDA1LTEwLTI1IDExOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSBjb21tZW50IGZvcm1hdHRpbmcKICAgLSBjb25maWdfZXhjbHVkZSBpZi1taWIvaWZUYWJsZS9pZlRhYmxlCgoyMDA1LTEwLTI1IDExOjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgYWRkIElURVJBVE9SX1JFTEVBU0UgbWFjcm8KCjIwMDUtMTAtMjUgMDg6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fY29uZi5oOgoKICAgQWx0ZXJuYXRpdmUgdmlld3R5cGUtYmFzZWQgYWNjZXNzIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlICgiYXV0aGFjY2VzcyIpLgogICBTaW1pbGFyIHRvICJzZXRhY2Nlc3MiLCBidXQgY2xvc2VyIGluIGZlZWwgdG8gdGhlIG90aGVyIGF1dGgqIGRpcmVjdGl2ZXMuCiAgIFRoaXMgYWxzbyBhbGxvd3MgdGhlIHNlY3VyaXR5IG1vZGVsLCBsZXZlbCBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiB0byBiZQogICBvbWl0dGVkIChkZWZhdWx0aW5nIHRvIHNlbnNpYmxlIHZhbHVlcykuCgoyMDA1LTEwLTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFyZ2dnaGhoaCEhISAgSWYgeW91J3ZlIGdvdCBjb2RlIHRoYXQgd29ya3MsIGRvbid0IGNoYW5nZSBpdCBiZWZvcmUgY29tbWl0dGluZyBpdC4KICAgSWYgeW91ICptdXN0KiBjaGFuZ2UgaXQsIHRoZW4gYXQgbGVhc3QgaGF2ZSB0aGUgZ3VtcHRpb24gdG8gdGVzdCBpdCBhZ2FpbiBmaXJzdCEKICAgPGhlYXZ5IHNpZ2g+CgoyMDA1LTEwLTI1IDA4OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFRlbGwgeW91IHdoYXQsIERhdmUuICBXaHkgZG9uJ3QgeW91IHRyeSBjb21taXR0aW5nIHRoZSBjb2RlIGZvciB0aGUKICAgImF1dGhncm91cCIgZGlyZWN0aXZlIC0gcmF0aGVyIHRoYW4ganVzdCB0aGUgaGVhZGVyIGZpbGU/CiAgIDxzaWdoPgogICBZb3UganVzdCBjYW4ndCBnZXQgdGhlIHN0YWZmIHRoZXNlIGRheXMuCgoyMDA1LTEwLTI1IDA3OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaDoKCiAgIERpcmVjdGl2ZSB0byBzdXBwb3J0IHZpZXd0eXBlLWJhc2VkIGNvbmZpZ3VyYXRpb24gb2YgZ3JvdXBzICgiYXV0aGdyb3VwIikKCjIwMDUtMTAtMjUgMDc6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgY29tbXVuaXR5LWJhc2VkIGRpcmVjdGl2ZXMgKGF1dGhjb21tdW5pdHksIGV0YykgdG8gc3BlY2lmeQogICBhIHBhcnRpY3VsYXIgU05NUCB2ZXJzaW9uICh2MS1vbmx5IG9yIHYyYy1vbmx5KQoKMjAwNS0xMC0yNSAwNzo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0IHNpbXBsZSBhY2Nlc3MgZGlyZWN0aXZlcyBjb25maWd1cmVkIHdpdGggbmFtZWQgdmlld3MgKC1WKQogICBhcyB3ZWxsIGFzIE9JRCBzdWJ0cmVlcy4KCjIwMDUtMTAtMjUgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fY29uZi5oOgoKICAgRGVmaW5lICJzdGFuZGFyZCIgdmlld3MgKGFsbCBvciBub3RoaW5nKQoKMjAwNS0xMC0yNSAwNzozOSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdvcmsgd2l0aCB0aGUgYWN0aXZlIHJvb3Qgb2YgdGhlIE1JQiB0cmVlIChyYXRoZXIgdGhhbiB0aGUgYmFja3dhcmQKICAgY29tcGF0aWJpbGl0eSB2ZXJzaW9uKS4gIFRoaXMgYWxsb3dzICdyZWFkX29iamlkJyB0byB3b3JrIGNvcnJlY3RseQogICAod2l0aCBudW1lcmljIE9JRHMpIGJlZm9yZSB0aGUgTUlCIGZpbGVzIGFyZSBsb2FkZWQuCgoyMDA1LTEwLTI0IDE5OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICByZXdvcmtlZCB0byB1c2UgbmV3IFN2M3VzbWNvbmZpZyogZnJhbWV3b3JrCgoyMDA1LTEwLTI0IDE5OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtYXV0aCwgVDA0OXNubXB2M2luZm9ybXByaXYKOgoKICAgU05NUHYzIGF1dGhOb1ByaXYvYXV0aFByaXYgSU5GT1JNIHRlc3RzIGJhc2VkIG9uIG5ldyBTdjN1c21jb25maWcqCgoyMDA1LTEwLTI0IDE5OjI3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjN1c21jb25maWdhZ2VudCwgU3YzdXNtY29uZmlnYmFzZSwKICAgICBTdjN1c21jb25maWd0cmFwZDoKCiAgIHJld3JpdHRlbiBTTk1QdjMgVVNNIGNvbmZpZzogYmFzaWMsIGFnZW50LCB0cmFwZAoKMjAwNS0xMC0yNCAxOTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBGaXggZm9yIGNvbXBpbGF0aW9uIGlzc3VlczoKICAgICAtIHJlYXJyYW5nZSBmdW5jdGlvbiBvcmRlciB0byBnZXQgcHJvcGVyIHByb3RvdHlwZSBvcmRlcmluZyB3aXRob3V0CiAgICAgICBwcm90b3R5cGVzLgogICAgIC0gUmVtb3ZlZCBkYXRhIHR5cGUgZm9yIGEgdmFyaWFibGUgbmFtZSB0aGF0IHdhcyBnZXR0aW5nIHBhc3NlZCBpbgogICAgICAgYXMgd2VsbC4KCjIwMDUtMTAtMjQgMTg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgdXNlIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pbmRleF9maW5kIGluc3RlYWQgb2YgSW50ZXJmYWNlX0luZGV4X0J5X05hbWUKCjIwMDUtMTAtMjQgMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIE1GRF9SRVdSSVRFIGNoZWNrLCB1c2UgVVNJTkdfTUlCSUlfSU5URVJGQUNFU19NT0RVTEUgaW5zdGVhZAoKMjAwNS0xMC0yNCAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGNvbmZpZ19leGNsdWRlIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSByZXF1aXJlIG5ldyBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwogICAtIHJlbW92ZSBNRkRfUkVXUklURSBjaGVjawogICAtIGNvbnNvbGlkYXRlIGxpbnV4IHJlcXVpcmVzIHRvIG9uZSBsaW5lCgoyMDA1LTEwLTI0IDE4OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBmaXggaWZJbmRleCBtaXMtbWF0Y2ggKGFkZCBzdXBwb3J0IGZvciBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSkKCjIwMDUtMTAtMjQgMTg6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaDoKCiAgIC0gcmVxdWlyZSBuZXcgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKICAgLSByZXF1aXJlIGhvc3QvaHJfZGV2aWNlIHRvbywgc2luY2UgaXQgZGVjbGFyZXMgZ2xvYmFscyB3ZSBuZWVkCgoyMDA1LTEwLTI0IDE4OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gaW1wbGVtZW50IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IGZ1bmN0aW9ucyBJbnRlcmZhY2VfU2Nhbl8oSW5pdHxOZXh0KSBzbwogICAgIGFsbCBtb2R1bGVzIGNhbiBhZ3JlZSBvbiBpZkluZGV4IHZhbHVlcwoKMjAwNS0xMC0yNCAxNzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGJ1ZyBpbiBpdGVyYXRvcjsgcmVzZXQgcHRyIG92ZXJ3cml0dGVuIGJ5IHJlbGVhc2UKCjIwMDUtMTAtMjQgMTY6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBkcm9wIHBhY2tldHMgd2l0aCBzZXNzaW9uIGVycm5vcyBhdHRhY2hlZCB0byB0aGVtCgoyMDA1LTEwLTI0IDEzOjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICByZW1vdmUgTUZEIHJld3JpdGUgZ3lyYXRpb25zCgoyMDA1LTEwLTI0IDEzOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjQgMTM6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgdGVzdHMgZm9yIGludmFsaWQgb3B0aW9ucyAobWluaWFnZW50KQoKMjAwNS0xMC0yNCAxMzo0MiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCBkZXRhaWxzIHRvIGxvZy9kZWJ1ZyBtZXNzYWdlCgoyMDA1LTEwLTI0IDEzOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaDoKCiAgIHVzZSBuZXcgbWliSUkvaWZUYWJsZSBpbiBwbGFjZSBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDEzOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5oOgoKICAgbmV3IG1vZHVsZSBmb3Igb3RoZXIgbW9kdWxlcyB0byByZWZlcmVuY2UsIGluIHBsYWNlIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTM6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCBpZkluZGV4IGxvb2t1cCBvbiBsaW51eCAodXNlIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pbmRleF9maW5kKQoKMjAwNS0xMC0yNCAxMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIEdlbmVyaWMgdGFibGUgQVBJOiAiUm93IG9wZXJhdGlvbnMiICAgKGV4cGVyaW1lbnRhbCBpbXBsZW1lbnRhdGlvbikKCjIwMDUtMTAtMjQgMTE6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW50cm9kdWNlIFNLSVAoKQoKMjAwNS0xMC0yNCAxMDoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzREVTY29uZmlnLCBTdjNTSEFERVNjb25maWc6CgogICByZW1vdmUgb2Jzb2xldGUgU05NUHYzIGNvbmZpZyBmaWxlcwoKMjAwNS0xMC0yNCAwNzowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBHZW5lcmljIHRhYmxlIEFQSTogUm93IG9wZXJhdGlvbnMKCjIwMDUtMTAtMjQgMDY6NTggIGR0czEyCgogICAqIGxvY2FsL3NubXBkdW1wLnBsOgoKICAgRm9yIFRob21hcwoKMjAwNS0xMC0yNCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdmlzaW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlICJUYWJsZSBtYWludGVuYW5jZSIgZ2VuZXJpYyBBUEkuCiAgIE1vc3Qgb2YgdGhpcyBpcyBub3QgcmVhbGx5IGFwcGxpY2FibGUgdG8gdGhlIGl0ZXJhdG9yIGhlbHBlciwgYnV0CiAgIGhhdmluZyBhIHN0YW5kYXJkIG1lY2hhbmlzbSBmb3IgY29uc3RydWN0aW5nIChhbmQgZnJlZWluZykgdGhlCiAgIG1haW4gaXRlcmF0b3Igc3RydWN0dXJlIG1pZ2h0IGJlIHVzZWZ1bC4KCjIwMDUtMTAtMjQgMDY6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENvdW50IHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhbiBpdGVyYXRvci1iYXNlZCB0YWJsZS4KCjIwMDUtMTAtMjQgMDY6MTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBBc3NvY2lhdGUgdGFibGUgaW5kZXggaW5mb3JtYXRpb24gd2l0aCB0aGUgaXRlcmF0b3Igc3RydWN0dXJlLgogICAoRXhwZXJpbWVudGFsIGNvZGUgLSBpbnRyb2R1Y2VzIGEgbWlub3Igb25lLW9mZiBtZW1vcnkgbGVhaywKICAgIGJ1dCBzaG91bGRuJ3Qgb3RoZXJ3aXNlIGFmZmVjdCBleGlzdGluZyBjb2RlKQoKMjAwNS0xMC0yMyAyMDoxMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgaW5pdGlhbCB0ZXN0IGZvciBTTk1QdjMgc25tcHRyYXBkIFVTTSB1c2VyIG1hbmFnZW1lbnQgd2l0aCBzbm1wdXNtCgoyMDA1LTEwLTIzIDE5OjU3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGZpeCBDSEVDS0FHRU5UKCkgYW5kIGludHJvZHVjZSBDSEVDS1RSQVBET1JESUUoKQoKMjAwNS0xMC0yMyAxOTo0NSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZml4IHR5cG8KCjIwMDUtMTAtMjMgMTU6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZsYWdzIHN1cHBvcnQ7IGRlZmF1bHQgdG8gbm8gZHVwbGljYXRlIGtleXMKCjIwMDUtMTAtMjMgMTU6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB0d2VhayBvcHRpb25zIGZ1bmN0aW9uIHRvIGFsbG93IHRlc3QgYW5kIHNldAoKMjAwNS0xMC0yMyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGFkZCBmdW5jdGlvbiB0byBzZXQgY29udGFpbmVyIG9wdGlvbnMKCjIwMDUtMTAtMjIgMTg6MjYgIHRhbmRlcnMKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9TdjNjb25maWcsCiAgICAgdGVzdHMvU3YzdmFjbWNvbmZpZywgdGVzdHMvU3ZhY21jb25maWcsCiAgICAgdGVzdHMvU3Zhbnljb25maWc6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA1LTEwLTIyIDE4OjE0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlcGxhY2Ugb2Jzb2xldGUgc25tcHRyYXBkICItdSIgZmxhZyBieSAiLXAiCgoyMDA1LTEwLTIyIDE4OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi8uY3ZzaWdub3JlOgoKICAgaXAtbWliIGNoYW5nZXMgbm93IHJlcXVpcmUgLmN2c2lnbm9yZQoKMjAwNS0xMC0yMiAxODowNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZ3NoYToKCiAgIG9ic29sZXRlZCBieSBTdjNjb25maWcKCjIwMDUtMTAtMjIgMDA6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU3dHJhcGRhdXRodGVzdCwgVDA1N3RyYXBkYXV0aHRlc3QyCiwgVDA1N3RyYXBkYXV0aHRlc3QzOgoKICAgcHJvcGVyIGNoZWNrcyBmb3IgZmFpbHVyZSBvZiB1bmF1dGhvcml6ZWQgdHJhcHMKCjIwMDUtMTAtMjIgMDA6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyOgoKICAgdGVzdCBmb3Igd3JvbmcgdHJhcCBvaWRzCgoyMDA1LTEwLTIyIDAwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgbmV3IGNvbmZpZyB0b2tlbnMgcm91bmQgMgoKMjAwNS0xMC0yMiAwMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsIGFwcHMvc25tcHRyYXBkX2F1dGguYwo6CgogICBEbyB0cmFwIGF1dGggcGFyc2luZyB0aGUgd2F5IERhdmUgd2FudHMuCgoyMDA1LTEwLTIxIDIwOjMwICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgbmV3IGhlbHBlciBhbmQgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgYWRkIG5ldyBJUC1NSUIgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oOgoKICAgZGF0YSBhY2Nlc3MgZm9yIHNvbWUgSVAtTUlCIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBzY2FsYXJzX2NvbW1vbi5oLAogICAgIHNjYWxhcnNfbGludXguYzoKCiAgIGRhdGEgYWNjZXNzIGZvciBsaW51eCBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXBfc2NhbGFycy5jLCBpcF9zY2FsYXJzLmg6CgogICBzb21lIG5ldyBzY2FsYXJzIGluIHRoZSBJUC1NSUIKCjIwMDUtMTAtMjEgMjA6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgLSBuZXcgaGVscGVyIGZvciBydyBhY2Nlc3MgdG8gYW4gaW50ZWdlciBiYXNlZCB2YXJpYWJsZSB3aGljaCBpcyBzdG9yZWQKICAgICBhcyBhc2NpaSBpbiBhIGZpbGUKCjIwMDUtMTAtMjEgMTg6MzEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQWRkICItQ0UgRU5HSU5FLUlEIiBvcHRpb24gdG8gc3BlY2lmeSB0aGUgdXNtVXNlckVuZ2luZUlELiBFbmFibGVzIHNubXB1c20gdG8gbWFuYWdlIHNubXB0cmFwZCdzIHVzbVVzZXJUYWJsZSAoZml4ZXMgYnVnICMxMzMzNjU1KS4KCjIwMDUtMTAtMjEgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIGZpeCBmdW4gY29tbWVudCBoZWFkZXIgZm9yIGRveHlnZW4gKGtlZXAgd2VzIGhhcHB5KQogICAtIGRvY3VtZW50IHNsaWdodGx5IG5vbi1vYnZpb3VzIGluZGV4IHVzZSAoa2VlcCBkYXZlIGhhcHB5KQoKMjAwNS0xMC0yMSAxMjoyOSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFwcGx5IHBhdGNoIDEyOTk1NTQgZnJvbSBUYW8gdG8gZml4IHNlZ2ZhdWx0IGluIHZhcl9pZkVudHJ5KCkKCjIwMDUtMTAtMjEgMDY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYzoKCiAgIE1vcmUgcG9ydGFibGUgaGFuZGxpbmcgb2YgJ292ZXJzaG9vdCcgZGVjbGFyYXRpb24uCgoyMDA1LTEwLTIxIDA2OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfY29udGFpbmVyLmMsIHRhYmxlX2RhdGEuYywKICAgICB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlICJUYWJsZSBtYWludGVuYW5jZSIgc2VjdGlvbgogICBvZiB0aGUgZ2VuZXJpYyB0YWJsZSBBUEkuCgoyMDA1LTEwLTIxIDA2OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBnZW5lcmljIHRhYmxlIEFQSSBuYW1lcywKICAgYW5kIGNvcnJlY3QgYSBjb3VwbGUgb2YgZmxhd2VkIGZ1bmN0aW9uIHByb3RvdHlwZXMuCgoyMDA1LTEwLTIxIDA1OjIyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgZ2VuZXJhbGl6ZWQgZXhjZXB0aW9uIHJlZ2V4IHRvIGxldCBhbnkgInRlc3RpbmcgLi4uIGZhaWx1cmUgLi4uIiBnbyB0aHJvdWdoLCBlLmcuIHRoZSBuZXcgc25tcHRyYXBkIHRlc3QgcmVjZW50bHkgaW50cm9kdWNlZAoKMjAwNS0xMC0yMSAwMTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgaW5pdCB2YWNtCgoyMDA1LTEwLTIxIDAxOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuaDoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzbm1wdHJhcGRfZHMuaCBmaWxlCgoyMDA1LTEwLTIxIDAxOjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBBZGRlZCBhIHdhcm5pbmcgbm90ZSBhYm91dCBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggc25tcHRyYXBkLCB3aGljaAogICBoYWQgYWN0dWFsbHkgYmVlbiBieXBhc3NlZCByZWNlbnRseSBhbmQgbm8gb25lIG5vdGljZWQuCgoyMDA1LTEwLTIxIDAxOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0OgoKICAgdGVzdCB0cmFwZCBhdXRob3JpemF0aW9uIGZhaWx1cmVzCgoyMDA1LTEwLTIxIDAxOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgTW9kaWZpZWQgdGhlIHRlc3RzIHRvIGFjY29tbW9kYXRlIHRoZSBuZXcgdHJhcGQgYXV0aCBzY2hlbWUKCjIwMDUtMTAtMjEgMDE6MzggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9hdXRoLmMKLCBzbm1wdHJhcGRfYXV0aC5oLCBzbm1wdHJhcGRfZHMuaCwKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBBZGRlZCBhIG5ldyBhdXRob3JpemF0aW9uIGhhbmRsZXIgYW5kIHJlbGF0ZWQgY29uZmlndXJhdGlvbiB0b2tlbnMgdG8KICAgYWxsb3cgc25tcHRyYXBkIHRvIGFjY2VwdCBvciBkcm9wIG5vdGlmaWNhdGlvbnMgYmFzZWQgb24gdGhlCiAgIGF1dGhvcml6YXRpb24gYXNzaWduZWQgdG8gYSBjb21tdW5pdHkvdXNlciBwYWlyZWQgd2l0aCB0aGUgYWN0aW9uIHRvCiAgIGJlIHRha2VuIChsb2csIGZvcndhcmQsIGV4ZWN1dGUpLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24KICAgdG9rZW5zIHRoYXQgd2VyZSBhZGRlZCB0byBhY2hpZXZlIHRoaXMuICAzIG9mIHRoZSBWQUNNIG9uZXMgY2FuIGJlCiAgIHVzZWQgYXMgbm9ybWFsICh2aWV3LCBjb20yc2VjLCBncm91cCkgYW5kIG9uZSBhZGRpdGlvbmFsIG9uZQogICAoc2V0YWNjZXNzKSBuZWVkcyB0byBiZSB1c2VkIHRvIHNldCBpbmRpdmlkdWFsIHZpZXdzIGZvciBhY2Nlc3MgdG8KICAgYmluZCBldmVyeXRoaW5nIHRvZ2V0aGVyLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIHdyYXBwZXJzCiAgIGFzIHdlbGwgZm9yIHRoZXNlIHRva2VuIHNldHMuICBGaW5hbGx5LCB0aGVyZSBpcyBhCiAgIGRpc2FibGVBdXRob3JpemF0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHNldCB0byB0cnVlIHRvIHNpbXBseSBhbGxvdwogICBldmVyeXRoaW5nIHRocm91Z2guCgoyMDA1LTEwLTIxIDAxOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gcmVzdHJ1Y3R1cmVkIHRoZSBWQUNNIGNvZGUgdG8gcHJvdmlkZSBmb3IgdGhlIG5vdGlvbiBvZiBhZGRpdGlvbmFsCiAgICAgdmlld3MgYmVzaWRlcyB0aGUgc3RhbmRhcmQgcmVhZC93cml0ZS9ub3RpZnkgdmlld3MKICAgICAtIG11Y2ggb2YgdGhlIGNoZWNraW5nIGNvZGUgd2FzIHJlc3RydWN0dXJlZCB0byBiZSBtb3JlIG1vZHVsYXIKICAgICAtIGFkZGVkIGEgbmV3IHNldGFjY2VzcyBjb25maWcgdG9rZW4gdGhhdCBjYW4gc2V0IHRoZSB2aWV3IG5hbWUgZm9yCiAgICAgICBhIHBhcnRpY3VsYXIgYWNjZXNzIGxldmVsCiAgICAgLSBhZGRlZCAzIG5ldyBhY2Nlc3MgbGV2ZWxzOiBsb2csIGV4ZWN1dGUsIG5ldAogICAgICAgLSBhZGRlZCBlbnVtIHN0cnVjdHVyZSBmb3IgdGhlc2UKCjIwMDUtMTAtMjAgMTM6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZW1haW5pbmcgSVAgYWRkcmVzcyBieXRlIG9yZGVyIGJ1ZwoKMjAwNS0xMC0yMCAwODoyNiAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIEV2ZW50IE1JQi4KCiAgIChRbjogd2hlcmUgZG9lcyAnZGVmYXVsdF9taWJzX2luc3RhbGwnIGdldCBzZXQ/KQoKMjAwNS0xMC0yMCAwODoyNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgc2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgogICBUaGlzIHF1YWxpZmllcyBmb3IgYm90aDoKICAgICAgICdUcmFkaXRpb25hbGx5IGl0J3MgYmVlbiAidHVybiBpdCBvbiBpZiBpdCBjb21waWxlcyAxMDAlCiAgICAgICAgb2YgdGhlIHRpbWUuLi4uJwogICBzaW5jZSBpdCdzIGFsbCBub24tYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUsIGFuZDoKICAgICAgICcuLi4gYW5kIGlmIGl0IHJlcXVpcmVzIHJ1biB0aW1lIGVuYWJsaW5nIGFzIHdlbGwiCgoyMDA1LTEwLTIwIDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaDoKCiAgIEFkZCB0aGUgRXZlbnQgTUlCIHRvIHRoZSBsaXN0IG9mIE1JQnMgdG8gbG9hZC4KCjIwMDUtMTAtMjAgMDc6MzMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSBybWRpciAtPiBybSAtZlIsIHNpbmNlIGRpcmVjdG9yeSBpc24ndCBlbXB0eQogICAtIGFkZCAtcC9TTk1QX1RFU1RfUFJFRklYIHRvIGFsbG93IG5vbi1zdGFuZGFyZCB0ZXN0cyB0byBiZSBydW4KCjIwMDUtMTAtMjAgMDU6MzEgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBwcm9wYWdhdGUgdGVzdC1taWJzIHRhcmdldAoKMjAwNS0xMC0yMCAwNDozMSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIGV4Y2VwdGlvbiByZWdleAoKMjAwNS0xMC0xOSAyMzozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFkZCBpZlRhYmxlTGFzdENoYW5nZSBzY2FsYXIKCjIwMDUtMTAtMTkgMTc6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZG9jdW1lbnQgdGhhdCAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGFmZmVjdHMgc25tcHRyYXBkIGFsc28KCjIwMDUtMTAtMTkgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHAgZXhjZXB0aW9ucwoKMjAwNS0xMC0xOSAwNzowNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgV2l0aGRyYXcgJ3RhYmxlX2RhdGFzZXQyJyBoZWxwZXIKCjIwMDUtMTAtMTkgMDE6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGFkZCAnZGVmYXVsdCcgYXMgdGhlIG9pZCBmb3IgZXhlY2luZyB0aGUgZXhhbXBsZSB0cmFwaGFuZGxlCgoyMDA1LTEwLTE5IDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggYnVnICMxMzEzNjY3OiBpbmZvcm1zIGFyZSBzZW50IGFzeWNocm9ub3VzbHkgdG8gYXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gdGhlIHJlY2VpdmVyIGlzIGRvd24KCjIwMDUtMTAtMTggMjI6MjQgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgUkVBRE1FLnR4dCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzI6IFJlbmFtZSBOZXQtU05NUC5wcGQgdG8gTmV0U05NUC5wcGQsIGFkZCBhIGNvdXBsZQogICBoZWFkZXIgZmlsZXMgdG8gV2luMzIgdW5pbnN0YWxsZXIuCgoyMDA1LTEwLTE4IDE4OjIyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZGQgI2lmZGVmcyBmb3IgTUlCIG1vZHVsZSBkZXBlbmRlbnQgY29kZQoKMjAwNS0xMC0xOCAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGluZGV4IGdlbmVyYXRpb24gZm9yIGZpeGVkIGxlbmd0aCBvY3RldCBzdHJpbmdzCgoyMDA1LTEwLTE4IDEyOjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Mi5oLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIFdpdGhkcmF3ICd0YWJsZV9kYXRhc2V0MicgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgbXRlRXZlbnRUYWJsZS5jOgoKICAgUmV2ZXJ0IHRvIG9yaWdpbmFsICd0YWJsZV9kYXRhc2V0JyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjQzICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHN5bmMgcmVhZG1lIGluIGFsbCBicmFuY2hlcwoKMjAwNS0xMC0xOCAxMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgUmV2ZXJ0IHRvIHVzaW5nIHRoZSBvcmlnaW5hbCAndGFibGVfZGF0YXNldCcgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBQcm92aWRlIG1pc3NpbmcgdGFibGUtdHJhdmVyc2FsIHJvdXRpbmVzLgoKMjAwNS0xMC0xOCAxMDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oOgoKICAgT29wcyEgIE9uZSBsb2NhdGlvbiBjaGFuZ2UgZ290IG92ZXJsb29rZWQhCgoyMDA1LTEwLTE4IDEwOjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSBncmVwcyBmb3IgZXJyb3IgY2FzZSBpbnNlbnNpdGl2ZQoKMjAwNS0xMC0xOCAxMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBkbyBub3QgaW5zdGFsbCByZW1vdmVkL3JlZHVuZGFudCBoZWFkZXIKCjIwMDUtMTAtMTggMTA6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaCwKICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluOgoKICAgUmVuYW1lICd0YWJsZV9kYXRhMicgaGVscGVyIGFzICd0YWJsZV90ZGF0YScKCjIwMDUtMTAtMTggMDc6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgUHJlcGFyZSB0aGUgd2F5IGZvciByZW5hbWluZyAndGFibGVfZGF0YTInIG1vcmUgc2Vuc2libHkuCgoyMDA1LTEwLTE4IDA3OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBSZW1vdmUgdW53YW50ZWQgdmVzdGlnYXRlcyBvZiAndGFibGVfZGF0YScgc3RydWN0dXJlcywgYW5kIGJyaW5nCiAgIHRhYmxlIGNyZWF0aW9uIG1vcmUgY2xvc2VseSBpbnRvIGxpbmUgd2l0aCB0aGUgZ2VuZXJpYyBBUEkgdGVtcGxhdGUuCgoyMDA1LTEwLTE4IDA3OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBNaXNzaW5nIHJldHVybiB2YWx1ZS4KCjIwMDUtMTAtMTggMDc6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CgogICBNaXNzaW5nIHJldHVybiB2YWx1ZXMuCgoyMDA1LTEwLTE4IDA3OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIElmIG5vIGlxdWVyeSBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQgZm9yIGEgcGFydGljdWxhciBldmVudCwKICAgdHJ5IHRoZSBzZXR0aW5ncyBmcm9tIHRoZSB0cmlnZ2VyLCBiZWZvcmUgZmFsbGluZyBiYWNrIHRvCiAgIHRoZSBkZWZhdWx0IGludGVybmFsIHF1ZXJ5IHNlc3Npb24uCgoyMDA1LTEwLTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFVzZSAnaXF1ZXJ5U2VjTmFtZScgc2V0dGluZ3MgYXQgY29uZmlndXJlIHRpbWUsIHJhdGhlciB0aGFuIHdoZW4KICAgdGhlIHRyaWdnZXIgaXMgYWN0dWFsbHkgaW52b2tlZC4gIFRoaXMgYWxsb3dzOgogICAgICAgIGlxdWVyeVNlY05hbWUgbWUKICAgICAgICBtb25pdG9yIG15TW9uaXRvciAuLi4uLgogICAgICAgIG1vbml0b3IgbXlPdGhlck1vbml0b3IgLi4uLi4KICAgICAgICBpcXVlcnlTZWNOYW1lIHlvdQogICAgICAgIG1vbml0b3IgeW91ck1vbml0b3IgLi4uLi4KICAgdG8gd29yayBpbiB0aGUgbW9zdCBuYXR1cmFsIG1hbm5lci4KICAgSWYgbm8gaXF1ZXJ5IHNlY3VyaXR5IG5hbWUgaXMgYXZhaWxhYmxlIGF0IGNvbmZpZ3VyZSB0aW1lLAogICB0aGlzIHdpbGwgYmUgZXZhbHVhdGVkIGF0IHJ1biB0aW1lIGluc3RlYWQuCgoyMDA1LTEwLTE4IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRDb25mLmgsCiAgICAgc2NoZWRDb3JlLmMsIHNjaGVkQ29yZS5oLCBzY2hlZFRhYmxlLmMsCiAgICAgc2NoZWRUYWJsZS5oOgoKICAgUmVtb3ZlIHByZXZpb3VzIFNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMTAtMTggMDc6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkdWxlLmgsIHNjaGVkdWxlLy5jdnNpZ25vcmUKLCBzY2hlZHVsZS9zY2hlZENvbmYuYywgc2NoZWR1bGUvc2NoZWRDb25mLmgsCiAgICAgc2NoZWR1bGUvc2NoZWRDb3JlLmMsIHNjaGVkdWxlL3NjaGVkQ29yZS5oLAogICAgIHNjaGVkdWxlL3NjaGVkVGFibGUuYywgc2NoZWR1bGUvc2NoZWRUYWJsZS5oOgoKICAgUmUtd29ya2VkIFNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbi4KICAgQ2xlYW5lciwgbGVhbmVyLCBhbmQgbW9yZSBjb21wbGV0ZS4KICAgTm93IHdpdGggYWRkZWQgdml0YW1pbnMuCgoyMDA1LTEwLTE3IDE4OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgYWRkIG1vdmUgdmVyYm9zZSBkZWJ1Z2dpbmc7IGluaXQgaW5uZXIgbG9vcCBjb3VudGVyIGFmdGVyIGVhY2ggaXRlcmF0aW9uCgoyMDA1LTEwLTE3IDE3OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHBvcnRhYmxlIGV4cG9ydCBvZiBlbnYgdmFyCgoyMDA1LTEwLTE3IDE2OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IGEgZmxpcHBpbmcgbG8gaW50ZXJmYWNlIGJ5IGZpeGluZyBnZXRLc3RhdEludCB0byBkbyBhcyBkb2N1bWVudGVkCgoyMDA1LTEwLTE3IDE0OjE3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGFkZCBwcm90b3R5cGUgYmVmb3JlIHVzZTsgY2hlY2sgc3RhdHVzIG9mIGNvcnJlY3Qgc3RydWN0IG1lbWJlcgoKMjAwNS0xMC0xNyAxMjo1MiAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICAtIG5vdGUgbGQgZmxhZ3MgZm9yIDEwLjQueCBidWlsZGluZyB3L3BlcmwKCjIwMDUtMTAtMTcgMTE6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRW5zdXJlIHRoZSBldmVudCBuYW1lIGJ1ZmZlciBpcyBwcm9wZXJseSBjbGVhcmVkIGJlZm9yZSB1c2UuCgoyMDA1LTEwLTE3IDA3OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW9kaWZ5IGV4aXN0aW5nIHRhYmxlIGhlbHBlcnMgaW4gbGluZSB3aXRoIHRoZSBwcm9wb3NlZCBnZW5lcmljIEFQSS4KCiAgIFRoaXMgZG9lcyAqTk9UKiBjaGFuZ2UgYW55IGV4aXN0aW5nIGNvZGUgKGF0IGxlYXN0IG5vdCBpbnRlbnRpb25hbGx5KSwKICAgb3IgYWRkIGFueSBvZiB0aGUgIm1pc3NpbmciIEFQSSByb3V0aW5lcy4gIEkndmUgc2ltcGx5IHJlLXNodWZmbGVkCiAgIHRoZSBvcmRlciBvZiB0aGUgZXhpc3Rpbmcgcm91dGluZXMgdG8gbWF0Y2ggdGhlIGdlbmVyaWMgdGVtcGxhdGUuCgoyMDA1LTEwLTE3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIFByb3BlciBkZWZpbml0aW9uL2RvY3VtZW50YXRpb24gb2YgYSBnZW5lcmljIHRhYmxlIEFQSSBmcmFtZXdvcmsuCiAgIFRoZSBleGFjdCBkZXRhaWxzIG1heSBub3QgYmUgZGlyZWN0bHkgYXBwcm9wcmlhdGUgaW4gZnVsbCBmb3IgZXZlcnkKICAgdGFibGUgaGVscGVyLCBidXQgdGhpcyBzaG91bGQgcHJvdmRlIGEgdXNlZnVsIGJhc2ljIGRlc2lnbiB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTcgMDA6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlZCBmb3JjZWQgZGVidWdnaW5nIG91dHB1dAoKMjAwNS0xMC0xNCAxOTozNyAgYnNoYXc2NjYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhdXRvY29uZiByZWNvZ25pdGlvbgoKMjAwNS0xMC0xNCAxODo0NSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgc3VwcG9ydCBOZXRCU0QgMS54IGFuZCAyLnggdW5kZXIgdGhlIChjb21tb24pICJuZXRic2QiIHN5c09iamVjdElELjAKCjIwMDUtMTAtMTQgMTc6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKICAgLSBkb24ndCByZWxlYXNlIHJvdyBvbiBlcnIgKGl0J3Mgc3RpbGwgaW4gdGhlIGNvbnRhaW5lciEpCiAgIC0gZG9uJ3QgaW5zZXJ0IHJvdyBvbiBzdWNjZXNzIChpdCdzIGFscmVhZHkgaW4gdGhlIGNvbnRhaW5lciEpCgoyMDA1LTEwLTE0IDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBtaWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICByZXBsYWNlIGhhcmRjb2RlZCAic25tcGQiIHcvTkVUU05NUF9EU19MSUJfQVBQVFlQRQoKMjAwNS0xMC0xNCAxMToyNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVnaXN0ZXIgdGhlIHNubXBFbmdpbmUgTUlCIGdyb3VwIHVuZGVyIHRoZSAic25tcHRyYXBkIiBjb250ZXh0IHRvIGFsbG93IGZvciBlbmdpbmVJRCBwcm9iZXMgdmlhIHRoZSBtYXN0ZXIgYWdlbnQsIGUuZy4gYnkgc25tcHVzbQoKMjAwNS0xMC0xNCAxMToyNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvOiBzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaDoKCiAgIGFsbG93IHN1YmFnZW50cyAobGlrZSBzbm1wdHJhcGQpIHRvIHJlZ2lzdGVyIHRoZSBzbm1wRW5naW5lIE1JQiBncm91cCB1bmRlciBhIGNvbnRleHQgYnkgaW50cm9kdWNpbmcgcmVnaXN0ZXJfc25tcEVuZ2luZV9zY2FsYXJzX2NvbnRleHQoKQoKMjAwNS0xMC0xNCAwOTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi5oLCBleHByLy5jdnNpZ25vcmUKLCBleHByL2V4cEVycm9yVGFibGUuYywgZXhwci9leHBFcnJvclRhYmxlLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uLmMsIGV4cHIvZXhwRXhwcmVzc2lvbi5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgZXhwci9leHBFeHByZXNzaW9uQ29uZi5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIGV4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmgsCiAgICAgZXhwci9leHBPYmplY3QuYywgZXhwci9leHBPYmplY3QuaCwKICAgICBleHByL2V4cE9iamVjdENvbmYuYywgZXhwci9leHBPYmplY3RDb25mLmgsCiAgICAgZXhwci9leHBPYmplY3RUYWJsZS5jLCBleHByL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZXhwci9leHBTY2FsYXJzLmMsIGV4cHIvZXhwU2NhbGFycy5oLCBleHByL2V4cFZhbHVlLmMKLCBleHByL2V4cFZhbHVlLmgsIGV4cHIvZXhwVmFsdWVUYWJsZS5jLAogICAgIGV4cHIvZXhwVmFsdWVUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgKHJlLSlpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRXhwcmVzc2lvbiBNSUIuCiAgIFRoZSBleHBFeHByZXNzaW9uVGFibGUgYW5kIGV4cE9iamVjdFRhYmxlIGFyZSByZWFzb25hYmx5IGNvbXBsZXRlLgogICBUaGUgZXhwVmFsdWVUYWJsZSAoYW5kIGV4cHJlc3Npb24gZXZhbHVhdGlvbikgaXMgc3RpbGwganVzdCBhCiAgIGJhc2ljIGZyYW1ld29yayAtIGV4cHJlc3Npb25zIGFyZSBkaXNwbGF5ZWQgcmF0aGVyIHRoYW4gZXZhbHVhdGVkLgogICBBbmQgdGhlcmUncyBubyB1c2VyLWxldmVsIGNvbmZpZ3VyYXRpb24gb2YgZXhwcmVzc2lvbnMgeWV0LgoKICAgQnV0IHRoZXJlJ3MgZW5vdWdoIHdvcmtpbmcgY29kZSB0byBiZSB3b3J0aCBjb21taXR0aW5nIC0gZXZlbiBpZgogICBvbmx5IGFzIGEgc2FmZXR5IG1lY2hhbmlzbS4KCjIwMDUtMTAtMTMgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggc3BhcnNlIGhhbmRsZXIgY2FzZTogbm8gbW9yZSByb3dzLCBsYXN0IGNvbHVtbgoKMjAwNS0xMC0xMyAxMjo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSBmaXggdGFibGUgdG9rZW4gdGFibGUgaW5kZXhlcyBmb3IgYXVnbWVudGVkIHRhYmxlCiAgIC0gdHdlYWsgZGVidWcKICAgLSBhZGQgd2FybmluZyBpZiB0b28gbXVjaCBkYXRhIHNwZWNpZmllZCBmb3IgYWRkX3JvdwoKMjAwNS0xMC0xMyAxMToyOCAgcnN0b3J5CgogICAqIGRvdGdkYmluaXQ6CgogICBhZGQgcHJpbnRpbmRleCBmb3IgbmV0c25tcF9pbmRleCBzdHJ1Y3RzCgoyMDA1LTEwLTEzIDEwOjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHByZWZpeCAoaW5zdGVhZCBvZiB1c2luZyBpbnN0YWxsIHByZWZpeD0pCgoyMDA1LTEwLTEzIDA1OjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFN3aXRjaCB0byB1c2luZyB0aGUgbmV3IEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbiBieSBkZWZhdWx0LgoKICAgVGhlIHByZXZpb3VzIHZlcnNpb24gaXMgc3RpbGwgYXZhaWxhYmxlIGZvciB0aG9zZSB0aGF0IHByZWZlcgogICB0byB1c2UgdGhhdCwgYnV0IEknbSBzdXJlIHNvbWVvbmUgd2lsbCBjb21wbGFpbiBhbnl3YXk6LSgKCjIwMDUtMTAtMTIgMTg6NTkgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaDoKCiAgIG9wZW5ic2Qgc3lzT2JqZWN0SUQuMCBmb3IgT3BlbkJTRCAzLngKCjIwMDUtMTAtMTIgMTg6MTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBlbmhhbmNlIHJlY2VudGx5IGludHJvZHVjZWQgIm5ldC1zbm1wLWNvbmZpZyAtLXNubXBjb25mcGF0aCIgdG8gb3V0cHV0IGZ1bGwgY29uZmlnIHBhdGgKCjIwMDUtMTAtMTIgMTA6NDYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBkZWYgZmlsZXMgYXJlIGluIHNyY2RpcgoKMjAwNS0xMC0xMiAwNjoyOCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY2hhbmdlIG5vLW9wIG1hY3JvIGRlZiB0byBlbXB0eSBpc250ZWFkIG9mICh2b2lkKQoKMjAwNS0xMC0xMSAxOToxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcmV3b3JrIDY0IGJpdCBvdmVyZmxvdyBjaGVja2luZywgYWNjb3VudGluZyBmb3Igc2lnbmVkZWRuZXNzCgoyMDA1LTEwLTExIDE2OjMwICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHZhcmlhdGlvbnMgaW4gdGFpbCBwYXJhbWV0ZXIgZm9ybWF0CgoyMDA1LTEwLTExIDE0OjUzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGxlZnRvdmVyIEVPRiBmcm9tIHJldiAxLjMxNAoKMjAwNS0xMC0xMSAwNzo1MiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBvaywgbGludXggbWFpbCBkb2Vzbid0IGxpa2UgW2NlbnNvcmVkXSBzb2xhcmlzIHN0eWxlOyBmaXgKCjIwMDUtMTAtMTEgMDc6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSBuZXQtc25tcC1jb25maWcgaXMgZXhlY3V0ZWFibGUgYmVmb3JlIGJ1aWxkaW5nIHBlcmwgbWFrZSBmaWxlcwoKMjAwNS0xMC0xMSAwNToyNyAgZHRzMTIKCiAgICogcGVybC86IFNOTVAvZXhhbXBsZXMvYnVsa3dhbGsucGwsCiAgICAgU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIFNOTVAvdC9idWxrd2Fsay50LAogICAgIG1hbmFnZXIvbWFuYWdlci5wbToKCiAgIEJlIGNvbnNpc3RlbnQgaW4gaG93IHZhcmlvdXMgcGVybCBzY3JpcHRzIGFyZSBpbnZva2VkLgoKMjAwNS0xMC0xMCAxOTo0MiAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgb3Yvb2lkX3RvX3N5bS5pbgosIG92L29pZF90b190eXBlLmluOgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBNYWMgT1MgWAoKMjAwNS0xMC0xMCAxODozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHVwZGF0ZSBsaW51eCBnZXRfaWZfc3BlZWQgZnVuY3Rpb24gbmFtZQoKMjAwNS0xMC0xMCAxODowMSAgdGFuZGVycwoKICAgKiBvdi86IG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluOgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBBSVgKCjIwMDUtMTAtMTAgMTc6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIGJyZWFrIGFwYXJ0IHJlYWRpbmcgb2YgY29uZmlnIGZpbGVzIGFuZCBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlcyAoYWxsb3dzCiAgICAgcHJvcGVyIGhhbmRsaW5nIG9mIHBlcnNpc3RlbnREaXIgdG9rZW4gaW4gY29uZmlnIGZpbGVzKQogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTAtMTAgMTc6NTEgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIHJlcGFsY2UgcGVybCB3LyAkKFBFUkwpCgoyMDA1LTEwLTEwIDE3OjQ0ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBBSVgKCjIwMDUtMTAtMTAgMTc6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IGZyb20gb3B0YXJnIHByb2Nlc3NpbmcKCjIwMDUtMTAtMTAgMTY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiBmb3IgZnJvbSBhZGRyZXNzIGZvciBlbWFpbCByZXN1bHRzCgoyMDA1LTEwLTEwIDE2OjI1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIC0gYWRkIGRpc3RpbmN0IGVtYWlsIGFkZHJlc3NlcyBmb3Igc3VjY2Vzcy9lcnJvciBjYXNlcwogICAtIGZpeGVzIGZvciAjJUAkKiYgc29sYXJpcyBtYWlsIGV4ZQogICAtIGRvbid0IHJlbW92ZSBkaXJlY3RvcnkgdGlsIHZlcnkgZW5kCgoyMDA1LTEwLTEwIDE2OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXhjbHVkZSBlcnJvciBsaW5lcyBmb3IgJ0luIGZ1bmN0aW9uJyAoZWcgZnVuYyBuYW1lIGNvbnRhaW5zIHdvcmQgZXJyb3IpCgoyMDA1LTEwLTEwIDE0OjU2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSBiYXNlIG1pYjJjLmNvbmYgZ2VuZXJhdGlvbiBvbiAkUEVSTCwgbm90IC1kIENWUwogICAtIGlmIG5vIHBlcmwsIHRvdWNoIGZpbGUgc28gaW5zdGFsbCBkb2Vzbid0IGZhaWwKCjIwMDUtMTAtMTAgMTQ6NDcgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBsb2NhbC9NYWtlZmlsZS5pbgosIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIGRlZmluZSBQRVJMIGluIGFsbCBtYWtlZmlsZXMgKHZpYSBNYWtlZmlsZS50b3ApCiAgIC0gcmVwbGFjZSBhbGwgY2FsbHMgdG8gcGVybCB3aXRoICQoUEVSTCkKICAgLSByZXBsYWNlIGV4aXN0aW5nIFBFUkxQUk9HIHdpdGggUEVSTCBpbiBtYWtlZmlsZXMKCjIwMDUtMTAtMTAgMTQ6MzggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgUEVSTExET1BUUyB0byBhZ2VudCBsaWJzCgoyMDA1LTEwLTEwIDA5OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgQWxsb3cgdGhlIGFkbWluaXN0cmF0b3IgdG8gY2hvb3NlIGJldHdlZW4gZm9sbG93aW5nIHRoZSBEaXNNYW4KICAgc3BlY2lmaWNhdGlvbnMgc3RyaWN0bHksIG9yIHVzaW5nIGFuIGFwcHJvYWNoIHRoYXQgYWN0dWFsbHkgd29ya3MhCiAgIChUaGUgb2ZmaWNpYWwgb3JkZXJpbmcgZm9yIGFkZGluZyB2YXJiaW5kcyB0byBhIG5vdGlmaWNhdGlvbgogICAgcGF5bG9hZCBsaXN0IG1ha2VzIGl0IGltcG9zc2libGUgdG8gdXNlIHNwZWNpZnkgVHJpZ2dlciBhbmQKICAgIEV2ZW50IG9iamVjdHMgaW4gYSBzZW5zaWJsZSBmYXNoaW9uKS4KCjIwMDUtMTAtMTAgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBEb24ndCByZXBvcnQgcm93cyB0aGF0IGhhdmVuJ3QgZmluaXNoZWQgYmVpbmcgY3JlYXRlZCwgYW5kCiAgIGRvbid0IGtlZXAgc2NoZWR1bGluZyBzYW1wbGVzIGZvciByb3dzIHRoYXQgYXJlIGRpc2FibGVkIG9yIHJlbW92ZWQuCgoyMDA1LTEwLTEwIDA5OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIFJlZHVuZGVudCAoYXV0by0pY29tbWVudC4KCjIwMDUtMTAtMTAgMDk6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBDb252ZXJ0aW5nIGJldHdlZW4gaW5kZXggcmVwcmVzZW50YXRpb25zIGlzIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLgoKMjAwNS0xMC0xMCAwODoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ29wZSB3aXRoIGEgbWlzc2luZyBpbnRlcm5hbCBxdWVyeSB1c2VybmFtZQogICAocmF0aGVyIHRoYW4gZm9yY2luZyBhIGhhcmR3aXJlZCBvbmUpCgoyMDA1LTEwLTEwIDA3OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBSZXR1cm4gdGhlIGZ1bGwgbGlzdCBvZiByZXN1bHRzIGZyb20gYW4gaW50ZXJuYWwgcXVlcnksCiAgIHJhdGhlciB0aGFuIHRydW5jYXRpbmcgaXQgYWZ0ZXIgdGhlIGZpcnN0IHZhcmJpbmQuCiAgIChXaHkgJ2Nsb25lX3Zhcicgc3RvbXBzIG9uIHRoZSBuZXh0IGxpbmsgaXMgYSBteXN0ZXJ5IHRvIG1lISkKCjIwMDUtMTAtMTAgMDc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEluZGljYXRlIHRoYXQgJ2lmX3NwZWVkJyBBUElzIGFyZSBMaW51eC1zcGVjaWZpYwogICAoYW5kIG5vdCBwYXJ0IG9mIHRoZSBnZW5lcmljIElGLU1JQiBkYXRhX2FjY2VzcyBmcmFtZXdvcmspCgoyMDA1LTEwLTA3IDE3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jOgoKICAgaWZkZWYgb3V0IGNvZGUgaWYgbW9kdWxlIG5vdCBlbmFibGVkCgoyMDA1LTEwLTA3IDE2OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBtb3ZlIG1pc2FwcGxpZWQgcGF0Y2ggdG8gY29ycmVjdCBsb2NhdGlvbgoKMjAwNS0xMC0wNyAxNjo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHR5cG8KCjIwMDUtMTAtMDcgMTY6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBvbmx5IHNhdmUgc2V0dGFibGUgY29scwoKMjAwNS0xMC0wNyAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaDoKCiAgIGRlZmluZSBzZXR0YWJsZSBjb2xzCgoyMDA1LTEwLTA3IDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBnZXQgcmlkIG9mIG9sZCBwZXJzaXN0ZW50IHNhdmUgZnVuY3MsIGluIGZhdm9yIG9mIG5ldyBnZW5lcmF0ZWQgc3R1ZmYKCjIwMDUtMTAtMDcgMTY6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgdHlwbwoKMjAwNS0xMC0wNyAxNjozOCAgdGFuZGVycwoKICAgKiBGQVE6CgogICBNYWpvciBvdmVyaGF1bCBvZiBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMgYmFzZWQgb24gNS4yLjIucHJlWCB0ZXN0aW5nCgoyMDA1LTEwLTA3IDE2OjI1ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBmaXggdHlwb3MgaW4gNS4yIE5FV1MKCjIwMDUtMTAtMDcgMTA6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgSG1tbW0uLi4uIHJlbW92aW5nIHRoZSBvYmplY3QgZW50cmllcyBmb2xsb3dpbmcgYSBkdXBsaWNhdGUgdHJpZ2dlcgogICBzZWVtcyB0byBiZSBwcm9ibGVtYXRpY2FsLiAgKEFzIGluIHRoZSBhZ2VudCBjcmFzaGVzISkgIEl0J3Mgbm90CiAgIGNsZWFyIHdoZXRoZXIgdGhpcyBpcyBhcHByb3ByaWF0ZSBiZWhhdmlvdXIgYW55d2F5LgoKICAgTmVlZCB0byB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUuCgoyMDA1LTEwLTA3IDA5OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyQ29uZi5jLAogICAgIG10ZVRyaWdnZXJDb25mLmg6CgogICBDb25maWd1cmUgbW9uaXRvcmluZyBvZiBVQ0Qtc3BlY2lmaWMgdGFibGVzCiAgIChjb21wYXRhYmlsaXR5IHdpdGggcHJldmlvdXMgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9uKS4KCiAgIE5vdCB5ZXQgZnVsbHkgdGVzdGVkLCBidXQgc2VlbXMgdG8gYmUgT0suCgoyMDA1LTEwLTA3IDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC5oLCBldmVudC9tdGVTY2FsYXJzLmMsCiAgICAgZXZlbnQvbXRlU2NhbGFycy5oOgoKICAgSW1wbGVtZW50IHRoZSBFdmVudC1NSUIgc2NhbGFyIG9iamVjdHMuCgoyMDA1LTEwLTA3IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAo6CgogICBBUEkgZm9yIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgdmFsdWVzIGJlaW5nIG1vbml0b3JlZC4KCjIwMDUtMTAtMDcgMDg6NDIgIHRhbmRlcnMKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZ2V0IHJpZCBvZiBDKysga2V5d29yZCAibmV3Ii4gTWZELWJhc2VkIGNvZGUgc3RpbGwgbmVlZHMgdG8gYmUgcmVnZW5lcmF0ZWQuCgoyMDA1LTEwLTA3IDA1OjU1ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgZGFyd2luOC5oIGFuZCBzb2xhcmlzMi4xMC5oCgoyMDA1LTEwLTA2IDIwOjMxICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGltcHJvdmUgaGVscCBvdXRwdXQKCjIwMDUtMTAtMDYgMjA6MjEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBBZGQgbmV0LXNubXAtY29uZmlnIG9wdGlvbnMgLS1kZWZhdWx0LW1pYnMsIC0tZGVmYXVsdC1taWJkaXJzLCAtLXBlcnNpc3RlbnQtZGlyZWN0b3J5IGFuZCAtLXNubXBjb25mcGF0aAoKMjAwNS0xMC0wNiAxOTowMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvU3YzY29uZmlnLAogICAgIHRlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RzL1N2YWNtY29uZmlnLAogICAgIHRlc3RzL1N2YW55Y29uZmlnOgoKICAgLSBjcmVhdGUgYW5kIHVzZSBwZXJzaXN0ZW50IGRpciBpbiB0ZXN0IGRpcmVjdG9yeSAoc28gbWFrZSB0ZXN0IGFzIHJvb3QKICAgICBkb2Vzbid0IG11Y2sgd2l0aCBzeXN0ZW0gcGVyc2lzdGVudCBjb25mKQoKMjAwNS0xMC0wNiAxODo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvdW50ZXI2NCBzdXBwb3J0IHRvIHNubXBfYWRkX3ZhciAoc28gdGhleSBjYW4gYmUgc2VudCB3L3NubXB0cmFwKQoKMjAwNS0xMC0wNiAxODo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgZXhwbGljaXQgYnJhY2VzIHRvIGtlZXAgY29tcGlsZXIgaGFwcHkKCjIwMDUtMTAtMDYgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGluY2x1ZGUgdXRtcC91dG1weCBoZWFkZXIgKGZpeCBmb3Igb25lIG9mIHRoZSBCU0RzKQoKMjAwNS0xMC0wNiAxODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIC0gaW5jcmVhc2UgZGVmYXVsdCBidWZmZXIgc2l6ZQogICAtIGNoZWNrIG9wZW4gcmMKICAgLSBsb2cgZXJyIGlmIG5vIGRhdGEgYXZhaWxhYmxlCgoyMDA1LTEwLTA2IDE4OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUvY3B1LmMsIG1lbW9yeS9od19tZW0uYzoKCiAgIHRoaXMgKEMrKyByZXNlcnZlZCB3b3JkKSAtPiB0aGlzX3B0cgoKMjAwNS0xMC0wNiAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY2FsbCBpbml0X2FnZW50eF9jb25maWcgaW5zdGVhZCBvZiByZWdpc3RlcmluZyBoYW5kbGVyIGRpcmVjdGx5CgoyMDA1LTEwLTA2IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIC0gc2xpZ2h0IHJlb3JnIG9mIGluaXRfYWdlbnR4X2NvbmZpZygpCiAgICAgLSBpZmRlZiBzb21lIHN0dWZmIGJhc2VkIG9uIG1hc3RlciBhZ2VudCBzdXBwb3J0CiAgICAgLSBtb3ZlIGFnZW50eChwZXJtc3x0aW1lb3V0KSBpbiBjb25kaXRpb25hbCBmb3IgYWdlbnQgcm9sZSA9PSBtYXN0ZXIKCjIwMDUtMTAtMDYgMDg6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjYXQgY29ycmVjdCBmaWxlIG9uIGVycm9ycwoKMjAwNS0xMC0wNiAwODozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIHRvIGVtYWlsIHJlc3VsdHMKCjIwMDUtMTAtMDYgMDc6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBJUklYIHRjcC1taWIgY2xlYW51cCBwYXRjaCAoZnJvbSBBbGJlcnQgQ2hpbikKCjIwMDUtMTAtMDYgMDU6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBQcmVsaW1pbmFyeSBoYW5kbGluZyBvZiBlcnJvcnMuCgoyMDA1LTEwLTA2IDA1OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEJsb2NrIGNvbmZpZ3VyYXRpb24gb2YgZGVsdGEtdGhyZXNob2xkcyBvbiBkZWx0YS1zYW1wbGVzLgoKMjAwNS0xMC0wNiAwNToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgQ29uc29saWRhdGUgaGFuZGxpbmcgb2Ygc3lzVXBUaW1lIGluc3RhbmNlIGRpc2NvbnRpbnVpdHkgbWFya2VyLgoKMjAwNS0xMC0wNiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBTdXBwb3J0IHRoZSBjb25maWd1cmF0aW9uIG9mICpqdXN0KiBkZWx0YSB0aHJlc2hvbGQgdGVzdHMuCgoyMDA1LTEwLTA2IDA1OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEltcGxlbWVudCBkZWx0YS10aHJlc2hvbGQgdGVzdHMuCgoyMDA1LTEwLTA2IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEFjY2VwdCBuZWdhdGl2ZSB2YWx1ZXMgKHJhdGhlciB0aGFuIHJlamVjdGluZyB0aGVtIGFzIGludmFsaWQgb3B0aW9ucykKCjIwMDUtMTAtMDYgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBEb24ndCBib3RoZXIgdHJ5aW5nIHRvIGZpcmUgbWlzc2luZyB0aHJlc2hvbGQgZXZlbnRzLgoKMjAwNS0xMC0wNSAwODoyNiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldCByaWQgb2YgQysrIGtleXdvcmQgImNsYXNzIgoKMjAwNS0xMC0wNSAwNDo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBTaWdoIC0gcmVhZCB0aGUgd2hvbGUgZW1haWwgbWVzc2FnZSwgRGF2ZSEKCjIwMDUtMTAtMDUgMDQ6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUmVtb3ZlIGJvZ3VzIHRyYWlsaW5nIGNvbW1hIChyZXBvcnRlZCBieSBBbGJlcnQgQ2hpbikKCjIwMDUtMTAtMDQgMTc6NTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjaGVjayByZXN1bHRzIG9mIGV2ZXJ5IHN5c3RlbSBjYWxsIGluc3RlYWQgb2YganVzdCBzcGVjaWFsIG9uZXMuCgoyMDA1LTEwLTA0IDEwOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZGVsdGEtdmFsdWVkIHNhbXBsZXMuCiAgIE9ubHkgdGVzdGVkIHdpdGggQm9vbGVhbiBlbnRyaWVzLCBhbmQgYSBiYXNpYyBzeXNVcFRpbWUuMAogICBkaXNjb250aW51aXR5IG1hcmtlci4gIFRocmVzaG9sZCBkZWx0YS12YWx1ZWQgc2FtcGxlcyBhbmQKICAgd2lsZGNhcmRlZCBkaXNjb250aW51aXR5IE9JRHMgb3VnaHQgdG8gd29yaywgYnV0IHN0aWxsIG5lZWQgdGVzdGluZy4KCjIwMDUtMTAtMDQgMTA6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDYW5vbmljYWxpc2UgcHJldmlvdXMvY3VycmVudCByZXN1bHRzIC0gbWF0Y2hpbmcgZW50cmllcyBsZWFkcyB0bwogICBzaW1wbGVyIHRlc3QgY29kZS4gIEFkanVzdCBFeGlzdGVuY2UgdGVzdHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcy4KCjIwMDUtMTAtMDMgMTk6NDcgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBGaXggdHlwbyBpbiBzY3JpcHQsIGZpeCAld2luZGlyJSBlbnYgdmFyIGNoZWNrLgoKMjAwNS0xMC0wMyAwNzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBSdW4gU0VUIGFzc2lnbm1lbnRzIGR1cmluZyB0aGUgQUNUSU9OIHBhc3MsIHNvIGVycm9ycyBjYW4gYmUgcmVwb3J0ZWQuCiAgIChTaG91bGQgZml4IEJ1ZyAjODY0MjgxLCBhbmQgYmUgY29uc2lzdGVudCB3aXRoIHBhc3MuYyBiZWhhdmlvdXIpCgoyMDA1LTEwLTAxIDE2OjUxICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gZm9yIGVtYWlsIG9mIGVycm9yIHJlc3VsdHMKCjIwMDUtMTAtMDEgMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgZml4IHV0bXAgaW5jbHVkZSBpZmRlZiBsb2dpYwoKMjAwNS0xMC0wMSAxMjoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTAxIDEyOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNoZWNrIGZvciBtYnN0YXQubV9tYnVmcyBiZWZvcmUgdXNpbmcKCjIwMDUtMDktMjkgMTg6NTEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBGaXggYnVnICMxMTUwMDE4OiBEeW5hbWljIGFsbG9jYXRpb24gb2YgZGlzayBzdG9yYWdlIGFycmF5LgoKMjAwNS0wOS0yOSAxODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGaXggYnVnICMxMTUwMDE4OiBEeW5hbWljIGFsbG9jYXRpb24gb2YgZGlzayBzdG9yYWdlIGFycmF5LgoKMjAwNS0wOS0yOSAxODoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIFBhdGNoIGZyb20gYnVnIzEyMzQ4MzQ6IGZpeGVzIHRhcmdldGFkZHJ0aW1lb3V0IHNvIGl0cyB3cml0YWJsZQoKMjAwNS0wOS0yOSAxODoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX2VudW1zLmNvbmY6CgogICBhZGRlZCBnZW5lcmF0aW9uIG9mIGVudW1zIGZvciBzY2FsYXJzCgoyMDA1LTA5LTI5IDEzOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgc2V0IHNvY2sgYnVmIHNpemUgZm9yIHVuaXggZG9tYWluIHNvY2tldHMKCjIwMDUtMDktMjkgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5jOgoKICAgSW1wbGVtZW50IHNpbmdsZS12YWx1ZWQgdGhyZXNob2xkIHRyaWdnZXJzLgoKMjAwNS0wOS0yOCAxODoyOCAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIFdpbjMyIE1TVkM6ICBFbmFibGUgQUVTIGVuY3J5cHRpb24gd2hlbiBTU0wgaXMgZW5hYmxlZC4KCjIwMDUtMDktMjggMTc6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIHN3YXAgcmV2ZXJzZWQgaWYvZWxzZSBjb2RlCgoyMDA1LTA5LTI4IDE1OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgcHJvdmlkZSBkZWZhdWx0IGZvciBpbnRlcm5hbCBzZWNuYW1lCgoyMDA1LTA5LTI4IDEyOjM4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGxhc3QgcmVtYWluaW5nICJwcmVzZW50LCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nIG9uIFNvbGFyaXMgOQoKMjAwNS0wOS0yOCAxMTozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQvLmN2c2lnbm9yZSwKICAgICBldmVudC9tdGVFdmVudC5jLCBldmVudC9tdGVFdmVudC5oLAogICAgIGV2ZW50L210ZUV2ZW50Q29uZi5jLCBldmVudC9tdGVFdmVudENvbmYuaCwKICAgICBldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCBldmVudC9tdGVFdmVudFNldFRhYmxlLmMKLCBldmVudC9tdGVFdmVudFNldFRhYmxlLmgsIGV2ZW50L210ZUV2ZW50VGFibGUuYwosIGV2ZW50L210ZUV2ZW50VGFibGUuaCwgZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGV2ZW50L210ZU9iamVjdHMuaCwgZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywKICAgICBldmVudC9tdGVPYmplY3RzQ29uZi5oLCBldmVudC9tdGVPYmplY3RzVGFibGUuYywKICAgICBldmVudC9tdGVPYmplY3RzVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGV2ZW50L210ZVRyaWdnZXIuaCwgZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwosIGV2ZW50L210ZVRyaWdnZXJDb25mLmgsIGV2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKLCBldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICAgIGV2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyVGFibGUuYwosIGV2ZW50L210ZVRyaWdnZXJUYWJsZS5oLAogICAgIGV2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgTmV3IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXNNYW4gRXZlbnQgTUlCLgoKMjAwNS0wOS0yOCAxMDoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBhZGRlZCBkb2N1bWVudGF0aW9uIGRlc2NyaWJpbmcgdGhlIGV4ZWMoKSBwYXRoIHJlcXVpcmVtZW50CgoyMDA1LTA5LTI4IDEwOjIxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFVwZGF0ZWQgZG9jcyBvbiAtSWIgdG8gZG9jdW1lbnQgZXh0cmEgbGltaXRhdGlvbnMKCjIwMDUtMDktMjggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBFeHRlbmQgdGFibGUgaW50ZXJmYWNlIHdpdGggcm93IGNvbXBhcmlzb24gQVBJIHJvdXRpbmVzLgoKMjAwNS0wOS0yOCAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVXNlIHRoZSBkZWZhdWx0IHF1ZXJ5IHNlc3Npb24gZnJvbSB0aGUgbGlicmFyeS4KCjIwMDUtMDktMjggMDY6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFN1cHBvcnQgdGhlIGlkZWEgb2YgYSAiZGVmYXVsdCBzZXNzaW9uIiBmb3IgdGhlIHF1ZXJ5IGNvbnZlbmllbmNlIHJvdXRpbmVzLgoKMjAwNS0wOS0yOCAwNTowMCAgdGFuZGVycwoKICAgKiBSRUFETUU6CgogICByZXZlYWwgbXkgY29udGludWVkIHByZXNlbmNlIGFyb3VuZCBoZXJlCgoyMDA1LTA5LTI4IDA0OjUzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDYWxsYmFjayB0byByZXBvcnQgZXN0YWJsaXNobWVudCBvZiBhIGNvbm5lY3Rpb24gKGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDUtMDktMjcgMjI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSBjb252ZXJ0IG1hc2sgdG8gbmV0d29yayBieXRlIG9yZGVyCiAgIC0gdXBkYXRlIHBmeF9sZW4gY291bnRpbmcgZm9yIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIGFkZCBsaXR0bGUgZW5kaWFuIC9wcm9jL25ldC9yb3V0ZSBleGFtcGxlIGxpbmUKICAgLSBvbmx5IHNldCByb3V0ZSBwb2xpY3kgZm9yIGRlZmF1bHQgZ2F0ZXdheSByb3V0ZXMKICAgLSB1cGRhdGUgZm9yIG5ldyBzdGF0aWMgcG9saWN5IGZsYWcKICAgLSBuZXcgcm91dGUgY3JlYXRlL2RlbGV0ZSBmdW5jdGlvbnMKCjIwMDUtMDktMjcgMTk6MjUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICAtIG1vdmUgYWN0aXZlIHJvdyBzZXQgcmVzdHJpY3Rpb24gdG8gZGVwZW5kZW5jeSBjaGVjayBmdW5jdGlvbgogICAtIHVwZGF0ZSBhc3NlcnQgdG8gdGVzdCBhZ2FpbnN0IG5ldyBleHBlY3RlZCB2YWx1ZQoKMjAwNS0wOS0yNyAxOToxMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4xMC5oOgoKICAgYWRkIFNvbGFyaXMgMTAgc3VwcG9ydAoKMjAwNS0wOS0yNyAxOTowOCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgoKMjAwNS0wOS0yNyAxNzo0NSAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFRydTY0IFVuaXggNS54IGJ1aWxkIGZpeGVzIChidWcgIzEyMTc1MDkpCgoyMDA1LTA5LTI3IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBwcmludCByYW5nZSBpbmZvcm1hdGlvbgoKMjAwNS0wOS0yNyAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSB1c2UgbmV3IHJvdXRlX2VudHJ5IGZ1bmN0aW9ucyBmb3IgZHluYW1pYyBpcHY0IHJvdXRlIGNyZWF0aW9uL2RlbGV0aW9uCiAgIC0gbnVrZSBnZW5lcmF0ZWQgY29sdW1uIHVuZG8gZnVuY3MsIHVzZSBuZXcgdGFibGUgbGV2ZWwgb25lIGluc3RlYWQKICAgLSBhZGQgc29tZSBkZXBlZGVuY3kgdmFsaWRhdGlvbiAoYWRkciB0eXBlICYgZXhwZWN0ZWQgYWRkciBsZW4pCgoyMDA1LTA5LTI3IDEzOjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICByZW1vdmUgZGVidWdnaW5nIGNvbW1lbnRzCgoyMDA1LTA5LTI3IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBwYXRjaCAjMTMwNDQwMDogYmV0dGVyIGhyU1dSdW5UeXBlIHN1cHBvcnQKCjIwMDUtMDktMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzEyMjUzNjAgdG8gZml4IHRoZSBzbXV4IGVuY29kaW5nIG9mIHRoZSByZXF1ZXN0aWQgdG8gYSBzaWduZWQgaW50CgoyMDA1LTA5LTI3IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBrZXkgdmFjbSAibm8gYWNjZXNzIiB3YXJuaW5nIG9mZiBhZ2VudF9tb2RlIGluc3RlYWQgb2YgYXBwIHR5cGUKCjIwMDUtMDktMjcgMTI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHNvY2sgc3RhcnR1cAoKMjAwNS0wOS0yNyAxMjowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gZG9jdW1lbnQgdGhhdCBhZGRyZXNzZXMgYXJlIGluIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIGJ1bXAgbWF4IHBvbGljeSBvaWQgbGVuZ3RoIHRvIDIsIHRvIGhhbmRsZSBkZWZhdWx0IG51bGwgb2lkIGNhc2UKICAgLSBtb3ZlIHBvbGljeSBzdGF0aWMgZmxhZyBkZWZpbml0aW9uIHdpdGggb3RoZXIgZmxhZ3MKICAgLSBjaGFuZ2UgcG9saWN5IHN0YXRpYyBmbGFnIHNvIGFzIG5vdCB0byBjb25mbGljdCB3aXRoIGl0ZW0gY2hhbmdlZCBmbGFncwogICAtIGFkZCBuZXcgcG9saWN5IGRlZXAgY29weSBmbGFnCiAgIC0gYWRkIG1hY3JvIG9mICdjaGFuZ2UgaXRlbScgZmxhZ3MgbWFzawoKMjAwNS0wOS0yNyAxMjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtLWZvcndhcmQgZmxhZyB0byBwYXRjaCBjb21tYW5kCgoyMDA1LTA5LTI3IDEyOjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICAtIHVzZSBuZXcgbWliMmMgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0cyBmb3IgcHJvcGVyIHNpemVzIHdoZW4gY29weWluZwogICAgIGFuZCBjb21wYXJpbmcgZGF0YQoKMjAwNS0wOS0yNyAxMTo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIC0gb3ZlcnJpZGUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ3RoIHVuaXRzOyBib3RoIGFyZSBlbGVtZW50cwogICAtIHVwZGF0ZSBpbml0aWFsIHNldCBvZiBtYXggbGVuIHRvIGJlIGVsZW1lbnRzCgoyMDA1LTA5LTI3IDExOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGRlZmluZSBkZWZhdWx0IGxlZnQvcmlnaHQgaGFuZCBsZW5naHQgdW5pdHMgKGJ5dGVzL2VsZW1lbnRzKQoKMjAwNS0wOS0yNyAxMTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBkZWZpbmUgc2VwYXJhdGUgc2V0dGFibGUgZmxhZ3MKICAgLSBkZWZpbmUgc2V0dGFibGUgY29sdW1uIG1hY3JvCgoyMDA1LTA5LTI3IDExOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBmaXggaW5jb3JyZWN0IHJldHVybiBkZWZpbmUgc3VnZ2VzdGlvbiBpbiBjb21tZW50CgoyMDA1LTA5LTI3IDExOjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhbHdheXMgdHJhY2sgaWYgZGF0YSBjb250ZXh0IHdhcyBwcm92aWRlZCBieSB1c2VyCiAgIC0gZG9uJ3QgY2FsbCBkYXRhIGN0eCBpbml0IHJvdXRpbmUgZm9yIHVzZXIgcHJvdmlkZWQgZGF0YQogICAtIHJlbW92ZSBpbnRlcm5hbC92ZXJib3NlIHByZWZpeCBmcm9tIGFsbCBkZWJ1ZyBlcnJvciBjYXNlcwogICAtIGRvbid0IHRyeSB0byBjb3B5IGluZGV4ZXMgaWYgaW5kZXggY2hlY2sgZmFpbGVkIChhbmQgY3R4IHdhcyByZWxlYXNlZCEpCiAgIC0gY2FsbCByb3dfcHJlcCBmb3IgbmV3bHkgY3JlYXRlZCByb3dzIChkeW5hbWljIHJvdyBjcmVhdGlvbikKICAgLSBjYWxsIG5ldyB0YWJsZSB1bmRvIGJlZm9yZSBjb2x1bW4gdW5kbwoKMjAwNS0wOS0yNyAxMTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgLSBvbmx5IGluY2x1ZGUgc2V0dGFibGUgb2JqZWN0IHdoZW4gY2FsY3VsYXRpbmcgdG1wIHN0b3JhZ2Ugc2l6ZQogICAtIGRvbid0IGNhbGwgY29sX3NhdmUgcm91dGluZSBpZiBjb2x1bW4gaXNuJ3Qgc2V0dGFibGUKCjIwMDUtMDktMjcgMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhZGQgdGFibGUgbGV2ZWwgdW5kbyBiZWZvcmUgY29sdW1uIGxldmVsIHVuZG8KCjIwMDUtMDktMjcgMTE6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgaGFuZGxlIG5ld2x5IGNyZWF0ZWQgcm93IHcvcm93IHN0YXR1cyBvZiBkZXN0cm95CgoyMDA1LTA5LTI3IDExOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICAtIGRvbid0IGZyZWUgcnRfcG9saWN5IGlmIHN0YXRpYyBmbGFnIHNldAogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgcm91dGUgY2hhbmdlcwogICAtIG5ldyBmdW5jdGlvbiB0byBjb3B5IHJvdXRlX2VudHJpZXMKCjIwMDUtMDktMjcgMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgcmVxdWlyZSBuZXcgcm91dGVfaW9jdGwgZm9yIGxpbnV4CgoyMDA1LTA5LTI3IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgLSB1cGRhdGUgdGltZW91dCBmb3IgYXV0by11cGRhdGUgY2FjaGVzIHdoZW4gbWliIHZhbHVlIGNoYW5nZWQKCjIwMDUtMDktMjcgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIGNvZGUgZm9yIGhlbHAgY2FzZSBhZnRlciBhbGwgY29tbWFuZCBsaW5lIGFyZ3MgaGF2ZSBiZWVuIHByb2Nlc3NlZAogICAtIGFkZCBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAoLW4pIGZvciAnYXBwbGljYXRpb24gbmFtZSc7IHZlcnkgdXNlZnVsIGZvcgogICAgIGhhdmluZyBtdWx0aXBsZSBjb25maWdzLCBhbmQgd29ya3Mgd2VsbCB3aXRoIHBlcnNpc3RlbnQgc3RvcmUgdG9vLiBPcGVuCiAgICAgZm9yIHN1Z2dlc3Rpb25zIG9uIGEgZGlmZmVyZW50IGNoYXIgKG9yIG1lcmdlIHcvc29tZSBleGlzdGluZyBtdWx0aS1jaGFyCiAgICAgc2V0OyBtYXliZSAtQykuCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjcgMTE6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBkaXNtYW4vZXZlbnQtbWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QKICAgLSBhZGQgaG9zdCB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IGZvcgogICAgIGxpbnV4KiB8IG1pbmd3MzIqIHwgY3lnd2luKiB8IGZyZWVic2QqIHwgZHluaXgqIHwgc29sYXJpczIqIHwgaHB1eCoKCjIwMDUtMDktMjcgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIG5vbi1zb3VyY2UgZmlsZXMgZ2VuZXJhdGVkIGJ5IE1GRAoKMjAwNS0wOS0yNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLzogcm91dGVfaW9jdGwuYywKICAgICByb3V0ZV9pb2N0bC5oLCByb3V0ZV9saW51eC5oOgoKICAgY29weSByb3V0ZSBpb2N0bHMgZnJvbSBtaWJJSS9yb3V0ZV93cml0ZSAmIHVwZGF0ZSBmb3Igcm91dGVfZW50cnkKCjIwMDUtMDktMjYgMTk6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDEyOTI4OTYgY2hlY2tpbmcgZm9yIC0xIGJlZm9yZSBzZWFyY2hpbmcgZm9yIFRDIHR5cGUKCjIwMDUtMDktMjYgMTg6NTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0yNiAxODo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IG1ha2UgZGVjaXNpb25zIGJhc2VkIG9uIHRhcmdldF9vcyB1bnRpbCBhZnRlciBpdCdzIHNldCEKCjIwMDUtMDktMjYgMTg6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQnVnIFBhdGNoICMxMjk2ODQyOiBkb24ndCByZXR1cm4gZnJvbSB2b2lkIGZ1bmN0aW9uCgoyMDA1LTA5LTI2IDE2OjIxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZml4IFNOTVB2MyBjb25maWcgaWYgQUVTIGlzbid0IGF2YWlsYWJsZQoKMjAwNS0wOS0yNiAxMzowMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgRml4ICIteCIgb3B0aW9uCgoyMDA1LTA5LTI2IDA4OjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3BlbkJTRCBidWlsZCBmaXg6IGJyaW5nIGluIHN5cy90aW1lb3V0LmgKCjIwMDUtMDktMjQgMTU6MDIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBQdXQgYmFjayBtaXNzaW5nICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29tcGxldGVseQogICByZW1vdmUnIG1lc3NhZ2Ugd2hlbiB1bmluc3RhbGxpbmcuCgoyMDA1LTA5LTIzIDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIEFkZCBvcHRpb25hbCBjaGVjayBmb3IgT3BlblNTTCBETEwgKGxpYmVheTMyLmRsbCkKCjIwMDUtMDktMjMgMTI6MjQgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSB0aGF0IHNubXBkIG5vdyBpbXBsZW1lbnRlZCBub3RpZmljYXRpb24gbG9nZ2luZyBhbmQgZmlsdGVyaW5nCgoyMDA1LTA5LTIzIDEwOjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlcnVuIGF1dG9jb25mCgoyMDA1LTA5LTIzIDEwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIHNocmluayBidWZmZXIgc2l6ZSBzbyBNSUIgc2l6ZSBsaW1pdCBub3QgZXhjZWVkZWQKCjIwMDUtMDktMjIgMTk6MDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIHNvY2tldHZhci5oIGFmdGVyIHNvY2tldC5oCgoyMDA1LTA5LTIyIDE3OjIxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRGVmYXVsdCB0byBkaXNsYWJlZCBmb3IgZGV2ZWxvcG1lbnQgZmlsZXMuCgoyMDA1LTA5LTIyIDE1OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcHV0IHZhciBuYW1lIGluIGJyYWNlcyB0byBzZXBhcmF0ZSBmcm9tIGFwcGVuZGVkIHRleHQKCjIwMDUtMDktMjAgMDk6MjMgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNpbmNlIHRoZSBsZW5ndGggcGFyYW1ldGVyIGlzbid0IGFsd2F5cyByZXF1aXJlZCB3aGVuIHN0b3JpbmcgZGF0YSwKICAgYWxsb3cgaXQgdG8gYmUgb21pdHRlZCAoYW5kIGNvcnJlY3QgdGhlIG1pc2xlYWRpbmcgY29tbWVudCBhcyB0bwogICBob3cgdGhpcyBpcyBhY3R1YWxseSB1c2VkISkKCjIwMDUtMDktMTYgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZSB0byBmaXggcXVvdGluZyBmb3IgbmV3ZXIgYXV0b2NvbmZzCgoyMDA1LTA5LTE2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgY29ycmVjdCBtaXNzaW5nIGZ1bmN0aW9uIGNhbGxzIG5vdyByZXBsYWNlZCBieSB0ZGF0YS4KCjIwMDUtMDktMTYgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIHN0cmluZyBwYXJzaW5nIG9mIGNvdW50ZXI2NHMKCjIwMDUtMDktMTYgMTQ6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0xNiAxNDozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdXBkYXRlIG91dC1vZi1zeW5jIHZlcnNpb24gbnVtYmVycwoKMjAwNS0wOS0xNiAxMzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBkb24ndCB0cnkgdG8gdXNlIFNJT0MoQUREfERFTClSVCBpZiB0aGV5IGFyZW4ndCBkZWZpbmVkCgoyMDA1LTA5LTE2IDEyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgSFJTV1JVTlBFUkZfTUVNIGRvbid0IHdvcmsgb24gZGFyd2luOAoKMjAwNS0wOS0xNiAxMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgdXNlIG5ldyBjb25maWd1cmUgdmFyIFBFUkxMRE9QVFMKCjIwMDUtMDktMTYgMTI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgbWlzc2luZyBzZWNvbmQgc2VtaWNvbG9uCgoyMDA1LTA5LTE2IDExOjUxICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfbG9nZ2luZy5jOgoKICAgUGljayB1cCBhIGNvdXBsZSBvZiBzdHJheSAnc3RyaW5ncycgdGhhdCBzbGlwcGVkIHRocm91Z2guCiAgIChhbmQgYSBib2d1cyBBU04gdHlwZSBuYW1lKQoKMjAwNS0wOS0xNiAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHJlZmluZSBjb25kaXRpb25hbCBpbmNsdWRlcyBsb2dpYwoKMjAwNS0wOS0xNiAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaWZmIGF2YWlsYWJsZQoKMjAwNS0wOS0xNiAxMDo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJyZWFrIHBlcmwgbGQgb3B0cyBpbnRvIGl0cyBvd24gdmFyCgoyMDA1LTA5LTE2IDEwOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgcmV2aXNlZCAndGRhdGEnIEFQSS4KCjIwMDUtMDktMTYgMDc6NDggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgYXBwcm9wcmlhdGUgbGlicmFyeSB1dGlsaXR5IHJvdXRpbmVzIGZvciByZXR1cm5pbmcgYQogICBjb2x1bW4gdmFsdWUsIGFuZCBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgYW4gYXNzaWdubWVudC4KCjIwMDUtMDktMTYgMDc6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgKHJldmlzZWQpIGNvbnRhaW5lci1iYXNlZCAndGFibGVfZGF0YTInIGhlbHBlci4KCjIwMDUtMDktMTYgMDc6MjEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCB0eXBvIHdoZW4gZGVmaW5pbmcgcmFuZ2Ugb2YgdmFsaWQgY29sdW1ucy4KCjIwMDUtMDktMTYgMDc6MTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIEkndmUgbmV2ZXIgbGlrZSB0aGUgcmVuYW1pbmcgb2YgdGhlIGNvbnRhaW5lci1iYXNlZCB0YWJsZV9kYXRhCiAgIEFQSSBjYWxscyBhbmQgZGF0YSBzdHJ1Y3R1cmVzLiAgSWYgd2UncmUgc3RhcnRpbmcgdG8gdGhpbmsgYWJvdXQKICAgcmVsZWFzaW5nIHRoaXMgY29kZSwgdGhlbiBhbnkgYWx0ZXJhdGlvbnMgbXVzdCBiZSBtYWRlICpiZWZvcmUqCiAgIHRoaXMgZ29lcyBsaXZlLCBvciBlbHNlIGl0J2xsIGJlIHRvbyBsYXRlLgoKICAgSSd2ZSBmaW5hbGx5IGNvbWUgdXAgd2l0aCBhIGZvcm0gb2YgbmFtaW5nIGZvciB0aGUgdGFibGVfZGF0YTIKICAgY29kZSB0aGF0IEknbSByZWFzb25hYmx5IGhhcHB5IHdpdGggKGJhc2VkIGFyb3VuZCAndGRhdGEnKSwKICAgc28gdGhpcyBwYXRjaCByZXdyaXRlcyB0aGlzIGhlbHBlciB0byB1c2UgdGhhdCBzdHlsZSAoYXMgd2VsbAogICBhcyB0d2Vha2luZyB0aGUgZGF0YXNldDIgY29kZSB0byBtYXRjaCkuCiAgICAgVGhlIG1haW4gZGF0YXNldDIgQVBJIGhhc24ndCBiZWVuIHByb3Blcmx5IHVwZGF0ZWQsIGJ1dCB0aGlzCiAgIHNob3VsZCBwcm9iYWJseSBhbHNvIGJlIGFkZHJlc3NlZCBiZWZvcmUgNS4zIGdvZXMgb3V0IG9mIHRoZSBkb29yLgoKICAgVGhpcyB2ZXJzaW9uIGFsc28gaWxsdXN0cmF0ZXMgYSBzdWl0YWJsZSAiZ2VuZXJpYyB0YWJsZSBBUEkiLAogICB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRhYmxlIGhlbHBlcnMgYXMKICAgd2VsbC4gIFNvbWUgYXNwZWN0cyBvZiBpdCBtYXkgYmUgc3BlY2lmaWMgdG8gdGhlIHRhYmxlX2RhdGEKICAgZnJhbWV3b3JrLCBidXQgdGhlIGJhc2ljIGlkZWFzIGFyZSBtb3JlIHdpZGVseSByZWxldmFudC4KCjIwMDUtMDktMTYgMDY6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYzoKCiAgIEEgY29udGFpbmVyLWJhc2VkICdkYXRhc2V0JyBpbXBsZW1lbnRhdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgY29udmVydAogICBHRVRORVhUL0JVTEsgcmVxdWVzdHMgaW50byBhbiBlcXVpdmFsZW50IEdFVCByZXF1ZXN0IChpbmNsdWRpbmcgdXBkYXRpbmcKICAgdGhlIE9JRCkuICBTbyBhbGwgdGhhdCdzIHJlcXVpcmVkIGlzIHRvIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgdmFsdWUuCiAgIFRoZSAnbmV0c25tcF90YWJsZV9kYXRhMl9idWlsZF9yZXN1bHQnIHJvdXRpbmUgaXMgdGhlcmVmb3JlIHJlZHVuZGVudC4KCjIwMDUtMDktMTYgMDY6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBEZWZpbmUgYSBuZXcgY2hlY2sgdXRpbGl0eSByb3V0aW5lIGZvciB1bnNpZ25lZCBpbnRlZ2Vycy4KICAgSW50ZWdlcnMgYXJlIG1lYW50IHRvIGJlIHJlcHJlc2VudGVkIGFzICdsb25nJyByYXRoZXIgdGhhbiAnaW50JyB2YWx1ZXMuCgoyMDA1LTA5LTE2IDA2OjMwICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBpbnQ2NC5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXAtdGMuYywgc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMKLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgQmxpdHogdXNlIG9mICdzdHJpbmcnIGFzIGEgdmFyaWFibGUgbmFtZS4KCjIwMDUtMDktMTYgMDU6NDkgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlZ2VuZXJhdGUgdG8gbWF0Y2ggdXBkYXRlZCAnY29uZmlndXJlLmluJwoKMjAwNS0wOS0xNiAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBVc2UgYSBzZWN1cml0eSBtb2RlbCBudW1iZXIgZGVmaW5lZCBpbiB0aGUgZ2xvYmFsIGhlYWRlciBpbnN0ZWFkIG9mIGEKICAgaGFyZC1jb2RlZCBudW1iZXIKCjIwMDUtMDktMTYgMDE6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgZGVmaW5lIHNlY3VyaXR5IG1vZGVsIG51bWJlcnMgZm9yIG5ldC1zbm1wIHNwZWNpZmljIHNlY3VyaXR5IG1vZGVscwogICBoZXJlIHRvIGtlZXAgYSByZWdpc3RyeSBpbiBhIGNlbnRyYWwgcGxhY2UuCgoyMDA1LTA5LTE2IDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwKICAgICBzbm1wbGliL3NubXBsb2NhbHNtLmM6CgogICAtIERlZmluZWQgYSBsb2NhbCBzZWN1cml0eSBtb2RlbCB0aGF0IGFzc3VtZXMgdGhlIHBlcnNvbiB0aGF0IGV4ZWN1dGVkCiAgICAgdGhlIGFnZW50IGlzIHRoZSBvbmUgd2hvIHNob3VsZCBiZSBhdXRob3JpemVkLiAgSXQgcmVxdWlyZXMgdGhhdCBhCiAgICAgdHJhbnNwb3J0IHdhcyB1c2VkIHRoYXQgd2FzIG5vdCBhIGRpcmVjdCBuZXR3b3JrIHRyYW5zcG9ydCAoRUcsCiAgICAgY3VycmVudGx5IHRoaXMgbWVhbnMgaXQgd2FzIHR1bm5lbGVkIG9yIHNlbnQgdGhyb3VnaCBzdGRpbi9vdXQKICAgICBjaGFubmVsKS4gIEF1dGhlbnRpY2F0aW9uIGFuZCBlbmNyeXB0aW9uIGxldmVsLCBiZWluZyB1bmtub3duLCBpcwogICAgIGxlZnQgYXQgbm9BdXRoTm9Qcml2LgoKICAgICBUaGlzIG1vZGVsIGlzIGV4cGVjdGVkIHRvIGJlIHVzZWQgZm9yIGV4cGVyaW1lbnRhbCBhbmQgcHVycG9zZXMgb25seQogICAgIGF0IHRoaXMgdGltZSBhbmQgc2hvdWxkIHByb2JhYmx5IG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uCgoyMDA1LTA5LTE2IDAwOjQ1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgZGVmaW5lIGEgUERVIHR1bm5lbGVkIGZsYWcKCjIwMDUtMDktMTUgMTE6NTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbW50X2RpciBpbiBzdGF0dmZzCgoyMDA1LTA5LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL21ha2VodG1sLnBsOgoKICAgQWRkZWQgYSBsaW5rIHRvIHRoZSBjb25mb3JtYW5jZSBzdW1tYXJ5LgoKMjAwNS0wOS0xNSAwOTo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgLSBBZGRlZCBTVEQgaW5pdAoKMjAwNS0wOS0xNSAwOTo0NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIC0gQWRkZWQgYWJpbGl0eSBmb3IgU1REIGhhbmRsZXIgdG8gY2FsbCBleHRlcm5hbCB0aGluZ3MgdG8gcGlwZSB0by9mcm9tCiAgIC0gQmVnaW5uaW5nIHN1cHBvcnQgZm9yIGEgdHJhbnNwb3J0IGJlaW5nIGtub3duIGFzICJ0dW5uZWxlZCIuCgoyMDA1LTA5LTE1IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgbWlub3IgZml4ZXMKCjIwMDUtMDktMTUgMDk6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBEZWZpbml0aW9ucyBmb3IgbmV3IGZlYXR1cmVzIChzdGQgYW5kIGEgZnV0dXJlIFNNIG1vZGVsKQoKMjAwNS0wOS0xNCAyMzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY2hlY2sgZm9yIHN0cnVjdCBtZW1iZXIgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTE0IDIwOjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oIGVhcmxpZXIKICAgLSBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBpbiBuZXR3b3JrIGhlYWRlciB0ZXN0cwogICAtIGZpeCB3aXRob3V0LWVsZiB0ZXN0CgoyMDA1LTA5LTE0IDIwOjA2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oOgoKICAgbWlzc2luZyBkZWZpbmVzIGZvciBkYXJ3aW44IChPUyBYIDEwLjQuMikKCjIwMDUtMDktMTQgMTQ6MTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICBBZGRlZCBhIG9kZCB0cmFuc3BvcnQgdG8gZG8gc3R1ZmYgdGhyb3VnaCBzdGRpbi9vdXQKCjIwMDUtMDktMTMgMTQ6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmg6CgogICByZW1vdmUgdW51c2VkIGZpbGUKCjIwMDUtMDktMTIgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBQcm92aWRlIGEgbWFrZSB0YXJnZXQgZm9yIHRlc3RpbmcgdGhlIE1JQnMgaW1wbGVtZW50ZWQgYnkgYW4gYWdlbnQuCiAgIFRoZSBiZWhhdmlvdXIgb2YgdGhpcyB0YXJnZXQgbWF5IG5lZWQgc29tZSBhZGp1c3RtZW50LCBidXQgaXQncyBhIHN0YXJ0Li4uCgoyMDA1LTA5LTEyIDExOjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBEb2N1bWVudCB0aGF0ICdkZWxldGVfcm93JyBob29rIGRvZXNuJ3QgcmV0dXJuIGEgdXNlZnVsIHJlc3VsdC4KCjIwMDUtMDktMTIgMTE6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgdGhlIHRhYmxlX2FycmF5IGhlbHBlciAoYXMgdXNlZCBieSB0aGUgIm1pYjJjLmFycmF5LXVzZXIuY29uZiIKICAgdGVtcGxhdGUpIGluIHRoZSBjb21iaW5lZCBoZWxwZXIgaGVhZGVyIGZpbGUuCiAgICAgKE5vdyB3ZSdsbCBmaW5kIG91dCB3aHkgaXQgd2FzIG9taXR0ZWQuLi4uLikKCjIwMDUtMDktMTIgMTA6NTAgIGR0czEyCgogICAqIHNubXBsaWIvOiBjaGVja192YXJiaW5kLmMsIHNubXAtdGMuYzoKCiAgIEVuc3VyZSB0aGF0IGludmFsaWQgUm93U3RhdHVzIGFzc2lnbm1lbnRzIHJldHVybiBhICd3cm9uZ1ZhbHVlJyBlcnJvci4KCjIwMDUtMDktMTIgMTA6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBBZGRpdGlvbmFsIFNFVCB2YWxpZGF0aW9uIHV0aWxpdHkgcm91dGluZXMKICAgKGZvciBPSUQgYW5kIGdlbmVyYWwgSU5URUdFUiBhc3NpZ25tZW50cykKCjIwMDUtMDktMTIgMTA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbGl0aWVzLmgsIHV0aWxpdGllcy9pcXVlcnkuaDoKCiAgIEluY2x1ZGUgdGhlIG5ldyAiaW50ZXJuYWwgcXVlcnkiIG1vZHVsZQoKMjAwNS0wOS0wOSAwNzoxMSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIG5ldyBtaWIyYyBjb25maWcgZmlsZXMuIChCdWcgIzEyODQzMTUpCgoyMDA1LTA5LTA5IDA2OjA5ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBFbnN1cmUgdGhhdCB0aGUgTUlCIGludGVybmFscyBhcmUgaW5pdGlhbGlzZWQgYmVmb3JlIHVzaW5nIHRoZW0uICAoQnVnICM3MDU1MzYpCgoyMDA1LTA5LTA4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgc2h1dGRvd24gY29kZSAoaGFuZGxlZCBieSBpZlRhYmxlKQoKMjAwNS0wOS0wNyAxMDozMCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgRml4IGEgJ215JyBsaXN0IGRlY2xhcmF0aW9uIHRoYXQgc2xpcHBlZCB0aHJvdWdoIHRoZSBuZXQuCiAgIENhbiBmaW5hbGx5IGNsb3NlIGJ1Z3MgIzU3OTcwNSAmICM2MDExOTAuCgoyMDA1LTA5LTA3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXBvcnQgZXJyb3JzIGZvciBpbnZhbGlkIHRhYmxlIE9JRHMgYXBwcm9wcmlhdGVseSBmb3IgdGhlIHR5cGUgb2YgcmVxdWVzdC4KICAgKEJhc2VkIG9uIHBhdGNoICMxMjc2OTk5IGJ5IFJvYmVydCBXaWxjb3gpCgoyMDA1LTA5LTA3IDA1OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFR3ZWFrIHRvIFVTTSBkZWJ1Z2dpbmcgLSBoZWxwIGRldGVjdCBlbmdpbmVJRCBtaXNtYXRjaGVzCgoyMDA1LTA5LTA2IDIxOjQ4ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTA5LTA2IDIwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgV2luMzIgTVNWQyBjb21waWxlIGZpeCAtIGRlY2xhcmUgdmFyaWFibGVzIGF0IHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLgoKMjAwNS0wOS0wNiAyMDowNyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIENoYW5nZSBkZWZhdWx0IHZlcnNpb24gZm9yIGJpbmFyeS4KCjIwMDUtMDktMDYgMjA6MDYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9idWlsZC5wbAosIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCAnRGV2ZWxvcG1lbnQgZmlsZXMnIHNlY3Rpb24gdG8gd2luMzIgYmluYXJ5CgoyMDA1LTA5LTA2IDE5OjI5ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgV2luMzI6IFVwZGF0ZSBiaW5hcnkgUkVBRE1FLnR4dCB0byByZWZlcmVuY2UgUkVBRE1FLndpbjMyCgoyMDA1LTA5LTA2IDE5OjE3ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlCjoKCiAgIGFkZCAubGlicyBhbmQgKi5sbwoKMjAwNS0wOS0wNiAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHJldmVyc2VkIGlwQWRkcmVzcyBvbiBsaXR0bGUgZW5kaWFuIGFyY2hpdGVjdHVyZXMKCjIwMDUtMDktMDYgMTE6MTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIHRvIGxpYnRvb2wgcmVjb21tZW5kZWQgdmVyc2lvbmluZwoKMjAwNS0wOS0wNSAxOTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgaWZYVGFibGUvaWZYVGFibGUuYwosIGlmWFRhYmxlL2lmWFRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oCiwgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA1LTA5LTA1IDE2OjE2ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBjaGVjayBmb3IgT3BlblNTTCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBBRVMKCjIwMDUtMDktMDQgMTI6MDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgdXNlIGV4aXN0aW5nIFNOTVBfVkVSQk9TRSBlbnYgdmFsdWUsIGlmIHNldAoKMjAwNS0wOS0wNCAxMTo1NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHRlc3QgY29uZGl0aW9uYWwgaW5zdGVhZCBvZiBpZ25vcmluZyBleGVjdXRpb24gZXJyb3IKCjIwMDUtMDktMDIgMjA6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfYXV0aC5jLCBzbm1wdHJhcGRfYXV0aC5oOgoKICAgYWRkZWQgdGVtcGxhdGUgZnVuY3Rpb25zIGZvciBhdXRob3JpemF0aW9uIGRlY2lzaW9ucwoKMjAwNS0wOS0wMiAxOTozMiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIC5jdnNpZ25vcmUgZmlsZXMKCjIwMDUtMDktMDEgMTc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGV4dHJhIHBhcmFub2lkIGxlbmd0aCBjaGVja3MKCjIwMDUtMDktMDEgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGFjY291bnQgZm9yIGhleGlmaWVkIHRleHQgbGVuIG9uIHBlcnNpc3RlbnQgc3RvcmUgc2F2ZQoKMjAwNS0wOC0zMSAyMjoyOSAgYWxleF9iCgogICAqIE5FV1MsIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQXBwbHkgcGF0Y2ggZm9yIGJ1ZyAxMjA2NzEyOiBQZXJsIGdldG5leHQgZG9lc24ndCBob25vciBleHBsaWNpdCByZWZlcmVuY2UKICAgdG8gTUlCIGZpbGUKCjIwMDUtMDgtMzAgMTE6NDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE2MHJmYzEyMTMsIFQxNjFyZmMxMjEzLCBUMTYycmZjMTIxMwo6CgogICByZW1vdmUgbm9uLWNvbmRpdGlvbmFsIHRlc3RzIG9mIHBvdGVudGlhbGx5IHVuaW1wbGVtZW50ZWQgb2JqZWN0cwoKMjAwNS0wOC0zMCAwODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAga2VlcCBydW5uaW5nIGNvdW50IG9mIHRyYXBzIHNlbnQKCjIwMDUtMDgtMzAgMDg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgbm90aWZpY2F0aW9uIGZpbHRlcmluZyBwZXIgUkZDIDM0MTMsIHNlY3Rpb24gNgoKMjAwNS0wOC0zMCAwODoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oOgoKICAgdXNlIG5ldyBtZmQgc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTA4LTMwIDA4OjA2ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaAo6CgogICBuZXcgZmlsZQoKMjAwNS0wOC0yOSAyMTowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgdHh0IGZpbGVzCgoyMDA1LTA4LTI5IDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wLW5vdGlmaWNhdGlvbi1taWIuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAo6CgogICAtIG5ldyBNRkQgc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTA4LTI5IDIwOjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCBtaWIyYyBjb2RlCiAgIC0gc2V0IHJvdyBkaXJ0eSBmbGFnIG9uIHN1Y2Nlc2ZmdWwgY29tbWl0CiAgIC0gY2xlYXIgcm93IGRpcnR5IGZsYWcgb24gc3VjY2Vzc2Z1bCB1bmRvIGNvbW1pdAoKMjAwNS0wOC0yOSAyMDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gY2hhbmdlIGRpcnR5IGZsYWcgdG8gdV9pbnQKICAgLSBhbHdheXMgZ2VuZXJhdGVkIGludGVyZmFjZSBpcnJldmVyc2libGVfY29tbWl0CiAgICAgLSBtb3ZlIGF1dG8gcm93IGluc2VydC9kZWxldGUgdG8gaXJyZXZlcnNpYmxlX2NvbW1pdAogICAtIHJlbGVhc2UgZGVsZXRlZCByb3dzIGluIHBvc3RfcmVxdWVzdCwgYmVmb3JlIGNhbGxpbmcgdXNlcgogICAtIHdhcm5pbmcgaWYgZGlydHkgZmxhZyBzZXQgb24gdW5zdWNjZXNzZnVsIHBhY2tldAogICAtIG1lbXNldCBsb2NhbCBzdHJ1Y3QgdG8gMHgwMCBiZWZvcmUgdXNlCiAgIC0gY29weSBpbmRleGVzIHRvIHJvd3JlcSBvaWRfaWR4IG9uIGNyZWF0ZQogICAtIHNldCAoaW5jcikgZ2xvYmFsIGRpcnR5IGlmIHVzZXIgc2V0IHJvdyBkaXJ0eQogICAtIGNsZWFyIChkZWNyKSBnbG9iYWwgZGlydHkgaWYgdXNlIGNsZWFyZWQgZmxhZyBvbiB1bmRvCgoyMDA1LTA4LTI5IDIwOjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYXV0b2NyZWF0ZSBjdXJyZW50IGRpciwgaWYgbmVlZGVkCgoyMDA1LTA4LTI5IDIwOjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIC0gZml4IGNvbW1lbnRzIG9uIHVzZXIgZmxhZ3MKICAgLSBhZGQgdXNlciBmbGFnIG1hc2sKICAgLSBhZGQgbWZkIHJvdyBtYXNrCiAgIC0gYWRkIE1GRF9ST1dfRElSVFkgZmxhZwoKMjAwNS0wOC0yOSAyMDo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgYWRkIGNvbW1lbnRzCgoyMDA1LTA4LTI5IDIwOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgY29tbWVudHMKICAgLSBtb3ZlIGZsYWcgY2xlYXIgYSBsaXR0bGUgbGF0ZXIKCjIwMDUtMDgtMjkgMjA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdHdlYWsgY29tbWVudAoKMjAwNS0wOC0yOSAyMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGZpeCByZXF1aXJlZCBjb2x1bW5zIHRlc3QgKHRoZXkgYXJlIGEgbWluLCBub3QgZXhhY3QgcmVxdWlyZW1lbnQpCiAgIC0gYXV0by10cmFuc2l0aW9uIGNyZWF0ZUFuZEdvIHRvIGFjdGl2ZQogICAtIHNldCBNRkRfUk9XX0RFTEVURUQgb24gZGVzdHJveQogICAtIHR3ZWFrIGxvZyBtZXNzYWdlIG9uIGNyZWF0aW9uIGVycm9ycwoKMjAwNS0wOC0yOSAyMDozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgLSByZXdvcmsgdmlldyBsaXN0IGZ1bmN0aW9ucyB0byB0YWtlIHBvaW50ZXIgdG8gaGVhZCAodnMgaGFyZGNvZGVkIGhlYWQpCgoyMDA1LTA4LTI5IDIwOjMyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgaXRlcmF0b3Igc3VwcG9ydAoKMjAwNS0wOC0yOSAyMDozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIC0gZml4IHNvbWUgY29tbWVudHMKICAgLSB0d2Vha3MgZm9yIGl0ZXJhdG9yIHN1cHBvcnQKICAgLSByZW1vdmUgdW51c2VkIHNvdGVkX2NvbnRhaW5lciB0eXBlZGVmCgoyMDA1LTA4LTI5IDIwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTA4LTI5IDIwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBzZXQgbmV3IHRhcmdldCBwYXJhbU5hbWUgaW4gc2Vzc2lvbgogICAtIGZpeCBidWc6IHN0cmR1cCBzZWN1cml0eU5hbWUsIHNpbmNlIGl0IHdpbGwgYmUgZnJlZWQgb24gc2Vzc2lvbiBjbG9zZQoKMjAwNS0wOC0yOSAyMDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgYWRkIHRhcmdldCBwYXJhbU5hbWUKCjIwMDUtMDgtMjkgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmg6CgogICByZW5hbWUgZ2V0X0ZpbHRlck5hbWUgLT4gZ2V0X0ZpbGdlclByb2ZpbGVOYW1lCgoyMDA1LTA4LTI5IDIwOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGxvZyB3YXJuaW5nIG9uIGR1cGxpY2F0ZSBhZGRfZGF0YQoKMjAwNS0wOC0yOSAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBhZGQgZGVidWcKCjIwMDUtMDgtMjkgMjA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgLSBtb3ZlIG1pYiBtb2R1bGUgc2h1dGRvd25zIHRvIGEgU0hVVERPV04gY2FsbGJhY2sgc28gdGhleSBhcmUgY2FsbGVkCiAgICAgYWZ0ZXIgdGhlIGxhc3Qgc25tcF9zdG9yZSgpIGFuZCBjYW4gcmVsZWFzZSB0YWJsZSBkYXRhCiAgIC0gYWRkIGxvZ2ljIGZvciB0ZXN0aW5nIGV4dHJhIGluaXRfbWliX21vZHVsZXMoKSBjYWxscwoKMjAwNS0wOC0yOSAyMDoxMiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIG1vdmUgbWliIG1vZHVsZSBzaHV0ZG93bnMgdG8gYSBTSFVURE9XTiBjYWxsYmFjayBzbyB0aGV5IGFyZSBjYWxsZWQKICAgICBhZnRlciB0aGUgbGFzdCBzbm1wX3N0b3JlKCksIGFuZCBjYW4gcmVsZWFzZSB0YWJsZSBkYXRhCgoyMDA1LTA4LTI5IDIwOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW92ZSBmaW5kX3ZhcmJpbmRfaW50X2xpc3QgdG8gc25tcF9jbGllbnQuYwoKMjAwNS0wOC0yOSAyMDowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gbW92ZSBmaW5kX3ZhcmJpbmRfaW50X2xpc3QgdG8gc25tcF9jbGllbnQuYwogICAtIHJlbW92ZSBleHRyYW5lb3VzIHRleHQgaW4gZGVidWcgbXNnCgoyMDA1LTA4LTI5IDIwOjA2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaWYgc2luayBjb250YWlucyAnOicsIHBhc3Mgd2hvbGUgdGhpbmcgYXMgcGVlcm5hbWUuIChhbGxvd3MgdGNwIHNpbmtzKQoKMjAwNS0wOC0yOSAxODoyNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGludHJvZHVjZSBncmFudWxhciBjb25maWcvcGVyc2lzdGVudCBmaWxlIGRpc2FibGVtZW50IChQYXRjaCAjMTI1OTI1NyBieSBTdGV2ZW4gRnJpZWRsKQoKMjAwNS0wOC0yNiAwOToxNSAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQWR2ZXJ0aXNlIHRoZSBtYWluIFJQTSBhcyBwcm92aWRpbmcgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIFJlZEhhdC9GZWRvcmEKICAgJ25ldC1zbm1wLXV0aWxzJyBSUE0uICBCcmluZyB0aGUgbWFpbiBpbmZvcm1hdGlvbiBzZXR0aW5ncyBpbnRvIGxpbmUKICAgd2l0aCBjdXJyZW50IHJwbWJ1aWxkIGV4cGVjdGF0aW9ucyAoJ0xpY2Vuc2UnIHJhdGhlciB0aGFuICdDb3B5cmlnaHQnKQoKMjAwNS0wOC0yNSAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV92YXJzLmM6CgogICBUaGUgdmlldyBtYXNrIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIE9JRCBpdCdzCiAgIG1hc2tpbmcgYWdhaW5zdC4gQ29uZmlndXJlIGFuZCByZXBvcnQgdGhpcyBwcm9wZXJseS4gKEJ1ZyAjMTIwMjY5MikKCjIwMDUtMDgtMjUgMDU6MDYgIGR0czEyCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgVmFyYmluZCBjaGVja3Mgc2hvdWxkIHJldHVybiBhbiBTTk1QdjIgZXJyb3IgKHdyb25nVmFsdWUpCiAgIHJhdGhlciB0aGFuIHRoZSBlcXVpdmFsZW50IFNOTVB2MSBlcnJvciAoYmFkVmFsdWUpLgoKMjAwNS0wOC0yMyAxMDowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIFVzZSAnaXBzX2ZyYWdtZW50cycgZmllbGQgb2YgSVAgc3RhdGlzdGljcyBzdHJ1Y3R1cmUsIGlmIGF2YWlsYWJsZQogICAoU2VlIHBhdGNoICMxMTAzNzM5KQoKMjAwNS0wOC0yMyAxMDowNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUZXN0IGZvciAnaXBzX2ZyYWdtZW50cycgZmllbGQgaW4gSVAgc3RhdGlzdGljcyBzdHJ1Y3R1cmUuCiAgIChTZWUgcGF0Y2ggIzExMDM3MzkpCgoyMDA1LTA4LTIzIDA5OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlICctbCcgb3B0aW9uIGZyb20gb3B0YXJnIHByb2Nlc3NpbmcKICAgKHNpbmNlIHRoZSBjb3JyZXNwb25kaW5nIGNhc2Ugc3RhdGVtZW50IHdhcyBkZWxldGVkIG1vbnRocyBhZ28hKQogICBSZXBvcnRlZCBieSBKb2huIFBmYWZmLgoKMjAwNS0wOC0yMiAyMToxNyAgYWxleF9iCgogICAqIE5FV1MsIGFwcHMvc25tcGRlbHRhLmM6CgogICB3aW4zMjogRml4IGZvciAnc2VsZWN0OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBpbiBzbm1wZGVsdGEKCjIwMDUtMDgtMjIgMTQ6MDggIHRhbmRlcnMKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9hdXRob3B0czoKCiAgIGFkZCBtaXNzaW5nIEFFUyBzdXBwb3J0CgoyMDA1LTA4LTIyIDEzOjQ5ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGZ1bGx5IGRvY3VtZW50IEFFUwoKMjAwNS0wOC0xOSAxOTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZ3JycjsgKnJlYWxseSogZml4IHR5cG8KCjIwMDUtMDgtMTkgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDEwOjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZW1waGFzaXplIHRvIHVzZSAicHJveHkgLi4uIC4xLjMiIChub3QganVzdCAuMSkgdG8gcHJveHkgdGhlIGVudGlyZSBNSUIgdHJlZSAoQnVnICMxMjQ5NTk0KQoKMjAwNS0wOC0xOSAxMDowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgaW1wcm92ZSBoZWxwIG91dHB1dCBmb3IgIi1EIiAoQnVnICMxMjQ5NTU2KSBhbmQgIi1jIgoKMjAwNS0wOC0xOSAwOToyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGFkZCBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQgdG8gbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlKCkgKEJ1ZyAjMTI2MzUyMykKCjIwMDUtMDgtMTkgMDc6NTkgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDA1OjU1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLy5jdnNpZ25vcmU6CgogICBpbml0aWFsIC5jdnNpZ25vcmUKCjIwMDUtMDgtMTkgMDU6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoYXJkd2FyZS9jcHUvLmN2c2lnbm9yZSwKICAgICBoYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwgaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZQosIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSAubGlicyBhdCBtb3JlIHBsYWNlcwoKMjAwNS0wOC0xOSAwNTowOCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGxpc3QgY29udGV4dCBzdXBwb3J0IGFuZCBmaXggdHlwbwoKMjAwNS0wOC0xOCAxODo1MSAgYWxleF9iCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFdpbjMyIE1TVkM6ICBVc2UgX19pbnQ2NCBpbnN0ZWFkIG9mIGxvbmcgbG9uZy4KCjIwMDUtMDgtMTggMTg6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIG1vdmUgdGVzdCBhZnRlciBmb3JlYWNoIGxvb3AKICAgLSBzZXQgaW50ZXJhY3RpdmUgZmxhdCBhZnRlciBvdmVyd3JpdGUKCjIwMDUtMDgtMTggMTg6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHJldHVybiBlcnJvciBpZiBhc24gYnVmZmVyIGV4Y2VlZHMgb2JqaWQgZGVzdCBidWZmZXIKCjIwMDUtMDgtMTggMTc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgaW5kZXhfb2lkL2xlbgogICAtIHJlc3RvcmUgbmV0c25tcF90YWJsZV9kYXRhMl9idWlsZF9yZXN1bHQKCjIwMDUtMDgtMTggMTc6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICByZW1vdmUgdW51c2VkIGluZGV4X29pZC9sZW4KCjIwMDUtMDgtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMDUtMDgtMTggMTc6MzUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBjb25maWd1cmUgZXh0cmFzCiAgIC0gYWRkIG1ha2UgZXh0cmFzCgoyMDA1LTA4LTE4IDE3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgYnJpbmcgaHB1eCBmdW5jdGlvbiBkZWNsIGluIGxpbmUgdy9wcm90eXBlCgoyMDA1LTA4LTE4IDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCjoKCiAgIGZpeCBidWcgMTI1OTA0OTogc25tcGQgc2VnZmF1bHRzIGluIElQLU1JQiBkdXJpbmcgc25tcHdhbGsKCjIwMDUtMDgtMTggMDk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBpbnQ2NC5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBsb3RzIG9mIDY0IGJpdCBjaGVja3MgYWRkZWQgaWZmIFNJWkVPRl9MT05HICE9IDQKICAgICAtIGNoZWNrIGNvdW50ZXI2NCBoaWdoL2xvdyBvdmVyZmxvd3MgKGludDY0LmMpCiAgICAgLSB0cnVuY2F0ZSByZWNlaXZlZCB2YWx1ZXMgdG8gMzIgYml0cyAoYXNuMS5jKQogICAgIC0gdHJ1bmNhdGUgc2VudCB2YWx1ZXMgdG8gMzIgYml0cyBiZWZvcmUgZW5jb2RpbmcgKGFzbjEuYykKICAgLSB1cGRhdGUgc2V0X3Zhcl92YWx1ZSAoc25tcF9jbGllbnQuYykKICAgICAtIHRydW5jYXRlIHZhcmJpbmQgdmFsdWUgc2V0cyB0byAzMiBiaXRzCiAgICAgLSBoYW5kbGUgc2V0IG9mIGludGVnZXJzIG9mIHZhcmlvdXMgbGVuZ3RocyAoMSwgMiwgNCwgOCBieXRlcykKCjIwMDUtMDgtMTggMDY6MDUgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERvbid0IGdlbmVyYXRlIGF1dGhGYWlsIHRyYXBzIGlmIHRoZXNlIGFyZSBub3QgcmVxdWlyZWQuCiAgIChCdWcgIzEyMjY3ODgsIHJlcG9ydGVkIGJ5IFdhbmcgVGVrIEtlZSkKCjIwMDUtMDgtMTcgMjA6NDQgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXM6IExPTkdfTUlOIG5vdCBkZWZpbmVkIChsaW1pdHMuaCkgYW5kIGFkZGVkCiAgIGZkX2V2ZW50X21hbmFnZXIuYyB0byBidWlsZCBmaWxlcy4KCjIwMDUtMDgtMTcgMjA6MjkgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGQgJ0NvLWV4aXN0ZW5jZSB3aXRoIE1pY3Jvc29mdCBTTk1QIHNlcnZpY2VzJyBzZWN0aW9uIGFuZCB1cGRhdGUgdGhlCiAgICdJbnRlcmFjdGlvbnMgd2l0aCBPdGhlciBWZW5kb3IncyBQcm9kdWN0cycgc2VjdGlvbi4KCjIwMDUtMDgtMTcgMTc6NTAgIHRhbmRlcnMKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvbiBjbGllbnRBZGRyIHRva2VuOiBhbHNvIHVzZWQgYnkgc25tcGQgd2hlbiBzZW5kaW5nIG5vdGlmaWNhdGlvbnMKCjIwMDUtMDgtMTcgMDk6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIDMyLzY0LWJpdCB0eXBlIGRlZmluaXRpb25zIChCdWcgIzEyNTQ5OTApCgoyMDA1LTA4LTE3IDA4OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jCiwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jCiwgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywKICAgICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvb2lkX3N0YXNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJyNpbmNsdWRlIDxkbWFsbG9jLmg+JyBzdGF0ZW1lbnRzLCBzaW5jZSB0aGlzIGlzIGhhbmRsZWQgaW4KICAgdGhlIGhlYWRlciBmaWxlIHdoaWNoIGlzIGluY2x1ZGVkIGFueXdheS4gIChQYXRjaCAjMTEwODA1MyBieSBKdW4gS3VyaXlhbWEpCgoyMDA1LTA4LTE3IDA3OjUwICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwKICAgICBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXA6CgogICBTdXBwb3J0IHJ1bm5pbmcgQWdlbnRYIHRlc3RzIHdoZW4gY29uZmlndXJlZCB1c2luZyBzZXBhcmF0ZQogICAnYWdlbnR4L21hc3RlciBhZ2VudHgvc3ViYWdlbnQnIG1vZHVsZXMgKFBhdGNoICMxMDQ5Nzk0IGZyb20gbWFnZnIpCgoyMDA1LTA4LTE3IDA1OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEV4dGVuZCBsZW5ndGggb2YgY29tMnNlYyAic291cmNlIiBidWZmZXIgKFBhdGNoICMxMjI1MTMwIGZyb20gQW5kcmV3IFN0ZWV0cykKCjIwMDUtMDgtMTcgMDQ6NDUgIGR0czEyCgogICAqIHNubXBsaWIvd2lucGlwZS5jOgoKICAgRml4IHR5cG8gKHBhdGNoICMxMjU1NzEzIGJ5IEJlcm5oYXJkIFBlbnopCgoyMDA1LTA4LTE2IDIwOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgZml4IGJ1ZyAxMjU5MDUxOiBzbm1wZCBzZWdmYXVsdHMgb24gYW1kNjQKCjIwMDUtMDgtMTYgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGFsbG93IGlwdjQgc3RhdHMgdG8gd29yayBpZiB2NiBzdGF0cyBhcmUgbm90IGF2YWlsYWJsZQoKMjAwNS0wOC0xNiAxNjo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZml4IGJ1ZyAxMjU5MDU0OiBzbm1wZDogY2Fubm90IG9wZW4gL3Byb2MvbmV0L3NubXA2CgoyMDA1LTA4LTE2IDEyOjI5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFR5cG8gaW4gdGhlIGRlc2NyaXB0aW9uIG9mIC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tpbmcgKGJ1ZyAjMTIzODMwMSkKCjIwMDUtMDgtMTYgMTE6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGFsd2F5cyBzcGVjaWZ5IHBlcm1zIHRvIG1rZGlyLCBhcyBpdCBpcyBub3Qgb3B0aW9uIGZvciBvbGRlciBwZXJsIHZlcnNpb25zCgoyMDA1LTA4LTE1IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgc2V0IHRpbWVvdXQvcmV0cmllcyB0byBkZWZhdWx0IGZvciBpbmZvcm0gc2Vzc2lvbnMKCjIwMDUtMDgtMTUgMTg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTUgMTg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogaW5zdGFuY2UuYywgc2NhbGFyX2dyb3VwLmMsIHRhYmxlLmMKOgoKICAgd2FpdCBmb3IgZGVsZWdhdGVkIHJlcXVlc3RzIGJlZm9yZSByZXRyaWVzCgoyMDA1LTA4LTE0IDE3OjIyICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgRml4IHNwZWxsaW5nIG1pc3Rha2UgaW4gZGVzY3JpcHRpb24gb2YgYSBkZWZpbmUuCgoyMDA1LTA4LTExIDEzOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZml4IGxlbmd0aCBvZiBzeXNPYmplY3RJRAoKMjAwNS0wOC0wMSAwNzozOSAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtZG9uJ3QgdXNlIGdldGR0YWJsZXNpemUoKSBmb3IgV0lOMzIKCjIwMDUtMDgtMDEgMDc6MzkgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIGxpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW4KLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIC1XaW4zMjogIFVwZGF0ZSBwcm9qZWN0IGZpbGVzIHdpdGggbmV3IGxvY2F0aW9uIGZvciBub3RpZmljYXRpb25fbG9nLmMgYW5kCiAgICBtaXNzaW5nIHRhYmxlX2RhdGEyLmMgZm9yIE1TVkMgR1VJCgoyMDA1LTA4LTAxIDA3OjM3ICBhbGV4X2IKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC1GaXggd2luMzIgYnVpbGQgcHJvYmxlbSAtIGRlY2xhcmUgdmFyaWFibGVzIGJlZm9yZSB1c2luZy4KCjIwMDUtMDctMjggMDc6NDcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU2ltcGxlICd3aGlsZScgbG9vcCwgYW5kIChub24tZXJyb3IpIHF1aXQgc3RhdGVtZW50LgoKMjAwNS0wNy0yNiAwODowNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQcm9iZSBmb3IgZW5naW5lSUQgaW5pdGlhbGx5LCBzbyB0aGF0IGl0J3MgYXZhaWxhYmxlIGZvciBjb25zdHJ1Y3RpbmcKICAgdGhlIHVzbVVzZXJUYWJsZSBPSURzLgoKMjAwNS0wNy0yNiAwNjoxOSAgdGFuZGVycwoKICAgKiBGQVE6CgogICBVcGRhdGUgT1Mgc3VwcG9ydCBzZWN0aW9uLiBTdGlsbCBsaWtlbHkgdG8gYmUgb3V0ZGF0ZWQgZm9yIHNvbWUgcGxhdGZvcm1zLgoKMjAwNS0wNy0yNSAxOTo1MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZml4IGJ1ZyAxMjMwMzY2OiBhZGQgIi1uIiB0byAibmV0c3RhdCAtYSIgdG8gbWFrZSBpdCB3b3JrIGV2ZW4gaWYgcG9ydCBudW1iZXJzIGhhdmUgY29ycmVzcG9uZGluZyBzZXJ2aWNlIG5hbWVzCgoyMDA1LTA3LTI1IDE5OjI4ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgYXV0b19ubGlzdC5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgaW5jbHVkZSBoZWFkZXIgdy9wcm90b3R5cGUKCjIwMDUtMDctMjUgMTk6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IG1vdmUgcGFyYW0gdHlwZSBkZWNsIGludG8gcGFyYW0gZGVjbCBsaXN0CgoyMDA1LTA3LTI1IDE5OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSBtb3ZlIGNvbW1lbnQgZW5kIG91dCBvZiBjb25kaXRpb25hbCAoc2luY2Ugc3RhcnQgaXMgYXMgd2VsbCkKICAgLSBpbmNsdWRlIGN0eCBzZXQgZm9yIG5vbi1lbnVtIHR5cGVzCgoyMDA1LTA3LTI1IDE5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgICBnZW5lcmljLWN0eC1zZXQubTJpOgoKICAgZGVhbCB3aXRoIG9pZCBsZW5ndGggdnMgc2l6ZSBkdXJpbmcgZ2V0L3NldAoKMjAwNS0wNy0yNSAxNTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNy0yNSAxNTo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBub3RpZmljYXRpb24tbG9nLW1pYiB0byBkZWZhdWx0IG1pYiBsaXN0CgoyMDA1LTA3LTI1IDE1OjU1ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gZml4IG5vdGlmY2F0aW9uIGxvZyBpbmNsdWRlIHBhdGgKICAgLSBvbmx5IGluY2x1ZGUgbm90aWZpY2F0aW9uIGxvZyBjb2RlIGlmIG1vZHVsZSBpbmNsdWRlZAoKMjAwNS0wNy0yNSAxNDozNSAgbWFyegoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS8uY3ZzaWdub3JlLCBtZW1vcnkvLmN2c2lnbm9yZQo6CgogICBmaXhpbmcgY3ZzIGlnbm9yZSBmb3Igc2hhcmVkIGxpYnMKCjIwMDUtMDctMjUgMTM6MjIgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgb24vZm9yIG5vdGlmaWNhdGlvbl9sb2cKCjIwMDUtMDctMjUgMTE6MzkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgR2VuZXJhdGUgZGlmZmVyZW50IGNvZGUgZm9yIGNhY2hpbmcgYW5kIG5vbi1jYWNoaW5nIGNvbnRhaW5lciBmcmFtZXdvcmtzCiAgIChyYXRoZXIgdGhhbiBpbmNsdWRpbmcgY2FjaGluZyBzdXBwb3J0IHJlZ2FyZGxlc3MpCgoyMDA1LTA3LTI1IDExOjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIG0yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaSwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYwosIG1mZC1tYWtlZmlsZS5tMm0sIG1mZC10b3AubTJjOgoKICAgQWdlbnRYIG1ha2VmaWxlIGFuZCBzdWJhZ2VudCBkcml2ZXIgY29kZSB3ZXJlbid0IGdldHRpbmcgZ2VuZXJhdGVkCiAgIChldmVuIGlmIHRoZXkgd2VyZSByZXF1ZXN0ZWQpLiAgRml4IHRoaXMuCgoyMDA1LTA3LTI1IDExOjM0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIGFuIGludGVnZXIgdmFyYmluZCB2YWx1ZS4KCjIwMDUtMDctMjEgMjE6NTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgIE5FVFNOTVBfRFNfTk9USUZfTE9HX0NUWCBzdHJpbmcKCjIwMDUtMDctMjEgMjE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBsb2cgbm90aWZpY2F0aW9uIGlmIHVzaW5nIG5vdGlmaWNhdGlvbiBsb2cgbWliIG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBhZGQgdG9kbyBjb21tZW4KCjIwMDUtMDctMjEgMjE6NDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCB2YXIgZGVjbAogICAtIHJlbW92ZSB1bnVzZWQgbnVtX3JlY2VpdmVkCiAgIC0gc2V0IHNubXB0cmFwZCBjb250ZXh0IGZvciBub3RpZmljYXRpb24gbG9nIG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo0NyAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBhZGQgaW50ZXJmYWNlIHRvIG5vdGlmaWNhdGlvbiBsb2cgYWdlbnQgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjQ3ICByc3RvcnkKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgcmVtb3ZlIHVudXNlZCBub3RpZmljYXRpb25fbG9nIGZpbGVzCgoyMDA1LTA3LTIxIDIxOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSBtYWtlIG51bV9yZWNlaXZlZCBzdGF0aWMKICAgLSBhZGQgbG9jYWwgZW5hYmxlZCBmbGFnLCBzZXQgd2hlbiBtb2R1bGUgaW5pdCBjYWxsZWQKICAgLSByZXR1cm4gaW1tZWRpYXRlbHkgZnJvbSBsb2dfbm90aWZpY2F0aW9uIGlmIG5vdCBlbmFibGVkCiAgIC0gdXNlIGNvcnJlY3QgaW5kZXggaW4gY29tcGFyZSwgc28gd2UgaGF2ZSBhIGNoYW5jZSBhdCBmaW5kaW5nIHRoZSByaWdodCByb3cKICAgICAodGhpcyBmaXhlcyB0aGUgdmFyYmluZCBtZW1vcnkgbGVhaykKCjIwMDUtMDctMjEgMjA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBzdHJkdXAgdG1wIGRzIHN0cmluZyB0aGF0IHdpbGwgYmUgcmVsZWFzZWQKCjIwMDUtMDctMjEgMTk6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBhZGQgbWlzc2luZyBzZW1pLWNvbG9uCgoyMDA1LTA3LTIxIDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvOiBub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgLSByZW1vdmUgYWdlbnR4IGNvbmRpdGlvbmFsIGNvbXBpbGUKICAgLSByZW1vdmUgc25tcHRyYXBkIGhlYWRlcnMKICAgLSByZS13b3JrIGxvZyBzaXplIG1hbmFnZW1lbnQKICAgLSBhZGQgY29udGV4dCBwYXJhbWV0ZXIgZm9yIHRhYmxlIGluaXQgcm91dGluZXMKICAgLSBuZXcgZHNfYXBwIGZvciBtb2R1bGUgaW5pdCB0byBkZXRlcm1pbmUgY29udGV4dAogICAtIHJlbW92ZSBkb250UmV0YWluTG9ncyBjb25maWcgKHVzZSAtSSAtbm90aWZpY2F0aW9uX2xvZykKICAgLSBjaGcgZGVidWcgc3ltYm9sIChsb2dfbm90aWZpY2F0aW9uLT5ub3RpZmljYXRpb25fbG9nKQogICAtIHJlbW92ZSBleHRyYW5lb3VzIGNvbW1lbnRzCiAgIC0gbWFrZSBzdXJlIHRyYW5zcG9ydCBwdHIgaGFzIHZhbHVlIGJlZm9yZSB1c2luZwoKMjAwNS0wNy0yMSAxODo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgICBub3RpZmljYXRpb24tbG9nLW1pYi5oOgoKICAgb3JpZ2luYWwgdmVyc2lvbnMKCjIwMDUtMDctMjAgMjA6MzQgIGFsZXhfYgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC1BZGQgd3JhcHBlciBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChteV9nZXRlbnYpIHRvIGFkZCBXaW5kb3dzIHJlZ2lzdHJ5CiAgICBzdXBwb3J0IGZvciBwZXJzaXN0ZW50IGZvbGRlci9maWxlIGNoZWNrCiAgIC1GaXggYnVnIGluIGdldF9wZXJzaXN0ZW50RGlyIGNhbGwgKGl0IHdhcyBub3QgcGFzc2luZyB0aGUgZmlsZW5hbWUgb2YKICAgIHNubXAuY29uZgoKMjAwNS0wNy0yMCAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBtb3ZlIGhlYWRlciBpbmNsdWRlIHRvIHRvcCBvZiBmaWxlCgoyMDA1LTA3LTIwIDE4OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyCgoyMDA1LTA3LTIwIDE4OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZml4IGluY2x1ZGUgb2Ygb3duIGhlYWRlciAoY3V0LW4tcGFzdGUgZXJyb3IpCgoyMDA1LTA3LTIwIDE4OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5LzogbWliLmgsIHNubXBfYXBpLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICByZW1vdmUgcHJvdG90eXBlIGZvciBub24tZXhpc3RlbnQgZnVuYzsgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjA4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIHBhcmFtZXRlcnMgZm9yIG5zYi1jb25maWcgZXhhbXBsZQoKMjAwNS0wNy0yMCAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IHJlbW92ZSByZWR1bmRhbnQgc2VtaWNvbG9uCgoyMDA1LTA3LTIwIDE4OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgYWRkIG1pc3NpbmcgaW5jbHVkZXMvcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGJhZCBvcHRpb24gW3dpdGh8ZW5hYmxlXS1zc2wKCjIwMDUtMDctMjAgMTc6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSBjaGVjayBydW4gZmluZCBvbiBzcmNkaXIKCjIwMDUtMDctMjAgMTE6MzAgIGR0czEyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBHdWFyZCBhZ2FpbnN0IHVzaW5nIG5hbWVsZXNzIGRhdGEgbGlzdHMuICBUaGlzIHN0aWxsCiAgIHdvbid0IHdvcmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdCB0aGUgYWdlbnQgd29uJ3QgY3Jhc2guCiAgIChZZXMsIEkga25vdyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gLSBidXQgeW91IGNhbid0IHRydXN0CiAgIHNvbWUgcGVvcGxlIG5vdCB0byBkbyBzb21ldGhpbmcgc3R1cGlkIC0gbmFtaW5nIG5vIG5hbWVzKQoKMjAwNS0wNy0yMCAxMToyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgSW5jbHVkZSB0aGUgaGFuZGxlciBuYW1lIHdoZW4gcmVnaXN0ZXJpbmcgYSB0YWJsZV9hcnJheS4KCjIwMDUtMDctMTkgMTM6NDQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCBjdXQtbi1wYXN0ZTsgbmV3IHRhYmxlcyBhcmUgbGludXggb25seQoKMjAwNS0wNy0xOSAxMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmY6CgogICBJbXByb3ZlIGhhbmRsaW5nIG9mIHZhcmlhYmxlLWxlbmd0aCBpbmRleCBhbmQgY29sdW1uIHZhbHVlcy4KCjIwMDUtMDctMTkgMTA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBoYW5kbGluZyBvZiB2YXJpYWJsZS1sZW5ndGggaW5kZXhlcy4KCjIwMDUtMDctMTkgMTA6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBQcm92aWRlIGFub3RoZXIgcmVnaXN0cmF0aW9uIEFQSSB0byBoaWRlIHRoZSBoZWxwZXIgaW50ZXJuYWxzCiAgIGZyb20gdXNlci1sZXZlbCBjb2RlLgoKMjAwNS0wNy0xOCAxNzo1NyAgcnN0b3J5CgogICAqIE5FV1MsIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlIGZvciBuZXcgdGNwQ29ubmVjdGlvblRhYmxlIGFuZCB0Y3BMaXN0ZW5lclRhYmxlCgoyMDA1LTA3LTE4IDE3OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgaW5pdGlhbCB3b3JraW5nIHZlcnNpb24KCjIwMDUtMDctMTggMTc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC1taWIuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCBjb2RlIGZvciB0Y3BMaXN0ZW5lclRhYmxlCgoyMDA1LTA3LTE4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvOiB0Y3BDb25uZWN0aW9uVGFibGUuYwosIHRjcENvbm5lY3Rpb25UYWJsZS5oLCB0Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBsb2FkIGNhY2hlIGZyb20gZGF0YSBhY2Nlc3MKICAgLSBtYXAgYWRkcmVzcyB0eXBlCiAgIC0gc2hyaW5rIHN0b3JhZ2UgZm9yIGluZGV4ZXMKCjIwMDUtMDctMTggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CgogICAtIGZpeCBpbmRleCBvaWQgcG9pbnRlcgogICAtIGFkZCB1cGRhdGUgb2YgcGlkCgoyMDA1LTA3LTE4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICAtIHVzZSBuZXcgcHJpdmF0ZSBoZWFkZXIKICAgLSBmaXggbG9hZCBwcm90b3R5cGVzCiAgIC0gY2hlY2sgbmV3IGxpc3RlbiBzdGF0ZSByZXF1aXJlL2V4Y2x1ZGUgbG9hZCBmbGFnCiAgIC0gZml4IGNvcHkgb2YgcmVtb3RlIGFkZHJlc3MKCjIwMDUtMDctMTggMTY6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHByaW50IGJhZCBsaW5lIHdoZW4gYmFpbGluZyBvbiBlcnJvcgoKMjAwNS0wNy0xOCAxNjoyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGN1dC1uLXBhc3RlIGZsdWIKCjIwMDUtMDctMTggMTY6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBjb21tZW50IGJsb2NrCgoyMDA1LTA3LTE4IDE2OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICAtIHJlbW92ZSB1bnVzZWQgZGVmaW5lcy9jb21tZW50cwogICAtIGFkZCBwaWQgdG8gc3RydWN0CiAgIC0gYWRkIGxvYWQgZmxhZ3MgdG8gcmVxdWlyZS9leGx1ZGUgbGlzdGVuIHN0YXRlCgoyMDA1LTA3LTE4IDE2OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgYWRkIGRlYnVnIHRvIGZyZWVCU0QgKGVzcCBlcnJvciBjYXNlcykKCjIwMDUtMDctMTggMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYwo6CgogICBjb3JyZWN0IGRhdGEgc3RydWN0IG5hbWUKCjIwMDUtMDctMTggMTU6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLzogdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucwoKMjAwNS0wNy0xOCAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9wcml2YXRlLmg6CgogICBwcml2YXRlIGltcGxlbWVudGF0aW9uIGhlYWRlcgoKMjAwNS0wNy0xNSAxODo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYywKICAgICBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHF1b3RlIHN0cmluZyBhcmd1bWVudCBpbiBhc3NpZ25tZW50CgoyMDA1LTA3LTE1IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYXIgc2Vzc2lvbiBmcm9tIGNhbGxiYWNrIGNsaWVudCBhcmdzIG9uIGZyZWUKCjIwMDUtMDctMTQgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIGZpeCBpbnRyL2N0eCBvdmVyZmxvd3MKCjIwMDUtMDctMTQgMTg6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaDoKCiAgIGNvbmZpZ19yZXF1aXJlIHV0aWxpdGllcy9leGVjdXRlIChmb3Igc25tcHRyYXBkKQoKMjAwNS0wNy0wNyAxMjozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBkbyBub3QgY2xvc2UgYWxsIG5vbi1zdGQgZmRzIGluIGRhZW1vbml6ZSAoYXMgd2UgaGF2ZSBwcm9iYWJseSBvcGVuZWQgc29tZSkKCjIwMDUtMDctMDcgMTI6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjbG9zZSBhbGwgbm9uLXN0YW5kYXJkIGZkcyBpbmhlcml0ZWQgZnJvbSBzaGVsbCBpbW1lZGlhdGVseQogICAtIHJlZ2lzdGVyIHNpZ25hbCBoYW5kbGVycyBtdWNoIHNvb25lciwgc28gZWFybHkgc2lnbmFsIGRvZXNuJ3QgY29yZQoKMjAwNS0wNy0wNiAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdHdlYWsgdGFyZ2V0IHRvIGJ1aWxkICAoYWxsKSBsaWJzIHRvIHVzZSBleGlzdGluZyBJTlNUQUxMTElCUwoKMjAwNS0wNy0wMSAxODo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIHVzZSB1dGlsaXR5IHJvdXRpbmUgdG8gY2xlYXIgZGVsZWdhdGVkIGZsYWcKICAgLSBkb24ndCBzZXQgZXJyb3IgZm9yIHRpbWVvdXQgb24gZ2V0LW5leHQKICAgLSByZWxlYXNlIGRlbGVnYXRlZCBjYWNoZSB3aGVuIHVuZGVsZWdhdGluZyByZXF1ZXN0cwoKMjAwNS0wNi0zMCAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gaWZmIG5vdCBhcHBsaWVkLCBmaXggZnJlZSBvZiBwa3QgdG8gdXNlIGFsbG9jJ2QgcHRyLCBub3Qgb2Zmc2V0IGluIHBrdAogICAtIGlmZiBhcHBsaWVkLCByZW1vdmUgcmVkdW5kYW50IHBydCBjbGVhciBhZnRlciBTTk1QX0ZSRUUKCjIwMDUtMDYtMzAgMDU6MjcgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggMTIyNjE4NzogZG9jdW1lbnQgbWlzc2luZyBjb25maWcgZmlsZSB0b2tlbnMgYW5kIGNtZGxpbmUgb3B0aW9ucwoKMjAwNS0wNi0zMCAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDYWxjdWxhdGUgImNvb2tlZCIgdmFsdWVzIGZyb20gaGlzdG9yaWNhbCBkYXRhLgogICBUaGlzIGNoYW5nZXMgdGhlIG1lYW5pbmcgb2YgdGhlc2UgZmlndXJlcyBmcm9tIGEgc3lzdGVtCiAgIGxpZmUtdGltZSBhdmVyYWdlIHRvIGEgKG1vcmUgdXNlZnVsKSBvbmUtbWludXRlIGF2ZXJhZ2UsCiAgIGFuZCBicmluZ3MgdGhlIExpbnV4IGltcGxlbWVudGF0aW9uIGludG8gbGluZSB3aXRoIG1vc3QKICAgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KCjIwMDUtMDYtMzAgMDQ6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oOgoKICAgU3RhbmRhcmQgKHN5c3RlbS1pbmRlcGVuZGVudCkgbWVjaGFuaXNtIGZvciB0cmFja2luZyBoaXN0b3JpY2FsIENQVQogICBzdGF0aXN0aWNzLCBpbiBvcmRlciB0byBjYWxjdWxhdGUgcm9sbGluZyBhdmVyYWdlcy4KCjIwMDUtMDYtMjkgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvIHByb3BlciBjaGVja3MgZm9yIHplcm8gcmV0dXJuIGFuZCB3YWl0IHJhdGhlciB0aGFuIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24KCjIwMDUtMDYtMjkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gUm9tYW4gVHNpcm91bG5pa292IHRvIGNhdGNoIC0xIHJldHVybiBjb2RlIGZyb20gY2hlY2tfcGFja2V0IGZ1bmN0aW9ucwoKMjAwNS0wNi0yOCAwODozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oOgoKICAgVHdlYWsgdGhlIG5hbWUgb2YgdGhlIGNvcmUgSEFMIG1lbW9yeSBtb2R1bGUuCgoyMDA1LTA2LTI3IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzLCBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBQYXRjaCBmcm9tIERhdmlkIEJlYXR0aWUgdG8gZml4IHRyYXAgcmVjZXB0aW9uCgoyMDA1LTA2LTI3IDA1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N0b3JhZ2UuaAosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIFVzZSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciB0byBpbXBsZW1lbnQgTWVtb3J5IG1vbml0b3Jpbmcgb24gTGludXggc3lzdGVtcy4KCjIwMDUtMDYtMjcgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfcHJvYy5oLAogICAgIHVjZC1zbm1wL3Ztc3RhdC5jLCB1Y2Qtc25tcC92bXN0YXQuaDoKCiAgIFVzZSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciB0byBpbXBsZW1lbnQgQ1BVIG1vbml0b3Jpbmcgb24gTGludXggc3lzdGVtcy4KCjIwMDUtMDYtMjcgMDQ6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgYSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllcgogICAoSnVzdCBjb3ZlcmluZyBDUFUgYW5kIG1lbW9yeSBpbmZvcm1hdGlvbiBmb3Igbm93LCBhbmQKICAgIG9ubHkgaW1wbGVtZW50ZWQgb24gTGludXgtYmFzZWQgc3lzdGVtcy4gQnV0IGl0J3MgYSBzdGFydCEpCgoyMDA1LTA2LTI3IDA0OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBIYW5kbGUgd2Vlay1kYXkgYml0IHNwZWNpZmljYXRpb25zLgoKMjAwNS0wNi0yNyAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSGFuZGxlIHJldmVyc2UtZGF5IGJpdCBzcGVjaWZpY2F0aW9ucy4KCjIwMDUtMDYtMjQgMDY6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgY2FsYW5kYXItYmFzZWQgc2NoZWR1bGluZy4KICAgVGhpcyBkb2Vzbid0IGhhbmRsZSByZXZlcnNlLWRheSBvciB3ZWVrZGF5IGJpdHMgeWV0LAogICBidXQgc2hvdWxkIHByb3ZpZGUgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgbmVlZGVkIGZvcgogICB0aGUgImNyb24iIGFuZCAiYXQiIGNvbmZpZ3VyZSBkaXJlY3RpdmVzLgoKMjAwNS0wNi0yMyAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgTW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dC4KCjIwMDUtMDYtMjIgMjA6MTYgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gZG9jdW1lbnQgbG9nbWF0Y2gsIGFnZW50eHBlcm1zLCBjb20yc2VjdW5peCwgZW5naW5lSURUeXBlLCBlbmdpbmVJRE5pYwogICAgIGFuZCBsZWF2ZV9waWRmaWxlIHRva2VucwoKMjAwNS0wNi0yMiAyMDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIHNubXBkIGRpc2tpbyB0b2tlbiBhbmQgdGhlIHVudXNlZCBzdGF0aWMgdmFyaWFibGUgaXQgc2V0cwoKMjAwNS0wNi0yMiAxOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBvb3BzLiBkZWNsYXJlIHZhcmlhYmxlIHVzZWQgaW4gbmV3IGNvZGUuCgoyMDA1LTA2LTIyIDE5OjM1ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSAxMjE5NTQ4OiBkb24ndCB1c2UgZGVwcmVjYXRlZCBvcHRpb24KCjIwMDUtMDYtMjIgMTk6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIDEyMTk1NDg6IGRvbid0IHVubGluayBudWxsIGZpbGVuYW1lCgoyMDA1LTA2LTIyIDE5OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGNsb3NlIGFsbCBmZHMgYWZ0ZXIgZGFlbW9uaXppbmcKCjIwMDUtMDYtMjIgMTc6MDMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBjaGVjayB0YXJnZXQgZm9yIGZ1bGwgcGF0aHMgaW4gZGVwZW5kZW5jeSBmaWxlcwoKMjAwNS0wNi0yMiAxNjowNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBhcHBseSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIDEyMjU0NDA6IHJlZ2lzdGVyIHNpbmdhbCBoYW5kbGVycyBlYXJsaWVyCgoyMDA1LTA2LTIyIDE1OjU3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFwcGx5IHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgMTIyNTQ0MDogcmVnaXN0ZXIgc2luZ2xhIGhhbmRsZXMgZWFybGllcgoKMjAwNS0wNi0yMiAxMzoyMiAgcnN0b3J5CgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgbW92ZSBpZmRlZiB0ZXN0IGFmdGVyIGhlYWRlciB3aXRoIGRlZmluZSBpcyBpbmNsdWRlZAoKMjAwNS0wNi0yMiAwNjowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkVGFibGUuYzoKCiAgIFVzZSB0aGUgbmV3IHNjaGVkVGFibGUgZW50cnkgY3JlYXRpb24gcm91dGluZXMuCgoyMDA1LTA2LTIyIDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBFbnN1cmUgc2Vuc2libGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgYW4gaW50ZXJuYWwgc2Vzc2lvbi4KCjIwMDUtMDYtMjIgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHZlcnNpb24gYW5kIHNlY3VyaXR5IGxldmVsCiAgIHVzZWQgdG8gbWFrZSBpbnRlcm5hbCBxdWVyaWVzLgogICAgIFVuZm9ydHVuYXRlbHksIGNvbW11bml0eS1iYXNlZCByZXF1ZXN0cyBkb24ndCBjdXJyZW50bHkKICAgd29yayBvdmVyIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQsIGJ1dCBJJ20gd29ya2luZyBvbiB0aGF0LgoKMjAwNS0wNi0yMiAwNTozOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL3NubXB2My5jOgoKICAgU2VwYXJhdGUgb3V0IHBhcnNpbmcgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0wNi0yMSAxNzozOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNi0yMSAxNzozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgYXNzZXJ0CgoyMDA1LTA2LTIxIDE3OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgcHJvdG90eXBlIGZvciBuZXRzbm1wX2xvZ2dpbmdfcmVzdGFydAoKMjAwNS0wNi0yMSAxNzozMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBwcm90b3R5cGVzIGZvciBzaG91bGRfaW5pdCBhbmQgYWRkX3RvX2luaXRfbGlzdAoKMjAwNS0wNi0yMSAxNzozMiAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtIG5ldyAtLWRpc2FibGUtc25tcHRyYXBkLXN1YmFnZW50IGNvbmZpZ3VyZSBvcHRpb24KICAgLSBjaGVjayBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc3ViLWFnZW50IGNvZGUKICAgLSBhZGQgJ0knIG9wdGlvbiB0byBjb21tYW5kIGxpbmUgcHJvY2Vzc2luZywgdG8gZGlzYWJsZSBtb2R1bGVzCiAgIC0gdXNlIHNob3VsZF9pbml0IHRvIGRldGVybWluZSBpZiBub3RpZmljYXRpb24gbG9nIG1pYiBpcyBkaXNhYmxlZAogICAtIHVzZSBuZXcgc25tcF9sb2dnaW5nX3Jlc3RhcnQgb24gSFVQCgoyMDA1LTA2LTIxIDExOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgcHJvdG90eXBlIGZvciBzbm1wX3N0ZGVycmxvZ19zdGF0dXMKCjIwMDUtMDYtMjEgMTE6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29yZS5jLCBzY2hlZENvcmUuaDoKCiAgIEEgY2xlYW5lciBhcHByb2FjaCB0byBjcmVhdGluZyBlbnRyaWVzIGluIHRoZSBzY2hlZFRhYmxlCgoyMDA1LTA2LTIxIDExOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBDb25zaXN0ZW50bHkgd29yayB3aXRoIFNOTVAgdmVyc2lvbnMsIG5vdCAicHJvY2Vzc2luZyBtb2RlbHMiLgoKMjAwNS0wNi0yMSAxMTozMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ29ycmVjdCB0ZW1wbGF0ZSBmb3IgY2FjaGVkIHRhYmxlX2RhdGEgcmVnaXN0cmF0aW9uLgoKMjAwNS0wNi0yMSAxMDo0NSAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFJlZmVyIHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uIGZvciBjb25maWcgZmlsZXMuCiAgIChTcG90dGVkIGJ5IExlbyBMZWkpCgoyMDA1LTA2LTIxIDEwOjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gb25seSBhZGQgbm90aWZpY2F0aW9uIGhhbmRsZXIgaWZmIHdlIGFyZSBhbiBhZ2VudHggc3ViYWdlbnQKCjIwMDUtMDYtMjAgMTg6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGZpeCBzZXR0aW5nIG9mIGV4cGVjdCByZXNwb25zZSBwZHUgZmxhZyAoSSBicm9rZSBpdCBmaXhpbmcgdGhlIFNOTVB2MwogICAgIGRlbGF5ZWQgZW5naW5lSUQgcHJvYmUpCgoyMDA1LTA2LTIwIDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBwcm94eSBoYW5kbGluZyBvZiBOT1NVQ0hOQU1FIG9uIGEgZ2V0LW5leHQsIG5vdGVkIG9uIHVzZXJzIGJ5IEpvaG4gSGFyZGluCgoyMDA1LTA2LTIwIDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCBsb2cgZmxhZ3MgaW4gYWdlbnQKICAgLSBzZXQgbm8gZGVmYXVsdCBsb2cgZmxhZyBmb3Igc3lzbG9nIGNhc2VzCiAgIC0gbmV3IHNubXBfc3RkZXJybG9nX3N0YXR1cygpIGNoZWNrcyBmb3IgZW5hYmxlZCBzdGRlcnIgbG9nIGhhbmRsZXJzCiAgIC0gZml4IHJlLWVuYWJsZSBvZiBzeXNsb2cgaW4gbG9nZ2luZyByZXN0YXJ0IGZ1bmN0aW9uCiAgIC0gdXNlIGNvcnJlY3QgZnVuY3Rpb24gbmFtZSB0byByZS1lbmFiZSBmaWxlIGxvZ3MKICAgLSBDKysgY29tbWVudHMgLT4gQyBjb21tZW50cwoKMjAwNS0wNi0yMCAxNjozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIG5ldyBuZXRzbm1wX2xvZ2dpbmdfcmVzdGFydCgpIHRvIGNsb3NlL3Jlb3BlbiBmaWxlIGJhc2VkIGxvZ3MKICAgLSBwdXJnZSBhZ2VudCBzZXR1cF9sb2cKICAgLSBvbmx5IGVuYWJsZSBkZWZhdWx0IExPR0ZJTEUgaWYgbm8gb3RoZXIgbG9nIG9wdGlvbiBkZWZpbmVkCgoyMDA1LTA2LTE4IDExOjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA2LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLW1vdmUgc29tZSBhcmcgY2hlY2tzIGVhcmxpZXIKICAgLW1vdmUgbGlid3JhcC9ycG0gY2hlY2tzIGJhY2sgYWZ0ZXIgc2V0dGluZyBOT05BR0VOVExJQlMsIHNvIHRoZXkgYXJlbid0CiAgICBsaXN0ZWQgaW4gYXBwIGxpYnMgYnkgbmV0LXNubXAtY29uZmlnCgoyMDA1LTA2LTE2IDEzOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBvb3BzLSBwYXNzIGFkZHIgb2YgdmFyIHRvIHNzY2FuZgoKMjAwNS0wNi0xNSAxNzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIGZ1bmMgdXNlZCBiZWZvcmUgZGVmaW5lZAoKMjAwNS0wNi0xNSAwODowNSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZyZWUgdGhlIHNhbWUgcG9pbnRlciB0aGF0IHdhcyByZXR1cm5lZCBieSAnc3RyZHVwJwoKMjAwNS0wNi0xNCAxNjoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gcmV3b3JrIHNubXB2MyBlbmdpbmVJRCBwcm9iZSBkZWxheSB0byBmaXggcHJvYmxlbXMgbm90ZWQgb24gY29kZXJzCiAgICAgLSBzZXQgdXAvY2hlY2sgc2Vzcy9wZHUgdmVyc2lvbiBhIGxpdHRsZSBlYXJsaWVyCiAgICAgLSBzZXQgRVhQRUNUX1JFU1BPTlNFIGZsYWcgY29ycmVjdGx5IGluaXRpYWxseSwgaW5zdGVhZCBvZiBnbG9iYWwgc2V0CiAgICAgICBhbmQgdW5zZXQgZm9yIGNlcnRhaW4gY2FzZXMuIGFsc28gZG8gaXQgYSBsaXR0bGUgZWFybGllcgogICAgIC0gbW92ZSBjaGVjayBmb3IgcHJvYmUgaGlnaGVyIHVwIGNhbGwgc3RhY2sgLSBub3cgd2lsbCBiZSBkb25lIHRoZSBmaXJzdAogICAgICAgdGltZSBhIHNlc3Npb24gc2VuZHMgYSB2MyBwZHUgdGhhdCBleHBlY3RzIGEgcmVzcG9uc2UKCjIwMDUtMDYtMTQgMTI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIFVzZSAiYWdlbnRTZWNOYW1lIiBmb3IgcmV0cmlldmluZyBzY2hlZHVsZSBpbmZvcm1hdGlvbi4KCjIwMDUtMDYtMTQgMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIGZpeCBidWcgMTE5NzE4Mzogc3NSYXdDcHUqIHN0YXlzIG9uIDJeMzItMSBpbnN0ZWFkIG9mIHJvbGxpbmcgb3ZlcgoKMjAwNS0wNi0xNCAxMTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIG9vcHMtIG1vdmUgdmFyIGRlY2wgdG8gZnVuYyB0aGF0IHZhciB3YXMgbW92ZWQgdG8KCjIwMDUtMDYtMTQgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmaXggYnVnIDEyMTcyNjE6IElGLU1JQiByZXBvcnRzIGluY29ycmVjdCBzdGF0cyBvbiBBTUQ2NAoKMjAwNS0wNi0xNCAxMDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcHJvY2VzcyBvcHRpb25hbCBjb25maWcgZmlsZXMgZHVyaW5nIHByZS1taWIgY29uZmlnIHRvbwogICAtIGlmIG9wdGlvbmFsIGNvbmZpZ3MgcHJlZml4ZWQgd2l0aCAnLScsIHByb2Nlc3MgYmVmb3JlIGRlZmF1bHQgY29uZmlncwoKMjAwNS0wNi0xNCAwNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCB1dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBNb3ZlICJhZ2VudFNlY05hbWUiIGNvbmZpZyBkaXJlY3RpdmUgdG8gdGhlIGlxdWVyeSB1dGlsaXR5IG1vZHVsZS4KCjIwMDUtMDYtMTQgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERpc3Rpbmd1aXNoIHNubXBfc2VuZCBlcnJvcnMgZnJvbSBTTk1QIGVyclN0YXQgZXJyb3JzCgoyMDA1LTA2LTE0IDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUG9wdWxhdGUgY2FsbGJhY2sgUERVIHdpdGggU05NUHYzIGRlZmF1bHRzIGZyb20gdGhlIHNlc3Npb24gc3RydWN0dXJlLgoKMjAwNS0wNi0xMyAxOToyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyLCBhdXRvY29uZgoKMjAwNS0wNi0xMyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhcHBseSBwYXRjaCAxMTk4MjEwOiB1c2luZyBldGh0b29sIGZvciBnaWdhYml0IE5JQ3MKCjIwMDUtMDYtMTMgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmM6CgogICB1cGRhdGUgZm9yIHByZXZpb3VzIGNhY2hlX2hpbnQgbWV0aG9kCgoyMDA1LTA2LTEzIDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBhbHdheSBwYXNzIGhpbnRzIHRvIGxvd2VyIGhhbmRsZXJzCgoyMDA1LTA2LTEzIDE3OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBtaWJzLCBtaWJkaXJzIGFuZCBtaWJmaWxlcyBoYW5kbGluZyBjb25zaXN0ZW50OgogICAgIC0gJy1YWFgnIGFkZHMgWFhYIGJlZm9yZSBleGlzdGluZwogICAgIC0gJytYWFgnIGFkZHMgWFhYIGFmdGVyIGV4aXN0aW5nCiAgICAgICBOT1RFOiB0aGlzIHJlc3RvcmVzIG9yaWdpbmFsIGJlaGF2aW9yIG9mICcrJyB0byB0aGF0IG9mIDUuMC4xLiBBZnRlcgogICAgICAgICAgICAgNS4wLjIsIGlmIEkgcmVhZCB0aGUgY29kZSByaWdodCwgJysnIGJlaGF2aW91ciBvbiB0aGUgY21kIGxpbmUgYW5kCiAgICAgICAgICAgICBpbiBNSUJESVJTIHdhcyByZXZlcnNlZCBhbmQgbm90IGNvbnNpc3RlbnQgd2l0aCBoYW5kbGVfbWlic19jb25mLgoKMjAwNS0wNi0xMyAxNTozNCAgcnN0b3J5CgogICAqIFJFQURNRS50cnU2NDoKCiAgIG5ldyByZWFkIG1lIGZvciBUcnU2NAoKMjAwNS0wNi0xMyAxMjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbHVtbnMuaCwgaWZYVGFibGVfY29sdW1ucy5oOgoKICAgUmVtb3ZlIG9ic29sZXRlIGlmVGFibGUgcmV3cml0ZS4KCjIwMDUtMDYtMTMgMTI6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSdW4gdHJhcCBoYW5kbGVycyB1c2luZyAnc3lzdGVtKCknIHJhdGhlciB0aGFuICdleGVjdigpJywKICAgdG8gc3VwcG9ydCB0cmFwIGhhbmRsZXIgc2hlbGwgc2NyaXB0cy4KCjIwMDUtMDYtMTMgMTI6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBjb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHBhcnNlLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9wYXJzZV9hcmdzLmMsIHN5c3RlbS5jCiwgd2luc2VydmljZS5jOgoKICAgR3VhcmQgYWdhaW5zdCBhc3NvcnRlZCBtYWxsb2MgZmFpbHVyZXMuCiAgIFJlcG9ydGVkIGJ5IEFuZHJlYXMgTW9yb2Rlci4KCjIwMDUtMDYtMTMgMTE6MzggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgYm9ndXMgaGFuZGxpbmcgb2YgemVyby13aWR0aCBoaW50cy4KICAgVGhlc2UgbWlnaHQgYmUgcG9pbnRsZXNzLCBidXQgdGhleSBhcmUgc3RyaWN0bHkgdmFsaWQuCiAgIChTZWUgUkZDIDI1NzksIFNlY3Rpb24gMy4xICgxKSkKCjIwMDUtMDYtMTMgMTA6NTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgc25tcGxpYi9taWIuYzoKCiAgIFBvc3NpYmxlIG1lY2hhbmlzbSBmb3IgYWRkcmVzc2luZyBuYW1lc3BhY2UgY2xhc2hlcwogICAoaW4gcmVzcG9uc2UgdG8gTWF0dGhldyBCb2VobScgQXN0ZXJpc2sgcHJvYmxlbSkKCjIwMDUtMDYtMTAgMTY6MDQgIGhhcmRha2VyCgogICAqIG1pYnMvVURQLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSBSRkM0MTEzCgoyMDA1LTA2LTEwIDE2OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3J1bjoKCiAgIGFwcGx5IHRlc3RpbmctcmZjMTIxMy1ydW4uZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGUgdGhlIFVEUC1NSUIgdG8ganVzdCBwdWJsaXNoZWQgUkZDNDExMwoKMjAwNS0wNi0xMCAxNTo1NCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhcHBseSB0ZXN0aW5nLXRlc3Rjb25mLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhcHBseSBhZ2VudC1oZWxwZXJzLW1ha2VmaWxlLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgaW5pdCBoYW5kbGVyIGZvciBhZ2VudHhzb2NrZXQgZm9yIHN1YmFnZW50cyB0b28KCjIwMDUtMDYtMTAgMTA6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgWWV0IEFub3RoZXIgQXR0ZW1wdCB0byBmaW5kIHRoZSBjb3JyZWN0IHF1b3Rpbmcgb2YgY29uZmlndXJlIG9wdGlvbnMuCgoyMDA1LTA2LTEwIDA3OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBVcGRhdGUgdG8gdXNlIHRoZSByZW5hbWVkIGludGVybmFsIGFuZCBsaWJyYXJ5IHF1ZXJ5IEFQSSBjYWxscy4KCjIwMDUtMDYtMTAgMDc6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFR3ZWFrIHRoZSBzcGVjaWZpY2FsbHkgYWdlbnQtaW50ZXJuYWwgcXVlcnkgcm91dGluZXMgdG8gdXNlIHRoZSBTTk1QCiAgIGxpYnJhcnkgdmVyc2lvbnMuCgoyMDA1LTA2LTEwIDA3OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3ZlIChhbmQgcmVuYW1lKSBzZXNzaW9uLWJhc2VkICJpbnRlcm5hbCBxdWVyeSIgQVBJIGNhbGxzIGludG8gdGhlIFNOTVAKICAgbGlicmFyeSwgc28gdGhleSdyZSBhdmFpbGFibGUgYXMgYSBjb252ZW5pZW5jZSB0byBhbGwgU05NUCBhcHBsaWNhdGlvbnMuCgoyMDA1LTA2LTEwIDA1OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb3ZlIHNwZWNpYWwgaGFuZGxpbmcgZm9yICJpcCIgaW50ZXJmYWNlcyB0byBTVU5WMy1vbmx5IGNvZGUgYmxvY2suCiAgIE5vLW9uZSBjYW4gcmVtZW1iZXIgd2hhdCB0aGlzIHdhcyBpbnRlbmRlZCBmb3IsIGFuZCBpdCBicmVha3MKICAgTGludXggSVB2NiB0dW5uZWwgaW50ZXJmYWNlcy4KCjIwMDUtMDYtMTAgMDQ6MjMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEJyaW5nIGF1dGhlbnRpY2F0aW9uL2VuY3J5cHRpb24gZmxhZ3MgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIGNvbW1hbmRzLgogICBJbiBmYWN0LCB0cmVhdHMgJy1BLy1hJyBhcyBlcXVpdmFsZW50LCBhbmQgdXNlcyB0aGUgdmFsdWUgdG8gZGlzdGluZ3Vpc2gKICAgYmV0d2VlbiBwcm90b2NvbHMgYW5kIHBhc3MgcGhyYXNlcy4gIChBbmQgc2ltaWxhcmx5IGZvciAtWC8teCkKCjIwMDUtMDYtMDkgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnIDEyMDcwMjM6IHNubXBkIGNyYXNoIG9uIHRjcCBkaXNjb25uZWN0CgoyMDA1LTA2LTA5IDE3OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIG1vdmUgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSBzaXplIGNoZWNrcyB0byBzbm1wX3NldF92YXJfdmFsdWUKICAgICAtIHVzZSBzbm1wX3NldF92YXJfdmFsdWUgaW4gc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZQoKMjAwNS0wNi0wOSAxMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIGFkZCBpcHY2IHN1cHBvcnQKCjIwMDUtMDYtMDkgMTE6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgcmVuYW1lIHBhcmFtLCB1cGRhdGUgZG9jcywgdG8gcmVkdWNlIGNvbmZ1c2lvbgoKMjAwNS0wNi0wOSAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgSW1wbGVtZW50IHBhcnNpbmcgb2YgdGhlICJhdCIgYW5kICJjcm9uIiBjb25maWcgZGlyZWN0aXZlcy4KICAgVGhlc2Ugc3RpbGwgZG9uJ3QgYWN0dWFsbHkgd29yaywgYnV0IHlvdSBjYW4ndCBoYXZlIGV2ZXJ5dGhpbmcuLi4uCgoyMDA1LTA2LTA5IDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBGaXggcGFyc2luZyBvZiAicmVwZWF0IiBkaXJlY3RpdmUuCgoyMDA1LTA2LTA5IDA1OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRDb3JlLmg6CgogICBJdCB3b3VsZCBiZSB2YWd1ZWx5IGhlbHBmdWwgaWYgSSBrbmV3IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KICAgaG91cnMgYW5kIG1vbnRocywgYW5kIGhvdyBtYW55IG9mIGVhY2ggdGhlcmUgd2VyZSEKCjIwMDUtMDYtMDkgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIERpc2FibGUgdGVzdGluZyBjb2RlLgogICAoaW5pdGlhbGlzaW5nIHRoZSBsaWJyYXJ5IHRvbyBlYXJseSBicmVha3MgY29uZmlnIGZpbGUgcHJvY2Vzc2luZzotKCkKCjIwMDUtMDYtMDggMTU6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIHNraXAgaXB2NiBjb2RlIGlmIGlwdjYgbm90IGVuYWJsZWQ7IG5vdGVkIG9uIGNvZGVycyBieSBlaXJpayBub3JkYnJvZGVuCgoyMDA1LTA2LTA3IDEwOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc21hbi5oLCBkaXNtYW4vc2NoZWRDb25mLmMsCiAgICAgZGlzbWFuL3NjaGVkQ29uZi5oLCBkaXNtYW4vc2NoZWRDb3JlLmMsCiAgICAgZGlzbWFuL3NjaGVkQ29yZS5oLCBkaXNtYW4vc2NoZWRUYWJsZS5jLAogICAgIGRpc21hbi9zY2hlZFRhYmxlLmgsIGRpc21hbi9zY2hlZHVsZS5oOgoKICAgUHJlbGltaW5hcnkgKGFuZCBpbmNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIFNjaGVkdWxlIE1JQi4KCjIwMDUtMDYtMDYgMDU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFV0aWxpdHkgcm91dGluZXMgZm9yIG1ha2luZyAiaW50ZXJuYWwgcXVlcmllcyIsIHRvIHJldHJpZXZlIG9yIGFzc2lnbgogICB2YWx1ZXMgZnJvbSBlbHNld2hlcmUgaW4gdGhlIGN1cnJlbnQgYWdlbnQuCgoyMDA1LTA2LTA2IDA1OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUG9wdWxhdGUgY2FsbGJhY2sgUERVIHdpdGggZGVmYXVsdHMgZnJvbSB0aGUgc2Vzc2lvbiBzdHJ1Y3R1cmUuCiAgIFRoaXMgYWxsb3dzIGNvbW11bml0eS1iYXNlZCBQRFVzIHRvIGJlIHNlbnQgb3ZlciBhIGNhbGxiYWNrIHRyYW5zcG9ydC4KCjIwMDUtMDYtMDIgMTk6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWxheSBTTk1QdjMgRW5naW5lSUQgcHJvYmUgdW50aWwgbmVlZGVkCgoyMDA1LTA2LTAyIDE5OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseS9yZS1hcHBseSBmaXggZm9yIGJ1ZyAxMTAzNjQ0LCBGcmVlQlNEIG1lbW9yeSBsZWFrCgoyMDA1LTA2LTAyIDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgbXVsdGlwbGV4ZXIuYywKICAgICBudWxsLmMsIHJlYWRfb25seS5jOgoKICAgYXBwbHkgcGF0Y2ggMTIxMDYzMjogUmVwbGFjZSBuZXRzbm1wX3NldF9hbGxfcmVxdWVzdHNfZXJyb3IKCjIwMDUtMDUtMzAgMTc6MjEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgNDA0NDogRkMtTUdNVC1NSUIKCjIwMDUtMDUtMzAgMTc6MTcgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIEN1cnJlbnQgSUFOQSB2ZXJzaW9uCgoyMDA1LTA1LTI3IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNvbW1pdCBtaXNzaW5nIHN0cnRva19yIGNoYW5nZXMgKmNvdWdoKgoKMjAwNS0wNS0yMyAxODo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BlcmxfdHJhcGQucGwsIHBlcmwvQVNOL0FTTi5wbSwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc25tcGxpYi9zbm1wX2RlYnVnLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgQXBwbGllZCBtaW5vciBidWcgZml4L2RvYyBwYXRjaGVzIGZyb20gVGhvbWFzIEFuZGVycyBpbiAjMTIwNjk4MgoKMjAwNS0wNS0yMyAxNjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIFVzZSBta3N0ZW1wIGFwcHJvcHJpYXRlIHRvIGdlbmVyYXRlIHRlbXAgZmlsZXMKCjIwMDUtMDUtMjAgMTA6MDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCcmluZyAnLUgnIGluaXRpYWxpc2F0aW9uIGludG8gbGluZSB3aXRoIG5vcm1hbCBzdGFydHVwLgoKMjAwNS0wNS0xNiAxNTo1MCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgRG9uJ3QgYXV0by1idWlsZCBkZXBlbmRlbmNpZXMuICBTcGVjaWZ5IGEgbGlzdCBpbnN0ZWFkLgoKMjAwNS0wNS0xNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIEEgYml0IG9mIHJlbnVtYmVyaW5nLgoKMjAwNS0wNS0xNiAxNTo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGF1dG9tYXR0ZWQgcmVsZWFzZSBwcm9kdWNlciBzY3JpcHQKCjIwMDUtMDUtMTEgMTk6NTEgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDUtMDUtMTEgMTA6MDIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAKLCBzY3JpcHRzL3JlYWRtZTJodG1sOgoKICAgQWRkIFJFQURNRS5hZ2VudC1taWJzIHRvIFdpbmRvd3MgYmluYXJ5CgoyMDA1LTA1LTExIDA1OjIwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTW9yZSBSRkNzIHdpdGggTUlCcwoKMjAwNS0wNS0xMCAyMToxMyAgYWxleF9iCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mOgoKICAgc25tcGNvbmY6IEFsbG93IFNOTVBDT05GUEFUSCB0byBoYXZlIG11bHRpcGxlIHBhdGhzIGRlZmluZWQgc3VjaCBhcyB3aGVuIHRoZQogICBwZXJzaXN0ZW50IGZvbGRlciBpcyBpbmNsdWRlZC4gIHNubXBjb25mIHdpbGwgYWxzbyBkZXRlcm1pbmUgdGhlIGNvbmZpZ3VyZWQKICAgcGVyc2lzdGVudCBmb2xkZXIgYW5kIHByZXZlbnQgaXQgZnJvbSBiZWluZyB0cmVhdGVkIGFzIGEgcmVndWxhciBjb25maWd1cmF0aW9uCiAgIGZpbGUuCgoyMDA1LTA1LTEwIDIwOjQ0ICBhbGV4X2IKCiAgICogTkVXUzoKCiAgIEFkZCBmaXhlcyB0byBORVdTIGZvciBuZXh0IHJlbGVhc2UKCjIwMDUtMDUtMDkgMjE6MDcgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDkgMjA6NTMgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFRoZSBrZXJuZWwgbGl2ZXMgaW4gL2Jvb3Qva2VybmVsL2tlcm5lbCBvbiByZWNlbnQgRnJlZUJTRCdzCgoyMDA1LTA1LTA5IDE5OjM1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS50eHQsCiAgICAgaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBiaW5hcnk6IEFkZCBwZXJzaXN0IGZvbGRlciB0byBTTk1QQ09ORlBBVEgKCjIwMDUtMDUtMDkgMTk6MDAgIGFsZXhfYgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wZC44LmRlZiwKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtUGVyc2lzdGVudCBmaWxlcyB3ZXJlIG5vdCBiZWluZyByZWFkIGF0IHN0YXJ0dXAgd2hlbiB1c2luZwogICBzbm1wLmNvbmYgcGVyc2lzdGVudERpcgogICAtVXBkYXRlIHBlcnNpc3RlbnQgc3RvcmFnZSBzZWN0aW9ucyBvZiBzbm1wX2NvbmZpZyBhbmQgc25tcGQKICAgbWFuIHBhZ2VzCgoyMDA1LTA1LTA5IDE4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICB1c2UgbW9yZSBmbGV4aWJsZSBjc3MgZm9yIG1hcmt1cCBhbmQgYWxsb3cgYSBwYXNzZWQgaW4gZmlsZQoKMjAwNS0wNS0wOSAxODoxMiAgYWxleF9iCgogICAqIENPUFlJTkc6CgogICBBZGQgRmFiYXNvZnQgUiZEIFNvZnR3YXJlIChjKSBub3RpY2UKCjIwMDUtMDUtMDkgMTY6MzcgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgZGV0ZWN0IGV4dHJhIGFyZ3VtZW50cwoKMjAwNS0wNS0wOSAxNjozMyAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBzbm1wZ2V0ID0+IHNubXBkZgoKMjAwNS0wNS0wOSAxNjoyMSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyA0MDA4IGlzIE5BVC1NSUIKCjIwMDUtMDUtMDkgMTY6MjAgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBGaW5kIGRlY2xhcmF0aW9ucyBmb3Igc2lnaG9sZC9zaWdzZXQvc2lncGF1c2UKCjIwMDUtMDUtMDkgMTY6MTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEVuc3VyZSAwLXRlcm1pbmF0aW9uIG9mIHJlYWQgZmlsZSBkYXRhCgoyMDA1LTA1LTA5IDE2OjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBEZXRlY3QgdG9vIG1hbnkgZGVmaW5lZCBwZWVycy4gUHJvcGVybHkgcGFyc2Ugc3ltYm9saWMgcGVlcnMKCjIwMDUtMDUtMDkgMTY6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIE5lZWRlZCBleHRlcm5hbAoKMjAwNS0wNS0wOSAxNjoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEZpeCBmb3JtYXQgd2FybmluZwoKMjAwNS0wNS0wOSAxNjowOSAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRml4IGZvciBpbnN0YWxsaW5nIHJlbW90ZSBmcm9tIHNvdXJjZSBkaXIKCjIwMDUtMDUtMDkgMTY6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBGaXggZm9yIE5ldEJTRAoKMjAwNS0wNS0wOSAxNjowMSAgbmJhCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEdlbmVyYXRlZAoKMjAwNS0wNS0wOSAxNTo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIEZpeGVzIGZvciBOZXRCU0QvRnJlZUJTRCBmb3Igc3dhcCBkYXRhCgoyMDA1LTA1LTA5IDE1OjE3ICBuYmEKCiAgICogYWNjb25maWcuaDoKCiAgIEZpeCBtaW5ndyB0ZXN0IHRoYXQgd2FzIG9ubHkgYXBwbGllZCB0byBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAwNS0wNS0wOSAxNToxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRml4IGJvZ3VzIHByZXByb2Nlc3NvciBpZgoKMjAwNS0wNS0wOSAwNDo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSWxsdXN0cmF0ZSBoYW5kbGluZyBvZiBjYWNoZWQgdGFibGVzIHVzaW5nIHRoZSB0YWJsZV9kYXRhIGhlbHBlci4KICAgKEFjdGl2YXRlIHVzaW5nICJtaWIyYyAtU2NhY2hlPXRydWUgLi4uIikKCjIwMDUtMDUtMDkgMDQ6NTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEV4dHJhY3QgcmVxdWlyZWQgdGFibGUgc3RydWN0dXJlcyB3aGVuIHByb2Nlc3NpbmcgUm93U3RhdHVzIGFzc2lnbm1lbnRzLgoKMjAwNS0wNS0wOSAwNDoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgRml4IHRhYmxlIG1heC9taW4gY29sdW1uIHJlZ2lzdHJhdGlvbi4KCjIwMDUtMDUtMDYgMTU6MTQgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDYgMTU6MTEgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFBsYWNhdGUgYXV0b2NvbmYyNTkgYnkgdGVzdGluZyBhbmQgaW5jbHVkaW5nIDx2bS92bS5oPiBiZWZvcmUgdGVzdGluZwogICA8dm0vc3dhcF9wYWdlci5oPgoKMjAwNS0wNS0wNSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEwNjQ0MyBmcm9tIHRvbGdhIGNleWxhbiB0byB1c2UgYSBwcm9wZXIgcmV0dXJuIGNvZGUgY2hlY2sgZm9yIGdldEtzdGF0SW50CgoyMDA1LTA1LTA1IDIwOjA0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBcHBsaWVkIHBhdGNoICMxMTA5NzEyIHRvIGZpeCBWUEFUSCBmb3IgcmMgZmlsZXMgb24gY3lnd2luCgoyMDA1LTA1LTA1IDE5OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjMTExMDU3MSBmcm9tIEthdHN1aGlzYSBBQkUgdG8gc2V0IGlwdjYgdGNwIHNvY2tldHMgdG8gaXB2NiBvbmx5IGlmIHBvc3NpYmxlCgoyMDA1LTA1LTA1IDE5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBBcHBsaWVkIHBhcnQgb2YgcGF0Y2ggIzExMTA2MTAgZnJvbSBQZXRlciBCcmVpdGVubG9obmVyIGZvciBjb21waWxlciB3YXJuaW5ncwoKMjAwNS0wNS0wNSAxOToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLAogICAgIHNubXBsaWIvbWliLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTIzMjQyIGZyb20gTWlrZSBNY0hlbnJ5IHRvIGFkZCBtaWIyc2NoZW1hIGNvbXBsaWFudCBvdXRwdXQgdG8gc25tcHRyYW5zbGF0ZQoKMjAwNS0wNS0wNSAxOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTI0NTY5IGZyb20gTWFyY3VzIE1laXNzbmVyIHRvIGR5bmFtaWNhbGx5IGRlY2lkZSBob3cKICAgbWFueSBjcHVzIHRoZXJlIG9uIGxpbnV4IGFuZCB0byBiZXR0ZXIgcGFyc2UgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4KICAgICAtIG1vZGlmaWVkIHRvIGJlIGNvbXBsaWFudCB3aXRoIEFOU0kgYW5kIHRoZSBjb2Rpbmcgc3R5bGUuCgoyMDA1LTA1LTA1IDE5OjExICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUGF0Y2ggIzEwNjIxMTQgYnkgInNubXBwb3J0YWwiIHRvIGNsZWFuIHVwIGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDUtMDUtMDUgMDc6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjMTExNzI3MSAodmFyaWFudCkgLSBjaGVjayB0aGUgYnVmZmVyIGxlbmd0aCB3aGVuIGZvcm1hdHRpbmcKICAgYW4gdXB0aW1lIHN0cmluZyAodGhvdWdoIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGV4aXN0aW5nIEFQSSBjYWxsKS4KCjIwMDUtMDUtMDUgMDU6MDcgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIGNsaWVudCBtYW4gcGFnZXMKCjIwMDUtMDUtMDQgMjA6NTggIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDQgMjA6NTYgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgYWNjdW11bGF0ZWQgd2lzZG9tIG9mIHRoZSBwcmV2aW91cyBBQ19IRUFERVJDSEVDS1MgZm9yCiAgIEhBVkVfTkVUSU5FVF9JUF9ILCBIQVZFX05FVElORVRfSUZfSCwgSEFWRV9ORVRJTkVUX0lQX0lDTVBfSCBhbmQKICAgSEFWRV9ORVRJTkVUX1VEUF9IIChpbiBhZGRpdGlvbiB0byB0aGUgb25lcyBhbHJlYWR5IHByZXNlbnQpLgogICBUaGlzIHVuYnJlYWtzIHRoZSBidWlsZCBvbiBGcmVlQlNEIDUuMyBhbmQgNC4xMCAoYnV0IHRoZSBsYXR0ZXIKICAgc3RpbGwgaXNuJ3QgcGxheWluZyB3aXRoIHRoZSBmdWxsIHZtX3N3YXAgZGVjaykuCgoyMDA1LTA1LTA0IDIwOjQ4ICBkcmllaHVpcwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgRnJlZUJTRCA1LjMgaXMgcmVhbGx5IHVuaGFwcHkgYWJvdXQgZ2V0dGluZyBfS0VSTkVMIGRlZmluZWQuIEJ5IGZvcmNpbmcKICAgSUZORVRfTkVFRFNfS0VSTkVMIG9mZiB3ZSBmaXggdGhhdCAoYWZ0ZXIgYWxsLCBkZWZpbmluZyBfS0VSTkVMIHJlYWxseQogICBpcyBhIGdyb3NzIGhhY2sgZm9yIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3Blcmx5IGV4cG9ydCBzeXN0ZW0KICAgaW50ZXJuYWxzIC0tIGZhbW91cyBsYXN0IHdvcmRzOi0pCgoyMDA1LTA1LTA0IDExOjQ4ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFBhdGNoICMxMTI0NjUyOiBvcHRpb25zIHRvIGV4cGxpY2l0bHkgaW5jbHVkZS9leGNsdWRlIGVsZiBhbmQgYnppcCBsaWJyYXJpZXMKCjIwMDUtMDUtMDQgMTE6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFBhdGNoICMxMDQyNDQ3IC0gY2xvbmUgemVyby1sZW5ndGgsIG5vbi1OVUxMLXBvaW50ZXIgc3RyaW5ncy4KCjIwMDUtMDUtMDQgMDg6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoICMxMDUxMDAxIC0gc2tpcCB1bm5lY2Vzc2FyeSBjYWxsIHRvICdhdXRvX25saXN0JyB1bmRlciBOZXRCU0QKCjIwMDUtMDUtMDQgMDg6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaDoKCiAgIFBhdGNoICMxMDk2NDc5IC0gZml4IGRlY2xhcmF0aW9uIG9mIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuCgoyMDA1LTA1LTA0IDA4OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFBhdGNoICMxMDk2NDgzIC0gZml4IGEgbWlub3IgaW5jb25zdGlzdGVuY3kKCjIwMDUtMDUtMDQgMDg6MjIgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFBhdGNoICMxMTAzNzUxIC0gc2tpcCBlZGl0b3IgYmFja3VwcyB3aGVuIGxvYWRpbmcgTUlCIGZpbGVzLgoKMjAwNS0wNS0wNCAwODowNyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjMTEwOTcxOTogUmVtb3ZlIChhcHBhcmVudGx5KSByZWR1bmRhbnQgcXVvdGluZyBvZiBjb25maWd1cmUgb3B0aW9ucy4KICAgVGhpcyBxdW90aW5nIHdhcyBpbnRyb2R1Y2VkIGVhcmx5IGluIHRoZSB2NSBsaWZldGltZSB0byBzdXBwb3J0ICJvcHRpb25zCiAgIGNvbnRhaW5pbmcgc3BhY2VzIiAoc2VlIHJldmlzaW9uIDUuMjYpLiAgU2ltcGxlIHRlc3Rpbmcgc2VlbXMgdG8gaW5kaWNhdGUKICAgdGhhdCBpdCdzIG5vIGxvbmdlciBuZWVkZWQsIGFuZCBpdCBicmVha3MgQUlYIChwb3NzaWJseSBhbW9uZyBvdGhlcnMpLCBzbwogICBsZXQncyB0cnkgd2l0aG91dCBpdC4KICAgICBJZiBuby1vbmUgY29tcGxhaW5zLCB0aGlzIHBhdGNoIG1heSBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIG90aGVyIGJyYW5jaGVzCiAgIGFzIHdlbGwuCgoyMDA1LTA1LTA0IDA3OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQYXRjaCAjMTExODEzMiAtIGhhbmRsZSBkaXNhcHBlYXJpbmcgTGludXggcHJvY2Vzc2VzLgoKMjAwNS0wNS0wNCAwNjo0MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeGVkICNpZmRlZiB0eXBvCgoyMDA1LTA1LTA0IDA2OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBQYXRjaCAjMTExNzI3NiAtIHR3ZWFrIEVWUF9EaWdlc3RGaW5hbCBwYXJhbWV0ZXJzIHRvIG1hdGNoIGV4cGVjdGVkIHR5cGVzLgoKMjAwNS0wNS0wNCAwNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIFBhdGNoICMxMTE3MjY1IC0gb3BlbiBkZXZpY2VzIHdpdGggTkRFTEFZIHdoZW4gcG9zc2libGUuCiAgIEF2b2lkcyBhZ2VudCBoYW5naW5nIG9uIG1pc3NpbmcgcmVtb3ZhYmxlIGRldmljZXMuCgoyMDA1LTA1LTAzIDE4OjI2ICBhbGV4X2IKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBXaW4zMjogQXBwbHkgcGF0Y2ggMTE1MzI3MSBieSBFa2tlaGFyZCBEb21uaW5nIGZvciBzbm1wZCBwYXNzX3BlcnNpc3Qgc3VwcG9ydAogICBmb3IgTVNWQy4gIEFwcGx5IHBhdGNoIGJhc2VkIG9uIDExNTMyNzEgZm9yIHBhc3Mgc3VwcG9ydCBmb3IgTVNWQyBhbmQgTWluR1cuCgoyMDA1LTA1LTAzIDEwOjM4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIFVzZSB0aGUgd2F0Y2hlZCBzY2FsYXIgaGVscGVyIChyYXRoZXIgdGhhbiBzcGVjaWFsaXNlZCBpbnN0YW5jZSBoZWxwZXJzKQogICBmb3IgaW1wbGVtZW50aW5nIGludGVnZXItYmFzZWQgc2NhbGFyIG9iamVjdHMuICBQaWNrcyB1cCBvbiB1bnNpZ25lZAogICBpbnRlZ2VyIG9iamVjdHMsIGFzIHdlbGwgYXMgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiByZWFkLW9ubHkvcmVhZC13cml0ZQogICBNSUIgZGVmaW5pdGlvbnMuCgoyMDA1LTA1LTAzIDEwOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBJbGx1c3RyYXRlIGhhbmRsaW5nIG9mIGNhY2hlZCB0YWJsZXMgdXNpbmcgdGhlIGl0ZXJhdG9yIGhlbHBlci4KICAgKEFjdGl2YXRlIHVzaW5nICJtaWIyYyAtU2NhY2hlPXRydWUgLi4uIikKCjIwMDUtMDUtMDMgMTA6MjMgIGR0czEyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBTdGFzaCBsb29rdXAgZGVidWdnaW5nIGNvZGUuCgoyMDA1LTA1LTAzIDEwOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQ29udmVuaWVuY2Ugc2luZ2xlLWNhbGwgQVBJcyBmb3IgaW50ZWdlci1iYXNlZCB3YXRjaGVkIHNjYWxhcnMuCiAgIChNb2RlbGxlZCBvbiB0aGUgZXhpc3RpbmcgaW5zdGFuY2UtYmFzZWQgY2FsbHMpLgoKMjAwNS0wNS0wMyAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGEgKHRyaXZpYWwpIGdldF97Zmlyc3QsbmV4dH0gQVBJLgogICBOb3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGluIGl0c2VsZiwgYnV0IHNob3VsZCBhaWQgdGhlCiAgIHRyYW5zaXRpb24gdG8gYSBjb250YWluZXItYmFzZWQgdGFibGVfZGF0YSBzdHlsZS4KCjIwMDUtMDUtMDIgMjA6NDIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBBZGQgbGltaXRzLmggaGVhZGVyIGZpbGUKCjIwMDUtMDUtMDIgMTg6NDYgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBXaW4zMiBNU1ZDIHN1cHBvcnQgZm9yIGZkX2V2ZW50X21hbmFnZXIuW2NoXQoKMjAwNS0wNS0wMSAxMzo0NyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEZpeCBzeXNEZXNjciBzdXBwb3J0IGZvciBNaW5HVwoKMjAwNS0wNS0wMSAwOToyMCAgYWxleF9iCgogICAqIGxvY2FsL3Bhc3N0ZXN0LnBsOgoKICAgQWRkZWQgUGVybCB2ZXJzaW9uIG9mIC9sb2NhbC9wYXNzdGVzdCBzaGVsbCBzY3JpcHQKCjIwMDUtMDQtMzAgMjA6MzggIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBDeWd3aW46IEFkZCBtaXNzaW5nIHJlZ2lzdHJ5IHN1cHBvcnQgZm9yIFNOTVBDT05GUEFUSCBldGMuCgoyMDA1LTA0LTMwIDIwOjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHBlcmwvU05NUC9SRUFETUU6CgogICAtUmVtb3ZlICdkZWZpbmUgV0lOMzInIGZvciBDeWd3aW4gYW5kIGNoYW5nZSBpZmRlZnMgdG8gY2hlY2sgZm9yIGVpdGhlcgogICBXSU4zMiBvciBjeWd3aW4uCiAgIC1BZGQgc2VjdGlvbiB0byBSRUFETUUud2luMzIgZGVzY3JpYmluZyB0aGUgdmFyaW91cyBXaW5kb3dzIGRlZmluZXMuCiAgIC1BZGQgbm90ZSB0byBSRUFETUUgZmlsZXMgYWJvdXQgc3BhY2VzIGluIGZvbGRlciBuYW1lcyB3aGVuIGNvbXBpbGluZy4KCjIwMDUtMDQtMzAgMTg6MzYgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0wNC0yOSAxMjoxNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICMxMTQ5NDIwIC0gdXNlIG5ldyBleHRlcm5hbCBmZCBoYW5kbGVyIHJvdXRpbmVzLAogICB0byBwYXZlIHRoZSB3YXkgZm9yIG1vcmUgaW50ZWdyYXRlZCB0cmFwIGhhbmRsZXJzLgoKMjAwNS0wNC0yOSAxMjoxMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaDoKCiAgIFBhdGNoICMxMTQ5NDIwIC0gc2VwYXJhdGUgZXh0ZXJuYWwgZmQgaGFuZGxpbmcgb2ZmIGludG8KICAgYSBkaXN0aW5jdCBsaWJyYXJ5IG1vZHVsZS4gIFN1Ym1pdHRlZCBieSBTdGVuIEouIE9sc3NvbgoKMjAwNS0wNC0yOSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgUGF0Y2ggIzExNTQ0ODggLSBvcHRpb24gdG8gc3BlY2lmeSBwcmlvcml0eSBvZiAicGFzcyIgcHJvY2Vzc2luZwoKMjAwNS0wNC0yOSAxMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBBcHBseSBwYXRjaCAjMTE1NTMzNyAtIGZpeCBkaXNrSU8gYXZlcmFnZSBzdXBwb3J0IGZvciBGcmVlQlNENQoKMjAwNS0wNC0yNyAyMDoyMiAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBXaW4zMiBNU1ZDOiBBYm9ydCBjb21waWxlIGlmIGEgc3BhY2UgaXMgZGV0ZWN0ZWQgaW4gdGhlIGJhc2UgZm9sZGVyCiAgIHdoZW4gY29tcGlsaW5nLgoKMjAwNS0wNC0yNyAyMDoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgTWFzc2l2ZSBkZWJ1Z2dpbmcgb2YgbWVtb3J5IGxlYWtzLiAgSXQgaXMgbm93IG1lbW9yeS1sZWFrIGZyZWUhCgoyMDA1LTA0LTI3IDIwOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmcmVlIHRoZSBzdWItbmFtZSBpZiBub3QgYXR0YWNoZWQgdG8gdGhlIHBhcmVudCBzdHJ1Y3R1cmUuCgoyMDA1LTA0LTI3IDE4OjU1ICBhbGV4X2IKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDeWd3aW46IFJlcGxhY2UgUElEX1pPTUJJRSByZWZlcmVuY2VzIGFzIHRoZSBmbGFnIHdhcyByZW1vdmVkIGZyb20KICAgQ3lnd2luIGluIG1pZCBKYW4gMjAwNS4KCjIwMDUtMDQtMjYgMTg6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAtIHN5bmMgc29tZSBjb21tZW50cwogICAtIGZpeCBoYW5kbGluZyBvZiBPSURzIGluIHJvd19jb3B5IGNvZGUsIG5vdGVkIG9uIElSQyBieSBkYXZlal8KCjIwMDUtMDQtMjUgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICB1cGRhdGUgdGFibGVfaXRlcmF0b3IgdG8gdXNlIHZhbGlkX2NvbHVtbiBpbmZvCgoyMDA1LTA0LTIyIDExOjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbXByb3ZlIGhhbmRsaW5nIG9mIG5vbi1pbnRlZ2VyLWJhc2VkIG9iamVjdHMgaW4gdGFibGVfZGF0YSB0ZW1wbGF0ZSBjb2RlLgoKMjAwNS0wNC0yMiAxMToxMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgSWYgYW4gaW5zdGFuY2UtYmFzZWQgaGFuZGxlciByZXR1cm5zIGFuIGVycm9yIGZvciBhIEdldE5leHQgcmVxdWVzdCwKICAgd2UgbmVlZCB0byBza2lwIG9uIHRvIHRoZSBuZXh0IHZhbGlkIGluc3RhbmNlLgoKMjAwNS0wNC0yMiAxMDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZmFpbHVyZSB0byBjcmVhdGUgaW5pdGlhbCB1c2VyLgoKMjAwNS0wNC0yMSAxMjo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgZG9uJ3QgdHJhY2sgZGVidWcgc3RhdHMgYnkgZGVmYXVsdDsgYWRkIHN0YXRzIHByb3RvdHlwZXMKCjIwMDUtMDQtMjEgMTA6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5IHBhdGNoIDEwODUyNDM6IEFkZCA2NC1iaXQgY291bnRlcnMgdG8gZGlza0lPVGFibGUKCjIwMDUtMDQtMjEgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGluaXQgc3RhdCBwdHIgdG8gbnVsbAoKMjAwNS0wNC0yMSAxMDoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgLSBzdGF0aWMgZGVsZXRlX2R1cGxpY2F0ZXMgLT4gcHVibGljIG5ldHNubXBfY2FsbGJhY2tfY2xlYXJfY2xpZW50X2FyZwogICAtIHRhYnMgdG8gc3BhY2VzCgoyMDA1LTA0LTIxIDEwOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICBhZGQvdXNlIGNhbGxiYWNrIHByaW9yaXR5IG1hY3JvcwoKMjAwNS0wNC0yMSAxMDowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgYWRkIGRlYnVnIHRva2VuIGV4Y2x1c2lvbgoKMjAwNS0wNC0yMSAwOTozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIHNraXAgZXhjbHVkZWQgdG9rZW5zICh0aWwgbWliIGlzIHVwZGF0ZWQpCgoyMDA1LTA0LTIwIDIzOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgZm9yIGNoYW5nZSB0byBjdHggaW5pdCBkZWZhdWx0CgoyMDA1LTA0LTIwIDIzOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIGNvZGUgZm9yIERFRlZBTHMgaW4gY3R4IGluaXQKCjIwMDUtMDQtMjAgMjM6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGRlZmF1bHQgdG8gZ2VuZXJhdGUgY3R4IGluaXQKCjIwMDUtMDQtMjAgMTk6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGFkZCBub3RlIG9uIGluZGV4IGF0dHJpYnV0ZXMgYWxyZWFkeSB0ZXN0ZWQKCjIwMDUtMDQtMjAgMTg6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBjb21tZW50cwogICAtIHJldmFtcCBjaGVja19pbmRleGVzIHRvIGRvIGJhc2ljIHZhbGlkYXRpb24gYmVmb3JlIGNhbGxpbmcgdXNlciBmdW5jCiAgIC0gZXhwbGljaXQgbm90IHdyaXRhYmxlIGNhc2UgZm9yIGluZGV4L3JlYWQtb25seSB2YXJzIGluIHNldCBjb2xzCgoyMDA1LTA0LTIwIDE4OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBhZGQgY29tbWVudHMgaW4gaW5kZXggaGFuZGxpbmcgZnVuY3Rpb24gaGVhZGVycwoKMjAwNS0wNC0yMCAxODo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLSByZW1vdmUgaGFyZGNvZGVkIHRhYmxlIG5hbWUKICAgLSByZW1vdmUgcmVkdW5kYW50IHByb3RvdHlwZQogICAtIGFkZCBzb21lIGNvbW1lbnRzCiAgIC0gZGVmaW5lIHByb3RvdHlwZSBiZWZvcmUgdXNlCiAgIC0gZml4IGJhY2sgZnVuY3Rpb24gbmFtZQogICAtIGZpeCB0b28gbWFueSBwYXJhbXMgZm9yIGZ1bmN0aW9uCgoyMDA1LTA0LTIwIDE4OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbm9kZS12YWxpZGF0ZS5tMmksCiAgICAgbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIC0gYnJlYWsgdmFsdWUgdmFsaWRhdGlvbiBvdXQgb2YgdmFyYmluZC12YWxpZGF0ZQogICAtIGNvbXBhcmUgdmFsdWVzL2xlbmd0aHMgZGlyZWN0bHksIGluc3RlYWQgb2YgY2FsbGluZyBmdW5jdGlvbgogICAtIGRldGVjdC9oYW5kbGUgcmFuZ2VzIHRoYXQgYXJlIHJlYWxseSBzaW5nbGUgdmFsdWVzCgoyMDA1LTA0LTIwIDE4OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZml4IGRpcmVjdG9yeSBjb3B5CgoyMDA1LTA0LTIwIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBmcmVlIHN0cmluZyBwYXNzZWQgdG8gcGVybCBhZnRlciBpdCdzIHBhc3NlZAoKMjAwNS0wNC0yMCAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmg6CgogICBhZGQgd2F0Y2hlZCBleGFtcGxlCgoyMDA1LTA0LTIwIDE0OjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIC0gYWRkIGV4YW1wbGUgc3RyaW5nIHRvIG1pYgogICAtIGFkZCBleGFtcGxlIG9mIGEgd2F0Y2hlZCBzdHJpbmcKCjIwMDUtMDQtMTkgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQoKMjAwNS0wNC0xOCAxODoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCgoyMDA1LTA0LTE4IDE4OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGZpeGVzIGZvciBjcmVhdGVfZmV3ZXJfZmlsZXMgc2V0dGluZwogICAtIGRlZmluZSB0YWJsZSBuYW1lIG9uY2UsIGF0IHRvcCwgZm9yIHF1aWNrZXIgdXBkYXRpbmcKCjIwMDUtMDQtMTggMTg6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgIC0gYWRkIHRvcC90YWJsZSBsZXZlbCBzaHV0ZG93biBmdW5jdGlvbnMKICAgLSBkZWZpbmUgdXNlciBjb250ZXh0CgoyMDA1LTA0LTE4IDE4OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgLSB1c2UgbmV3IG0yY19kYXRhX2NhY2hlIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgZ2VuZXJhdGUgY2FjaGUgY29kZQogICAtIGFkZCBmdW5jdGlvbiB0byBnZXQgdGFibGUgY29udGFpbmVyCiAgIC0gbW9zdCBjYWNoZV8qIGZ1bmN0aW9ucyByZW5hbWVkIHRvIGNvbnRhaW5lcl8qOyByZW1haW5pbmcgY2FjaGUgdmVyc2lvbnMKICAgICBjYWxsIGNvbnRhaW5lciB2ZXJzaW9ucwogICAtIGFkZCB0YWJsZS9jb250YWluZXIgc2h1dGRvd24gZnVuY3Rpb25zCgoyMDA1LTA0LTE4IDE4OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgbW92ZSBpbmRleGVzX3NldCByZWFkbWUgaGVyZSAoZnJvbSBjb250YWluZXItY2FjaGVkKQoKMjAwNS0wNC0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICAtIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCiAgIC0gcmVtb3ZlIGhhcmRjb2RlZCBub2RlIG5hbWUKCjIwMDUtMDQtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgICAtIGFsd2F5cyB3cml0ZSBkZWZhdWx0cywgc28gbmV3IG9wdGlvbnMgYXBwZWFyIGZvciB1c2VyCiAgICAgLSBuZXcgb3B0aW9uczogZGF0YV9jYWNoZSwgZGF0YV9zcGFyc2UKICAgICAtIG1vcmUgaW50ZXJhY3RpdmUgcXVlc3Rpb25zOgogICAgICAgc2tpcCBtYXBwaW5nLCBzcGFyc2UsIHVuY2FjaGVkIGNvbnRhaW5lciwgZ2VuZXJhdGUgbWFrZWZpbGUvYWdlbnR4CgoyMDA1LTA0LTE4IDE3OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICB0d2VhayBleGNsdXNpb24gb2YgbWFwcGluZyBmdW5jdGlvbnMKCjIwMDUtMDQtMTggMTc6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3RhYmxlX3NhdmVfZGVmYXVsdHMubTJpOgoKICAgbmV3IG0yaSB0byBzYXZlIGFsbCB0YWJsZSBkZWZhdWx0cwoKMjAwNS0wNC0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgICAtIGFsd2F5cyB3cml0ZSBkZWZhdWx0cywgc28gbmV3IG9wdGlvbnMgYXBwZWFyIGZvciB1c2VyCgoyMDA1LTA0LTE4IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgLSBjaGVjayBmb3IgYmFkIGhkciBsZW4KICAgLSBkb24ndCBmcmVlIE5VTEwgcHRyCgoyMDA1LTA0LTE4IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSB1c2UgbmFtZWQgdmFycyBpbnN0ZWFkIG9mIHBvc2l0aW9uYWwsIGZvciBjbGFyaXR5CiAgIC0gdHdlYWtzIHRvIGNvcHkgdXBkYXRlZCBkZWZhdWx0cyBmaWxlcwoKMjAwNS0wNC0xNSAxNzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaDoKCiAgIGFkZCBjb25maWdfYWRkX21pYgoKMjAwNS0wNC0xNCAxODoxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNS0wNC0xNCAxNzoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG1vdmUgZ2VuZXJhdGlvbiBvZiBlbXB0eSBpbmNsdWRlcyBvdXRzaWRlIG9mIGFnZW50IGVuYWJsZWQgY29uZGl0aW9uYWwKCjIwMDUtMDQtMTMgMjI6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmk6CgogICB1cGRhdGUgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGlubGluZSB3L2V2ZXJ5b25lIGVsc2UKCjIwMDUtMDQtMTMgMjI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGdlbmVyYXRlIGluZGV4IGNoZWNrIHJvdXRpbmVzIGlmIHRhYmxlIHBlcnNpc3RlbnQgaXMgc2V0CiAgIC0gZG9uJ3QgcmVmZXJuY2Ugc2V0X2NvbHVtbnMgdW5sZXNzIHRhYmxlIHNldHRhYmxlCiAgIC0gZG9uJ3QgY2hlY2svaW5zZXJ0IG5ldyByb3dzIHVubmxlc3Mgcm93IGNyZWF0aW9uIGlzIHNldAoKMjAwNS0wNC0xMyAyMjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1kYXRhLXNldC5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gZ2VuZXJhdGUgaW5kZXggY2hlY2sgcm91dGluZXMgaWYgdGFibGUgcGVyc2lzdGVudCBpcyBzZXQKICAgLSBtb3ZlIGluZGV4IGNoZWNrIGZ1bmN0aW9ucyB0byBkYXRhIGFjY2VzcyBmaWxlIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkKICAgICB0aGUgcGVyc2lzdGVuY2Ugcm91dGluZXMKCjIwMDUtMDQtMTMgMDk6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oLCBpcC1taWIuaAo6CgogICBhZGQgYXBwcm9wcmlhdGUgbWlicyB0byBkZWZhdWx0IGxvYWQgbGlzdAoKMjAwNS0wNC0wOCAxMDozOCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGFuZ2UgaW5kZXggYW5kIHJpbmRleCBkZWZpbmVzIGZvciBNaW5HVyB0byBmaXggY29tcGlsZSBwcm9ibGVtLgoKMjAwNS0wNC0wNyAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIHN5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gYWRkIGFwaSBmb3IgcmVmZXJlbmNlIGNvdW50aW5nCiAgIC0gYWRkIGFwaSB0byBmaW5kIHJvdyBmcm9tIHRhYmxlIG1pYiBpbmRleCBzdHJ1Y3QKCjIwMDUtMDQtMDcgMTg6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXNzIGluIGhpbnQgdG8gZ2V0X2ZpcnN0IGlmIHNvcnRlZCAoc3VnZ2VzdGVkIGJ5IE1pa2UgVGhhdGNoZXIgb24gY29kZXJzKQoKMjAwNS0wNC0wNyAxMzowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGRvbid0IGRpc2FibGUgYWxsIGZpbGVsb2dzIHdoZW4gYSBuZXcgb25lIGlzIGVuYWJsZWQuCiAgIC0gYWdhaW4gd2l0aCB0aGUgQysrIGNvbW1lbnRzLCBzbyB0aGlzIGlzIHJlLXRob3VnaHQgYmVmb3JlIDUuMwoKMjAwNS0wNC0wNiAxMjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGV4Y2x1ZGUgY3ZzIElkIGxpbmVzIGZyb20gZGlmZgoKMjAwNS0wNC0wNiAxMTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJlbW92ZSBleHRyYW5lb3VzIDsKCjIwMDUtMDQtMDYgMTE6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhZGQgbWlzc2luZyBjb21tZW50IGNsb3NlCgoyMDA1LTA0LTA2IDExOjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICAtIGFkZCBmdW5jdGlvbiB0byBnZXQgY29udGFpbmVyIHNpemUKICAgLSB0cmFjayB0YWJsZSBsZXZlbCBkaXJ0eSBmbGFnIGZvciBzZXR0YWJsZSB0YWJsZXMKICAgLSBjaGVjayBkaXJ0eSAmIHN1Y2Nlc3MgdG8gY2FsbCBzbm1wX3N0b3JlIGZvciBzZXR0YWJsZSBwZXJzaXN0ZW50IHRhYmxlcwoKMjAwNS0wNC0wNSAxMjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSB1cGRhdGUgaW50ZXJhY3RpdmUgc2V0dXAgdG8gcHJvbXB0IGZvciBwZXJzaXN0ZW50IHN0b3JlCgoyMDA1LTA0LTA1IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmM6CgogICByZW1vdmUgb2xkIGNvZGUgbm90IHVzZWQgZm9yIHRoZSBjb250YWluZXIgdmVyc2lvbgoKMjAwNS0wNC0wNSAxMjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF90YWJsZS5tMmksCiAgICAgbWZkLWludGVyZmFjZS5tMmMsIG1mZC1wZXJzaXN0ZW5jZS5tMmksIG1mZC10b3AubTJjCjoKCiAgIC0gbW92ZSBwZXJzaXN0ZW50IHN0b3JlIGNvZGUgdG8gaXRzIG93biBmaWxlCiAgIC0gdXBkYXRlIGludGVyYWN0aXZlIHNldHVwIHRvIHByb21wdCBmb3IgcGVyc2lzdGVudCBzdG9yZQogICAtIG1vdmUgc2hvdWxkX3NhdmUoKSBvdXQgb2YgaW50ZXJmYWNlIGNvZGUsIGludG8gKlRhYmxlLmMKICAgLSBsb2cgZXJyb3IgaWYgbm8gY29sdW1ucyBmb3VuZCBkdXJpbmcgcmVzdG9yZQoKMjAwNS0wNC0wNCAxNToxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDUtMDQtMDQgMTQ6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBjbGVhciBkdXBsaWNhdGVzIHNvIHRoZXkgYXJlbid0IGRvdWJsZS1mcmVlZAoKMjAwNS0wNC0wMSAxMzo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKCiAgIG5ldyBzdGFydHVwIHNjcmlwdAoKMjAwNS0wNC0wMSAwMzowNiAgbmJhCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMzEgMTk6MDYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQoKMjAwNS0wMy0zMSAxODoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBtZW50aW9uIEFFUyB0b28KCjIwMDUtMDMtMzEgMTc6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIGNhbGwgc25tcF9zaHV0ZG93bgoKMjAwNS0wMy0zMSAxNzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIGFkZCByZXN1bHQgY29kZSB0byBzbm1wX2xvZyBtZXNzYWdlCgoyMDA1LTAzLTMxIDE3OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Mi5oOgoKICAgVGhlIG5ldyBkYXRhIGFuZCBkYXRhc2V0IGhlbHBlciBpbXBsZW1lbnRhdGlvbnMgYnJlYWsgb2xkZXIgY29kZSBhbmQKICAgdGh1cyBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KICAgICAtIE1hcmsgdGhlIG9sZCBkYXRhIGFuZCBkYXRhc2V0IGltcGxlbWVudGF0aW9ucyBhcyBvYnNvbGV0ZSBidXQgcmVzdG9yZQogICAgICAgdGhlbSBmcm9tIHByZXZpb3VzIENWUyB2ZXJzaW9ucy4gIFJlZmVyZW5jZSB0aGUgbmV3IG9uZXMgaW4gdGhlIGRvY3MKICAgICAgIGZvciB0aGUgb2xkIG9uZXMuCiAgICAgLSBDcmVhdGUgbmV3IGRhdGEyIGFuZCBkYXRhc2V0MiB2ZXJzaW9ucyB3aGljaCBhcmUgdGhlIG5ldyBjb250YWluZXIKICAgICAgIGltcGxlbWVudGF0aW9ucy4KICAgICAtIE1ha2UgdGhlIGN1cnJlbnQgZGF0YXNldCBpbXBsZW1lbnRhdGlvbnMgdXNlIHRoZSBuZXdlciB2ZXJzaW9uLgogICAgICAgLSBleGNlcHQgdGhlIHRhYmxlIGFuZCBhZGRfcm93IGltcGxlbWVudGF0aW9ucyB3aGljaCBicm9rZQogICAgICAgICBlbnRpcmVseSB1bmRlciB0aGUgbmV3IGNvZGUuCgoyMDA1LTAzLTMwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByb3cgY3JlYXRpb24gZm9yIHZhY20gZmFtaWx5IHRyZWUgcm93cyB0aGF0IGFyZSBiZW5lYXRoIGEgcGFyZW50IHJvdy4KCjIwMDUtMDMtMzAgMTg6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgLSBhZGQgZGVidWcKICAgLSBkb24ndCBhc3NlcnQgb24gY29uZGl0aW9uIGZvciBuZXh0L2J1bGsKICAgICAtIHRoZSB3aG9sZSBtb2RlIGNvdW50aW5nIGlkZWEgbmVlZHMgcmUtdGhpbmtpbmcuLgogICAtIHVzZSBTTk1QX0ZSRUUgaW5zdGVhZCBvZiBmcmVlLCBub3cgdGhhdCBudWxsIHB0cnMgYXJlIGEgcG9zc2liaWxpdHkKCjIwMDUtMDMtMzAgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCjoKCiAgIHJ1biBodG9ubCBvbiB0aGUgaW5kZXggYWRkcnMKCjIwMDUtMDMtMjkgMjI6MzggIGFsZXhfYgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgQWRkIHN0YXNoX3RvX25leHQgdG8gV0lOMzIgTVNWQyBNYWtlZmlsZSBhbmQgd29ya3NwYWNlLgoKMjAwNS0wMy0yOSAyMDoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvbW1lbnQgb3V0IGRlZmF1bHQgZGlzYWJsZSBvZiBzdGRlcnIgbG9nLCBzaW5jZSBpdCBtYWtlcyBpdCBpbXBvc3NpYmxlCiAgICAgdG8gdXNlIHN0ZG91dC9zdGRlcnIgZm9yIGxvZ2dpbmcgKG5vdyB0aGF0IGxvZy0+ZW5hYmxlZCBpcyBjaGVja2VkKS4gdXNlCiAgICAgQysrIGNvbW1lbnRzLCBzaW5jZSB0aGUgd2hvbGUgbG9nIHNldHVwIG5lZWRzIHJlLXRoaW5raW5nIGJlZm9yZSA1LjMuCgoyMDA1LTAzLTI5IDE2OjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4IGJhZCBmb3JtYXQgcGFyYW1ldGVycyB0byBzbm1wX2xvZwoKMjAwNS0wMy0yOSAxNTowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvY211X2NvbXBhdC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEZXRlY3QgYW5kIHJlcG9ydCBpbnZhbGlkIFBEVXMgc2VudCBhcyByZXNwb25zZQoKMjAwNS0wMy0yOCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gdXNlIG5ldyBjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IgdG8gY2hlY2sgdGhlIHJjIGluIEFMTCB2YXJiaW5kcywgbm90IGp1c3QKICAgICBjdXJyZW50IHJvdy9oYW5kbGVyIHZhcmJpbmRzCgoyMDA1LTAzLTI4IDE1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gZml4IGJ1ZyAxMTcwNjA0IHNubXBfZGlzYWJsZV9zdGRlcnJsb2coKSBpcyBpZ25vcmVkCiAgIC0gY2hlYyBmb3IgbnVsbCBiZWZvcmUgZGVyZWYgKGZpeCBzbm1wdHJhcGQgY3Jhc2ggbm90ZWQgb24gaXJjKQoKMjAwNS0wMy0yOCAxNDoyOSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGZpeCBhZGRyZXNzIHR5cGUgaW4gaW5kZXggb2lkCgoyMDA1LTAzLTI4IDE0OjI3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICBuZXcgZnVuY3Rpb24gdG8gcmVhbGx5IHJlYWxseSBjaGVjayBlcnJvciBzdGF0dXMgb2YgYWxsIHJlcXVlc3RzCgoyMDA1LTAzLTI1IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNoZWNrIHNpemUgb2YgYXJyYXkgaW4gZ2V0dGFibGUgYmVmb3JlIGFzc3VtaW5nIGl0IGhhcyBzb21ldGhpbmcgaW4gaXQKCjIwMDUtMDMtMjUgMDk6NDkgIGFsZXhfYgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgQWRkIGhleE91dHB1dExlbmd0aCB0byBtYW4gcGFnZS4KCjIwMDUtMDMtMjQgMjI6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHBhc3MgTlVMTCB0byBjb25maWcgaGFuZGxlciByZWcsIHRvIHVzZSBjdXJyZW50IGFwcHR5cGUKICAgLSBhZGQgc2VwYXJhdG9ycyBhbmQgaGVhZGVycyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKICAgLSByZW1vdmUgZXh0cmFuZW91cyBuZXdsaW5lIGluIHBlcnNpc3RlbnQgZGF0YQoKMjAwNS0wMy0yNCAyMjowNiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIG5ldyBlbnYgdmFyOiBTTk1QX1BFUlNJU1RFTlRfRElSCgoyMDA1LTAzLTI0IDE2OjQ4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRvbid0IGRpc2FibGUgY2FjaGUsIGp1c3QgZm9yY2UgcmVsb2FkIGZvciBldmVyeSByZXF1ZXN0CgoyMDA1LTAzLTIzIDE5OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgYWRkIG1vZHVsZSBuYW1lCgoyMDA1LTAzLTIzIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBmaXggdHlwbwogICAtIHVwZGF0ZSBjb25maWdfcmVxdWlyZSgpIHBhdGggdG8gc29tZXRoaW5nIGJldHRlciBmb3IgY29uZmlndXJlCgoyMDA1LTAzLTIzIDE5OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICByZW1vdmUgKiBmcm9tIGRlZmF1bHQgY29udGV4dCByZWcgdHlwZSAodHlwZWRlZiBpcyBmb3Igc3RydWN0LCBub3QgcHRyKQoKMjAwNS0wMy0yMiAxNzozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBtYXRjaCB1cCB0b2RvIHdpdGggYWN0dWFsIGdlbmVyYXRlZCBjb2RlCgoyMDA1LTAzLTIyIDE3OjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpOgoKICAgYWRkIG1pc3NpbmcgcGFyYW0gdG8gc25tcF9sb2cKCjIwMDUtMDMtMTggMTg6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbWFrZSBzaWduYWwgY2FsbHMgY29uZGl0aW9uYWwgYmFzZWQgb24gZGVmaW5pdGlvbiBvZiBzaWduYWwgKGxpa2Ugc25tcGQpCgoyMDA1LTAzLTE4IDE4OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGFkZCBkZWZhdWx0ICgwKSBmb3Igc3BhcnNlIHRhYmxlcwogICAtIG9ubHkgbWtkaXIgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgIC0gZG9uJ3QgaWdub3JlIG1rZGlyIGVycm9ycwoKMjAwNS0wMy0xOCAxODowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgbW92ZSB0ZW1wIHN0b3JhZ2UgZm9yIGluZGV4ZXMgb3V0c2lkZSBvZiBleGFtcGxlIGNvbmRpdGlvbmFsCgoyMDA1LTAzLTE4IDE4OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBmaXggZGVmYXVsdCBmb3IgZGF0YSB0cmFuc2llbnQgKG9mZiBieSAxKQoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIGNvbHVtbl9leGlzdHNfZmxhZ3MgY29kZSBpZiBzcGFyc2UgdGFibGUgbm90IHNldAoKMjAwNS0wMy0xOCAxODowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGZpeCBnZW5lcmF0ZWQgcm93cmVxX2N0eF9pbml0IHByb3RvdHlwZQoKMjAwNS0wMy0xOCAxODowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpCjoKCiAgIGNoYW5nZSBJTlRFUk5BTF8qIGVudW0gZGVmaW5lcyB0byBpbmNsdWRlIGNvbnRleHQgKHRhYmxlKSBuYW1lCgoyMDA1LTAzLTE4IDE3OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZml4IHNvbWUgdHlwb3Mgbm90ZWQgb24gbWFpbGluZyBsaXN0cwoKMjAwNS0wMy0xOCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gZGV0ZWN0IGZpcnN0IHJ1biBzbyB3ZSBrbm93IHRvIGNvcHkgZ2VuZXJhdGUgZGVmYXVsdHMgdG8gY3VyciBkaXIKICAgLSBkaWZmIGluZGl2aWR1YWwgZmlsZXMgaW5zdGVhZCBvZiByZWN1cnNpdmUgZGlmZiB3L2V4Y2x1ZGVzCiAgIC0gdXBkYXRlcyBmb3IgbmV3IGRlZmF1bHQgZGlyZWN0b3J5IHN0eWxlIGRlZmF1bHRzCgoyMDA1LTAzLTE4IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGFkZCB0YWJsZSB0ZXN0IGZvciBsYXN0Y2hhbmdlIGFuZCBzdG9yYWdldHlwZSB0YwogICAtIHR3ZWFrIGRvYyBjb21tZW50cwogICAtIGRvY3VtZW50IGlmY29uZiBhbmQgbmV3IGlmZGlyCgoyMDA1LTAzLTE4IDA1OjMxICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgVENQLU1JQi50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgVENQLU1JQiB0byBSRkMgNDAyMgoKMjAwNS0wMy0xOCAwNTozMCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBJQU5BLWlmVHlwZS1NSUIKCjIwMDUtMDMtMTggMDU6MjYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgRml4IGEgd2FybmluZyBmcm9tIEJTRCBzeXN0ZW1zCgoyMDA1LTAzLTE4IDA0OjUyICBuYmEKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBtaWIyYy5jb25mLjUgaXMgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNS0wMy0xNyAwNTozMiAgbmJhCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jOgoKICAgVXBzLCB1bmludGVuZGVkIHBhdGNoIHVuZG9uZQoKMjAwNS0wMy0xNyAwNDozMCAgbmJhCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBBZGQgZm9ybWF0IGNoZWNraW5nIHRvIGNhbGxzIHRvIHNubXBfbG9nLCBhbmQgZml4IHRoZSB1bmNvdmVyZWQgZXJyb3JzCgoyMDA1LTAzLTE1IDAxOjEzICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEluY2x1ZGUgc211eCBoZWFkZXJzIHdoZW4gbmVlZGVkCgoyMDA1LTAzLTE0IDE2OjE0ICBuYmEKCiAgICogY29uZmlndXJlOgoKICAgU3luYyB0byBjb25maWd1cmUuaW4KCjIwMDUtMDMtMTQgMTU6NTMgIG5iYQoKICAgKiBtaWJzLzogSU5FVC1BRERSRVNTLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgcmZjbGlzdAo6CgogICBVcGRhdGUgdG8gY3VycmVudCBJTkVULUFERFJFU1MtTUlCCgoyMDA1LTAzLTE0IDE1OjQ4ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IGNvbmZpZ3VyZSBoZWFkZXIgYWxlcnRzIGZvciBTb2xhcmlzIDggYW5kIDksIE5ldEJTRCAyIGFuZCBGcmVlQlNEIDUKCjIwMDUtMDMtMDQgMTU6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIG1ha2VmaWxlCiAgIC0gaW5kZW50aW9uIGNoYW5nZXMKICAgLSBleHBsaWNpdCBjbG9zZSBvZiBmaWxlCgoyMDA1LTAzLTA0IDE1OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0L3NldCB1c2VyIGNvbnRleHQKICAgLSB1c2UgbmV3IHJvd19tZXJnZSBmaXJzdC9sYXN0IGFwaSB0byBtYWtlIHN1cmUgcHJlL3Bvc3QgY2FsbGVkIDEvcGVyIGhhbmRsZXIKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSB1c2UgYXNwIHN0YXR1cywgbm90IHN0YXR1cyBvZiBoYW5kbGVycyByZXF1ZXN0cywgd2hlbiBjaGVja2luZyBmb3IKICAgICBzdWNjZXNzZnVsIHJlcXVlc3QgY29tcGxldGlvbgogICAtIGFkZCBzdXBwb3J0IGZvciBza2lwcGluZyBub24tZXhpc3RlbnQgcm93cyBpbiBzcGFyc2UgdGFibGVzCiAgIC0gYWRkIG1vcmUgaW5mbyB0byBzb21lIGRlYnVnIG1zZ3MKICAgLSB1c2UgU05NUF9OT1NVQ0hJTlNUQU5DRSBpbnN0ZWFkIG9mIEFTTl9QUklWX1JFVFJZCiAgIC0gYWRkIG1vcmUgZGVidWdzIG1zZ3MKICAgLSBkb24ndCBjbGVhciBzZXQgZmxhZ3MgdGlsIHBvc3QgY29tbWl0CiAgIC0gcmVtb3ZlIHJlZHVuZGFudCB2YXJiaW5kIGxlbmd0aCBjaGVjawogICAtIHVwZGF0ZSBmb3IgbmV3IGNvbHVtbiBmbGFnIG5hbWVzCgoyMDA1LTAzLTA0IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGZpeCB0ZXN0IGZvciBkZWZhdWx0cyBpbiBvbGQgbG9jYXRpb24KICAgLSBhZGQgb3B0aW9uIHRvIHJlLXJ1biBpbnRlcmFjdGl2ZSBzZXR1cCBpZiBleGlzdGluIGRlZmF1bHRzCgoyMDA1LTAzLTA0IDE1OjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCByYyBwYXJhbSB0byBwb3N0X3JlcXVlc3QgKHl1bSwgbXkgb3duIHdvcmRzIHdlcmUgZGVsaWNpb3VzKQogICAtIGNoZWNrIG5ldyB2YXJzIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSBzdXBwb3J0IGZpbGVzCiAgICAgKGRveHlnZW4sIG1ha2VmaWxlLCBzdWJhZ2VudCkKCjIwMDUtMDMtMDQgMTU6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLSBhZGQgY29tbWVudHMgb24gbm9kZSBsZW5ndGhzCiAgIC0gdXBkYXRlIGZvciBjaGFuZ2VzIGluIHZhbHVlIG1hcCByZXZlcnNlCgoyMDA1LTAzLTA0IDE1OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICAtIHVwZGF0ZSBCSVRTIGZpZWxkcyB0byB1c2UgZGVmaW5lIElOVEVSTkFMXypfRkxBRyBkZWZpbmVzLCBpbnN0ZWFkIG9mIElTX1NFVF8qCiAgIC0gYWRkIG9idmlvdXMgbm90ZSBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIEMgYml0IG9yZGVyIGFuZCBTTk1QIGJpdCBvcmRlcgogICAtIGFkZCBCSVRTIG1hcHBpbmcgdG8gcmV2ZXJzZSB2YWx1ZSBtYXAKCjIwMDUtMDMtMDQgMTU6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLCBwYXJlbnQtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBjaGFuZ2UgY29sdW1uIGZsYWcgbmFtZXMgdG8gcmVkdWNlIGNvbmZ1c2lvbiB3aXRoIG90aGVyIGRlZmluZWQgbmFtZXMKCjIwMDUtMDMtMDQgMTQ6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGFkZCBuZXcgbTJjX3RhYmxlX3NwYXJzZSB0byBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNDo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICB1c2UgbmV3IHZhciBmb3IgZW51bSBzdWZmaXgKCjIwMDUtMDMtMDQgMTQ6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgbmV3IHZhciBmb3IgZW51bSBzdWZmaXgsIHNldCB0byBfZmxhZyBmb3IgYml0cyBvYmplY3RzCgoyMDA1LTAzLTA0IDEzOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgLSBtb3ZlIElOVEVSTkFMXyogZW51bSBtYWNyb3MgaW5zaWRlIGlmZGVmcyBmb3IgVEMKICAgLSBnZW5lcmF0ZSBJTlRFUk5BTF8qIGVudW1zIGZsYWdzIGZvciBCSVRTCgoyMDA1LTAzLTAzIDE5OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICB1cGRhdGUgY29tbWVudHMKCjIwMDUtMDMtMDMgMTk6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGZpeCBuZXRzbm1wX2NoZWNrX3ZiX3JhbmdlIChjaGVjayB2YWx1ZXMsIG5vdCBzaXplcykKCjIwMDUtMDMtMDMgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmg6CgogICAtIGtlZXAgc2F2ZWQgc3RhdHVzIGRhdGEgYmV0d2VlbiBtb2RlIGNhbGxzIChpbiByZXFpbmZvKSwgc28gd2UgY2FuLi4KICAgLSBidWlsZCBhbGwgdGVtcG9yYXJ5IHJlcXVlc3QgbGlzdHMgYmVmb3JlIGNhbGxpbmcgbmV4dCBoYW5kbGVyLCBzbyB3ZSBjYW4uLgogICAtIHRyYWNrIG51bWJlciBvZiByZXF1ZXN0cyBhbmQgbnVtYmVyIG9mIHJvd3MsIHNvIHdlIGNhbi4uCiAgIC0gcHJvdmlkZSBhcGkgZm9yIGxvd2VyIGhhbmRsZXIgdG8ga25vdyBpZiBjdXJyZW50IGNhbGwgaXMgZm9yIGZpcnN0L2xhc3Qgcm93CiAgIC0gbG9nIGEgd2FybmluZyBpZiBoYW5kbGVyIGZvciByb3cgcmV0dXJucyBlcnJvciwgYnV0IERPTlQgZXhpdCBsb29wCiAgICAgLSBpZiBsb3dlciBoYW5kbGVyIHJldHVybnMgZXJyLCBwYXNzIGl0IHRvIHBhcmVudAogICAtIGFkZCBtb3JlIGRlYnVnZ2luZwoKMjAwNS0wMy0wMyAxNTozMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBhZGQgb3B0aW9uIHRvIHdhdGNoZWQgdGltZXN0YW1wIHRvIGhhdmUgYSBwb2ludGVyIHRvIGEgZGlyZWN0IHZhbHVlCgoyMDA1LTAzLTAyIDE4OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIG1vdmUgY29sdW1uIGJpdCBmbGFnIG1hY3JvcyB1cCB3aXRoIGNvbHVtbiBudW1iZXIgbWFjcm9zCiAgIC0gYmFpbCBpZmYgbW9yZSB0aGFuIDMyIGNvbHVtbnMuIGZpeCB0aGlzIGxhdGVyLi4uCgoyMDA1LTAzLTAyIDE4OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICAtIGRvbid0IHJ1biBleHRyYSBmaWxlIGZyb20gdG9wOyBtb3ZlIGRvd24gc28gY2FuIGJlIGNvbnRyb2xsZWQgYnkgZGVmYXVsdHMKCjIwMDUtMDMtMDIgMTg6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSByZW1vdmUgdW51c2VkIHNldHVwIG9mIG0yY19udnZfc2l6ZW9mCgoyMDA1LTAzLTAyIDE4OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICAtIHJld29yayBpbml0aWFsIGNoZWNrX3ZiXyogbG9naWMsIGNoZWNraW5nIG1heF9zaXplIGZvciBvY3RldCBzdHJpbmdzCiAgIC0gZml4IHJhbmdlIGNoZWNrcyBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIHVzZSBtMmMgZGF0YV9pdGVtIGFuZCBub2RlIGRpcmVjdG9yeSwgZWxpbWluYXRpbmcgYSB2YXIgZnJvbSBub2RlIHNldHVwCiAgIC0gcmVtb3ZlIGdlbmVyYXRlZCBjb21tZW50IGFuZCBzb21lIGNvbW1lbnRlZCBvdXQgY29uZiBzdHVmZgoKMjAwNS0wMy0wMiAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgcHJvcGVyIGltcGxlbWVudGF0aW9uIGZvciBjaGVja192Yl9zaXplX3JhbmdlCgoyMDA1LTAzLTAyIDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIC0gbW92ZSBUT0RPIGNvbW1lbnQgYXdheSBmcm9tIGxpbmtlIGxpa2VseSB0byBiZSBkZWxldGVkCiAgIC0gYSBsb2cgbWVzc2FnZSBpbmRpY2F0aW5nIGEgbm9kZSBpcyBub3QgaW1wbGVtZW50ZWQKCjIwMDUtMDMtMDIgMTU6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIGFsbG93IG9jdGVzdCBzdHJpbmcgcmVhZCB0byBmaWxsIGJ1ZmZlcgogICAtIGRvbid0IG51bGwgdGVybWluYXRlIG9jdGV0IHN0cmluZyBpZiBidWZmZXIgZnVsbAogICAtIHdhcm4gaWYgaW5wdXQgaXMgbGFyZ2VyIHRoYW4gYnVmZmVyCgoyMDA1LTAzLTAyIDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCiwgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLXJlYWRtZS5tMmMsCiAgICAgcGFyZW50LXNldC5tMmk6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGZpeCBtaXMtbmFtZWQgZnVuY3Rpb247IGFkZCBwcm90byBmb3IgY29ycmVjdCBuYW1lCgoyMDA1LTAzLTAyIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhbGxvdyBzbm1wZC5jb25mIHNtdXggT0lEcyB0byBiZSB0ZXh0LCBub3QganVzdCBudW1lcmljCgoyMDA1LTAzLTAyIDE0OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIHVzZSBuZXcgc3lzT1IgcmVnaXN0cmF0aW9uIGNhbGxiYWNrIGluc3RlYWQgb2YgZGlyZWN0IGZ1bmN0aW9uIGNhbGxzCgoyMDA1LTAzLTAyIDEzOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgYWRkL3JlZ2lzdGVyIGNhbGxiYWNrcyBmb3IgcmVnL3VucmVnIHN5c09SIGVudHJpZXMKCjIwMDUtMDMtMDIgMTM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3IgcmVnL3VucmVnIHN5c09SIGVudHJpZXMKCjIwMDUtMDMtMDIgMTM6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gbG9nIElORk8gbWVzc2FnZSBvbiBzdWNjZXNzZnVsIGNvbm5lY3QgdG8gbWFzdGVyCiAgIC0gYWx3YXlzIGxvZyBwZWVybmFtZSBvbiB1bnN1Y2Nlc3NmdWwgY29ubmVjdCBhdHRlbXB0CgoyMDA1LTAzLTAyIDEzOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgYWx3YXlzIGxvZyBhZ2VudHggcGVlciBuYW1lIG9uIGNvbm5lY3QgZmFpbHVyZQoKMjAwNS0wMy0wMiAxMzo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gbG9nIG1lc3NhZ2Ugb24gZmFpbGVkIHJlZ2lzdHJhdGlvbgogICAtIHVwZGF0ZSBmb3IgbmV3IHZlcnNpb25fc3lzb2lkIGxvY2F0aW9uCgoyMDA1LTAzLTAyIDEzOjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbW9yZSBkZWJ1Zy9lcnJvciBsb2cgZm9yIHByb2JsZW1zIHdpdGggY2FjaGUgZmlsZQoKMjAwNS0wMy0wMiAxMzozNiAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcwogICAgIC0gbW92ZSB2ZXJzaW9uX3N5c29pZCBpbnRvIHRoZSBhZ2VudCAoZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzKQogICAgIC0gdXBkYXRlIHN5c3RlbV9taWIgZm9yIG5ldyBzeXNvaWQgbG9jYXRpb24KICAgLSBkb24ndCBjYWxsIGhvc3RzX2N0bCBmb3IgY2FsbGJhY2sgY29ubmVjdGlvbgogICAtIGxvZyBhZGRyX3N0cmluZyBmb3IgVU5LTk9XTiBjb25uZWN0aW9ucwoKMjAwNS0wMy0wMiAxMjoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBhZGQgZGVidWcKCjIwMDUtMDMtMDIgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgLSBhZGQgLXggcGFyYW0gZm9yIG1hc3RlciBhZGRyZXNzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcwoKMjAwNS0wMy0wMiAxMjowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZG94eWdlbi5tMmM6CgogICBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZiBmaWxlCgoyMDA1LTAzLTAyIDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBmaXggc3BlYyBzbyBycG1idWlsZCB3L3BhcmFtZXRlcnMgc2hvdWxkIHdvcmsgb2sKICAgICAtIG1ha2Ugc3VyZSBwZXJsIHVzZXMgUlBNIHByZWZpeCwgaW5zdGVhIG9mIGhhcmRjb2RlZCAvdXNyIChjb25maWcsIHBhdGhzdWIpCiAgICAgLSBtYWtlIHN1cmUgbWFrZWluc3RhbGwgdXNlcyBwcm9wZXIgaW5jbHVkZSBkaXIgcGF0aAoKMjAwNS0wMi0yOCAwNzo1MiAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQWRkZWQgV0lOMzIgaWZkZWYgYmxvY2tzIHRvIGFjY29tb2RhdGUgY29tcGlsaW5nIHRoZSBIT1NULVJFU09VUkNFIG1pYiBvbgogICBXaW5kb3dzLgoKMjAwNS0wMi0yOCAwNzo1MCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgV2luZG93cyBIT1NULVJFU09VUkNFIG1pYiBpbXBsZW1lbnRhdGlvbi4gc3RydWN0IHdpbl9zdGF0ZnMgaGFzIGJlZW4gbW92ZWQKICAgdG8gaHJfc3RvcmFnZS5oLgoKMjAwNS0wMi0yOCAwNzo0OCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oOgoKICAgV2luZG93cyBIUiBtaWIgaW1wbGVtZW50YXRpb24uCgoyMDA1LTAyLTI3IDIyOjM0ICBhbGV4X2IKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgdC9taWIudCwgdC9zdGFydGFnZW50LnBsOgoKICAgQXBwbHkgTWF4IEJha2VyJ3MgcGF0Y2ggMTExNzY5NiB3aGljaCBmaXhlcyBhIHJlZ2V4IHRoYXQgc3BsaXRzIGEgdGFnIGZyb20KICAgYW4gaWlkLiAgQWxzbyBhZGRlZCBhZGRpdGlvbmFsIHRlc3RzIHRvIG1pYi50IHRlc3Qgc2NyaXB0LgoKMjAwNS0wMi0yNiAwNzoyMSAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgVGhpcyBpcyBwYXJ0IG9mIHRoZSBIT1NULVJFU09VUkNFIFdpbmRvd3MgaW1wbGVtZW50YXRpb24uIGhyX25ldHdvcmsuYyB3aWxsCiAgIG5vdyBjb21waWxlIHdpdGggTWluR1cgYnV0IG11Y2ggb2YgdGhlIGZ1bmN0aW9uYWxpdHkgc3RpbGwgbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCgoyMDA1LTAyLTI1IDE3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNldCBhIGdvb2QgZXhhbXBsZSBhbmQgY2FsbCBTT0NLX0NMRUFOVVAgYmVmb3JlIGV4aXQKCjIwMDUtMDItMjUgMTc6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmksIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwNS0wMi0yNSAxNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHByb3RvdHlwZXMsIG5vdGVkIGJ5IG5pZWxzCiAgIC0gZG9uJ3QgZ2VuZXJhdGUgZG94eWdlbiBjb25mIGZpbGUKCjIwMDUtMDItMjUgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBpZ25vcmUgY3ZzIElkIHRhZ3Mgd2hlbiBwZXJmb3JtYWluZyBkaWZmCgoyMDA1LTAyLTI1IDE2OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJncm91cC9zbXV4L3NtdXguaCwgbWliX21vZHVsZXMuYywKICAgICBzbm1wX3ZhcnMuYzoKCiAgIC0gZWxpbWluYXRlIGxpYm5ldHNubXBhZ2VudCByZWZzIHRvIGxpYm5ldHNubXBtaWJzCiAgICAgLSBtb3ZlIG1vZHVsZV9pbml0X2xpc3Qgc3R1ZmYgaW50byBhZ2VudCBsaWJzCiAgICAgLSBtb3ZlIHNtdXggY29kZSBpbnRvIGFnZW50IGxpYnMKCjIwMDUtMDItMjUgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhZGQgY29udGV4dCB0byByZWdpc3Rlcl9taWIgZGVidWcKICAgLSB3YXJuIGlmIHBhc3NlZCBjb250ZXh0IGRvZXNuJ3QgbWF0Y2ggcmVnaW5mby0+Y29udGV4dE5hbWUKCjIwMDUtMDItMjUgMTY6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICByZWdpc3RlciB3aXRoIGNvbnRleHQsIGlmIHNwZWNpZmllZAoKMjAwNS0wMi0yNSAxNjoxMCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gZml4IGxpYnJhcnkgb3JkZXJzIGluIGxpbmsgbGluZXMKICAgLSBhZGQgd2luZG93cyBTT0NLXyogbWFjcm9zIHRvIGdlbmVyYXRlZCBzdWJhZ2VudAoKMjAwNS0wMi0xOSAwNzowMCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBpbXBsZW1lbnRhdGlvbiBmb3IgV2luZG93cy4KCiAgICogRGVmaW5lZCB3aW5fc3RhdGZzIHN0cnVjdHVyZS4KICAgKiBEZWZpbmVkIHBhZ2VzaXplIGZvciBXaW5kb3dzIGFzIDQwOTYgKDRrIGlzIHdoYXQgSSBoYXZlIGZvdW5kIHRocm91Z2ggbXkKICAgCXJlc2VhcmNoLiBUaGVyZSBpcyBwcm9iYWJseSBhIHZhcmlhYmxlIG9yIGZ1bmN0aW9uIHRvIGdldCB0aGUgaW5mb3JtYXRpb24KICAgCW9uIFdpbmRvd3MgYnV0IEkgaGF2ZSBub3QgZm91bmQgaXQgeWV0LikKICAgKiBBZGRlZCBmdW5jdGlvbnMgd2luX3N0YXRmcygpIGFuZCB3aW5fcmVhbHBhdGgoKS4KCjIwMDUtMDItMTYgMTY6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEtpbGxpbmcgd2FybmluZ3MKCjIwMDUtMDItMTYgMTY6NDggIG5iYQoKICAgKiBtaWJzLzogTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgTkVULVNOTVAtRVhURU5ELU1JQi50eHQKLCBORVQtU05NUC1UQy50eHQ6CgogICBzbWlsaW50J2luZwoKMjAwNS0wMi0xNSAxMToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBJbXBsZW1lbnQgcHJvcGVyIFNFVCBzdXBwb3J0IGZvciBuc0V4dGVuZFJ1blR5cGUuCgoyMDA1LTAyLTEyIDA4OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBNb3ZlIHZhcmlhYmxlIHVudXNlZCB3aGVuIDxwaWNsLmg+IHVuYXZhaWxhYmxlIGZvciBTb2xhcmlzCgoyMDA1LTAyLTEyIDA4OjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIEZpeCB3YXJuaW5ncwoKMjAwNS0wMi0xMiAwODowNyAgbmJhCgogICAqIGFnZW50LzogaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL3dhdGNoZXIuYywKICAgICBtaWJncm91cC9hZ2VudC9leHRlbmQuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBTb2xhcmlzIGdjYyAtbTY0IGZpeGVzCgoyMDA1LTAyLTEyIDA2OjQyICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgTW9yZSBkZXRhaWxzIHdoZW4gcmVzcG9uc2UgZmFpbHMuIEdvb2QgZm9yIGxvY2F0aW5nIDY0LWJpdCBwcm9ibGVtcwoKMjAwNS0wMi0xMiAwNTo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBGaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMTIgMDU6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBJbnRlZ3JhdGUgZml4ZXMgZnJvbSBOZXRCU0QgcG9ydAoKMjAwNS0wMi0xMCAxNDo1MyAgbmJhCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEZpeCBtaXNsZWFkaW5nIGNvbW1lbnQuIFRoYW5rcyB0byBidWcgMTA4Njg3MAoKMjAwNS0wMi0xMCAxMzo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1ZGUgc3lzbG9nLmggYWxzbyBpZiBub3QgdXNpbmcgbGlid3JhcAoKMjAwNS0wMi0xMCAxMzoyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRml4IHN5c0lPUmF3U2VudC9SZWNlaXZlZCB3aGljaCBhcmUgcmV2ZXJzZWQgZm9yIExpbnV4LiBCdWcgMTEwMjUxOAoKMjAwNS0wMi0xMCAxMDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRml4IEZyZWVCU0QgbWVtb3J5IGxlYWssIHRoYW5rcyB0byBKb2huIFNlbGxlbnMsIGJ1ZyAxMTAzNjQ0CgoyMDA1LTAyLTEwIDA4OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBGaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMTAgMDc6MzUgIG5iYQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjIyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBhbiBleHRyYW5lb3VzIG5ld2xpbmUgZW5kaW5nIGhleHN0cmluZ3MKCjIwMDUtMDItMDkgMTY6MzQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEZpeCBiYWQgaW5kZXgsIHBvaW50ZWQgb3V0IGluIGJ1ZyAxMTE2NjUyCgoyMDA1LTAyLTA5IDE2OjMwICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBhIGJhZCBlcnJvciBtZXNzYWdlCgoyMDA1LTAyLTA5IDE2OjI1ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSB3YXJuaW5ncwoKMjAwNS0wMi0wOSAxNjoxNSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQW5vdGhlciBodW50IGZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0wOSAxNDo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEFkZCBzb21lIG1pc3NpbmcgY29uc3QtbmVzcyBmb3IgcGFyYW1ldGVycwoKMjAwNS0wMi0wOCAxNjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICBGaXggYSBidW5jaCBvZiB0cml2aWFsIHdhcm5pbmdzCgoyMDA1LTAyLTA4IDE1OjA2ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgU01VWC1NSUIudHh0LCBpYW5hbGlzdAosIHJmY2xpc3QsIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbnMKCjIwMDUtMDItMDggMTQ6NTQgIG5iYQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXhlcyB0byBhbGxvdyBpdCB0byBwYXNzIHNtaWxpbnQKCjIwMDUtMDEtMjcgMjI6NTIgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZGlzYWJsZSBjYWNoaW5nIHNpbmNlIG90aGVyIGNvZGUgbW9kaWZpZXMgdW5kZXJseWluZyBkYXRhCgoyMDA1LTAxLTI1IDE2OjI0ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBub3RlIG9uIGN2czJjbCB3b3JrYXJvdW5kLCBhZGQgbm90ZSBvbiBob3cgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbgoKMjAwNS0wMS0yNSAwODo1MSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBtaXNuYW1lZCByb3cgc3RydWN0dXJlLgoKMjAwNS0wMS0yMiAxNjo0OSAgYWxleF9iCgogICAqIGxvY2FsL0ZBUTJIVE1MLCBsb2NhbC9odG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLAogICAgIG1hbi9tYWtlX2luZGV4LnBsLCBtYW4vbWFuX3NlY3Rpb25zLnR4dCwKICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL21ha2VodG1sLnBsOgoKICAgVXBkYXRlZCBzY3JpcHRzIGV0YyBmb3IgZ2VuZXJhdGluZyB3ZWIgY29udGVudC4KCjIwMDUtMDEtMjIgMTU6MzggIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbDoKCiAgIFdpbjMyIHJlZ2lzdHJ5IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzCgoyMDA1LTAxLTIyIDEwOjQyICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIEFkZGVkIGNvdW50X3VzZXJzIGZ1bmN0aW9uYWxpdHkgZm9yIFdpbmRvd3MuIFRoZSBmdW5jdGlvbiBjdXJyZW50bHkgcmV0dXJucwogICAwIGZvciBhIGZhaWxlZCBjYWxsIHRvIE5ldFdrc3RhR2V0SW5mbygpIGFuZCBtYXkgcmVxdWlyZSBtb3JlIGVycm9yIGNoZWNraW5nCiAgIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byByZXR1cm4gYSBjb3JyZWN0IHZhbHVlIGZvciBmYWlsdXJlLgoKMjAwNS0wMS0yMSAxMTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIFVzZSB0aGUgKG5ldykgdGFibGVfZGF0YXNldCBpdGVyYXRvciBBUEkgcm91dGluZXMsCiAgIHJhdGhlciB0aGFuIHRoZSBpbnRlcm5hbCBmaWVsZHMgZGlyZWN0bHkuCgogICAoSSB3b25kZXIgaG93IG1hbnkgbW9yZSBiaXRzIEkgYnJva2U/KQoKMjAwNS0wMS0yMSAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmM6CgogICBEb24ndCBiZSBzdWNoIGFuIGltcGF0aWVudCBjaGlsZCwgRGF2ZSEgIElmIEkndmUKICAgdG9sZCB5b3Ugb25jZSwgSSd2ZSB0b2xkIHlvdSBhIHRob3VzYW5kIHRpbWVzOgoKICAgVGlkeSB1cCBwcm9wZXJseSBhZnRlciBvbmUgcmVxdWVzdCBiZWZvcmUgc3RhcnRpbmcgb24gdGhlIG5leHQuCgogICA8c2hha2VzIGhlYWQgc29ycm93ZnVsbHk+CiAgIFNvbWUgcGVvcGxlISAtIEkgYmxhbWUgdGhlIHBhcmVudHMuLi4uLgoKMjAwNS0wMS0yMCAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBSZS1pbXBsZW1lbnQgJ3RhYmxlX2RhdGEnIHVzaW5nIHRoZSAndGFibGVfY29udGFpbmVyJyBoZWxwZXIuCiAgIFRoZSB0d28gYXJlIGFsbW9zdCBpZGVudGljYWwgaW4gYmVoYXZpb3VyIGFueXdheSAtIGp1c3Qgd2l0aAogICBkaWZmZXJlbnQgZXhwZWN0YXRpb25zIG92ZXIgdGhlIGZvcm1hdCBvZiBhIHBlci1yb3cgc3RydWN0dXJlLgoKMjAwNS0wMS0yMCAwOTowOSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBVc2UgdGhlIChuZXcpIHRhYmxlX2RhdGFzZXQgaXRlcmF0aW9uIEFQSSwKICAgcmF0aGVyIHRoYW4gZmlkZGxpbmcgd2l0aCB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uCgoyMDA1LTAxLTIwIDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFByb3ZpZGUgYSBjbGVhbiBBUEkgZm9yIHdhbGtpbmcgdGhyb3VnaCB0aGUgcm93cyBvZiBhIHRhYmxlCiAgIChSYXRoZXIgdGhhbiByZWx5aW5nIG9uIGEgcGFydGljdWxhciBpbnRlcm5hbCByZXByZXNlbnRhdGlvbikuCgoyMDA1LTAxLTIwIDA5OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFRoZSBBUEkgZm9yIGNvdW50aW5nIHRoZSBudW1iZXIgb2Ygcm93cyB3YXMgY29uZnVzaW5nbHkKICAgbmFtZWQsIGFuZCBub3QgYWN0dWFsbHkgZGVjbGFyZWQgaW4gdGhlIGhlYWRlciBmaWxlLgogICBJbnRyb2R1Y2UgYSBtb3JlIHNlbnNpYmxlIHZlcnNpb24uCgoyMDA1LTAxLTE5IDA5OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBXZSBzZWVtIHRvIGhhdmUgYW4gaW5jb25zaXN0ZW50bHkgbmFtZWQgQVBJLCBkZXBlbmRpbmcgb24gd2hldGhlciBpdAogICBpcyBiZWluZyBkZWZpbmVkIGlubGluZSBvciBub3QuICBUaGlzIGRvZXMgbm90IGZlZWwgbGlrZSBhIEdvb2QgSWRlYS4KICAgRW5zdXJlIHRoYXQgdGhlIHNhbWUgbmFtZXMgd29yaywgcmVnYXJkbGVzcyBvZiBpbmxpbmluZy4KICAgKFRoYXQgaW50cm9kdWNlcyBhIGNlcnRhaW4gZHVwbGljYXRpb24gb2YgY29kZSwgYnV0IHN1Y2ggaXMgbGlmZSkKCjIwMDUtMDEtMTMgMTE6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIE5ld2VyIElQLUZPUldBUkQtTUlCIGZyb20gYW4gSUQgc2V0IHRvIGJlY29tZSBhbiBSRkMKCjIwMDUtMDEtMTMgMTE6MjQgIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUC1GT1JXQVJELU1JQi50eHQsIElBTkEtUlRQUk9UTy1NSUIudHh0LAogICAgIE1ha2VmaWxlLmluOgoKICAgTmV3ZXIgSVAtRk9SV0FSRC1NSUIgZnJvbSBhbiBJRCBzZXQgdG8gYmVjb21lIGFuIFJGQwoKMjAwNS0wMS0xMiAxMTo1MCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFByb3ZpZGUgYSBtZWFucyBmb3Igc25tcHRyYXBkIHRvIHJlcG9ydCAvZXRjL2hvc3RzLnthbGxvdyxkZW55fQogICBzdHlsZSBhY2Nlc3MgY29udHJvbCBhY3Rpdml0eS4KICAgVGhpcyBzaG91bGQgcGVyaGFwcyBiZSBsb2dnZWQgdmlhICdzbm1wX2xvZycgKGMuZiBhZ2VudC9zbm1wX2FnZW50LmMpCiAgIGJ1dCBJIHNlZW0gdG8gcmVjYWxsIHByb2JsZW1zIHdpdGggZHVwbGljYXRlIHN5bWJvbHMuICBCdXQgYSBkZWJ1ZwogICBtZXNzYWdlIHNob3VsZCBiZSBzYWZlIGVub3VnaC4uLi4KCjIwMDUtMDEtMTIgMTE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgZGVmaW5lIHNldFBlcnJvcnN0YXR1cyB1bnRpbCBwcm9wZXIgZml4IGltcGxlbWVudGVkCgoyMDA1LTAxLTEyIDA5OjQzICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBQaGlsaXAgVyBHaWxsaXMgYW5kIERhbmllbCBLZXJucyBmb3Igd2luMzIgZ2V0ZW52IGNyYXNoLgoKMjAwNS0wMS0xMiAwNjozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiBzdGFzaC1jYWNoZSB0aW1lb3V0cywgYm90aCBhdAogICByZWdpc3RyYXRpb24gYW5kIHZpYSB0aGUgTkVULVNOTVAtQUdFTlQtTUlCOjpuc0NhY2hlVGFibGUuCiAgIChEb24ndCBtdWNoIGxpa2UgdGhlIEFQSSBuYW1lcywgdGhvdWdoIC0gaW1wcm92ZWQgc3VnZ2VzdGlvbnMKICAgZ3JhdGVmdWxseSByZWNlaXZlZCkuCgoyMDA1LTAxLTEyIDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmM6CgogICBVc2UgdGhlIHN0YW5kYXJkIGNhY2hlIGhlbHBlciwgcmF0aGVyIHRoYW4gaGFuZGxpbmcgdGhpcyBpbnRlcm5hbGx5LgoKMjAwNS0wMS0xMiAwNjoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBNYWtlIHRoZSBoYW5kbGVyIGNoYWluIGluZm9ybWF0aW9uIGF2YWlsYWJsZSB0byB0aGUgY2FjaGUgbG9hZCByb3V0aW5lLgogICAoQW5kIGZpeCBhIGJyb2tlbiBkZWJ1ZyBtZXNzYWdlKQoKMjAwNS0wMS0xMiAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEluY2x1ZGUgdGhlIG5ldyAnc3Rhc2hfdG9fbmV4dCcgaGVscGVyIGluIHRoZSBoZWxwZXIgbGlicmFyeS4KCjIwMDUtMDEtMTEgMTA6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaCwKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCjoKCiAgIEF1dG9tYXRpY2FsbHkgaW5qZWN0IHRoZSBzdGFzaF90b19uZXh0IGhlbHBlciBhdCByZWdpc3RyYXRpb24sCiAgIHJhdGhlciB0aGFuIGR5bmFtaWNhbGx5IGR1cmluZyByZXF1ZXN0IHByb2Nlc3NpbmcuCiAgIChXZSBtdXN0IHRyeSB0byBrZWVwIG91ciBiZWxvdmVkIGxlYWRlciBoYXBweSBhbmQgY29udGVudCBhbmQgdW5zdXNwZWN0aW5nLi4uLikKCjIwMDUtMDEtMTEgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFN1cHBvcnQgdGhlIGluamVjdGlvbiBvZiBhIGhhbmRsZXIgc3ViLWNoYWluCiAgIChyYXRoZXIgdGhhbiBqdXN0IGEgc2luZ2xlIGhhbmRsZXIpCgoyMDA1LTAxLTA5IDExOjMxICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBjb25maWcuaCAtPiBuZXQtc25tcC1jb25maWcuaAoKMjAwNS0wMS0wOCAxMDoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVhZC9jcmVhdGUgZGVmYXVsdCBmaWxlcyBmcm9tL2luIHN1YmRpcgoKMjAwNS0wMS0wOCAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLCBtZmQtcmVhZG1lLm0yYzoKCiAgIHJlYWQvY3JlYXRlIGRlZmF1bHQgZmlsZXMgZnJvbS9pbiBzdWJkaXIKCjIwMDUtMDEtMDggMDc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHJlbmFtZSBzb21lIG9mIHRoZSBuZXcgcGVyc2lzdGVudCBmdW5jdGlvbnMvdmFycwogICAtIGZpeCBsZW5ndGggaGFuZGxpbmcgZm9yIEJJVFMKICAgLSB1c2Ugc3RhY2sgZm9yIGxpbmUgYnVmZmVyCiAgIC0gYWRkL3R3ZWFrIHNvbWUgZGVidWcgbXNncwoKMjAwNS0wMS0wNyAwNzoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX3RvX25leHQuaDoKCiAgIEV4dGVuZCB0aGUgYXBwbGljYWJpbGl0eSBvZiBXZXMnICJzdGFzaF9jYWNoZSIgaGVscGVyLCBieQogICBhdXRvbWF0aWNhbGx5IGNvbnZlcnRpbmcgYSBHRVRTVEFTSCByZXF1ZXN0IGludG8gYSBHRVRORVhUCiAgIHdhbGsgZm9yIHRob3NlIGNoYWlucyB0aGF0IGRvbid0IHN1cHBvcnQgdGhpcyBtb2RlIGRpcmVjdGx5LgogICAoQW5kIHByb3ZpZGUgYSB3YXkgZm9yIGNoYWlucyB0aGF0IGRvLCB0byBzYXkgc28hKQoKMjAwNS0wMS0wNyAwNDozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBVc2UgbmV0c25tcF9jaGVja192Yl90eXBlIGZvciBjaGVja2luZyBTRVQgcmVxdWVzdHMuCgoyMDA1LTAxLTA2IDEyOjMzICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdCBwZXJzaXN0ZW5jZSBzdXBwb3J0IGZvciBtZmQKCjIwMDUtMDEtMDYgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGFkZCBpbmNsdWRlIHRvIHF1aXRlIHdhcm5pbmcKICAgLSBhZGQgcGVyc2lzdGVuY2UKCjIwMDUtMDEtMDYgMTI6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgY29uZGl0aW9uIG9uIHByb3RvdHlwZSBnZW4gbm93IHRoYXQgZnVuY3Rpb24gaXMgYWx3YXlzIGdlbmVyYXRlZAoKMjAwNS0wMS0wNiAxMDoxNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMKCjIwMDUtMDEtMDYgMTA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cyAoZG9lcyBub3QgZXhjbHVkZSBzZXQgcHJvY2Vzc2luZyBjb2RlIC0geWV0KQoKMjAwNS0wMS0wNiAxMDowOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNS0wMS0wNiAwOTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cyAoZG9lcyBub3QgZXhjbHVkZSBzZXQgcHJvY2Vzc2luZyBjb2RlIC0geWV0KQoKMjAwNS0wMS0wNiAwOTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIHJlbW92ZSBjb25kaXRpb25hbCBmb3IgdmFyIGRlY2wsIHNpbmNlIHVzZSBpc24ndCBjb25kaXRpb25hbAoKMjAwNS0wMS0wNiAwOTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgYWRkIGNvbW1lbnQgb24gaG93IHRvIGRpc2FibGUgY2FjaGluZwoKMjAwNS0wMS0wNiAwOTo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaToKCiAgIC0gYWRkIG1pc3NpbmcgJSBzcGVjIGluIGxvZyBtc2cKICAgLSBnZW4gY29kZSB0byBjb3B5IHZhbHVlIG9uY2UgYWRkclR5cGUgaXMga25vd24KCjIwMDUtMDEtMDUgMTc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgaW5pdCBtaWJzIGJlZm9yZSBzbm1wIHNvIGNvbmYgZmlsZSByZWdpc3RyYXRpb25zIHdvcmsKCjIwMDUtMDEtMDUgMTU6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhbHdheXMgZ2VuZXJhdGUgcm93IHVuZG9fc2V0dXAvdW5kb19jbGVhbnVwCgoyMDA1LTAxLTA1IDEwOjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNhc2UgbGFiZWwgdG8gbWF0Y2ggbGFibGVsIGdpdmVuIGluIHVzYWdlIG1zZwoKMjAwNS0wMS0wMyAxMDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNvbW1lbnQgb3V0IG92ZXJyaWRlIGNoZWNrcyB3aGVyZSB3ZSBkb24ndCBoYXZlIHRoZSBpbnRlcmZhY2UgbmFtZQoKMjAwNS0wMS0wMiAyMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZWNvZ25pc2Ugd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFzIHByaW50YWJsZS4KCjIwMDUtMDEtMDIgMjA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE9ubHkgaXNzdWUgImFjY2VzcyBjb250cm9sIG5vdCBjb25maWd1cmVkIiB3YXJuaW5nIGZvciB0aGUgYWdlbnQKICAgKG5vdCBzbm1wdHJhcGQpCgoyMDA1LTAxLTAyIDE5OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIFRPRE8gaXRlbSBmb3IgY29kZSBpbiBpbnRlcmZhY2VzIGZpbGUKCjIwMDUtMDEtMDIgMTg6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGRvbid0IGJpbmQgbG9jYWwgdHJhcHNpbmtzIHRvIGxvY2FsaG9zdCBpZiBjbGllbnRBZGRyIGlzIHNldAoKMjAwNC0xMi0zMSAwOToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbW1lbnQgY2xhcmlmaWNhdGlvbgoKMjAwNC0xMi0yOCAxODo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgZml4IGxvZ2ljIGZvciBtZmQgdGFibGUgdGVzdAoKMjAwNC0xMi0yOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHVwZGF0ZSByZmMgcmVmZXJlbmNlCgoyMDA0LTEyLTI4IDE2OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBkb24ndCByZWdpc3RlciByb25seSBoYW5kbGVycyBhcyBSV1JJVEUKICAgLSBhZGQgbWlzc2luZyBuZXRzbm1wX3JlZ2lzdGVyX2ludF9pbnN0YW5jZV9jb250ZXh0CgoyMDA0LTEyLTI4IDE1OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB1c2UgbWFjcm8gY29uc3RhbnRzIGZvciByZXR1cm4gdmFsdWVzLCBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMKCjIwMDQtMTItMjggMTU6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlYnVnIG1zZyB3L2Vycm5vIHdoZW4gc2VuZHRvIGZhaWxzCgoyMDA0LTEyLTI4IDE1OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfYXNzZXJ0IG9uIGJhZCBBU04gYnVpbGQKCjIwMDQtMTItMjggMTU6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGhlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSBhbHdheXMgc3BlY2lmeSBjb250ZXh0LCBpZiBhdmFpbGFibGUpIGZvciByZWdpc3RlciBjYWxsYmFja3MKICAgICAoc28gZGlzY29ubmVjdGVkIGFnZW50eCBzdWJhZ2VudHMgcmVjb25uZWN0IHcvcHJvcGVyIGNvbnRleHQpCiAgIC0gbWVtc2V0IHN0cnVjdCBvbiBzdGFjayB0byAwCgoyMDA0LTEyLTI4IDEyOjAyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGJ1ZyAxMDQ5NjA3OiBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50IGJyb2tlbgoKMjAwNC0xMi0yNyAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGFkZCBwb2ludGVyIHRvIHR1dG9yaWFsIGFuZCBjb21tYW5kbGluZSB0byBnZW5lcmF0ZSBwc2V1ZG8tdG9kbyBsaXN0CgoyMDA0LTEyLTI1IDAwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICBiYWlsIG9uIG5vbi10YWJsZSBPSUQgdW50aWwgbXVsdGlwbGUgdGFibGVzIHBlciBmaWxlIGFyZSBzdXBwb3J0ZWQKCjIwMDQtMTItMjUgMDA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBidWcgMTA2Mjk4NjogcGFzcyBhbmQgcGFzc19wZXJzaXN0IGZhaWwgYW5kIGNyYXNoIHNubXBkCgoyMDA0LTEyLTI0IDIzOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGZpeCBidWcgMTA3MjQwNjogaW52YWxpZCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIG9wZW5kaXIoKQoKMjAwNC0xMi0yNCAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBmaXggYnVnIDEwODQ0MTM6IENhbid0IGRpc2FibGUgZmlsZSBsb2dnaW5nCgoyMDA0LTEyLTI0IDEwOjMyICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGZpeCBidWcgMTA0MDcxMTogc25tcHRyYXBkOiBTSUdIVVAgZHVwbGljYXRlcyB0cmFwaGFuZGxlcnMgKHJlcGVhdGVkbHkpCgoyMDA0LTEyLTI0IDA5OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIC1wIHRvIG1rZGlyIHBhcm0KCjIwMDQtMTItMjQgMDk6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgaGFyZGNvZGVkIEhBVkVfSUZOQU1FVE9JTkRFWCBub3cgdGhhdCBjb25maWd1cmUgY2hlY2tzIGZvciBpdAoKMjAwNC0xMi0yNCAwOTowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSBkb24ndCBvcGVuIHN0ZG91dCB0aWwgd2UgbmVlZCBpdAogICAtIGV4cGxpY2l0IGNsb3NlIGZvciBvcGVuZWQgZmlsZQogICAtIGNoYW5nZSBkZWZhdWx0IHRvIGFza2luZyBxdWVzdGlvbnMgaW5zdGVhZCBvZiB1c2luZyBkZWZhdWx0cwoKMjAwNC0xMi0yNCAwOTowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBjaGFuZ2UgZGVmYXVsdCBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgdG8gb24KICAgLSBkb24ndCBvdmVycmlkZSByZXBvcnQgcHJvZ3Jlc3MgdmFyIGlmIGFscmVhZHkgc2V0CgoyMDA0LTEyLTIzIDE3OjU3ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBGaXggY29tcGlsaW5nIHdpdGhvdXQgUFNESy4KCjIwMDQtMTItMjMgMTQ6MTkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyBjb21waWxlIGZpeGVzCgoyMDA0LTEyLTIyIDE4OjA5ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgZml4IGJ1ZyAxMDg4NzY1OiBBZ2VudCBmYWlscyB0byBzZW5kIHRyYXBzIHRvIHJlbW90ZSB0YXJnZXQKCjIwMDQtMTItMjIgMTY6MjggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMjIgMTY6MTIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSB0ZXN0IGZvciBpZl9uYW1ldG9pbmRleAoKMjAwNC0xMi0yMiAxMzozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUudGhyZWFkOgoKICAgbWVudGlvbiB0aGF0IHYzIGlzbid0IHRocmVhZCBzYWZlCgoyMDA0LTEyLTE2IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgbG9nIHdhcm5pbmcgb24gYmFkIGhleCBsZW5ndGggKGhpZ2hlciByb3V0aW5lcyBkb24ndCBnZXQgZXJyb3IgaW5kaWNhdGlvbikKCjIwMDQtMTItMTYgMjA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgaWZkZWYgb3V0IHYxL3YyIGNvZGUgd2hlbiBib3RoIGRpc2FibGVkCgoyMDA0LTEyLTE2IDE4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtY2hlY2sgZm9yIGR1cGxpY2F0ZSB0YWJsZSBkZWZzIGluIHNubXBkLmNvbmYKICAgLW1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMKICAgLXN1cHBvcnQgcnVuLXRpbWUgdGFibGVzIHdoaWNoIGFyZSBhdWdtZW50YXRpb25zCiAgIC1sb2cgZXJyb3IgaWYgcnVuLXRpbWUgcm93IGFkZCBmYWlscwoKMjAwNC0xMi0xNiAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcwoKMjAwNC0xMi0xNiAxNDo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGZvciBudWxsIHZhciBiZWZvcmUgZGVyZWYKCjIwMDQtMTItMTYgMTQ6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2FjaGUgbmV4dCBwdHIgYjQgb2JqZWN0IGNvdWxkIGJlIGZyZWVkCgoyMDA0LTEyLTE2IDE0OjQyICByc3RvcnkKCiAgICogbHRtYWluLnNoOgoKICAgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2Ugb24gbWlzc2luZyBsaWJyYXJ5CgoyMDA0LTEyLTE2IDE0OjQwICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgSU5TVEFMTF9QUkVGSVggdG8gcHJvZ3Jlc3MgbWVzc2FnZXMKCjIwMDQtMTItMTUgMTE6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTQgMDg6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgZGVsZXRlIGV4dHJhICc7JwoKMjAwNC0xMi0xNCAwNjo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBxdW90aW5nIG9uIGV2YWwgbGluZXMKCjIwMDQtMTItMTMgMTI6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZWdpc3RyYXRpb24gbG9va3VwIG9wdGltaXphdGlvbiBhbGxvd2luZyBpbmNvbWluZyByZXF1ZXN0cyB0byBtb3JlIHF1aWNrbHkgc2VhcmNoIHRocm91Z2ggdGhlIGxpbmtlZCBsaXN0IGFuZCBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIGluc3RlYWQgb2YgZnVsbCBPSUQgY29tcGFyZXMgZm9yIG11Y2ggb2YgdGhlIHNlYXJjaCB0cmVlLiAgU2hvdWxkIHNpZ25maWNhbnRseSBpbmNyZWFzZSB0aGUgc2VhcmNoIHNwZWVkIGZvciBuZXcgcmVxdWVzdHMuCgoyMDA0LTEyLTEzIDEyOjM3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBGQVEsIFJFQURNRQosIHNlZHNjcmlwdC5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtICgpOiB2ZXJzaW9uIHRhZyAoIDUuMy5kZXYgKQoKMjAwNC0xMi0xMyAxMjozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWRkZWQgYSBuZXcgb2lkLWNvbXBhcmUgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB3aGVyZSB0aGUgT0lEcyBkaWZmZXJlZAoKMjAwNC0xMi0xMyAxMjoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBhZGQgYW4gZXh0cmEgc29ydGluZyB2YXJpYWJsZTogb2lkX29mZgoKMjAwNC0xMi0xMyAwODoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xMyAwODoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtaXNzaW5nIGVuZCBxdW90ZQoKMjAwNC0xMi0xMCAxNToxNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIHJlY2VudCBjaGVja2lucwoKMjAwNC0xMi0xMCAxNTowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC1jb21tZW50IHR3ZWFrcwogICAtZnJlZSB2YXJiaW5kIGluZGV4ZXMgYmVmb3JlIHBhcnNpbmcgbmV3IG9uZXMKICAgLWFkZC91c2UgcHJvcGVyIGRhdGFfbGlzdCBmcmVlIGZ1bmN0aW9uIGZvciByb3cgc3Rhc2hlcwoKMjAwNC0xMi0xMCAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBmb3IgdXNpbmcgaWZOYW1lIGZvciBpZkRlc2NyIHdoZW4gaWZEZXNjciBub3QgYXZhaWxhYmxlCgoyMDA0LTEyLTEwIDE0OjQxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtZml4IGJ1ZyAxMDM0MDA4OiBtZW1vcnkgbGVhayB1c2luZyBTRVQgZm9yIHRhYmxlX2RhdGFzZXQKICAgLXJlbW92ZSB1bnN1cHBvcnRkICUgc3BlYyBpbiBjb25maWdfcHdhcm4KCjIwMDQtMTItMTAgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYXBwbHkgcGF0Y2ggMTA1MjQ2MDogYWdlbnQgZGVhZGxvY2sgb24gZXhlYwoKMjAwNC0xMi0xMCAxMzowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFwcGx5IHBhdGNoIDEwNTUwMzY6IGlmLW1pYiBpbml0IG9yZGVyIGZpeAoKMjAwNC0xMi0xMCAxMjo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgYXBwbHkgcGF0Y2ggMTA1NzA1NzogaXBTeXN0ZW1TdGF0c1RhYmxlIGluZGV4IGZpeCwgYWRkIGlwdjYKCjIwMDQtMTItMTAgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC1uZXcgdGFyZ2V0cyB0byBtYWtlIGFnZW50bGliLCBtaWJsaWIgb3IgYm90aAogICAtcmVtb3ZlIGFnZW50IGxpYiBkZXBlbmRlbmN5IG9uIG1pYiBsaWIKCjIwMDQtMTItMTAgMTE6MDQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyB0YXJnZXRzIHRvIG1ha2Ugc25tcGxpYiwgYWdlbnQsIGFsbCBvciBpbmRpdmlkdWFsIGFwcHMKCjIwMDQtMTItMTAgMTE6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTAgMTE6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtZml4IGRpc2FibGUgc25tcHYyYwogICAtYWRkIHBhcnRpYWwgdGFyZ2V0IG9zIHRvIG1vZHVsZSBjZmxhZ3MKICAgLXJlc3RvcmUgbWlzc2luZyB2YXIgaW5pdCAoZml4IGNvbmZpZ3VyZSBzbG93ZG93bikKICAgLW1vcmUgZGVidWdnaW5nCgoyMDA0LTEyLTEwIDEwOjE1ICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2g6CgogICBmaXggdGFibGUgY2hlY2tzIGJ5IGFkZGluZyBtaXNzaW5nIG51bGwgcGFyYW1ldGVyCgoyMDA0LTEyLTEwIDEwOjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjb21tZW50IGNoYW5nZSBvbmx5LSBkb2N1bWVudCB3aHkgdGVzdCBtYXkgbm90IGFsd2F5cyBiZSBmYWxzZQoKMjAwNC0xMi0xMCAwOTo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGNvbnNpc3RlbnQgdGFibGUgbmFtaW5nIGluIGV4YW1wbGUgZmxvdywgbm90ZWQgb24gY29kZXJzIGJ5IERhdmUKCjIwMDQtMTItMTAgMDk6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC1hZGQgZmxhZyBmb3Igcm93IGRlbGV0ZWQKICAgLWlmIG5vIGVycm9ycywgaW5zZXJ0L2RlbGV0ZSBuZXcvZGVsZXRlZCByb3cgaW50byBjb250YWluZXIKCjIwMDQtMTItMTAgMDk6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgZml4IGNhc2Ugb2YgbWlzc2luZyBnZXQgY29kZQoKMjAwNC0xMi0xMCAwOTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgdXNlIHNhbWUgY2FjaGUgdGltZW91dCBvbiBhbGwgcGxhdGZvcm1zCgoyMDA0LTEyLTEwIDA5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSBwYXRjaCAxMDU2OTI3OiA1LjItcDAzOiBmcmVlYnNkIGludGVyZmFjZSBidWdzCiAgICAgLSBmaXggYnVnIDEwNTU3ODE6IGdldC1uZXh0IGZhaWxzIHRvIHN0ZXAgaW50byBpbnRlcmZhY2VzIGdyb3VwIGNvcnJlY3RseQogICAgIC0gZml4IGJ1ZyAxMDU2NzYwOiBhZ2VudCBpZ25vcmVzIGlmc3BlZWQsIHR5cGUgc2V0dGluZ3MgaW4gc25tcGQuY29uZgogICAtIGFsc28gZml4IGJ1ZyAxMDU2NzYwIGZvIEhQLVVYLCBzb2xhcmlzLCBXaW4zMiBhbmQgb3RoZXJzCgoyMDA0LTEyLTEwIDA4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFwcGx5IHBhdGNoIDEwNzM4OTc6IGZpeCBpZi1taWIgZGF0YSBhY2Nlc3MgNjRiaXQgY291bnRlciB3cmFwIGRldGVjdGlvbgoKMjAwNC0xMi0wOSAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIC0gZGVsZXRlIHJlbW92ZWQgcm93IGFmdGVyIHVzZXIgY29tbWl0IGZ1bmN0aW9uIGNhbGxlZAogICAtIHJlbW92ZSByb3cgaW5zZXJ0L2RlbGV0ZSBpbiB1bmRvIC0gaGFuZGxlZCBpbiBjb21taXQKCjIwMDQtMTItMDkgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIGNoZWNrIHJlcXVlc3RzIGZvciBlcnJvcnMgb24gZ2V0IG1vZGVzIHRvbwoKMjAwNC0xMi0wOSAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGRvbid0IGZyZWUgbnVsbCBwb2ludGVyCgoyMDA0LTEyLTA5IDExOjU3ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgU2xpZ2h0bHkgY2xlYW5lciBzdW1tYXJpZXMgb2YgY29uZmlnIGZpbGUgaGFuZGxpbmcuCgoyMDA0LTEyLTA5IDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQWxsb3cgdGhlIHRyYXAgZGFlbW9uIHRvIHNwZWNpZnkgYSBub24tZGVmYXVsdCBBZ2VudFggc29ja2V0LgoKMjAwNC0xMi0wOSAxMTo1MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIE5ldyB1dGlsaXR5IHJvdXRpbmVzIGZvciBjaGVja2luZyBtYXhpbXVtIChyYXRoZXIgdGhhbiBleGFjdCkgc2l6ZSBsaW1pdHMuCgoyMDA0LTEyLTA5IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgVXNlIHRoZSBsZW5ndGggc3VwcGxpZWQgZHVyaW5nIHJlZ2lzdHJhdGlvbiB3aGVuIGRlY2lkaW5nIGhvdwogICBtdWNoIG9mIHRoZSBPSUQgdG8gc2tpcCBiZWZvcmUgY29tcGFyaW5nIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzLAogICByYXRoZXIgdGhhbiB0cnlpbmcgdG8gc2Vjb25kLWd1ZXNzIHdoYXQgdGhlIE1JQiBpbXBsZW1lbnRlciB3YW50ZWQuCgogICBUaGUgTWZEIGZyYW1ld29yayAod2hpY2ggaXMgdGhlIG9ubHkgcGxhY2UgdGhpcyBoZWxwZXIgaXMgY3VycmVudGx5CiAgIHVzZWQpIGFscmVhZHkgdGFrZXMgdGhlIG9iamVjdCBzdWJpZGVudGlmaWVyIGludG8gYWNjb3VudCB3aGVuCiAgIGluc2VydGluZyB0aGUgaGVscGVyLCB0aHVzIGRvaW5nIHNvIGFnYWluIHdpbGwgYnJlYWsgdGhpbmdzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMSAtPiBWNS4yCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgd29yZGluZyBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBSb2JlcnQKCjIwMDQtMTEtMjQgMTc6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50IGdldF9pbmRleGVzKCkgYnkgZXhhbXBsZQoKMjAwNC0xMS0yNCAxNzowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVudCBnZXR0YWJsZSgpCgoyMDA0LTExLTI0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQ29udmVydCBHTlUgc3BlY2lmaWMgbWFrZSBoYWNrcyB0byBwb3J0YWJsZSB2ZXJzaW9uCgoyMDA0LTExLTI0IDE2OjQyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNC0xMS0yNCAxNjo0MSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIFVwZGF0ZSBmb3IgNS4yIGFkZGluZyBhIHRvbiBvZiBuZXcgc3R1ZmYKCjIwMDQtMTEtMjQgMTQ6MzUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIFVwZGF0ZSBmb3IgNS4yCgoyMDA0LTExLTI0IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgZm9yIDUuMi4gIEFkZGVkIGEgZmV3IHJlZmVyZW5jZXMgdG8gdGhlIG90aGVyIFJFQURNRSBmaWxlcwoKMjAwNC0xMS0yNCAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIE1hbiBwYWdlIHVwZGF0ZSBmb3IgNS4yCgoyMDA0LTExLTI0IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHRvIDUuMgoKMjAwNC0xMS0yNCAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzdHJpY3QgbWFuIHBhZ2UgZml4ZXMgZnJvbSBFcmljIFMuIFJheW1vbmQKCjIwMDQtMTEtMTggMDU6MjcgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgZml4IHR5cGUgbm90ZWQgb24gY29kZXJzCgoyMDA0LTExLTE3IDEwOjE3ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIC0gZG9jdW1lbnQgZmxhZ3MgdG8gdXNlIHRvIGluc3RhbGwgb3ZlciBBcHBsZSdzIHZlcnNpb24gKHdoaWNoIGhhcyBhIGJhZAogICAgIGNvcHkgb2YgbmV0LXNubXAtY29uZmlnCiAgIC0gZG9jdW1lbnQgZXhsdWRpbmcgdGhlIHVuc3VwcG9ydGVkIGljbXAgdGFibGUKCjIwMDQtMTEtMTcgMDY6NDkgIGR0czEyCgogICAqIEFHRU5ULnR4dDoKCiAgIEZpeCB0eXBvIGFuZCBtaXNzaW5nIGNvbmZpZyBkaXJlY3RpdmUsIHJlcG9ydGVkIGJ5IFdpbGxpYW0gQnVja2xleS4KICAgRW1waGFzaXNlIChpbiBhbiB1bmRlcnN0YXRlZCBCcml0aXNoIHNvcnQgb2Ygd2F5KSB0aGF0IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGRlc2NyaWJpbmcgdGhlIHY0IGFnZW50LCBhbmQgdGhpbmdzIG1heSBiZSBkaWZmZXJlbnQgd2l0aCB0aGUgdjUgdG9vbGtpdC4KCjIwMDQtMTEtMTcgMDU6MjkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNiAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMS0xNiAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gcmM0CgoyMDA0LTExLTE2IDE1OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBjb25maWd1cmUgaW4gaW50ZXJmYWNlIGlvY3RsIGNvZGUgYnkgZGVmYXVsdAogICAtIGlmZGVmIG91dCBhcmNoIGRlcGVuZGVudCBjb2RlIGluIGludGVyZmFjZSBjb21tb24KCjIwMDQtMTEtMTIgMDc6MzYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB0d2Vha3MKCjIwMDQtMTEtMTEgMDY6MzYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBtb3JlIGNoYW5nZXMgYW5kIGZpeGVzCgoyMDA0LTExLTA5IDA4OjIxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBub24tb3B0aW9uYWwgbmF0dXJlIG9mIHNubXBkLmNvbmYKICAgKHNwb3R0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0xMS0wOSAwODoxMiAgZHRzMTIKCiAgICogRkFROgoKICAgUmFpZCBSb2JlcnQncyBGQVEgZm9yIHNvbWUgdXNlZnVsIGVudHJpZXMuCgoyMDA0LTExLTA5IDA1OjE2ICBkdHMxMgoKICAgKiBUT0RPOgoKICAgSXQncyBhYm91dCB0aW1lIHdlIGhhZCBhIGZyZXNoIFRPRE8gbGlzdC4KICAgVGhlcmUgbWF5IHdlbGwgYmUgYml0cyB0aGF0IGNhbiBiZSBzYWx2YWdlZCBmcm9tIHRoZQogICBvbGQgdmVyc2lvbiwgYnV0IEknbGwgbGVhdmUgdGhhdCB0byBzb21lb25lIGVsc2UuCgoyMDA0LTExLTA1IDIxOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mLCBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMKLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMKLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMKLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMKLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMKLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zCiwgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMKLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zCiwgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMKLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zCiwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdXRpbC4zCiwgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMS0wNSAyMDoyNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGUgZnJvbSBCcnVjZQoKMjAwNC0xMS0wNSAxMzowOCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBjb25maWd1cmUgcHJvYmxlbSB3aGVuIGNvbXBpbGluZyB3aXRoIHNvbWUgV2luZG93cyBjb21waWxlcnMuCiAgIFRoZSBhZmZlY3RlZCBwbGF0Zm9ybXMgd2VyZSBNaW5HVyBhbmQgQ3lnd2luLCB0aGUgcGF0Y2ggc2hvdWxkIG5vdCBlZmZlY3QgTVNWQysrCiAgIGJ1aWxkcy4KCjIwMDQtMTEtMDUgMDI6MDUgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGVsdGEuMSwgc25tcGRlbHRhLjEuZGVmCiwgc25tcGRmLjEsIHNubXBkZi4xLmRlZiwgc25tcG5ldHN0YXQuMSwKICAgICBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEdlbmVyYXRlICJmaXhlZCBpbmZvcm1hdGlvbiIgY29tbWFuZCBtYW4gcGFnZXMgZHluYW1pY2FsbHkKICAgKHNvIHRoZXkgcGljayB1cCB0aGUgdmVyc2lvbiBoZWFkZXIpIHJhdGhlciB0aGFuIGhhdmUgdGhlbSBzdGF0aWMuCgoyMDA0LTExLTA1IDAxOjI4ICBkdHMxMgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGJ1bGtnZXQuMS5kZWYsCiAgICAgc25tcGJ1bGt3YWxrLjEuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMQosIHNubXBkZi4xLCBzbm1wZ2V0LjEuZGVmLCBzbm1wZ2V0bmV4dC4xLmRlZgosIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYKLCBzbm1wdGFibGUuMS5kZWYsIHNubXB0cmFuc2xhdGUuMS5kZWYsCiAgICAgc25tcHRyYXAuMS5kZWYsIHNubXB1c20uMS5kZWYsIHNubXB2YWNtLjEuZGVmLAogICAgIHNubXB3YWxrLjEuZGVmOgoKICAgVHdlYWsgdGhlIG9uZS1saW5lIGRlc2NyaXB0aW9ucyBvZiB2YXJpb3VzIGNvbW1hbmRzIHRvIGltcHJvdmUKICAgY29uc2lzdGVuY3kgYW5kIGNsYXJpdHkKCjIwMDQtMTEtMDQgMjE6MzggIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZXMgKG1vc3RseSBzdHVmZiB3ZSBkb24ndCBzdXBwb3J0KQoKMjAwNC0xMC0yOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICAtPiA1LjIucmMyCgoyMDA0LTEwLTI5IDIyOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgLT4gNS4yLnJjMgoKMjAwNC0xMC0yOSAxMzoyOCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZmlyc3QgcGFzcyBhdCBhZ2VudCBtaWJzIHJlYWRtZQoKMjAwNC0xMC0yNiAwNTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0yNiAwNTozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IHVuY29uZGl0aW9uYWxseSBhZGQgbGlicmFyaWVzIChmcmVlYnNkIGRvZXNuJ3QgaGF2ZSBsaWJkbCkKCjIwMDQtMTAtMjIgMTg6MDYgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGZpeCBjb25mbGljdAoKMjAwNC0xMC0yMiAxODowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTIyIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2NzCgoyMDA0LTEwLTIyIDE3OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMC0yMiAxMTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0yMiAxMTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbW92ZSBQSUMgY2hlY2sgYWZ0ZXIgbW9kdWxlIHByb2Nlc3NpbmcsICYgY2hlY2sgYWdhaW5zdCBjb21wbGV0ZSBtb2R1bGUgbGlzdAogICAtIGNoZWNrIGRpc2tpbyBhbmQgbG1TZW5zb3JzIGFnYWluc3QgY29tcGxldGUgbW9kdWxlIGxpc3QKCjIwMDQtMTAtMjIgMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXhlcyBmb3IgYnVpbGRpbmcgaWZUYWJsZSB3L291dCBpZlhUYWJsZQoKMjAwNC0xMC0yMiAwMjoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIElmIHdlJ3JlIGdvaW5nIHRvIGluY2x1ZGUgdGhlIE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydCBieSBkZWZhdWx0LAogICAoYW5kIGxvYWQgaXQgYXV0b21hdGljYWxseSksIGl0IHdvdWxkIGJlIGV2ZW4gbW9yZSB1c2VmdWwgdG8gYWN0dWFsbHkKICAgaW5zdGFsbCBpdCwgc28gaXQgd2FzIGF2YWlsYWJsZSB0byBfYmVfIGxvYWRlZCEKCjIwMDQtMTAtMjIgMDI6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oOgoKICAgSWYgd2UncmUgZ29pbmcgdG8gaW5jbHVkZSB0aGUgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0IGJ5IGRlZmF1bHQsCiAgIGl0IHdvdWxkIGJlIHNlbnNpYmxlIHRvIGxvYWQgdGhhdCBNSUIgYXV0b21hdGljYWxseS4KCjIwMDQtMTAtMjEgMTU6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBpZmRlZiB1c2Ugb2YgdmFyaWFibGUgdGhhdCBpc24ndCBhbHdheXMgZGVmaW5lZAoKMjAwNC0xMC0yMSAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGZvciBtdWx0aXBsZSByb3dzL3RhYmxlcyBzZXQgcHJvYmxlbSwgbm90ZWQgYnkgU3ZlbiBKb25hcyBvbiBjb2RlcnMKCjIwMDQtMTAtMjAgMjE6MDIgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnZva2UgcGVybHJlYWxjbGVhbiBmaXJzdCBpbiB0aGUgZGlzdGNsZWFuIHNlcXVlbmNlLgoKMjAwNC0xMC0yMCAxOTo1NSAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHBlcmZvcm0gZGVlcCBjbGVhbmluZyBvbiBQZXJsIHRyZWUgdG8gZml4IGJ1ZyAjODk0NDI1LgoKMjAwNC0xMC0yMCAxOTozNSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBmaXggdGFibGUgb3ZlcmZsb3cgKGluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCB0byA1LjEuMikuCgoyMDA0LTEwLTIwIDE4OjUyICBzbGlmCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgcmVtb3ZlIHNlY29uZCByZWFkX29iamlkIGZyb20gbWV0aG9kcyBsaXN0IChJbnNwaXJlZCBieSBjdXJyZW50IERlYmlhbiBwYXRjaCkKCjIwMDQtMTAtMjAgMTY6NTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc3lzdGVtLmM6CgogICBmaXggYnVnIzEwNDMxOTcgKDIpIC0gdGVzdCBvcyB2ZXJzaW9uIGFuZCByZWxlYXNlIHVzaW5nIHVuYW1lIHRvIHF1YWxpZnkgYWN0aW9uCgoyMDA0LTEwLTE5IDE2OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIG1vdmUgcnBtIGhlYWRlciBpbmNsdWRlcyBpbnNpZGUgSEFWRV9MSUJSUE0gYmVjYXVzZSBvZiBoZWFkZXIgZGVwZW5kZW5jaWVzCgoyMDA0LTEwLTE5IDE2OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBtb3ZlIHJwbSBjaGVja3MgYmFjayBhZnRlciBtb2R1bGUgcHJvY2Vzc2luZywgc2luY2UgcnBtIG9ubHkgaW5jbHVkZWQKICAgICBpZmYgaHJfc3dpbnN0IGdldHMgY29uZmlndXJlZCBpbgoKMjAwNC0xMC0xOSAxNDowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgcmVtb3ZlIGNwcCB3YXJuaW5nCgoyMDA0LTEwLTE5IDE0OjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTE5IDE0OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSB1cGRhdGUgcmVsZWFzZQogICAtIGZvciBldmVyeSBBQ19BUkdfRU5BQkxFLCBhZGQgY29ycmVzcG9uZGluZyBBQ19BUkdfV0lUSCB3aXRoIGVycm9yIG1lc3NhZ2UKICAgLSBmb3IgZXZlcnkgQUNfQVJHX1dJVEgsIGFkZCBjb3JyZXNwb25kaW5nIEFDX0FSR19FTkFCTEUgd2l0aCBlcnJvciBtZXNzYWdlCiAgIC0gbW92ZSBsaWJyd2FwL3JwbSBjaGVja3MgZWFybGllciwgc28gdGhleSB3aWxsIGZhaWwgYmVmb3JlIG1vZHVsZSBwcm9jZXNzaW5nCiAgIC0gY2hlY2sgbWJzdGF0IHN0cnVjdCBmb3IgbV9jbHVzdGVycyAoZnJlZWJzZCBhcHBhcmVudGx5IGRyb3BwZWQgaXQpCgoyMDA0LTEwLTE5IDAzOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBEb24ndCBnZW5lcmF0ZSAnR2V0JyBjb2RlIGZvciBpbmFjY2Vzc2libGUgb2JqZWN0cy4KCjIwMDQtMTAtMTkgMDM6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgYWdlbnQgY3Jhc2hpbmcgaWYgbm8gJ2RlbGV0ZV9yb3cnIG9yCiAgICdkdXBsaWNhdGVfcm93JyByb3V0aW5lcyB3ZXJlIGNvbmZpZ3VyZWQuCgoyMDA0LTEwLTE5IDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcmV2ZW50IHRoZSBhZ2VudCBmcm9tIHNwaW5uaW5nIGluIGFuIGluZmluaXRlIGxvb3AKICAgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUuCgoyMDA0LTEwLTE5IDAzOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBSZXBvcnQgKndoaWNoKiBhZ2VudHggc29ja2V0IGNvdWxkbid0IGJlIG9wZW5lZC4KCjIwMDQtMTAtMTggMjA6MjQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgcmVsZWFzZQoKMjAwNC0xMC0xOCAyMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlcGxhY2UgaW5jb3JyZWN0IGNvbW1lbnQgYmxvY2sgdy9ub3RlIGFib3V0IHBvc3NpYmxlIGZ1dHVyZSBvcHRpbWl6YXRpb24KCjIwMDQtMTAtMTggMjA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHVzZSBuZXcgaW9jdGwgaWZJbmRleCBmaW5kCiAgIC0gbWFrZSBuZXh0IGFsaWFzIGZ1bmMgc3RhdGljCgoyMDA0LTEwLTE4IDIwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICAtIHVzZSBuZXcgaXBhZGRyZXNzIGVudHJ5IGNvcHkgZnVuY3Rpb24gZm9yIHRhYmxlIGxldmVsIHVuZG8gc2V0dXAKICAgLSByZW1vdmUgbm9kZSBsZXZlbCB1bmRvIHNldHVwCiAgIC0gaW1wbGVtZW50IHVuZG9fY29tbWl0CgoyMDA0LTEwLTE4IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgbmV3IG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19lbnRyeV9jb3B5IHRvIGNvcHkgZW50cmllcwoKMjAwNC0xMC0xNyAyMDo1NiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gZml4IHNsaWdodCBtZW1vcnkgbGVhawoKMjAwNC0xMC0xNyAyMDo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0xMC0xNyAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIGZkIHBhcmFtZXRlciB0byBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDQtMTAtMTcgMTk6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgdHJhY2sgd2hldGhlciB1c2VyIGFsbG9jYXRlZCBkYXRhIGNvbnRleHQgZm9yIG5vbi10cmFuc2llbnQgZGF0YQoKMjAwNC0xMC0xNiAxOTo1MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyIG1hbmRpcjJodG1sIHNjcmlwdCB3YXMgY3V0dGluZyBvZmYgdGhlIGJvdHRvbSB0aGUgbWFuIHBhZ2VzLiAgRml4ZWQuCgoyMDA0LTEwLTE2IDE5OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gdXNlIG5ldyBmZCBwYXJhbSBmb3IgaWZpbmRleCBsb29rdXAsIHdpdGggbG9jYWwgc29ja2V0CiAgIC0gZG9uJ3QgbG9va3VwIGludGVyZmFjZSBpZiBubyBuYW1lCgoyMDA0LTEwLTE2IDE4OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBkb24ndCB1c2UgbV9jbHVzdGVycyBpZiBub3QgYXZhaWxhYmxlCgoyMDA0LTEwLTE2IDE4OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgc2ltcGx5IHJlcXVpcmUgaW50ZXJmYWNlLCBsZXQgaXQgZGVjaWRlIGFib3V0IHNwZWNpZmljIGFyY2ggcmVxdWlyZXMKCjIwMDQtMTAtMTYgMTg6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGFsd2F5cyBkZWZpbmUgaWZpbmRleCBmdW5jdGlvbjsgc2ltcGx5IHJldHVybiAwIGlmIFNJT0NHSUZJTkRFWCBub3QgYXZhaWwKICAgLSBhZGQgZmQgcGFyYW0gdG8gaWZpbmRleCBnZXQsIGZvciBvcHRpbWl6YXRpb24KCjIwMDQtMTAtMTYgMTg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBzZXBhcmF0ZSBpbnRlcmZhY2VfY29tbW9uIGluaXQgZnJvbSBhY2Nlc3NfaW50ZXJmYWNlIGluaXQKICAgLSBjYWxsIGFjY2VzcyBmdW5jdGlvbiwgbm90IGFyY2ggKHNvIHVuc3VwcG9ydGVkIGFyY2hlcyB3b3JrKQoKMjAwNC0xMC0xNiAxODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFsd2F5cyBpbmNsdWRlIGlvY3RsIHcvaW50ZXJmYWNlIHN0dWZmCgoyMDA0LTEwLTE2IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIG1vdmUgYWNjZXNzIGluaXQgZnJvbSBhZ2VudCB0byBtaWIgaW5pdAoKMjAwNC0xMC0xNiAxMzo0NCAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy90ZXN0X2Z1bjoKCiAgIC0gY29tbWVudCBvdXQgYW5zaSBjb2xvcnMgKGluY29uc2lzdGVudCB1c2UpCiAgIC0gcHJlZml4IHN1Yi10ZXN0cyAmIHN1bW1hcnkgd2l0aCBtYWluIHRlc3QgbnVtYmVyIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDQtMTAtMTYgMTM6NDMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaDoKCiAgIHVzZSBzbm1wZ2V0bmV4dCBpbnN0ZWFkIG9mIHNubXB0YWJsZSB0ZXN0aW5nIHRhYmxlcwoKMjAwNC0xMC0xNiAxMzo0MiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gY2hlY2sgZm9yIG5vIHBpZCBmaWxlcyBmb3VuZAogICAtIGNoZWNrIGZvciBwaWRmaWxlIHZhbmlzaGluZwoKMjAwNC0xMC0xNiAxMzo0MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICByZW1vdmUgc3RyYXkgcXVvdGUKCjIwMDQtMTAtMTYgMTA6MzIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaWYgbmV0c3RhdCBpcyBhdmFpbGFibGUsIHRlc3QgZm9yIHBvcnQgaW4gdXNlIGFuZCB0cnkgMiBtb3JlIHJhbmRvbSBwb3J0cwoKMjAwNC0xMC0xNSAyMTowMSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU5ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMi5wcmUzCgoyMDA0LTEwLTE1IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA0LTEwLTE1IDIwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgdXBkYXRlIGZvciBkYXRhIGFjY2Nlc3MgY2hhbmdlCgoyMDA0LTEwLTE1IDIwOjA0ICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jCjoKCiAgIGxtU2Vuc29ycyBjaGFuZ2VzIGZyb20gQnJ1Y2UKCjIwMDQtMTAtMTUgMTg6MDAgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSB0b3Agb2YgdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNSAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzogaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLCBpcFN5c3RlbVN0YXRzVGFibGUuaCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE1OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86CiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1GSVJTVC50eHQsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1pcFN5c3RlbVN0YXRzVGFibGUudHh0OgoKICAgcmVtb3ZlIG5vbi1zb3VyY2UgZmlsZXMKCjIwMDQtMTAtMTUgMTU6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAo6CgogICBmaXggbWF4IGluZGV4IGxlbgoKMjAwNC0xMC0xNSAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggY3V0LW4tcGFzdGUgaW4gbG9nIG1zZwoKMjAwNC0xMC0xNSAxNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmMsIGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgdXNlIFNJT0NHSUZJTkRFWCBpb2N0bCBmb3IgaWZJbmRleAoKMjAwNC0xMC0xNSAxMTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIHR3ZWFrIGJ1ZmZlciBzaXplIGNvZGUgYW5kIGFwcGx5IHRvIHRjcCBzb2NrZXRzIHRvbwoKMjAwNC0xMC0xNCAyMDoyOSAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICBNb2RpZmllZCBpbmNsdWRlcyBmb3IgV2luZG93cyBidWlsZHMgdG8gaW5jbHVkZSB3aW5zb2NrIHJhdGhlciB0aGFuIFVuaXggc29ja2V0cy4KCjIwMDQtMTAtMTQgMTg6MTUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAo6CgogICBvcHRpbWl6ZSBtaWIgaW5kZXggc2l6ZSBkZWZzIChyZWR1Y2UgY2FjaGUgc2l6ZSBieSBoYWxmISkKCjIwMDQtMTAtMTQgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuaCwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IGRvbid0IHVzZSBzdHJ1Y3QgcHRyIGFzIGRhdGEgY29udGV4dAoKMjAwNC0xMC0xNCAxNzo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIGRlZmluZSBtYXggcG9saWN5IGxlbmd0aAoKMjAwNC0xMC0xNCAxNzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBtaW5vciB0d2VhayB0byBjb21tZW50cywgcmVkdWNlIGRpZmZzIG9uIHN3aXRjaCBmcm9tIGVtYmVkZGVkLT5hbGxvY2F0ZWQgZGF0YQoKMjAwNC0xMC0xNCAxNzo1MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGZyZWUgYSBkYXRhIGNvbnRleHQgd2UgZGlkbid0IGFsbG9jYXRlCgoyMDA0LTEwLTE0IDE3OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBjbGFyaWZ5IHRoYXQgYSBwb2ludGVyIHNob3VsZG4ndCBiZSB1c2VkIGFzIHRoZSBkYXRhIGNvbnRleHQgdHlwZQoKMjAwNC0xMC0xNCAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgYWNjb3VudCBmb3IgaXBhZGRyZXMtPk9JRCBjb252ZXJzaW9uIGluIGluZGV4IHNwYWNlIGFsbG9jYXRpb25zCgoyMDA0LTEwLTE0IDE3OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBzeW50YXgtQ09VTlRFUjY0LWdldC5tMmk6CgogICBtaW5vciB0d2VhayB0byBjb21tZW50cywgcmVkdWNlIGRpZmZzIG9uIHN3aXRjaCBmcm9tIGVtYmVkZGVkLT5hbGxvY2F0ZWQgZGF0YQoKMjAwNC0xMC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBmaXggdmFyIG5hbWUKCjIwMDQtMTAtMTQgMDU6NTcgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBtaWIyYy5jb250YWluZXIuY29uZgosIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmYsCiAgICAgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUmV0dXJuICdTTk1QX0VSUl9OT0VSUk9SJyBvbiAibm9ybWFsIiBTRVQgZXJyb3JzLgogICAoU3VjaCBlcnJvcnMgc2hvdWxkIG9ubHkgYmUgcmVwb3J0ZWQgdmlhIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IpCgoyMDA0LTEwLTEzIDE5OjIxICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB1c2UgY29ycmVjdCBmYWNpbGl0eSB3aGVuIGluaXRpYWxpemluZyBzeXNsb2cgbG9nIGhhbmRsZXIuCgoyMDA0LTEwLTEzIDE4OjM2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSByZWJvb3Qgd2FybmluZyBmcm9tIHJlZ2lzdGVyIHNjcmlwdHMgYW5kIGNsYXJpZnkgc3RlcCBpbiBidWlsZCBzdGVwcwoKMjAwNC0xMC0xMyAxNToyNCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ3JlYXRlIGxpYnNubXAuZGVmLmluIGZpbGUgZm9yIHNubXBsaWJfZGxsIGFuZCBtb2RpZnkgd2luMzJcQ29uZmlndXJlIHRvCiAgIGdlbmVyYXRlIGxpYnNubXAuZGVmIGlmIGR5bmFtaWMgaXMgc3BlY2lmaWVkIGFuZCB3aXRoIG9yIHdpdGhvdXQgdGhlIElQdjYKICAgbGluZXMgaW4gbGlic25tcC5kZWYuCgoyMDA0LTEwLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggYnVnIFsgMTA0NTYwNSBdIHN5bnRheCBlcnJvciBpbiBzbm1wdHJhcGQuYyAod3JvbmcgYXJnIG9yZGVyKQoKMjAwNC0xMC0xMiAxNzowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhbGxvdyBidWlsZF9vaWRfbm9hbGxvYyB0byBjb21wbGV0ZWx5IGZpbGwgaW5jb21pbmcgYnVmZmVyCgoyMDA0LTEwLTEyIDE2OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtbW92ZSBpbml0aWFsaXphdGlvbiBvZiBpbnRlcm5hbHMgYmFjayBiZWZvcmUgd2UgdXNlIHRoZW0KICAgICAgICAgICAgKGFoLCB0aGUgam95cyBvZiBhdXRvbWF0ZWQgcGF0Y2hpbmcpCgoyMDA0LTEwLTEyIDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZi1taWIvaWZYVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXRDaWRyUm91dGVUYWJsZS5tMmQKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2RlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0TmV0VG9NZWRpYVRhYmxlLm0yZAosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2RlZmF1bHQtdGFibGUtaXBBZGRyZXNzVGFibGUubTJkLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvZGVmYXVsdC10YWJsZS1pcFN5c3RlbVN0YXRzVGFibGUubTJkCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS9kZWZhdWx0LXRhYmxlLXVzbURIVXNlcktleVRhYmxlLm0yZAo6CgogICByZW1vdmUgZmlsZXMgdXNlZCBmb3IgY29kZSBnZW4gKG1vdmVkIHRvIG5ldHNubXAvbW9kdWxlLXRlbXBsYXRlcyBjdnMgdHJlZSkKCjIwMDQtMTAtMTIgMTM6MjQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBJUFY2IGNvbXBpbGUgaXNzdWVzIHdpdGggUGVybAoKMjAwNC0xMC0xMiAxMzowMyAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IFBlcmwgY29tcGlsZSBpc3N1ZSB3aXRoIGRiZ190b2tlbnMgYW5kIGRlYnVnX251bV90b2tlbnMuICBGaXggc25tcHRyYXBkCiAgIGNvbXBpbGUgaXNzdWUgYnkgYWRkaW5nIGlwaGxhcGkubGliIHRvIG5ldHNubXBtaWJzc2RrLgoKMjAwNC0xMC0xMiAxMDo0MCAgd2FzbWl0aDMyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgU29tZSB2ZXJzaW9ucyBvZiBnY2Mgd2l0aCBNaW5HVyBkbyBub3QgbGlrZSBhIGxhYmxlIHdpdGggbm8gc3RhdGVtZW50cyBmb2xsb3dpbmcuCiAgIFRoZSBzb2xsdXRpb24gd2FzIHRvIGFkZCBhbiBlbXB0eSBzdGF0ZW1lbnQgaW4gdGhlIHN1ZG8gZXhjZXB0aW9uIGhhbmRsaW5nCiAgIGNvZGUgaW4gd2luc2VydmljZS5jLiBOZXQtU05NUCB3aWxsIG5vdyBjb21waWxlIHVzaW5nIGEgTGludXggaG9zdGVkIFdpbmRvd3MKICAgY3Jvc3MgY29tcGlsZXIuCgoyMDA0LTEwLTExIDIxOjA2ICBzbGlmCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUgb2YgcmFuZ2Vfc3ViaWQKCjIwMDQtMTAtMTEgMjE6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyIHNlc3NfY29tbXVuaXR5CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZ2V0IGRlZmluaXRpb24gb2Ygc2hvdWxkX2luaXQKCjIwMDQtMTAtMTEgMjE6MDIgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgcGlja3VwIG5ldyBkZWZpbml0aW9uIG9mIHN0cnRva19yIGFzIG5lZWRlZC4KCjIwMDQtMTAtMTAgMjE6MjggIGJzaGF3NjY2CgogICAqIFJFQURNRS5zb2xhcmlzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIExNLVNFTlNPUlMtTUlCIGZvciBTb2xhcmlzCgoyMDA0LTEwLTA5IDA3OjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSB2YXIgZGVjbCB0byB0b3Agb2YgZnVuYzsgcmVtb3ZlIGV4dHJhIH0KCjIwMDQtMTAtMDkgMDQ6NDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYwo6CgogICByZW1vdmUgYnVnZml4ICMxMDQzMTk3IC0gd3JvbmcgcGF0Y2ggZG9uZSB0aGUgd3Jvbmcgd2F5IGF0IHRoZSB3cm9uZyB0aW1lCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICAtIChkaXN0L01ha2VmaWxlKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjE6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgZWRpdHMKCjIwMDQtMTAtMDggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMDggMjE6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgYXV0b2NvbmYgdmVyc2lvbiByZXE7IHVwZGF0ZSBuZXQtc25tcCB2ZXJzaW9uIHRvIC5wcm8yCgoyMDA0LTEwLTA4IDIxOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGNoYW5nZSB0aGUgYW5vbiBncm91cHMvZXRjIGNyZWF0ZWQgYnkgdGhlIHNpbXBsZSB0b2tlbnMgdG8gYmUgbW9yZSBkZXNjcmlwdGl2ZSBhbmQgdW5pcXVlCgoyMDA0LTEwLTA4IDIxOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgdGVzdCB0aGUgcmlnaHQgdmFyaWFibGUKCjIwMDQtMTAtMDggMjE6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIG1ha2UgdGhlIGJhY2tncm91bmQgb2YgdGhlIG9ic29sZXRlIHNlY3Rpb24gcGlua2lzaAoKMjAwNC0xMC0wOCAyMTozOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBlbmFibGUgc3RkZXJybG9nCgoyMDA0LTEwLTA4IDIwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIGZpeCBpbmNvbnNpc3RlbmNpZXMgcG9pbnRlZCBvdXQgYnkgUGF0cmljayBXZWxjaGUKCjIwMDQtMTAtMDggMjA6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtYWtlIHN1cmUgc25tcEVuZ2luZVRpbWUgY2FsY3VsYXRpb25zIGRvbid0IHdyYXAgcGFzdCBhbiB1aW50IHNpemUKCjIwMDQtMTAtMDggMTk6MjcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgZnVuY3Rpb24KCjIwMDQtMTAtMDggMTk6MjUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGZpeCB0eXBvCgoyMDA0LTEwLTA4IDE5OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgdHdlYWsgc29tZSBtYWNybyBhbmQgZnVjdGlvbiBuYW1lcy92YWx1ZXMKCjIwMDQtMTAtMDggMTk6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIHVwZGF0ZSBnZW5lcmVhdGVkIGNvZAoKMjAwNC0xMC0wOCAxOTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdHdlYWsgbWF4IG9pZCBndWVzc3dvcmsKCjIwMDQtMTAtMDggMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVkdWNlIHNvbWUgZ2VuZXJhdGVkIGNvbW1lbnRzIGlmIHZlcmJvc2Ugbm90IHNldAoKMjAwNC0xMC0wOCAxNjo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgbWFjcm8gZm9yIHNpemUgb2YgaW5kZXggb2lkIGJ1ZmZlcgoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLWluaXQgaXJyZXZlcnNpYmxlIGNvbW1pdCB0byAwCgoyMDA0LTEwLTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBhZ2VudC9zbm1wX2FnZW50LmMKOgoKICAgQXBwbHkgcGF0Y2ggZm91bmQgaW4gYnVnICMxMDQwNDMxIHRvIGluY2x1ZGUgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGluIHRoZSBkdW1wIG91dHB1dAoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdXNlIG5ldyBkZWZpbmUgaW4gaGVhZGVyIGZvciBjYWNoZSB0aW1vdWV0CgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVtb3ZlIHNvbWUgcmVkdW5kYW50IGNvbW1lbnRzCgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC10cnkgdG8gc2hvcnRlbiBzaXplIG9mIG9pZCBidWZmZXJzIGZvciBpbmRleGVzCgoyMDA0LTEwLTA4IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtZG9uJ3QgZ2VuIGludGVybmFsIGVudW1zIGlmIG5vdCBtYXBwaW5nCgoyMDA0LTEwLTA4IDE2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMKLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1nZXQubTJjLAogICAgIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBub2RlLWdldC5tMmkKLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwKICAgICBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICByZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKCjIwMDQtMTAtMDggMTY6MDIgIHNsaWYKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRnJvbSBEZWJpYW4gcGF0Y2ggbmV0LXNubXBfNS4xLjItNS5kaWZmLmd6IC0tIHByb3BhZ2F0ZSBXUkFQTElCUwoKMjAwNC0xMC0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYXBwbHkgdGhlIGludGVudCBvZiBwYXRjaCA5NDcwMzMgZnJvbSBDbGF1cyBLbGVpbiB0byBhbGxvdyBmb3IgY3Jvc3MgY29tcGlsYXRpb24gc3VwcG9ydCB0aHJvdWdoIHRoZSB1c2Ugb2YgLS1wcmVmaXg9IGFuZCAtLWV4ZWMtcHJlZml4PSBmbGFncy4gIERpZG4ndCBhcHBseSB0aGUgd2hpdGUgc3BhY2UsIHJlZm9ybWF0dGluZywgZXRjIHBvcnRpb25zIHNpbmNlIGl0cyBhZ2FpbnN0IG91ciBwYXRjaCBhY2NlcHRhbmNlIHN0YW5kYXJkcy4gIEFsc28gbWFkZSBhIHNtYWxsIGZpeCBzbyB0aGF0IC0tcGVyZml4PS9zb21ldGhpbmcgZG9lc24ndCBhZGQgYSAvbmV0LXNubXAgc3VmZml4IHRvIHRoZSBpbmNsdWRlIGRpcmVjdG9yeQoKMjAwNC0xMC0wOCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBbIDEwMjI3ODcgXSBQYXRjaCAoZnJvbSBHZWVydCBEZSBQZXV0ZXIpIHRoYXQgYWxsb3dzIFVEUCBidWZmZXIgdHVuaW5nLi4uICBUYWtlIDIgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiAtY29kZXJzCgoyMDA0LTEwLTA4IDE0OjE1ICBzbGlmCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLAogICAgIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIGFnZW50L2FnZW50LnBtLAogICAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIG1hbmFnZXIvZGlzcGxheXRhYmxlLnBtCjoKCiAgIFNlZW4gaW4gYSBEZWJpYW4gcGF0Y2guICBJbnNlcnQgcmVxdWlyZWQgYmxhbmsgbGluZSBmb2xsb3dpbmcgX19FTkRfXyBjdXQgbWFyay4KCjIwMDQtMTAtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBEb24ndCBzaG93IHNtdXggcGVlciBwYXNzd29yZCBpbiBjb25uZWN0IGFjY2VwdC9yZWZ1c2UgbG9nIG1lc3NhZ2VzLgoKMjAwNC0xMC0wOCAxMTo1MiAgc2xpZgoKICAgKiB0ZXN0aW5nLzogcmZjMTIxMy9SRUFETUUsIHJmYzEyMTMvcnVuLAogICAgIHJmYzEyMTMvc25tcGZ1bi5zaCwgcmZjMTIxMy90ZXN0X2Z1biwKICAgICByZmMxMjEzL3Rlc3RtaWIxLnNoLCByZmMxMjEzL3Rlc3RtaWIyLnNoLAogICAgIHJmYzEyMTMvdGVzdG1pYjMuc2gsIHRlc3RzL1QxNjByZmMxMjEzLAogICAgIHRlc3RzL1QxNjFyZmMxMjEzLCB0ZXN0cy9UMTYycmZjMTIxMzoKCiAgIHBhdGNoICM2ODk3NTcgLSBhZGQgdGVzdCBjYXNlcyBmb3IgYWNjZXNzaW5nIFJGQy0xMjEzIE1JQiB2YXJpYWJsZXMuCiAgIHRoYW5rcyB0byBMaW5nIFhpYW9mZW5nIGZvciB0aGUgb3JpZ2luYWwgd29yay4KCjIwMDQtMTAtMDggMTA6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGluaXRpYWxpemUgcHRyIHRvIE5VTEwKCjIwMDQtMTAtMDggMTA6MzEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBmaXggYnVnIzEwNDMxOTcgLSBwcm92aWRlIGEgZnVuY3Rpb24gdG8gdGVzdCBvcyB2ZXJzaW9uIGFuZCByZWxlYXNlCgoyMDA0LTEwLTA4IDEwOjIyICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gZml4IGJ1ZyBbIDEwMjU0NTQgXSB1bmRlZmluZWQgc3ltYm9scyBpbiBzbm1wdHJhcGQKICAgICAtIG1vdmUgaW5jbHVkZSAiYWdlbnRfbW9kdWxlX2luaXRzLmgiIGluY2x1ZGUgaW5zaWRlIGluaXRfYWdlbnQKCjIwMDQtMTAtMDggMDk6MjkgIHdhc21pdGgzMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMybXN2Yy5oOgoKICAgVGhlIExpbnV4IGhvc3RlZCB2ZXJzaW9uIG9mIE1pbkdXIHJlcG9ydHMgaXRzZWxmIGFzIG1pbmd3MzJtc3ZjLiBUaGlzIHN5c3RlbQogICBoZWFkZXIgZG9lcyBub3RoaW5nIG1vcmUgdGhhbiBkZWZpbmUgbWluZ3czMiBhbmQgaW5jbHVkZSBtaW5ndzMyLmguIEFsbCBjaGFuZ2VzCiAgIHNob3VsZCBiZSBtYWRlIGluIG1pbmd3MzIuaC4KCjIwMDQtMTAtMDggMDk6MDQgIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXRzbm1wX2dldGVudigpOiBNb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gV0lOMzIgSUZERUYKCjIwMDQtMTAtMDggMDk6MDEgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbG9jYWwvc25tcGNvbmYsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvdG9vbHMuYywgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLAogICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCBuZXRzbm1wX2dldGVudigpIHdoaWNoIGlzIGEgd3JhcHBlciBmb3IgZ2V0ZW52KCkgdG8gYWRkCiAgIGJhc2ljIFdpbmRvd3MgcmVnaXN0cnkgc3VwcG9ydC4KCjIwMDQtMTAtMDcgMTk6MzEgIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmggYW5kIG5ldC1zbm1wL3R5cGVzLmgKICAgZm9yIGltcHJvdmVkIFVDRF9DT01QQVRJQkxFIHVzZXMgKGZyb20gRmVkb3JhIG5ldC1zbm1wLTUuMC42LWNvbXBhdC5wYXRjaCkuCgoyMDA0LTEwLTA3IDE4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIG1pYjJjLml0ZXJhdGUyLmNvbmYKCjIwMDQtMTAtMDcgMTc6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZS1pbnN0YWxsIHBhdGggZml4LCBwcm9tcHQgb3ZlcndyaXRlIHNubXAuY29uZgoKMjAwNC0xMC0wNyAxNjoxNSAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgRExMIHN1cHBvcnQgZm9yIHN0cnRva19yCgoyMDA0LTEwLTA3IDE1OjIxICBhbGV4X2IKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNDo1NyAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDcgMDU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHN0cnRva19yLmM6CgogICBhZGQgc3RydG9rX3IKCjIwMDQtMTAtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgbWFrZSBwcm94eSBuby1jb21tdW5pdHkgc3VwcG9ydCB1c2luZyAtQ2MgaW5zdGVhZCBvZiBhc3N1bWluZyB5b3Ugd2FudGVkIGl0IHRoYXQgd2F5CgoyMDA0LTEwLTA2IDE5OjIyICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgdGVtcCB2YXIgImkiIGludHJvZHVjZWQgYnkgcmVjZW50IGlwdjYgcGF0Y2guCgoyMDA0LTEwLTA2IDE5OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICByZW5hbWUgdG8gTkVUU05NUF9STkQuIChmb3Jnb3QgdG8gY2hlY2sgdGhpcyBmaWxlIGluIGZyb20gZWFybGllciBjaGVja2luCgoyMDA0LTEwLTA2IDE3OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBrc20gcGF0Y2ggcHJvYmxlbSBwb2ludGVkIG91dCBieSBCdWNrIEh1cHBtYW5uCgoyMDA0LTEwLTA2IDE3OjQ5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIGFkZCBtaXNzaW5nIGRlZmluZSBFTkdJTkVJRF9UWVBFX05FVFNOTVBfUk5EIDI1NgoKMjAwNC0xMC0wNiAxNjo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IGJ1ZyBbIDk4NjIzOCBdIHNubXBkIGxvb3BzIGZvcmV2ZXIKCjIwMDQtMTAtMDYgMTY6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBmaXggYnVnIzEwNDA0Mjk6IHRlc3QgZXZlcnkgZl9mbXRhZGRyIGNhbGwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgb3IgZnJlZWluZy4KICAgQ2F0Y2ggbWVtb3J5IGxlYWtzIGluIHNubXB0ZXN0LCBzbm1wdHJhcGQsIGFuZCBzbm1wc3RhdHVzLgoKMjAwNC0xMC0wNiAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBbIDkyMzQ5NCBdIGZyb20gQnVjazogaW1wcm92ZWQgYXV0b2NvbmYgc3VwcG9ydCBhbmQgaGVpbWRhbCBzdXBwb3J0IGZvciBrc20uCgoyMDA0LTEwLTA2IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCBbIDk0MjE1NSBdIEZyb20gRGFpLkg7IElQdjYgYWRkcl9zdHJpbmcgZml4IGZvciBsaWJ3cmFwCgoyMDA0LTEwLTA2IDE0OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IGJ1ZyBbIDYxNTc0NCBdIFNwdXJpb3VzIERJU01BTi1FVkVOVCB0cmFwCgoyMDA0LTEwLTA2IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBQYXRjaCBbIDEwNDA3MTggXSBmcm9tIEJlbiBSb2dlcnM6IEFnZW50eCBlcnJvciBwcm9wYWdhdGlvbiBhbmQgaW5maW5pdGUgbG9vcAoKMjAwNC0xMC0wNiAxNDoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIHB0ciBpbml0IGJlZm9yZSBkZXJlZmVyZW5jZTsgbm8gaWRlYSBob3cgdGhpcyBoYXMgYmVlbiB3b3JraW5nIGZvciB0aGUKICAgbGFzdCA2IG1vbnRocywgYW5kIHdoeSBpdCBzdGFydGVkIGNyYXNoaW5nIG9uIG1lIHRvZGF5LgoKMjAwNC0xMC0wNiAxMzoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gYmFjayBvdXQgYWxsIG9mIGZpeCBmb3IgYnVnIDg2NTQxNQogICAgIC0gaGVhZGVyX2lmRW50cnkgZGVwZW5kcyBvbiBjb250aWd1b3VzIGlmSW5kZXggdmFsdWVzLCBhbmQgSSdtIG5vdCBhYm91dAogICAgICAgdG8gdHJ5IGFuZCBmaXggdGhhdCBpbiB0aGlzIGlmZGVmIGhlbGwtaG9sZS4gVGhvc2Ugd2FudGluZyBub24tY2hhbmdpbmcKICAgICAgIGlmSW5kZXhlcyB3aWxsIGp1c3QgaGF2ZSB0byBtb3ZlIHRvIHRoZSBtZmQtcmV3cml0ZS4KCjIwMDQtMTAtMDYgMTM6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBwYXJ0IG9mIGZpeCBmb3IgYnVnIDg2NTQxNSwgaXQgYnJva2Ugc29sYXJpcyAmIHByb2JhYmx5IG90aGVycwogICAgIChub3QgYWxsIHBsYXRmb3JtcyBoYXZlIEludGVyZmFjZV9TY2FuX0luaXQsSW50ZXJmYWNlX1NjYW5fTmV4dCkKCjIwMDQtMTAtMDYgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggIzEwNDEzNzggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCB0aGUgZGVzY3JpcHRpb24gb2YgaG93IGVuZ2VJRHMgYXJlIGNyZWF0ZWQuCgoyMDA0LTEwLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IHRoZSBjb21wbGFpbnQgb3V0bGluZWQgYnkgVGhvbWFzIEFuZGVycyBpbiBQYXRjaCAxMDQzNzggdXNpbmcgdGhlIG5ldC1zbm1wIGVudGVycHJpc2UgbnVtYmVyIGluc3RlYWQgb2YgdGhlIFVDRCBvbmUgZm9yIHJhbmRvbWx5IGNvbXBvc2VkIGVuZ2luZUlEcwoKMjAwNC0xMC0wNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDUgMjI6MjcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgTWFnbnVzIEZyb21yZWlkZSwgTWFyY3VzIE1laXNzbmVyLCBBbmRyZXcgUnVja2VyIEpvbmVzLCBEYWkuSC4KCjIwMDQtMTAtMDUgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoIFsgOTM5NTk1IF0gZnJvbSBzdW4gKHVwZGF0ZSBjYWNoZSB0aW1lcykKCjIwMDQtMTAtMDUgMjE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGFwcGx5IHRpbnkgcGllY2Ugb2YgcGF0Y2ggWyA4MzYzOTAgXQogICAgIC0gYXBwbGllZCBtb3JlIGlmbmFtZSB0byBpZnR5cGUgbWFwcGluZ3MKCjIwMDQtMTAtMDUgMjE6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA4MTE2ODcgXSBQcm94eSBzdXBwb3J0IGlnbm9yZXMgY29tbXVuaXR5IHN0cmluZyBpZiAtYyBvcHRpb24gb21pdHRlZAoKMjAwNC0xMC0wNSAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA1NTExODMgXSBMUlUgcmVwbGFjZW1lbnQgZm9yIGFkZHJlc3MgY2FjaGUKCjIwMDQtMTAtMDUgMjA6MDYgIGFsZXhfYgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBtaXNzaW5nIHJlZmVyZW5jZSBmb3Igd2luc2VydmljZXJjIGluIE1pbkdXIHNlY3Rpb24KCjIwMDQtMTAtMDUgMTk6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA5OTY0NjIgXSBhZ2VudHggZmFpbHMgb24gbGl0dGxlIGVuZGlhbiA2NGJpdAoKMjAwNC0xMC0wNSAxOToxNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgMTAwOTc5OSBdIEFnZW50WCBSZWdpc3Rlci1QRFUgd2l0aCBtdWx0aXBsZSBpdGVtcwoKMjAwNC0xMC0wNSAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gZGVmaW5lIG1hY3JvIGZvciB1bml4d2FyZSBpbmNsdWRlcwoKMjAwNC0xMC0wNSAxOTowMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW1vdmUgZXh0cmFuZW91cyBlbmRpZgoKMjAwNC0xMC0wNSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTc6NDYgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gY2hlY2sgZm9yIG5lc3RlZCBzdGF0aWMgaW5saW5lIHN1cHBvcnQKCjIwMDQtMTAtMDUgMTc6MzggIGFsZXhfYgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvd2luc2VydmljZXJjLnJjOgoKICAgQXBwbHkgcGF0Y2ggMTA0MDMyNSAtIHdpbjMyIE1pbkdXIGFnZW50L3RyYXBkIHNlcnZpY2UgRXZlbnRsb2cgZml4ZXMKCjIwMDQtMTAtMDUgMTY6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDI1NCBdIFN0cmVuZ3RoZW4gQUdFTlRYIE9JRCBjaGVja3MKCjIwMDQtMTAtMDUgMTY6MjYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNjEgXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHNlbGVjdCB0ZXN0cyBvbiBhZ2VudCBtb2R1bGVzCgoyMDA0LTEwLTA1IDE2OjE1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0wNSAxNjoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBhZGQgY2hlY2sgZm9yIHN0cnRva19yIGFuZCBydW4gYXV0b2hlYWRlcgoKMjAwNC0xMC0wNSAxNjoxMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBHZWVydCBEZSBQZXV0ZXIgdG8gY29udHJpYnV0b3JzCgoyMDA0LTEwLTA1IDE2OjEyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYXBwcy9zbm1wdmFjbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDMzMCBdIEdldHRpbmcgcmlkIG9mIHN0cnRvawoKMjAwNC0xMC0wNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHJlbW92ZSBhdHRyaWJ1dGlvbiBjb21tZW50CgoyMDA0LTEwLTA1IDA3OjA2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIC1DIGFuZCAtYyByZWdpc3RlciBvcHRpb25zIGFuZCBhZGQgbm90ZSBhYm91dCByZWJvb3QKCjIwMDQtMTAtMDUgMDA6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgcGF0Y2ggZnJvbSBqcHJha2FzaGJhYnU6IG1vdmUgZW5kZnNlbnQgY2FsbCBuZWFyIHNldGZzZW50IHRvIGF2b2lkIGNvbXBpbGUgZXJyb3IKCjIwMDQtMTAtMDQgMjA6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAyMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgcHV0IGlycmV2ZXJzaWJsZV9jb21taXQgc2V0dGluZyBpbiBnZW5lcmF0ZWQgZGVmYXVsdC10YWJsZS0qCgoyMDA0LTEwLTA0IDIwOjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIGVsbWluYXRlIHVzZSBvZiBUT0RPX2ZpbmRfKiB1bmRlZmluZWQgbWFjcm9zCgoyMDA0LTEwLTA0IDE1OjA5ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFJlbmFtZSBnX3N6QXBwTmFtZSB0byBhcHBfbmFtZSB0byBmb2xsb3cgbmFtaW5nIHN0YW5kYXJkcwoKMjAwNC0xMC0wNCAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksIG5vZGUtc2V0Lm0yaQo6CgogICAtIG1ha2UgY29tbWVudHMgbW9yZSB1bmlxdWUgKGhlbHAgb3V0IGRpZmYpCiAgIC0gcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBjb21tZW50cwoKMjAwNC0xMC0wNCAxMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKCjIwMDQtMTAtMDQgMTE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYWRkIGRlYnVnIHRva2VucwoKMjAwNC0xMC0wNCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHN0b3JlIHBlcm1hbmVudCByb3dzIHRvbwoKMjAwNC0xMC0wNCAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvbid0IHJlc2V0IG9wZXJfc3RhdHVzIGZsYWdzLCBpb2N0bCBjb2RlIGhhcyBhbHJlYWR5IHNldCB0aGVtCgoyMDA0LTEwLTA0IDA5OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgbGlzdCBhbGwgbG9jYXRpb25zIHRvIHVwZGF0ZSBpbiBmbG93Y2hhcnQgY29tbWVudHMKCjIwMDQtMTAtMDMgMTg6MjIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVbnJlZ2lzdGVyIHNlcnZpY2VzIG9uIHVuaW5zdGFsbCwgYWRkIG1pc3NpbmcgbWlicywgbWliMmMgYW5kIGhlYWRlciBmaWxlcy4KCjIwMDQtMTAtMDMgMTQ6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmcm9tIENvcmV5IFdyaWdodDogZml4IHNlbnNvcl9hcnJheSBzaXplIGxpbWl0IHRlc3QKCjIwMDQtMTAtMDMgMTA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGFwcGx5IG1pc3NlZCBiaXQgZnJvbSBwcmV2aW91cyBwYXRjaAoKMjAwNC0xMC0wMyAwODo0NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgLSBhcHBseSBwYXRjaCBmcm9tIEdlZXJ0IERlIFBldXRlciBbIDEwMjI5NDEgXSBTcGVlZCB1cCBhZGRpbmcgYSByb3cgdG8gYSB0YWJsZQogICAgIC0gKHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24pCiAgICAgLSB0ZXN0IGZvciBhcHBlbmQgYmVmb3JlIGxpbmVhciBzZWFyY2gKICAgICAtIHNhdmUgcmMgaW5zdGVhZCBvZiByZXBlYXRpbmcgZnVuY3Rpb24gY2FsbAoKMjAwNC0xMC0wMyAwNzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCBmcm9tIFBhdHJpY2sgV2VsY2hlOyBjaGVjayBmb3IgTlVMTCBiZWZvcmUgZGVyZWYKCjIwMDQtMTAtMDIgMjA6NTEgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBBZGQgc3RlcCB0byBjb21wYXJlIGNvbXBpbGVkIGFuZCBpbnN0YWxsZWQgZm9sZGVycyB0byBsb2NhdGUgbWlzc2luZyBmaWxlcwoKMjAwNC0xMC0wMSAyMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzeXNjb25mIGFuZCB0aW1lcyBmdW5jdGlvbnMgYW5kIHN5cy90aW1lcy5oIGhlYWRlcgoKMjAwNC0xMC0wMSAyMDo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIHNubXB2My5jOgoKICAgUHJvcGVyIGZpeCBpdCB2MyBlbmdpbmV0aW1lIHdyYXBwaW5nIHByb2JsZW0uICBGYWlybHkgcG9ydGFibGUgJiYgdXNlcyB0aW1lcygpLgoKMjAwNC0xMC0wMSAyMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgY3JlYXRlIGEgbmV3IGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYgZnVuY3Rpb24KCjIwMDQtMTAtMDEgMjA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzZXQgaGVudCB2YXJpYWJsZSB0byBOVUxMIHRvIHNxdWFzaCBib2d1cyBjb21waWxlciB3YXJuaW5nCgoyMDA0LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIGZpeCBidWcgWyA4NjU0MTUgXSBpbmNvcnJlY3QgaWZBZEVudElmSW5kZXggZmllbGQKCjIwMDQtMTAtMDEgMDg6NTggIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBTaW1wbGlmeSBidWlsZCBzdGVwcwoKMjAwNC0xMC0wMSAwNToyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mLAogICAgIGxvY2FsL21pYjJjLmNvbmYsIE5FV1M6CgogICBCcmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSwgaGF2ZSB0aGUgY291cmFnZSBvZiBteSBjb252aWN0aW9ucywKICAgYW5kIHB1c2ggdGhlIG5ldyAoZnVsbGVyKSBpdGVyYXRlIGNvbmZpZyBpbiBwcmVmZXJlbmNlIHRvIHRoZSBlYXJsaWVyCiAgIChyZWxhdGl2ZWx5IGVtcHR5KSBmcmFtZXdvcmsuCiAgICAgW0kganVzdCBrbm93IEknbSBnb2luZyB0byByZWdyZXQgZG9pbmcgdGhpcy4uLi4uXQoKMjAwNC0wOS0zMCAyMDoxMCAgd2FzbWl0aDMyCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFVwZGF0ZWQgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzIGZvciB0aGUgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0LgogICBBcHBsaWVkIGEgbW9kaWZpZWQgcGF0Y2ggWyAxMDM3Njk1IF0gd2l0aCBlZGl0cyBtYWRlIGJ5IEFsZXggQnVyZ2VyIGFuZCBteXNlbGYuCiAgIFRoZSBwYXRjaCBhbHNvIHJlbW92ZXMgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIHRoZSBzY3JpcHQgdGhhdCB3ZXJlIG5vdAogICBiZWluZyBpbnN0YWxsZWQuCgoyMDA0LTA5LTMwIDExOjEyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY2hhbmdlIDUgLT4gdmFyaW91cyBzbyB3ZSBzdG9wIGdldHRpbmcgaXQgd3JvbmcKCjIwMDQtMDktMzAgMDg6NTkgIGFsZXhfYgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIEZvciBidWcgMTAzNzUyNDogU2V0IHBhdGggdG8gLkRMTCBmb3IgUGVybCBidWlsZCAvIHRlc3QKCjIwMDQtMDktMzAgMDU6NDggIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhdmUgJ3JlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nJyB0YWtlIG5vdGUgb2YgdGhlCiAgIGluaXRpYWwgbGVuZ3RoIHdoZW4gdXNpbmcgZXhpc3RpbmcgYnVmZmVycy4KCjIwMDQtMDktMzAgMDI6NTUgIHNsaWYKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgaWdub3JlIGVycm9ycyBmb3IgYW55IG1pc3NpbmcgTUFONUcgZmlsZXMgKGUuZy4sIG1pYjJjLmNvbmYuNSkKCjIwMDQtMDktMzAgMDI6NDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIGFkZCBERUxBWSBhZnRlciBzZXQgdG8gYWxsb3cgdGltZSBmb3IgdHJhcCB0byBmaXJlIGFuZCBiZSBsb2dnZWQuCgoyMDA0LTA5LTMwIDAxOjM4ICBzbGlmCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4ICJJbmNvbnNpc3RlbnQgb3BlcmF0b3IgZm9yIHRlc3QiIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIHdoZW4KICAgd2hpdGVzcGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGluIGluc3RhbGxzdWJkaXJoZWFkZXJzLgogICBJbmRlbnQgbGluZXMgb2YgcnVsZSBib2RpZXMgdXNpbmcgdGFiIG9ubHkgKGEgcmVxdWlyZW1lbnQgZm9yIHNvbWUgIm1ha2UiKS4KICAgUmVtb3ZlIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBuZWFyIHRoZSBlbmQgb2YgY29udGludWF0aW9uIGxpbmVzLgoKMjAwNC0wOS0yOSAyMzoxOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IHRyeSB0byBpbnN0YWxsIHVjZC1zbm1wL2FnZW50X21vZHVsZV9jb25maWcuaCAobm8gc3VjaCBmaWxlKQoKMjAwNC0wOS0yOSAxODowMiAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgc25wcmludGYgbm93IHVzZXMgc2l6ZW9mKG9iamVjdCkKCjIwMDQtMDktMjkgMTc6MzUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG5vdGUgaW1wb3J0YW5jZSBvZiBtYXRjaGluZyBNZXNzYWdlSWQgdmFsdWUgZm9yIFJlcG9ydEV2ZW50LgoKMjAwNC0wOS0yOSAxNTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgUGF0Y2g6IDEwMzEwNDYgd2hpdGUgc3BhY2UgdGFiIGRhbWFnZQoKMjAwNC0wOS0yOSAxNTo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA0LTA5LTI5IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoOiBbIDEwMzQxNTYgXSBDbGFyaWZ5IE9wZW5TU0wgcmVxLiBpbiBzbm1wZC5jb25mLjUKCjIwMDQtMDktMjkgMTU6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGUgc2VydmljZSByZWdpc3RyYXRpb24gc2VjdGlvbiB0byBtZW50aW9uIHRoZSBuZWVkIGZvciBhIHJlYm9vdCB0bwogICBhbGxvdyBzeXN0ZW0gZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIHVzZWQuCgoyMDA0LTA5LTI5IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIFsgMTAxMTMzMSBdIHZhY21fZGVzdHJveUFjY2Vzc0VudHJ5IHdhcyBkb3VibGUgY2hlY2tpbmcgYSB2YWx1ZSBhbmQgbWlzc25pZyBhbm90aGVyLgoKMjAwNC0wOS0yOSAxNTowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICByZW1vdmUgamFwYW4gbWlycm9yIGFzIHRoZSBtYWludGFpbmVyIHBhc3NlZCBhd2F5CgoyMDA0LTA5LTI5IDE0OjIzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBmaXggYnVnICNJRm9yZ290IHRvIGZpeCBhZ2VudHggdXNhZ2Ugb24gd2luZG93cyB0byB1c2UgYSByZWFsIHNubXBkLmNvbmYgdG9rZW4gZm9yIHNvY2tldCBhZGRyZXNzIHN1cHBvcnQKCjIwMDQtMDktMjkgMTI6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgcmVtb3ZlIG5vbi1wb3J0YWJsZSAoYnV0IG5pY2UgZ29hbCkgb3B0aW1pemVkIGhlYWRlciBpbnN0YWxsYXRpb24uICBCcmVha3Mgb24gZnJlZWJzZCBzeXN0ZW1zIHdoZXJlIGNtcCBleGl0cyB3aXRoIHN0YXR1cyAyCgoyMDA0LTA5LTI5IDEwOjM0ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBcHBseSBwYXRjaCBpbiBidWcgOTI2Mzg5IGJ5IE1pa2UgU2xpZmNhayB0byBmaXggV2luMzIgZXZlbnQgbG9nIGxvZ2dpbmcKICAgZm9yIHNubXB0cmFwZCBhbmQgc25tcGQuICBBZGRzIHNubXBfbG9nX3N5c2xvZ25hbWUoKSBmdW5jdGlvbiB3aGljaAogICBpcyBub3cgdXNlZCBieSBvcGVubG9nKCkuCgoyMDA0LTA5LTI5IDA3OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgeHh4IGNvbW1lbnRzIGluIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXBkYXRlIGZvciByZW5hbWUgdGFibGVfY29udGFpbmVyIGZ1bmN0aW9ucwoKMjAwNC0wOS0yOSAwNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC10b3AubTJjOgoKICAgcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yOSAwNzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvbnZlcnQgbWlzc2luZyBkaXIgZXJyb3IgbXNnIHRvIGRlYnVnIG1zZwoKMjAwNC0wOS0yOCAxODo0NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0yOCAxODo0NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIGNoZWNrIGZvciBuZXQvaWZfYXJwLmggaGVhZGVyCiAgIC0gcnVuIGF1dG9oZWFkZXIgdG8gdXBkYXRlIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDA0LTA5LTI4IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIHZtbmV0IHRvIHR5cGUtYnktbmFtZSBkZXRlY3Rpb24KCjIwMDQtMDktMjggMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGluY2x1ZGUgbmV0L2lmX2FycC5oIHNvIGFycCB0eXBlIGRldGVjdGlvbiBoYXMgYSBjaGFuY2UgdG8gd29yawogICAtIGlmZGVmIGFycGhyZCB0eXBlcyB0aGF0IGFyZW4ndCBjb21tb24gKHByZXR0eSBtdWNoIGFsbCBvZiB0aGVtKQogICAtIGRlYnVnIG1zZyBvbiB1bmtub3duIHR5cGUKCjIwMDQtMDktMjggMTU6MjQgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB1c2UgdGhlIGNvcnJlY3QgaHRvbnMgZnVuY3Rpb24gdG8gYXNzaWduIHRvIGEgTkJPIG9iamVjdC4KCjIwMDQtMDktMjggMTM6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICAtIGZpcnN0IHVwZGF0ZSBpbiBhIHdoaWxlCiAgIC0gdXNlIGNyZWF0ZV9mZXdlcl9maWxlcyB0byBkZXRlcm1pbmUgY29ycmVjdCBmaWxlIG5hbWUKICAgLSBjaGcgaW5kZXggY29udGV4dCB0byBtaWIgY29udGV4dAogICAtIGNoZyB0YWJsZSBjb250ZXh0IHRvIHJvdyByZXF1ZXN0IGNvbnRleHQKICAgLSByZW1vdmUgYXNzdW1wdGlvbnMgYWJvdXQgZGF0YSBhY2Nlc3MgbWV0aG9kCiAgIC0gYWRkIGV4YW1wbGUgZnVuY3Rpb24gZmxvdyAody9zb3VyY2UgZmlsZSkgZm9yIHZhcmlvdXMgcmVxdWVzdCBzY2VuYXJpb3MKCjIwMDQtMDktMjggMDY6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgZGVidWcKCjIwMDQtMDktMjggMDU6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgZml4IGxlbmd0aCBmb3IgbWVtY3B5CgoyMDA0LTA5LTI3IDE3OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggYSBmZXcgZGVidWcgbWVzc2FnZXMKICAgLSBsb2cgZXJyb3Igb24gdWtub3duIGNvbHVtbgogICAtIGRvbid0IHB1dCB1bmRvXyhzZXR1cHxjbGVhbnVwKSBpbiBpbnRlcmZhY2UgY29kZSBmb3IgZ2VuZXJhdGVkIHN0cnVjdHVyZXMKICAgLSBjYWxsIG5vZGUgdW5kb19zZXR1cCBmdW5jdGlvbnMgYWZ0ZXIgcm93IHVuZG9fc2V0dXAKCjIwMDQtMDktMjcgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZSB0aGF0IHNudWNrIGluCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBmaXggbG9naWMgdGVzdCAoZGVmdmFsIGlzIGEgc3RyaW5nLCBub3QgYSBmbGFnKQoKMjAwNC0wOS0yNyAxNzoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgc2tpcCB1bmRvX2NsZWFudXAgaWYgdW5kb19zZXR1cCB3YXNuJ3QgcnVuCgoyMDA0LTA5LTI3IDE0OjM2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgZml4aW5nIFNZTk9QU0lTIGluIHNubXBuZXRzdGF0LCBzbm1wZGVsdGEgYW5kIHNubXBkZgoKMjAwNC0wOS0yNyAxNDoyMSAgYWxleF9iCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMToKCiAgIE1ha2UgY29tbWFuZHMgaW4gU1lOT1BTSVMgLyBERVNDUklQVElPTiBzZWN0aW9uIGJvbGQKCjIwMDQtMDktMjcgMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbGxvdyBmb3IgZmluZXIgZ3JhaW5lZCBkZWJ1ZyBjb250cm9sCgoyMDA0LTA5LTI3IDEwOjQ0ICBhbGV4X2IKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNZXJnZWQgbW9zdCBXcml0ZVRvRXZlbnRMb2cgYW5kIERpc3BsYXlFcnJvciBjYWxscyBpbnRvIFByb2Nlc3NFcnJvciBzbyBldmVudCwgY29uc29sZSAmIHBvcC11cCBtZXNzYWdlcyBhcmUgY29uc2lzdGVudC4gIENoYW5nZWQgYWxsIHN0cHJpbnRmJ3MgdG8gc25wcmludGZzLgoKMjAwNC0wOS0yNyAwNjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBmaXggdHlwbwoKMjAwNC0wOS0yNyAwNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBkb24ndCBtb2RpZnkgdGFibGUgcmVxdWVzdCBkYXRhIGlmIG5vIG5leHQgY29sdW1uCgoyMDA0LTA5LTI2IDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB2YWx1ZSBtYXAgZm9yIGluZGV4ZXMKCjIwMDQtMDktMjYgMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1nZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgICBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVidWcgdG9rZW4gY29uc2lzdGVuY3kKICAgLSBhZGQgbWlzc2luZyBkZWJ1Z3MKCjIwMDQtMDktMjYgMTM6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGZpeCBwYXRocwoKMjAwNC0wOS0yNCAxMjowMyAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIHdoZW4gY3JlYXRpbmcgYWRkcmVzcyBmcm9tIG9zdHJpbmcsIGNvbnZlcnQgcG9ydCB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKCjIwMDQtMDktMjQgMDk6MTUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBmaXggY29tbWFzIGluIGNvbW1lbnRlZCBvdXQgaXRlbXMKCjIwMDQtMDktMjQgMDc6NTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBMaW51eCBtZW1vcnkgYnVmZmVycyBwYXRjaCBmcm9tIEthaiBOaWVtaSAoRmVkb3JhICpocl9zdG9yYWdlLW1idWYtdjIucGF0Y2gpCgoyMDA0LTA5LTI0IDA3OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgaW5pdCBpbnB1dC9vdXRwdXQgdmFyaWFibGUgc2FfZW50ZXJwcmlzZW9pZF9sZW4gKEZlZG9yYSAqc211eC1zdGFjay12YXIucGF0Y2gpCgoyMDA0LTA5LTI0IDA3OjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICB3aGVuIGNyZWF0aW5nIGFkZHJlc3MgZnJvbSBvc3RyaW5nLCBjb252ZXJ0IHBvcnQgdG8gbmV0d29yayBieXRlIG9yZGVyCgoyMDA0LTA5LTI0IDA2OjE4ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wa3NtLmM6CgogICBwYXRjaCA5MjM1MTEgYWRkcyBzdXBwb3J0IGZvciBub24taG9zdCBzZXJ2aWNlIHByaW5jaXBhbCBmb3Iga3NtCgoyMDA0LTA5LTI0IDA1OjUwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAxMDM5NSByZW1vdmUgZHVwbGljYXRlIGNoZWNrcyBmb3Igc25wcmludGYgYW5kIHN0cnRvdWwKICAgcGF0Y2ggMTAwOTcxMiBjaGVjayBmb3IgZ2V0aG9zdGJ5bmFtZSBpbiAtbHNvY2tldCBmb3IgVW5peHdhcmUKCjIwMDQtMDktMjQgMDU6MzAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwYXRjaCAxMDMyNjAyIHN1cHBvcnRzIExpbnV4IGNyb3NzIGNvbXBpbGVyIGZvciBXaW5kb3dzICh0YXJnZXQgbWluZ3czMm1zdmMpLgoKMjAwNC0wOS0yMyAxNjoxNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgICBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dDoKCiAgIHVuZG8gcGF0Y2ggIzEwMjc1MjIgYXMgaXQgdmlvbGF0ZXMgUkZDIDE5MDIgc2VjdGlvbiAxMC4yCiAgIHdoZW4gdGhlIE1JQiBvYmplY3RzIHdlcmUgY2hhbmdlZC4KCjIwMDQtMDktMjMgMTQ6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL3NjYXBpLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSByZXF1aXJlZCBsZW5ndGggb2YgYSBwcml2YWN5IGtleQoKMjAwNC0wOS0yMyAxMzoyNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwo6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKICAgLSBmaXggZnVuY3Rpb24gY2FsbAogICAtIGZpeCByZW5hbWVkIHZhciBtaXNzZWQgaW4gbWVyZ2UKCjIwMDQtMDktMjMgMDk6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICBhcHBseSBwYXRjaCAjMTAyNzUyMiB0byBwZXJtaXQgcmVwb3J0aW5nIG5lZ2F0aXZlIHNlbnNvciB2YWx1ZXMKCjIwMDQtMDktMjMgMDk6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBhcHBseSBtb2RpZmllZCBwYXRjaCAjMTAyNzUyMSB0byBmaXggcHJvYmxlbXMgd2l0aCBzZW5zb3IgY2F0ZWdvcmllcyAodHlwZXMpLgoKMjAwNC0wOS0yMyAwODo1OCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGFwcGx5IHBhcnQgb2YgcGF0Y2ggIzk2MDI2OSB0byByZWxlYXNlIG1lbW9yeSByZXR1cm5lZCBmcm9tIHNlbnNvcl9nZXRfbGFiZWwKCjIwMDQtMDktMjIgMTc6NTEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IHNubXAuY29uZi53aW4zMi5odG1sLAogICAgIHNubXBkLmNvbmYud2luMzIuaHRtbCwgc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIDEwMzMwNTIgZnJvbSBBbGV4IEJ1cmdlcjogV2luMzI6IFVwZGF0ZWQgaHRtbGhlbHAgZmlsZXMgZm9yICouY29uZgoKMjAwNC0wOS0yMiAxMToyMCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIGFwcGx5IHBhdGNoICMxMDMwOTEzIHRvIHN1cHByZXNzIHdpbmRvd3MgcG9wdXBzIGZvciBzZXJ2aWNlIHJlZy91bnJlZyBlcnJvcnMuCiAgIGVycm9ycyBhcmUgcHJpbnRlZCB0byBzdGRlcnIgaWYgLXF1aWV0IHBhcmFtZXRlciBpcyBzdXBwbGllZC4KCjIwMDQtMDktMjIgMTE6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWw6CgogICBhcHBseSBwYXRjaCMxMDM5MDAgc28gdGhhdCBpbnRybyBtb3JlIGNsb3NlbHkgbWF0Y2hlcyBjdXJyZW50IHdlYiBzaXRlIGhvbWUgcGFnZS4KICAgYWxzbyBhZGp1c3QgYnVpbGQgaW5zdHJ1Y3Rpb25zIHRvIHJlbW92ZSBleGFtcGxlIGFuZCBkZW1vIE1JQnMgZnJvbSBidWlsZC4KCjIwMDQtMDktMjIgMTE6MDEgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhcHBseSBwYXRjaCMxMDI4OTc2IGNoZWNrIHZhbHVlcyBmb3IgbGFiZWwsIGlpZCBiZWZvcmUgZGVyZWZlcmVuY2UuCiAgIEZpeGVzIHBlcmwgbW9kdWxlIGZhdWx0LCBhc3luYyBjYWxsYmFjay4gU2VlIFJlZEhhdCBidWcgIzExMTMxOQoKMjAwNC0wOS0yMiAwOTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICBwYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYWdhcmthciB0byBzdXBwb3J0IGtleSBjaGFuZ2luZyBmb3IgbG9jYWxpemVkLW9ubHkga2V5cwoKMjAwNC0wOS0yMiAwNzowNiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCAxMDI4OTI3IGZyb20gQW5keSBTbWl0aCBmaXhlcyBidWcgOTcyNzk3OyByZWdpc3RlcmluZyB3aW4zMgogICBzbm1wZC9zbm1wdHJhcGQgc2VydmljZXMgaW5jbHVkZXMgcGF0aHMgdG8gY29uZmlnIGZpbGUgYW5kIHRvIGxvZyBmaWxlLgoKMjAwNC0wOS0yMiAwNzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5jLCB1c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTIxIDE5OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTIxIDE5OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgZG9uJ3QgZ2VuZXJhdGUgbWFjcm9zIHRoYXQgYXJlIGluIG1mZC5oCgoyMDA0LTA5LTIxIDE5OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgZml4IHR5cG8KCjIwMDQtMDktMjEgMTk6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgb25seSBnZW5lcmF0ZSByb3cgY3JlYXRpb24gY2hlY2sgaWYgbTJjX3RhYmxlX3Jvd19jcmVhdGlvbiBzZXQKCjIwMDQtMDktMjEgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gc2V0IHVwIG1hY3JvIHcvcmVxdWlyZWQgY29sdW1ucyBmb3Igcm93IGNyZWF0aW9uCgoyMDA0LTA5LTIxIDE2OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZjoKCiAgIHN0b3JhZ2UgZm9yIHRhYmxlIGluZGV4ZXMgYW5kIGNvbHVtbnMKCjIwMDQtMDktMjEgMTY6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIG1vdmUgcm93X21lcmdlIGFmdGVyIHRhYmxlX2NvbnRhaW5lciBpbiBoYW5kbGVyIGNoYWluCgoyMDA0LTA5LTIxIDE2OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBpbmNyZWFzZSBjb250ZXh0IGZvciBkaWZmCiAgIC0gaW5jcmVhc2UgZnV6eiBmb3IgcGF0Y2gKCjIwMDQtMDktMjEgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIGFsbG9jYXRlIHRhZyBzdG9yYWdlIGVhcmxpZXIsIHdpdGggc3BhY2UgZm9yIG51bGwgdGVybWluYXRpb24KICAgLSBhbGxvYyBzcGFjZSBmb3IgbnVsbCB0ZXJtaW5hdGlvbiBvZiBuYW1lCiAgIC0gcmV0dXJuIGVycm9yIGlmIGFsbG9jYXRpb25zIGZhaWwKCjIwMDQtMDktMjEgMTY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgc2V0IGVuZG9mbWlidmlldyB3aGVuIGdldG5leHQgZ29lcyBiZXlvbmQgbGFzdCBpdGVtIGluIHRhYmxlCgoyMDA0LTA5LTIxIDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIG1hcmsgcHJvY2Vzc2VkIHJlcXVlc3RzIGFzIERPTkUgc28gdGhleSBhcmVuJ3QgbWVyZ2VkCgoyMDA0LTA5LTIxIDE0OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgaWZkZWYvY29tbWVudCBzb21lIGRlYnVnIGFzc2VydCBjb2RlIHRoYXQgZ2V0cyBoaXQgaW4gcmFyZSBjYXNlcwoKMjAwNC0wOS0yMSAxMjo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBwYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYWdhcmthciB0byBzdXBwb3J0IGtleSBjaGFuZ2luZyBmb3IgbG9jYWxpemVkLW9ubHkga2V5cwoKMjAwNC0wOS0yMSAwNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYSB0byBmaXggREgga2V5IGxlbmd0aHMKCjIwMDQtMDktMjEgMDY6NDMgIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwo6CgogICBjaGVjayBhIGZldyBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbQoKMjAwNC0wOS0xNyAwMToyMiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBhbmQgaW5jbHVkZSBycG0vcnBtZGIuaAoKMjAwNC0wOS0xNyAwMTowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgVGhpcyB3YXMgbm90IGFsd2F5cyBhbiB1bnVzZWQgdmFyaWFibGUKCjIwMDQtMDktMTcgMDA6NTggIG5iYQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeCBPcGVuU1NMIGNoZWNoIHRvIHdvcmsgb24gNjQtYml0IFNvbGFyaXMgY29tcGlsZSB3aXRoIDMyLWJpdCBPcGVuU1NMCiAgIGluc3RhbGxlZCAuLi4KCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZgoKMjAwNC0wOS0xNiAxMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHBvaW50ZXIKICAgLSB1cGNhc2UgZmlyc3Qgd29yZCBpbiBzZW50ZW5jZQogICAtIGV4cGFuZCBtb3JlIG9uIG5vQ3JlYXRpb24gZXhwbGFuaXRvcnkgbWVzc2FnZQogICAtIGFkZCBleHBsYW5pdG9yeSBtZXNzYWdlIGZvciBpbmNvbnNpc3RlbnROYW1lCgoyMDA0LTA5LTE2IDEwOjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgbG9nIGVycm9yIG1lc3NhZ2UgaWYgYSBNSUIgZGlyZWN0b3J5IGNhbm5vdCBiZSBvcGVuZWQKCjIwMDQtMDktMTYgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy9NYWtlZmlsZSwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBkYXRhIGFjY2VzcyBmb3IgdGNwLW1pYiB0Y3AgY29ubmVjdGlvbnMgKGlwdjQgb25seSkKCjIwMDQtMDktMTYgMDg6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcnMKICAgLSBjcmVhdGUgZGVmYXVsdC1ub2RlLSR7bm9kZX0ubTJkIHcvY3VycmVudCB2YWx1ZXMsIGlmZiBkb2Vzbid0IGV4aXN0CgoyMDA0LTA5LTE2IDA4OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIG1hcHBpbmcgY29kZSBpZiBza2lwIG1hcHBpbmcgc2V0CgoyMDA0LTA5LTE1IDE3OjIyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBmcmVlYnNkNS82IGhlYWRlcnMKCjIwMDQtMDktMTUgMTU6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGFuIG9wcHMuICBEZWxldGUgdGhlIHVzbSBzdGF0ZSByZWYgYmVmb3JlIHRoZSBoYW5kbGluZyBvZiByZXBvcnRzIHNpbmNlIGl0IGRpZG4ndCBuZWVkIGl0IGJlZm9yZQoKMjAwNC0wOS0xNSAwOTo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBtYWtlIHRoZSBIYW5kbGVSZXBvcnQgY2FsbGJhY2sgdGFrZSBhIHRyYW5zcG9ydCBwb2ludGVyCgoyMDA0LTA5LTE1IDA5OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIE1ha2UgdGhlIHVzbSBtb2R1bGUgaGFuZGxlIGl0cyBvd24gcmVwcm90cwoKMjAwNC0wOS0xNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgc3RhdGUgcmVmZXJlbmNlIHRpbGwgYWZ0ZXIgdGhlIGhhbmRsZV9yZXBvcnRfcGR1IGNhbGxiYWNrIGlzIGNhbGxlZC4gIEFsc28gcGFzcyBpbiB0aGUgdHJhbnNwb3J0IHRvIHRoZSBzYW1lIGhvb2suCgoyMDA0LTA5LTE1IDA5OjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGRhcndpbjcgaGVhZGVyCgoyMDA0LTA5LTE1IDA3OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gY2hlY2sgY29sdW1uX3NldF9mbGFncyB0byBzZWUgaWYgcm93c3RhdHVzIHNldAogICAgIC0gb25seSBjaGVjayB0cmFuc2l0aW9uIGlmIHNldAogICAgIC0gY2hlY2sgcmVxdWlyZWQgcm93cyBvbiBjcmVhdGVBbmRHbwogICAgIC0gZG9uJ3QgYWxsb3cgZGVzdHJveSBpZiBvdGhlciBjb2x1bW5zIHNldAogICAtIGRvbid0IGFsbG93IGNyZWF0aW9uIGlmIHJvd3N0YXR1cyBub3Qgc2V0CgoyMDA0LTA5LTE1IDA3OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIHJlbmFtZSBzZXRfZmxhZ3MKICAgLSBhZGQgY29tbWVudCBhYm91dCByb3cgY3JlYXRlZCBmbGFnIGluIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBjb21tZW50IGdyYW1tYXIgdHdlYWsKCjIwMDQtMDktMTUgMDc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCByb3dyZXFfZmxhZ3MKICAgLSByZW5hbWUgc2V0X2ZsYWdzIHRvIGNvbHVtbl9zZXRfZmxhZ3MKICAgLSB1c2UgY29udGV4dCBuYW1lIGZvciBleGFtcGxlIHVzZXIgY29udGV4dCBkYXRhIGxpc3QKCjIwMDQtMDktMTUgMDc6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgbWFjcm8gdG8gdmFsaWRhdGUgU05NUCBlcnJvciBjb2RlcwogICAtIHVzZSBuZXcgcm93cmVxX2ZsYWdzIHRvIHNldC9jbGVhciBuZXcgcm93IGZsYWcKICAgLSBzZXQgcmVxdWVzdCBlcnJvciBvbiBpbnZhbGlkIG9pZCBmb3IgbmV3IHJvdwogICAtIGNsZWFyIHVuZG8gcG9pbnRlciBhZnRlciByZWxlYXNpbmcgaXQKICAgLSBzZXQgV1JPTkdMRU5HVEggZm9yIGJhZCB2YXJpYWJsZSBzaXplCgoyMDA0LTA5LTE1IDA3OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBhZGQgaW5jbHVkZSB0byBxdWlldCBjb21waWxlcgoKMjAwNC0wOS0xNSAwNzoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIC0gYWRkIHByb3RvdHlwZSBmb3Igc2VfZmluZF9zbGlzdAogICAtIHR3ZWFrIGNvbW1lbnQKCjIwMDQtMDktMTUgMDc6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBtb3ZlIHN0b3JhZ2UgdHlwZSBpbnRvIGRhdGEgYWNjZXNzIGludGVyZmFjZQogICAtIGFkZC91c2UgdW5kbyBzdG9yYWdlIGZvciBMYXN0Q2hhbmdlZAogICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGlvbi9kZWxldGlvbiBvZiBpcGFkZHJlc3NlcyB2aWEgUm93U3RhdHVzCiAgIC0gYWRkIGZsYWdzIGZvciByZXF1aXJlZCBjb2x1bW5zCgoyMDA0LTA5LTE1IDA2OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHR3ZWFrIGxvZyBtZXNzYWdlLCBjb21tZW50cwoKMjAwNC0wOS0xNSAwNjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gcmVtb3ZlIGFyY2ggZmxhZ3MsIGFkZCBkYXRhIGxpc3QgZm9yIGFyY2ggZGF0YQogICAgIC0gYWRkICYgY2FsbCBhcmNoIGZ1bmN0aW9ucyBvbiBjcmVhdGUsIGNvcHksIGRlbGV0ZSBpcGFkZHJlc3MgZW50cnkKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGlwYWRkcmVzcyBzZXQgKGNyZWF0ZS9kZWxldGUgaXAgYWRkcmVzcyBhbGlhc2VzKQogICAtIGNoYW5nZSBtYWNybyBuYW1lCiAgIC0gYWRkIGZsYWcgZm9yIGFsaWFzZXMKCjIwMDQtMDktMTUgMDY6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIGFkZCBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgLSBuZXcgZnVuY3Rpb24gdG8gZmluZCBpbnRlcmZhY2UgbmFtZSBmcm9tIGlmSW5kZXgKCjIwMDQtMDktMTQgMTU6MDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgVXBkYXRlIHRvIG1vZHVsYXJpemUgYSBiaXQgbW9yZSB0aGUgc2VjdXJpdHkgbW9kZWwgaW5mcmFzdHJ1Y3R1cmU6IHJlcG9ydCBoYW5kbGluZyBvdXRzb3VyY2VkIHRvIHRoZSBzZWNtb2QKCjIwMDQtMDktMTMgMTk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgsCiAgICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLAogICAgIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgLSBwYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gcmVtb3ZlICc7JyBmcm9tIGV4dGVybiAnQycgaGVhZGVyIGNvbnRydWN0cwogICAgIChhbGxvdyBnKysgMy40IGFuZCBhYm92ZSB0byBjb21waWxlIG5ldC1zbm1wKQoKMjAwNC0wOS0xMyAwMzozNCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgd2hlbiBtYXRjaGluZyBDUFAgZGVmaW5lcywgbWF0Y2ggdGhlIG9uZXMgd2hpY2ggYmVnaW4gdGhlIHNvdXJjZSBoZWFkZXIgbGluZS4KCjIwMDQtMDktMTMgMDM6MjAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0LCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhoYwosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhwLAogICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9wb2RkaXIyaHRtbCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWw6CgogICBhcHBseSBwYXRjaCAjMTAyNjY5IFdpbjMyIDUuMiBidWlsZCB1cGRhdGVzYAoKMjAwNC0wOS0xMiAyMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGluY2x1ZGUgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzCiAgIC0gaW5pdGlhbGl6ZSBkZWZhdWx0cyBwZXIgdGhlIG1pYgoKMjAwNC0wOS0xMiAyMjoyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGNoYW5nZSBjb21tZW50CiAgIC0gYWRkIHN0b3JhZ2UgdHlwZQogICAtIGRlZmluZSBmbGFncyBmb3Igc2V0IHN1cHBvcnQKCjIwMDQtMDktMTIgMjI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGRhdGEgbG9va3VwIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHZhcmJpbmRzCgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBza2lwcGluZyBvZiB1bi1yZWdpc3RlcmVkIG1vZGVzCiAgIC0gcmVtb3ZlIHJlcXVlc3QgbmV4dF9tb2RlIHN0dWZmIChuZXZlciB1c2VkKQogICAtIHNob3J0ZW4gbXV4IGRlYnVnIHRva2VuCgoyMDA0LTA5LTEwIDE1OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGRvbid0IG1hc2sgcmV0dXJuIGNvZGVzIGluIGludGVybmFsIGZ1bmN0aW9ucwoKMjAwNC0wOS0xMCAxNToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgYWRkIHVuZG8gc3RvcmFnZSBmb3Igcm93c3RhdHVzIGFuZCBzdG9yYWdlIHR5cGUKCjIwMDQtMDktMTAgMTQ6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIC0gbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmFieV9zdGVwX21vZGUyZmxhZwogICAtIHVzZSBuZXcgZnVuY3Rpb24sIHNvIHNraXBwaW5nIHVucmVnaXN0ZXJlZCBtb2RlcyB3b3JrcwoKMjAwNC0wOS0xMCAxNDo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gdXNlIG1mZCBzdWNjZSBtYWNybyBpbnN0ZWFkIG9mIHNubXAgbWFjcm8KICAgLSBpZiBjaGVjayByZXR1cm5zIGFuIGVycm9yLCByZXR1cm4gaW1tZWRpYXRlbHkKCjIwMDQtMDktMTAgMTQ6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmk6CgogICB1c2UgY29ycmVjdCBmdW5jdGlvbiBuYW1lCgoyMDA0LTA5LTEwIDEzOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gYWRkIGRlZmluZSB0byBhbGxvdyByb3ctY3JlYXRpb24KCjIwMDQtMDktMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0xMCAwNTozMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDaGVjayB0aGF0IGEgdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSB2YWxpZCBNSUIgb2JqZWN0LAogICBiZWZvcmUgdHJ5aW5nIHRvIGxvb2sgYXQgY2hhcmFjdGVyaXN0aWNzIG9mIHRoaXMgb2JqZWN0LgogICAoRml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIE1GRCBzY3JpcHRzLCB3aGljaCB1c2UgdGhlIG1pYjJjCiAgICB2YXJpYWJsZSBleHBhbnNpb25zIGZvciBub24tTUlCLW9iamVjdCBuYW1lcyBhcyB3ZWxsKS4KCjIwMDQtMDktMDkgMTY6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBsb2cgbXNnIHR5cG8KICAgLSBzZXQgcmVxdWVzdCBlcnJvcnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgZXJyb3IgZnJvbSBoYW5kbGVyCiAgIC0gZGVidWcgbXNncyBmb3IgcmVxdWVzdCBlcnJvcnMKCjIwMDQtMDktMDkgMTY6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGFkZCBtaXNzaW5nIHF1b3RlCgoyMDA0LTA5LTA5IDA5OjE3ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBuZXcgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0CiAgIChwbHVzIG1pbm9yIGdyYW1tYXIgYW5kIGZvcm1hdHRpbmcgdHdlYWtzKQoKMjAwNC0wOS0wOSAwNzowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjMTAyNDM1MiBDaGFuZ2VzIFdpbmRvd3MgaW5zdGFsbGVyIHRvIGFsbG93IHNubXB0cmFwZCBhcyBzZXJ2aWNlLgoKMjAwNC0wOS0wOSAwNjo0OSAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmb3JtYXR0aW5nIHBhdGNoICMxMDI0NzQ2IChvbmUtbGluZXIpIGZyb20gQWxleCBCdXJnZXIuCgoyMDA0LTA5LTA5IDAzOjQzICBzbGlmCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaXggYnVnIzEwMjUwMTQgLSByZW1vdmUgdW51c2VkcywgcXVlbGwgc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmdzIGluIDUuMi5wcmUxCgoyMDA0LTA5LTA5IDAzOjMxICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsYXJlIGV4dGVybmFsIGZ1bmN0aW9uIHdpdGhpbiBzY29wZSB1c2VkLgoKMjAwNC0wOS0wOSAwMzoyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGJ1ZyMxMDI1MDA0IGFwcGx5IG1pbm9yIGNvbW1lbnQgYW5kIGdyYW1tYXIgZml4ZXMgdG8gc25tcGQsc25tcHRyYXBkCgoyMDA0LTA5LTA4IDIwOjUyICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBwYXJ0aWFsIGZpeCBidWcgIzkwOTIyMiAtIG1vdmUgd2luMzIgY2hhbmdlcyBpbnNpZGUgIF9kaXNhYmxlX3N5c2xvZ3tlbnRyeX0sCiAgIGRvbnQgd3JpdGUgc3RhbmRhcmQgZXJyb3Igb24gZmFpbHVyZSB0byBjbG9zZSBldmVudCBsb2cgZnJvbSBkaXNhYmxlX3N5c2xvZy4KCjIwMDQtMDktMDggMTg6NDMgIHNsaWYKCiAgICogd2luMzIvOiBhZ2VudF9tb2R1bGVfZG90X2NvbmYuaCwgYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgKLCBhZ2VudF9tb2R1bGVfaW5pdHMuaCwgYnVpbGQucGwsCiAgICAgbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBuZXQtc25tcC9hZ2VudC9hZ2VudF9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQXBwbHkgbW9kcyBpbiBwYXRjaCAjMTAyNDgxMCBpbiBvcmRlciB0byBidWlsZCA1LjIucHJlMSBvbiB3aW4zMiBNU1ZDK01pbkdXLgoKMjAwNC0wOS0wOCAwODozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgZml4IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IG1hY3JvIG5hbWUKCjIwMDQtMDktMDcgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIG1hcCBkYXRhIGFjY2VzcyBpZiBhZGRyZXNzIHR5cGUgdG8gbWliIHR5cGUgaW4gaW5kZXgKCjIwMDQtMDktMDcgMjA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBwYXNzIGNvcnJlY3QgY29udGFpbmVyIHRvIHVwZGF0ZSBjaGVjayBmdW5jdGlvbnNvIG1pc3NpbmcgYWRkcnMgYXJlIHJlbW92ZWQKCjIwMDQtMDktMDcgMjA6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBudWxsIHJvd3JlcV9jdHggaXMgdmFsaWQgaW4gdW5kb19jbGVhbnVwOyBzaW1wbHkgcmV0dXJuIHN1Y2Nlc3MKCjIwMDQtMDktMDcgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCBpZkluZGV4IGxvb2t1cCBmb3IgaW50ZXJmYWNlIGFsaWFzZXMKICAgLSBhZGQgZGVidWcgbWVzc2FnZQogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgaXBhZGRyZXNzCgoyMDA0LTA5LTA3IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgYWRkIHNlIHBhaXJzIGZvciBiYWJ5IHN0ZXAgbW9kZXMKCjIwMDQtMDktMDcgMjA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIC0ga2VlcCByZWdpc3RlcmVkIG1vZGVzIHdpdGggbWliIGhhbmRsZXIKICAgLSBza2lwIGxvd2VyIGhhbmRsZXJzIGZvciBtb2RlcyB0aGF0IGhhbmRsZXIgZGlkbnQgcmVnaXN0ZXIgZm9yCiAgIC0gc2tpcCB1bmRvIGNvbW1pdCBpZiBoYW5kbGVyIHdhc250IGNhbGxlZCBmb3IgY29tbWl0CiAgIC0gZG9udCBicmVhayBvbiByZXF1ZXN0IGVycm9yIGluIGZpbmFsIHN0ZXBzIChlcXVpdmFsZW50IG9mIGNvbW1pdC91bmRvL2ZyZWUpCiAgIC0gbW9yZSBkZWJ1ZyBtc2dzCgoyMDA0LTA5LTA3IDIwOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIHN5bmMgbmFtZXMgb2YgQkFCWV9TVEVQXyogd2l0aCBNT0RFX0JTVEVQXyoKICAgLSBkZWZpbmUgc3RydWN0dXJlIGZvciBiYWJ5IHN0ZXBzIGhhbmRsZXIgbW9kZSB0cmFja2luZwoKMjAwNC0wOS0wNyAyMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgYWRkIGRlYnVnIG1zZwoKMjAwNC0wOS0wNiAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBhZGQgcGVyc2lzdGVuY2UgZm9yIGlmQWxpYXMsIGlmTGlua1VwRG93blRyYXBFbmFibGUKICAgLSBkb24ndCBhbGxvdyBzZXQgb2YgcHJvbWlzY3VvdXMgbW9kZSwgc2luY2UgaXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDQtMDktMDYgMTk6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGZpeCBmaXhlZCBzaXplIGNoZWNrCiAgIC0gYWRkIGFjY2VzcyB0byBjb250YWluZXIgcG9pbnRlcgoKMjAwNC0wOS0wNiAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgZG9uJ3QgZ2VuZXJhdGUgZml4ZWQgc2l6ZSBjaGVjayBmb3Igb2N0ZXQgc3RyaW5ncwoKMjAwNC0wOS0wNiAxOTowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBzZXQgdXAgdmFycyBmb3IgbGVuZ3RocyB0byBiZSBjb3BpZWQgY29ycmVjdGx5CgoyMDA0LTA5LTA1IDE4OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICByZW1vdmUgZXh0ZXJuIG9mIG5vbi1leGlzdGFudCB2YXIKCjIwMDQtMDktMDIgMDc6MjIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgZG9udCBpbmNsdWRlIGJ5dGVvcmRlci5oIC0tIGF2b2lkcyB3YXJuaW5nIHNlZW4gb24gUmVkSGF0CgoyMDA0LTA5LTAyIDA2OjU4ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiB0aGUgb3RoZXIgbmV3IG1pYjJjIGNvbmZpZyB0ZW1wbGF0ZXMsIGFuZCBwcm92aWRlIGEgbGl0dGxlCiAgIG1vcmUgZXhwbGFuYXRpb24uICAoUGx1cyBmaXhpbmcgYSBjb3VwbGUgb2YgdHlwb3MpCgoyMDA0LTA5LTAyIDA2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCAjOTk1NDg5IGJ5IG9idGFpbmluZyBzeXNEZXNjciBhbmQgc3lzQ29udGFjdCB0aHJvdWdoIHdpbmRvd3MgbmF0aXZlIG1ldGhvZHMuCgoyMDA0LTA5LTAyIDAwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSByZXF1aXJlIGFsbCBpZi1taWIgaW50ZXJmYWNlIGZvciBsaW51eAoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMSAyMzo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICByZXF1aXJlIGV4cGxpY2l0IGNvbmZpZ3VyZSBmbGFnIGZvciBleHBlcmltZW50YWwgbWZkIHJld3JpdGUgbW9kdWxlcwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIG1lcmdlIDUuMS4yIG5ld3MKICAgLSBhZGQgb3RoZXIgdGlkYml0cyBnbGVhbmVkIGZyb20gQ2hhbmdlbG9nCgoyMDA0LTA5LTAxIDIzOjUxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMQoKMjAwNC0wOS0wMSAyMjo1NyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjUxICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjM6CgogICBjaGVjayBpbiBuZXcgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTA5LTAxIDIyOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBhZnRlciBydW5uaW5nIGF1dG9oZWFkZXIKCjIwMDQtMDktMDEgMjI6MTQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gY29udmVydCBDKysgc3R5bGUgY29tbWVudHMgdG8gQyBzdHlsZSBjb21tZW50cyAob3IgcmVtb3ZlIHRoZW0pCgoyMDA0LTA5LTAxIDIyOjA1ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlYWRtZSBmb3IgTWFjIE9TIFgKCjIwMDQtMDktMDEgMjI6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIyOjAzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4yLnByZTEKCjIwMDQtMDktMDEgMjE6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBwaW5nL2dudWMuaCwgcGluZy9pbjYuaCwKICAgICBwaW5nL2lwX3Zhci5oLCBwaW5nL2lwdjYuaCwgcGluZy91ZHBfdmFyLmgsCiAgICAgdHJhY2Vyb3V0ZS9nbnVjLmgsIHRyYWNlcm91dGUvaW42LmgsCiAgICAgdHJhY2Vyb3V0ZS9pcF92YXIuaCwgdHJhY2Vyb3V0ZS9pcHY2LmgsCiAgICAgdHJhY2Vyb3V0ZS91ZHBfdmFyLmgsIG5zbG9va3VwL2dudWMuaCwgbnNsb29rdXAvaW42LmgKLCBuc2xvb2t1cC9pcF92YXIuaCwgbnNsb29rdXAvaXB2Ni5oLAogICAgIG5zbG9va3VwL3VkcF92YXIuaDoKCiAgIHJlbW92ZSBHUEwgbGljZW5zZSBjb2RlLCBwbHVzIHNvbWUgZ3VpbHR5LWJ5LWFzc29jaWF0aW9uIGZpbGVzCgoyMDA0LTA5LTAxIDIwOjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMDEgMjA6MTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBvcGVuYnNkIG5lZWRzIHN5cy90eXBlcyBiZWZvcmUgdGNwZC5oCgoyMDA0LTA5LTAxIDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICB0d2VhayBjb21tZW50IGFuZCBsb2cgbWVzc2FnZSBmb3JtYXQKCjIwMDQtMDktMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIC0gd2hpdGVzcGFjZSBjaGFuZ2UgdG8gYWRkIHJlYWwgbG9nIG1lc3NhZ2UgKGxhc3QgY2hlY2tpbmcgaGFkIHdyb25nIGxvZyBtZXNzYWdlKQogICAtIGFkZCBwb3J0IG51bWJlciB0byBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMDQtMDktMDEgMTk6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIC0gaW5jcmVhc2UgbWF4X3NlbnNvcnMKICAgLSBicmVhayB3aGVuIG51bWJlciBvZiBzZW5zb3JzIGV4Y2VlZHMgbWF4X3NlbnNvcnMKICAgLSBhZGQgZGVidWcKCjIwMDQtMDktMDEgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDE5OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYmFpbCBpZiBsbV9zZW5zb3JzIGhlYWRlci9saWIgY2hlY2tzIGZhaWwKCjIwMDQtMDktMDEgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgLSBkb24ndCByZXR1cm4gaGFuZGxlciBpZiBjYW4ndCBhbGxvY2F0ZSBzZ3JvdXAKICAgLSB1c2UgbG9jYWwgdmFyIGZvciByb290b2lkIG1hY2hpbmF0aW9ucywgaW5zdGVhZCBvZiByZWdpbmZvIHJvb3RvaWQKICAgICAocmVhbGxvYyBvZiBleHRyYSBzdWJvaWRzIGRvZXNuJ3Qgc3Vydml2ZSByZWdpc3RyYXRpb24sIHdoZW4gc3VidHJlZV9zcGxpdAogICAgIGNhbGxzIG5ldHNubXBfc3VidHJlZV9kZWVwY29weSgpKSBbc2NvcmUgb25lIGZvciBsaWJlZmVuY2VdCgoyMDA0LTA5LTAxIDE3OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgb25seSBjb25maWdfcmVxdWlyZSBpZi1taWIgaW50ZXJmYWNlX2NvbW1vbiwgbm90IGFsbCBvZiBpZi1taWIgaW50ZXJmYWNlCgoyMDA0LTA5LTAxIDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBjb25maWdfcmVxdWlyZSBmb3IgcGxhdGZvcm1zIHdoaWNoIGhhdmVuJ3QgYmVlbiBwb3J0ZWQgeWV0CgoyMDA0LTA5LTAxIDE3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgaWZkZWYgb3V0IGFyY2ggc3BlY2lmaWMgZnVuY3Rpb25zIGlmIGFyY2ggbm90IHN1cHBvcnRlZAoKMjAwNC0wOS0wMSAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBvbmx5IHJlcXVpcmUgbmV3IG1mZCBtb2R1bGVzIGZvciBsaW51eCwgdW50aWwgb3RoZXIgcGxhdGZvcm1zIGFyZSBwb3J0ZWQKCjIwMDQtMDktMDEgMTU6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgaW5jbHVkZSBhc20vdHlwZXMuaCBzbyB0aGF0IGFnZW50IHdpbGwgYnVpbGQgb24gTWFuZHJha2UgZmxhdm9yZWQgTGludXguCgoyMDA0LTA5LTAxIDE0OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnQKICAgLSBkb2N1bWVudCB1c2Ugb2Ygc2ltcGxpc3RpYyBfbG9jawoKMjAwNC0wOS0wMSAxNDozMCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNi5oOgoKICAgcHJvdmlkZSBoZWFkZXIgZm9yIEZyZWVCU0QgNi4gZml4ZXMgYnVnIzEwMTgyMDkKCjIwMDQtMDktMDEgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIG9ubHkgbG9nIG9wZW4gZXJyIG9uY2UgKHVudGlsIHN1Y2Nlc3MsIHRoZW4gcmVzZXQgZmxhZykKCjIwMDQtMDktMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGNoZWNrIGZvciBOVUxMIHBvaW50ZXIgZnJvbSBkYXRhIGFjY2VzcyByb3V0aW5lcywgJiByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUKCjIwMDQtMDktMDEgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSBvbmx5IGxvZyBmaWxlIG9wZW4gZXJyb3Igb25jZSAodW50aWwgYSBzdWNjZXNzZnVsIG9wZW4pCiAgIC0gcmV0dXJuIG5vIGVycm9yIGlmIGNvdWxkbid0IG9wZW4gaXB2Niwgc28gd2UgY2FuIGNvbnRpbnVlIHcvaXB2NAoKMjAwNC0wOS0wMSAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVha3Mgb24gZmFpbGVkIHJlZ2lzdHJhdGlvbgogICAgIChpLmUuIGFsd2F5cyBmcmVlIHJlZ2luZm8gaWYgcmVnaXN0cmF0aW9uIGZhaWxzKQoKMjAwNC0wOS0wMSAxMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZWxpbWluYXRlIGRvdWJsZSBmcmVlIG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KCjIwMDQtMDktMDEgMDg6MjUgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQXR0ZW1wdCB0byBlbnN1cmUgdGhhdCAnaW50MzJfdCcgYW5kIChpZiBhcHByb3ByaWF0ZSkgJ2ludDY0X3QnCiAgIHR5cGVzIChwbHVzIHVuc2lnbmVkIGVxdWl2YWxlbnRzKSBhcmUgYXZhaWxhYmxlLgoKMjAwNC0wOS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgUmVtb3ZlIHVuYmFsYW5jZWQgIkBlbmRAIiBzdGF0ZW1lbnRzLgoKMjAwNC0wOS0wMSAwNTo1NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFByb3ZpZGUgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0YWJsZSBjb25maWcgdGVtcGxhdGVzLCBhbmQKICAgZGVzY3JpYmUgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbSBhIGxpdHRsZSBtb3JlIGZ1bGx5LgoKMjAwNC0wOS0wMSAwNTo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZjoKCiAgIEZpeCBtaW5vciB0eXBvCgoyMDA0LTA4LTMxIDIxOjM2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAtIGFkZCBub3RlIG9uIHJ1bm5pbmcgY3ZzMmNsIG9uIGEgYnJhbmNoCgoyMDA0LTA4LTMxIDIxOjI2ICByc3RvcnkKCiAgICogbWFuL21pYjJjLjEuZGVmLCBsb2NhbC9taWIyYy5jb25mOgoKICAgYWRkIGluZm9ybWF0aW9uIGFib3V0IG1pYjJjLm1mZC5jb25mCgoyMDA0LTA4LTMxIDIwOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSB1cGRhdGUgY29tbWVudHMgb24gbGlidG9vbCB2ZXJzaW9uaW5nCiAgIC0gdXBkYXRlIGZvciA1LjIKCjIwMDQtMDgtMzEgMTY6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgZml4IGZsb2F0IGNhbGMgaW4gdmFyX2V4dGVuc2libGVfZGlzayBwZXIgSGFyYWxkIFN0cmHniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy144ODZXJnZXIgPGhzQHN5c2xvZy5hdD4KCjIwMDQtMDgtMzEgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBhZ2VudF9tb2R1bGVfY29uZmlnLmgKCjIwMDQtMDgtMzEgMDM6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIERlY2xhcmUgaGFuZGxlcnMgYXMgUldSSVRFL1JPTkxZIGFzIGFwcHJvcHJpYXRlLgogICBTdXBwcmVzcyBTRVQgaGFuZGxpbmcgY29kZSBmb3IgcmVhZC1vbmx5IHRhYmxlcy4KCjIwMDQtMDgtMzEgMDM6MjUgIGR0czEyCgogICAqIGxvY2FsLzogc25tcGNvbmYsIG1pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpLAogICAgIG1pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaSwKICAgICBtaWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgRGF2ZSdzIGJlaW5nIHBlcm5pY2tpdHkgYWJvdXQgZ3JhbW1hciBhZ2Fpbi4KICAgIkl0J3MiIGlzIHNob3J0IGZvciAiaXQgaXMiLgogICAiQmVsb25naW5nIHRvIGl0IiBpcyAiaXRzIiAtIG5vIGFwb3N0cm9waGUuCgoyMDA0LTA4LTMxIDAzOjIzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgSW1wcm92ZSBlcnJvciBoYW5kbGluZyBmb3IgaW52YWxpZCBTRVQgcmVxdWVzdHMuCgoyMDA0LTA4LTMxIDAzOjIwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgU3VwcHJlc3MgU0VUIGhhbmRsaW5nIGNvZGUgZm9yIHJlYWQtb25seSB0YWJsZXMuCgoyMDA0LTA4LTMxIDAzOjE4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZgo6CgogICBPb3BzISAgbWliMmMgY29uZmlnIHR5cG8KCjIwMDQtMDgtMzEgMDM6MTYgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mCjoKCiAgIERlY2xhcmUgaGFuZGxlcnMgYXMgUldSSVRFL1JPTkxZIGFzIGFwcHJvcHJpYXRlLgoKMjAwNC0wOC0zMSAwMzoxMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZjoKCiAgIEFsdGVybmF0aXZlIGl0ZXJhdG9yIHRlbXBsYXRlLiAgQmFzZWQgb24gYSBzaW5nbGUgaGFuZGxlciAodW5saWtlCiAgICdpdGVyYXRvcl9hY2Nlc3MnKSwgYnV0IHNvbWV3aGF0IG1vcmUgY29tcGxldGUgdGhhbiB0aGUgb3JpZ2luYWwsCiAgIHBhcnRpY3VsYXJseSB3LnIudC4gU0VUIGhhbmRsaW5nLgoKMjAwNC0wOC0zMSAwMzowOSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW1wcm92ZSB0aGUgZXhhbXBsZSBkYXRhIHN0cnVjdHVyZSBkZWZpbml0aW9uIChlc3AuIHcuci50LiBpbmRleCB2YWx1ZXMpCgoyMDA0LTA4LTMxIDAwOjM3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBuZXcgc3RydWN0IHR5cGVkZWYsIG5ldHNubXBfaGFuZGxlcl9hcmdzCgoyMDA0LTA4LTMxIDAwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFkZCBuZXcgdm9pZCBwb2ludGVyIGZvciBjYWNoZSBoaW50CiAgIC0gZGVmaW5lIG5ldyBmbGFnIGZvciBoYW5kbGVyIGFyZ3MgY2FjaGUgaGludAogICAtIHBhc3MgaGFuZGxlciBhcmdzIGNhY2hlIGhpbnQgd2hlbiBmbGFnIHNldAoKMjAwNC0wOC0yOCAxNTo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGNvbmZpZ19yZXF1aXJlIG1pYklJL3Zhcl9yb3V0ZSAoVVNFX1NZU0NUTF9JRiBuZWVkcyBnZXRfYWRkcmVzcykKCjIwMDQtMDgtMjggMTI6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAtIG5ldHNubXBfYXNzZXJ0IG9uIHNlbGYtcmVmZXJlbmNlIGluIGxpbmtlZCBsaXN0CgoyMDA0LTA4LTI4IDEyOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBhZGQgY29tbWVudHMKCjIwMDQtMDgtMjggMTI6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGNvbW1lbnQgb3V0IGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBmb3IgdW53cml0dGVuIG1vZHVsZXMKCjIwMDQtMDgtMjggMTI6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGRvY3VtZW50IHNjYW5saW5lIGZvcm1hdAoKMjAwNC0wOC0yOCAxMjoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICAtIHJlbW92ZSBleHRyYW5lb3VzICc7JwogICAgIChpc3N1ZSBub3RlZCBpbiBidWcvcGF0Y2ggMTAxMTQ3MSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMpCgoyMDA0LTA4LTI4IDEyOjE3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICAtIGlubGluZSBmaXhlcyBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsLCBwbHVzIGEgZmV3IEkgZm91bmQKICAgICAoaXNzdWVzIG5vdGVkIGluIGJ1Zy9wYXRjaCAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjggMTI6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGZvciBuZXcgYWNjb25maWcuaAoKMjAwNC0wOC0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICAtIG9ubHkgZGVmaW5lIGlubGluZSBtYWNyb3MgaWYgZW5hYmxlZAogICAgIChpc3N1ZSBub3RlZCBpbiBidWcgMTAxMTQ3MSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMpCgoyMDA0LTA4LTI3IDIzOjI3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBmaXggMS8yIG9mIGJ1ZyA3MDI0MzU6IG1lbW9yeSBsZWFrIFsuLi5dIGZvciBhZ2VudHggc3ViYWdlbnRzCiAgICAgLSBQYXRjaCBzdXBwbGllZCBieSBGcmFueiBHLiBGaXNjaGVyCgoyMDA0LTA4LTI3IDIzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW1vdmUgdW51c2VkIHZhciBhbmQgcHJvdG90eXBlcwogICAtIGFkZCBjb21tZW50IGRvY3VtZW50aW5nIHNjYW4gbGluZSBmb3JtYXQKCjIwMDQtMDgtMjcgMjM6MjIgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIG9taXQgcm91dGVzIHRoYXQgYXJlIGRvd24KICAgLSBoYXJkY29kZSBhY3RpdmUgcm93IHN0YXR1cyBmb3IgbmV3bHkgZGlzY292ZXJlZCByb3V0ZXMKCjIwMDQtMDgtMjcgMjM6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSB0d2VhayBsb2cgbWVzc2FnZXMgc3ludGF4CiAgIC0gZml4IGlwdjQgbWFzayBjYWxjdWxhdGlvbgogICAtIGltcGxlbWVudCBpcHY2IHJvdXRlcwogICAtIGNvbW1vbiBmdW5jdGlvbiB0byBzZXQgcm91dGUgdHlwZSBmcm9tIGZsYWdzCiAgIC0gc2V0IHBvbGljeSBvaWQgYmFzZWQgb24gYXJiaXRyYXJ5IGluZGV4CgoyMDA0LTA4LTI3IDIzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBkb250IGZyZWUgcG9saWN5IG9pZCBpZiBzdGF0aWMgZmxhZyBzZXQKCjIwMDQtMDgtMjcgMjM6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIGFkZCBmbGFnIGZvciBzdGF0aWMgcG9saWN5IG9pZAogICAtIGNoYW5nZSBpbnRlcm5hbCBpbmRleCB0eXBlIHRvIG9pZAoKMjAwNC0wOC0yNyAwNzoyOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBUcnkgYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gbXVsdGktdHlwZSBjb25maWcgaGFuZGxpbmcuCiAgIERvbid0IGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXIgY29uZmlnIHRva2VucyBhZ2FpbnN0IG11bHRpcGxlIHR5cGVzLgogICBJbnN0ZWFkLCBleHBsaWNpdGx5IHJlZ2lzdGVyIEFnZW50WC1yZWxhdGVkIGNvbmZpZyB0b2tlbnMgYXMgc3VjaC4KICAgKFRoZSBjb25maWcgbWVjaGFuaXNtIHdpbGwgYWxyZWFkeSBhdXRvbWF0aWNhbGx5IGxvYWQgYW55IGNvbmZpZwogICBmaWxlIHR5cGVzIHRoYXQgaXQga25vd3MgYWJvdXQpLgoKMjAwNC0wOC0yNyAwMzoxNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgVXNlIGEgY29uc2lzdGVudCAiaG9zdHMue2FsbG93LGRlbnl9IiB0b2tlbiBmb3Iga25vd24gYW5kIHVua25vd24gYWRkcmVzc2VzLgoKMjAwNC0wOC0yNyAwMzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgSWYgd2UncmUgcmVhZGluZyBpbiB0aGUgbXVsdGljYXN0IHN0YXRzLCB0aGVuIHRoZSBzY2FuIGxpbmUgbmVlZHMgdG8gYmUKICAgdHdlYWtlZCBub3QgdG8gc2tpcCB0aGlzIHZhbHVlIQoKMjAwNC0wOC0yNiAwNzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgU3VwcHJlc3MgMzItYml0IHNoaWZ0IHdhcm5pbmdzIG9uIDMyLWJpdCBzeXN0ZW1zLgogICAoVGhvdWdoIHRoaXMgbWF5IG5vdCBiZSB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHN1Y2ggc3lzdGVtcyEpCgoyMDA0LTA4LTI2IDA3OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBEZWNsYXJlIG1pc3NpbmcgdmFyaWFibGUgb24gbm9uLVNDTnVNQVggc3lzdGVtcy4KCjIwMDQtMDgtMjUgMTI6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgbWVtYmVycyB0byBhdm9pZCBuYW1lc3BhY2UgY29uZmxpY3RzCiAgICAgLSBub3RlZCBvbiB1c2VycyBieSBBa2loaXJvIElJSklNQQoKMjAwNC0wOC0yNSAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIG1pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYXBwbHkgcmV2aXNlZCBwYXRjaCBmb3IgYnVnIDg5NzAwMjogc25tcGQgY2Fubm90IGhhbmRsZSA2NCBiaXQgaW50ZXJmYWNlIGNvdW50ZXJzCiAgICAgKGhhZCBiZWVuIG1hcmtlZCBhcyBmaXhlZCBidXQgd2Fzbid0KQoKMjAwNC0wOC0yNSAwODozOCAgZHRzMTIKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIERvY3VtZW50IHRoZSBuZXcgbWliMmMgbm9kZSB0YWdzLgoKMjAwNC0wOC0yNSAwODozNSAgZHRzMTIKCiAgICogbWlicy86IERJU01BTi1FWFBSRVNTSU9OLU1JQi50eHQsIERJU01BTi1OU0xPT0tVUC1NSUIudHh0CiwgRElTTUFOLVBJTkctTUlCLnR4dCwgRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dAo6CgogICBBZGQgRGlzTWFuIFJlbW90ZSBPcGVyYXRpb25zIE1JQiBmaWxlcwoKMjAwNC0wOC0yNSAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi9nbnVjLmgsIGV4cHJlc3Npb24vaW42LmgKLCBleHByZXNzaW9uL2lwX3Zhci5oLCBleHByZXNzaW9uL2lwdjYuaCwKICAgICBleHByZXNzaW9uL3VkcF92YXIuaCwgbnNsb29rdXAvZ251Yy5oLCBuc2xvb2t1cC9pbjYuaAosIG5zbG9va3VwL2lwX3Zhci5oLCBuc2xvb2t1cC9pcHY2LmgsCiAgICAgbnNsb29rdXAvdWRwX3Zhci5oLCBwaW5nL2dudWMuaCwgcGluZy9pbjYuaCwKICAgICBwaW5nL2lwX3Zhci5oLCBwaW5nL2lwdjYuaCwgcGluZy91ZHBfdmFyLmgsCiAgICAgdHJhY2Vyb3V0ZS9nbnVjLmgsIHRyYWNlcm91dGUvaW42LmgsCiAgICAgdHJhY2Vyb3V0ZS9pcF92YXIuaCwgdHJhY2Vyb3V0ZS9pcHY2LmgsCiAgICAgdHJhY2Vyb3V0ZS91ZHBfdmFyLmg6CgogICBMb2NhbGx5LXR3ZWFrZWQgdmVyc2lvbnMgb2Ygc3RhbmRhcmQgaGVhZGVyIGZpbGVzLgogICBUaGlzIGlzIG5vdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSB3YXkgdG8gcHJvY2VlZCwKICAgYnV0IGlzIG5lZWRlZCB0byBnZXQgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gd29ya2luZy4KCjIwMDQtMDgtMjUgMDc6MzEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBTdXBwb3J0IGhvbGVzIGluICJpdGVyYXRlX2FjY2VzcyIgdGFibGVzLgoKMjAwNC0wOC0yNSAwMToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jOgoKICAgRml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIFJtb24gY29kZS4gKFJlcG9ydGVkIGJ5IEZvbmcgVHN1aSkKCjIwMDQtMDgtMjQgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gcmVuYW1lIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5IG1lbWJlcnMgdG8gYXZvaWQgbmFtZXNwYWNlIGNvbmZsaWN0cwogICAgIC0gbm90ZWQgb24gdXNlcnMgYnkgQWtpaGlybyBJSUpJTUEKCjIwMDQtMDgtMjQgMDk6MjggIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAKOgoKICAgRml4IHRoZSBtaW5pbWFsIGNvbmZpZyB0ZXN0cyB0byB1c2UgdGhlIGNvcnJlY3Qgc2V0IG9mIE1JQiBtb2R1bGVzLgogICAoUmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMjQgMDk6MjQgIGR0czEyCgogICAqIHRlc3RpbmcvOiBSRUFETUUsIFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoOgoKICAgU3VwcG9ydCBhZGRpdGlvbmFsIHRyYXBkIGZsYWdzIChwYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCiAgIChBbmQgdXBkYXRlIHRoZSBSRUFETUUgdG8ga2VlcCBNaWtlIGhhcHB5ISkKCjIwMDQtMDgtMjQgMDk6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBMb2cgcmVjb25maWcvc2h1dGRvd24gbWVzc2FnZXMgbW9yZSByZWxpYWJseS4gIChQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTI0IDA5OjE2ICBkdHMxMgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIENpc2NvL0JVUFROSUMgY29weXJpZ2h0IG5vdGljZSwgdG8gY292ZXIgdGhlIG5ldyBEaXNNYW4gUmVtT3BzIGNvZGUuCgoyMDA0LTA4LTI0IDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc21hbi5oLCBkaXNtYW4vZXhwcmVzc2lvbi1taWIuaCwKICAgICBkaXNtYW4vbnNsb29rdXAtbWliLmgsIGRpc21hbi9waW5nLW1pYi5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlLW1pYi5oLCBkaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMKLCBkaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5oLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmgsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuaCwKICAgICBkaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgKLCBkaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywKICAgICBkaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuaCwKICAgICBkaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXNNYW4gUmVtb3RlIE9wZXJhdGlvbiBNSUIgZ3JvdXBzLgogICBOb3RlIHRoYXQgdGhlc2UgYXJlIG5vdCB5ZXQgcmVhZHkgZm9yIHByb2R1Y3Rpb24gdXNlLgoKMjAwNC0wOC0yMyAwODowNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgbmV3IHRhcmdldCB0byBvbmx5IG1ha2Ugb2JqZWN0cyBmb3IgY3VycmVudCBkaXJlY3RvcnkgKG5vIHN1YmRpcnMpCgoyMDA0LTA4LTIzIDA3OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIE9wdGlvbiB0byBleGNsdWRlIHRoZSBmaW5hbCBHRVQgcmVxdWVzdCB3aGVuIHdhbGtpbmcgYSBzaW5nbGUgaW5zdGFuY2UuCgoyMDA0LTA4LTIzIDAyOjM5ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBOZXcgdGVtcGxhdGUgY29uZmlncyBmb3Igcm93LWJhc2VkICJpbnRlcm5hbC1kYXRhIiBpbXBsZW1lbnRhdGlvbnMuCgoyMDA0LTA4LTIzIDAyOjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIE5ldyB2YXJpYWJsZSB0b2tlbnMgdG8gaWRlbnRpZnkgImNyZWF0YWJsZSIgb3IgUm93U3RhdHVzIGNvbHVtbiBvYmplY3RzLgogICBFeHRlbmQgdGhlc2UgdHdvIHRva2VucywgcGx1cyAic2V0dGFibGUiIHRvIGFwcGx5IHRvIHRhYmxlcyBhcyB3ZWxsCiAgIChyZXBvcnRpbmcgb24gdGhlIGNvbnN0aXR1ZW50IGNvbHVtbiBvYmplY3RzKS4KCjIwMDQtMDgtMjMgMDE6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYzoKCiAgIEltcGxlbWVudCBjb250ZXh0IGVycm9yIGNvdW50ZXJzIGFzIHByb3BlciBzY2FsYXIgb2JqZWN0cwogICAocmF0aGVyIHRoYW4gc2ltcGx5IGluc3RhbmNlcykKCjIwMDQtMDgtMjMgMDE6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmM6CgogICBGdWxsZXIgaW1wbGVtZW50YXRpb24gb2Ygc25tcFNldFNlcmlhbE5vIG9iamVjdCwgaW5jbHVkaW5nIHBlcnNpc3RhbmNlIGFjcm9zcwogICBhZ2VudCByZXN0YXJ0LCByYW5kb20gaW5pdGlhbGlzYXRpb24gdmFsdWUgKGJvdGggcGVyIFRlc3RBbmRJbmNyIGRlc2NyaXB0aW9uKQogICBhbmQgcHJvcGVyIG9iamVjdCBpbnN0YW5jZSBiZWhhdmlvdXIuCgoyMDA0LTA4LTIzIDAxOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRG9uJ3QgaW52b2tlIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbnMgaWYgdGhlIG9yaWdpbmFsIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgKFNlZSBidWcgIzk5MDA3MCkKCjIwMDQtMDgtMjAgMDg6NTEgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgcHJvamVjdCBudW1iZXIgdG8gNS4yLmRldgoKMjAwNC0wOC0yMCAwODo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVtb3ZlIHN0YXRpYyBhdHRyaWJ1dGUgZm9yIGZ1bmN0aW9uCiAgIC0gZml4IHBhcmVuIGdyb3VwaW5nCgoyMDA0LTA4LTIwIDA4OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSBkbyBub3QgaW5jbHVkZSBkYXRhIGFjY2VzcyBoZWFkZXJzLCBhcyB0aGV5IGFyZSBub3QgaW5zdGFsbGVkCgoyMDA0LTA4LTIwIDA4OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgaW5jbHVkZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaGVhZGVyCgoyMDA0LTA4LTIwIDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVGlkeSB1cCBoYW5kbGluZyBvZiBwaWRfZmlsZS4gKFBhdGNoZXMgZnJvbSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOSAwMjoyMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEltcHJvdmVkIGhhbmRsaW5nIG9mIHNubXB0cmFwZCBQSUQgZmlsZS4KICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNC0wOC0xOSAwMjoxNyAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBIYW5kbGUgYWdlbnRfbW9kdWxlIGhlYWRlciBmaWxlcyBpbiB0aGUgc2FtZSB3YXkgYXMgbWliX21vZHVsZSBvbmVzLgogICAoUmVtb3ZpbmcgdGhlbSB3aGVuIGNsZWFuaW5nIHVwLCBhbmQgaW5zdGFsbGluZyB0aGUgY29uZmlnIGhlYWRlcikKCjIwMDQtMDgtMTkgMDI6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIEFkZCBhZ2VudF9tb2R1bGUgY29uZmlndXJhdGlvbiB0b2tlbnMgdG8gdGhlIGxpc3Qgb2YKICAgc3RhbmRhcmQgYWdlbnQgaW5jbHVkZXMuICAoUmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTkgMDI6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Db25mLmg6CgogICBDb3JyZWN0IGFnZW50X21vZHVsZSBjb25maWcgc2V0dGluZy4KICAgKFNwb3R0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTggMTU6MTIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBbGxvdyBUT0tFTlJJTkctTUlCIGFuZCBEUzEtTUlCIHRvIG92ZXJyaWRlIG9sZGVyIFJGQyBtaWJzCgoyMDA0LTA4LTE4IDAyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBVc2UgdGhlIGNvbnRleHQgbmFtZSBmcm9tIHRoZSByZWdpc3RyYXRpb24gY2FsbCwKICAgcmF0aGVyIHRoYW4gdGhlIGNvbnRleHQgZnJvbSB0aGUgaW5jb21pbmcgcmVxdWVzdC4KICAgVGhlc2Ugb3VnaHQgdG8gYmUgdGhlIHNhbWUsIGJ1dCBhcmUgc3VidGx5IGRpZmZlcmVudCB3aGVuCiAgIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkLiAgKFBhdGNoIHN1cHBsaWVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE3IDA4OjQwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE1vcmUgcG9ydGFibGUgYXBwcm9hY2ggdG8gYXZvaWRpbmcgdW5uZWNlc3NhcnkgaGVhZGVyIGluc3RhbGxzLgogICAoVGhhbmtzIHRvIGJvdGggQmVuIFJvZ2VycyBhbmQgU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTA4LTE3IDAyOjA4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEF0dGVtcHQgdG8gc3VwcG9ydCBtdWx0aXBsZSAne3h4eHh9LmNvbmYnIGFwcGxpY2F0aW9uIHR5cGVzLgoKMjAwNC0wOC0xNyAwMjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIEluY2x1ZGUgdGhlIG5ldyAnTkVULVNOTVAtRVhURU5ELU1JQicgbW9kdWxlIGluIGEgZGVmYXVsdCBjb25maWcuCgoyMDA0LTA4LTE3IDAyOjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQWxsb3cgInRyYXBoYW5kbGUiIGRpcmVjdGl2ZXMgdG8gbWF0Y2ggYSBzdWJ0cmVlIHJhdGhlcgogICB0aGFuIGp1c3QgYSBzaW5nbGUgdHJhcC4gIChTdWdnZXN0ZWQgYnkgQm9za28gTWlsZWtpYykKCjIwMDQtMDgtMTcgMDE6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBEb24ndCBib3RoZXIgbG9va2luZyB1cCB0aGUgaG9zdG5hbWUgdW5sZXNzIGl0J2xsIGFjdHVhbGx5CiAgIGJlIG5lZWRlZCBmb3IgZ2VuZXJhdGluZyB0aGUgZW5naW5lSUQuICBTdWdnZXN0ZWQgYnkgSm9lIEMuCgoyMDA0LTA4LTE3IDAxOjUxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBFbnN1cmUgdGhhdCBhIG5vbi1tYXRjaGluZyBjb20yc2VjIGxvb2t1cCB3aWxsIHJldHVybiBhIE5VTEwgJ3NlY05hbWUnCiAgIChCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gYnkgT2xlZyBJdmFub3YpCgoyMDA0LTA4LTE3IDAxOjQxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCBhcHBseSAnaG9zdHMue2FsbG93LGRlbnl9JyBjaGVja2luZyB0byBjYWxsYmFjayBjb25uZWN0aW9ucwogICAod2hpY2ggdHlwaWNhbGx5IHdvbid0IG1hdGNoIGFueXRoaW5nIG90aGVyIHRoYW4gIkFMTCIpCgoyMDA0LTA4LTE3IDAxOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgcGFyYW1ldGVycy4gIChTdWdnZXN0ZWQgYnkgSm9obiBMYXNoKQoKMjAwNC0wOC0xNyAwMTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgQVBJIGZvciBhZGRpbmcgYSAobmV3bHkgY3JlYXRlZCkgcm93IHRvIHRoZSB2YXJiaW5kIHJlcXVlc3QgbGlzdCwKICAgc28gaXQncyBhdmFpbGFibGUgZHVyaW5nIGxhdGVyIFNFVCBwYXNzZXMuICAgVGhlcmUncyBwcm9iYWJseQogICBhIGJldHRlciB3YXkgb2YgY29tcGFyaW5nIGluZGV4IHZhbHVlcywgYnV0IHRoaXMgc2VlbXMgdG8gd29yay4KCjIwMDQtMDgtMTcgMDE6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcHYzbWlicy5oLCBzbm1wdjMvdXNtQ29uZi5jLAogICAgIHNubXB2My91c21Db25mLmgsIHNubXB2My91c21Vc2VyLmM6CgogICBTcGxpdCBvZmYgVVNNIGNvbmZpZyBoYW5kbGluZyBpbnRvIGEgc2VwYXJhdGUgbW9kdWxlCiAgIChhbmQgbW92ZSB0aGlzIGludG8gdGhlIGFnZW50IGxpYnJhcnkpCgoyMDA0LTA4LTE3IDAxOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9hZ2VudHhfY29uZmlnLmgsIGFnZW50eC9jbGllbnQuaAosIGFnZW50eC9tYXN0ZXIuaCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICAgIGFnZW50eC9wcm90b2NvbC5oLCBhZ2VudHgvc3ViYWdlbnQuaCwKICAgICBtaWJJSS92YWNtX2NvbmYuaDoKCiAgIE1vdmUgVkFDTSBjb25maWcgaGFuZGxpbmcgYW5kIEFnZW50WCBzdXBwb3J0IGludG8gdGhlIGFnZW50IGxpYnJhcnkuCgoyMDA0LTA4LTE3IDAxOjIzICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIG1pYl9tb2R1bGVzLmM6CgogICBQaWNrIHVwIGFnZW50X21vZHVsZSBpbml0aWFsaXNhdGlvbiBhbmQgZG90X2NvbmYgcm91dGluZXMuCiAgIChOb3QgY29udmluY2VkIHRoaXMgaXMgdGhlIGJlc3QgcGxhY2UgZm9yIHRoZSBhZ2VudF9tb2R1bGUKICAgIGluaXQgcm91dGluZXMgdG8gYmUgY2FsbGVkLCBidXQgaXQnbGwgZG8gZm9yIG5vdy4pCgoyMDA0LTA4LTE3IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFN3aXRjaCBsaW5raW5nIG9yZGVyIG9mIGFnZW50IGFuZCBtaWIgbGlicmFyaWVzIChzaW5jZSBsaWJuZXRzbm1wbWlicwogICBtYXkgd2VsbCB1c2Ugcm91dGluZXMgZGVmaW5lZCBpbiBsaWJuZXRzbm1wYWdlbnQsIGJ1dCBub3QgdmljZSB2ZXJzYSkKCjIwMDQtMDgtMTcgMDE6MTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRW5zdXJlIGFnZW50IHZzIG1pYiBtb2R1bGVzIGFyZSBwaWNrZWQgdXAgY29ycmVjdGx5IChlc3AuIGZvciBtb2R1bGVzCiAgIHdpdGhvdXQgYSBoZWFkZXIgZmlsZSwgd2hpY2ggc2hvdWxkIGRlZmF1bHQgdG8gJ21pYl9tb2R1bGVzJykKCjIwMDQtMDgtMTcgMDE6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU2xpZ2h0bHkgcHJlZmVyYWJsZSBjb25maWcgdG9rZW4gZm9yIHRoZSBuZXcgZXh0ZW5zaWJsZSBzY3JpcHRpbmcgbWliLAogICBkb2N1bWVudCB0aGlzIGZlYXR1cmUsIGFuZCBhZGQgYSB3YXJuaW5nIHJlZ2FyZGluZyB0aGUgb2xkIChpbnZhbGlkKQogICByZWxvY2F0YWJsZSBvdXRwdXQgZm9ybWF0LgoKMjAwNC0wOC0xNiAyMDoyNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZG9uJ3QgZHJvcCByZS1hdHRhY2hlZCBoZWFkIChwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuKQogICAtIGZpeCB0eXBvCgoyMDA0LTA4LTE2IDE0OjU3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWZkLmgKCjIwMDQtMDgtMTYgMTQ6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IHZlcnNpb24gZnJvbSBhdXRvY29uZgoKMjAwNC0wOC0xNiAxNDoyMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICAtIGFkZCB1bmRlZiBmb3IgU1RSVUNUX1RNX0hBU19UTV9HTVRPRkZGCiAgIC0gZGVmaW5lIGNvbmZpZ19iZWxvbmdzX2luIHRvIG5vdGhpbmcKCjIwMDQtMDgtMTYgMTI6MTMgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6CgogICBNb3JlIGF1dG9tYXRpYyBpbnN0YWxsYXRpb24gb2YgUkZDIGJhc2VkIG1pYnMKCjIwMDQtMDgtMTMgMDY6NTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBjb25maWctZ2VuZXJhdGVkICdhZ2VudF9tb2R1bGUnIGZpbGVzCgoyMDA0LTA4LTEzIDA2OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGNvbmZpZy1nZW5lcmF0ZWQgJ2FnZW50X21vZHVsZScgZmlsZXMKCjIwMDQtMDgtMTMgMDY6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGxvY2FsL01ha2VmaWxlLmluLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9hdXRoZW50aWNhdGlvbiwKICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvbG9nZ2luZywKICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvcnVudGltZSwKICAgICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICBBZGQgc25tcHRyYXBkIGNvbmZpZyBzdXBwb3J0IGZvciBsb2dnaW5nLCBhdXRoZW50aWNhdGlvbiBhbmQgcnVudGltZSBvcHRpb25zLgogICAoUGF0Y2ggIzk4MTMxOSBmcm9tIEFsZXggQnVyZ2VyKQoKMjAwNC0wOC0xMyAwNjozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBTdHJpcCBwb3J0LW51bWJlciBzcGVjaWZpY2F0aW9uIGZyb20gInBlZXJuYW1lIiB3aGVuIGNvbnN0cnVjdGluZyBLU00gY3JlZGVudGlhbHMuCiAgIChCYXNlZCBvbiBwYXRjaCAjOTkyNDQwKQoKMjAwNC0wOC0xMyAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgSGFuZGxlICJnZW5lcmFsIiBBZ2VudFggZXJyb3JzLCBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgdmFyYmluZC4KICAgKEJhc2VkIG9uIHBhdGNoICM5ODM5NzIgZnJvbSBsb3JlbnppbSkKCjIwMDQtMDgtMTMgMDI6NTQgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgJ2luc3RhbGxzdWJkaXJoZWFkZXJzJyBydWxlLgogICAoUGF0Y2ggIzk5MTY2NCBmcm9tIEJlbiBSb2dlcnMpCgoyMDA0LTA4LTEzIDAyOjUzICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgICJMYXp5IiBpbnN0YWxsYXRpb24gb2YgaGVhZGVyIGZpbGVzLiAgT25seSBpbnN0YWxsIGEgaGVhZGVyIGZpbGUgaWYKICAgaXQncyBuZXdlciB0aGFuIHRoZSBleGlzdGluZyBvbmUuICAoUGF0Y2ggIzk5MTY2NCBmcm9tIEJlbiBSb2dlcnMpCgoyMDA0LTA4LTEzIDAyOjUwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICBVc2UgYW4gZXhwbGljaXQgY2hlY2sgZm9yICd0bV9nbXRvZmYnLCByYXRoZXIgdGhhbiBwZXItYXJjaGl0ZWN0dXJlICNkZWZpbmVzCiAgIChQYXRjaCAjMTAwNjI5OCBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wOC0xMyAwMjoxNyAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIGlhbmFsaXN0LCByZmNsaXN0OgoKICAgVXBkYXRlZCBSRkMgTUlCIGluZm9ybWF0aW9uCgoyMDA0LTA4LTEyIDA3OjQ5ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYW5kbGUgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiAiYXBwbGljYXRpb24tdHlwZSIgY29uZmlnIGZpbGVzLgogICAoZS5nLiAiYWdlbnR4OnNubXBkIiB0byBzZWFyY2ggKmJvdGgqICdzbm1wZC5jb25mJyAqYW5kKiAnYWdlbnR4LmNvbmYnKQogICBTZWUgY29kZXJzLXRocmVhZCAiQWdlbnRYIGNvbmZpZ3VyYXRpb24iIC0gSnVsICcwNAoKMjAwNC0wOC0xMiAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIEFuIGV4YW1wbGUgb2YgY29uZmlndXJpbmcgY29kZSBpbnRvIHRoZSBhZ2VudCByYXRoZXIgdGhhbiB0aGUgbWliIGxpYnJhcnkuCgoyMDA0LTA4LTEyIDA1OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgY29uZmlndXJlLmluCiwgY29uZmlndXJlOgoKICAgU3VwcG9ydCBhIG1lY2hhbmlzbSBmb3IgaW5jbHVkaW5nIHBhcnRpY3VsYXIgY29kZSBtb2R1bGVzIHdpdGhpbiBlaXRoZXIKICAgdGhlIG1pYiBsaWJyYXJ5IG9yIHRoZSBhZ2VudCBsaWJyYXJ5IChvciBwb3RlbnRpYWxseSBlbHNld2hlcmUgYXMgd2VsbCkuCiAgIChTZWUgY29kZXJzLXRocmVhZCAiTW92aW5nIEFnZW50WCBvdXQgb2YgdGhlIG1pYm1vZHVsZXMiIC0gSnVuZSAnMDQpCgoyMDA0LTA4LTEyIDA1OjEyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIGFuIG9mdC1vdmVybG9va2VkIGhlbHBlci4KCjIwMDQtMDgtMTIgMDU6MTEgIGR0czEyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZvbGxvd2luZyBOVUxMIHBvaW50ZXJzCiAgIChwbHVzIHNvbWUgcGV0dHkgZ3JhbW1hdGljYXN0aWdhdGlvbikKCjIwMDQtMDgtMTEgMTM6NTcgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBsb29rIGZvciAuaW4gZmlsZSBpbiBzcmNkaXIsIHdoaWNoIG1heSAhPSBjdXJyZW50IGRpcgoKMjAwNC0wOC0xMSAwNTo1NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBPbmx5IHN0b3JlIHRoZSB0YWJsZSBzdHJ1Y3R1cmUgb24gdGhlIGZpcnN0IHBhc3MgdGhyb3VnaC4KICAgU3Vic2VxdWVudCBwYXNzZXMgY2FuIHJldHJpZXZlIHRoaXMgc3RvcmVkIHZhbHVlIGFueXdheS4KCjIwMDQtMDgtMTEgMDQ6NTUgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZWxldGVkIG1hbiBwYWdlcyAodG9kbyAmIGRlcHJlY2F0ZWQpCgoyMDA0LTA4LTEwIDA4OjUzICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZyBhIGJpdAoKMjAwNC0wOC0wNCAwNTo1MSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2RlcHJlY2F0ZWQuMywKICAgICBtYW4vbmV0c25tcF90b2RvLjM6CgogICBEb24ndCBpbnN0YWxsICd0b2RvJyBvciAnZGVwcmVjYXRlZCcgbWFuIHBhZ2VzCiAgIChzaW5jZSB0aGVzZSBhcmUgY29uc3RydWN0ZWQgd2l0aCBzdXNwZWN0IGZvcm1hdHRpbmcpCgoyMDA0LTA4LTAzIDA4OjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBsZW5ndGggb2Ygc3RyaW5nIGZvciBBRVMgJ3N0cm5jbXAnIGNvbXBhcmlzb25zLgogICAoU2VlIGJ1ZyAjOTk2ODk0KQoKMjAwNC0wOC0wMiAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGZpeCBjb250ZXh0IHJlZ2lzdHJhdGlvbiBzbyBuZXcgY29udGV4dCB0cmVlcyBnZXQgcHJvcGVybHkgaW5pdGlhbGl6ZWQuCgoyMDA0LTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBtaWJzL21ha2VodG1sLnBsOgoKICAgRG9uJ3QgZG91YmxlLXByb2R1Y2UgSFRNTCBvdXRwdXQgZm9yIHJlcGVhdGVkIE1JQnMuCgoyMDA0LTA3LTMwIDE3OjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSBkb2N1bWVudCBBZ2VudFggY29udGV4dCBmaXhpbmcKICAgLSBkb2N1bWVudCB0aGUgdXNtVXNlciB0YWJsZSBwb3B1bGF0aW9uIHVuZGVyIHNubXB0cmFwZAoKMjAwNC0wNy0zMCAxNzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wVW5peERvbWFpbi5jOgoKICAgRG91YmxlIGNoZWNrIHRoYXQgdGhlIGNvbnRleHROYW1lIGFycmF5IGlzIHByb3Blcmx5IGluaXRpYWxpemUuCgoyMDA0LTA3LTMwIDE3OjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBBZGQgY29udGV4dE5hbWUgdG8gdGhlIHJlZ2lzdHJhdGlvbiBwYXJhbWF0ZXJzIHN0cnVjdHVyZS4KCjIwMDQtMDctMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZWdpc3RlciB0aGUgdXNtVXNlclRhYmxlIHVuZGVyIHRoZSAic25tcHRyYXBkIiBjb250ZXh0CgoyMDA0LTA3LTMwIDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gcmVnaXN0ZXIgYWxsIHRoZSBzbm1wdHJhcGQgbWliIG5vZGVzIHVuZGVyIHRoZSAic25tcHRyYXBkIiBjb250ZXh0CgoyMDA0LTA3LTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvOiB1c21Vc2VyLmMsIHVzbVVzZXIuaDoKCiAgIENyZWF0ZSBhIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIHRoZSB1c21Vc2VyIHRhYmxlIG90aGVyIGEgZGlmZmVyZW50IGNvbnRleHQuCgoyMDA0LTA3LTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsIG1hc3Rlci5jCiwgc3ViYWdlbnQuYzoKCiAgIC0gRml4IGFnZW50eCB0byB3b3JrIHByb3Blcmx5IHVuZGVyIG5vbi1kZWZhdWx0IGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxNzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgQWRkIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRvIHJlZ2lzdGVyIGluc3RhbmNlcyB1bmRlciBub24gZGVmYXVsdCBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTc6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGZpeCBhZGRfc3VidHJlZSBzbyBpdCByZWdpc3RlcnMgdG9wIGxldmVsIG51bGwgaGFuZGxlcnMgdG9vCiAgICAgLSBmaXhlcyBhIG51bWJlciBvZiBjb250ZXh0IHByb2JsZW1zCiAgIC0gcGFzcyBjb250ZXh0IGluZm9ybWF0aW9uIGRvd24gaW50byByZWdpc3RyYXRpb24gaW5mbyBzdHJ1Y3QgKHVzZWQgYnkgYWdlbnR4KQoKMjAwNC0wNy0zMCAxNzoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oOgoKICAgLSBhZGQgYSBudWxsIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiBmb3IgY29udGV4dHMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdC4KCjIwMDQtMDctMzAgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwo6CgogICBQYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYWdhcmthciB0byBmaXggVVNNIHByaXZhY3kga2V5IGxlbmd0aHMKCjIwMDQtMDctMzAgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgSSB3YXMgc2xlZXBpbmcgZWFybGllciB3aGVuIEkgZml4ZWQgY29kZSB0aGF0IHdhc24ndCBicm9rZW4uCgoyMDA0LTA3LTMwIDEzOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBjb21tdW5pdHkgc3RyaW5nIC0+IGNvbnRleHQgbWFwcGluZ3MKCjIwMDQtMDctMzAgMTM6MDQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBjb20yc2VjIHRva2VuIG9wdGlvbnMuCgoyMDA0LTA3LTMwIDEzOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNYWtlIHRoZSBjb20yc2VjKiB0b2tlbnMgYWNjZXB0IGEgLUNuIENPTlRFWFQgZmxhZyB0byBhbGxvdyB0aGUKICAgbWFwcGluZyBvZiBjb21tdW5pdHkgc3RyaW5ncyB0byBTTk1QdjMgY29udGV4dHMuCgoyMDA0LTA3LTMwIDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXNzIHRoZSBhY3R1YWwgcGR1IGJlaW5nIHByb2Nlc3NlZCBpbnRvIGNoZWNrX2FjY2VzcyBpbnN0ZWFkIG9mIHRoZSBjb3B5CgoyMDA0LTA3LTMwIDExOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeCBjb250ZXh0IGNoZWNraW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzIGZvciBub24gZGVmYXVsdCBjb250ZXh0cwoKMjAwNC0wNy0yOCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgY29uZmlndXJlX3JlcXVpcmUgLT4gY29uZmlnX3JlcXVpcmUKCjIwMDQtMDctMjggMDU6NDAgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE9wZW5TU0wgaXMgbmVlZGVkIGZvciBTSEEtYmFzZWQgYXV0aGVudGljYXRpb24sIHJhdGhlciB0aGFuIE1ENS4KICAgKEl0J3MgdXNlZCBmb3IgYm90aCBpZiBhdmFpbGFibGUsIGJ1dCBpdCdzIG9ubHkgKm5lZWRlZCogZm9yIFNIQSkKCjIwMDQtMDctMjggMDI6MTcgIGR0czEyCgogICAqIEZBUToKCiAgIERpc2N1c3MgUlBNLWRlcGVuZGVjeSBwcm9ibGVtcy4KCjIwMDQtMDctMjggMDE6MDQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFBlci1vYmplY3Qgc3dpdGNoIHN0YXRlbWVudCBpcyBtaXNzaW5nIHRoZSAiY2FzZSIga2V5d29yZC4KICAgKFJlcG9ydGVkIGJ5IFdpbGxpYW0gQnVja2xleSkKCjIwMDQtMDctMjIgMTc6NTUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZm9yIHdpbjMyIGFnZW50LCBpbnRlcnByZXQgaWZPcGVyU3RhdHVzIGNvcnJlY3RseSwKICAgYW5kIHNldCBpZkxhc3RDaGFuZ2UgdG8gemVyby4gVGhlc2UgY2hhbmdlcyBmaXhlcyBidWcgIzkwNzcxNi4KCjIwMDQtMDctMjIgMTM6MDYgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgdHlwZWRlZiBsb25nIGludDMyX3QgdG8gc3VjY2VlZCBidWlsZGluZyB3aXRoIE1TVkMrKy4KCjIwMDQtMDctMjIgMTA6NDUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcGF0Y2ggIzk4MjYyOCBhcHBsaWVkIHRvIGZpeCBsZWFrIG9uIGVycm9ycyBpbiBuZXRzbm1wX3VkcDZfdHJhbnNwb3J0CgoyMDA0LTA3LTIyIDA4OjQ5ICBkdHMxMgoKICAgKiBGQVE6CgogICBFbXBoYXNpc2UgdGhlIG5lZWQgdG8gZXhwbGljaXRseSBjcmVhdGUgdXNlcnMuCgoyMDA0LTA3LTIwIDIzOjI2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIGZpeCBidWcgIzk5MjczNSBPU1ggMTAuMy40IG1ha2UgZmFpbHMgYnkgaW5jbHVkaW5nIGRhcndpbiBpbiAjaWYgZXhwcmVzc2lvbnMuCgoyMDA0LTA3LTIwIDIyOjI5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaDoKCiAgIGNyZWF0ZSBzeXN0ZW0gaGVhZGVyIGZvciAtRGRhcndpbjcuIHBhcnRpYWwgZml4IGZvciBidWcgOTkyNzM1LgoKMjAwNC0wNy0yMCAxOTo0MCAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYnVnIDk5NDE5NCBieSBjaGVja2luZyBmb3IgbnVsbCBiZWZvcmUgZGUtcmVmZXJlbmNpbmcgcG9pbnRlciBhcmd1bWVudC4KCjIwMDQtMDctMjAgMTM6MzEgIHNsaWYKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBwYXRjaCA5ODgyODYgZnJvbSBCcnVjZSBTaGF3IC0gTG90cyBvZiB1cGRhdGVzIG9uIFJFQURNRS5zb2xhcmlzCgoyMDA0LTA3LTIwIDEzOjIyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHVzZSBraWxsLmV4ZSBvbmx5IGlmZiBPU1RZUEUgPSBtc3lzIChwYXRjaCAjOTg3NjI2IGFwcGxpZWQpCgoyMDA0LTA3LTE5IDA5OjI4ICBkdHMxMgoKICAgKiBtYW4vc25tcHZhY20uMS5kZWY6CgogICBGaXggZXJyb25lb3VzIHRyb2ZmIG1hY3JvLCBhcyByZXBvcnRlZCBieSBFcmljIFJheW1vbmQKCjIwMDQtMDctMTYgMjI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbWliSUlfY29tbW9uLmgsIHRjcFRhYmxlLmM6CgogICBBdHRlbXB0ZWQgZml4ZXMgZm9yIGRhcndpbgoKMjAwNC0wNy0xNiAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oOgoKICAgQWRkZWQgbWlzc2luZyBpcFN5c3RlbVN0YXRzVGFibGUuaCBmaWxlIHdoaWNoIFJvYmVydCBwcm9iYWJseSBmb3Jnb3QgdG8gY2hlY2sgaW4uICBJJ20gZ3Vlc3NpbmcgYXQgdGhlICBwcm9wZXJjb250ZW50cywgYnV0IGl0IHNob3VsZCBiZSByaWdodAoKMjAwNC0wNy0xNiAwOTowOCAgZHRzMTIKCiAgICogRkFROgoKICAgQSBmZXcgYWRkaXRpb25hbCBlbnRyaWVzIChlc3AuIHJlbGF0aW5nIHRvIGdlbmVyYXRpbmcgdHJhcHMpCiAgIHBsdXMgc29tZSBtaW5vciByZXN0cnVjdHVyaW5nIGFuZCB3b3Jkc21pdGhpbmcuCgoyMDA0LTA3LTEwIDIxOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICAtIHJlbW92ZSBkZWJ1ZyBtc2cKICAgLSBsb2cgd2FybmluZyBpZiBoZWFkZXIgbGVuZ3RoIGlzbid0IHdoYXQgd2UgZXhwZWN0CgoyMDA0LTA3LTEwIDIxOjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgLSBmaXggaW52ZXJ0ZWQgY29uZGl0aW9uYWwgdGVzdAogICAtIGRvbid0IGFzc3VtZSA2NCBpZiB3cmFwY2hlY2sgc2tpcHBlZAoKMjAwNC0wNy0xMCAxOTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCBjb21tZW50IHRvIGRvY3VtZW50IHN0cnVjdHVyZSB2YXIKCjIwMDQtMDctMTAgMTk6NTEgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gYnVtcCB1cCB0aW1lb3V0IHRvIDMwIHNlY29uZHMsIGluc3RlYWQgb2YgMwoKMjAwNC0wNy0xMCAxOTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHJlbW92ZSByZW1pbmRlciBjb21tZW50CiAgIC0gZml4IHR5cG8sIGluZGVudGVudGF0aW9uCgoyMDA0LTA3LTEwIDE5OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgdXNlIHVpbnRtYXhfdCB2YXJzIGZvciBwYXJzaW5nIGRhdGEKCjIwMDQtMDctMTAgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgbWFrZSBsb2NhbCBmdW5jdGlvbiBtb3JlIGdlbmVyaWMgYW5kIG1vdmUgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlCgoyMDA0LTA3LTEwIDEzOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGluZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwgaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG1vdmUgY29uZmlnIHJlcXVpcmVzIHVwIGEgbGV2ZWwKCjIwMDQtMDctMTAgMTM6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgKOgoKICAgYWRkIGlwc3RhdHMvc3lzdGVtc3RhdHMgaGVhZGVycwoKMjAwNC0wNy0xMCAxMzowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2ludDY0LmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlCgoyMDA0LTA3LTEwIDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBhZGQgaXBTeXN0ZW1TdGF0c1RhYmxlCgoyMDA0LTA3LTEwIDExOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLUZJUlNULnR4dAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLWlwU3lzdGVtU3RhdHNUYWJsZS50eHQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBpbXBsZW1lbnQgaXBTeXN0ZW1TdGF0c1RhYmxlCgoyMDA0LTA3LTA5IDIyOjU4ICBoYXJkYWtlcgoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKOgoKICAgLSByZW1vdmUgbXkgcXVpY2sgLy8gY29tbWVudHMKICAgLSByZW1vdmUgYSBmZXcgWFhYIGNvbW1lbnRzIHRoYXQgd2VyZSBmZWVkYmFjayBmb3IgUm9iZXJ0IChub3cgZW1haWxlZCkuCgoyMDA0LTA3LTA5IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gUHVsbCB0aGUgREggcGFyYW1ldGVycyBmcm9tIHRoZSBhZ2VudCB0byB1c2UgaXRzIGN1cnJlbnRseSBjb25maWd1cmVkIHBhcmFtcy4KICAgLSBwcm90ZWN0IGFnYWluc3QgIW9wZW5zc2wgdXNlcnMKCjIwMDQtMDctMDkgMTU6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUHVsbCB0aGUgREggcGFyYW1ldGVycyBmcm9tIHRoZSBhZ2VudCB0byB1c2UgaXRzIGN1cnJlbnRseSBjb25maWd1cmVkIHBhcmFtcy4KCjIwMDQtMDctMDkgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvLmN2c2lnbm9yZSwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmMsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKOgoKICAgQWRkZWQgdGhlIHVzbURIUGFyYW1ldGVycyBvYmplY3QgZm9yIG1hbmFnZW1lbnQgb2YgdGhlIERIIHBhcmFtZXRlcnMKCjIwMDQtMDctMDkgMTE6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2UgdGhlIHBlcnNpc3RlbnQgZmlsZSB3YXJuaW5nIGEgYml0LCB1bSwgbW9yZSBzdHJvbmcKCjIwMDQtMDctMDkgMDk6NTggIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS9kZWZhdWx0LXRhYmxlLXVzbURIVXNlcktleVRhYmxlLm0yZAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZG94eWdlbi5jb25mCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICBJbXBsZW1lbnRlZCB0aGUgU05NUC1VU00tREgtT0JKRUNUUy1NSUIgdXNtREhVc2VyS2V5VGFibGUgdGFibGUuCgoyMDA0LTA3LTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUKOgoKICAgaWdub3JlIGZpbGUKCjIwMDQtMDctMDkgMDk6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIFN1cHBvcnQgYSBkaWZmaWUtaGVsbWFuIGJhc2VkICJjaGFuZ2VrZXkiIGNvbW1hbmQuCgoyMDA0LTA3LTA5IDA5OjI2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOgoKICAgQWRkIGRpZmZpZS1oZWxtYW4gdm9pZCAqIGNvbnRhaW5lciBwb2ludGVycy4KCjIwMDQtMDctMDkgMDk6MjQgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsIE1ha2VmaWxlLmluOgoKICAgcmZjMjc4NjogZGggdXNtIG1pYgoKMjAwNC0wNy0wOSAwOToyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFRlc3QgZm9yIG9wZW5zc2wvZGguaAoKMjAwNC0wNy0wOCAxNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICAtIExpbnV4OiB1c2Ugbm9uIDAgc29ja2V0IHByb3RvY29sIHdoZW4gY3JlYXRpbmcgc29ja2V0IChvciBjYWxsIGZhaWxzKQogICAtIGRvbid0IHJldHVybiBzdWNjZXNzIGlmIHNvY2tldCBjYWxsIGZhaWxzCiAgIC0gY2xvc2Ugc29ja2V0IGJlZm9yZSByZXR1cm5pbmcKICAgLSBmaXggdHlwbyBpbiBjb21tZW50CgoyMDA0LTA3LTA4IDE3OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIG1vdmUgd3JpdGVfbWV0aG9kIGFzc2lnbm1lbnQgYmVmb3JlIGNoZWNrIGZvciBleGlzdGluZyBub2RlLCBzbyByb3cgY3JlYXRpb24KICAgICBjYW4gYmUgc3VwcG9ydGVkCgoyMDA0LTA3LTA4IDE3OjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHVwZGF0ZSB0ZXN0IGZvciBjb3JyZWN0IG5vZGUgZGVjbCB0eXBlCgoyMDA0LTA3LTA4IDE3OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICBnZW5lcmF0ZSBoaWdoICYgbG93IGFzc2lnbm1lbnRzIGZvciBjb3VudGVyNjQgbm9kZXMKCjIwMDQtMDctMDggMTU6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNsb3NlIGZpbGVzIGJlZm9yZSBleGl0LCB0byBmbHVzaCBwZW5kaW5nIG91dHB1dAoKMjAwNC0wNy0wOCAwOTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICAtIGFzc2lnbiBkc3QgYWRkciB0byBuZXcgY2FjaGUgZW50cnksIHNvIHdlIGNhbiBmaW5kIGl0IGluIG5leHQgcGFzcwoKMjAwNC0wNy0wOCAwODozNyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYmFjayBvdXIgcHJldmlvdXMgdHJhcCBiaW5kaW5nIGNoYW5nZQogICAtIHNldCBuZXcgc2Vzc2lvbi5sb2NhbG5hbWUgdG8gbG9jYWxob3N0IGZvciB2MS92MmMgdHJhcHMgKGJ1dCBub3QgaW5mb3JtcykKCjIwMDQtMDctMDggMDg6MzYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIC0gYWxsb3cgcGVyIHNlc3Npb24gYmluZGluZyB0byBzcGVjaWZpYyBsb2NhbCBhZGRyZXNzIGZvciB1ZHAgdHJhbnNwb3J0cwoKMjAwNC0wNy0wOCAwNzoxOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYmluZCB2MSB0cmFwIHNlc3Npb25zIGNsaWVudCBhZGRyZXNzIHRvIGxvY2FsaG9zdAoKMjAwNC0wNy0wOCAwNjo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gY2xvc2UgZmlsZSB3aGVuIGRvbmUgd2l0aCBpdAoKMjAwNC0wNy0wNyAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gc3dpdGNoIHRvIHVuaWZpZWQgZGlmZgoKMjAwNC0wNy0wNyAxNjo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVtb3ZlIHNvbWUgZHVwbGljYXRlZCBjb2RlICh1c2UgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIHZlcnNpb25zKQogICAtIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA3LTA3IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBQcm9wZXJseSBxdW90ZSBtaWIyYyB2YXJpYWJsZSBpbiBhIEBpZkAgY2xhdXNlLgoKMjAwNC0wNy0wNyAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBjaGFuZ2Ugcm93IHN0YXR1cyBvYmplY3QgbmFtZSB0byBtYXRjaCBtaWIgKHdoaWNoIGRvZXNuJ3QgZW5kIGluIFJvd1N0YXR1cykKCjIwMDQtMDctMDcgMTY6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA3LTA3IDEzOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFncmVlIG9uIHZhcmlhYmxlIG5hbWUKCjIwMDQtMDctMDcgMTM6NDEgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHJlZ2lzdGVyIHRhYmxlIGFzIENBTl9ST05MWQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuYywgaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gaW1wbGVtZW50IHJvdyBzdGF0dXMgKGhhcmRjb2RlZCBhcyBhY3RpdmUpCgoyMDA0LTA3LTA3IDEzOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIHJlcGxhY2UgdV9pbnROX3Qgd2l0aCBtb3JlIHBvcnRhYmxlIHVpbnROX3QKCjIwMDQtMDctMDcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmg6CgogICAtIGluY2x1ZGUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGhlYWRlciBmb3Igc3RydWN0L2VudW1zCgoyMDA0LTA3LTA3IDEwOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgLSBpbml0aWFsaXNlIGNvbnRhaW5lciB2aWEgZGF0YSBhY2Nlc3MgbGlicmFyeQoKMjAwNC0wNy0wNyAxMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gdXNlIGVudW1zIGZyb20gbWliIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcwoKMjAwNC0wNy0wNyAxMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIGFkZCBtaXNzaW5nIFRDIHZhbHVlCgoyMDA0LTA3LTA3IDEwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSB1cGRhdGUgaXB2NiBpbXBsZW1lbnRhdGlvbiAodGFrZSBhIHN0YWIgYXQgc3RhdHVzLCB0eXBlLCBvcmlnaW4pCgoyMDA0LTA3LTA3IDA3OjEzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0d2VhayBjb21tZW50IGNoZWNrIHBhdHRlcm4gdG8gZXhjbHVkZSBsb2dzIG9mIG1mZCBtYXRjaGVzCgoyMDA0LTA3LTA3IDA3OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIC0gYWRkIHVuc29ydGVkIHNpbmdseSBsaW5rZWQgbGlzdCAoZmlmbyBvciBsaWZvKQoKMjAwNC0wNy0wNyAwNToyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBRdW90ZSAicltvd11jb21tdW5pdHkiIHN0cmluZyBiZWZvcmUgcGFzc2luZyB0byBjb20yc2VjLXN0eWxlIHBhcnNlciwKICAgdG8gcmV0YWluIGFueSBpbnRlcm5hbCB3aGl0ZXNwYWNlLgoKMjAwNC0wNy0wNyAwNToyMSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSBjb3B5X253b3JkIHJhdGhlciB0aGFuIHN0cnRvayBmb3IgcGFyc2luZyBjb20yc2VjIGVudHJpZXMuCiAgIChUbyBoYW5kbGUgcXVvdGVkIHN0cmluZ3MgcHJvcGVybHkpCgoyMDA0LTA3LTA3IDAyOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIENvbnZlcnQgdG8gdXNlIHRoZSBub24tcmVjdXJzaXZlICdBVVRPX05FWFQnIGFwcHJvYWNoCiAgIGZvciBhbGwgYmFyIEdFVE5FWFQvR0VUQlVMSyByZXF1ZXN0cy4KCjIwMDQtMDctMDcgMDI6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBTcGFyc2UgdGFibGVzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgdGFibGVyIGhlbHBlciwKICAgc28gZG9uJ3QgbmVlZCB0byBiZSBjb25zaWRlcmVkIGhlcmUuCgoyMDA0LTA3LTA3IDAyOjExICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBEb24ndCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgZmluYWwgaGFuZGxlciByZWdpc3RyYXRpb24gZGlkbid0CiAgIGluY2x1ZGUgYW4gZXhwbGljaXQgaGFuZGxlciByb3V0aW5lLiAgVGhpcyBpcyBwZXJmZWN0bHkgcmVhc29uYWJsZQogICBpZiB0aGUgTUlCIG9iamVjdCBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgdGhlIHByZWNlZGluZyBoZWxwZXJzLgoKMjAwNC0wNy0wNiAyMToxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gaW1wbGVtZW50L2VuYWJsZSBpcEFkZHJlc3NUeXBlLCBpcEFkZHJlc3NDcmVhdGVkLCBpcEFkZHJlc3NMYXN0Q2hhbmdlZAogICAgIGlwQWRkcmVzc1Jvd1N0YXR1cyAoaGFyZGNvZGVkIGFjdGl2ZSksIGlwQWRkcmVzc1N0b3JhZ2VUeXBlIChoYXJkY29kZWQgdm9sYXRpbGUpCiAgIC0gcmV0dXJuIG5vdCB3cml0YWJsZS9ubyBjcmVhdGlvbiB1bnRpbCBzZXQgc3VwcG9ydCBpbXBsZW1lbnRlZAogICAtIGNvbmZpZ19yZXF1aXJlIGludGVyZmFjZSBkYXRhIGFjY2VzcwogICAtIHVwZGF0ZSBjYWNoZSBwb2xpY3kgdG8gYXV0byByZWxvYWQsIGZvciBsYXN0IGNoYW5nZWQvY3JlYXRlZAoKMjAwNC0wNy0wNiAyMToxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gbmV3IGZ1bmMgdG8gY29tcGFyZSBhbmQgdXBkYXRlIGlwYWRkcmVzcyBlbnRyaWVzCiAgIC0gbmV3IGZsYWcvY29kZSBmb3Igc2Vjb25kIGNvbnRhaW5lciBpbmRleCwgYnkgYWRkcmVzcwoKMjAwNC0wNy0wNiAyMTowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gcmV0dXJuIHJlc291cmNlIHVuYXZhaWxhYmxlIG9uIGVtcHR5IGludGVyZmFjZSBjb250YWluZXIKICAgLSBsb2cgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDctMDYgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaW5pdCByb3V0aW5lCiAgIC0gY3JlYXRlIGNvbnRhaW5lciBvbmNlIGR1cmluZyBpbml0LCB0byBkaXNjb3ZlciBpZkluZGV4ZXMKCjIwMDQtMDctMDYgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGluaXQgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGluIGluaXRfYWdlbnQKCjIwMDQtMDctMDYgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jcmVhc2UgZGVmYXVsdCBvaWQgcHJpbnRpbmcgc2l6ZS4KCjIwMDQtMDctMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBpbmNyZWFzZSBkZWZhdWx0IGJ1ZmZlciBzaXplIHBhc3NlZCB0byBnZXRfc3ltYm9sX3JlYWxsb2MgKHVzZWZ1bAogICBmb3IgbG9uZyBPSURzIHdoZW4gcmVhbGxvYyBpcyBhY3R1YWxseSBvZmYpLgoKMjAwNC0wNy0wNiAxNTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCBuZXcgbWZkIGhlYWRlcgoKMjAwNC0wNy0wNiAxNTo1NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICBjb21tb24gbWZkIGluY2x1ZGUKCjIwMDQtMDctMDYgMTU6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2UKCjIwMDQtMDctMDYgMTQ6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgT25seSBwcmludCBvbmUgb2YgdGhlIGVycm9yIG1lc3NhZ2VzIGlmIHRoZSByZXN1bHQgd2FzIGFuIGFycmF5LgoKMjAwNC0wNy0wNiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgLSBmaXggYSBmZXcgIndob29wcyIgKHJlbW92ZSBkZWJ1Z2dpbmc7IHByb3Blcmx5IHt9IG11bHRpIGlmIHN0YXRlbWVudHMpLgoKMjAwNC0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIGlmIGEgdGFibGUgaXMgY29tcG9zZWQgb2Ygb25seSBpbmRleGVzLCB3YWxrIGF0IGxlYXN0IG9uZSBzbyByZXN1bHRzCiAgICAgYXJlIHJldHVybmVkIGZvciBnZXR0YWJsZSgpLgoKMjAwNC0wNy0wNiAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgLSBwcm9wZXJseSByZXR1cm4gTlVMTHMgd2hlbiBhcHByb3ByaWF0ZS4KICAgLSBtYWtlIGdldF9pbmRleGVzIHJldHVybiBpbmRleGVzIGZyb20gYXVnbWVudGVkIHRhYmxlcy4KCjIwMDQtMDctMDYgMTQ6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCBpbnVjYXN0LCBvbnVjYXN0IGNvdW50ZXJzIHRvIHN0YXRzIHN0cnVjdAogICAtIG1vdmUgaW51Y2FzdCwgb251Y2FzdCBjYWxjdWxhdGlvbnMgaW50byBsaW51eCBpbnRlcmZhY2UgZGF0YV9hY2Nlc3MKCjIwMDQtMDctMDYgMTE6NTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gdXBkYXRlIG1ha2UgY2hlY2tzIHRvIGNoZWNrIGZvciBjcHAgI3dhcm5pbmdzCgoyMDA0LTA3LTA1IDIwOjAxICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZG9jdW1lbnQgLVQgb3B0aW9uIGluIHVzYWdlCgoyMDA0LTA3LTA1IDIwOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVtb3ZlIG5hc3R5IGtlcm5lbCB0cmljayBkZWZpbmVzCiAgIC0gYWRkIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IHR5cGVkZWYgZm9yIGNvbmZfaWZfbGlzdAoKMjAwNC0wNy0wNSAxOTo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gaW5jbHVkZSBuZXcgZGF0YSBhY2Nlc3MgaW5jbHVkZQoKMjAwNC0wNy0wNSAxOTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaAo6CgogICBuZXcgaGVhZGVyIGZvciBhbGwgZGF0YSBhY2Nlc3MgaW5jbHVkZXMKCjIwMDQtMDctMDUgMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwo6CgogICAtIHJlbW92ZSByb3cgc3RhdHVzIGZvciBub3c7IHdhcm5pbmcgdG8gcmVtaW5kIGJlZm9yZSA1LjIKCjIwMDQtMDctMDUgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBhZGQgY29uZmlnX3JlcXVpcmUgb2YgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlCgoyMDA0LTA3LTA1IDE0OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIGNvbmZfaWZfbGlzdCBkZWNsYXJhdGlvbiAoaXQncyBpbiBkYXRhX2FjY2Vzcy9pbnRlZmFjZXMuaCBub3cpCgoyMDA0LTA3LTA1IDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBhc3NlcnRzIHNob3VsZCBiZSBuZXRzbm1wX2Fzc2VydHMKCjIwMDQtMDctMDUgMTQ6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBkb24ndCB1c2UgbmFzdHkga2VybmVsIHRyaWNrIChhdm9pZCB1bmV4cGVjdGVkIG1hY3JvIHN1YnN0aXR1dGlvbnMpCgoyMDA0LTA3LTA1IDA5OjIxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA3LTA1IDA5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4yLmRldgoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAyICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA4OjMxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG1ha2UgdGVzdCByZXN1bHRzIHRvIHVwbG9hZAoKMjAwNC0wNy0wNSAwNTo1OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgcmVhZF9vbmx5LmMsCiAgICAgdGFibGVfZGF0YXNldC5jLCB3YXRjaGVyLmM6CgogICBVc2UgIkFVVE9fTkVYVCItc3R5bGUgaGFuZGxpbmcgZm9yIHRoZSB0cml2aWFsIGNhc2VzCiAgIChub3RpbmcgdGhpcyBiZWhhdmlvdXIgd2l0aGluIHRoZSBoYW5kbGVyIGl0c2VsZikuCgoyMDA0LTA3LTA1IDA1OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBVc2Ugc3dpdGNoIGZhbGx0aHJvdWdoIHRvIGhhbmRsZXIgR2V0QnVsay0+R2V0TmV4dC0+R2V0IGhhbmRsZXIgZmFsbGJhY2tzLgogICBUaGUgcHJldmlvdXMgY29kZSBkaWRuJ3QgY29wZSB3aXRoIGEgbWlzc2luZyBHRVQgaGVscGVyIGZvciBHZXRCdWxrL0dldE5leHQuCgoyMDA0LTA3LTA0IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIC0gY29udmVydCB0byB1c2UgQVVUT19ORVhUCgoyMDA0LTA3LTA0IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaDoKCiAgIC0gcmVzdG9yZSBjb25maWdfcmVxaXJlIG9mIG9sZCB0YWJsZSAoZW5hYmxlLW1mZC1yZXdyaXRlcyBjb2V4aXN0ZW5jZSkKCjIwMDQtMDctMDQgMTg6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBpZmRlZiBvdXQgdGFibGUgcmVnaXN0cmF0aW9uIGlmZiAhIGVuYWJsZS1tZmQtcmV3cml0ZXMKICAgLSBpbml0IGNhY2hlIGVhcmxpZXIgKGl0IGhhcHBlbnMgZXZlbiBpZiAhIGVuYWJsZS1tZmQtcmV3cml0ZXMsIGZvciBpZlhUYWJsZSkKCjIwMDQtMDctMDQgMTg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFkZCBmbGFnIHRvIGluZGljYXRlIGlmIGEgY2FjaGVkIGludGVyZmFjZSBpcyBub3QgbWlzc2luZwogICAtIHNldCBhZG1pbiAoYW5kIG1heWJlIG9wZXIpIHN0YXR1cyBkb3duIGZpcnN0IHRpbWUgaW50ZXJmYWNlIGdvZXMgbWlzc2luZwogICAtIHNldCBpZkxhc3RDaGFuZ2VkIHdoZW4gb3BlciBzdGF0dXMgY2hhbmdlcwogICAtIHNldCBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZSB3aGVuIG1pc3NpbmcgaW50ZXJmYWNlIHJldHVybnMKCjIwMDQtMDctMDQgMTg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICAtIHVzZSBpZk5hbWUgZm9yIGRlc2NyaXB0aW9uIGlmZiBOVUxMIGRlc2NyaXB0aW9uCiAgIC0gcmV0dXJuIGVtcHR5IHN0cmluZyBmb3IgcGh5c2FkZHIgaWZmIGFsbCAwcwoKMjAwNC0wNy0wNCAxODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gZG9jdW1lbnQgdGhhdCBTSU9DR0lGSFdBRERSIGlvY3RsIG1pZ2h0IG5vdCByZXR1cm4gZnVsbCA2IGJ5dGVzCiAgIC0gYWRkIG1lbXNldCB0byAwIGJlZm9yZSBTSU9DR0lGSFdBRERSIGlvY3RsLCBpZiBuZWVkZWQKICAgLSB1c2Ugc3RhbmRhcmQgSUZIV0FERFJMRU4gbWFjcm8gaW5zdGVhZCBvZiBoYXJkY29kZWQgNgogICAtIHRyaXZpYWwgb3B0aW1pemF0aW9uIChkb24ndCBhc3NpZ24gdmFyIHR3aWNlIGluIGNlcnRhaW4gY2FzZXMpCiAgIC0gY29tbWVudCBvdXQgYWxsIGlmVGFibGUgZnJvbSB2YXJpYWJsZSBzdHJ1Y3QgaWZmIC0tZW5hYmxlLW1mZC1yZXdyaXRlcwoKMjAwNC0wNy0wNCAxODoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIHR1bm5lbC90dW5uZWwuYzoKCiAgIC0gZG9jdW1lbnQgdGhhdCBTSU9DR0lGSFdBRERSIGlvY3RsIG1pZ2h0IG5vdCByZXR1cm4gZnVsbCA2IGJ5dGVzCiAgIC0gYWRkIG1lbXNldCB0byAwIGJlZm9yZSBTSU9DR0lGSFdBRERSIGlvY3RsLCBpZiBuZWVkZWQKICAgLSB1c2Ugc3RhbmRhcmQgSUZIV0FERFJMRU4gbWFjcm8gaW5zdGVhZCBvZiBsb2NhbCBvbmUKCjIwMDQtMDctMDQgMTg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBhc3N1bWUgb3BlciBzdGF0dXMgaXMgdXAKICAgLSByZW1vdmUgZ3JhdHVpdG91cyBsb2cgbWVzc2FnZQoKMjAwNC0wNy0wNCAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHJlbW92ZSBwcm90b3R5cGVzIGNhdXNpbmcgY29tcGlsZSBlcnIgKGZpbmQgZml4IGxhdGVyKQoKMjAwNC0wNy0wNCAxODowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDQgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmgsIGlmLW1pYi9pZlRhYmxlLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIC0gcmUtZW5hYmxlIG9sZCBpbXBsZW1lbnRhdGlvbnMgZm9yIC0tZW5hYmxlLW1mZC1yZXdyaXRlcwogICAgIChleGNlcHQgZm9yIGlmVGFibGU7IHR1cm5zIG91dCB0aGUgcmVzdCBhcmUgYWxsIG5ldyB0YWJsZXMpCiAgIC0gaWZkZWYgb3V0IGlmVGFibGUgcmVnaXN0cmF0aW9uIGZvciBlbmFibGUtbWZkLXJld3JpdGVzLCBsZWF2aW5nIHRoZSByZXN0CiAgICAgb2YgdGhlIGNvZGUgaW50YWN0IGZvciBvdGhlciB0YWJsZXMvb2JqZWN0IHRoYXQgbmVlZCBpdC4KCjIwMDQtMDctMDQgMTA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHNldCBpZiB0eXBlIHRvIHR1bm5lbCBpZiBub3Qgc2V0ICYgaWYgbmFtZSBzdGFydHMgd2l0aCAnc2l0JwoKMjAwNC0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIC0gc2V0IHBoeXNhZGRyIGxlbiB0byAwIGlmIHBoeXNhZGRyIG5vdCBrbm93bgogICAtIHNldCBvcGVyIHN0YXR1cyBmcm9tIGlmIGZsYWdzCgoyMDA0LTA3LTA0IDEwOjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gbGVhdmUgaWZfZGVzY3IgTlVMTCB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lIGl0LgoKMjAwNC0wNy0wNCAxMDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgTGludXg6IG9ubHkgbG9nIG1pc3NpbmcgL3Byb2MvbWVtaW5mbyBlcnJvcnMgb25jZSwgYXQgc3RhcnR1cAoKMjAwNC0wNy0wNCAxMDowMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGluaXQgdmFyIGJlZm9yZSB1c2luZyBpdAoKMjAwNC0wNy0wNCAxMDowMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBhZGQgbmV0c25tcCBhc3NlcnQgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgoKMjAwNC0wNy0wMyAxNzozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gZml4IGNhY2hlIGxvb2t1cCBvaWQgcGFyYW0KCjIwMDQtMDctMDMgMTc6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIHVwZGF0ZSBjb21tZW50czsgZG9jdW1lbnQgdGhhdCBtYWdpYyBpcyBmb3IgdXNlciBoYW5kbGVyCgoyMDA0LTA3LTAzIDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA3LTAzIDE3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNvbWUgd2FybmluZ3MgZm9yIHN0dWZmIHRvIGJlIGRvbmUgYmVmb3JlIDUuMgoKMjAwNC0wNy0wMyAxNTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBmaXggY29uZGl0aW9uYWwgdGVzdCBmb3Igc2tpcHBpbmcgbWFwcGluZwoKMjAwNC0wNy0wMyAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIG9ubHkgZGVjbGFyZSB2YXIgaWYgaXQgd2lsbCBiZSB1c2VkCgoyMDA0LTA3LTAzIDEzOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBhZGQgbm90ZSBpbiBzdHJ1Y3QgdG8gdXBkYXRlIF9jbG9uZV9oYW5kbGVyIHdoZW4gbm90IGl0ZW1zIGFkZGVkCgoyMDA0LTA3LTAzIDEzOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBkb24ndCB1c2UgJzonIGluIGZpbGUgbmFtZQogICAtIGFkZCAtLXNob3ctYy1mdW5jdGlvbiB0byBkaWZmIHBhcmFtcwoKMjAwNC0wNy0wMyAxMzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggdXBsb2FkIGZvciBuc2ItcGFja2FnZSBhYm9ydCBjYXNlCgoyMDA0LTA3LTAzIDEzOjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSB2ZXJib3NlIGluZm8gb24gdXBsb2FkCgoyMDA0LTA3LTAzIDEwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICByZXR1cm4gZXJyb3IgZnJvbSB1c21fY2hlY2tfc2VjTGV2ZWwgaWYgdXNlclN0YXR1cyBpcyBub3QgYWN0aXZlCgoyMDA0LTA3LTAzIDEwOjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIC1uZXcgbmV0c25tcF9oZXhfdG9fYmluYXJ5IChhbGxvd3Mgc3BlY2lmeWluZyBkZWxpbWl0ZXJzIGZvciBoZXggc3RyaW5nKQogICAtYWRkIGRveHlnZW4gZG9jczsgbW92ZSBzb21lIGNvbW1lbnRzIHRvIGZ1bmN0aW9uIGRvY3MKCjIwMDQtMDctMDMgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgdXBjYXNlIGNvbnN0YW50cwoKMjAwNC0wNy0wMyAxMDoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGluY2x1ZGUgZGVsZXRlZCBoZWFkZXIKCjIwMDQtMDctMDMgMTA6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC0gY29uc2lzdGVuY3kgYmV0d2VlbiBub24taW5kZXggYW5kIGluZGV4IHZhciByZWZlcmVuY2VzCgoyMDA0LTA3LTAzIDEwOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGFsbG93IHRhYmxlIHRvIHNwZWNpZnkgbm8gbWFwcGluZyBmb3Igbm9kZXMKICAgLSBuZXcgb3B0aW9uIHRvIGdlbmVyYXRlIHRhYmxlIGRlZmF1bHRzICYgZXhpdAoKMjAwNC0wNy0wMyAxMDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIC0gbW92ZSBhc3NpZ25tZW50IGxhdGVyIHRvIGdldCBjb3JyZWN0IHZhbHVlCgoyMDA0LTA3LTAzIDEwOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsCiAgICAgbWZkLXJlYWRtZS5tMmM6CgogICAtIGFsbG93IHRhYmxlIHRvIHNwZWNpZnkgbm8gbWFwcGluZyBmb3Igbm9kZXMKCjIwMDQtMDctMDIgMTA6MDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgZml4IGJ1ZyM4MTkxNTQgYnkgYWxsb3dpbmcgZ2V0bmV4dCBmYWlsdXJlIHRvIGNvbnRpbnVlIHRyYXZlcnNpbmcgdGhlIGV4dGVuc2libGUgbGlzdHMuCgoyMDA0LTA3LTAyIDA3OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgbWFrZSBhIHNhZmUgY29weSBvZiB0aGUgY29tbWFuZCBzdHJpbmcgdG8gdGhlIG5hbWUgc3RyaW5nLgoKMjAwNC0wNy0wMiAwNjo1MCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGFwcGx5IHBhdGNoICM5MTAwOTQgU29sYXJpcyBjYW4gb25seSBzZWUgc29tZSBkaXNrcyAtLSBpbmNyZWFzZSBMVU4gcmFuZ2UgMC03CgoyMDA0LTA3LTAyIDA2OjM4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGJ1ZyAjOTg0MDYxIC0gY2hlY2sgbGltaXRzLCBidWlsZCBkZXZpY2UgdHlwZSBzcGFucyBwcm9wZXJseQoKMjAwNC0wNy0wMiAwNjoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICB3YXJuLCB0aGVuIHByZXZlbnQgYWRkaW5nIG1vcmUgZGV2aWNlcyB0aGFuIHRoZSBkaXNrcyBhcnJheSB3aWxsIGhvbGQuCgoyMDA0LTA3LTAyIDA1OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIGFwcGx5IHBhdGNoICMgOTgzODUxIENoZWNrIHJldHVybiB2YWx1ZSBmb3IgY2dldG5leHQoKSBhbmQgZml4ICNpZmRlZgoKMjAwNC0wNy0wMiAwNDo0NyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFJFQURNRS5taWJzLCBzbWlzdHJpcDoKCiAgIE5vdGVzIGFuZCB0d2Vha3MgdGhhdCBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gYSBmdWxsIHJmYyBtaWIgY29tcGxlbWVudAogICB1bmRlciBTb2xhcmlzCgoyMDA0LTA3LTAyIDA0OjM3ICBuYmEKCiAgICogbWlicy86IHJmY2xpc3QsIHJmY21pYnMuZGlmZjoKCiAgIE5ldyB2ZXJzaW9uIG9nIFByaW50ZXItTUlCCgoyMDA0LTA3LTAyIDAzOjE5ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBVcGRhdGUgdHAgY29ycmVjdCBSRkMgZm9yIEV0aGVybGlrZS1NSUIKCjIwMDQtMDYtMzAgMjA6MDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgYXZvaWQgc29ydCB3aGVuIG9ubHkgb25lIHBhc3Mgb3IgcGFzc19wZXJzaXN0IGRpcmVjdGl2ZSBpcyBpbnN0YW50aWF0ZWQuCiAgIHByZXZlbnQgb3ZlcmZsb3dpbmcgYmluMmFzYydzIGJ1ZmZlciwgYW5kIHJlbW92ZSBhIHNldCBidXQgbm90IHVzZWQgIml0bXAiIHZhcmlhYmxlLgoKMjAwNC0wNi0zMCAxOTozOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBmaXggYnVnIDk4MTI3NSBieSBPSUQgc29ydGluZyB0aGUgImV4ZWMiIGFuZCAic2giIGRpcmVjdGl2ZXMuCgoyMDA0LTA2LTMwIDA3OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IGN1dC1uLXBhc3RlcyB0byB1c2UgY29ycmVjdCBmdW5jdGlvbi92YXIgbmFtZXMKCjIwMDQtMDYtMzAgMDY6MzUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgZml4IGJ1ZyMgNTAyMjE1ICJvaWQgbm90IGluY3JlYXNpbmciIGJ1Z3MgZm9yIElQdjYgVURQL1RDUCBvbiBGcmVlQlNECgoyMDA0LTA2LTMwIDA2OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCiwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jCiwgaWZYVGFibGUvaWZYVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNi0yOSAxNjowNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBmaXggbmFtZSAodWRidGFibGUgLS0+IHRjYnRhYmxlKSBpbiBUQ1A2IHZlcnNpb24gb2YgdmFyX3RjcDYuCgoyMDA0LTA2LTI5IDA1OjE0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgYXBwbHkgcGF0Y2ggOTc5NDM2IHRvIG1ha2Ugc3lzL2Rrc3RhdC5oIG9ic29sZXRlIHdoZW4gYnVpbGRpbmcgcmVjZW50IEZyZWVCU0Q1CgoyMDA0LTA2LTI5IDA0OjU3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkgcGF0Y2ggOTc5NDM0IHRvIFN1cHBvcnQgRnJlZUJTRCA1LjAgYW5kIDUuMSBpbiBkaXNraW8uYwoKMjAwNC0wNi0yOSAwNDowMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIFVzZSB1X2xvbmcgZm9yIHBoeXNfbWVtIGluIG1lbW9yeV9mcmVlYnNkMi5jIChwYXRjaCAjOTc5MDM0KQoKMjAwNC0wNi0yOSAwMzo0OCAgc2xpZgoKICAgKiBwZXJsL09JRC90ZXN0LnBsLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBwZXIgQWxleCBCdXJnZXIsIGFwcGx5IHBhdGNoICM5ODAxMTggdG8gZml4IE1TVkMgUGVybCBtb2R1bGUgYnVpbGQgYW5kCiAgIHByZXZlbnQgdGVzdCBmcm9tIHN0b3BwaW5nIGluIFdpbmRvd3MgZHVlIHRvIGFuIHVuLWluaXRpYWxpemVkIHZhcmlhYmxlLgoKMjAwNC0wNi0yOSAwMzozNiAgc2xpZgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIG5ldHNubXBtaWJzL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIE1TVkMgYnVpbGRzIHZhY21fY29uZiBvYmplY3QgaW4gb3JkZXIgdG8gZml4IGJ1ZyAjOTgxMzc3LiBHb29kIENhbGwsIERhdmUuCgoyMDA0LTA2LTI5IDAwOjAzICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgdXNlIEFVVEhURVNUQVJHUyB0byBmaXggYnVnIzk3MzY3MwoKMjAwNC0wNi0yOCAxNzowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCgoyMDA0LTA2LTI4IDE2OjU5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIE5FVFNOTVBfRU5BQkxFX01GRF9SRVdSSVRFUwogICAtIGFkZCAnKGluY29tcGxldGUpJyB0byBjb21tZW50IGZvciBOU19SRUVOVFJBTlQKCjIwMDQtMDYtMjggMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDYtMjggMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICAtIG5ldyBjb25maWd1cmUgZmxhZ2U6IC0tZW5hYmxlLW1mZC1yZXdyaXRlcyB3aWxsIHR1cm4gb24gcmV3cml0dGVuIG1vZHVsZXMuCiAgICAgLSBjdXJyZW50bHkgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBkaXNhYmxpbmcgZGVwcmVjYXRlZCB0YWJsZXMKCjIwMDQtMDYtMjggMTU6MTggIHJzdG9yeQoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgLSB1cGRhdGUgZm9yIGF1dG8tZ2VuIGZyb20gbWliMmMKCjIwMDQtMDYtMjggMTU6MTEgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgKOgoKICAgLSB1cGRhdGUgb2lkIGNoYW5nZWQgaW4gaWV0ZiBkcmFmdAoKMjAwNC0wNi0yOCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBjb25maWcgZXhjbHVkZSBtaWJJSS9pcCwgbm90IG1pYklJL3Zhcl9yb3V0ZQoKMjAwNC0wNi0yOCAxNTowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSB1bnVzZWQgKGR1ZSB0byBkYXRhIHNoYXJpbmcgdy9pZlRhYmxlKSBmdW5jdGlvbnMKCjIwMDQtMDYtMjggMTU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIHVzZSBsb2NhbCwgbm90IHN5dGVtLCBzdHlsZSBpbmNsdWRlIGZvciBtaWJncm91cCBoZWFkZXIKCjIwMDQtMDYtMjggMTU6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBtb3ZlIHZhciBkZWNsIGJlZm9yZSBmaXJzdCBzdGF0ZW1lbnQKCjIwMDQtMDYtMjggMTE6NTQgIHNsaWYKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBzZXR0aW5nIG9mIE9TVFlQRSBmb3IgRnJlZUJTRCBidWlsZCBwbGF0Zm9ybXMgKGNvbnNpZGVyIGFjY29uZmlnLmgpLgoKMjAwNC0wNi0yOCAxMTo0NCAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgaW50IGZvciBhdG9pLCBjYXN0IHRvIHVuc2lnbmVkIHNob3J0OwogICB0aGlzIGZpeGVzIGJ1ZyA5ODE0MzggdHJhcHNpbmsgcG9ydCByYW5nZSBjaGVja3MgYXJlIHdyb25nCgoyMDA0LTA2LTI4IDA1OjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA2LTI4IDA1OjMyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBuZXcgLS1lbmFibGUtbWliLWNvbmZpZy1jaGVja2luZyB0byBmYWlsIG9uIG1vZHVsZSBjb25mbGljdHMKCjIwMDQtMDYtMjggMDU6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgLSBhZGQgbmFtZSB0byBjb250YWluZXIgc3RydWN0dXJlCiAgIC0gbmV3IG1hY3JvIHRvIGZpbmQgbmFtZWQgY29udGFpbmVyIGluIGxpc3QKCjIwMDQtMDYtMjggMDU6MjEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHJlbW92ZSBjb25kaXRpb24gZm9yIGhlYWRlciBmdW5jdGlvbiBwcm90b3R5cGUgZ2VuZXJhdGlvbgoKMjAwNC0wNi0yOCAwNToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbW92ZSBkZXByZWNhdGVkIGxhYmVsIGZyb20gZnVuYywgYWRkIG5vdGUgb24gcHJlZmVycmVkIGZ1bmMgaW5zdGVhZAogICAtIGFkZCBzb21lIG5ldHNubXBfYXNzZXJ0cyAmIGRlYnVnIG91dHB1dAogICAtIHJlZHVjZSBkdXBsaWNhdGVkIGNvZGUKICAgICAtIG5ldHNubXBfZGF0YV9saXN0X2FkZF9kYXRhIG5vdyBjYWxscyBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfbm9kZQogICAtIGxvZyB3YXJuaW5nIGlmIGR1cGxpY2F0ZSBrZXkgYWRkZWQgdG8gYSBkYXRhIGxpc3QKICAgLSBuZXRzbm1wX2FkZF9saXN0X2RhdGEgbm93IGNhbGxzIHByZWZlcnJlZCBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfbm9kZQoKMjAwNC0wNi0yOCAwNToxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCBtaXNzaW5nIGRlZmF1bHQKCjIwMDQtMDYtMjggMDU6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZYVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8ubWliMmMtdXBkYXRlcmM6CgogICByYyBmaWxlIHVzZWQgZm9yIGNvZGUgZ2VuZXJhdGlvbgoKMjAwNC0wNi0yOCAwNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwKICAgICBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBtaWIyYy11cGRhdGUgZGlycwoKMjAwNC0wNi0yOCAwNTowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgQXV0b21hdGljYWxseSB1bnJlZ2lzdGVyIHByb3h5IHNldHRpbmdzIG9uIGFnZW50IHNodXRkb3duIG9yIHJlc3RhcnQuCiAgIChCdWcgIzc0ODczMykKCjIwMDQtMDYtMjggMDQ6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIFVucmVnaXN0ZXIgcHJveHkgcmVnaXN0cmF0aW9ucyB3aGVuIGZyZWVpbmcgdGhlIGNvbmZpZyBzZXR0aW5ncy4KCjIwMDQtMDYtMjggMDQ6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIFNraXAgZW1wdHkgY29udGV4dHMgd2hlbiBkdW1waW5nIHRoZSBpbnRlcm5hbCBNSUIgcmVnaXN0cnkuCiAgIChQcm9iYWJseSBhcyBhIHJlc3VsdCBvZiByZW1vdmluZyByZWdpc3RyYXRpb25zKS4KCjIwMDQtMDYtMjggMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRHJvcCBzcGVjaWFsLWNhc2UgaGFuZGxpbmcgb2YgImxvL2xvMCIgc2luY2UgdGhpcyBnaXZlcyBib2d1cyByZXN1bHRzCiAgIChCdWcgIzQyMjM5NCkKCjIwMDQtMDYtMjggMDQ6MjEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBEb24ndCB0cnkgdG8gc2V0IHRoZSBPSUQgb2YgYSB2YXJpYWJsZSB0aGF0IGlzbid0IHRoZXJlLgogICAoUHJvYmFibHkgdHJpZ2dlcmVkIGJ5IHJ1bm5pbmcgR2V0QnVsayBvbiBhICJub24tc2ltcGxlIgogICAgdmlldyAtIHNlZSBCdWcgIzcwNjA4OSkKCjIwMDQtMDYtMjcgMTg6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gcmVuYW1lIG5ldHNubXBfY2FjaGVfZXh0cmFjdF9mcm9tX3JlcWluZm8gdG8gbmV0c25tcF9jYWNoZV9yZXFpbmZvX2V4dHJhY3QKCjIwMDQtMDYtMjcgMTg6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgICAgdWRwLmM6CgogICAtIHVzZSBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkIGluc3RlYWQgb2YgbmV0c25tcF9pc19jYWNoZV92YWxpZAoKMjAwNC0wNi0yNyAxODoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBhZGQgbmFtZSBwYXJhbWV0ZXIgdG8gbmV0c25tcF9jYWNoZV9pc192YWxpZAogICAtIG5ldyBuZXRzbm1wX2NhY2hlX3JlcWluZm9faW5zZXJ0LCBuZXRzbm1wX2NhY2hlX3JlcWluZm9fZXh0cmFjdAogICAtIHVzZSBDQUNIRV9OQU1FOmhhbmRsZXJOYW1lIGFzIGRhdGFfbGlzdCBrZXkgZm9yIGNhY2hlCiAgICAgLSB0aGlzIGZpeGVzIEJ1ZyAjOTczNzI4IHRoZSByaWdodCB3YXkuIHNlZSBidWcgcmVwb3J0IGZvciBkZXRhaWxzCgoyMDA0LTA2LTI3IDE3OjExICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgLSBhZGQgbmV0c25tcF9yZXF1ZXN0X3JlbW92ZV9saXN0X2RhdGEKCjIwMDQtMDYtMjcgMTc6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCjoKCiAgIC0gYWRkIG5ldHNubXBfYWdlbnRfcmVtb3ZlX2xpc3RfZGF0YQoKMjAwNC0wNi0yNiAxNToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gYWRkIGRlYnVnIG1zZyB3aGVuIG1vZHVsZSBwYXRoIGNoYW5nZXMKICAgLSB0d2VhayBkZWJ1ZyBtc2cgb3V0cHV0IGluZGVudAoKMjAwNC0wNi0yNiAxNTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeSBhbmQgaGFuZGxlX21pYnNfY29uZiBjb25zaXN0ZW50OgogICAgIC0gJy0vZGlyJyBhZGRzIC9kaXIgYmVmb3JlIGV4aXN0aW5nIGRpcnMKICAgICAtICcrL2RpcicgYWRkcyAvZGlyIGFmdGVyIGV4aXN0aW5nIGRpcnMKICAgICAgIE5PVEU6IHRoaXMgcmVzdG9yZXMgb3JpZ2luYWwgYmVoYXZpb3Igb2YgJysnIHRvIHRoYXQgb2YgNS4wLjEuIEFmdGVyCiAgICAgICAgICAgICA1LjAuMiwgaWYgSSByZWFkIHRoZSBjb2RlIHJpZ2h0LCAnKycgYmVoYXZpb3VyIG9uIHRoZSBjbWQgbGluZSBhbmQKICAgICAgICAgICAgIGluIE1JQkRJUlMgd2FzIHJldmVyc2VkIGFuZCBub3QgY29uc2lzdGVudCB3aXRoIGhhbmRsZV9taWJzX2NvbmYuCgoyMDA0LTA2LTI2IDA2OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBtdWx0aXBsZSBtaWJkaXJzIGluIGNvbmYgZmlsZXMgd29yayB3aXRoICdsZWFzdCBzdXJwcmlzZScgKGllIGNvbXBsZXRlbHkKICAgICByZXBsYWNlIG1pYmRpcnMsIHVubGVzcyArIHNwZWNpZmllZAogICAtIG5ldyBtaWJkaXIgYmVoYXZpb3VyOiBpZiAtIHNwZWNpZmllZCwgYWRkIHNwZWNpZmllZCBkaXJzIGJlZm9yZSBleGlzdGluZwogICAgIG9uZXMgaW5zdGVhZCBvZiBhZnRlcgoKMjAwNC0wNi0yNiAwNToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0ICJtdWx0aS10b2tlbiIgbWFza3MgLSBpLmUuIHVzaW5nIHNwYWNlIChyYXRoZXIgdGhhbgogICAnLicgb3IgJzonKSB0byBzZXBhcmF0ZSB0aGUgbWFzayBvY3RldHMuICAoU2VlIGJ1ZyAjNzA2MDg5KQoKMjAwNC0wNi0yNiAwNTowNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBXb3JrIHdpdGggdGhlIHNhbWUgY2FjaGUgc3RydWN0dXJlIGNvbnNpc3RlbnRseSwKICAgcmF0aGVyIHRoYW4gcmUtZXh0cmFjdGluZyBpdCBmcm9tIHRoZSByZXFpbmZvIHN0cnVjdHVyZS4KICAgKFNob3VsZCBmaXggQnVnICM5NzM3MjgpCgoyMDA0LTA2LTI1IDA0OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXggdGhlIGNoZWNrIGZvciBhIHZhbGlkIElDTVAgY2FjaGUKICAgKFNwb3R0ZWQgYnkgT2xlZyBJdmFub3YpCgoyMDA0LTA2LTI1IDAyOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQSBtaXNzaW5nICdpcE91dE5vUm91dGVzJyB2YWx1ZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIChub3QgYW4gZXJyb3IpCiAgIGFuZCBhbGxvdyBhbnkgb3RoZXIgSVAtcmVsYXRlZCB2YXJiaW5kcyBpbiB0aGUgc2FtZSByZXF1ZXN0IHRvIGJlIHByb2Nlc3NlZC4KCjIwMDQtMDYtMjQgMTM6MDQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWFrZSAtSXIgZWZmZWN0aXZlIGZvciBhIE5ldHdvcmtBZGRyZXNzCgoyMDA0LTA2LTI0IDA5OjAxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgLSBtYWtlIGNsb25lX2hhbmRsZXIgc3RhdGljLCByZW5hbWUgdG8gX2Nsb25lX2hhbmRsZXIKICAgLSBkZWxldGUgaGFuZGxlciAmIHJldHVybiBudWxsIG9uIGNyZWF0ZSBpZiBuYW1lIHN0cmR1cCBmYWlscwogICAtIHBvc3NpYmxlIGZpeCBmbyA5NzM3MjggXSBtYWluIGJyYW5jaCBmYWlscyB0byBsb2FkIHRjcENvbm5lY3QgYW5kIHVkcCBUYWJsZQogICAgIC0gY29weSBmbGFncyBpbiBfY2xvbmVfaGFuZGxlcgogICAgIC0gdXBkYXRlIG5ldHNubXBfaGFuZGxlcl9kdXAgdG8gdXNlIF9jbG9uZV9oYW5kbGVyLCBuZXRzbm1wX2hhbmRsZXJfZnJlZQoKMjAwNC0wNi0yNCAwNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBkZWJ1ZyBzdGF0ZW1lbnQgcGFyYW1ldGVyCgoyMDA0LTA2LTIzIDExOjU3ICBuYmEKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBEb3h5Z2VuIGludGVybmFsIGRvY3VtZW50YXRpb24gY29udHJpYnV0ZWQgYnkgQ3lyaWwgTUFSR0FSSUEKCjIwMDQtMDYtMjMgMTA6NDUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyA5NzgwODc6IGJhZCBpbmRleCBjaGVjayBmb3IgTmV0d29ya0FkZHJlc3MKCjIwMDQtMDYtMjIgMTU6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGNwdS1idXJuaW5nIGJ5IHJ1bm5pbmcgYWxhcm1zLiBEaWFnbm9zZWQgYnkgcmdyZWFiQHVzZXJzLnNvdXJjZWZvcmdlLm5ldAoKMjAwNC0wNi0yMiAxNTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBhZnRlciBhbGxvY2F0aW9uCgoyMDA0LTA2LTIyIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIC0gbW92ZSBkYXRhX2luaXQgY2FsbCBpbnRvIGludGVyZmFjZSBjb2RlCiAgIC0gY2FsbCBkYXRhX2luaXQgYmVmb3JlIGNvbnRhaW5lcl9pbml0CgoyMDA0LTA2LTIyIDE1OjEzICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEF1dG9kZXRlY3QgLWxkZXZzdGF0IGZvciBGcmVlQlNEIDUgKGFzIHdhcyBkb25lIGZvciA0KQoKMjAwNC0wNi0yMiAwNjozOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgRml4IGhhbmRsaW5nIG9mIHRhYmxlIHJvdyByZWdpc3RyYXRpb24gaW4gb2xkLUFQSSAoQnVnICM3MDI0NTgpCgoyMDA0LTA2LTIyIDAyOjAzICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGVybCBBUEkgZm9yIHNldHRpbmcgTUlCIHBhcnNpbmcgb3B0aW9ucyAoQnVnICM1NTQ3NDkpCgoyMDA0LTA2LTIxIDExOjQwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVzLmgKCjIwMDQtMDYtMjEgMTA6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGFkZCBmdW5jdGlvbiB0byBzZXQgdmFsaWRfY29sdW1ucwoKMjAwNC0wNi0yMSAwNjozMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBkdXBsaWNhdGUgYWxsb2NhdGlvbiBvZiBtZW1vcnkgd2hlbiBkZWZpbmluZyBlbnVtZXJhdGlvbiBsaXN0cwogICAoQnVnICM5MjM3NjYpCgoyMDA0LTA2LTIxIDAzOjEyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBDb3JyZWN0IGRlc2NyaXB0aW9uIG9mIHJldHVybiB2YWx1ZXMgdG8gdXNlIChCdWcgIzk0NzkyNikKCjIwMDQtMDYtMjEgMDM6MDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgc2l6ZSBmb3IgcGFyc2luZyBhbiBpbnRlZ2VyIGNvcnJlY3RseSAoQnVnICM5NDc0MDMpCgoyMDA0LTA2LTE5IDE2OjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIEZpeCBjb21tZW50IHR5cG8uCgoyMDA0LTA2LTE5IDA2OjM0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgbW9kaWZ5IHBhdGNoIDk1NjI3MiB0byBtYWtlIGl0IFNvbGFyaXMyIHNwZWNpZmljCgoyMDA0LTA2LTE4IDEzOjM4ICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIGluc3RhbGwgbmV3IG1pYjJjLXVwZGF0ZSBiYXNoIHNjcmlwdAogICAtIGluc3RhbGwgdG9wIGxldmVsIG1mZCBjb25mIGZpbGUKICAgLSBtYWtlIGluc3RhbGwgdGFyZ2V0IGRlcGVuZCBvbiAnbWFkZScgcGVybCBzY3JpcHRzCgoyMDA0LTA2LTE4IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY2hhbmdlIHVfaW50MzJfdCB0byBpbnQzMiB0byBtYWtlIGl0IG1vcmUgcG9ydGFibGUKCjIwMDQtMDYtMTggMTE6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJlbW92ZWQgYSBza2lwX3Rva2VuIHRoYXQgd2FzIGNhdXNpbmcgYSBmb2xsb3ctb24gdG9rZW4gdG8gYmUgc2tpcHBlZC4KCjIwMDQtMDYtMTggMTE6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZWQgcmZjIGxpc3QgZm9yIHVzbS1hZXMKCjIwMDQtMDYtMTggMTE6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtIEZpeGVkIHVzYWdlIG9mIGZfZnJzaXplIHVuZGVyIGFyY2hpdGVjdHVyZXMgdGhhdCBoYWQgaXQgZm9yIHN0YXR2ZnMKICAgICBidXQgbm90IHN0YXRmcy4KCjIwMDQtMDYtMTggMTA6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCBtaWJzL01ha2VmaWxlLmluCiwgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIFVwZGF0ZWQgdGhlIEFFUyBPSUQgdG8gbWF0Y2ggdGhlIHJlY2VudGx5IHB1Ymxpc2hlZCBVU00vQUVTIGRyYWZ0CiAgIC0gQWRkZWQgdGhlIFVTTS1BRVMgTUlCIHRvIHRoZSBsaXN0IG9mIG1pYnMuCgoyMDA0LTA2LTE4IDA5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGFkZCBuZXcgbWliMmMtZGF0YSBkaXIgdG8gc2VhcmNoIHBhdGgKCjIwMDQtMDYtMTggMDk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gYWRkIGluc3RhbGwvdW5pbnN0YWxsIGZvciBtZmQgbWliMmMgZmlsZXMKCjIwMDQtMDYtMTggMDc6MzAgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTdXBwb3J0IGZvciBpbnRlcnByZXRpbmcgSW5ldEFkZHJlc3NUeXBlL0luZXRBZGRyZXNzIGluZGV4ZXMgd2l0aGluIGFuIE9JRC4KICAgKFBhdGNoICM4NDE2MjUgZnJvbSBZaXhpb25nIFpvdSkKCjIwMDQtMDYtMTggMDc6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFJlY29nbmlzZSBJbmZpbmliYW5kIGludGVyZmFjZXMKICAgKFBhdGNoICM5NzA2MTcgZnJvbSBLYW5vaiBTYXJjYXIpCgoyMDA0LTA2LTE4IDA2OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEZpeCBoYW5kbGluZyBvZiAtLWVuYWJsZS1sb2NhbC1zbXV4IG9wdGlvbgogICAoUGF0Y2ggIzk0OTgwOCBmcm9tIEVyaWsg54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy2bmdn54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteiEmmQpCgoyMDA0LTA2LTE4IDA2OjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBhY3RpdmF0aW5nIGFuZCBkZWFjdGl2YXRpbmcgdXNlcnMsCiAgIG5lY2Vzc2FyeSBmb3IgZnVsbCBjb21wbGlhbmNlIHdpdGggUkZDIDM0MTQuIChQYXRjaCAjOTQzNzYyKQoKMjAwNC0wNi0xOCAwNjozOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBVc2UgdHJhbnNwb3J0IHZhcmlhYmxlcyBmb3IgdGVzdGluZyByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIHVkcDpsb2NhbGhvc3QKICAgKFBhdGNoICM5NDAzMDIgZnJvbSBNaWtlIFNsaWZjYWspCgoyMDA0LTA2LTE4IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgL2Rldi9hcnAgcmF0aGVyIHRoYW4gL2Rldi9pcCwgc2luY2UgdGhpcyB3b3JrcyBwcm9wZXJseSB3aXRoIG11bHRpcGxlIHpvbmVzLgogICAoUGF0Y2ggIzk0MDAyNSBmcm9tIEJvYiBSb3dsYW5kcykKICAgW05vIGlkZWEgd2hhdCB0aGlzIG1lYW5zLCBidXQgaXQgc291bmRzIGltcHJlc3NpdmUuLi4uXQoKMjAwNC0wNi0xOCAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9wa2NzLmM6CgogICBJbml0aWFsaXNlIHBTbG90TGlzdCB0byBndWFyZCBhZ2FpbnN0IGZyZWVpbmcgZ2FyYmFnZS4KICAgKFBhdGNoICM5MzgxMzkgZnJvbSBCb2IgUm93bGFuZHMpCgogICBJZiBnYXJiYWdlIGlzbid0IGtlcHQgc3RyaWN0bHkgY29udHJvbGxlZCwKICAgIHdobyBrbm93cyB3aGF0IHN0YXRlIHNvY2lldHkgbWlnaHQgZ2V0IGludG8uLi4uCiAgIChIb21lc3B1biBwaGlsb3NvcGhpY2FsIG11c2luZ3MgZnJvbSBEYXZlIFNoaWVsZCkKCjIwMDQtMDYtMTggMDY6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRG9uJ3Qgc2V0IHRoZSBpbmRleCB2YWx1ZSB1bnRpbCB3ZSd2ZSBjaGVja2VkIHRoaXMgaXMgYSB2YWxpZCByZXF1ZXN0LgogICAoUGF0Y2ggIzkzMDcxMiBmcm9tIEpvY2hlbi9DaHJpc3RvcGhlciBQcmljZSkKCjIwMDQtMDYtMTggMDY6MDkgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRG9uJ3QgaW5jbHVkZSB0aGUgdmlld1RyZWUgbGVuZ3RoIHdoZW4gc2F2aW5nIGEgcGVyc2lzdGVudCB2YWNtVmlldwogICAoUGF0Y2ggIzkyMTI3OSBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDYtMTggMDU6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICBQYXNzICpwb2ludGVycyogdG8gcmVsb2FkL2NvbXBhcmUgZnVuY3Rpb25zIGludG8gSW5pdGlhbGlzZV9UYWJsZQogICAoUGF0Y2ggIzkyMjUxOSBmcm9tIFJvYmVydCBXaWxjb3gpCgoyMDA0LTA2LTE3IDIwOjU3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgcGVyIEJydWNlIFNoYXcsIGluY2x1ZGUgdGhlIE9JRCBmb3IgQ1BVIGRldmljZSBpbiB0aGUgbWF0Y2ggc3RyaW5nLgoKMjAwNC0wNi0xNyAxOTo0MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IHBhdGNoIDk1NjI3MiAtIHVzZSBjb3JyZWN0IHN0cnVjdHVyZSBtZW1iZXIgZm9yIFNvbGFyaXMgaHJQYXJ0aXRpb25TaXplCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG5vZGUuZGVzY3JpcHRpb24KCjIwMDQtMDYtMTcgMTk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCByZXR1cm4gY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDYtMTcgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgLSBjb252ZXJ0IGRlYnVnIGNvZGUgdGhhdCBzaG91bGQgaGF2ZSBuZXZlciBiZWVuIGNoZWNrZWQgaW4gdG8gbmV0c25tcF9hc3NlcnQKCjIwMDQtMDYtMTcgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGFkZCBsb3RzIG9mIGRlYnVnIGZvciB0cmFja2luZyBpbmRleCBwcm9jZXNzaW5nCiAgIC0gbWFrZSBjb2RlIGFuZCBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggZWFjaCBvdGhlcgogICAtIGZpeCBhIDAtYmFzZWQgdnMgMS1iYXNlZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHZhbGlkX2NvbHVtbiB2ZXJpZmljYXRpb24KICAgLSBmaXggY29tcGFyaXNvbiB0byB3cm9uZyB2YXJpYWJsZQogICAtIGR1ZSB0byBvdGhlciBmaXhlcywgaW5pdCB0YmxfcmVxX2luZm8tPmNvbG51bSBlYXJsaWVyCgoyMDA0LTA2LTE3IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIHVwZGF0ZSBmbG93IGNoYXJ0CiAgIC0gc3dhcCByb3cgY3JlYXRlIC8gY2hlY2sgdmFsdWVzOyBub3QgcXVpdGUgc3VyZSBpZiBJIHNob3VsZCwgdGhvdWdoCgoyMDA0LTA2LTE3IDE4OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpZmRlZiBvdXQgY29tbWl0IGNvZGUgKGNvbWluZyBzb29uKQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTE3IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBtYWtlIHN1cmUgdG8gc2V0IGRvbnQgaW52YWxpZGF0ZW9uIHNldCBjYWNoZSBmbGFnCgoyMDA0LTA2LTE3IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpbXBsZW1lbnQgc2V0IG9mIGFkbWluIHN0YXR1cwoKMjAwNC0wNi0xNyAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNwZWNpYWwgY2FzZSBwcm9jZXNzaW5nIGZvciBpZmFkbWluIHN0YXR1cyAoYnlwYXNzIHNpemVvZiBjaGVjaykKCjIwMDQtMDYtMTcgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtdXNlIG5ldyBmdW5jdGlvbnMgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCwKICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9tdHVfZ2V0CiAgIC1uZXcgZnVuY3Rpb24gbmV0c25tcF9hcmNoX3NldF9hZG1pbl9zdGF0dXMKCjIwMDQtMDYtMTcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC1uZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbW92ZSB3aG9sZSBmdW5jdGlvbnMgaW5zaWRlIGlmZGVmIGNvbmRpdGlvbmFsLCB0byBmb3JjZSBsaW5rIGVycm9ycyBpbnN0ZWFkCiAgICBvZiBhIGZhbHNlIHNlbnNlIG9mIHNlY3VyaXR5IHRoYXQgYW4gaW9jdGwgaXMgYXZhaWxhYmxlCgoyMDA0LTA2LTE3IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgZGVmaW5lIHByaXZhdGUgJ2FyY2gnIGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMDQtMDYtMTcgMTg6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtcmVuYW1lIHN0YXRzIHN0cnVjdCBtZW1iZXJzIHRvIG5vdCBtYXRjaCBtYWNybyBuYW1lcwogICAtYWRkIHBvaW50ZXIgJiBtYWNyb3MgZm9yIG9sZCBzdGF0cyB0byBpbnRlcmZhY2UgZW50cnkKICAgLW1vdmUgY29uZiBvdmVycmlkZSBzdHJ1Y3Qvcm91dGluZXMgaGVyZQogICAtYWRkIGluaXQgcm91dGluZSBmb3IgY29uZmlndXJlIHRvIGRldGVjdCAmIGNhbGwKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2Vfc2V0X2FkbWluX3N0YXR1cwogICAtYWRkIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV91cGRhdGVfc3RhdHMgdG8gZGVhbCB3aXRoIDMyYml0IGNvdW50ZXIKICAgIHdyYXBzLCB1bmxlc3MgNjRiaXQgY291bnRlcnMgYXJlIGRldGVjdGVkCgoyMDA0LTA2LTE3IDE4OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbnMgdTY0SW5jciwgdTY0VXBkYXRlQ291bnRlciwgdTY0Q29weSwgbmV0c25tcF9jNjRfY2hlY2tfZm9yXzMyYml0X3dyYXAKCjIwMDQtMDYtMTcgMTc6MzYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdGVzdCBzZXNzaW9uIHB0ciBiZWZvcmUgdXNpbmcuIGZpeGVzIGJ1ZyAjOTc1MDYzIHNubXBfc2Vzc19jbG9zZSBOVUxMIGRlcmVmCgoyMDA0LTA2LTE3IDA5OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgVXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYWtlIGl0IG11Y2ggbW9yZSBleHRlbnNpdmUgYW5kIGNvbXBsZXRlLgoKMjAwNC0wNi0xNyAwNjozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgUGF0Y2ggIDk2ODgzOTogbmV0LXNubXAtY29uZmlnIGZhaWxzIHRvIHByaW50IC1sd3JhcAoKMjAwNC0wNi0xNyAwNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFBhdGNoICM5NzM3MDI6IFBPRCBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gVG9uaSBXaWxsYmVyZwoKMjAwNC0wNi0xNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZSBjaGFuZ2VzOgogICAgIC0gRG9uJ3QgcmV0cmlldmUgaW5kZXhlcyBzaW5jZSB3ZSBjYWxjdWxhdGUgdGhlbS4KICAgICAtIEJ1ZyBmaXggZm9yIHNlbGYtc3BlY2lmaWVkIGNvbHVtbiBsaXN0cy4KCjIwMDQtMDYtMTYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBjb3B5X253b3JkIGZvciBhbGwgcmVhZF9jb25maWcgYXV0by1wYXJzaW5nIG9mIHRva2VucyB0byBoZWxwCiAgIHN0cmlwIHF1b3RlcyBpZiB0aGV5IHdlcmUgdXNlZCBldmVuIGZvciBpbnRlZ2Vycy4KCjIwMDQtMDYtMTUgMTk6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIGZpeCBsaWJyYXJ5IHJlc291cmNlIGxvY2tzLCBhcyBub3RlZCBvbiBjb2RlcnMgYnkgWWluZyBIdQoKMjAwNC0wNi0xNSAxNzoyNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyM3NubXB2M2dldE1ENURFUwo6CgogICBjb3JyZWN0IHZhciBQUklWVEVTVEFSR1MgKHdhcyBQUklWVEVTVEZMQUdTKQoKMjAwNC0wNi0xNSAxNTo0MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBhcHBseSBwYXRjaCAjOTczNTcyIHBlciBBbGV4IEJ1cmdlciB0byBjbGFyaWZ5IG5hbWluZyBvZiB0aGUgcGFja2FnZSwgZXRjLgoKMjAwNC0wNi0xNSAwNzoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25zaXN0ZW5jeSB0d2Vha3MgdG8gdGhlIHVzYWdlIG91dHB1dCBtZXNzYWdlLgoKMjAwNC0wNi0xNSAwNjo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGFwcGx5IHVwZGF0ZWQgcGF0Y2ggYXR0YWNoZWQgdG8gYnVnIzc1ODQzNwogICB1c2UgU05NUF9GUkVFIHRvIG1hbmFnZSBidWZmZXIgcG9pbnRlcgogICBvcGVuIHNvY2tldCBiZWZvcmUgaW5jcmVhc2luZyBidWZmZXIgc2l6ZQoKMjAwNC0wNi0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgRGVmaW5lIHRoZSBleGFtcGxlIG5vdGlmaWNhdGlvbiBhcyBhIG5vdGlmaWNhdGlvbiAodXNpbmcgYW4gUkZDMjU3Ni1zYWZlCiAgIE9JRCksIHJhdGhlciB0aGFuIGEgTUlCIG9iamVjdCwgYW5kIGRlZmluZSBleGFtcGxlIGNvbXB1bHNvcnkgYW5kIG9wdGlvbmFsCiAgIHBheWxvYWQgb2JqZWN0cy4gVHdlYWsgdGhlIGV4YW1wbGUgY29kZSB0byB1c2UgdGhlc2UgbmV3IGRlZmluaXRpb25zLgoKMjAwNC0wNi0xNSAwNDoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIHRyb250b3IgdG8gZml4IGJ1ZyA5NDI0OTggTmV0QlNEIDIuMEQgYW5kIGFib3ZlIHVzZSBzdGF0dmZzCgoyMDA0LTA2LTE0IDEyOjAyICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjOTcyNzE1IFdpbjMyIGJ1aWxkOiBtYWtlZmlsZSwgcmVhZG1lIGFuZCAubnNpIHNjcmlwdCBjaGFuZ2VzCiAgIHRoZXNlIGJhY2sgb3V0IHR3byBwcmV2aW91cyBjaGFuZ2VzIGFuZCBmaXhlcyBhIHByb2JsZW0gY3JlYXRpbmcgc25tcGNvbmYuYmF0CgoyMDA0LTA2LTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQucG0sIGFnZW50LnhzLCB0ZXN0LnBsOgoKICAgSW1wbGVtZW50ZWQgJHJlcXVlc3QtPnNldEVycm9yKCkgdG8gc2V0IGVycm9yIGNvZGVzIGZvciByZXF1ZXN0cy4KCjIwMDQtMDYtMTQgMTA6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgcGF0Y2ggZnJvbSBNYXRoaWFzIFNjaGVsZXIgZml4ZXMgYnVnICM4MDU5NTYgYnkgYWx0ZXJpbmcgY29uZGl0aW9uYWwKICAgY2hlY2tzIGZvciBOZXRCU0QgYW5kIERhcndpbiBkZWZpbmVzLgoKMjAwNC0wNi0xMiAwODowNCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBkeXNsZXhpYyAgcy1NLW4tcCAgdG8gcy1uLU0tcAoKMjAwNC0wNi0xMiAwODowMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCA5NzEyNjMgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0IGNoYW5nZSBjb21wb25lbnQgbGFiZWwrZGVzY3IKCjIwMDQtMDYtMTIgMDc6NTUgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIG5tYWtlcGVybC5iYXQsIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwKICAgICBsb2NhbC9taWIyYy5iYXQsIGxvY2FsL3NubXBjb25mLmJhdCwKICAgICBsb2NhbC90cmFwdG9lbWFpbC5iYXQ6CgogICBjb252ZXJ0IC5iYXQgZmlsZXMgdG8gdXNlIERPUyBDUi1MRiBsaW5lIHRlcm1pbmF0aW9uLgogICBhcHBseSBwYXRjaCA5NzE0NzEgTlNJIGluc3RhbGxlciBzY3JpcHQgZml4ZXMgYWRkcmVzc2luZyBsaW5lLWVuZCBwcm9ibGVtcy4KCjIwMDQtMDYtMTEgMTc6MzggIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlICJlcmFzZSB3YXRjaGVyLm9iaiIsIGZvciBhIGZpbGUgdGhhdCBpcyBtYW5hZ2VkIGluIGxpYmhlbHBlcnMgcHJvamVjdC4KCjIwMDQtMDYtMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgZGVmYXVsdCBjYWNoZSB0byBub3QgaW52YWxpZGF0ZSBvbiBzZXQKCjIwMDQtMDYtMTEgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBmaXggbWlzYXNzaWduZWQgY2FsbGJhY2sgZnVuY3Rpb24KICAgLSBhZGQgbWlzc2luZyBicmFjZXMgZm9yIG11bHRpbGluZSBjb25kaXRpb25hbAoKMjAwNC0wNi0xMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAogICAtIGFkZCBjb2RlIHRvIGhhbmRsZSBwZXIgY29sdW1uIGJlaGF2aW9yIG9uIGNvbW1pdAogICAtIGFkZCBub3RlIG9uIHVuZG8gY29udGV4dCB3aGVuIGRhdGEgaW5pdCBpcyBzZXQKCjIwMDQtMDYtMTEgMTU6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXRvcC5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKCjIwMDQtMDYtMTEgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIC0gdHdlYWsgdG8gd29yayBldmVuIGZvciBnZW5lcmF0ZWQgZGF0YSBjb250ZXh0cwogICAtIGZpeCB2YXIgdHlwbywgY29tbWVudCB0eXBvCgoyMDA0LTA2LTExIDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICAtIHJlbW92ZSBvdmVybHkgY29uZnVzaW5nIG1ldGhvZCBmb3IgY2hhbmdpbmcgZGVmYXVsdHMsIGJlY2F1c2UgaXQgd2FzCiAgICAgY29uZmxpY3Rpbmcgdy9jb21tYW5kIGxpbmUgdmVyc2lvbi4gbWF5YmUgcmV2aXNpdCBsYXRlcgogICAtIGRlZmF1bHQgKGZhbHNlKSBmb3IgbmV3IHVuZG9fZW1iZWQKCjIwMDQtMDYtMTEgMTM6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUmV0dXJuIGFscmVhZHkgZ2F0aGVyZWQgcmVzdWx0cyBldmVuIGlmIGdldGJ1bGsgZmFpbHMgdG8gcmV0dXJuIHRoZQogICBleHBlY3RlZCBkYXRhICh0eXBpY2FsbHkgZHVlIHRvIGVuZC1vZi1taWIgY29uZGl0aW9ucykuCgoyMDA0LTA2LTExIDEzOjEzICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IHZlcnNpb24gbnVtYmVyIG5lZWRzIGNoYW5naW5nLgoKMjAwNC0wNi0xMSAxMDoxOCAgc2xpZgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIDk3MTExMyAibm1ha2UgY2xlYW4iIHZpc2l0cyBsaWJzbm1wIGFuZCBsaWJzbm1wX2RsbCBldmVyeSB0aW1lLgoKMjAwNC0wNi0xMCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gbmV3IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV9ndWVzc19zcGVlZAogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfb3ZlcnJpZGVzCiAgIC0gcmVzdG9yZSBpZl9hZG1pbl9zdGF0dXMKICAgLSBhZGQgcGxhdGZvcm0gc3BlY2lmaWMgaWZfZmxhZ3MsICYgZGVmaW5lIGZvciBmbGFncyB0byBpbmRpY2F0ZSBhdmFpbGFiaWxpdHkKICAgLSBzcGVjaWZ5IGFsbCA0IGhleCBieWVzIGZvciBmbGFnIGRlZmluZXMKCjIwMDQtMDYtMTAgMjE6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbGludXggcmVxdWlyZXMgbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKICAgLSB1c2UgaW9jdGwgZm9yIGh3YWRkciwgaWZfZmxhZ3MKICAgLSBndWVzcyBpZiB0eXBlIGJhc2VkIG9uIG5hbWUgaWYgbm90IGtub3duCiAgIC0gbW92ZSBnZXRJZlNwZWVkIGNvZGUgJiByZW5hbWUgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2xpbnV4X2dldF9pZl9zcGVlZAoKMjAwNC0wNi0xMCAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgLSBuZXcgaW9jdGwgaW50ZXJmYWNlIGFjY2VzcwoKMjAwNC0wNi0xMCAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICAtIG1vdmUgYWRtaW4gc3RhdHVzIGJhY2sgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC0gdXNlIGRlc2NyaXB0aW9uIGZyb20gaW50ZXJmYWNlIGVudHJ5CgoyMDA0LTA2LTEwIDEwOjU5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjOTcwNDgwIFdpbjMyIFJFQURNRS5idWlsZC53aW4zMi50eHQgdXBkYXRlCgoyMDA0LTA2LTA5IDIwOjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGFwcGx5IGNoYW5nZXMgaWRlbnRpZmllZCBpbiBwYXRjaCAjOTY5MzM4IHBhdGNoZXMgZm9yIEZyZWVCU0QgNS54IHN1Y2Nlc3NmdWwgYnVpbGQKCjIwMDQtMDYtMDkgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfY29uc3RhbnRzLmgsIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSByZW1vdmUgYWJpbGl0eSB0byBidWlsZCBpbmRlcGVuZGVudCBvZiBpZlRhYmxlCgoyMDA0LTA2LTA5IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSB1c2UgbmV3IHBhcmFtIHRvIHNhdmUgaW50ZXJmYWNlIGVudHJ5IHcvZ2VuZXJhdGVkIGNvbnRleHQKICAgLSBmb3IgZGF0YSBmcm9tIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LCB1c2UgI2RlZmluZXMgc28gZ2VuZXJhdGVkIGNvZGUgZG9lc24ndAogICAgIGNoYW5nZSAoZWcgZGVmaW5lIGlmTmFtZSBpZmVudHJ5LmlmX25hbWUpLiB3b3JrcyBmb3IgbW9zdCBjYXNlcwogICAtIGFkZCBnZW5lcmF0ZWQgc3RvcmFnZS9kZWZpbmVzIGZvciBpZlhUYWJsZSBjb2x1bW5zIHRvIGRhdGEgY29udGV4dAogICAtIGNoYW5nZSBjYWNoZSB0aW1lb3V0IHRvIDMwIHNlY29uZHMKICAgLSB1c2UgbmV3IGNhY2hlIGZlYXR1cmVzIHRvIGF1dG8gbG9hZCBhbmQgYXV0byByZWZyZXNoIGNhY2hlCiAgIC0gdXNlIG5ldyBVTktOT1dOIGlmT3BlclN0YXR1cyBmb3IgaW50ZXJmYWNlcyB0aGF0IHZhbmlzaAogICAtIHVzZSBuZXcgaW50ZXJmYWNlIGNvcHkgZnVuY3Rpb24gd2hlbiB1cGRhdGluZyBjYWNoZQogICAtIG9ubHkgdXBkYXRlIExhc3RDaGFuZ2VkIG9uIGlmT3BlclN0YXR1cyBjaGFuZ2VzCgoyMDA0LTA2LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCM5Njg4MDAgU05NUENPTkZQQVRIIGZpeCBmb3IgV2luMzIgYmluYXJ5IGluc3RhbGxlcgogICBhbmQgcGF0Y2ggIzk3MDAxMiBSZW1vdmUgc25tcGNvbmYucGwgZnJvbSBXaW5kb3dzIGluc3RhbGxlcgoKMjAwNC0wNi0wOSAxODozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZDoKCiAgIC0gc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQKICAgICAtIGNoZyBkYXRhIGNvbnRleHQgdG8gZGVmYXVsdCBnZW5lcmF0ZWQKICAgICAtIGRvbid0IGFsbG9jYXRlIGRhdGEgY29udGV4dAogICAgIC0gZG8gcmVxdWVzdCBhIGluaXQgY2FsbCBmb3IgbmV3IGNvbnRleHRzCgoyMDA0LTA2LTA5IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbWliIHNwZWNpZmljIHN0dWZmIChpZl9hbGlhcywgaWZfYWRtaW5fc3RhdHVzLCBpZl9saW5rX3VwZG93bl90cmFwKQogICAgIChzdGlsbCBub3Qgc3VyZSBhYm91dCBsYXN0IGNoYW5nZWQgYW5kIGRpc2NvbnRpbnVpdHkpCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGNvcHkgaW50ZXJmYWNlIGVudHJ5IGRhdGEKICAgLSBtYWtlIGNhbGxiYWNrIGZ1bmN0aW9ucyBzdGF0aWMKCjIwMDQtMDYtMDkgMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAogICAtIGZpeCB0d28gdHlwb3MgaW4gY29kZSBvbmx5IGdlbmVyYXRlZCB3aGVuIGRhdGFfaW5pdCBpcyBzZXQKICAgLSByZWxlYXNlIHVuZG8gZGF0YSBpbiBmcmVlX3Jvd3JlcV9jdHgKICAgLSBkb24ndCBnZW5lcmF0ZSB1bmRvIHNldHVwIGNvZGUgZm9yIG5vbi1zZXR0YWJsZSBjb2x1bW5zCgoyMDA0LTA2LTA5IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIC0gaWYgZGF0YV9pbml0IHNldCwgYWRkIHVzZXIgdm9pZCBwb2ludGVyIHRvIGFsbG9jYXRlX3Jvd3JlcV9jdHgsIGFuZCBwYXNzIGl0CiAgICAgdG8gcm93cmVxX2N0eF9pbml0CgoyMDA0LTA2LTA5IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gY29udmVydCBjb250YW50IHByZWZpeGVzIHRvIHVwcGVyY2FzZQogICAtIGFkZCAnX3ZhbCcgc3VmZml4IHRvIGFsbCBub2RlIHBhcmFtZXRlciBuYW1lcwoKMjAwNC0wNi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgYWRkIGRlc2NyaXB0aW9uCgoyMDA0LTA2LTA5IDAyOjM3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIHBlciBNaWtlIEhlaXNsZXIsIGZpeCBidWcgIzkzNjQ4MyAocmVzdG9yZSBzc2l6ZV90KS4KCjIwMDQtMDYtMDggMjE6NTUgIHNsaWYKCiAgICogYWNjb25maWcuaDoKCiAgIFVwZGF0ZSB0byB3aW4zMiBpZmRlZiB0byBpbmNsdWRlIG90aGVyIGVudmlyb25tZW50cwoKMjAwNC0wNi0wOCAxMzo1NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIga3BfY29tbSwgZXRjLikgZm9yIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIgeHRfdHApIGZvciBGcmVlQlNEIDQueCBhbmQgRnJlZUJTRCA1LngKCjIwMDQtMDYtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBjb21waWxlIGZhaWx1cmUgKG5vIGlucF9uZXh0IGluIHN0cnVjdCBpbnBjYikgZm9yIEZyZWVCU0QgNC54IGFuZCA1LngKCjIwMDQtMDYtMDggMTM6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgZml4IGJ1ZyA4OTU2NzkgYnkgZW5zdXJpbmcgdXBwZXIgbGltaXQgdHJhY2tzIGJ1ZmZlciBhbGxvY2F0aW9uL2ZyZWUgYWN0aW9ucy4KCjIwMDQtMDYtMDggMTI6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSB1bmRlZiBvZiBTVFJVQ1RfU1RBVEZTX0hBU19GX0ZBVkFJTCAobmV2ZXIgaXMgZGVmaW5lZCkuCgoyMDA0LTA2LTA4IDEwOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtc2V0Lm0yYywgcGFyZW50LXNldC5tMmkKOgoKICAgLSBjb21tZW50cyBhYm91dCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKICAgLSBtaXNzZWQgYSBmZXcgZXJyb3IgZGVmaW5lIHVwZGF0ZXMKCjIwMDQtMDYtMDggMTA6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGFkZCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKCjIwMDQtMDYtMDcgMTk6NTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBzZXR0aW5nIG9mIE9TVFlQRSBmb3IgRnJlZUJTRCBidWlsZCBwbGF0Zm9ybXMuCgoyMDA0LTA2LTA3IDE5OjQ3ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBjcmVhdGUgc3lzdGVtIGluY2x1ZGUgZmlsZSBmb3IgRnJlZUJTRCA1LnggYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBpbiBzd2FwbW9kZQoKMjAwNC0wNi0wNyAxMjozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlY2hlY2sgcGVyc2lzdGVudCBwYXRoIGluIGxvb3AsIHNpbmNlIGl0IG1pZ2h0IGNoYW5nZQoKMjAwNC0wNi0wNyAxMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgc3BlY2lmeSBmdWxsIDMyIGJpdHMgZm9yIGhhbmRsZXIgZmxhZ3MKCjIwMDQtMDYtMDcgMTI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWx3YXlzIGNvbnNpZGVyIGNhY2hlIHcvdGltZW91dCBvZiAtMSBhcyBleHBpcmVkIChsb2FkIGNhY2hlIGV2ZXJ5IHJlcXVlc3QpCiAgIC0gYWRkIE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FEICYgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRCBmbGFncwogICAtIGFkZCBleGFtcGxlIHVzYWdlcyBzY2VuYXJpb3MgYW5kIHN1Z2dlc3RlZCBmbGFncwogICAtIGFkZCBuZXRzbm1wX2NhY2hlX3RpbWVyX3N0YXJ0ICYgbmV0c25tcF9jYWNoZV90aW1lcl9zdG9wCiAgIC0gY2xlYXIgZXhwaXJlZCBmbGFnIGFmdGVyIGNhY2hlX2xvYWQKICAgLSBhZGQgYW5vdGhlciBub3RlIGFib3V0IHBvdGVudGlhbCBjYWNoZSBpc3N1ZSB3L2RlbGVnYXRlZCByZXF1ZXN0cwogICAgIChzb21lIGxvY2tpbmcvcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbSBpcyBuZWVkZWQpCgoyMDA0LTA2LTA3IDExOjUwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBhY2NlcHQgYWJicmV2aWF0ZWQgdmVyc2lvbnMgb2Ygc29tZSBmbGFncwogICAtIHBvaW50IGluZGVudC1vcHRvaW5zIGF0IGEgcmVhbCBkaXJlY3RvcnkKICAgLSBkb24ndCBzdWJzdGl0dXRlIHByZWZpeCBtdWx0aXBsZSB0aW1lcwoKMjAwNC0wNi0wNyAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IGNvbW1lbnQgcmVmIGZvciBpbnRlZ2VyIGZyb20gTlVMTCB0byAwCgoyMDA0LTA2LTA3IDExOjM5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHNraXAgc2NwIGlmIGJhYyByYyBmcm9tIGN2cyBjb21tYW5kCgoyMDA0LTA2LTA3IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVhbWUgJGlfSURYMiB0byAkSV9DVVNUT01fU09SVCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTA2LTA3IDExOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gYWRkIG1pc3NpbmcgdW5kb19jb21taXQsIHVuZG9fY2xlYW51cCBzdGF0ZXMKICAgLSBtb3ZlIHByZS9wb3N0IHJlcXVlc3QgaW5pdCBvdXRzaWRlIG1pYjJjIGNvbmRpdGlvbmFsCiAgIC0gbW92ZSB1bmRvIGRhdGEgY29udGV4dCByZWxlYXNlIHRvIHVuZG9fY2xlYW51cAogICAtIHZhbGlkYXRlIHJjIGZyb20gbm9kZSBjaGVjayB2YWx1ZSByb3V0aW5lCgoyMDA0LTA2LTA3IDExOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIG1vcmUgaGVscCB0ZXh0IGZvciBkaXN0aW5jdGlvbiBiZXR3ZWVuIHdyb25nVmFsdWUvaW5jb25zaXN0ZW50VmFsdWUKCjIwMDQtMDYtMDcgMTE6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgdmFsaWRhdGVfaW5kZXgKICAgLSBpbmNsdWRlIGJhYnktc3RlcHMgZmxvdy1jaGFydCBiZWZvcmUgc2V0IGZ1bmN0aW9ucwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCgoyMDA0LTA2LTA3IDExOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICB1c2UgU05NUHYyIGVycm9ycyBpbnN0ZWFkIG9mIHYxIGVycm9ycwoKMjAwNC0wNi0wNyAxMToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gdHVybiBvZmYgaW5kZW50IGFyb3VuZCBjb25maWdfcmVxdWlyZSAoZG9lc24ndCBsaWtlICAnLycgb3IgJy0nIGNoYXJzKQogICAtIHNpbXBsaWZ5IHNvbWUgZXJyb3IgZGVmaW5lIG5hbWVzCgoyMDA0LTA2LTA3IDExOjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgc29tZSBxdWVzdGlvbi9oZWxwIHRleHQKCjIwMDQtMDYtMDcgMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgcmVzdG9yZSBmb3JlYWNoIHRhYmxlCgoyMDA0LTA2LTA3IDExOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICByZXZlcnQgY2hhbmdlcyBmb3Igc2V0dGluZyBzb21lIG1pYjJjIGRlZmF1bHRzICh1c2UgbWliMmMgLVMgeHh4IGluc3RlYWQpCgoyMDA0LTA2LTA3IDExOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgcGFzcyBleHRyYSBhcmdzIHRvIG1pYjJjCgoyMDA0LTA2LTA3IDExOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGNoYW5nZSBleGFtcGxlIGNvbW1lbnQgYmxvY2sgc28gaW5kZW50IHdpbGwgaW5kZW50IGl0CiAgIC0gc2tpcCBzdWJzdGl0dXRpb24gY2hlY2tzIGlmIHRoZXkgd29uJ3QgbWF0Y2gKICAgLSBhcHBseSBkYXZlJ3MgaGFjayBmb3IgOTM5MDQxOiAuLi4gYmFkIG1hY3JvIG5hbWUgaWZmIGVudW0gY29udGFpbnMgaHlwaGVuCgoyMDA0LTA2LTA3IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEJhY2t3YXJkcy1jb21wYXRhYmlsaXR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlCiAgIChpZiB0aGUgdWNkLXNubXAvZXh0ZW5zaWJsZSBtb2R1bGUgaXNuJ3QgY29uZmlndXJlZCBpbikuCgoyMDA0LTA2LTA3IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICBNb3ZlICdnZXRfZXh0ZW5faW5zdGFuY2UnIGludG8gdGhlIHV0aWxpdHkgZnVuY3Rpb24gZmlsZSwKICAgc28gdGhhdCB0aGUgdHdvIHBhc3MgaGFuZGxlcnMgYXJlbid0IGRlcGVuZGVudCBvbiAnZXh0ZW5zaWJsZScKCjIwMDQtMDYtMDYgMjM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggd2FybmluZ3MgYWJvdXQgbWlzc2luZyBtb2R1bGVzIHdoZW4gdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBmb3IgdGhlbQoKMjAwNC0wNi0wNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGN2cyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKCjIwMDQtMDYtMDQgMTM6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHJlbW92ZSByZWR1bmRhbnQgcmVmZXJlbmNlIHJvdyBmcm9tIG91dHB1dAoKMjAwNC0wNi0wNCAxMzozOSAgaGFyZGFrZXIKCiAgICogbWlicy9ub2RlbWFwOgoKICAgYWRkZWQgYSBub2RlbWFwIGZvciBodG1sIG91dHB1dCBnZW5lcmF0aW9uCgoyMDA0LTA2LTA0IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIGh0bWwgb3V0cHV0IGRpc3BsYXkgdGhlIHJlZmVyZW5jZSBpbiBpdGFsaWNzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZHMuCgoyMDA0LTA2LTA0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLmNvbmYuNToKCiAgIG1ha2UgJHgucmVmZXJlbmNlIGV4cGFuZCB0byBhIG9iamVjdHMgcmVmZXJlbmNlCgoyMDA0LTA2LTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBTTk1QOjpNSUIgb2JqZWN0cyBoYW5kbGUgYSAncmVmZXJlbmNlJyBrZXl3b3JkLgoKMjAwNC0wNi0wNCAxMzozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZWQgdGhlIHZhbHVlIG9mIHBhcnNlZCByZWZlcmVuY2UgY2xhdXNlcy4KCjIwMDQtMDYtMDQgMDU6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQSBsaXR0bGUgZXJyb3ItY2hlY2tpbmcgd2hlbiBmb3J3YXJkaW5nLCBhbmQgY2hhbmdlIGZwcmludGYgdG8gc25tcF9sb2cKCjIwMDQtMDYtMDQgMDM6MTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUHJvcGVybHkgZnJlZSBwcmludGJ1ZmZlcgoKMjAwNC0wNi0wNCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE1ha2Ugc3VyZSBhbGwgcmVnaXN0cmF0aW9uIGFyZSByZW1vdmVkIGZvciBleGVjJ3MKCjIwMDQtMDYtMDQgMDI6NDUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZ2FyYmxlZCBwYWNrZXRzIHdpdGggYmFkIHBhY2tldCB0eXBlcwoKMjAwNC0wNi0wNCAwMTo1NyAgbmJhCgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFNpbXBsZSBzcGVsbGluZyBmaXgKCjIwMDQtMDYtMDQgMDE6MTUgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkdXAgaW5zdGFsbGF0aW9uIG9mIHNjcmlwdHMgYWZ0ZXIgYWRkaXRpb24gb2YgLS1kaXNhYmxlLXNjcmlwdHMKCjIwMDQtMDYtMDQgMDA6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICB1bmRvIHByZXZpb3VzIGNoYW5nZSwgc2luY2UgaW50cm9kdWN0aW9uIG9mIGZyZWVic2Q1LmggaGVhZGVyIGRlZmluZXMgZnJlZWJzZDQuCgoyMDA0LTA2LTAzIDEyOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IGJ1ZyAjOTQzMzUxIGJ5IGNvbnNpZGVyaW5nIGZyZWVic2Q1IHdoZW4gZGVjbGFyaW5nICJoeiIuCgoyMDA0LTA2LTAyIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1yZWFkbWUubTJjOgoKICAgZml4IGEgZmV3IG1pc3NlZCBwcm9jZXNzaW5nX3R5cGUgdHdlYWtzCgoyMDA0LTA2LTAyIDA1OjM3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRSwgd2luMzIvQ29uZmlndXJlCiwgd2luMzIvYnVpbGQucGwsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIHdpbjMyL25tYWtlcGVybC5iYXQsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvciB3aW4zMiBkb2MgYW5kIHNjcmlwdHMsIG1hdGNoIHRoZSBiYXNlIGRpcmVjdG9yeSB1c2VkIGFzIGN1cnJlbnQgZGVmYXVsdC4KCjIwMDQtMDYtMDEgMDI6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSGFuZGxlIHJvdyBkZWxldGlvbiAoYW5kIGZhaWxlZCByb3cgY3JlYXRpb24pIHByb3Blcmx5LgogICBNb3ZlIHJvdyBjcmVhdGlvbiBhbmQgbmV3IHZhbHVlIGFzc2lnbm1lbnRzIHRvIHRoZWlyIG5hdHVyYWwKICAgcGFzc2VzLCB3aXRoIGEgc2Vjb25kIChzZXBhcmF0ZSkgY2hlY2sgZm9yIHJvdyB2YWxpZGl0eS4KICAgKGZvbGxvd2luZyBSb2JlcnQncyBzdWdnZXN0aW9uKQoKMjAwNC0wNi0wMSAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgZm9sbG93aW5nIHRoZSBhZGRpdGlvbiBvZiAncmVsb2NhdGFiaWxpdHknLgogICBFbnN1cmUgdGhhdCB0aGUgInN0YW5kYXJkIiBsb2NhdGlvbiBpcyByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkKICAgKHNvIHRoZSBudW1Sb3dzIG9iamVjdCBpcyBwcmVzZW50LCBldmVuIHdpdGggYW4gb3RoZXJ3aXNlIGVtcHR5IHRhYmxlKS4KCjIwMDQtMDUtMjcgMjA6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdXBkYXRlIHN0YXR1cyB0byByZWZsZWN0IHNubXB0cmFwZCBjYW4gYmUgcnVuIGFzIGEgV2luZG93cyBzZXJ2aWNlLgoKMjAwNC0wNS0yNyAwNTozNyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIENvcnJlY3QgdGhlIG51bWJlciBvZiBjb3B5cmlnaHQgbm90aWNlcwogICBsaXN0ZWQsIGFuZCB0aGUgdGV4dCBvZiB0aGUgU3BhcnRhIG9uZS4KICAgKEkgdHJ1c3QgdGhpcyBpcyBPSywgV2VzISkKCjIwMDQtMDUtMjYgMDE6MzkgIGR0czEyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBSZW1vdmUgd2FybmluZ3Mgb2YgQWdlbnRYICJiZXRhLXN0YXR1cyIuCiAgIChJIGtub3cgSSdtIGdvaW5nIHRvIHJlZ3JldCBkb2luZyB0aGlzLi4uLikKCjIwMDQtMDUtMjUgMDg6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBY2NlcHQgdGhlIHNhbWUgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGFzIHVzZWQgaW4gdGhlCiAgICJyW3dvXXVzZXIiIGFuZCAiYWNjZXNzIiBkaXJlY3RpdmVzLgoKMjAwNC0wNS0yNCAwMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgcmVsb2NhdGFibGUgZm9ybSBvZiBhZ2VudCBleHRlbnNpb24gdGFibGUuCgoyMDA0LTA1LTI0IDAzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEltcGxlbWVudCAncnVuLW9uLXdyaXRlJyBzdXBwb3J0LCBhbmQgdXNlIGl0IHRvIGhhbmRsZSBhCiAgIG5ldyAnZXhlY0ZpeCctc3R5bGUgZGlyZWN0aXZlLgoKMjAwNC0wNS0yMyAxMDo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggWzk1Nzk0Ml0gV2luMzIgc2VydmljZSBpbnN0YWxsIHBhdXNlCgoyMDA0LTA1LTIxIDEwOjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yL3Byb2Nlc3MgZGVsZWdhdGVkIHJlcXVlc3RzIGluIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzCgoyMDA0LTA1LTIwIDIxOjA5ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBmYWlsdXJlIHJlc3VsdCBzaG91bGQgY3ZzIGNoZWNrb3V0IGNvbmRpdGlvbiBub3QgYXBwbHkuCiAgIFRoaXMgcGVybWl0cyBidWlsZHMgb3V0c2lkZSBDVlMgdHJlZSB0byBzdWNjZWVkLgoKMjAwNC0wNS0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTWlub3Igd29yZGluZzogYWRkZWQgdGFibGUgbmFtZSB0byAiaW5kZXgiIGFuZCAib3RoZXIgY29sdW1ucyIgbGluZS4KCjIwMDQtMDUtMjAgMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICByZW1vdmUgY2hhbmdlcyBhY2NpZGVudGlhbGx5IGFwcGxpZWQgdGhhdCB3ZXJlbid0IHJlYWR5CgoyMDA0LTA1LTIwIDE1OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IFZlcnNpb24tTXVuZ2UucGwsIG1pYjJjLmdlbmh0bWwuY29uZjoKCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3Igbm90aWZpY2F0aW9uIGRlc2NyaXB0aW9ucwoKMjAwNC0wNS0xOSAxODowOSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBnZXRfdGNfZGVzY3JpcHRpb24gYW5kIGluaXRfdXNtX2NvbmYgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdC4KCjIwMDQtMDUtMTkgMTg6MDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBlcm1pdCBDeWd3aW4gYnVpbGQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgYmFja3NsYXNoIHBydW5pbmcgYW5kIHNpbmdsZSBsZXR0ZXIgdm9sdW1lIHNwZWNpZmllci4KCjIwMDQtMDUtMTkgMTc6NTQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBwZXIgQWxleCBCdXJnZXI6ICBzbm1wY29uZiBkYXNoIGxpdHRsZS1leWUKCjIwMDQtMDUtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGFyc2luZyBvZiBleHBsaWNpdCBoYW5kbGVyIHR5cGVzCgoyMDA0LTA1LTE5IDEzOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGEgbWliMmMgdXBkYXRlCgoyMDA0LTA1LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICAtIHN1cHBvcnQgYSB0YWJsZSBvZiBjb250ZW50cwogICAtIG5hbWUgYWxsIG5vZGVzIHVzaW5nIGh0bWwgbmFtZXMKICAgLSBzdXBwb3J0IGEgdHJlZS12aWV3CiAgIC0gbWlzYyBidWcgZml4ZXMKCjIwMDQtMDUtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICJmb3JlYWNoICRpIHN0dWZmIExJU1QiCiAgIC0gdXNlIHVuc2hpZnQgaW5zdGVhZCBvZiBwdXNoIGZvciBjYWxsZGVmaW5lIHRvIGVuc3VyZSBwcm9wZXIgcmVjdXJzaW9uCiAgIC0gcmVnZXhwIG11bmdpbmcKCjIwMDQtMDUtMTkgMTA6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGxvYWQgdGhlIGNhY2hlIGZvciByZXNlcnZlMSAob3RoZXJ3aXNlIGEgZ2V0IGlzIHJlcXVpcmVkIGJlZm9yZSBzZXQgd29ya3MpCgoyMDA0LTA1LTE4IDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBhbGxvdyBmb3IgdXNlciBvdmVycmlkZSBvZiBtZmQgb3B0aW9uIGRlZmF1bHRzCgoyMDA0LTA1LTE4IDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2YgbWZkIG9wdGlvbnMKCjIwMDQtMDUtMTggMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGFsbG93IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCBvZiBvcHRpb25zOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBzZXQgdmFyYmluZCBlcnJvciBvbiBjb2x1bW4gc2V0IGVycm9yOyBhbHdheXMgY2FsbCByb3dfcHJlcDsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dAogICBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mCiAgICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXRvcC5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBzZXBhcmF0ZSBtZmRfcHJvY2Vzc2luZ190eXBlcwogICBmcm9tIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDUtMTggMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IHJlbW92ZSBkYXRhIHNldHVwIGZyb20gcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGRlZmF1bHQgdG8gc2V0dGluZyB1cCBkYXRhCiAgIGNvbnRleHQgaW4gY2FjaGVfbG9hZCwgaW5zdGVhZCBvZiByb3dfcHJlcAoKMjAwNC0wNS0xOCAxMToyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBhc3N1bWUgbWFwcGluZyBhbHJlYWR5IGRvbmU7IHNldCBsZW4gdG8gbWF4IHNpemUgYmVmb3JlCiAgIGNoZWNraW5nIGlmIGl0IGlzIGxhcmdlIGVub3VnaCB0byBob2xkIGEgdmFsdWUKCjIwMDQtMDUtMTggMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBsb2cgZXJyb3IgaWYgbm90IGVub3VnaCBzcGFjZSBmb3IgdmFyCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTA1LTE4IDExOjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBjYXNlIG9mIHNvbWUgY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBtYWtlIGdlbmVyaWMtdGFibGUtKGVudW1zfG9pZHMpIG9ubHkgcnVuIG9uIGN1cnJlbnQKICAgdGFibGU7IGFkZCB0YWJsZSBsb29wIGluIGdlbmVyaWMtdGFibGUtY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGFkZCBkZWJ1ZyB0cmFjaW5nIGZvciBzZXQgZnVuY3Rpb25zCgoyMDA0LTA1LTE4IDEwOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy10YWJsZS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaSwgbWZkLXJlYWRtZS5tMmMKOgoKICAgY29tbWVudCB0d2Vha3M7IGNoZyAkdGFibGUgdG8gJGNvbnRleHQKCjIwMDQtMDUtMTggMDI6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgV3JpdGUgc3VwcG9ydCwgaW5jbHVkaW5nIFJvd1N0YXR1cy1iYXNlZCBjcmVhdGlvbiBvZiBuZXcgKHZvbGF0aWxlKSByb3dzLgogICBUaGUgY29kZSBuZWVkcyBhIGJpdCBvZiB0aWR5aW5nIHVwLCBidXQgc2VlbXMgdG8gYmUgcmVhc29uYWJseSBmdW5jdGlvbmFsLgoKMjAwNC0wNS0xOCAwMjowMSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDQtMDUtMTcgMjA6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoICMgOTU1NTc5IHRvIGNvbXBsZXRlIG1pbm9yIGNoYW5nZXMgdG8gaW5zdGFsbCB0YWJzLgoKMjAwNC0wNS0xNyAxOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocDoKCiAgIEFkanVzdCB1c2FnZSB0byBhY2NvdW50IGZvciByZW1vdmVkIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTk6NTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IENvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICBDb25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIERldmVsb3BlciBGQVEuaHRtbCwKICAgICBEZXZlbG9wZXJfRkFRLmh0bWwsIEhlbHAgQ2F2ZWF0cy5odG1sLAogICAgIEhlbHBfQ2F2ZWF0cy5odG1sOgoKICAgcmVtb3ZlIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTU6NDUgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXggQnVyZ2VyLCBvbmUtbGluZSBjaGFuZ2UgKGxpbmUgMTU5LCBjaGFuZ2UgcGVyaW9kIHRvIGNvbG9uKS4KCjIwMDQtMDUtMTcgMDc6MTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dAosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sLAogICAgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLCB3aW4zMi9sb2NhbC9taWIyYy5iYXQsCiAgICAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LCB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQKOgoKICAgcGVyIEFsZXggQnVyZ2VyOiB0ZXN0IGV4aXN0ZW5jZSBvZiBwZXJsOyBwcm92aWRlIGFjY2VzcyB0byBtb3JlIFBlcmwgcHJvZ3JhbXMuCgoyMDA0LTA1LTE3IDA2OjQ0ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoOiBhcHBseSBwYXRjaCAjOTU1MjU1IHRvIGVuaGFuY2UgdGhlIE5TSVMgaW5zdGFsbGVyLgoKMjAwNC0wNS0xNyAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgdGhlIG11bHRpLXJvdyBvdXRwdXQgTUlCIHRhYmxlLgoKMjAwNC0wNS0xNCAwNDoyMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE9vcHMhICBDbG9zZSAtIGJ1dCBpdCdzIGEgZ29vZCBqb2IgSSBkb24ndCBzbW9rZS4uLi4KCjIwMDQtMDUtMTMgMjE6MjMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgcGVyIEFsZXhCOiBkZXNjcmliZSBmdXJ0aGVyIGRldGFpbHMgb2YgYnVpbGRpbmcgKGNyZWF0aW5nIGVtcHR5IGZpbGVzLCBldGMpLgoKMjAwNC0wNS0xMyAyMToxMyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBwZXIgQWxleEI6IGFkZGVkIHNlY3Rpb24gImNvLWV4aXN0aW5nIHdpdGggbSQgc2VydmljZXMiCgoyMDA0LTA1LTEzIDIwOjI5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLzogQWRkMlBhdGgubnNpLCBTZXRFblZhci5uc2ksCiAgICAgbmV0LXNubXAtaGVhZGVyMS5ibXAsIG5ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoOiBwYXRjaCBbOTUyNTA5XSB0byBmaXggbGluayBuYW1lcyBmb3IgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzLgoKMjAwNC0wNS0xMyAyMDoxMiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBQZXIgQWxleCBCdXJnZXIgYW5kIEFuZHkgU21pdGg6IHVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBjcmVhdGluZyBhIHdpbjMyIGluc3RhbGxhYmxlIHBhY2thZ2UuCgoyMDA0LTA1LTEzIDIwOjA0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNS0xMyAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBTcGxpdCBuZXcgZXh0ZW5zaW9uIHRhYmxlIGludG8gdHdvIChjb25maWd1cmF0aW9uIGFuZCBvdXRwdXQpLgogICBJbXBsZW1lbnQgc2NhbGFyIHRvIHRyYWNrIHRoZSBudW1iZXIgb2YgZW50cmllcy4KICAgUGFyc2UgbXVsdGktbGluZSBvdXRwdXQgdG8gaW1wbGVtZW50ICduc0V4dGVuZE91dHB1dDFMaW5lJyBvYmplY3QuCgoyMDA0LTA1LTEzIDA0OjA2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgU2VwYXJhdGUgY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0IGludG8gc2VwYXJhdGUgdGFibGVzLCBhcyBzdWdnZXN0ZWQuCiAgIERyb3AgJ291dHB1dCBsZW5ndGgnIG9iamVjdCBhcyBwcm9iYWJseSB1bm5lY2Vzc2FyeS4KICAgTmV3IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHRhYmxlLgogICBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGlzIGdyb3VwIHdpbGwgbm90IGJlIGVtcHR5LAogICBldmVuIHdoZW4gbm8gZXh0ZW5zaW9ucyBhcmUgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBhZ2VudC4KICAgKEknbSBzdGlsbCBub3QgaGFwcHkgd2l0aCBzb21lIG9mIHRoZSBuYW1lcywgdGhvdWdoISkKCjIwMDQtMDUtMTEgMDM6NTkgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbnVwIGVycm9yIG1lc3NhZ2VzLiBjbGFyaWZ5IFNDTSBpbnRlcmFjdGlvbnMgd2l0aCB3b3JrZXIgdGhyZWFkIGluIGNvbW1lbnRzLgoKMjAwNC0wNS0xMSAwMzoxMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBzb21lIFNNSSBlcnJvcnMuCiAgIFdlcyBjYW4gYmUgYSBwaWNreSBiZWdnYXIgYXQgdGltZXMuLi4uCgoyMDA0LTA1LTEwIDE3OjUwICBzbGlmCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGw6CgogICBwZXIgQWxleCBCdXJnZXIgLSBhZGQgbWlzc2luZyB0ZXN0IHNjcmlwdC4KCjIwMDQtMDUtMTAgMTM6NDkgIGhhcmRha2VyCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIEFub3RoZXIgZG9jIHVwZGF0ZSBmcm9tIEFsZXgKCjIwMDQtMDUtMTAgMDM6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtdGF0aW9uIG9mIG5ldyBuc0V4dGVuZFRhYmxlCgoyMDA0LTA1LTEwIDAzOjQ0ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgUmV2aXNlZCBNSUIgZm9yIHNjcmlwdGVkIGV4dGVuc2lvbnMuCiAgIChUbyByZXBsYWNlIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUpCgoyMDA0LTA1LTEwIDAzOjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEZWZlbnNpdmUgcHJvZ3JhbW1pbmcgLSBkb24ndCBjcmFzaCBvbiBOVUxMIHBhcmFtZXRlcnMuCgoyMDA0LTA1LTEwIDAzOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEV4dGVybmFsIEFQSSBmb3IgY2hlY2tpbmcgYW5kIHJlbG9hZGluZyBhIGNhY2hlZCB2YWx1ZS4KICAgV2Vha2VuIHRoZSBsaW5rcyBiZXR3ZWVuIHRoaXMgaGVscGVyIGFuZCAnbnNDYWNoZVRhYmxlJy4KCjIwMDQtMDUtMDcgMTU6NDEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBGUk5FVFNFUlYtTUlCCgoyMDA0LTA1LTA3IDE1OjE5ICBuYmEKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQsCiAgICAgcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCIHZlcnNpb25zCgoyMDA0LTA1LTA3IDE1OjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBUaGUgd29yZCBQUkVGSVggaXMgbm90IGVuZGFuZ2VyZWQgZm9yIHN1YnN0aXR1dGlvbiwgc28gbWFrZSBpdCBsb29rIG5vcm1hbAoKMjAwNC0wNS0wNyAxNDozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggZm9yIHRydW5jYXRlZCBvaWQgd2hlbiB1c2luZyBPQkpFQ1QgSURFTlRJRklFUiBhcyBpbmRleAoKMjAwNC0wNS0wNyAxNDoxNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggdG8gYWxsb3cgc3BlY2lmeWluZyBudW1lcmljIG9pZCBmb3IgdGFibGUKCjIwMDQtMDUtMDYgMjA6MTUgIHNsaWYKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtOgoKICAgUGVyIEFsZXggQnVyZ2VyLCBhZGQgbmFtZXMgdG8gYWNrbm93bGVkZ2UgdGhlIGluZGl2aWR1YWwgY29udHJpYnV0b3JzLgoKMjAwNC0wNS0wNiAxOTo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICByZWZsZWN0IHRoYXQgUkVBRE1FLUZJUlNULnR4dCBhbmQgSW5zdGFsbGF0aW9uLmh0bWwgaGF2ZSBiZWVuIG1lcmdlZCBpbnRvIFJFQURNRS50eHQKCjIwMDQtMDUtMDYgMTk6MDIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUGVyIEFuZHkgU21pdGgsIHBhdGNoICM5NDI3NjYgY3JlYXRlcyBTTk1QQ09ORlBBVEggYW5kIFNOTVBTSEFSRVBBVEggYXMgc3lzdGVtIGVudiB2YXJzLgoKMjAwNC0wNS0wNiAxODo1NCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFBlciBBbmR5IFNtaXRoLCBkb24ndCBzaG93IG1lc3NhZ2UgZGlhbG9ncyB3aGVuIHJlZy91bnJlZyBPSyAocGF0Y2ggOTQ4OTI2IGZpeGVzIGJ1ZyA5NDgxNDYpLgoKMjAwNC0wNS0wNiAxODowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLUZJUlNULnR4dCwgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIFJFQURNRS50eHQsIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLCBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIHdpbmRvd3MgYnVpbGQgcGFja2FnaW5nIHBlciBBbGV4IEJ1cmdlcidzIHBhdGNoLXdpbjMyLTUuMS4yLWNsZWFudXAuZGlmZgoKMjAwNC0wNS0wNiAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGJsb2NrIHNjb3BlOyBhZGQgaGVhZGVyIHRvIHF1aWV0IHByb3RvdHlwZSB3YXJuaW5nCgoyMDA0LTA1LTA1IDE0OjQxICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIEFkZCBJQU5BLU1BTExPQy1NSUIKCjIwMDQtMDUtMDUgMTM6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgUHJvdGVjdCBvaWQgdGFibGUgYWdhaW5zdCBvdmVyZmxvdwoKMjAwNC0wNS0wNSAwNzozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIHNob3VsZF9pbml0IGJlZm9yZSBpbml0aWFsaXppbmcgc211eAoKMjAwNC0wNS0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmY6CgogICBGaXggYSBoZWFkZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgoyMDA0LTA1LTA0IDA3OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX2NvbmYuYywKICAgICB2YWNtX2NvbmYuaCwgdmFjbV92YXJzLmg6CgogICBTcGxpdCBWQUNNIGhhbmRsaW5nIGludG8gdHdvIC0gb25lIGNvbmNlcm5lZCB3aXRoIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICBhbmQgdmFsaWRhdGluZyBhY2Nlc3MsIHRoZSBvdGhlciB0byBoYW5kbGUgdGhlIE1JQiB0YWJsZSByZXByZXNlbnRhdGlvbi4KICAgVGhpcyBhbGxvdyB0aGUgYWdlbnQgdG8gc3VwcG9ydCBWQUNNLWJhc2VkIGFjY2VzcyBjb250cm9sIHdpdGhvdXQgbmVjZXNzYXJpbHkKICAgaW5jbHVkaW5nIHRoZSBWQUNNLXJlbGF0ZWQgdGFibGVzLgoKMjAwNC0wNS0wNCAwNzoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYwosIGFwcHMvc25tcHRyYXBkLmM6CgogICBNb3ZlIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byB0aGUgbGlicmFyeSwgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuCiAgIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIuICAgVGhpcyBhbHNvIHBhdmVzIHRoZSB3YXkgZm9yIHNlcGFyYXRpbmcKICAgY29uZmlnLWJhc2VkIGhhbmRsaW5nIG9mIHNldHRpbmcgdXAgdXNlcnMgZnJvbSB0aGUgVVNNIE1JQiBoYW5kbGVyLgoKMjAwNC0wNS0wNCAwMToxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25maWd1cmUgaW5kZW50IHRvIHJlY29nbmlzZSAnc2l6ZV90JyBhcyBhIHR5cGUgbmFtZSAoQnVnICM5NDY5MzkpCgoyMDA0LTA1LTAzIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFNldCBubyByZXBlYXQtY291bnQgdG8gMSB3aGVuIG5vZ2V0YnVsayBpcyBzcGVjaWZpZWQgZm9yIG1hdGggcHVycG9zZXMuCgoyMDA0LTA1LTAzIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIENQVV9XQUlUIGxvb2tzIHN0cmFuZ2Ugb24gc29tZSBzZXJ2ZXJzLiBVcGRhdGUgdG8gc2FtZSBhbGdvcml0aCB0b3AgdXNlcwoKMjAwNC0wNC0zMCAxNzowMCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIE1hbnkgbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgICAtIE5vdyB0YWtlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBjaGFuZ2luZyBNSUJESVJzIGFuZCBvdXRwdXQgZGlycy4KICAgIC0gYWNjZXB0cyBhIG5vZGVtYXAgdG8gbWFwIE1JQnMgdG8gb3RoZXIgbm9kZXMuCgoyMDA0LTA0LTMwIDE1OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBBZGRlZCBhIHRvdWNoIG9mIGNvbG9yLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmdlbmh0bWwuY29uZgoKMjAwNC0wNC0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBtYWtlaHRtbC5wbDoKCiAgIC0gQSBtYWtlIHJvdXRpbmUgdG8gZ2VuZXJhdGUgYSBIVE1MIGR1bXAgb2Ygb3VyIERpc3RyaWJ1dGVkIE1JQnMuCiAgICAgLSBJbnN0YWxsZWQgYXQgaHR0cDovL3d3dy5OZXQtU05NUC5vcmcvbWlicy8KCjIwMDQtMDQtMjggMTc6MjQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICB1cGRhdGUgYWZ0ZXIgZXh0cmFjdGlvbgoKMjAwNC0wNC0yOCAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtYW55IG1vcmUgdXBkYXRlcyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgbWliMmMgY29tbWFuZHMuCgoyMDA0LTA0LTI4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZG9jdW1lbnQgbW9yZSBhbmQgY2xlYW4gdXAgJHZhci5YWFggY29tbWVudHMKCjIwMDQtMDQtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIE9ubHkgYnVpbGQgdGhlIG1pYjJjLmNvbmYgbWFuIHBhZ2UgaWYgY29taW5nIGZyb20gYSBjdnMgY2hlY2tvdXQKICAgICAtIGF2b2lkcyBwZXJsIGRlcGVuZGVuY2llcyBvbiBlbmQtdXNlciBtYWNoaW5lcy4KCjIwMDQtMDQtMjggMTY6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mLjUsIG1pYjJjLmNvbmYuNS5pbgosIG1pYjJjLmV4dHJhY3QucGw6CgogICBOZXcgZG9jdW1lbnRhdGlvbiBmb3IgaG93IHRvIHdyaXRlIG1pYjJjLmNvbmYgZmlsZXMuCiAgICAgLSBub3RlLCBtdWNoIGlzIGF1dG8tZXh0cmFjdGVkIGZyb20gY29tbWVudHMgaW4gbWliMmMuCgoyMDA0LTA0LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbnN0cnVjdCBjb21tZW50cyBiZXR0ZXIgZm9yIGF1dG8tZXh0cmFjdGlvbiBpbnRvIGEgbWFudWFsIHBhZ2UuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBOZXcgbWliMmMuZ2VuaHRtbC5jb25mIGNvZGUgdG8gZ2VuZXJhdGUgYSBIVE1MIGRvY3VtZW50IGZyb20gYSBNSUIKICAgZG9jdW1lbnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KCjIwMDQtMDQtMjggMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBuZXcgQHN0YXJ0cGVybEAgLyBAZW5kcGVybEAgZGVmaW5pdGlvbnMgdG8gY29tcGxldGVseSBvdXRzb3VyY2Ugc29tZQogICAgIHRleHQgdG8gYSBsYXJnZSBibG9jayBvZiBwZXJsLgogICAtIGFkZGVkIG1pYjJjX291dHB1dCgpIHRvIG91dHB1dCBhIGxpbmUgb2YgdGV4dCB0byB0aGUgcmlnaHQgcGxhY2UKICAgICBmcm9tIGFueXdoZXJlIGluIHBlcmwgKGV2YWxlZCkgY29kZS4KCjIwMDQtMDQtMjggMTU6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBzdXBwb3J0IHRoZSBhYmlsaXR5IHRvIGdldCBUQyBkZXNjcmlwdGlvbnMgZnJvbSBwZXJsCgoyMDA0LTA0LTI4IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggb3V0cHV0IHRvIHJlc3BlY3QgdGhlIG91dHB1dCBsZW5ndGggcmV0dXJuZWQgYnkgdGhlIHZhcmlhYmxlCiAgIHByaW50aW5nIHJvdXRpbmVzLgoKMjAwNC0wNC0yOCAxNTozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZSB0ZXh0dWFsIGNvbnZlbnRpb24gZGVzY3JpcHRpb24ncwogICAtIEltcGxlbWVudCArY29uc3QgY2hhciAgICAgKmdldF90Y19kZXNjcmlwdGlvbihpbnQgdGNfaW5kZXgpCgoyMDA0LTA0LTI4IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY2hhbmdlIHZhcmlhYmxlIHRvIGNvbnN0IHZhciB0byBhdm9pZCB3YXJuaW5nLgoKMjAwNC0wNC0yNyAxMTo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggYXV0by1lbmFibGluZyBvZiAtLXdpdGgtcGVybC1tb2R1bGVzIHdoZW4gLS1lbmFibGUtZW1iZWRkZWQtcGVybCBpcyBzZWxlY3RlZAoKMjAwNC0wNC0yNiAwMzoyNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgUmVzdG9yZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiAnY2xvbmVGcm9tJyBhbmQgJ2NyZWF0ZScoK2Nsb25lKQogICBzdWJjb21tYW5kcy4gIEZpeCBoYW5kbGluZyBvZiBiYXJlICdjcmVhdGUnIHN1YmNvbW1hbmQgKHNpbmNlIGFuCiAgIHVuY2xvbmVkIHVzZXIgY2FuJ3QgYmUgbWFya2VkIGFzIEFDVElWRSB3aXRoIHRoZSBOZXQtU05NUCBhZ2VudCkKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBtb3JlIGNsZWFybHkuCgoyMDA0LTA0LTIzIDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgcmV0cmlldmluZyB0aGUgdGFibGUgY29udGFpbmVyIChvciAndGFibGVfZGF0YScpCiAgIHN0cnVjdHVyZSBmcm9tIHdpdGhpbiBhIGhhbmRsZXIgcm91dGluZS4KICAgVGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIHVzaW5nIGdsb2JhbCB2YXJpYWJsZXMuCgoyMDA0LTA0LTIzIDA0OjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaDoKCiAgIHNjcmlwdCB0aGF0IGNvbnZlcnRzIGJhY2sgdG8gd2luc29jayAxIGxpYnJhcnkuICBubyB1bmRvIGlzIGV4cGxhaW5lZC4KCjIwMDQtMDQtMjIgMTk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIGNoYW5nZSBhbGwgREVCVUdUUkFDRSB0byBERUJVR01TVEwoKCJ2ZXJib3NlOmZ1bmN0aW9uX25hbWUiLi4uCgoyMDA0LTA0LTIyIDA3OjEzICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHBhdGNoIGZyb20gQW5keSBTbWl0aDogWzkzMTY3M10gUnVuIHNubXB0cmFwZCBhcyBhIFdpbmRvd3Mgc2VydmljZTsKICAgc2xpZiBkaWQgdGhlIG1ha2VmaWxlL3Byb2plY3QgZmlsZSB0b3VjaGVzLgoKMjAwNC0wNC0yMiAwNzoxMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWF0Y2ggYXBwbGljYXRpb24gbmFtZSB3aXRoIGRpc3BsYXkgbmFtZSB0byBpbXByb3ZlIGV2ZW50IGxvZyBsZWdpYmlsaXR5LgoKMjAwNC0wNC0yMiAwNzowOCAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZSBpbmNsdWRlIHNlYXJjaCBwYXRoIGZvciBzbm1wbGliIHRvICIuLlwuLiIgW3dhcyBwb2ludGluZyBlbHNld2hlcmVdLgoKMjAwNC0wNC0yMSAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgdXBkYXRlIGhlbHAgbWVzc2FnZQoKMjAwNC0wNC0yMSAxOTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHVzZSAjIGluc3RlYWQgb2YgKiBmb3Igc3BlY2lhbCBjaGFyLCBzaW5jZSBwZXJsIGRvZXNuJ3QgbGlrZSB0aGUgKgoKMjAwNC0wNC0yMSAxOTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTIxIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBmaXggcXVvdGluZyBwcm9ibGVtCgoyMDA0LTA0LTIxIDE5OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgZm9yIG5vbi1pbmRleCBtYXAgZnVuY3Rpb25zCgoyMDA0LTA0LTIxIDE5OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZ2V0IHJpZCBvZiBsb29wX2luaXRfY29udGV4dCwgbW92aW5nIGl0J3Mgd29yayBpbnRvIGdldF9maXJzdDsgZml4IHRlc3QKICAgZm9yIGNvZGUgZ2VuIGZvciB0cmFuc2llbnQgZGF0YQoKMjAwNC0wNC0yMSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBkb24ndCB1c2UgdWMgZnVuY3Rpb24sIGFzIGl0IGJhcmZzIG9uIGVudW1zIHcvaHlwaGVucwoKMjAwNC0wNC0yMSAwNTo1MyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLm5zaToKCiAgIGZyb20gQW5keSBTbWl0aDogaW5zdGFsbGVyIGNvbXBvbmVudHMKCjIwMDQtMDQtMjAgMjA6NDggIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICBmaXggWzgwNzM0OV0gdWNkLXNubXAvdmVyc2lvbi5oIHRyaWVzIHRvIHVzZSBhIG11dGFibGUgdmFyaWFibGUgWyNkZWZpbmVdCgoyMDA0LTA0LTIwIDIwOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMsIGNoYW5nZSBidWlsZCBtZW51LCBhbmQgbWFudWFsIGJ1aWxkIGlwdjYgaW5zdHJ1Y3Rpb25zLgoKMjAwNC0wNC0yMCAxODo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcGF0Y2gtYnVnLTkxOTQ2NS00IGFwcGxpZWQgdG8gZml4IFs5MTk0NjVdIGJ1ZyBpbiBzeXN0ZW0uYwoKMjAwNC0wNC0yMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQxMTBhZ2VudHhnZXQKLCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwKICAgICBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIFVzZSBuZXcgZ2xvYmFsIFN2M2NvbmZpZyBtYXN0ZXIgcGFyYW0gc2V0dXAKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1QUVTLCBUMDI2c25tcHYzZ2V0U0hBQUVTCjoKCiAgIE5ldyB0ZXN0cyBmb3IgQUVTIHN1cHBvcnQKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTCiwgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGRldGVybWluZSB0aGUgYmVzdCBhdXRoL2VuY3IgdHlwZSBhdmFpbGFibGUgYW5kIHVzZSBpdC4KCjIwMDQtMDQtMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGZvciBkaXNhYmxlZCBzbm1wdjEvMmMgYW5kIG1kNS9kZXMKCjIwMDQtMDQtMjAgMTU6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHVuYmFsYW5jZWQgaWYvZW5kaWYgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTA0LTIwIDEyOjA5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL2luZXRfbnRvcC5jCiwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBlcnJvcnMgYnVpbGRpbmcgSVB2NiBzdXBwb3J0IGZvciBNU1ZDKyssIE1pbkdXLCBhbmQgQ3lnd2luLgoKMjAwNC0wNC0yMCAwNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggYnJva2VuIHVzYWdlIG9mIHF3KCkKCjIwMDQtMDQtMjAgMDY6MjAgIHNsaWYKCiAgICogd2luMzIvRVhBTVBMRS5jb25mLndpbjMyOgoKICAgYWRkIHNhbXBsZSBjb25maWcgZmlsZQoKMjAwNC0wNC0yMCAwNDozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgICAgbnNMb2dnaW5nLmM6CgogICBGaXggaW50L2xvbmcgbWl4dXAgZm9yIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTA0LTIwIDA0OjMzICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXAuYzoKCiAgIEVuc3VyZSBkaWFnbm9zdGljcyB3aXRoIEFTTi4xIGVuY29kaW5nIGVycm9ycwoKMjAwNC0wNC0yMCAwMzo1MSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFudXAgInJlYWRpbmcgTUlCIGZpbGUiIHZlcmJvc2UgbWVzc2FnZSAoY29tcGlsZWQgTUlCRElSUy9NSUJTIG5vdCB1c2VmdWwvZGlzY2VybmFibGUpLgoKMjAwNC0wNC0yMCAwMjo1MSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHVuc2lnbmVkIGNvbXBhcmUgb2YgbGVuIHRvIGxpbmVfbGVuIGluIHNwcmludF9yZWFsbG9jX2hleHN0cmluZwoKMjAwNC0wNC0yMCAwMjo0OCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGRfbWliZGlyIHZhcmlhYmxlICd0b2tlbicgaXMgbm90IHVzZWQgb24gd2luMzIuICBtb3ZlIHRvIHVuZGVyIHRoZSBpZmRlZi4KCjIwMDQtMDQtMTkgMjM6NDAgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTI4ODcyXSBXaW4zMiBidWlsZC5iYXQgc25tcGNvbmYsbWliMmMsdHJhcHRvZW1haWwKCjIwMDQtMDQtMTkgMjM6MjAgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9EZXZlbG9wZXIgRkFRLmh0bWwsIGh0bWxoZWxwL0ZBUS5odG1sCiwgaHRtbGhlbHAvSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgaHRtbGhlbHAvSW5zdGFsbGF0aW9uLmh0bWwsIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sCiwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAsCiAgICAgaHRtbGhlbHAvbmV0LXNubXAtNC4yLTgwMC5qcGcsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIHNjcmlwdHMvY3JlYXRlLXRvYwosIHNjcmlwdHMvbWFuZGlyMmh0bWwsIHNjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgc2NyaXB0cy9yZWFkbWUyaHRtbCwgc2NyaXB0cy90eHQyaHRtbDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MzgyMTRdIFdpbjMyIGRpc3QgZm9sZGVyIC0gYnVpbGRpbmcgYSBiaW5hcnkgcmVsZWFzZQoKMjAwNC0wNC0xOSAyMzowNSAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MTg0MTBdIFNOTVBDT05GIGR5bmFtaWMgcGF0aHMKCjIwMDQtMDQtMTkgMjE6NTIgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBjb25kaXRpb25hbGx5IGNvbXBpbGUgZm9yIHBsYXRmb3JtcyB3aXRoIHN0YXRpYyBvYmplY3QgbGlzdHMgW25vIGNvbmZpZ3VyZV0uCgoyMDA0LTA0LTE5IDIxOjQ5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBuZXRzdGF0Lmg6CgogICByZWR1Y2Ugd2FybmluZ3MgZm9yIHVuZGVjbCdkIHN0cnVjdDsgZGVjbGFyZSBpbmV0NnByaW50IG9ubHkgd2hlcmUgaXQgaXMgbmVlZGVkLgoKMjAwNC0wNC0xOSAyMTo0MSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBkb24ndCBleHBvc2UgZ2V0YWRkcmluZm8gaWYgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCgoyMDA0LTA0LTE5IDIxOjM5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGZpeCB1bnNpZ25lZCBpbnQgY29tcGFyZQoKMjAwNC0wNC0xOSAyMTozOCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICB0cmFkZSBpbiBhIHNpbmdsZSB0eXBlZGVmIHVpbnQ4X3QgZm9yIHRoZSB3aWRlbHkgdXNlZCB1X2NoYXIuCgoyMDA0LTA0LTE5IDIxOjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNsZWFudXAgd2hlbiBmaW5pc2hlZCB3aXRoIGFkZHJpbmZvIHN0cnVjdHVyZS4KCjIwMDQtMDQtMTkgMjA6MDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgaW5ldF9udG9wLGluZXRfcHRvbiB0byBzbm1wbGliIG9iamVjdHMgZm9yIHdpbjMyIGJ1aWxkcy4KCjIwMDQtMDQtMTkgMjA6MDggIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgbW9yZSByb2J1c3QgY2hhbmdlIGZvciBORVRTTk1QX1VTRV9ETEwuCgoyMDA0LTA0LTE5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCAjaWZkZWYgYnVnCgoyMDA0LTA0LTE5IDE2OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGFkZCBjb21tZW50IGZyb20gTmllbHMgQi4gcmVhc29uIGZvciB3aW4zMiBpZmRlZnMgaW4gYWRkX21pYmRpci4KCjIwMDQtMDQtMTkgMTU6NTcgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIGJ1aWxkLnBsLCBtaWJfbW9kdWxlX2luaXRzLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBzZWxlY3RpdmUgYnVpbGQgb2YgSVB2NiB0cmFuc3BvcnQgZm9yIE1TVkMrKyBidWlsZAoKMjAwNC0wNC0xOSAxNTowOCAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB1c20uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBOZXcgY29uZmlndXJlIGZsYWdzOiAtLWRpc2FibGUtbWQ1IGFuZCAtLWRpc2FibGUtZGVzIHRvIGNvbXBsZXRlbHkgcmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBsZXNzIHRydXN0ZWQvc2VjdXJlIGFsZ29yaXRobXMKCjIwMDQtMDQtMTkgMTM6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgYWZ0ZXIgdmFyaWFibGUgZGVmaW5pdGlvbi4KCjIwMDQtMDQtMTkgMTI6MzYgIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgdXNlIGEgbW9yZSByb2J1c3Qgc2VhcmNoIGZvciB1bmRlZiBVU0VfT1BFTlNTTC4KCjIwMDQtMDQtMTkgMDg6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL21pYi5jOgoKICAgTW9yZSBmbGV4aWJsZSBvdXRwdXQgb2YgaGV4IHN0cmluZ3MgLSBkb24ndCBoYXJkY29kZSAxNi1vY3RldHMtcGVyLWxpbmUKCjIwMDQtMDQtMTkgMDc6NTggIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBjb21tZW50IG91dCB2YXJpYWJsZXMgd2hpY2ggYXJlIG5vdCB1c2VkLgoKMjAwNC0wNC0xOSAwNzo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBhbGFybSB0byBhZ2UgYWRkciBjYWNoZSBldmVyeSA1IG1pbjsgYWRkIGRlYnVnIGZvciBhc3AtPnJlcWluZm8KCjIwMDQtMDQtMTkgMDc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlICdzY2hlZCd1bGVkIHRpbWVvdXQgcHJvY2Vzc2luZzsgbW92ZSBhZGRyIGNhY2hlIGFnaW5nIGludG8gYWxhcm07CiAgIGNoYW5nZSBkZWFmdWx0IHRpbWVvdXQgZnJvbSBUSU1FVElDSyB0byBMT05HX01BWAoKMjAwNC0wNC0xOSAwNzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyOyBhZGQgdGltZW91dCBkZWJ1Z2dpbmcKCjIwMDQtMDQtMTkgMDc6MzYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoIFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeGVkIGEgdjEvdjJjIGV4Y2x1c2lvbiBidWcKCjIwMDQtMDQtMTYgMTY6NDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3V0cHV0IG1lc3NhZ2Ugbm93IGNvbnRhaW5zIHZlcnNpb25zIHN1cHBvcnRlZAoKMjAwNC0wNC0xNiAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwKLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssCiAgICAgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAKOgoKICAgTmV3IGZsYWdzIGZvciBjb25maWd1cmU6IC0tZGlzYWJsZS1zbm1wdjEgLS1kaXNhYmxlLXNubXB2MmMKCjIwMDQtMDQtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgYW5kIGNvbmZsaWN0aW5nIFZBQ00gZW50cnkuICBJdCdzIGFtYXppbmcgdGhpcyBoYXNuJ3QKICAgY2F1c2VzIGZhbHNlIHByb2JsZW1zIGJlZm9yZSBub3cuCgoyMDA0LTA0LTE2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFkZHJlc3MgaXNzdWVzIG5vdGVkIGJ5IGRhdmUgb24gY29kZXJzCgoyMDA0LTA0LTE2IDEyOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgbmV3ICdubyBjaGVjaycgZGVidWcgbWFjcm8vZnVuY3Rpb25zCgoyMDA0LTA0LTE1IDE0OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIGhlYWRlciBmb3IgYXJwIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTE1IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFZhcmlhYmxlcyB1c2VkIGZvciByZXR1cm5pbmcgdmFsdWVzIG5lZWQgdG8gYmUgJ3N0YXRpYycuICAgKG9vcHMhKQoKMjAwNC0wNC0xNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIE1vdmUgdGhlIGRlZmluaXRpb24gb2YgJ2lwYWRkcl9yZXR1cm4nIHRvIHRoZSAob25seSkgcm91dGluZSB3aGVyZQogICBpdCdzIGFjdHVhbGx5IHVzZWQuICAoU2VlIEJ1ZyAjOTM0NDIyKQoKMjAwNC0wNC0xNSAwNToyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBSZW1vdmUgZXh0cmFuZW91cyAnOycgaW4gbm90aWZpY2F0aW9uIGdlbmVyYXRpb24gcm91dGluZSAoQnVnICM4OTU4MDApCgoyMDA0LTA0LTE1IDA1OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgKEJ1ZyAjOTM0NDExKQoKMjAwNC0wNC0xNCAyMTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeGVkIGN1dC1uLXBhc3RlIHR5cG9zIHBvaW50ZWQgb3V0IHRvIG1lIGJ5IE1pa2UgUy4KCjIwMDQtMDQtMTQgMTc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIHN1cHBvcnQgbG9jYWwvbWFzdGVyIFNOTVB2MyBrZXkgc2V0dGluZ3MgZGlyZWN0bHkKICAgLSBoYXZlIGdldHRhYmxlKCkgcGFyc2UgaW5kZXhlcyBvdXQgb2YgdGhlIE9JRCB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUKICAgICAtIG5vdCBleHRlbnNpdmVseSB0ZXN0ZWQgeWV0LgoKMjAwNC0wNC0xNCAxNTo0MSAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIFNwZWNpZnkgY29ycmVjdCBkZWZhdWx0IHZhbHVlIGZvciBNSUJESVJTLgoKMjAwNC0wNC0xNCAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgU3VwcG9ydCBmb3IgTGludXggMi42IGluY2wgU29mdElSUSBDUFUgc3RhdGUKCjIwMDQtMDQtMTQgMTU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE92ZXJoYXVsIHRvIHJlbW92ZSBmaXhlZCB0YWJsZSBzaXplIGFuZCBzdXBwb3J0IExpbnV4IDIuNiBrZXJuZWwKCjIwMDQtMDQtMTQgMTU6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9zb2xhcmlzMi5jCjoKCiAgIENsZWFuIHVwIGNvbW1lbnRzIG1pc2hhbmRsZWQgbnkgaW5kZW50CgoyMDA0LTA0LTE0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgdG8gdGhlIGNyZWF0ZVVzZXIgZGlyZWN0aXZlIGZvciBzcGVjaWZ5aW5nIG1hbnVhbCBsb2NhbAogICBvciBtYXN0ZXIga2V5cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHBhc3N3b3JkIGRlcml2YXRpb25zLgoKMjAwNC0wNC0xNCAxMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbnVsbCBjaGVjayBiZWZvcmUgdXNpbmcgcG9pbnRlcgoKMjAwNC0wNC0xNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMTI6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMDk6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB2My5jLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIGRpcmVjdGx5IHNwZWNpZnlpbmcgU05NUHYzIGhleCBrZXlzIHVzaW5nIG5ldyBmbGFncyAoLTNbbU1rS10pCgoyMDA0LTA0LTE0IDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgY29uZmlndXJlLmluCgoyMDA0LTA0LTE0IDA4OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW9yZSBkZWJ1Zzsgc2ltcGxpZnkgdHdvIGNvbmZsaWN0IHRlc3RzIGludG8gb25lOyByZXZlcnQgY29uZmxpY3QgbWVzc2FnZXMKICAgYmFjayB0byB3YXJuaW5nLCBidXQgYWRkIG9ibm94aW91cyB3YXJuaW5nIHRvIHN1bW1hcnkgY2FjaGUKCjIwMDQtMDQtMTQgMDM6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBBIG5vbi16ZXJvIHJlcGVhdCBjb3VudCB3aXRoIG5vIG5vbi1yZXBlYXRpbmcgdmFyYmluZHMgY29uZnVzZXMgdGhlCiAgIHBlcmwgJ2J1bGt3YWxrJyByb3V0aW5lLiAgIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBmaXhlZCBwcm9wZXJseSwKICAgYnV0IHRoaXMgYXQgbGVhc3QgYWxsb3dzIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyB0byBydW4gc3VjY2Vzc2Z1bGx5LgoKMjAwNC0wNC0xNCAwMzoxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFN1cHBvcnQgcGVyLWxvZ2hhbmRsZXIgc2h1dGRvd24gcHJvY2Vzc2luZyBpbiAnc25tcF9kaXNhYmxlX2xvZycuCiAgIFRoaXMgc2hvdWxkIGFsbG93IGxvZ2ZpbGVzIHRvIGJlIHJvdGF0ZWQgcHJvcGVybHkuCgogICBIb3dldmVyLCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoZSAnZW5hYmxlZCcgZmxhZyBpcyBiZWluZyB1c2VkCiAgIGNvbnNpc3RlbnRseSwgcGFydGljdWxhcmx5IGJ5IG90aGVyIHN0eWxlcyBvZiBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIFNvbWUgY2xlYW51cCB3b3JrIGlzIHByb2JhYmx5IG5lZWRlZC4KCjIwMDQtMDQtMTQgMDM6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgU3VwcG9ydCAiMDE6MDI6MDM6MDQ6MDU6MDYiIHN0eWxlIGhleCBvdXRwdXQgLSBpLmUuIGxlYWRpbmcgMCdzCiAgIG9uIHNpbmdsZS1kaWdpdCBoZXggdmFsdWVzLiAgKFN1Z2dlc3RlZCBieSBHbGVubiBBbmRyZXdzKQoKMjAwNC0wNC0xNCAwMzowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jOgoKICAgSWRlbnRpZnkgd2hpY2ggTUlCIG1vZHVsZXMgYXJlIHByZXNlbnQgaW4gdGhlIE1JQkZJTEVTIGxpc3QgYmVmb3JlCiAgIHN0YXJ0aW5nIHRvIGxvYWQgYW55dGhpbmcuICAgVGhpcyBhbGxvd3MgSU1QT1JUIHN0YXRlbWVudHMgdG8gd29yawogICBjb3JyZWN0bHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIGluIHdoaWNoIHN1Y2ggZmlsZXMgYXBwZWFyLgoKMjAwNC0wNC0xNCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgYnNkLmgsIGN5Z3dpbi5oCiwgZHluaXguaCwgaXJpeC5oLCBtaW5ndzMyLmgsIG9zZjUuaAosIHN1bm9zLmgsIHN2cjUuaCwgc3lzdi5oLCB1bHRyaXg0LmgKOgoKICAgSW5jbHVkZSAiZ2VuZXJpYy5oIiB1c2luZyB0aGUgZnVsbCBuYW1lLCByYXRoZXIgdGhhbgogICByZWx5aW5nIG9uIHRoZSBpbmNsdWRlIHBhdGggYmVpbmcgc2V0IGNvcnJlY3RseS4KICAgKFN1Z2dlc3RlZCBieSBOYWdhcmFqIE5hcmF5YW5hc3dhbXkpCgoyMDA0LTA0LTE0IDAyOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2F0Y2ggU05NUHYyIGV4Y2VwdGlvbiB2YWx1ZXMuCgoyMDA0LTA0LTE0IDAyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gYmFja2luZyBvdXQgb2YgYW4gaW52YWxpZCBTRVQgcmVxdWVzdC4KCjIwMDQtMDQtMTQgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEFsbG93ICdtb25pdG9yJyBkaXJlY3RpdmVzIHRvIHNwZWNpZnkgYSBzaW5nbGUgaW5zdGFuY2UgcmF0aGVyIHRoYW4KICAgYWx3YXlzIG1vbml0b3JpbmcgYWxsIHJvd3MuCgoyMDA0LTA0LTE0IDAyOjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgTUlCcywgYWR2aWNlIG9uIHJ1bm5pbmcgYXMgbm9uLXJvb3QKICAgYW5kIGJyaW5nIGludG8gbGluZSB3aXRoIDUuMS54IGJyYW5jaCB2ZXJzaW9uLgoKMjAwNC0wNC0xMyAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2VhayBhc3NlcnQgY29uZGl0aW9uIHRvIGFsbG93IGZvciB2YWxpZCBidXQgZXhwaXJlZCBjYWNoZQoKMjAwNC0wNC0xMyAxMzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDQtMDQtMTMgMTI6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXROZXRUb01lZGlhVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgbmV3IGluZXROZXRUb01lZGlhVGFibGUKCjIwMDQtMDQtMTMgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBhcnAuaCwgYXJwX2NvbW1vbi5jCiwgYXJwX2xpbnV4LmMsIGlwYWRkcmVzc19pb2N0bC5oOgoKICAgbmV3IGZpbGVzCgoyMDA0LTA0LTEzIDExOjQ0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTEzIDExOjQzICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgcm91dGUgZW50cmllcwoKMjAwNC0wNC0xMyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaW50ZXJmYWNlIGVudHJpZXMKCjIwMDQtMDQtMTMgMTE6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgZGVmYXVsdCBhZG1pbi9vcGVyIHN0YXR1cyB0byB1cAoKMjAwNC0wNC0xMyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGludmVydCBvcmRlciBmb3IgY2FjaGUgcmVmcmVzaDsgc2V0IG5ldyBwcmVsb2FkIGZsYWcgb24gY2FjaGUgdG8gaW5pdCBpZkluZGV4CiAgIGVudW0gbGlzdCAodXNlZCBieSBvdGhlciBtb2R1bGVzKTsgc2V0IG9wZXJfc3RhdHVzIGRvd24gaWYgaW50ZXJmYWNlIHZhbmlzaGVzOwogICBtb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBjb21wYXJpbmcvc3dpcGluZyBwb2ludGVycwoKMjAwNC0wNC0xMyAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmg6CgogICByZW1vdmUgdW51c2VkIG1hcHBpbmcgZGVmaW5lcwoKMjAwNC0wNC0xMyAxMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgbWFwcGluZyBmdW5jdGlvbnMKCjIwMDQtMDQtMTMgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICByZXZlcnQgZXh0ZXJuYWwgZGVmaW50aW9uIGNoYW5nZQoKMjAwNC0wNC0xMyAxMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaXBhZGRyZXNzX2VudHJ5CgoyMDA0LTA0LTEzIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwYWRkcmVzc19pb2N0bC5jLCBpcGFkZHJlc3NfbGludXguYzoKCiAgIHR3ZWFrIGludGVybmFsIGluZGV4IHVzYWdlOyB1c2UgbmV0LXNubXAgaWZJbmRleCBiYXNlZCBvbiBuYW1lIGluc3RlYWQgb2YgaW9jdGwKICAgaWZfaW5kZXg7IGFkZC90d2VhayBjb21tZW50cwoKMjAwNC0wNC0xMyAxMToyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgbmV3IGZsYWcgZm9yIHByZWxvYWRpbmcgY2FjaGU7IG1vdmUgY2FjaGUgbG9hZC9mcmVlIHRvIHN0YXRpYyBzdWJyb3V0aW5lcyBmb3IKICAgY29kZSByZXVzZTsgYWRkIHNvbWUgZGVidWcgbXNncwoKMjAwNC0wNC0xMyAxMToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lcyBmb3IgYWRtaW4vb3BlciBzdGF0dXMgZW51bXMKCjIwMDQtMDQtMTMgMTA6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBlbnRyaWVzIGZvciBoYXZlX21rdGltZSBuYWQgaGF2ZV9zdGltZQoKMjAwNC0wNC0xMyAxMDozMSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdmVyc2lvbiBjaGFuZ2UuCgoyMDA0LTA0LTEwIDA1OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENsb25pbmcgYSB1c2VyIHJlcXVpcmVzIHVzaW5nIHRoZSB1c21Vc2VyU3RhdHVzIGNvbHVtbiBvYmplY3QuCgoyMDA0LTA0LTEwIDA1OjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZW50cnkgZnJvbSBsaXN0IG9mIGRlZmF1bHQgTUlCIG1vZHVsZXMuCgoyMDA0LTA0LTA5IDE4OjUwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0d28gU05NUF9GUkVFIGNhbmRpZGF0ZXMgaW4gdGRvbWFpbl91bnJlZ2lzdGVyLCBjbGVhcl90ZG9tYWluX2xpc3QuCgoyMDA0LTA0LTA5IDE4OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBmaXggYSBzaWduIGNvbXBhcmUgd2FybmluZy4KCjIwMDQtMDQtMDkgMTg6MzcgIHNsaWYKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgSVB2NiB0cmFuc3BvcnRzIHRvIG1zdmMrKyBidWlsZHMuCgoyMDA0LTA0LTA5IDE4OjI3ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2dldC50OgoKICAgZG9uJ3QgcmVxdWlyZSBpbnRlcmZhY2UgbGF5ZXIgb2YgYWdlbnQgaW4gb3JkZXIgdG8gcGFzcyB0aGVzZSB0ZXN0cy4KCjIwMDQtMDQtMDkgMTg6MjQgIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgdW5kbyBsYXN0IGNoYW5nZSB0byByZXN0b3JlIHByb3BlciBjb25zdHJ1Y3Rpb24gb2YgUGVybCBtb2R1bGVzLgoKMjAwNC0wNC0wOCAyMToxMSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBtYXRjaCBzbm1wc2V0IG91dHB1dCB0byBmaXggYnVnIFs5MTkyNjddIHRlc3RudW0gMzQgVDEyMnByb3h5c2V0ZmFpbCBmYWlsaW5nCgoyMDA0LTA0LTA4IDIwOjI1ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBjaGFuZ2UgdXNhZ2UgY29tbWVudCBmb3IgIi1YTSIgdG8gbWF0Y2ggaXRzIGZ1bmN0aW9uCgoyMDA0LTA0LTA4IDIwOjE5ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIGRvIG5vdCBidWlsZCBzbm1wdHJhcGQub2JqIGFzIHBhcnQgb2YgbmV0c25tcHRyYXBkIGxpYnJhcnkgKE1TVkMrKyBidWlsZCkuCgoyMDA0LTA0LTA4IDIwOjE3ICBzbGlmCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBhZGQgdGFibGVfY29udGFpbmVyLm9iaiB0byBsaXN0IG9mIG9iamVjdHMgdG8gYmUgYnVpbHQgdXNpbmcgTVNWQysrCgoyMDA0LTA0LTA4IDIwOjEyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTA0LTA4IDIwOjA3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBhcHBseSBuYmEncyBGZWIuMjAwNCBwdXR1dGxpbmUgZml4ZXMgdG8gbWFpbiBicmFuY2guCgoyMDA0LTA0LTA4IDE1OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBVc2UgLUxmIGFuZCAtTGYgaW4gdGhlIG1haW4gdHJ1bmsgdG8gbWF0Y2ggdGhlIHByb3BlciBjb2RlIHVzZQoKMjAwNC0wNC0wOCAxMzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgZm9yIHRoZSAtcncgZmxhZyB0byB0aGUgb3ZlcnJpZGUgdG9rZW4gYWxsb3dpbmcgcmVhZC93cml0ZQogICBhY2Nlc3MgdG8gdGhlIGJvZ3VzIG1pYiBvYmplY3RzLgoKMjAwNC0wNC0wOCAxMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVudW0gbGlzdHMgZm9yIHVuc2lnbmVkIGFuZCBiaXQgc3RyaW5ncyB0byByZW1vdmUgZHVwbGljYXRlIHR5cGVzCgoyMDA0LTA0LTA3IDE5OjUwICBzbGlmCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2g6CgogICBwYXRjaCBbOTE3NjQ2XSB0ZXN0IHVzaW5nIGluc3RhbGxlZCBNSUJzIGZpcnN0CgoyMDA0LTA0LTA3IDE1OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWcuaW4KCjIwMDQtMDQtMDcgMTU6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbG90cyBvZiBkZWJ1ZyB0byBtb2R1bGUgcHJvY2Vzc2luZzsgdXNlIG5ldyB2YXIgZm9yIGV4Y2x1ZGVkIG1vZHVsZXM7IG1ha2UKICAgY29uZmxpY3RzIGVycm9ycyBpbnN0ZWFkIG9mIHdhcm5pbmdzOyBkb24ndCB0cnkgdG8gcmUtcHJvY2VzcyBhIHNyYyBvbmx5IG1vZHVsZQoKMjAwNC0wNC0wNyAxNTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHR5cG8gaW4gY29tbWVudHMKCjIwMDQtMDQtMDcgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGdlbiByZWxlYXNlIHVuZG8gY29kZSBpZiBzZXR0YWJsZQoKMjAwNC0wNC0wNyAxNTo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHR3ZWFrIGNvbW1lbnRzCgoyMDA0LTA0LTA3IDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmU6CgogICBmaWxlcyB0byBpZ25vcmUKCjIwMDQtMDQtMDcgMTU6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkL3VuZGVmaW5lZCB2YXJzCgoyMDA0LTA0LTA3IDE1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaDoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRocwoKMjAwNC0wNC0wNyAxNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGNvbmZpZ19leGNsdWRlIG1pYklJL2ludGVyZmFjZXM7IHR3ZWFrIGV4dGVybmFsIG9pZCBkZWYKCjIwMDQtMDQtMDcgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gaWZUYWJsZQoKMjAwNC0wNC0wNyAxNTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgZmlsZXMgdG8gaWdub3JlCgoyMDA0LTA0LTA3IDE1OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwgaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICBuZXcgTUZEIGlwQWRkcmVzc1RhYmxlCgoyMDA0LTA0LTA3IDE1OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIGlwYWRkcmVzcyBkYXRhIGFjY2VzcyAodjQgJiB2NikKCjIwMDQtMDQtMDcgMTU6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG5ldyBjb25maWcgbW9kdWxlcwoKMjAwNC0wNC0wNyAwNjozOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIHRyYWlsaW5nIGNvbW1hIChidWcgIzkzMDcwOCkKCjIwMDQtMDQtMDcgMDM6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUm91dGluZXMgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvZiByb3dzIGluIGEgZGF0YS1oZWxwZXItYmFzZWQgdGFibGUKCjIwMDQtMDQtMDcgMDI6MTMgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ0FQVFVSRSByZXR1cm5zIGV4aXQgY29kZSBmcm9tIGNvbW1hbmQgdGhhdCB3YXMgcnVuLgoKMjAwNC0wNC0wNiAyMzozMyAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBwYXRjaCBbOTMwODgwXSBkb24ndCBidWlsZCBDTVUgY29tcGF0aWJsZSBmdW5jdGlvbnMgb24gd2luMzIKCjIwMDQtMDQtMDYgMjM6MTkgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9saWJzZGxsLmRzdwosIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3LAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCjoKCiAgIHBhdGNoIFs5MTU2MTVdIFBlcmwgVHJhcFJlY2VpdmVyIGRvZXMgbm90IGNvbXBpbGUgb24gV2luMzIgTVNWQwogICBhbHNvIGZpeGVzIGJ1ZyBbODk2MDEyXSB3aW4zMiBQZXJsIGJ1aWxkIGRpZXMgYXQgVHJhcFJlY2VpdmVyCgoyMDA0LTA0LTA2IDIxOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIGZpeCBbOTA3NzE2XSB3aW4zMiBhZ2VudCBzaG93cyB0Y3AsdWRwIGNvbm5lY3QgT0lEcyBpbiBob3N0IGJ5dGUgb3JkZXIKCjIwMDQtMDQtMDYgMTc6MzUgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEyMl0gdGVzdCBzaG91bGQgYWxsb3cgdGltZSBmb3IgcHJvZ3JhbXMgdG8gc2V0dGxlCgoyMDA0LTA0LTA2IDE3OjM0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMTRdIHByZXNlcnZlIHRlc3QgcmVzdWx0IHdoZW4gc3RvcHBpbmcKCjIwMDQtMDQtMDYgMTc6MzIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEwNV0gYmV0dGVyIHBpZCBjaGVjawoKMjAwNC0wNC0wNiAxMDo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgc3RkaW50LCBpZiBhdmFpbGFibGUKCjIwMDQtMDQtMDYgMDk6NDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIFJlZ2lzdGVyIG5ldyBBUEkgbW9kdWxlcyB1c2luZyB0aGUgZGVmYXVsdCBwcmlvcml0eSAoMTI3KQogICBhbmQgcHJvdmlkZSBhbiBBUEkgZm9yIHVucmVnaXN0ZXJpbmcgdGhlbSBhZ2Fpbi4KCjIwMDQtMDQtMDUgMTY6MDQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmV2ZXJzZSBwYXRjaC10ZXN0LWRlcHJlY2F0ZWQtb3B0aW9ucyB0byBwZXJtaXQgdGVzdGluZyB2ZXJzaW9ucyBiZWZvcmUgNS4xLgoKMjAwNC0wNC0wNCAxMToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG9uJ3Qgc2hhcmUgY2FjaGUgdy9pbmV0Q2lkclJvdXRlLCB3aGljaCBjYW4ndCB3b3JrLCBzaW5jZSBpbmRleGVzIGRvbid0IG1hdGNoCgoyMDA0LTA0LTA0IDExOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuaCwKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGRhdGEgc3RydWN0dXJlcy9jYWNoZSB3L2lmVGFibGUgaWYgZW5hYmxlZAoKMjAwNC0wNC0wNCAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGRlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkCiwgaWZYVGFibGUuYywgaWZYVGFibGUuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTA0IDEwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICB1cGRhdGUgdG8gc3VwcG9ydCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDQtMDQtMDQgMTA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi5oOgoKICAgYWRkIGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNC0wNC0wNCAxMDo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oLCAuY3ZzaWdub3JlLAogICAgIGRlZmF1bHQtdGFibGUtaW5ldENpZHJSb3V0ZVRhYmxlLm0yZDoKCiAgIG5ldyBpbmV0Q2lkclJvdXRlVGFibGUuIG9ubHkgZG9lcyBpcHY0IHNvIGZhci4KCjIwMDQtMDQtMDQgMDc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGNhY2hlIHcvaW5ldENpZHJSb3V0ZVRhYmxlLCBpZiBpdCBpcyBlbmFibGVkCgoyMDA0LTA0LTA0IDA3OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlIHVudXNlZCB2YXIKCjIwMDQtMDQtMDQgMDc6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggbWlzc2VkIGNhc2UgZm9yIGFsbG9jYXRlIHBhcm07IHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTA0IDA3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZml4IG1pc3NlZCBjYXNlIGZvciBhbGxvY2F0ZSBwYXJtCgoyMDA0LTA0LTA0IDA3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGFkZCBkZWJ1ZwoKMjAwNC0wNC0wMyAwNToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgZml4IGJ1ZyA5Mjg0ODEgLSBjb25zaXN0ZW5jeSBpbiB2YWNtX3ZhcnMuYwoKMjAwNC0wNC0wMiAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlndXJlX3JlcXVpcmUgZmlsZXMgZm9yIGluZGl2aWR1YWwgbW9kdWxlcwoKMjAwNC0wNC0wMiAxMjo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBkZWZhdWx0IHRvIG5ldHNubXBfaW5kZXggY29tcGFyZSBpZiBubyBjb21wYXJlIHByb3ZpZGVkCgoyMDA0LTA0LTAyIDEyOjUxICByc3RvcnkKCiAgICogc25tcGxpYi86IGNtdV9jb21wYXQuYywgc25tcF92ZXJzaW9uLmM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA0LTA0LTAyIDEyOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgbmV3IHN0YXRpYyBsb2NrIHZhciB0byBkZXRlY3Qgd2hlbiBhIGNhbGxiYWNrIGlzIGFkZGVkL3JlbW92ZWQgZHVyaW5nIGNhbGxiYWNrCiAgIHByb2Nlc3Npbmc7IGRvbid0IGNhbGwgZnJlZSBvbiBjbGllbnQgYXJnIG9mIGNhbGxiYWNrIHcvTlVMTCBjYWxsYmFjayBwdHIKICAgKGkuZS4gb25lIHRoYXQgd2FzIHJlbW92ZWQgd2hpbGUgY2FsbGJhY2tzIHdlcmUgYmVpbmcgcHJvY2Vzc2VkKQoKMjAwNC0wNC0wMiAxMjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIG1ha2UgdGVtcCBkaXIgbmFtZXMgY29uZmlndXJlYWJsZSwgdy9kZWZhdWx0cyBub3cgcHJlZml4ZWQgdy8nLic7IHR3ZWFrIGRpZmYKICAgZXhjbHVkZSBwYXR0ZXJuczsgb3RoZXIgbWlzYyB0d2Vha3MKCjIwMDQtMDQtMDIgMTI6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIGZpeCBtYWNyb3MgdG8gYmUgc2FmZWx5IHVzZWFibGUgYXMgYSBzaW5nbGUgc3RhdGVtZW50OyBuZXcgU05NUF9TV0lQRV9NRU0gbWFjcm8KCjIwMDQtMDQtMDIgMDg6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IGNvbmZpZy5oLmluIHRvIG1hdGNoIGFjY29uZmlnLmggKGF1dG9oZWFkZXIgaGFkbid0IGJlZW4gcnVuIGluIGEgd2hpbGUpOgogICAgICBwY2tzLCBjcm9wdHlraSwgY29uZmlnX2V4Y2x1ZGUsIGFnZW50eCBkb21haW4gc29ja2V0LCBjcHB3cmFwIG1hY3JvCgoyMDA0LTA0LTAyIDA4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICByZWR1Y2UgcmVkdW5kYW5jeQoKMjAwNC0wNC0wMiAwODowMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBhc3NlcnRzIG9uIGlsbGVnYWwgaGFuZGxlciBjYWxscwoKMjAwNC0wNC0wMiAwNjo0NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeCBpbmNsdXNpb24gb2YgdXRpbGl0aWVzL2V4ZWN1dGUuaCwgc2luY2UgUm9iZXJ0J3MgTWFrZWZpbGUgY2hhbmdlcwogICBicm9rZSB0aGUgcGF0aCBsb29rdXBzLgoKMjAwNC0wNC0wMSAyMjowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtYWtlIGdldHRhYmxlIHVzZSBnZXRidWxrIHdoZW4gcG9zc2libGUKCjIwMDQtMDQtMDEgMTk6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDQtMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgVlBBVEggdG8gaW5kaXZpZHVhbCBNYWtlZmlsZS5pbiBmaWxlczsgbmV3IG1ha2VmaWxlY2hlY2sgdGFyZ2V0IHRvIGNoZWNrCiAgIGZvciBnbnUgbWFrZSBjb25zdHJ1Y3RzOyBuZXcgJ2NoZWNrcycgdGFyZ2V0IHJ1bnMgY2hlY2tzIGZvciBjb21tZW50L21ha2VmaWxlCgoyMDA0LTA0LTAxIDE5OjI5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGVtcHR5IGRlZmluZSBmb3IgY29uZmlnX2V4Y2x1ZGU7IG5ldyBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNC0wMSAxOToyNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyBjb25maWdfZXhjbHVkZTsgY29uZmlnX3JlcXVpcmUgdHdlYWtzOgogICAgICAgZG9uJ3QgcHJvY2VzcyB0aGUgc2FtZSBtb2R1bGUgdHdpY2U7IGFsbG93IGMgZmlsZSB3L25vIGhlYWRlcjsgbW92ZQogICAgICAgbW9kdWxlIGxpc3QgYWRkLCBjb25maWdfbG9hZF9taWIgY2hlY2sgaW5zaWRlIGhlYWRlciBjb25kaXRpb25hbAoKMjAwNC0wNC0wMSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA0LTAxIDE4OjM3ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbiwKICAgICBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHJld29yayBWUEFUSCBzbyBwZW9wbGUgd2l0aCBHTlUgbWFrZSBjYW4gc2hhcmUgYSBzb3VyY2UgZGlyZWN0b3J5IGZvciBtdWx0aXBsZQogICBidWlsZCAoaW5jbHVkaW5nIG9uZSBpbiB0aGUgc291cmNlIGRpcmVjdG9yeSk7IGNvbXBsZXRlbHkgcmV3b3JrIENQUEZMQUdTIGZvciBhCiAgIGNvbW1vbiwgY29uc2lzdGVudCBvcmRlciAodGhhdCBpcyBhbHNvIGNvcnJlY3QgZm9yIG5vbiBzb3VyY2VkaXIgYnVpbGRzKQoKMjAwNC0wNC0wMSAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIG5ldyBmaWxlCgoyMDA0LTA0LTAxIDE4OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZCwgaXBDaWRyUm91dGVUYWJsZS5jCiwgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgZm9yIG1mZCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzOyB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsgYWRkIHRvZG8gY29tbWVudHMKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlCiwgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmU6CgogICBuZXcgY3ZzaW5nb3JlIGZpbGVzCgoyMDA0LTA0LTAxIDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZgoKMjAwNC0wNC0wMSAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIG5ldyBkYXRhIGFjY2VzcyBmaWxlcwoKMjAwNC0wNC0wMSAxODowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwgcm91dGUuaDoKCiAgIG1vdmUgY29uZmlnX3JlcXVpcmUgc3R1ZmYgYmFjayBpbnRvIG1pYmdyb3VwLCBzaW5jZSB0aGF0J3MgdGhlIG9ubHkgcGxhY2UKICAgY29uZmlndXJlIHdpbGwgbG9vayBmb3IgdGhlbQoKMjAwNC0wNC0wMSAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2xvaWQgc2V0dGluZyAod2FzIGRvbmUgYWJvdmUgYXMgd2VsbCkKCjIwMDQtMDQtMDEgMTY6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEFub3RoZXIgaXRlcmF0b3IgZml4OiBpbml0aWFsaXplIGEgdmFyaWFibGUgcHJvcGVybHkgZm9yIGV2ZXJ5IHJlcXVlc3QKCjIwMDQtMDQtMDEgMTY6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsIHJvdXRlLmg6CgogICBuZXcgZGF0YSBhY2Nlc3MgaGVhZGVycwoKMjAwNC0wNC0wMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQW5vdGhlciBpdGVyYXRvciBwcm9ibGVtIHdpdGggZ2V0YnVsaydzOiBtYWtlIGl0IG5vdCBzZXQgUkVUUlkgaWYgaXRzIGdvaW5nIHRvIGJlIG91dCBvZiBzY29wZSBuZXh0IHRpbWUgYXJvdW5kIHN0aWxsICg+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+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzIsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcGQuOAosIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9UVU5ORUwtTUlCLnR4dCwgbWlicy9pYW5hbGlzdCwgbWlicy9taWJmZXRjaAosIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIG1pYnMvc21pc3RyaXAKLCBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5oLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaAosIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmMKOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXnqatnZXIpCiAgIAoyMDAxLTAzLTE0IDA1OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0wMy0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmg6CgogICAgLSBzYXZlIG9yaWdpbmFsIFBEVSdzIHRyYW5zcG9ydCBkb21haW4gLS0gbmVjZXNzYXJ5IGZvcgogICAgICBjb21tdW5pdHkgc3RyaW5nIHByb2Nlc3NpbmcKICAgCiAgICAgIENBVVRJT046IGluY29tcGF0aWJsZSBjaGFuZ2UgaW4gZm9ybWF0IG9mIG10ZVRyaWdnZXJUYWJsZQogICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGVudHJ5CiAgIAogICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbXRlX3J1bl90cmlnZ2VyIGJ5IHJlbGVhc2luZyBQRFVzCiAgIAogICAgLSBzZW5kICJiYWQgdHlwZSIgbm90aWZpY2F0aW9ucyBpbiBzb21lIGNhc2VzCiAgIAogICAgLSBvdGhlciBtaW5vciBtZW1vcnkgbGVha3MKICAgCiAgICAtICJkZWx0YSIgc2FtcGxlVHlwZSBoYW5kbGVkIGZvciBib29sZWFuIHRyaWdnZXJzCiAgIAogICAgLSBtb3JlICJYWFg6IiBjb21tZW50cyEKICAgCjIwMDEtMDMtMTMgMTM6NTIgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc3VwcG9ydCBmb3IgSW50ZWdlcjMyCiAgIAoyMDAxLTAzLTExIDA4OjQzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgQWRkIGEgZnVuY3Rpb24gdG8gdGVzdCB3aGV0aGVyIGFuIE9JRCBjb3JyZXNwb25kcyB0byBhIHN1cHBvcnRlZCB0cmFuc3BvcnQKICAgZG9tYWluLgogICAKMjAwMS0wMy0xMSAwNzo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uaDoKCiAgIEFkZCAjaW5jbHVkZXMgdG8gbWFrZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gY29tcGxldGUKICAgCjIwMDEtMDMtMTEgMDc6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oOgoKICAgUmVtb3ZlIHNwdXJpb3VzICNpbmNsdWRlCiAgIAoyMDAxLTAzLTA5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByd3VzZXIgLXMgbW9kZWwgdG8gYWN0dWFsbHkgd29yay4KICAgCjIwMDEtMDMtMDkgMDU6NTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBTZXQgYSBQRFUncyBvcGFxdWUgZGF0YSBvbiBhIHRjcF9yZWN2OyB0aGlzIGlzbid0IG5lY2Vzc2FyeSB0byBzZW5kCiAgIHJlcGxpZXMgKGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgc29ja2V0IGlzIHN0cm9uZ2x5IGNvbm5lY3RlZCkgYnV0IGlmCiAgIHlvdSBkb24ndCBkbyB0aGlzIHRoZW4geW91IGNhbid0IGRvICJjb20yc2VjIiB0eXBlIHByb2Nlc3NpbmcgZm9yIFBEVXMKICAgcmVjZWl2ZWQgb24gVENQIHNlc3Npb25zLi4uIGludGVyZXN0aW5nLgogICAKMjAwMS0wMy0wOSAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBiYWQgYXNzdW1wdGlvbiB0aGF0IGNvbW11bml0eSBzdHJpbmcgaXMgemVyby10ZXJtaW5hdGVkCiAgIAoyMDAxLTAzLTA4IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb3JyZWN0IHZlcnNpb24gc3RhdGVtZW50cyB0byBpbmRpY2F0ZSBuZXQtc25tcC4KICAgLSByZW1vdmUgbXkgbmFtZSBhcyBhdXRob3IgKEknbSBjZXJ0YWlubHkgbm90IHRoZSBvbmx5IG9uZSkKICAgLSBhZGQgd2ViIGFkZHJlc3MuCiAgIAoyMDAxLTAzLTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIEtlbiBIb3Juc3RlaW4ncyBuYW1lIHRvIGNvbnRyaWJ1dGVycyBsaXN0LgogICAtIFJlbW92ZWQgbWluZSBmcm9tIGJlaW5nIGxpc3RlZCBzZXBhcmF0ZWx5LgogICAKMjAwMS0wMy0wOCAxNDo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBBZGRlZCBhIGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZHVsZSAoa3NtKS4KICAgICBIb3dldmVyLCBOZWVkcyBsaWJyYXJpZXMgKC1sa3JiNSAtbGNvbV9lcnIpIG5vdCBiZWluZyBjaGVja2VkIGZvciBjdXJyZW50bHkuCiAgIAoyMDAxLTAzLTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBXaG9vcHMuICBTaG91bGRudCBoYXZlIGEgbmVnYXRpb24gc2lnbiBvbiB0aGUgbW9zdCByZWNlbnQgY2hlY2tpbi4KICAgCjIwMDEtMDMtMDggMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIElmIE5PX1BST0JFIGlzIHNldCwgZG9uJ3QgZG8gYW55IHBvc3QgcHJvYmluZyBhY3Rpdml0aWVzIGVpdGhlciBsaWtlCiAgIHRpbWUgdXBkYXRpbmcgYW5kIHVzZXIgY3JlYXRpb24uCiAgIAoyMDAxLTAzLTA4IDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIFJlbW92ZSBzdHJkdXAoKXMgb24gc29tZSBzZXNzaW9uIHBhcmFtZXRlcnMgd2hpY2ggY2F1c2UgbWVtb3J5IGxlYWtzCiAgIChzaW5jZSBzbm1wX29wZW4gZGVlcCBjb3BpZXMgdGhlIGlucHV0IHNlc3Npb24gYW55d2F5KQogICAKMjAwMS0wMy0wOCAwODoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgTWFrZSBzdXJlIHNlc3MgZmllbGQgb2YgbmV3IGVudHJpZXMgaXMgaW5pdGlhbGlzZWQgdG8gTlVMTC4KICAgCjIwMDEtMDMtMDggMDc6NDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgTWFrZSBjb25maWcgdG9rZW4gcGFyc2VyIHVwZGF0ZSB0aW1lc3RhbXAgb24gZW50cnkgaXQgY3JlYXRlczsKICAgbW92ZSB1cGRhdGVfdGltZXN0YW1wIGZ1bmN0aW9uLgogICAKMjAwMS0wMy0wNyAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gcmVtb3ZlIHVubmVlZGVkIHRpbWVzdGFtcCBzdXBwb3J0CiAgIAoyMDAxLTAzLTA2IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywgc25tcF9zZWNtb2QuYwosIHNubXBfc2VjbW9kLmgsIHNubXB1c20uYzoKCiAgIHNlY21vZCBzdHJ1Y3Qgc3ltYm9sIG5hbWUgY2hhbmdlcyB0byBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUuCiAgIAoyMDAxLTAzLTA2IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gc2V0IHRoZSBkZWZhdWx0IHBkdSBzZWN1cml0eSBtb2RlbCB0byBTTk1QX0RFRkFVTFRfU0VDTU9ERUwgKG5vdCAwKS4KICAgLSBkb24ndCBmb3JjZSB0aGUgc2VjdXJpdHkgbW9kZWwgb2YgdGhlIHNlc3Npb24gb24gdGhlIHBkdSBpZiBhbHJlYWR5IHNldC4KICAgCjIwMDEtMDMtMDYgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgaG9wZWZ1bGx5IGZpeCB0byBhbGxvdyBvdGhlciAocmVnaXN0ZXJlZCkgc2VjdXJpdHkgbW9kZWxzIHRvIGJlIHVzZWQuCiAgIAoyMDAxLTAzLTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoyMDAxLTAzLTA2IDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIENyZWF0ZSBhIG5ldyBzZWNtb2QgY2FsbGJhY2sgd2hlbiBhIHRpbWVvdXQgb24gYSBwZHUgb2NjdXJzLgogICAKMjAwMS0wMy0wNiAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwcm9wZXJseSBpbnN0YWxsIHNlY21vZCBoZWFkZXIgbGlzdC4KICAgCjIwMDEtMDMtMDYgMDg6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgLSBidWcgZml4ZXMgZm9yIHNlY21vZCByZWxhdGVkIHN0dWZmIChpdCBjb21waWxlcyBub3cgKG9wcHMpKS4KICAgCjIwMDEtMDMtMDYgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgLSB0d28gbmV3IHNlY21vZCBjYWxsYmFja3MgZm9yIGZyZWVpbmcgYSBwZHUgYW5kIGEgc2Vzc2lvbi4KICAgLSBtb3ZlIHRyYW5zcG9ydCBjbG9zaW5nIGluIHNubXBfc2Vzc19jbG9zZSgpIHRvIGFmdGVyIHBlbmRpbmcKICAgICByZXF1ZXN0cyBhcmUgZnJlZWQvY2xvc2VkIGluIGNhc2Ugc29tZXRoaW5nIG5lZWRzIHRvIG1ha2UgdXNlIG9mIHRoZQogICAgIHRyYW5zcG9ydCBiZWZvcmUgaXQgY2xvc2VzLgogICAKMjAwMS0wMy0wNiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBQYXNzIGluIHBkdSB0byBzZWNtb2QgZW5jb2RlL2RlY29kZSByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDYgMDM6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW9kaWZpZWQgZnVuY3Rpb24gSW50ZXJmYWNlX0luZGV4X0J5X05hbWUgKFNvbGFyaXMgc3BlY2lmaWMpIHRvIGNvcGUgbW9yZQogICBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcwogICBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkIG1lbW9yeSByZWFkcy4KICAgCjIwMDEtMDMtMDUgMTY6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldmVyc2UgY2FsbGJhY2sgb3JkZXJpbmcgb2Ygbm9ybWFsIGNhbGxiYWNrL3NlY21vZCBjYWxsYmFjawogICBwcm9jZXNzaW5nIGluIHNlc3NfY29weSgpLgogICAKMjAwMS0wMy0wNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgcmVtb3ZlIHVudXNlZCBmcmVlIGZ1bmN0aW9uIGNhbGxzIGZvciBzZWN1cml0eSBtb2R1bGUgdW5yZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMy0wNSAxNjoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBtaW5vciBBUEkgY2hhbmdlcyB0byB0aGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVsIGhhbmRsaW5nLgogICAKMjAwMS0wMy0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvcGVybHkgcmVzcGVjdCB0aGUgRE9OVF9QUk9CRV9GTEFHLgogICAKMjAwMS0wMy0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfc2VjbW9kLmgKOgoKICAgYWRkIGEgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSB2MyBidWlsZCByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDUgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgQWRkIGEga3JiNSBzcGVjaWZpYyBlcnJvciBjb2RlLgogICAKMjAwMS0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBwcm9wZXJseSBoYW5kbGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZHVsZXMKICAgCjIwMDEtMDMtMDUgMTQ6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgbWtkaXIgc25tcGxpYiBiZWZvcmUgY3JlYXRpbmcgYSBmaWxlIGluIGl0CiAgIAoyMDAxLTAzLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHJlc3BlY3Qgbm9uLWxvY2FsIHNyY2RpcnMgZm9yIHRyYW5zcG9ydC9zZWNtb2RzCiAgIAoyMDAxLTAzLTA1IDEwOjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiwgc25tcGxpYi8uY3ZzaWdub3JlLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN1cHBvcnQgZm9yIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbHMuICBDdXJyZW50bHkgb25seSB0aGUgVVNNIGlzCiAgIGF2YWlsYWJsZSwgYnV0IGEgbmV3IGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZGVsIHdpbGwgYmUgYXZhaWxhYmxlCiAgIHNob3J0bHkuICBUaGVzZSBjaGFuZ2VzIHNpbXBseSBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBtb3JlIHRoYW4gb25lCiAgIHNlY3VyaXR5IHNlcnZpY2UuCiAgIAoyMDAxLTAzLTA1IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9zZWNtb2QuYywgc25tcF9zZWNtb2QuaDoKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBhdXRob3JzIGxpc3QuCiAgIAoyMDAxLTAzLTA1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5oOgoKICAgQ29tbWVudCByZS1hcnJhbmdpbmcgdG8gYWN0dWFsbHkgYmUgbmVhciB0aGUgZnVuY3Rpb25zIHRoZXkncmUgZGVzY3JpYmluZy4KICAgCjIwMDEtMDMtMDUgMDY6MTAgIGpicG4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIGdldF9teWFkZHIoKSBmdW5jdGlvbiB0byBjb3BlIG1vcmUgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMKICAgb2YgaW50ZXJmYWNlcywgYW5kIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG5vbi1JUHY0IGFkZHJlc3NlcyBvbiBzb21lCiAgIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQKICAgbWVtb3J5IHJlYWRzLiAgVXNlICJvZmZpY2lhbCIgZGVmaW5pdGlvbiBvZiBJTkFERFJfTE9PUEJBQ0suCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9SRUFETUUubWliczoKCiAgIGZpbGUgUkVBRE1FLm1pYnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBmaWxlIGlhbmFsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBmaWxlIHJmY2xpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgZmlsZSByZmNtaWJzLmRpZmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMSAxOToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTI4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnKGNoYXIgKmxpbmUpIHRvIHBhcnNlIGEgLmNvbmYgY29uZmlndXJhdGlvbgogICAgIGxpbmUgYXQgYW55IHRpbWUgaW4gdGhlIGNvZGUgKGhhbmRsZXJzIG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaGFuZCkuCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWdfcmVtZW1iZXIoY2hhciAqbGluZSkgdG8gbWVtb3JpemUgaXQgZm9yCiAgICAgbGF0ZXIgdXNlLgogICAtIHJlYWRfY29uZmlncywgZXQgYWwsIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZW0gYWZ0ZXIgcmVhZGluZwogICAgIGV2ZXJ5dGhpbmcgZWxzZS4KICAgLSBBZGRlZCBhIC1ZIGZsYWcgdG8gc25tcF9wYXJzZV9hcmdzIHRvIHN0b3JlIHJlYWQgY29uZmlnIGRpcmVjdGl2ZXMKICAgICBmb3IgbGF0ZXIgdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBzcGVjaWZ5IC5jb25mIGRpcmVjdGl2ZXMgb24gdGhlCiAgICAgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wMi0yNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggQWdlbnRYIHN1YmFnZW50cyBhbmQgVkFDTSBjaGVja2luZyBpbnRlcmFjdGlvbi4KICAgKEZpeCBwcm92aWRlZCBieSBGcmFuayBTdHJhdXNzKQogICAKMjAwMS0wMi0yMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHVjZC1zbm1wLWluY2x1ZGVzLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jIChWNC0yLXBhdGNoZXMuMiksIGludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZhcl9zdHJ1Y3QuaCAoVjQtMi1wYXRjaGVzLjEpLCB2YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE2IDA0OjE2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENoYW5nZSBiZWhhdmlvdXIgb24gY3lnd2luIHRvIGV4Y2x1ZGUgVW5peCBkb21haW4gdHJhbnNwb3J0cyBieSBkZWZhdWx0CiAgIG9uIGN5Z3dpbiwgYW5kIGFsc28gZml4IGEgbWlub3IgYnVnLCB0aGFua3MgdG8gc3VnZ2VzdGlvbnMgYnkgUGV0ZXIgRm9say4KICAgCjIwMDEtMDItMTQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEyIDE0OjExICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkZWQgS2FybCdzIHBhdGNoIGZvciB1c2VudW1lcmljCiAgIAoyMDAxLTAyLTEyIDEzOjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNULCBTTk1QLnBtLCBTTk1QLnhzLAogICBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBhZGRlZCB0cmFwIHJlY2VwdGlvbiBBUEkgZnJvbSBQaGlsaXAgUHJpbmRldmlsbGUgPHBoaWxpcHBAY2lzY28uY29tPgogICAKMjAwMS0wMi0xMSAwODoyMyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfYWRkIG5vdCBzbm1wX3Nlc3NfYWRkICh0aGUgbGF0dGVyIGRvZXNuJ3QgYWRkIGEgc2Vzc2lvbiB0bwogICB0aGUgU2Vzc2lvbiBsaXN0LCBhbmQgaXQgdGhlcmVmb3JlIHdvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0KCkKICAgZmRzZXQsIGhlbmNlIHNubXB0cmFwZCB3aWxsIG5ldmVyIHJlY2VpdmUgdmVyeSBtdWNoKS4KICAgCjIwMDEtMDItMTEgMDg6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggaW1wcm9wZXJseS10ZXJtaW5hdGVkIGxpc3QgaW4gY29tMnNlYyBoYW5kbGluZy4KICAgCjIwMDEtMDItMTEgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENsZWFuIHVwIG1lcmdlICg+Pj4+Pj4sID09PT09PSBldGMuIGxlZnQgYmVoaW5kKS4KICAgCjIwMDEtMDItMTAgMDk6MjYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8uCiAgIAoyMDAxLTAyLTEwIDA5OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYywKICAgc3ViYWdlbnQuYzoKCiAgIE1lbW9yeSBsZWFrIHBhdGNoZXMgKHNvdXJjZWZvcmdlIHBhdGNoICMxMDM2MDUpLgogICBSZW1vdmUgYSBmZXcgc3RyZHVwKClzLCBhbmQgY2FsbCBmcmVlX2FnZW50X3NubXBfc2Vzc2lvbigpIHJhdGhlciB0aGFuCiAgIGZyZWUoKSBpbiBzdWJhZ2VudC5jOmhhbmRsZV9hZ2VudHhfcGFja2V0KCkgZm9yIEFHRU5UWF9NU0dfUkVTUE9OU0UKICAgYW5kIGRlZmF1bHQgY2FzZXMsIHRvIGVuc3VyZSBmcmVlKClpbmcgb2YgY2xvbmVkIFBEVSBhbGxvY2F0ZWQgYnkKICAgaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCiAgIAoyMDAxLTAyLTEwIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmgsIHNubXBUQ1BEb21haW4uYwosIHNubXBUQ1BEb21haW4uaCwgc25tcFVEUERvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmgsIHNubXBVbml4RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmgKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgV2hvb3BzLiAgRm9yZ290IHRoZSBuZXcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwbHVnZ2FibGUgdHJhbnNwb3J0IHN0dWZmLgogICAKMjAwMS0wMi0wOSAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsIG10ZU9iamVjdHNUYWJsZS5jCiwgbXRlT2JqZWN0c1RhYmxlLmgsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIG10ZVRyaWdnZXJUYWJsZS5jLAogICBtdGVUcmlnZ2VyVGFibGUuaCwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBJbXBsZW1lbnRlZCBhbmQgbWFkZSB1c2Ugb2YgbXRlT2JqZWN0c1RhYmxlIHRvIHNlbmQgYWRkaXRpb25hbCBvYmplY3RzIG91dCB3aXRoIHRyYXBzIGdlbmVyYXRlZC4gIEFsc28sIGRvbid0IHJldHVybiBkYXRhIGZvciBtaXNjIHRhYmxlcyB3aGVuIHRoYXQgdHJpZ2dlciBpc24ndCBkZWZpbmVkIHRvIHVzZSB0aGF0IHRlc3QgdHlwZS4KICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMgKFY0LTItcGF0Y2hlcy4yKSwgbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy4xKSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYwogICAoVjQtMi1wYXRjaGVzLlsxLDRdKSwgbWVtb3J5X2ZyZWVic2QyLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wOSAxMDoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIEFwcGxpZWQgcGF0Y2ggMTAzNTEwOiBkb21haW4gdHJhbnNwb3J0IGluZGVwZW5kZW5jZS4gIE5vdGU6IFRyYXBzL1ZBQ00gYnJva2VuLgogICAKMjAwMS0wMi0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDAyMHNubXB2M2dldCwKICAgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsCiAgIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLAogICBUMDI1c25tcHYzZ2V0U0hBREVTLCBUMDI4c25tcHYzZ2V0ZmFpbCwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgVDA1M2FnZW50djF0cmFwLAogICBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLCBUMTAwYWdlbnRodXAKLCBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbAosIFQxMTNhZ2VudHh0cmFwLCBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldAosIFQxMjJwcm94eXNldGZhaWw6CgogICB1cGRhdGVkIG1vc3QgdGVzdHMgdG8gdXNlIG51bWVyaWMgT0lEcyBzbyBhcyB0byBub3QgcmVseSBvbiBtaWIgcGFyc2luZwogICAKMjAwMS0wMi0wOSAwNzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgcmVtb3ZlIHVudXNlZCBwcm90b3R5cGU6IGdldF9hZ2VudHhfdHJhbnNJRAogICAKMjAwMS0wMi0wOCAxNDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3RyYXB0b2VtYWlsLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICB0cmFwdG9lbWFpbCBwZXJsIHNjcmlwdCBjcmVhdGVkIGFzIGFuIGV4YW1wbGUgdHJhcGhhbmRsZSBzY3JpcHQKICAgCjIwMDEtMDItMDggMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9taWIyYywgbWFuL3NubXBjbWQuMSwgbWlicy9STU9OLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgTWVyZ2UgZnJvbSBWNC0yLXBhdGNoZXM6IG1lcmdlIDEtPjIKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jIChWNC0yLXBhdGNoZXMuMSksIGRpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgdXNlIHNubXBfZW51bSdzIHByb3Blcmx5IChzdHJkdXAoKSB0aGUgc3RyaW5ncyBmaXJzdCkKICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYywgc25tcF9lbnVtLmg6CgogICBwcm9wZXIgY29uc3RuZXNzIGZvciBzb21lIG9mIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAxLTMwIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYnVnIEkganVzdCBpbnRyb2R1Y2VkIChyZXR1cm5pbmcgcHJvcGVyIHNhdmV0byBwb2ludGVyKQogICAKMjAwMS0wMS0zMCAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtIHNubXBzZXRzIGFyZSBzdXBwb3J0ZWQKICAgICAtIEEgbmV3ICJzZXQiIGJ1dHRvbiBoYXMgYmVlbiBhZGRlZCB0byBwZXJmb3JtIHNldHMgb24gYW4gb2lkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gYSB0YWJsZSBhcmUgbm93IGJ1dHRvbnMgdGhhdCBicmluZyB1cCB0aGUKICAgICAgIHNldCB3aW5kb3cgd2l0aCB0aGUgY3VycmVudCB2YWx1ZSBpbnN0YXRlZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIHRoZSBvdXRwdXQgb2Ygc25tcHtnZXQsd2FsayxnZXRuZXh0fQogICAgICAgYnV0dG9ucyBhcmUgZGlzcGxheWVkIGFzIGJsdWUgYW5kIGFyZSBjbGlja2FibGUgdG8gY2hhbmdlIHRoZWlyCiAgICAgICB2YWx1ZXMuCiAgIC0gc2V0dGluZ3MgY29uZmlndXJlZCB2aWEgdGhlIG9wdGlvbnMgbWVudSBjYW4gbm93IGJlIHNhdmVkLgogICAtIHVzZSBHZXRvcHQ6OlN0ZCBub3cuCiAgIC0gc3VwcG9ydHMgbW9zdCBvZiB0aGUgaW1wb3J0YW50IHNubXBjbWQoMSkgZmxhZ3MgZm9yIHNlc3Npb24gc2V0dXAuCiAgIAoyMDAxLTAxLTMwIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwKICAgbXRlVHJpZ2dlclRhYmxlLmMsIG10ZVRyaWdnZXJUYWJsZS5oLAogICBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBJbml0aWFsIChub3QtY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBESVNNQU4tRVZFTlQtTUlCOgogICAgIC0gSW1wbGVtZW50cyBhbGwgMyB0ZXN0cyAoYm9vbGVhbiwgdGhyZXNob2xkIGFuZCBleGlzdGVuY2UpLgogICAgIC0gbm90IHJpZ29yb3VzbHkgdGVzdGVkLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgcXVlcnlpbmcgdGhlIGxvY2FsIGFnZW50CiAgICAgICAobXRlVHJpZ2dlclRhcmdldFRhZyBtdXN0IGJlICcnKS4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHNlbmRpbmcgdHJhcHMgYW5kIHRoZSBtdGVPYmplY3RzVGFibGUgaXMKICAgICAgIG5vdCBpbXBsZW1lbnRlZCAobXkgbmV4dCB0b2RvIGl0ZW0pCiAgICAgLSBPbmx5IHRoZSBkZWZhdWx0IHRyYXBzIGFyZSBzZW50LiAgVGhlIG10ZUV2ZW50KiBvYmplY3RzIGhhdmVuJ3QKICAgICAgIGJlZW4gaW1wbGVtZW50ZWQgKG5vIHNlbGYtZGVmaW5lZCB0cmFwcy9zZXRzKS4KICAgICAtIG5vIGVhc3kgdG8gdXNlIGNvbmZpZ3VyYXRpb24geWV0IChzb29uKS4KICAgICAtIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1taWItbW9kdWxlcz1kaXNtYW4vZXZlbnQtbWliCiAgIAoyMDAxLTAxLTMwIDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3ByaW50ZiBmb3Igc3RyaW5ncyB0aGF0IG1heSBub3QgYmUgbnVsbCB0ZXJtaW5hdGVkLgogICAKMjAwMS0wMS0zMCAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIEltcGxlbWVudGVkIGdldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKSBhbmQgc2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpOgogICAgIC0gVGhlc2UgYWxsb3cgYSBtaWIgbW9kdWxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CiAgICAgICBhZ2VudF9zbm1wX3Nlc3Npb24gcG9pbnRlciBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgLSBUaGlzIHNob3VsZCBwcm9iYWJseSBkb25lIGRpZmZlcmVudGx5IGxhdGVyIHdoZW4gd2UgY2hhbmdlIHRoZSBtaWIKICAgICAgIG1vZHVsZSBhcGkuCiAgICAgLSBUaGlzIHdpbGwgY29tcGxldGVseSBmYWlsIHRvIHdvcmsgcHJvcGVybHkgaW4gYSBtdWx0aS10aHJlYWRlZAogICAgICAgYWdlbnQgKHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueXdheSkuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBkZWJ1Z2dpbmcgc3RhdGVtZW50IGF0IGluaXRpYWxpemF0aW9uIHRpbWUuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBwcm9wZXJseSBtYWxsb2MgYSAxIGJ5dGUsIE5VTEwgY2hhcmFjdGVyIHN0cmluZyBmb3IgIiIgcmVhZCBzdHJpbmdzLgogICAKMjAwMS0wMS0yOSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgZGF0YSBzZXBlcmF0aW9uIGFuZCBuZXcgZnVuY3Rpb25zOgogICAgIGhlYWRlcl9jb21wbGV4X2dldF9mcm9tX29pZCgpCiAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGFfYnlfb2lkKCkKICAgCjIwMDEtMDEtMTIgMDg6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQ6CgogICAtIERJU01BTi1FVkVOVC1NSUIgYWRkZWQgdG8gbWliIHJlcG9zaXRvcnkuIChPciwgZ3Vlc3Mgd2hhdCBJIGRpZCBkdXJpbmcgYSA2IGhvdXIgcGxhbmUgZmxpZ2h0PykKICAgCjIwMDEtMDEtMTIgMDg6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBiaXQgc3RyaW5ncwogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gbmV3IGRhdGEgdHlwZXMgc3VwcG9ydGVkIGZvciByZWFkX2NvbmZpZyByb3V0aW5lczogdW5zaWduZWQsIGJpdF9zdHIuCiAgIAoyMDAxLTAxLTEyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtb3ZlIGNvbmZpZyBzdHJpbmcgaW5pdGlhbGl6ZXIgYWJvdmUgc3ViYWdlbnQgY2hlY2sgc28gaXRzIGtub3duIGV2ZW4KICAgaWYgbm90IHVzZWQuCiAgIAoyMDAxLTAxLTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgbWliMmMuc3RvcmFnZS5jb25mLAogICBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTA5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIGRzX2FnZW50LmgsIHZhcl9zdHJ1Y3QuaCwgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgKOgoKICAgU3ViQWdlbnQgcGluZyBzdXBwb3J0OgogICAgIC0gYWdlbnR4UGluZ0ludGVydmFsIHNwZWNpZmllcyBTRUNPTkRTIGJldHdlZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgICAgIHRyaWVzIHRvIHBpbmcgdGhlIG1hc3RlciBhZ2VudC4KICAgICAtIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCBpdCB0cmllcyB0byByZWNvbm5lY3QuCiAgICAgLSBmYWlsaW5nIHRoYXQgaXQgdHJpZXMgZXZlcnkgU0VDT05EUyBhZ2FpbiB0aWxsIGl0IHN1Y2NlZWRzLgogICAgIC0gcmUtcmVnaXN0ZXJzIGl0cyBvaWQncyBiYXNlZCBvbiB0aGUgY3VycmVudCBzdWJ0cmVlIGxpc3QuCiAgICAgICAtIG1heSBuZWVkIHNvbWUgdGhvdWdodC4gIEFzc3VtZXMgKmFsbCogbmVlZCB0byBiZSByZS1yZWdpc3RlcmVkLgogICAgICAgLSBuZWVkcyB0byByZS1yZWdpc3RlciBzeXNvcnRhYmxlIGVudHJpZXMgdG9vLCBidXQgZG9lc24ndC4KICAgICAtIGN1cnJlbnRseSBzZWctZmF1bHRzIG9uIGFib3V0IHRoZSAyLTR0aCB0aW1lIG9yIHNvLiAgTm90IHN1cmUgd2h5LgogICAgIC0gU2hvdWxkIG1ha2UgRGF2ZSBzbWlsZSBvciBjcmluZ2Ugb3IgZ2lnZ2xlLCBub3Qgc3VyZSB3aGljaC4KICAgCjIwMDEtMDEtMDkgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgQWxsb3cgZGVyZWdpc3RlcmluZyBvZiBjYWxsYmFja3MKICAgCjIwMDEtMDEtMDkgMDY6MjAgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0Lzogc25tcG5ldHN0YXQuZHNwIChWNC0yLXBhdGNoZXMuMSksCiAgIHNubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDQgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYywgc25tcF9lbnVtLmg6CgogICAtIGdlbmVyaWMgc25tcCBlbnVtIGxpc3Qgc3VwcG9ydC4gIE5vdCB1c2VkIGFueXdoZXJlICh5ZXQpLgogICAKMjAwMS0wMS0wNCAxNjo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oCiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSBtZXJnZWQgcGF0Y2hlcyBmcm9tIFY0LTItcGF0Y2hlcyBicmFuY2ggdG8gbWFpbiBicmFuY2guCiAgIAoyMDAxLTAxLTA0IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jCjoKCiAgIC0gYWRkZWQgbmV3IHByaW50SGV4VGV4dCBzbm1wLmNvbmYgdG9rZW4uCiAgIC0gZG9jdW1lbnRlZCAtT1QsIGFuZCB0aGUgdG9rZW4uCiAgIAoyMDAxLTAxLTA0IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIFBhdGNoICMxMDMwOTEgYXBwbGllZDoKICAgICAtIEFkZGVkIC1PVCBvcHRpb24gdG8gdmlldyBoZXggc3RyaW5ncyB3aXRoIHRleHQgaW4gdGhlbS4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwOgoKICAgZmlsZSBUMDU1YWdlbnR2MW1pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZmlsZSBUMDU2YWdlbnR2MmNtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjIgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTE5IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBpbml0X3NubXB2MygpIGRlYWwgd2l0aCBhIE5VTEwgYXJndW1lbnQgcHJvcGVybHkuCiAgIAoyMDAwLTEyLTE4IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IHJlbW92ZSBwYXNzdGVzdCBmcm9tIHRoZSAuY3ZzaWdub3JlIGZpbGUgKGJ1ZyAjMTI2OTQpCiAgIAoyMDAwLTEyLTE4IDEwOjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbToKCiAgIG1pbm9yIGRvYyBmaXgKICAgCjIwMDAtMTItMTQgMTM6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogZml4IHVwdGltZSBmb3IgNjQtYml0IFNvbGFyaXMKICAgCjIwMDAtMTItMTQgMTM6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggc3R1cGlkIHNwZWxsaW5nIGVycm9yCiAgIAoyMDAwLTEyLTEzIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IGNvbmZ1c2lvbiBiZXR3ZWVuIGludCwgc2l6ZV90LCBsb25nIGZvciA2NC1iaXQgY29tcGlsZXMuCiAgIAoyMDAwLTEyLTEzIDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBzbm1wY29uZi4xCiAgIAoyMDAwLTEyLTA4IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgLSB2YWNtX3ZhcnMuYywgdmFjbS5jOiBpbmRleGluZyBvZiB2YWNtVmlld1RyZWVGYW1pbHlFbnRyeSB3YXMgaG9zZWQsIGFzc3VtaW5nCiAgIAl0aGF0IHRoZSBTdWJ0cmVlIGluZGV4IGhhZCBhbiBJTVBMSUVEIGF0dHJpYnV0ZS4KICAgCjIwMDAtMTItMDggMTQ6NDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzoKCiAgIC0gaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzogZml4IHNvbWUgemVybyBpbmRleCB2YWx1ZXMuCiAgIAoyMDAwLTEyLTA4IDE0OjQzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBmaXggcmV0dXJucyBvZiB6ZXJvRG90WmVybyAoc3VjaCBhcyBpZlNwZWNpZmljKQogICAKMjAwMC0xMi0wOCAxNDozOCAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcGQuYzogc2VjdXJpdHkgbW9kZWwgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUgaXMgc25tcCB2ZXJzaW9uIHZhbHVlcwogICAKMjAwMC0xMi0wNiAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBMaW51eCBrZXJuZWwgMi4wLnggaGFzIG5vIEFSUEhSRF9ISVBQSQogICAKMjAwMC0xMi0wNSAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCByc25tcCdzIC91c3IvbG9jYWwgaGFyZGNvZGVkIHBhdGguCiAgIAoyMDAwLTEyLTA0IDE3OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiBmaXgKICAgCjIwMDAtMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIgKQogICAKMjAwMC0xMi0wNCAxNjozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlLgogICAKMjAwMC0xMi0wNCAxNTozMCAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgLSAoTkVXUywgUkVBRE1FKTogdXBkYXRlcy4KICAgCjIwMDAtMTItMDQgMTQ6NDggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAueHMsIHQvbWlibG9hZC50CiwgdC9zdGFydGFnZW50LnBsOgoKICAgZW5zdXJlIG1pYmxvYWQudCB1c2VzIGNvcnJlY3QgTUlCRElSIGZvciB0ZXN0aW5nCiAgIAoyMDAwLTEyLTA0IDExOjA1ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIEZBUSwgUkVBRE1FOgoKICAgLSAoQUdFTlQudHh0LCBGQVEsIFJFQURNRSk6IGNvbnZlcnQgdXJsJ3MgdG8gd3d3Lm5ldHNubXAub3JnLgogICAKMjAwMC0xMi0wNCAwODo0NSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBhZ2VudHggbm90ZSBjaGFuZ2VzLgogICAKMjAwMC0xMi0wMyAwNzoyOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIHNubXB0cmFwZF9sb2cuYzogZm94IG1pc3NpbmcgbGVhZGluZyB6ZXJvZXMgZm9yICUuMmQgbGlrZSBmb3JtYXRzLgogICAJQWRkIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yIHVwLXRpbWUgZGlzcGxheXMuCiAgIAoyMDAwLTEyLTAyIDE4OjIyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHMsIHQvYnVsa3dhbGsudCwKICAgdC9ub3RpZnkudCwgdC9zZXNzaW9uLnQ6CgogICBmb3VuZCB0aGUgdW5pbml0aWFsaXplZCBkYXRhIGJ1Zy4uLm11c3QgaGF2ZSBiZWVuIGluIHRoZXJlIGRvcm1hbnQgZm9yIGEgd2hpbGUsIG90aGVyIHRlc3QgZml4ZXMgLSBnb29kIHRvIGdvIQogICAKMjAwMC0xMi0wMSAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlZmVyZW5jZSBuZXQtc25tcC1jb2RlcnMuCiAgIAoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE2OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IHJlbW92ZSB0aGUgYnVnIHJlcG9ydCBzY3JpcHQuCiAgIAoyMDAwLTEyLTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HOgoKICAgLSAoUE9SVElORyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZik6IG1lbnRpb24gdGhlIGZhY3QgdGhhdCBzbm1wdjMgdHJhcHMgYXJlCiAgICAgdGhlIHNhbWUgYXMgc25tcHYyIHRyYXBzLgogICAKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgZm9yIHByb3h5IHN1cHBvcnQuCiAgIAoyMDAwLTEyLTAxIDE0OjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgYSBmZXcgdGhpbmdzLgogICAKMjAwMC0xMi0wMSAxNDoyOCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBkaWFnbm9zZSB3cm9uZyBxdW90aW5nIGluIGluZGljZXMKICAgCjIwMDAtMTItMDEgMTQ6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGFkZCBSRkMtMTIxMyBhcyBhbiBhbGlhc2UgZm9yIFJGQzEyMTMtTUlCICh1c2VkIGluIG1hbnkgbWlicykKICAgCjIwMDAtMTItMDEgMTQ6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiByZWZvcm1hdCBzb21lIGRlYnVnIG1lc3NhZ2VzIGZvciByZWFkYWJpbGl0eQogICAKMjAwMC0xMi0wMSAxNDoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBmaXggaWZUeXBlIHZhbHVlcyBmb3IgTGludXgKICAgCjIwMDAtMTItMDEgMTQ6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gc3ViYWdlbnQuYzogc3VwcGx5IGEgbWlzc2luZyByZXR1cm4gdmFsdWUKICAgCjIwMDAtMTItMDEgMTA6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBxdW90ZSB0aGluZ3Mgd2l0aCBzcGFjZXMgaW4gdGhlbS4KICAgCjIwMDAtMTItMDEgMDk6NDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY29uZi4xOgoKICAgLSAoc25tcGNvbmYuMSk6IHF1aWNrIG1hbiBwYWdlIGZvciBzbm1wY29uZi4KICAgCjIwMDAtMTItMDEgMDk6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6IGNoYW5nZSBuby1wYXJlbnQgbG9nIG1lc3NhZ2UgaW50byBhIHdhcm5pbmcuCiAgIAoyMDAwLTEyLTAxIDA5OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogdXBkYXRlIGZyb20gRGF2ZS4KICAgCjIwMDAtMTItMDEgMDk6MTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc3VwcG9ydCB2Mi0+djEgdHJhcCBjb252ZXJzaW9uLgogICAKMjAwMC0xMi0wMSAwNzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHR5cG8uCiAgIAoyMDAwLTEyLTAxIDA3OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHBlcmwvU05NUC90L25vdGlmeS50LCBzbm1wbGliL21pYi5jOgoKICAgYWRkaXRpb25hbCBmaXhlcyB0byBzdXBwb3J0IHRhcmdldHRlZCBidWlsZHMgb2YgcGVybC9TTk1QIHVzaW5nIC1ORVQtU05NUC1QQVRIIChhbmQgd2hpdGUgc3BhY2UgcmVtb3ZhbCBhcyBteSBlbWFjcyBraW5kbHkgZG9lcyB0aGF0IGZvciBtZT8pCiAgIAoyMDAwLTExLTMwIDE0OjA2ICBuYmEKCiAgICogc25tcGxpYi86IGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOiBleHRlcm4gIkMiIGJyYWNrZXRpbmcKICAgCjIwMDAtMTEtMzAgMTQ6MDQgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGQuY29uZi41LmRlZjogZml4IGZvcm1hdHRpbmcgb2Ygc211eHBlZXIgdG9rZW4KICAgCjIwMDAtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTExLTMwIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBiYWQgc2V0cyBmb3IgYWdlbnR4LgogICAKMjAwMC0xMS0zMCAwOToxOSAgaGFyZGFrZXIKCiAgICogb3YvUkVBRE1FOgoKICAgLSAob3YvUkVBRE1FKTogbWlub3IgY29ycmVjdGlvbnMsIHByb2JhYmx5IHN0aWxsIGluY29ycmVjdC4KICAgCjIwMDAtMTEtMzAgMDk6MTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4sIHNubXBjb25mLCBhY2wsIGJhc2ljX3NldHVwLCBtb25pdG9yLCBvcGVyYXRpb24sCiAgICAgc3lzdGVtLCB0cmFwc2lua3MpOgogICAgIC0gZ3JvdXBpbmcgc3VwcG9ydC4KICAgICAtIHNvcnQtb2YtcXVpZXQgb3V0cHV0IHN1cHBvcnQuCiAgICAgLSBvcGVyYXRpb24gbW9kZSBzdXBwb3J0IChzZXR0aW5nIHVzZXIsIGdyb3VwLCBwb3J0cy4uLikKICAgCjIwMDAtMTEtMzAgMDk6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNhdmUgYSB3YXJuaW5nIGhlYWRlciBhdCB0aGUgdG9wIG9mIHRoZQogICAgIHBlcnNpc3RlbnQgZGF0YSBmaWxlLgogICAKMjAwMC0xMS0zMCAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jKTogQ2xlYW51cCBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAwLTExLTMwIDA5OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IHNldCBEU19BR0VOVF9OT19ST09UX0FDQ0VTUyBpbiAtSCBoZWxwIG91dHB1dC4KICAgCjIwMDAtMTEtMzAgMDk6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtZW50aW9uIHRoZSBUVU5ORUwtTUlCIHN1cHBvcnQuCiAgIAoyMDAwLTExLTI5IDE4OjIxICBzbGlmCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlLW1haWwgYWRkcmVzcyBmb3IgU2xpZmNhawogICAKMjAwMC0xMS0yOSAxMTozNCAgbWFyegoKICAgKiBjb25maWd1cmU6CgogICBmaXhlZCBvcmRlciBvZiBmdW5jdGlvbiBjaGVja2luZyBzbyB0aGF0IHZzbnByaW50ZiBpcyBub3QgZm91bmQgaW4gbGliZGIgKEJTRCBkYikgYnkgbWlzdGFrZQogICAKMjAwMC0xMS0yOSAwNToxOCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FOgoKICAgcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKICAgCjIwMDAtMTEtMjggMTg6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvUkVBRE1FLAogICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsCiAgIHBlcmwvU05NUC90L21pYi50LCBwZXJsL1NOTVAvdC9ub3RpZnkudCwKICAgcGVybC9TTk1QL3Qvc2Vzc2lvbi50LCBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKICAgCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAobG9jYWwvc25tcGNvbmYpOgogICAgIC0gYWRkIHN1cHBvcnQgZm9yICJncm91cHMiIG9mIGl0ZW1zLgogICAgIC0gZG9uJ3QgdXNlIElPOjpEaXIsIGFzIGl0cyBub3QgaW4gdGhlIHN0YW5kYXJkIHBlcmwgbW9kdWxlIGRpc3RyaWJ1dGlvbnMuCiAgIAoyMDAwLTExLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCk6IHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZSByZWZlcmVuY2UuCiAgIAoyMDAwLTExLTI3IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gZml4IGF1dG8tc2V0IHN1cHBvcnQgZm9yIHRoZSBhZ2VudCAoYW5kIHBsdWcgYSBtZW1vcnkgbGVhaykuCiAgIAoyMDAwLTExLTI3IDEzOjQyICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gc25tcC5jb25mLjUuZGVmOiBkb2N1bWVudCB0b2tlbnMgZXh0ZW5kZWRJbmRleCBhbmQgbm9SYW5nZUNoZWNrCiAgIAoyMDAwLTExLTI3IDEzOjQxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLaBwYXJzZS5jOiBmaXggYSBDKysgc3R5bGUgY29tbWVudAogICAKMjAwMC0xMS0yNCAxNToxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9uZXRic2QxLmM6CgogICAtIG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXRfbmV0YnNkMS5jOiBtaW5vciBmaXhlcyBmb3IgTmV0QlNEIDEuNSwgT1BlbkJTRCAyLjYKICAgCjIwMDAtMTEtMjIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIChtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jKTogUGF0Y2ggZnJvbSBTZWFuIEhhcmRpbmc6CiAgICAgLSBkb24ndCBleHBvcnQgYW4gaW50ZXJuYWwgdmFyaWFibGUuCiAgIAoyMDAwLTExLTIxIDE1OjE3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBwYXJzaW5nIG9mIG9pZCBsaWtlIDk5LjEzLlwiZ3VmXCI4CiAgIAoyMDAwLTExLTE5IDEzOjAzICBuYmEKCiAgICogcGVybC9TTk1QL1NOTVAueHMsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIFNOTVAueHMsIG1pYjJjLnZhcnR5cGVzLmNvbmY6IFRoZSByZWNlbnQgc3BlY2lhbGlzYXRpb24gb2YgdGhlIEludGVnZXIKICAgCXR5cGVzIGluIHRoZSBwYXJzZXIgY3JlYXRlZCBwcm9ibGVtcyBmb3IgdGhlIHBlcmwgbW9kdWxlIGFuZCBpbiB0dXJuCiAgIAlmb3IgbWliMmMuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhpcyBiZWZvcmUgcHJlMjotKAogICAKMjAwMC0xMS0xOSAxMjo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIGZpeGVzIHRvIC4vY29uZmlndXJlIC0td2l0aC1kZWZhdWx0cyAtLWVuYWJsZS1taW5pLWFnZW50OyBtYWtlIGluc3RhbGwKICAgCWFuZCBydW4gdGhlIHRvb2xzIHVuZGVyIGN5Z3dpbi4gSGF2ZW4ndCB0cmllZCB0aGUgYWdlbnQgeWV0Oi0pCiAgIAoyMDAwLTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluCiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMiApCiAgIAoyMDAwLTExLTE4IDA3OjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICAtIChUMDQ5c25tcHYzaW5mb3JtKTogdjMgaW5mb3JtIHRlc3QgYWRkZWQuCiAgIAoyMDAwLTExLTE3IDExOjAxICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgLSBtaWIuYywgc25tcF9hcGkuYzogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgc25tcHNldCBjYWxscyBhbmQgYmFkCiAgIAlpbmRpY2VzLiBBbHNvIGZpeCBhIGJ1ZyB3aXRoIHF1b3RlZCBpbmRpY2VzLgogICAKMjAwMC0xMS0xNyAxMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIC0gKHRlc3RzL1QwNTBzbm1wdjN0cmFwKTogdGVzdCBmb3Igc25tcHYzIHRyYXBzLgogICAKMjAwMC0xMS0xNyAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZml4IGNhc2VzIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5ncyBhcmUgc3BlY2lmaWVkLgogICAKMjAwMC0xMS0xNyAxMDoyNiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSBJQU5BaWZUeXBlLU1JQi50eHQ6IHVwZGF0ZSBmcm9tIElBTkEKICAgCjIwMDAtMTEtMTcgMDg6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggbWVtb3J5IGxlYWtzLgogICAgIC0gZml4IGFnZW50eCBwcm9ibGVtcyB3aXRoIGJhZCBzZXRzLgogICAKMjAwMC0xMS0xNiAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXBsaWIvc25tcHYzLmMpOiBhZGRlZCBhIHNwYWNlIGluIGEgZGVidWdnaW5nIG91dHB1dCBzdGF0ZW1lbnQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzaW1wbGUgZGVidWdnaW5nIHN0YXRlbWVudCBhZGRlZC4KICAgCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNldCBEU19MSUJfQVBQVFlQRSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgeWV0LgogICAKMjAwMC0xMS0xNiAxNzo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogYWRkIENPTkZJR1RSQVBELgogICAKMjAwMC0xMS0xNiAxNzo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgLSAoc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwpOgogICAgIC0gc3VwcG9ydCAtSXIgZm9yICJkb250IGNoZWNrIHJhbmdlL3R5cGUgdmFsdWVzIiAobGV0dGVyIHIgc3ViamVjdCB0byBkZWJhdGUpLgogICAKMjAwMC0xMS0xNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSAoY2FsbGJhY2suYyk6IGJldHRlciBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGRpc3BsYXkgYSBjYWxsYmFjayBjb3VudCB3aGVuIGRvbmUuCiAgIAoyMDAwLTExLTE2IDE2OjUyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSAoVDExM2FnZW50eHRyYXApOiBBIG5ldyB0ZXN0IHRvIHRlc3QgdHJhcCBzdXBwb3J0IGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTEtMTYgMTY6NTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXA6CgogICAtIChUMDU4YWdlbnRhdXRodHJhcCk6IHNsZWVwIHNvbWUgYW5kIG9ubHkgcGVyZm9ybSBvbmUgZ2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXA6CgogICAtIChUMDU0YWdlbnR2MmN0cmFwKTogc2xlZXAgYSBiaXQgYW5kIG9ubHkgc2VuZCBvbmUgc25tcCBzZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTU6NDcgIG5iYQoKICAgKiBzbm1wbGliL2dldG9wdC5jOgoKICAgLSBnZXRvcHQuYzogcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDAtMTEtMTYgMTU6MzEgIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgbWliLmMsIHBhcnNlLmgsCiAgIHNubXBfYXBpLmM6CgogICAtIHBhcnNlLltjaF0sIG1pYi5jLCBzbm1wX2FwaS5jOiByZW5hbWUgVFlQRV9VSU5URUdFUjMyIGJhY2sgdG8gVFlQRV9VSU5URUdFUgogICAKMjAwMC0xMS0xNiAxNToxNiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcHRyYXBkLmMsIHNubXB0cmFwZC5jb25mOiBuZXcgY29uZmlnIGRpcmVjdGl2ZXMgZm9ybWF0MSBhbmQgZm9ybWF0MiB0bwogICAJc2V0IGxvZyBmb3JtYXRzIGZvciBUUkFQMSBhbmQgVFJBUDIgcGR1cy4KICAgCjIwMDAtMTEtMTYgMTM6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGFkZCBmdW5jdGlvbmFsaXR5IHRvIGNoZWNrIHZhbHVlIHR5cGVzIGluIGFkZGl0aW9uIHRvIHJhbmdlcwogICAJZm9yIHNubXBzZXQgYW5kIHNubXB0cmFwLgogICAKMjAwMC0xMS0xNiAxMzo0NyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogRml4IERFRlZBTCBwYXJzaW5nIGZvciAgT0JKRUNUIElERU5USUZJRVIgb3IgQklUUyB2YWx1ZXMKICAgCShpLmUuIERFRlZBTCB7IHsgMCAwIH0gfSBldGMpCiAgIAoyMDAwLTExLTE2IDExOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBhZGQgYSBncmVhdGVyIHRpbWVvdXQgdG8gdGhlIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgLSAoZXhhbXBsZS5jKToKICAgICAtIHNlbmQgYSB2MmMgdHJhcCB1c2luZyBpdHMgb3duIGRhdGEsIG5vdCB0aGUgc3lzdGVtX21pYidzLgogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDAtMTEtMTYgMTE6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU4YWdlbnRhdXRodHJhcCk6CiAgICAgLSBuZXcgdGVzdHMgZm9yIHRyYXBzIHNlbnQgYnkgdGhlIGFnZW50LgogICAKMjAwMC0xMS0xNiAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBEb24ndCBkZWxldGUgUkVBRE9OTFkgdHJhcCBzZXNzaW9ucy4KICAgCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm06CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtKTogdGVzdCBpbmZvcm0gc2VuZGluZy9yZWNlaXZpbmcuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIG1hbi9zbm1wdHJhcC4xOgoKICAgLSAoYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMSk6IHN1cHBvcnQgLUNpIGZvciBzZW5kaW5nIGluZm9ybXMuCiAgIAoyMDAwLTExLTE1IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gKHNubXB0cmFwZF9sb2cuYyk6IHVzZSBTTk1QX01BWEJVRiBpbnN0ZWFkIG9mIGEgbG9jYWwgbGVuZ3RoIGRlZmluaXRpb24uCiAgIAoyMDAwLTExLTE1IDE0OjE4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggbWFrZSdpbmcgaW4gcmVtb3RlIGRpcmVjdG9yeQogICAKMjAwMC0xMS0xNSAxNDoxMSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IHVwZGF0ZSB0byB1c2UgZ2V0b3B0IGZvciBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMC0xMS0xNSAxNDoxMCAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiBmaXggYSBjb25mdXNpbmcgaW5kZW50YXRpb24uCiAgIAoyMDAwLTExLTE1IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IG1ha2Ugc3VyZSBjb21tdW5pdHkgaXMgXDAtdGVybWluYXRlZCBpbiB0YXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMC0xMS0xNSAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nOiBmaXggYSBidWZmZXIgdGhhdCBpcyB3YXkgdG9vIHNob3J0IGZvciBhIHRyYXAgd2l0aCBqdXN0IGEKICAgCXNpbmdsZSBwYXJhbWV0ZXIuIEZpeCBhIGJhZCBsaW1pdCB0ZXN0IGluIHN0cl9hcHBlbmQuCiAgIAoyMDAwLTExLTE1IDE0OjAwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogZml4IGEgc3R1cGlkIHBlcnJvciBmb3Igc25tcF9wZXJyb3IKICAgCjIwMDAtMTEtMTUgMTM6NTggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLltjaF0sIG1pYi5jOiBlbmhhbmNlIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggSU5URUdFUiwgSW50ZWdlcjMyLAogICAJVW5zaWduZWQzMiwgVUludGVnZXIzMi4KICAgCjIwMDAtMTEtMTUgMTM6NTUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jOiByZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTE1IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIC0gKHNubXBfdmFycy5jLCBzdWJhZ2VudC5jKTogUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkOgogICAgIC0gRG9uJ3QgbWFrZSBpbml0X2FnZW50KCkvc3ViYWdlbnRfcHJlX2luaXQoKSBleGl0IGJ1dCByZXR1cm4gYW4KICAgICAgIGVycm9yIGNvbmRpdGlvbiBpbnN0ZWFkLgogICAKMjAwMC0xMS0xMiAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkIE5VTEwgdG8gZW5kIG9mIGRlbW8gc3RyaW5nIGFuZCBjaGVjayBmb3IgbGVuPTAuCiAgIAoyMDAwLTExLTEyIDA0OjQ1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogTWFrZSBzdXJlIHRoZSBub1JhbmdlQ2hlY2sgdG9rZW4gaXMgYSBib29sZWFuCiAgIAoyMDAwLTExLTEyIDA0OjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGdpdmUgdGhlIHRyZWUtdG9wIGEgbmFtZSB0byBwcm90ZWN0IGVycm9yIG1lc3NhZ2Ugd2hlbiBsb29raW5nIHVwIC5mb28KICAgCjIwMDAtMTEtMTIgMDQ6MzYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gc25tcHRyYW5zbGF0ZS5jOiB1c2UgY29uZmlnX3BlcnJvciBmb3IgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZQogICAKMjAwMC0xMS0xMiAwNDozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTExLTEyIDA0OjMzICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLWFnZW50X3RyYXBzLmM6IE1vdmUgYSBjb25kaXRpb25hbGx5IHVzZWQgdmFyaWFibGUKICAgCjIwMDAtMTEtMTIgMDQ6MzIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGEgYm9ndXMgI2lmZGVmCiAgIAoyMDAwLTExLTEwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYXBwbHkgcGF0Y2ggIzEwMjIyNCBmcm9tIGpicG4gZm9yIGNyb3NzLWNvbXBpbGluZy4KICAgCjIwMDAtMTEtMTAgMDg6NTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwOgoKICAgLSAodGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCk6CiAgICAtIGZpcnN0IHBhc3MgYXQgYSB0ZXN0aW5nIHNjcmlwdCB0byB0ZXN0IHRyYXAgZnVuY3Rpb25hbGl0eS4KICAgICAgLSB3aGljaCBldmVuIHVuY292ZXJlZCBhIGJ1Zy4KICAgCjIwMDAtMTEtMTAgMDg6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChhcHBzL3NubXB0cmFwZC5jKToKICAgICAtIGZvcmsgaWYgZmlsZSBsb2dnaW5nIG9yIHN5c2xvZ2dpbmcsIGJ1dCBub3QgcHJpbnRpbmcuCiAgICAgLSBkb24ndCBjbG9zZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuICBUaGVyZSBzaG91bGRuJ3QgYmUgYW55LgogICAKMjAwMC0xMS0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChhcHBzL3NubXB0cmFwZF9sb2cuYyk6IHByb3Blcmx5IG51bGwgdGVybWluYXRlIGxvZyBzdHJpbmdzLgogICAKMjAwMC0xMS0wOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogYXR0ZW1wdCB0byBpbXBsZW1lbnQgYSAtLXdpdGgtcnNhcmVmIGZsYWcuCiAgIAoyMDAwLTExLTA5IDE1OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE1OjMxICBoYXJkYWtlcgoKICAgKiBORVdTLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgLSAoTkVXUywgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KICAgCjIwMDAtMTEtMDkgMTQ6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IGV4YW1wbGVzL2J1bGt3YWxrLnBsLCB0L2J1bGt3YWxrLnQ6CgogICAtIChleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50KTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCiAgIAoyMDAwLTExLTA5IDE0OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgUkVBRE1FLCBTTk1QLnBtLAogICBTTk1QLnhzOgoKICAgLSAoTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOCAyMzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGZpeCAtSCBvdXRwdXQuCiAgIAoyMDAwLTExLTA4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgY2FsbCBydW5fYWxhcm1zKCkuCiAgIAoyMDAwLTExLTA4IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gKGRpc2tpby5jKTogZml4IE9JRC4KICAgCjIwMDAtMTEtMDggMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIChTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBNYXJrIENhdmFnZSBmb3IgZGVmYXVsdCB2YWx1ZSBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBtaW5pbWFsIERFRlZBTCBwYXJzaW5nIHN1cHBvcnQuCiAgIAoyMDAwLTExLTA4IDE2OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBsaWJyc2FyZWYsIGV0YywgaWYgbmVlZGVkLgogICAKMjAwMC0xMS0wNyAxNToxNSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L3NubXBkLmMpOgogICAgIC0gdWlkL2dpZCBjaGFuZ2VzLgogICAKMjAwMC0xMS0wNyAxNToxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIChTTk1QLnhzKTogZml4IFRZUEVfTk9USUYgLT4gVFlQRV9OT1RJRlRZUEUuCiAgIAoyMDAwLTExLTA3IDExOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMpOiBQYXRjaCBmcm9tIEpvZSBDbGFya2U6CiAgICAgLSBpbXBsZW1lbnQgYmVzdC1ndWVzcyAoLUliKSBwYXJzaW5nLgogICAgIC0gYWNjZXNzIHRvIHRyYXAgdmFyYmluZHMuCiAgICAgLSByYW5nZSBhY2Nlc3MuCiAgIAoyMDAwLTExLTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgYnVpbGQgY3JlYXRlZCBmaWxlcy4KICAgCjIwMDAtMTEtMDcgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gaW1wbGVtZW50IGEgZmluaXNoKCkgY2FsbC4KICAgCjIwMDAtMTEtMDcgMTA6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC9TTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBtdWx0aXBsZSBjYWxsYmFjayBwYXRjaCBmb3IgcGVybC9TTk1QL1NOTVAueHMuCiAgIAoyMDAwLTExLTA3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIG9wdGlvbmFsIGNvbmZpZyBmaWxlIERORS4KICAgCjIwMDAtMTEtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoU05NUC5wbSk6IGZpeCBpaWQgcGFyc2luZyB3aXRoIHJlc3BlY3QgdG8gbWliIG5vZGVzIHdpdGggYSAtIGluIGl0LgogICAKMjAwMC0xMS0wNyAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwKICAgYWdlbnQvc25tcGQuYywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLAogICAgIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gaW1wbGVtZW50IHVpZC9naWQgY2hhbmdlcyBhZnRlciBzdGFydHVwIGZvciB0aGUgYWdlbnQuCiAgIAoyMDAwLTExLTA3IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IGEgYmV0dGVyIHNhbml0eSBjaGVjayBmb3Igc2Vzc2lvbiBkZWxldGlvbi4KICAgCjIwMDAtMTEtMDcgMDc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogUGF0Y2ggZnJvbSBEYXZlIHRvIHNhbml0eSBjaGVjayBwYXJhbS0+dXBkYXRlVGltZS4KICAgCjIwMDAtMTEtMDYgMTE6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtIChtZDUuYyk6IGNoZWNrIHRvIHNlZSB0aGF0IE1Ec2lnbigpIGRhdGEgbGllcyBvbiBhIDMyIGJ5dGUgYm91bmRyeS4KICAgICAtIGl0cyBwb3NzaWJsZSBzb21lIGNvbXBpbGVycyB3aWxsIGNob2tlIG9uIHRoaXMgaGFjay4KICAgICAtIGZpeGVzIGJ1ZyAjMTIxNzUuCiAgIAoyMDAwLTExLTAzIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogc29ydCBPSURzIHByb3Blcmx5LgogICAKMjAwMC0xMS0wMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgLSAoZXhhbXBsZS5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBtaWIgcmVnaXN0cmF0aW9ucyBmb3IgZHVwbGljYXRlIE9JRHMgYmVpbmcgdXNlZCBmb3IgdGhlIHRyYXAgZXhhbXBsZXMuCiAgIAoyMDAwLTExLTAzIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAgIC0gVW0sIGFwcGxpZWQgY29ycmVjdGx5IHRoaXMgdGltZSAoSSBob3BlKS4KICAgCjIwMDAtMTEtMDMgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCiAgIAoyMDAwLTExLTAyIDIyOjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGlwLmMsIGlwQWRkci5jCiwgdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIENsZWFuIHVwIHNvbWUgdW51c2VkIHZhcmlhYmxlcyBldGMuCiAgIAoyMDAwLTExLTAyIDIyOjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggc29tZSAkKHNyY2RpcikgcmVmZXJlbmNlcyB3aGVuIHJ1bm5pbmcgb3V0c2lkZSBzb3VyY2UKICAgCjIwMDAtMTEtMDIgMjI6MTUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogZml4IHRoZSBmb3JtYXQgc3RyaW5nIGZvciBmb3JtYXRfdHJhcAogICAKMjAwMC0xMS0wMiAyMjoxNCAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMgZnJvbSBmaWxlIGxpc3RzCiAgIAoyMDAwLTExLTAyIDIyOjEyICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIERvY3VtZW50IHRoZSAtT1ggb3V0cHV0IG9wdGlvbgogICAKMjAwMC0xMS0wMiAyMjoxMSAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIHN5c3NlcnZpY2VzIHRva2VuCiAgIAoyMDAwLTExLTAyIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCk6IGFkZCB1Y2Qtc25tcC9wcm94eS4KICAgCjIwMDAtMTEtMDIgMTY6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogY2hhbmdlIGN2cyBhcmNoaXZlIHNpdGUgYW5kIHBhY2thZ2UgbmFtZS4KICAgCjIwMDAtMTEtMDIgMTM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggMTAyMjM5IGZyb20gZG91Z3dhcnogdG8gZml4IGEgcHJldmlvdXNseSBiYWQgc211eC5jIHBhdGNoLgogICAKMjAwMC0xMS0wMSAxNjozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTEgKQogICAKMjAwMC0xMS0wMSAxNjoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICBUMTIycHJveHlzZXRmYWlsOgoKICAgLSAoVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWwpOiBwcm94eSB0ZXN0IHN1aXRlLgogICAKMjAwMC0xMS0wMSAxNjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCk6CiAgICAgLSBtaW5pbWFsIFNFVCBzdXBwb3J0IGZvciB0aGUgcHJveHkgY29kZS4KICAgCjIwMDAtMTEtMDEgMTA6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWw6CgogICAtIChUMTEyYWdlbnR4c2V0ZmFpbCk6IHRlc3QgZm9yIGFnZW50eCBzZXRzIHRoYXQgc2hvdWxkIGZhaWwgcHJvcGVybHkuCiAgIAoyMDAwLTEwLTMxIDE0OjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIC0gdGNwVGFibGUuYzogcmVtb3ZlIGFuIHVubmVzY2Vzc2FyeSAjaW5jbHVkZQogICAKMjAwMC0xMC0zMSAxNDoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbXV4LmM6IGZpeCB3cm9uZyB2YXJpYWJsZSBsZW5ndGgKICAgCjIwMDAtMTAtMzEgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogZml4IHNvbWUgc3VzcGljaW91cyBsb29raW5nIGNvZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gbWFuL3NubXBkLmNvbmY6IGZpeCBhIHR5cG8KICAgCjIwMDAtMTAtMzEgMTI6NDEgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gbWliLmM6IGFkZCAtT1ggb3V0cHV0IGZvcm1hdCwgZm9yIGp1c3QgYW5vdGhlciB3YXkgb2YgcHJpbnRpbmcgaW5kaWNlcwogICAKMjAwMC0xMC0zMSAxMjoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIGludGVyZmFjZS5jOiBhZGQgImludGVyZmFjZSIgY29uZmlnIGZvciB1bmd1ZXNzYWJsZSBpbnRlcmZhY2UgdHlwZS9zcGVlZAogICAKMjAwMC0xMC0zMSAxMjoyNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYwo6CgogICAtIGFwcHMvKjogbWFrZSBzdXJlIHdlIHJlcG9ydCBhbnkgZXJyaW5kZXgvZXJyY29kZSBpbiB0aGUgcmVzcG9uc2UKICAgCjIwMDAtMTAtMzEgMTI6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogY2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDAtMTAtMzEgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogcGF0Y2ggIzEgZnJvbSBidWcgIzExNzI3MyBhcHBsaWVkIHRvIGZpeCBzbXV4IHNvY2tldCBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMzEgMDk6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IHByaW50IGNvdW50ZXI2NCdzIGFzIHVuc2lnbmVkLgogICAKMjAwMC0xMC0zMSAwNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHN1YmFnZW50LmMsIHNubXBOb3RpZnlUYWJsZS5jLAogICAgIHNubXBOb3RpZnlUYWJsZS5oKTogUGF0Y2ggZnJvbSBEYXZlOgogICAgIC0gZml4IG5vdGlmaWNhdGlvbnMgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgogICAKMjAwMC0xMC0zMCAyMjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBmaXggYnVnICMxMTk3ODY6IG1ha2Ugc211eCByZXVzZSBzb2NrZXQgYWRkcmVzcy4KICAgCjIwMDAtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LAogICB0ZXN0cy9UMTExYWdlbnR4c2V0OgoKICAgLSAoZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCk6CiAgICAgLSBmaXggYnVnICMzODIKICAgICAtIGZpeCBhZ2VudHggbm9uLXJvb3QgdGVzdHMgdG8gdXNlIC14IC90bXAvYmxhaC9hZ2VudHhfc29ja2V0LgogICAKMjAwMC0xMC0zMCAxMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBmaXggYSB0eXBvIHBvaW50ZWQgb3V0IGJ5IENocmlzIFBlcHBlci4KICAgCjIwMDAtMTAtMzAgMTE6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKHRlc3RzL1QxMTFhZ2VudHhzZXQpOiB0ZXN0IHNjcmlwdCBmb3IgQWdlbnRYIHNldCBzdXBwb3J0LgogICAKMjAwMC0xMC0zMCAxMTo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0OgoKICAgLSAodGVzdHMvVDExMGFnZW50eGdldCk6IGhlYWRlciBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIHdvcmQgR0VULgogICAKMjAwMC0xMC0zMCAxMToxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gdWNkLXNubXAvdm1zdGF0XyosIG1lbW9yeV9mcmVlYnNkMi5jLCBkbG1vZC5jOiBNYWtlIHNzUmF3Q3B1IG9iamVjdHMgQ291bnRlcnMsCiAgIAlhbmQgYWRkIHN1cHBvcnQgZm9yICpCU0QgKGluY2x1ZGluZyBPcGVuQlNEKQogICAKMjAwMC0xMC0zMCAxMTowNyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIENsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMwIDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEwMWFnZW50eCwgVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eCwgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0KToKICAgICAtIHJlbmFtZWQgdGhlIGFnZW50eCB0ZXN0IHNjcmlwdC4KICAgCjIwMDAtMTAtMzAgMTE6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGRvbid0IGFkZCAtYyBDT05GSUdGSUxFIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCiAgIAoyMDAwLTEwLTMwIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IGVycm9yIHdoZW4gcGFyc2luZyAtWCBmb3Igbm9uLWFnZW50eCBidWlsZHMuCiAgIAoyMDAwLTEwLTI3IDExOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6IGFkZCAtbyBmbGFnIHRvIGxvZyB0byBhIHBhcnRpY3VsYXIgZmlsZS4KICAgCjIwMDAtMTAtMjcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHVzZSBta3N0ZW1wIGlmIGF2YWlsYWJsZS4KICAgCjIwMDAtMTAtMjcgMTA6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNlYXJjaCBmb3IgbWtzdGVtcCgpLgogICAKMjAwMC0xMC0yNyAxMDowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGxpbnV4IGtlcm5lbCBsaXN0IHRvIGluY2x1ZGUgMi4yLgogICAKMjAwMC0xMC0yNiAxNzo1MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IG1ha2UgU0tJUElGTk9UIGNoZWNrIHRoZSBtaWIgbW9kdWxlIGxpc3QgdG9vLgogICAKMjAwMC0xMC0yNiAxNzo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAxYWdlbnR4OgoKICAgLSAodGVzdHMvVDEwMWFnZW50eCk6IEFnZW50WCBzdWJhZ2VudCB0ZXN0IGZvciBzaW1wbGUgZ2V0IHJldHJpZXZhbC4KICAgCjIwMDAtMTAtMjUgMTc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogQWRkIC1YIG9wdGlvbiB0byBzbm1wZCB0byBydW4gYXMgYSBzdWJhZ2VudC4KICAgCjIwMDAtMTAtMjUgMTc6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggZm9yIGNhc2VzIHdoZW5lIGRlYnVnZ2luZyBpcyBhbHdheXMgb2ZmLgogICAKMjAwMC0xMC0xNyAxNTozMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuCiAgIAoyMDAwLTEwLTE2IDAzOjEzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhZ2VudHgvbWFzdGVyLmMpOiBTcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIChwc2V1ZG8tKWFuc3dlciB0byBhIHJlcXVlc3QuCiAgIAlUaGlzIGFsbG93cyBpdCB0byBiZSBjYWNoZWQgY29ycmVjdGx5IGZvciBtdWx0aS1wYXNzIFNFVCBoYW5kbGluZy4KICAgCjIwMDAtMTAtMTYgMDM6MTEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgbW9kZSBpbmZvcm1hdGlvbgogICAJVGhpcyBzaG91bGQgaGVscCB3aXRoIChzb21lIG9mKSB0aGUgU0VUIGhhbmRsaW5nIHByb2JsZW1zLgogICAKMjAwMC0xMC0xNiAwMTo1NiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IERvbid0IGZyZWUgY2FsbGJhY2sgZGF0YSBzdHJ1Y3R1cmUuCiAgIAlUaGlzIGhvbGRzIGluZm9ybWF0aW9uIHRoYXQgbmVlZHMgdG8gcGVyc2lzdCBhY3Jvc3MgbXVsdGktcGFzcyByZXF1ZXN0cy4KICAgCUkgcmVhbGlzZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBhIG1lbW9yeSBsZWFrLCBidXQgdGhpcyBpc24ndCB0aGUKICAgCWNvcnJlY3QgcGxhY2UgdG8gaGFuZGxlIHRoaXMuCiAgIAoyMDAwLTEwLTEyIDE0OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGFkZCAtSSB0byB0aGUgaGVscCBvdXRwdXQuCiAgIAoyMDAwLTEwLTEyIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvOiBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oCiwgZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChhZ2VudC9kbG1vZHMvKik6IHJlbW92ZSBvYnNvbGV0ZSB2ZXJzaW9ucwogICAKMjAwMC0xMC0xMiAxNDowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgogICAKMjAwMC0xMC0xMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE1hdHQgQnJhaXRod2FpdGU6CiAgICAgLSB1ZHAgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIGNoZWNrIGZvciBtaXNjIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICAtIChUVU5ORUwtTUlCLnR4dCk6IFRVTk5FTC1NSUIgZGVmaW5pdGlvbi4KICAgCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oOgoKICAgLSAodHVubmVsLmgpOiBjb25maWdfYWRkX21pYihUVU5ORUwtTUlCKS4KICAgCjIwMDAtMTAtMTIgMTM6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdHVubmVsLmgsIHR1bm5lbC90dW5uZWwuYywKICAgdHVubmVsL3R1bm5lbC5oOgoKICAgLSAodHVubmVsLmgsIHR1bm5lbC5jLCB0dW5uZWwuaCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGltcGxlbWVudCB0aGUgVFVOTkVMLU1JQi4KICAgCjIwMDAtMTAtMTAgMTQ6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCB1bmxpbmtfdHJlZSBmb3IgInRvcCBsZXZlbCIgdHJlZSBub2Rlcy4KICAgCjIwMDAtMTAtMTAgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZXZlcnNlIGxpYnJhcnkgbGluayBvcmRlcmluZyBhZ2Fpbi4uLgogICAKMjAwMC0xMC0xMCAwOTowMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZW1vdmUgcmVsYXRpdmUgcGF0aCB0byBpbmNsdWRlIHN5c3RlbS5oLgogICAKMjAwMC0xMC0xMCAwNjo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIFJlbW92ZSB1bm5lZWRlZCBkZWNsIG9mIHZzbnByaW50ZiB3aXRob3V0IHN0ZGFyZy92YXJhcmdzIGRlY2wgb2YgdmFfbGlzdC4KICAgCjIwMDAtMTAtMTAgMDU6MTUgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5zdWI6CgogICBBcHBseSBwYXRjaCBmb3IgREVDIEFscGhhIEVWNiwgc3VwcGxpZWQgYnkgU2h1bW9uIEh1cXVlPHNodXF1ZUBpc2MudXBlbm4uZWR1PgogICAKMjAwMC0xMC0wOSAxNzowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHBhdGNoIHRvIGZpeCBsZWFkaW5nIHplcm8gZXJyb3IgaW50cm9kdWNlZCBieSBjaGFuZ2VzIGZvciBzaHV0ZG93bl9taWIuCiAgIAoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgYWRkaXRpb25zLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1vdmUgYXV0b19ubGlzdCB0byBsaWJ1Y2RtaWJzLgogICAKMjAwMC0xMC0wOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IGFkZCBuZXcgbWlycm9yLgogICAKMjAwMC0xMC0wOSAxMDoyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jOgoKICAgTW92ZSBjb25maWctIGFuZCBzdG9yZS1yZWxhdGVkIGNsZWFudXAgZnJvbSBzaHV0ZG93bl9taWIgdG8gc25tcF9zaHV0ZG93bi4KICAgCjIwMDAtMTAtMDkgMDI6MzYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFF1YWxpZnkgYW4gaW5kaXZpZHVhbCBpbnRlcmZhY2UgdHlwZSB0ZXN0IHN5bWJvbAogICAJKFFuOiBzaG91bGQgYW55L2FsbCBvZiB0aGUgb3RoZXJzIGJlIHF1YWxpZmllZCBhcyB3ZWxsPykKICAgCjIwMDAtMTAtMDYgMDg6NTYgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCBtYW4vbWliX2FwaS4zLAogICBtYW4vc2h1dGRvd25fbWliLjMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIFN1cHBvcnQgZm9yIHNodXRkb3duX21pYiAtIGNsZWFyaW5nIHRoZSBNSUIgdHJlZXMgYW5kIGNvbmZpZ3VyZWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDAtMTAtMDYgMDU6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQbHVnIG1lbW9yeSBsZWFrIGZvciB1Y2Qtc3VwcGxpZWQgc2V0ZW52IG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0xMC0wNiAwNDo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTA1IDIzOjQ1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBzaWxseSBidWcgaW4gbmV3IG9pZCBwYXJzZXIsIHdoZW4gbGVhdmluZyB0aGUgdHJlZSBhbmQgZ29pbmcKICAgCWludG8gc3ViLWlkcyB3ZSBrbm93IG5vdGhpbmcgYWJvdXQKICAgCjIwMDAtMTAtMDUgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jeSBvcmRlci4KICAgCjIwMDAtMTAtMDQgMTc6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsICJleHRlbmRpbmciIHNubXBjb25mIGZpbGUuCiAgIAoyMDAwLTEwLTA0IDE0OjUwICBuYmEKCiAgICogRkFROgoKICAgLSBGQVE6IGZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuICJvbWl0IiBhbmQgImluY2x1ZGUiCiAgIAoyMDAwLTEwLTA0IDEzOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gKHBhc3NfcGVyc2lzdC5jKTogb3BhcXVlcyBpbiBwYXNzX3BlcnNpc3QuCiAgIAoyMDAwLTEwLTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBzdXBwb3J0IG9wYXF1ZSByZXR1cm4gdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA3OjE1ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICBGaXggcGFyc2luZyBwcm9ibGVtIGZvciAtUGMgb3B0aW9uOyByZXBvcnRlZCBieSBDaHJpc3RpYW4gTWF1dG5lci4KICAgCjIwMDAtMTAtMDQgMDY6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHF1YWxpZnkgc3ltYm9scyBmb3IgbmV3IGkvZiB0eXBlcy4KICAgCjIwMDAtMTAtMDQgMDY6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIFRlcm1pbmF0ZSBsaXN0IHRvIGNvbXBpbGUgKGFkZCBhIGNvbW1hKS4KICAgCjIwMDAtMTAtMDQgMDA6MTggIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogaW5kZXggY29sdW1udCAoLUNpKSB3aWR0aCBub3QgcHJvcGVybHkgY29tcHV0ZWQgd2hlbiB1c2luZwogICAJR0VUQlVMSwogICAKMjAwMC0xMC0wMyAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gYWRkIGEgcGFzc2JhY2sgYXJndW1lbnQgdG8gcmVnaXN0ZXJfcmVhZGZkKCkgY2FsbGJhY2tzLgogICAKMjAwMC0xMC0wMyAxODoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBtb3ZlIGF1dG9fbmxpc3Quby9sbyB0byBsaWJ1Y2RhZ2VudCBzaW5jZSBzb21lIG1pYi1tb2R1bGVzIG5lZWQgaXQuCiAgIAoyMDAwLTEwLTAzIDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9jaGVuIEZyaWVkcmljaDoKICAgICAtIGZpeCBnZXRuZXh0IHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMDMgMTc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCiAgIAoyMDAwLTEwLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gRG91ZyBXYXJ6ZWNoYToKICAgICAtIGZpeCBvaWQgcGFyc2luZyBpbiB0cmFwcy4KICAgCjIwMDAtMTAtMDMgMTY6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCk6IGV4YW1wbGUgb2YgY29kaW5nIGEgdjIgdHJhcCBmcm9tIHNvbWVvbmUgd2hvCiAgICAgSSBoYXZlIHZlcnkgc2FkbHkgZm9yZ290dGVuLiAgSSd2ZSBiZWVuIGxvb2tpbmcgZm9yIHRoYXQgbWVzc2FnZSBmb3IKICAgICBhIHdoaWxlIHRvIHByb3Blcmx5IGF0dHJpYnV0ZSB0aGlzIHBhdGNoLiAgU2lnaC4KICAgCjIwMDAtMTAtMDMgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRG91Z2xhcyBXYXJ6ZWNoYToKICAgICAtIHNubXBkIHJldHVybnMgd3JvbmcgZXJyb3IgaW5kZXggb24gU05NUHYxIHJlcXVlc3QgKEJVRyMzNzUpLgogICAKMjAwMC0xMC0wMyAwOToxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IG51bGwgZGVyZWYgb2Ygc3MtPmNvbW11bml0eSwgcmVwb3J0ZWQgYnkgSmltIFBpY2tlcmluZy4KICAgCjIwMDAtMTAtMDMgMDg6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB2YWNtLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2FzdGluZyB0byBmaXggcHJvYmxlbXMgYnVpbGRpbmcgd2l0aCBhQ0MKICAgVGhhbmtzIHRvIE1hcmtrdSBMYXVra2FuZW4gPHBreUBtb3JlbWFnaWMuY29tPgogICAKMjAwMC0xMC0wMyAwNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSBjaGRpciB0byB1bmRvIGZpeCBmb3IgKEJVRyMyOTgpCiAgIAoyMDAwLTEwLTAyIDIxOjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IEVzY2FwZSAiIGFuZCBcIGluIHRleHQgc3RyaW5ncy4KICAgCjIwMDAtMTAtMDIgMjE6MzkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBzbm1wX2xvZ2dpbmcuYzogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAgCjIwMDAtMTAtMDIgMjE6MzggIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IGZpeCBhIG1pc3NpbmcgJChzcmNkaXIpIGR1cmluZyBtYWtlIGluc3RhbGwgb2YgbWliMmMKICAgCWNvbmZpZ3VyYXRpb24gZmlsZXMKICAgCjIwMDAtMTAtMDIgMjE6MzcgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gc25tcHNldC5jOiBEbyBhIGV4aXQoMikgZm9yIGZhaWx1cmUgaW4gc2V0dGluZyB0aGUgdmFyaWFibGUuCiAgIAoyMDAwLTEwLTAyIDIxOjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBhZGQgYSBzYWZlZ3VhcmQgZm9yIHZlcnkgbG9uZyBhcmd1bWVudCBsaXN0cy4KICAgCjIwMDAtMTAtMDIgMjE6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBBZGQgYSBuYW1lIHBhdHRlcm4gdGhhdCBtYXRjaGVzIHg4NiBJREUgZGlza3MgZm9yIFNvbGFyaXMuCiAgIAoyMDAwLTEwLTAyIDIxOjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSBrZXJuZWxfc3Vub3M1LmM6IG1ha2UgdGhlIGJ1ZmZlciBmb3IgU0lPQ0dJRkNPTkYgZHluYW1pYy4KICAgCjIwMDAtMTAtMDIgMTE6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcHVzbS5oLgogICAKMjAwMC0xMC0wMiAxMDo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAgLSBuZXcgb3B0aW9ucyBmb3IgaW5zdGFsbGluZyBjcmVhdGVkIGZpbGVzLgogICAgIC0gbW9yZSBjb21tZW50cyBpbiB0aGUgY29kZS4KICAgICAtIGFsbG93IHJlYWRpbmcgYSAuY29uZiBkaXJlY3RseSB0byB3cml0aW5nIGZvciBhdXRvLWNvbW1lbnRpbmcgLmNvbmYgZmlsZXMuCiAgICAgLSBtaXNjLgogICAKMjAwMC0xMC0wMiAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC1sZXNzLgogICAKMjAwMC0xMC0wMiAwOTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgYnl0ZSBzdGF0UCBtYWxsb2NzLgogICAKMjAwMC0xMC0wMiAwOToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAtIGZpeCBpbnRlcmZhY2VzLmMgZm9yIHZhcmlhYmxlIGxlbmd0aCBudW1iZXIgZm9ybWF0dGluZyBpbiAvcHJvYy9uZXQvZGV2LgogICAKMjAwMC0xMC0wMSAxNjo0MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBlciBOaWVscyByZWNvbW1lbmRhdGlvbiwgY2hkaXIgdG8gUEVSU0lTVEVOVF9ESVJFQ1RPUlkgKHJlOiBidWcgIzI5OCkKICAgCjIwMDAtMDktMzAgMDg6NTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBGaXggREVCVUdNU0dUTCBub3QgZm91bmQgZXJyb3IgZm9yIGJ1aWxkcyB3aXRob3V0IGRsbW9kIHN1cHBvcnQuCiAgIFRoYW5rcyB0byBzaW1vbkB6aWQudHV3ZWluLmFjLmF0CiAgIAoyMDAwLTA5LTI5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgKyAubyAtPiAubG8gZml4ZXMuCiAgIAoyMDAwLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsOgoKICAgLSAobWFrZWZpbGVpbmRlcGVuZC5wbCk6IHNraXAgZW1wdHkgZGVwZW5kIGxpbmVzLgogICAKMjAwMC0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IGRyb3AgZHVwbGljYXRlIGxpbmVzIGZyb20gcmVhZCBpbiBzbm1wZC5jb25mIGZpbGVzLgogICAKMjAwMC0wOS0yOSAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNvcnQgdW5rbm93biBkaXJlY3RpdmVzIGJ5IGZpbGV0eXBlICh3aG9vcHMpLgogICAKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHByaW50IG1vcmUgaW5mb3JtYXRpb24vY29tbWVudHMgdG8gdGhlIHNjcmVlbi4KICAgCjIwMDAtMDktMjkgMTE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gKHZhcl9zdHJ1Y3QuaCk6IGluY3JlYXNlIHJlZ2lzdHJhdGlvbiBuYW1lIGxlbmd0aCB0byAzMiBmcm9tIDE2IChCdWcgIzE3MikKICAgCjIwMDAtMDktMjkgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBpbmNvcnJlY3QgdmFsIGxlbmd0aCBwYXNzZWQgdG8gcGFyc2VfdW5zaWduZWRfaW50IChCdWcgIzMzOSkuCiAgIAoyMDAwLTA5LTI5IDExOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IEJ1ZyMzNTMgZm9yIGhvc3RuYW1lcyB0aGF0IGxvb2sgbGlrZSAiNXciLgogICAgIC0gZG9uJ3QgaW50ZXJwcmV0ZSB0aGVtIGFzIGFuIGlwLXBvcnQuCiAgIAoyMDAwLTA5LTI5IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gamJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tOgogICAgIC0gVGhlcmUgaXMgYSBwZWN1bGlhcml0eSBpbiB0aGUgc25tcF9hbGFybV91bnJlZ2lzdGVyIGZ1bmN0aW9uIGluCiAgICAgICBzbm1wbGliL3NubXBfYWxhcm0uYyB3aGljaCBjYW4gY2F1c2UgYSBzZWdtZW50YXRpb24gZmF1bHQuIChCdWcgIzM2NykKICAgCjIwMDAtMDktMjkgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCB1c2Ugb2YgTlVMTCB0aW1lc3RhbXAgcG9pbnRlciBpbiBuZXcgcm93IGNyZWF0aW9uIChCdWcgIzM0NikKICAgCjIwMDAtMDktMjggMTQ6MzggIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSBtaWJfYXBpLjM6IGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGhlYWRlcgogICAKMjAwMC0wOS0yOCAxNDoxNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gc25tcHRyYXAuYzogcmVtb3ZlIGFuIGV4dHJhbmVvdXMgc25tcF9mcmVlX3BkdQogICAKMjAwMC0wOS0yOCAxNDoxMyAgbmJhCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBhZGRfbWliZGlyLjMsCiAgIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgZ2V0X21vZHVsZV9ub2RlLjMsIGluaXRfbWliLjMKLCBpbml0X21pYl9pbnRlcm5hbHMuMywgcHJpbnRfZGVzY3JpcHRpb24uMywKICAgcHJpbnRfbWliLjMsIHByaW50X29iamlkLjMsIHByaW50X3ZhbHVlLjMsCiAgIHByaW50X3ZhcmlhYmxlLjMsIHJlYWRfYWxsX21pYnMuMywgcmVhZF9taWIuMywKICAgcmVhZF9tb2R1bGUuMywgcmVhZF9tb2R1bGVfbm9kZS4zLCByZWFkX29iamlkLjMsCiAgIHNubXBfc2V0X21pYl93YXJuaW5ncy4zLCBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgLSBtYW4vOiBhZGQgbWFuIGVudHJpZXMgZm9yIG1hbnkgbGlicmFyeSBmdW5jdGlvbnMgKHBvaW50aW5nIHRvIHNubXBfYXBpLjMpCiAgIAoyMDAwLTA5LTI4IDExOjA5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgcmVtb3ZlIHNlY29uZCBjb3B5IG9mIHN5cy9zb2NrZXQuaAogICAKMjAwMC0wOS0yNyAxMjo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGRsbW9kLmgpOiBhZGQgdGhlIFVDRC1ETE1PRC1NSUIgdG8gdGhlIGRlZmF1bHQgbG9hZCBsaXN0LgogICAKMjAwMC0wOS0yNyAxMjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdWNkX3NubXAuaCwgZGxtb2QuYyk6CiAgICAgLSBpbmNsdWRlIHVjZC1zbm1wL2RsbW9kIGJ5IGRlZmF1bHQuCiAgICAgLSBidWlsZCBjb2RlIG9ubHkgaWYgZGxvcGVuIGlzIGZvdW5kLgogICAKMjAwMC0wOS0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGRvbid0IHByaW50IGtlcm5lbCBiYXNlZCB3YXJuaW5nIG1lc3NhZ2VzIHdoZW4gLXIsIGV0YywgaXMgc3BlY2lmaWVkLgogICAKMjAwMC0wOS0yNiAxMzoxNyAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBGb3IgV2luMzIgQVBJOiBEZWNsYXJlIHN0cnRvdWwsIHZzbnByaW50ZjsgRW5hYmxlIHJldmVyc2UgQkVSIGVuY29kaW5nLgogICAKMjAwMC0wOS0yNiAxMzoxNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEluY2x1ZGUgc3lzdGVtLmggKHZzbnByaW50ZiBkZWNsKQogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IHVuc2lnbmVkIGNvbXBhcmlzb24uCiAgIAoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHVuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMC0wOS0yNiAxMzoxMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBzaWduZWQgY29tcGFyaXNvbjsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjEyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgSW5jbHVkZSBnZXRvcHQuaCAob3B0YXJnIGRlY2wpOyBSZW1vdmUgdW51c2VkIHZhci4KICAgCjIwMDAtMDktMjYgMTM6MTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE1hdGNoIEluaXRpYWxpc2VfVGFibGUgYXJncyAzLDQgZGVjbGFyYXRpb25zIHdpdGggZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA5LTI2IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIHRoZSBhZG1pbnN0YXR1cyBST05MWS4KICAgCjIwMDAtMDktMjYgMTA6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBjaG9tcCgkMSkgaXMgaWxsZWdhbC4KICAgCjIwMDAtMDktMjYgMDM6MDQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgRXhwbGljaXRseSBidWlsZCBwYXRoIHRvIENBQ0hFRklMRSwgYXMgbm90IGFsbCBDIGNvbXBpbGVycyBzdXBwb3J0ICIjIyIuCiAgIAoyMDAwLTA5LTI1IDE2OjU2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hkaXIganVzdCBiZWZvcmUgc2VuZGluZyBjb2xkc3RhcnQgdHJhcCwgdG8gYWxsb3cgZm9yIHBhdGhzIHRvIGJlCiAgIHJlc29sdmVkLgogICAKMjAwMC0wOS0yNSAwOTozNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGNhc2UgaW5zZW5zaXRpdmUgdG9rZW4gc2VhcmNoICh1c2Ugc3RyY2FzZWNtcCkuCiAgIAoyMDAwLTA5LTIyIDA2OjAzICBuYmEKCiAgICogbWlicy86IEhDTlVNLVRDLnR4dCwgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwKICAgSU5FVC1BRERSRVNTLU1JQi50eHQsIElQLUZPUldBUkQtTUlCLnR4dCwgc21pc3RyaXAKOgoKICAgIC1taWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTUgIG5iYQoKICAgKiBtaWJzLzogSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsCiAgIElBTkFpZlR5cGUtTUlCLnR4dCwgTVRBLU1JQi50eHQsIE1ha2VmaWxlLmluLAogICBNYWtlZmlsZS5taWIsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwgUkZDLTEyMTUudHh0CiwgUkZDMTE1NS1TTUkudHh0LCBSRkMxMjEzLU1JQi50eHQ6CgogICAtIG1pYnMvOiBNSUIgdXBkYXRlcwogICAKMjAwMC0wOS0yMiAwNTo1MiAgbmJhCgogICAqIG1hbi9zbm1wc2V0LjEsIG1hbi9zbm1wdHJhcC4xLCBzbm1wbGliL3NubXBfYXBpLmMKLCBhcHBzL3NubXBzZXQuYzoKCiAgIC0gc25tcF9hcGkuYzogc3VwcG9ydCBzZXR0aW5nIG9mIEJJVFMgdmFyaWFibGVzCiAgIAoyMDAwLTA5LTIyIDA1OjUwICBuYmEKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIHNubXBzdGF0dXMuYzogc2hvdyBlcnJvciBvYmplY3QKICAgCjIwMDAtMDktMjIgMDQ6MjkgIG5iYQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gc25tcHVzbS5jOiBpc3N1ZSBlcnJvciBtZXNzYWdlIHdpdGggb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI4ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gc3lzdGVtLmg6IHByb3ZpZGUgcHJvdG90eXBlcyBmb3Igc3RydG9sLCBzdHJ0b3VsLCBzbnByaW50ZiwgdnNucHJpbnRmCiAgIAoyMDAwLTA5LTIyIDA0OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBwcm90ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiBzdHJpbmdzCiAgIAoyMDAwLTA5LTIxIDE2OjE3ICBuYmEKCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wd2Fsay5jOgoKICAgLSBhcHBzLzogZGlzcGxheSBmYWlsZWQgb2JqZWN0IHdoZW4gb25lIGlzIGlkZW50aWZpZWQgYnkgcGR1LT5lcnJpbmRleAogICAKMjAwMC0wOS0yMSAxNTo1OSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkZi4xOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBkZi4xKTogZG9jdW1lbnQgdGhlIHNubXBkZiBjb21tYW5kLgogICAKMjAwMC0wOS0yMSAxNTo1MCAgbmJhCgogICAqIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlOiB1c2UgR0VUQlVMSyB0byBjb2xsZWN0IGRhdGEgd2hlbiBwcm90b2NvbCBhbGxvd3MgaXQuIEFkZAogICAJLUNCIG9wdGlvbnMgdG8gZmFsbCBiYWNrIHRvIEdFVE5FWFQuCiAgIAoyMDAwLTA5LTIxIDE1OjM4ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjE6CgogICAtIG1pYi5jOiByZXdyaXRlIGluZGV4IGhhbmRsaW5nIGluIG9iamVjdCBpZHMsIHRvIGFsbG93IHN5bWJvbGljIGVudW1zLgogICAJQWRkIERhdmVzIHN1Z2dlc3RlZCAtT3Ygb3V0cHV0LiBBbHNvIGVuaGFjZSAtVGQgb3V0cHV0IHRvCiAgIAlkZXN0aW5ndWlzaCBPQkpFQ1QtVFlQRSBmcm9tIFRSQVAtVFlQRSwgTU9EVUxFLUlERU5USVRZIGV0Yy4KICAgCjIwMDAtMDktMjEgMTU6MzEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICAtIChzbm1wZGYuYyk6IHVzZSB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUgaWYgdGhlCiAgICAgSE9TVC1SRVNPVVJDRVMtTUlCIGlzIGVtcHR5IG9yIGlmIC1DdSBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgCjIwMDAtMDktMjEgMTU6MjggIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gcGFyc2UuYzogYWRkIGFiaWxpdHkgdG8gY29sbGVjdCBWQVJJQUJMRVMvT0JKRUNUUyBmb3IgVFJBUC1UWVBFCiAgIAlhbmQgTk9USUZJQ0FUSU9OLVRZUEUuIElnbm9yZSBmaWxlcyB0aGF0IGRvZXMgbm90IGhhdmUgREVGSU5JVElPTlMKICAgCWFzIHRoZWlyIHNlY29uZCB0b2tlbi4gRW5oYW5jZSAtVGQgb3V0cHV0IGFjY29yZGluZ2x5LgogICAKMjAwMC0wOS0yMSAxNToyMiAgbmJhCgogICAqIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbgosIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIHNubXBsaWI6IGFkZCBzbnByaW50Ziwgc3RydG9sLCBzdHJ0b3VsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGVtCiAgIAoyMDAwLTA5LTIxIDE1OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgLSAobWliLmgpOiBhZGQgZmFrZSBzdHJ1Y3QgZGVmaW5pdGlvbiBmb3IgZW51bXMKICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvdWwuYzoKCiAgIGZpbGUgc3RydG91bC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgogICAqIHNubXBsaWIvc3RydG9sLmM6CgogICBmaWxlIHN0cnRvbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgogICAqIHNubXBsaWIvc25wcmludGYuYzoKCiAgIGZpbGUgc25wcmludGYuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMDY6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAtIChtaWIuYywgbWliLmgpOiBtYWtlIHNwcmludCogbm9uLXN0YXRpYyAoYnVnICMxMzIpLgogICAKMjAwMC0wOS0yMSAwMDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gZml4IGJ1ZyAjMzYwIHdoZXJlIGEgY2xpZW50IG1pZ2h0IHJlbW92ZSBhIGFsYXJtIHJlZ2lzdHJhdGlvbgogICAgICAgZHVyaW5nIGEgY2FsbCB0byB0aGUgYWxhcm0gZnVuY3Rpb24gYW5kIGludmFsaWRhdGUgdGhlIHBvaW50ZXIKICAgICAgIGJlaW5nIHVzZWQgYnkgdGhlIGNhbGxpbmcgZnVuY3Rpb24uCiAgIAoyMDAwLTA5LTIxIDAwOjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS1kaXNhYmxlLXNoYXJlZCBieSBkZWZhdWx0IGluIGN2cyBjaGVja291dHMuCiAgIAoyMDAwLTA5LTIwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogc3BhY2UgaW5kZW50IHRva2VucyBpZiAjIHByZXBlbmRlZC4KICAgCjIwMDAtMDktMjAgMTc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogbnVsbCBpbnRlcm5hbCBoZWxwIGxpbmVzLgogICAKMjAwMC0wOS0yMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbW9uaXRvcik6IGRpc2ssIHByb2MsIGFuZCBsb2FkIGNoZWNrcy4KICAgCjIwMDAtMDktMjAgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYywgc25tcHYzLmMpOiBOVUxMIG91dCBoZWxwIG1lc3NhZ2VzIGZvciAuY29uZgogICAgIHRva2VucyB0aGF0IGFyZSBlaXRoZXIgaW50ZXJuYWwgb3Igbm8gbG9uZ2VyIHRoZSBzdGFuZGFyZCB3YXkgb2YKICAgICBkb2luZyB0aGluZ3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZXhwb3J0IFNOTVBDT05GUEFUSCB0byBNYWtlZmlsZXMKICAgCjIwMDAtMDktMjAgMTc6MjUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgY29ycmVjdGlvbiBvZiB0YWJsZSBuYW1lLiAgTW9yZSBlcnJvcnMgZXhpc3QuCiAgIAoyMDAwLTA5LTIwIDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBkZWJ1Z2dpbmcsIG1pYnMsIG91dHB1dCk6IG1vcmUgc25tcC5jb25mIHNubXBjb25mIGNvbmZpZyBmaWxlcy4KICAgCjIwMDAtMDktMjAgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGF1dGhvcHRzKTogc25tcC5jb25mIHN1cHBvcnQgZm9yIGJhc2ljIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCiAgIAoyMDAwLTA5LTIwIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKToKICAgIC0gZG9uJ3QgZm9yY2UgcmVhZGluZyBvZiAvdXNyL2xvY2FsL3NoYXJlL3NubXBkLmNvbmYuCiAgICAtIGRvbid0IHByaW50IHVua25vd24gZGlyZWN0aXZlIGNvbW1lbnQgaGVhZGVycyBpZiB0aGVyZSBhcmVuJ3QgYW55LgogICAKMjAwMC0wOS0yMCAxNDo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIHRoaW5ncyBvdXQgb24gdGhlIHNjcmVlbiBhIGJpdCBiZXR0ZXIuCiAgIAoyMDAwLTA5LTIwIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wY29uZik6IGluc3RhbGwgc25tcGNvbmYgYW5kIGl0cyB2YXJpb3VzIHN1cHBvcnQgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE0OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBkbyByZXZlcnNlIHYzIGhlYWRlciBlbmNvZGluZyB3aXRoIGEgc3RhdGljIGJ1ZmZlci4KICAgCjIwMDAtMDktMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBtaXNjIHVwZGF0ZXMgYW5kIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDktMjAgMDg6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXggZHluYW1pYyBhcnJheSAgcHJvYmxlbSBwb2ludGVkIG91dCBieSBKb2NoZW4gS21pZXRzY2guCiAgIAoyMDAwLTA5LTIwIDAyOjA1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogRG9uJ3QgaW5jbHVkZSBjb250ZXh0IHN0cmluZ3Mgb24gUERVcyB0aGF0IHNob3VsZG4ndCBoYXZlIHRoZW0KICAgCShUaGFua3MgdG8gUGVkcm8gUGVyZWlyYSBmb3IgaWRlbnRpZnlpbmcgdGhpcykKICAgCjIwMDAtMDktMTkgMTc6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiByZWFkIG9sZGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gYW5kIG1lcmdlIHdpdGggbmV3IHJlc3VsdHMuCiAgIAoyMDAwLTA5LTE5IDE0OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJpbnQgcGR1IHR5cGUgb24gZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcC5jOgoKICAgLSAoYXNuMS5jLCBzbm1wLmMpOiByZXZlcnNlIGVuY29kaW5nIHN1cHBvcnQgZm9yIHNwZWNpYWxpemVkIG9wYXF1ZQogICAgIGRhdGF0eXBlcyAoZmxvYXQsIGRvdWJsZSwgZXRjKS4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQ6CgogICAtIChhY2xvY2FsLm00KTogZG9jdW1lbnQgbWFjcm9zIGEgYml0IG1vcmUgZm9yIHN1Ym1pc3Npb24gdG8gdGhlCiAgICAgYXV0b2NvbmYgbWFjcm8gbGlicmFyeS4KICAgCjIwMDAtMDktMTkgMDg6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBGaXggYnVnICMyOTUgcmVwb3J0ZWQgYnkgSm9obiBXaGl0bmV5IGpvaG53QGFpaW5ldC5jb20KICAgCjIwMDAtMDktMTggMTQ6NTkgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIHNubXBkLmg6CgogICAtIChzbm1wX3ZhcnMuaCwgc25tcGQuaCk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBtb3ZlIGdldFN0YXRQdHIgZGVmaW5pdGlvbiB0byBwcm9wZXIgLmggZmlsZS4KICAgCjIwMDAtMDktMTggMTQ6NTUgIG1zbGlmY2FrCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggYnVnICMzNDcgcmVwb3J0ZWQgYnkgZGFzX2Rlbml6QHlhaG9vLmNvbTogbWFrZSBzYmluIGluc3RhbGwgZGlyCiAgIAoyMDAwLTA5LTE0IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gYWRkIGEgcG9ydCBzcGVjaWZpY2F0aW9uIHNubXBkLmNvbmYgdG9rZW4uCiAgIAoyMDAwLTA5LTE0IDA4OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBpZ25vcmUgb3V0cHV0IG9mIGdldGhvc3RieW5hbWUgZm9yIHRyYXAgc2Vzc2lvbiBhZGRpbmcuCiAgIAoyMDAwLTA5LTEzIDE1OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbmV3IHV0aWxpdHkgdG8gZ2VuZXJhdGUgLmNvbmYgZmlsZXMgYnkgcHJvbXB0aW5nIHRoZQogICAgIHVzZXIgd2l0aCBxdWVzdGlvbnMuCiAgIAoyMDAwLTA5LTA4IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSAocHJveHkuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOgogICAgIC0gZml4IHByb3h5IHN1cHBvcnQgZm9yIG51bGwgbGVuZ3RoIHN0cmluZ3MuCiAgIAoyMDAwLTA5LTA3IDEwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgLSBmaXggb3BlbnNzbCBjaGVja3MuCiAgICAtIHJ1biBhdXRvaGVhZGVyLgogICAKMjAwMC0wOS0wNSAxMzozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgTWlub3IgdG91Y2h1cHMgdG8gYnVpbGQgb24gV2luMzIgcGxhdGZvcm0uCiAgIAoyMDAwLTA5LTA1IDEzOjM0ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBkZi8uY3ZzaWdub3JlLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcHZhY20vLmN2c2lnbm9yZSwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgV2VsY29tZSB0aGUgbmV3ZXN0IHVjZC1zbm1wIGFwcGxpY2F0aW9ucyB0byB0aGUgV2luMzIgYnVpbGRzLgogICAKMjAwMC0wOS0wNCAxNToxOSAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogcmVzdGFydCBlcnJvcmNvdW50IHdoZW4gcmVsb2FkaW5nIGNvbmZpZwogICAKMjAwMC0wOS0wNCAxNToxMiAgbmJhCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgLSBzbm1wbmV0c3RhdC4xOiBhbGlnbiBtYW4gcGFnZSB3aXRoIHByb2dyYW0KICAgCjIwMDAtMDktMDQgMTU6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIC0gaXBBZGRyLmM6IHJlbW92ZSBhIGJhZCBudG9obCBmb3IgT3BlbkJTRAogICAKMjAwMC0wOS0wNCAxNTowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdGNwVGFibGUuYywgbWliSUkvdWRwLmMsIG1pYklJL3VkcFRhYmxlLmM6CgogICAtIG1pYmluY2wuaCwge3RjLHVkfXB7LFRhYmxlfS5jOiBlbnN1cmUganVzdCBvbmUgaW5jbHVkZSBvZiBzb2NrZXQuaAogICAJdG8gbWFrZSB1bnByb3RlY3RlZCBpbmNsdWRlIGZpbGUgaW4gVWx0cml4IGhhcHB5CiAgIAoyMDAwLTA5LTA0IDE1OjA1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogbWFrZSAtLXdpdGhvdXQtbGlid3JhcCB3b3JrCiAgIAoyMDAwLTA5LTAxIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gdXBkYXRlZCBjb2RlLgogICAKMjAwMC0wOS0wMSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogU2NvdHQgTGlwY29uIG5vdGVkIHRoYXQgc25tcHRyYXBkIGRvZXNuJ3Qgc3VwcG9ydCAtVC4KICAgCjIwMDAtMDgtMzAgMTM6MjggIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBsb29wIGluIHN5bnRheCBlcnJvciBpbiBERUZWQUwgY2xhdXNlLiBBbHNvIGZpeCByZWFkaW5nCiAgIAlvZiAuaW5kZXggZmlsZSB3aXRoIGZpbGVuYW1lcyBjb250YWluaW5nIGJsYW5rcy4KICAgCjIwMDAtMDgtMjggMTM6NDMgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaW5vciBzeW50YXggZ2xpdGNoIGluIFBPRCBkb2NzCiAgIAoyMDAwLTA4LTI0IDAxOjU1ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBidWcgd2l0aCBkaXNwbGF5aW5nIGhlYWRlci1sZXNzIGluZGV4ZWQgdGFibGVzCiAgIAkoVGhhbmtzIHRvIEVybmllIE1pbGxlcikKICAgCjIwMDAtMDgtMTkgMTE6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSA8Q2hyaXN0b3BoLk1hbW1pdHpzY2hAdHUtY2xhdXN0aGFsLmRlPgogICB0byBmaXggc2lnbiBpbiBhc25fcmJ1aWxkX3Vuc2lnbmVkX2ludCAuCiAgIAoyMDAwLTA4LTE4IDA0OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICByZXN0b3JlIHByZXZpb3VzIHZlcnNpb247IG9wZW5ic2QsIHNvbGFyaXMsIGxpbnV4IGJ1aWxkIG9rLgogICAKMjAwMC0wOC0xOCAwMzo0NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIHVudXNlZCBwcmludGYgYXJndW1lbnQgcGFzc2VkIHRvIHNubXBfbG9nLgogICAKMjAwMC0wOC0xOCAwMzoyMCAgbXNsaWZjYWsKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyAyNTMgd2l0aCBwYXRjaCBzdXBwbGllZCBieSBKZWZmcmV5IEhvbmlnIDxqY2hAYnNkaS5jb20+CiAgIAoyMDAwLTA4LTE4IDAyOjUyICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICBmaXggYnVnIDMxOCAtIHRlc3QgOSBhbmQgMTAgZXhwbGljaXRseSBjcmVhdGUgdGhlIHRlc3QgdXNlci4KICAgCjIwMDAtMDgtMTcgMTM6NDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIFRoZSBiYXR0bGUgdG8gdHJpbSBuZXdsaW5lcyBjb3JyZWN0bHkgY29udGludWVzLi4ucmVkdWNlIGxlbmd0aCBieSBvbmUuCiAgIAoyMDAwLTA4LTE2IDE1OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogZml4IHZhcmlvdXMgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHByb2JsZW1zLgogICAKMjAwMC0wOC0xNiAxNTowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGZpeCBwYWRkaW5nIHNpemUgaW4gZW5jcnlwdGlvbi4KICAgCjIwMDAtMDgtMTYgMTQ6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBzZXQgcGxhaW50ZXh0IGxlbmd0aCBhdCB0aGUgZW5kIG9mIHNjX2RlY3J5cHQuCiAgIAoyMDAwLTA4LTE1IDA1OjA4ICBtc2xpZmNhawoKICAgKiBGQVE6CgogICBGaXggYnVnIDI4NCB3aXRoIGEgc2hvcnQgZXhwbGFuYXRpb24gYWJvdXQgc25tcC5jb25mLgogICAKMjAwMC0wOC0xNSAwMzowMCAgbXNsaWZjYWsKCiAgICogSU5TVEFMTDoKCiAgIEZpeCBidWcgMjgzIC0gdW1hc2sgMDIyLCBtYWtlIGluc3RhbGwuIFRoYW5rcyB0byBjc2FiYS50b3RoQHN6ay5ia2UuaHUKICAgCjIwMDAtMDgtMTUgMDA6MDggIG5iYQoKICAgKiBhcHBzLzogc25tcHRlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXB0ZXN0LmM6CgogICAtIHNubXB0ZXN0LmM6IG92ZXJoYXVsIGlucHV0X3ZhcmlhYmxlLCBraWxsIG5ld2xpbmUKICAgCjIwMDAtMDgtMTQgMjI6MDUgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSAoVjQtMS0xLXBhdGNoZXMuWzEsMCwwXSksCiAgIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBhY2xvY2FsLm00LCBjb25maWd1cmUuaW46IGZpeGVzIGZvciBjb25maWd1cmUgLS1zaWxlbnQKICAgCjIwMDAtMDgtMTQgMTc6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIC0tZW5hYmxlLXNpbGVudC1saWJ0b29sIHRvIG1ha2UgTmllbHMgc21pbGUuCiAgIAoyMDAwLTA4LTE0IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IGEgbmV3IChkZWZhdWx0KSBlbmdpbmVJRCB0eXBlIGJhc2VkCiAgICAgb24gYSByYW5kb20gbnVtYmVyLCBhbmQgYSB0aW1lc3RhbXAuCiAgICAgLSBJIHRoaW5rIGl0IHdvbid0IGludmFsaWRhdGUgZXhpc3RpbmcgaW5zdGFsbGF0aW9ucyAoaGVoKS4KICAgCjIwMDAtMDgtMTQgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gaWYgLURyZWFkX2NvbmZpZywgdGhlbiBwcmludCBldmVuIG5vLWhlbHAgdG9rZW5zIGFuZCBhICogZm9yIFBSRU1JQiBvbmVzLgogICAKMjAwMC0wOC0xNCAxNDo1MSAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIGFwcHMvc25tcGJ1bGtnZXQuYwosIHNubXBsaWIvZ2V0b3B0LmgsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChtYW55KTogcG9ydGFiaWxpdHkgZml4ZXMgZm9yIE9wZW5CU0QgMi42LCBGcmVlQlNEIDQuMSwgVWx0cml4IDQuNQogICAKMjAwMC0wOC0xNCAxMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CiAgICAgLSByZW1vdmUgdW51c2VkIGNvbnRleHQgdmFyaWFibGVzLgogICAKMjAwMC0wOC0xNCAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGtleWxlbmd0aCBjaGVjay4KICAgCjIwMDAtMDgtMTEgMTM6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBvcHRpbWl6ZSByZXZlcnNlIGVuY29kaW5nIG9mIHZhcmJpbmRsaXN0cy4KICAgCjIwMDAtMDgtMTEgMDg6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL1JFQURNRS5taWIyYzoKCiAgIC0gKFJFQURNRS5taWIyYyk6IFBhdGNoIGZyb20gSmFuIEFsZnJlZCBTYW5kdmVuOgogICAgIC0gdHlwb3MuCiAgIAoyMDAwLTA4LTExIDA2OjA1ICBuYmEKCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jCiwgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy8qOiBzbm1wYXBwIC1WIHNob3VsZCBub3QgZ2l2ZSB0aGUgdXNhZ2UgbWVzc2FnZSB0b28uCiAgIAoyMDAwLTA4LTExIDAwOjQzICBuYmEKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdHJhcGQuODoKCiAgIC0gc25tcHRyYXBkLjg6IGZpeCB0eXBvLiBUaGFua3MgdG8gRy4gQWxsZW4gTW9ycmlzIElJSSA8Z2FtM0BhY20ub3JnPgogICAKMjAwMC0wOC0xMCAyMzoyMyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogcHJlZGVmaW5lIE9iamVjdFN5bnRheCwgQXBwbGljYXRpb25TeW50YXgsIFNpbXBsZVN5bnRheCBhbmQKICAgCU9iamVjdE5hbWUKICAgCjIwMDAtMDgtMTAgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYjJjKToKICAgICAtIG1ha2UgbWliMmMgbG9vayBpbiAkKHNubXBsaWJkaXIpIGZvciAuY29uZiBmaWxlcy4KICAgICAtIGluc3RhbGwgbWliMmMgYW5kIC5jb25mIGZpbGVzLgogICAKMjAwMC0wOC0xMCAxNDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IGR5bmFtaWNhbGx5IGRlY2lkZSB0byByZXZlcnNlL2ZvcndhcmQgZW5jb2RlLgogICAKMjAwMC0wOC0xMCAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogZml4IENSIHRlcm1pbmF0aW9uLgogICAKMjAwMC0wOC0xMCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSByZXZlcnNlIGVuY29kaW5nIG9uIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTEwIDEzOjAyICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgMjUyIGZvciBjb25maWd1cmUgYW5kIHN5cy9zb2NrZXQuaCBvbiBCU0QvT1MgNC4yCiAgIAoyMDAwLTA4LTEwIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICBzbm1wdXNtLmgsIHNubXB2My5jOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsCiAgICAgc25tcHVzbS5oLCBzbm1wdjMuYyk6CiAgICAgLSBpbXBsZW1lbnQgcmV2ZXJzZSBlbmNvZGVkIG1lc3NhZ2VzLgogICAgICAgLSBUT0RPOiBjbGVhbiB1cCwgcnVuLXRpbWUgZGV0ZXJtaW5hdGlvbiBvZiB3ZWF0aGVyIHRvIHVzZSBpdCBvciBub3QuCiAgIAoyMDAwLTA4LTA5IDE1OjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggYnVnIDMzMSB3aXRoIHBhdGNoIGluIHBhcnQgcHJvdmlkZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDkgMTU6MjcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB2YWNtLmM6CgogICBubyAvLyBjb21tZW50LCBpbiBkZWZlcmVuY2UgdG8gbm9uLUFOU0ktQyBjb21waWxlcnMuCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBmaXggdGhlIFJ1blBhdGggZm9yIHN3YXBwZWQgb3V0IExpbnV4IHByb2Nlc3MKICAgCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfcHJpbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIGhyX3ByaW50LmMKOgoKICAgLSBocl9wcmludC5jOiBmaXggYSBkZWJ1ZyB0b2tlbgogICAKMjAwMC0wOC0wOSAwNDo0NCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGZpeCBwYXJzaW5nIG9mIC12CiAgIAoyMDAwLTA4LTA4IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpOiBzdHJpcCBuZXdsaW5lcy4KICAgCjIwMDAtMDgtMDggMDg6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOiBzdGFydCBvcHRpbmQgYXQgMSBub3QgMC4KICAgICAtCiAgIAoyMDAwLTA4LTA4IDA2OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgIzI5NSAoZnJlZSAqc2VjU3RhdGVSZWYgYmVmb3JlIGFsbG9jYXRpbmcgYW5vdGhlciBvbmUpLgogICAKMjAwMC0wOC0wOCAwNjowNSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBidWcgIzI5OCByZXBvcnRlZCBhbmQgcGF0Y2ggc3VwcGxpZWQgYnkgQ29ucmFkIExpbmsgPGNsaW5rQG1sLmNvbT4KICAgCjIwMDAtMDgtMDggMDQ6NTkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGZpeCBhIGJ1c3kgbG9vcCB3aGVuIGFsYXJtIHF1ZXVlIGlzIGFjdGl2ZSB3aXRob3V0IGFueQogICAJb3V0c3RhbmRpbmcgcmVxdWVzdHMKICAgCjIwMDAtMDgtMDggMDQ6NDcgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xOgoKICAgLSBzbm1wc2V0LjE6IGNhbm5vdCBzZXQgY291bnRlcnMKICAgCjIwMDAtMDgtMDggMDQ6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIChCVUcjMzMyKSB1c2luZyBwYXRjaCBzdWJtaXR0ZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgQWxzbyBjb25zb2xpZGF0ZWQgY29tbWVudHMgYWJvdXQgdGhlIGZvdXIgc2VuZCBQRFUgZnVuY3Rpb25zLgogICAKMjAwMC0wOC0wNyAwNjo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGxlYWsgaW4gcmVwb3J0YWJsZSBlcnJvcnMgZm91bmQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKICAgKiBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zOgoKICAgZmlsZSBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL3JlYWRfb2JqaWQuMzoKCiAgIGZpbGUgcmVhZF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMzoKCiAgIGZpbGUgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjM6CgogICBmaWxlIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3JlYWRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZS4zOgoKICAgZmlsZSByZWFkX21vZHVsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21pYi4zOgoKICAgZmlsZSByZWFkX21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX2FsbF9taWJzLjM6CgogICBmaWxlIHJlYWRfYWxsX21pYnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfdmFyaWFibGUuMzoKCiAgIGZpbGUgcHJpbnRfdmFyaWFibGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfdmFsdWUuMzoKCiAgIGZpbGUgcHJpbnRfdmFsdWUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfb2JqaWQuMzoKCiAgIGZpbGUgcHJpbnRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfbWliLjM6CgogICBmaWxlIHByaW50X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zOgoKICAgZmlsZSBwcmludF9kZXNjcmlwdGlvbi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9pbml0X21pYi4zOgoKICAgZmlsZSBpbml0X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMzoKCiAgIGZpbGUgaW5pdF9taWJfaW50ZXJuYWxzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2dldF9tb2R1bGVfbm9kZS4zOgoKICAgZmlsZSBnZXRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vYWRkX21pYmRpci4zOgoKICAgZmlsZSBhZGRfbWliZGlyLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWRkIGluIHRoZSBub3RpZmljYXRpb24gZ3JvdXAgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDgtMDQgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oOgoKICAgLSAobm90aWZpY2F0aW9uLmgpOiBub3RpZmljYXRpb24gbWliIHdyYXBwZXIuCiAgIAoyMDAwLTA4LTA0IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgLSBpbml0aWFsaXplIG9wdGluZCBiZWZvcmUgY2FsbGluZyBnZXRvcHQuCiAgICAtIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAwLTA4LTA0IDE2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSAocHJveHkuYyk6IHByb3Blcmx5IHNldCB0aGUgZmlyc3QgKHVudXNlZCkgYXJndW1lbnQgdG8gc25tcF9wYXJzZV9hcmdzKCkuCiAgIAoyMDAwLTA4LTA0IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBzbm1wTm90aWZ5VGFibGUuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKICAgICAtIGlmIHVzaW5nIHRoZSBzbm1wTm90aWZpY2F0aW9uVGFibGUsIGluc2VydCBub24tdjEgdHJhcCBzaW5rcyBpbnRvIGl0LgogICAKMjAwMC0wOC0wNCAwNToyNiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkouaDoKCiAgIC0gKG1pYmdyb3VwL21pYkpKLmggbWliZ3JvdXAvbWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQogICAKMjAwMC0wOC0wNCAwNToyMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKG1pYmdyb3VwL3V0aWxfZnVuY3MuW2NoXSk6IE5ldyAnY2FjaGVkIHRhYmxlJyByb3V0aW5lcwogICAKMjAwMC0wOC0wMyAwODozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGJ1ZyAjMzI1IGlkZW50aWZpZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dDoKCiAgIGZpbGUgSVAtRk9SV0FSRC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQ6CgogICBmaWxlIElORVQtQUREUkVTUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dDoKCiAgIGZpbGUgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0hDTlVNLVRDLnR4dDoKCiAgIGZpbGUgSENOVU0tVEMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMiAwNzowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgU2lsZW50IHJ1bm5pbmcgZ3JlcCByZXN1bHRzLgogICAKMjAwMC0wOC0wMiAwNjoxMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IEJVRyAjMjkxOiBhbGxvdyAiMjU1LjI1NS4yNTUuMjU1IiBmb3IgdGV4dCBpbnB1dCB0byBBU05fSVBBRERSRVNTCiAgIAoyMDAwLTA4LTAyIDA1OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0ZXN0LmMKOgoKICAgRml4IChCVUcjMzIzKTogZnJlZSBQRFUgd2hlbiBzbm1wX3NlbmQgZmFpbHMuCiAgIAoyMDAwLTA4LTAyIDA1OjA2ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkIC1wIG9wdGlvbiBvbmNlIHRvIHNubXBkIGFyZ3MuCiAgIEZpbmQgTUlCRElSUyBpbiBzb3VyY2UgdHJlZS4KICAgRml4IGNvbmRpdGlvbiB0byBzZXQgUEFUSC4KICAgCjIwMDAtMDgtMDEgMjM6MzAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBPbmUgbW9yZSAjaWYgc29sYXJpcwogICAKMjAwMC0wOC0wMSAyMzoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICAtIGlwLmM6IEEgYmFkICNpZiAuLi4gdGhlIHByb3BlciBkZWZpbmUgdG8gdGVzdCBmb3IgU29sYXJpcyBpcyBzb2xhcmlzMgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIHVudXNlZCB1c2FnZSgpIHR5cGVkZWYuCiAgIAoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICAtIChwcm94eS5jLCBwcm94eS5oKTogLVdhbGwgd2FybmluZyBmaXhlcy4KICAgCjIwMDAtMDgtMDEgMTY6MzkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gbmV3ZXIgdmVyc2lvbnMgb2YgU29sYXJpcy4KICAgCjIwMDAtMDgtMDEgMTY6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvVEVTVENPTkYuc2guaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogcmV2ZXJ0IHRvIG5vbi1jb25maWdlZCBURVNUQ09ORi4KICAgCjIwMDAtMDgtMDEgMTY6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gKE1ha2VmaWxlLnRvcCk6IG1ha2UgdW4tcXVpZXQuCiAgIAoyMDAwLTA4LTAxIDEwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIC0gKHNubXAtdWNkLnNoKTogZml4IGJ1ZyAjMjk3IChkb24ndCBraWxsIGdyZXAgYW5kIGluaXQgc2NyaXB0IGludm9jYXRpb25zKS4KICAgCjIwMDAtMDgtMDEgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGJ1ZyBmb3VuZCBieSBZaWdhbCBIb2NoYmVyZyA8aG9jaGJlcmdAZG1oc29mdHdhcmUuY29tPgogICAKMjAwMC0wOC0wMSAwMzozMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBidWlsZGluZyBvZiBjb21wbGV0ZSBPSUQKICAgCSh3b3JrIHdpdGggdGhlIG5hbWUgb3JpZ2luYWxseSByZWdpc3RlcmVkLAogICAJIG5vdCBhbnkgc3Vic2VxdWVudCBkaXZpc2lvbiBib3VuZGFyaWVzKQogICAKMjAwMC0wNy0zMSAyMDowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBmb3BlbiBmcm9tIHNoZWxsX2NvbW1hbmQuCiAgIAoyMDAwLTA3LTMxIDE4OjU4ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoLmluOgoKICAgKFRFU1RDT05GLnNoLmluKSAtIHNldCBNSUJESVJTIHRvIHNpYmxpbmcgb2YgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgogICAoUlVOVEVTVFMpIC0gYWxsb3cgYmluYXJpZXMgdG8gYmUgaW4gdGhlICItRCBiaW5kaXIiIGRpcmVjdG9yeS4KICAgCjIwMDAtMDctMzEgMTU6MjUgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2guaW46CgogICBEb250IGFkanVzdCBQQVRIIGlmIFNOTVBfUEFUSCBpcyBzZXQuCiAgIERvbnQgYWRkIHBvcnQgc3BlYyB0byBTTk1QX0ZMQUdTIGlmIG9uZSBpcyBhbHJlYWR5IHNwZWNpZmllZC4KICAgCjIwMDAtMDctMzEgMTM6NDkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFJlbW92ZSB0ZXN0IGRpcmVjdG9yaWVzIGZvciBza2lwcGVkIHRlc3RzLgogICBLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIGZhaWxlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBwYXNzZWQgdGVzdHMgd2hlbiAiUlVOVEVTVFMgLXMiIGlzIHNwZWNpZmllZC4KICAgU2VhcmNoIGNvbmZpZy5oIGF0IHRoZSByb290IG9mIHRoZSBidWlsZCB0cmVlLgogICAKMjAwMC0wNy0zMSAxMTozMiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmd1ZXNzOgoKICAgTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwLCBDcmF5LVQzLCBTWC00LCBTWC01CiAgIAoyMDAwLTA3LTMxIDExOjMxICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwCiAgIAoyMDAwLTA3LTMwIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCB0YXJnZXQvdGFyZ2V0LmMsCiAgIHRhcmdldC90YXJnZXQuaDoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKToKICAgICAtIGltcGxlbWVudCB1bnRlc3RlZCBmaWx0ZXJpbmcgZnVuY3Rpb24gY2FsbGJhY2sgZm9yIHRhcmdldCBzZWFyY2hlcy4KICAgICAtIGRlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCiAgICAgLSBtaXNjIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA3LTMwIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIC0gKHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCk6CiAgICAgLSBtb3JlIG5vdGlmaWNhdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGZpbHRlcmluZy4KICAgICAgIC0gRnJhbWV3b3JrIGNvbXBsZXRlLCBmdW5jdGlvbmFsaXR5IGlzIG5vdC4KICAgCjIwMDAtMDctMzAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gaGFuZGxlIGltcGxpZWQgb2JqZWN0cy4KICAgICAtIGltcGxlbWVudCBoZWFkZXJfY29tcGxleF9nZXQoKSBmb3Igc2ltcGxlIGRhdGEgcmV0cmlldmFscy4KICAgCjIwMDAtMDctMjggMDY6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY0LTEtMS1wYXRjaGVzLjIpLAogICB2YXJfcm91dGUuYzoKCiAgIENsZWFudXAgaW5jbHVkZSBoZWFkZXJzIHRvIGZpeCBidWcgIzMwNy4gVGhhbmtzIHRvIHNhbmR2ZW5AcmVzZWFyY2guYXR0LmNvbS4KICAgCjIwMDAtMDctMjcgMTU6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFZpbmF5IE1vaHRhOgogICAgIC0gYWNjZXNzX2hvc3RzKCkgcmVxdWlyZXMgYW4gYXJndW1lbnQgc28gZmFrZSBvbmUuCiAgIAoyMDAwLTA3LTI3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hdHRpYXMgQmFydGhlbDoKICAgICAtIGZpeCBmb3IgaW50ZXJmYWNlcyB3aXRob3V0IGFuIGF0dGFjaGVkIElQIGFkZHJlc3MuCiAgIAoyMDAwLTA3LTI3IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gc3VwcG9ydCByYXcgdmFsdWVzLgogICAKMjAwMC0wNy0yNyAwODoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBwcmludCBlcnJvcnMgdG8gc3RkZXJyLgogICAKMjAwMC0wNy0yNyAwNjoyMCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogRml4IGEgbWlzc2luZyBpbml0aXphdGlvbiB3aGVuIG9uZSBNSUIgaG9sZHMgTU9EVUxFLUNPTVBMSUFOQ0UKICAgCWZvciBhbm90aGVyCiAgIAoyMDAwLTA3LTI3IDAxOjM1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBGaXggcGR1LT5jb21tdW5pdHkgYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCBzZXNzaW9uLT5jb21tdW5pdHkKICAgCVRoYW5rcyB0byBEYW5hIFAuIENvb2sgPGRjb29rQGNhYmxldHJvbi5jb20+CiAgIAoyMDAwLTA3LTI2IDIyOjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFVwZGF0ZSBmb3Igd2luMzIgYnVpbGQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCB1bnB1Ymxpc2hlZCBtZXRob2QuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSB0cmFuc2xhdGVPYmogaGFjay4KICAgCjIwMDAtMDctMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSByZW1vdmUgYmVnaW5uaW5nIG5ld2xpbmUgaW4gZGVzY3JpcHRpb24gY2xhdXNlcy4KICAgCjIwMDAtMDctMTcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmgpOiBjb25maWdfcmVxdWlyZSBrZXJuZWxfc3Vub3M1LgogICAKMjAwMC0wNy0xMiAwOToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY29weSBrZXkgbGVuZ3RoIGFzIHdlbGwgYXMgdGhlIGtleSB3aGVuIHVzaW5nIHRoZSBzYW1lCiAgICAgcHJpdmFjeSBrZXkgYXMgdGhlIGF1dGgga2V5LgogICAKMjAwMC0wNy0xMSAxMzozNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMsIHQvbWliLnQKOgoKICAgYWRkZWQgcmFuZ2VzIGZpZWxkIHRvIFNOTVA6Ok1JQiBoYXNoCiAgIAoyMDAwLTA3LTExIDEwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIG1ha2UgbnVsbCBQUkVGSVggdmFyaWFibGUgcG9zc2libGUgc28gbm9uLWRvdC1sZWFkaW5nIG9pZHMgYXJlIGFjY2VwdGVkLgogICAKMjAwMC0wNy0xMSAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgIC0gbWFrZSB0aGUgc2Vzc2lvbiBwb2ludGVycyBpbmRpY2F0ZSB3ZWF0aGVyIG9yIG5vdCB0aGV5IGFyZQogICAgICAgImF1dGhvcml0YXRpdmUiLCBtZWFuaW5nIHdlYXRoZXIgdGhleSBzaG91bGQgYmUgbGVhcm5pbmcgZW5naW5lSURzCiAgICAgICBvciByZXBvcnRpbmcgb24gdGhlbS4KICAgICAtIHBhc3MgdGhlIHJlY2VpdmVkLXBhY2tldCBzZXNzaW9uIHBvaW50ZXIgaW50byBzbm1wdjNfcGFyc2UgYW5kCiAgICAgICB1c21fcHJvY2Nlc3NfaW5fbXNnKCkgdG8gdXNlIHRoaXMgZmxhZy4KICAgICAtIHNldCBpc0F1dGhvcmF0YXRpdmUgPSB0cnVlIGluIHRoZSBhZ2VudCwgYW5kIHVua25vd24gaW4gdGhlIHNubXB0cmFwZC4KICAgCjIwMDAtMDctMTEgMDg6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IG1ha2UgdGhlIGNyZWF0ZVVzZXIgdG9rZW4gYWNjZXB0IGFuIGVuZ2luZWlkICgtZSBBUkcpIHRvIHVzZS4KICAgCjIwMDAtMDctMDcgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFJlY29nbmlzZSBUb2tlbiBSaW5nIGludGVyZmFjZXMgdW5kZXIgTGludXgKICAgCjIwMDAtMDctMDYgMTc6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBwcmludCBnZW5lcmljIHN0cmluZ3Mgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCiAgICAgd2hlcmUgcG9zc2libGUuICAoSUUsIGNoZWNrIGZvciBwcmludGFibGUgY2hhcmFjdGVycyBiZWZvcmUgcHJpbnRpbmcgaGV4KS4KICAgCjIwMDAtMDctMDYgMTc6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW46CgogICAtIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiBtb3ZlZCBURVNUQ09ORi5zaCB0byBURVNUQ09ORi5zaC5pbgogICAgIGFuZCBoYXZlIHRoZSBNSUJTIHBhdGggdmFyaWFibGUgYnVpbHQgYnkgY29uZmlndXJlIHNpbmNlIGl0IGtub3dzCiAgICAgd2hlcmUgdGhlIHJvb3QgbGV2ZWwgc291cmNlIGRpcmVjdG9yeSBpcy4KICAgCjIwMDAtMDctMDYgMTc6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhlYWRlcl9jb21wbGV4LmMsIHNubXBOb3RpZnlUYWJsZS5jLAogICAgIGFzbjEuaCwgc25tcF9hcGkuYyk6CiAgICAgLSBpbXBsZW1lbnQgSU1QTElFRCBpbmRleCBoYW5kbGluZy4KICAgICAtIG1ha2UgdGhlIGNyZWF0ZWQgVVNNIGVudHJpZXMgc2V0IHRoZSBzdG9yYWdlVHlwZSBhbmQgUm93U3RhdHVzCiAgICAgICBhcHByb3ByaWF0ZWx5LgogICAKMjAwMC0wNy0wNiAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IGJldHRlciBjb21tZW50cyBvbiBhIGNvdXBsZSBvZiBmdW5jdGlvbiBkZWZpbml0aW9ucy4KICAgCjIwMDAtMDctMDUgMDc6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCAoQlVHIzI5MCkgZ3JhY2VmdWxseSBoYW5kbGUgc29tZSBQRFVzIHRoYXQgaGF2ZSBubyB2YXJpYWJsZXMuCiAgIAoyMDAwLTA3LTA1IDA2OjQ2ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTA3LTA0IDEwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIHJlbW92ZSBsYXN0IHJlbW5hbnRzIG9mIHRoZSAiaW5pdGlhbCIgdXNlci4KICAgICAtIG1ha2UgZW5naW5laWQgcmVwb3J0cyBmcm9tIHRoZSB1c20gaGFwcGVuIGJhc2VkIG9uIHRoZSByZXBvcnQgZmxhZwogICAgICAgaW4gdGhlIG1lc3NhZ2UgZmxhZy4KICAgICAgIC0gTm90ZTogdGhpcyBpcyBhIGJpZyBpc3N1ZSB3aXRoIHRoZSBTTk1QdjMgcHJvdG9jb2wgc3BlY3MuICBUaGUKICAgICAgICAgc3BlY2lmaWNhdGlvbnMgbm90ZSB0aGF0IHlvdSBzZW5kIGEgcmVwb3J0IGlmIHlvdSBhcmUKICAgICAgICAgImF1dGhvcml0YXRpdmUiLCBidXQgZG9uJ3QgZGVzY3JpYmUgaG93IHRvIGtub3cgaWYgeW91IGFyZQogICAgICAgICBhdXRob3JpdGF0aXZlIG9yIG5vdC4gIEZvciBzaXR1YXRpb25zIGxpa2UgcHJveGllcyBhbmQKICAgICAgICAgbm90aWZpY2F0aW9uIHJlY2VpdmVycywgd2hlcmUgeW91IGFyZSBzb21ldGltZXMgYXV0aG9yaXRhdGl2ZQogICAgICAgICBhbmQgb3RoZXIgdGltZXMgeW91J3JlIG5vdCwgdGhpcyBpcyBwcm9ibGVtYXRpYy4gIFRoZSBTTk1QdjMKICAgICAgICAgQVNJcyBkbyBub3QgcGFzcyBpbiBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lIHRoaXMgYW5kIHRoZQogICAgICAgICBXRyBoYXMgcHJvY2xhaW1lZCB0aGF0IHRoZSBBU0lzIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBhcyBhbgogICAgICAgICBBUEksIGJ1dCB0aGUgaW5pdGlhbCB3b3JrIGRvbmUgYnkgTkFJIGFuZCBUSVNMYWJzIGF0dGVtcHRlZCB0bwogICAgICAgICBpbXBsZW1lbnQgdGhlIFVTTSBzdWNoIHRoYXQgaXQgd291bGQgYmUgYSAicmVmZXJlbmNlIiByZWxlYXNlCiAgICAgICAgIGFuZCBoZW5jZSB3ZSBmb2xsb3dlZCB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlciBhbmQgdXNlZAogICAgICAgICB0aGUgQVNJcyBhcyBBUElzIGp1c3QgdG8gc2VlIGlmIHdlIGNvdWxkLiAgV2UgY291bGQgcHJldmlvdXNseQogICAgICAgICBvbmx5IGJlY2F1c2Ugd2Ugd2VyZSBhbHdheXMgZWl0aGVyIGF1dGhvcml0YXRpdmUgb3IKICAgICAgICAgbm9uLWF1dGhvcml0YXRpdmUuICBTaW5jZSBiZWdpbm5pbmcgdG8gd29yayBvbiBwcm94eSBhbmQgdGhlCiAgICAgICAgIG5vdGlmaWNhdGlvbiBtaWIsIHRoaXMgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAgRm9yIHRoZSByZWNvcmQsIEkKICAgICAgICAgYW0gaGVyZWJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHJlZmVyZW5jZSByZWxlYXNlIGluIHN1Y2ggYQogICAgICAgICBtYW5uZXIgYXMgaXQgbm8gbG9uZ2VyIGNvbmZvcm1zIGV4YWN0bHkgdG8gdGhlIFNOTVB2MyBBU0lzLiAgU28KICAgICAgICAgYXMgbm90IHRvIGNvbmZ1c2UgYW55b25lLCB0aGlzIGlzIGFuIGVudGlyZWx5IHRoZW9yZXRpY2FsIGlzc3VlCiAgICAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgU05NUHYzIHNwZWNpZmljYXRpb24gYW5kIGlzIHBlcmZlY3RseSBsZWdhbAogICAgICAgICB0byBkby4gIFRob3VnaCBJIGNvdWxkIGVhc2lseSBnbyBvbiwgSSdsbCBzdGVwIG9mZiBteSBzb2FwIGJveCBub3cuCiAgIAoyMDAwLTA3LTAzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaCwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKICAgICAtIEFkZCBhIG5ldyBjYWxsYmFjayBmb3Igc2VuZGluZyB0cmFwcy4KICAgICAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB1c2UgaXQuCiAgICAgLSBtYWtlIHRoZSB0YXJnZXQgbWliIGdlbmVyYXRlIG1vcmUgcGVyc2lzdGVudCBzZXNzaW9ucy4KICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgYWx3YXlzIGFzayB0aGUgdGFyZ2V0IG1pYiBmb3IgYSBzZXNzaW9uCiAgICAgICBsaXN0LCB3aGljaCBpcyBub3cgY2FjaGVkIGRpcmVjdGx5IGJ5IHRoZSB0YXJnZXQgbWliLgogICAKMjAwMC0wNy0wMyAwODozOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jCiwgc3lzdGVtLmM6CgogICBmaXggKEJVRyMyNjIpIC0gKHNvbWUpIHN0YXRlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVhY2hlZC4KICAgCjIwMDAtMDctMDMgMDc6NTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGZpeCAoQlVHIzI4NykKICAgCjIwMDAtMDctMDMgMDY6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgZml4IGJ1ZyAjIDI4OQogICAKMjAwMC0wNi0zMCAwNDo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc2ltcGxpZnkgbWVtb3J5IGFsbG9jYXRpb24gaW4gcmVhZF9jb25maWdfcmVhZF97b2N0ZXRfc3RyaW5nLCBvYmppZH0KICAgCjIwMDAtMDYtMzAgMDA6NDcgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gZm9yIGtleXdvcmRzIHdpdGhvdXQgaGVscAogICAKMjAwMC0wNi0yOCAyMzozNyAgbmJhCgogICAqIG1pYnMvOiBJRi1NSUIudHh0LCBNYWtlZmlsZS5taWI6CgogICAtIElGLU1JQi50eHQ6IHVwZ3JhZGUgdG8gUkZDIDI4NjMKICAgCjIwMDAtMDYtMjggMDA6NTggIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmUsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jLCBjb25maWd1cmU6IElyaXggNi41IGhhcyBpZmlfYmF1ZHJhdGUuaWZzX3ZhbHVlCiAgIAoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogYmV0dGVyIG9wdGlvbiBwYXJzaW5nLgogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIHNubXB2My5jOiBkbyBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIG9wdGlvbiB2YWx1ZXMuCiAgIAoyMDAwLTA2LTI3IDAwOjMzICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBkb2N1bWVudCB0aGF0IC13IGlzIGFsc28gZm9yIC1UZAogICAKMjAwMC0wNi0yNyAwMDozMCAgbmJhCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEsIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEKLCBzbm1wZ2V0LjEsIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsCiAgIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGVzdC4xLCBzbm1wdHJhcC4xCiwgc25tcHRyYXBkLjgsIHNubXB3YWxrLjEsIHZhcmlhYmxlcy41OgoKICAgLSB2YXJpb3VzIG1hbiBwYWdlIG5pdC1waWNraW5nCiAgIAoyMDAwLTA2LTI3IDAwOjI4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGZpeGVzIGFuZCB1c2FnZSBtZXNzYWdlIGZvciAtQ2ggYW5kIC1DSAogICAKMjAwMC0wNi0yNiAyMzo0MyAgbmJhCgogICAqIG1pYnMvOiBBR0VOVFgtTUlCLnR4dCwgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsCiAgIERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgRXRoZXJMaWtlLU1JQi50eHQsCiAgIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIElBTkEtTEFOR1VBR0UtTUlCLnR4dAosIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dAosIElQVjYtSUNNUC1NSUIudHh0LCBJUFY2LU1JQi50eHQsIElQVjYtVEMudHh0CiwgSVBWNi1UQ1AtTUlCLnR4dCwgTWFrZWZpbGUuaW4sIFJNT04tTUlCLnR4dAosIFNNVVgtTUlCLnR4dCwgU05NUC1DT01NVU5JVFktTUlCLnR4dCwKICAgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICBTTk1QLVRBUkdFVC1NSUIudHh0LCBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBTTk1QdjItQ09ORi50eHQsCiAgIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItU01JLnR4dCwgU05NUHYyLVRDLnR4dCwKICAgU05NUHYyLVRNLnR4dCwgVENQLU1JQi50eHQsIFVEUC1NSUIudHh0OgoKICAgLSBNYWtlZmlsZS5pbiwgKk1JQi50eHQ6IHVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9uCiAgIAoyMDAwLTA2LTI2IDIzOjQyICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOgoKICAgLSBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDogdG9vbHMgdG8gZXh0cmFjdCBNSUJzIGZyb20gUkZDCiAgIAlkb2N1bWVudHMuCiAgIAoyMDAwLTA2LTI2IDIzOjQwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHBhcnNlLmMsIG1pYi5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFkZCBwYXJzaW5nIG9mIENIT0lDRSBhbmQgY2hlY2tzIGZvcgogICAJT0JKRUNULUdST1VQIGFuZCBBR0VOVC1DQVBBQklMSVRJRVMuIFRoaXMgYWxsb3dzIHVzIHRvIHBhcnNlCiAgIAljb21wbGV0ZSBNSUIgZXh0cmFjdHMgZnJvbSBSRkMgZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzozOCAgbmJhCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gTWFrZWZpbGUudG9wOiBtYWtlIGxpYnRvb2wgc2lsZW50LCBzbyB3ZSBjYW4gc2VlIHRob3NlIHdhcm5pbmdzCiAgIAoyMDAwLTA2LTI2IDIzOjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIC0gc25tcFRhcmdldEFkZHJFbnRyeS5jOiBkbyBhIGNhc3QgdG8ga2lsbCBhIHdhcm5pbmcKICAgCjIwMDAtMDYtMjYgMjM6MzIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXAuYzogRml4IGEgbGVhayB3aGVuIHJlcXVlc3QgaXMgYmxvY2tlZCBieSBWQUNNIGFuZCBubyB0cmFwCiAgIAlpcyBzZW50LgogICAKMjAwMC0wNi0yNiAxMTo1NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IChCVUcjMjMzKQogICAKMjAwMC0wNi0yMyAwNjo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVwbGFjZSBtYWxsb2MvbWVtc2V0IDAgd2l0aCBjYWxsb2MuCiAgIAoyMDAwLTA2LTIzIDAxOjA4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaAosIGlwLmM6CgogICAtIChtaWJJSS9rZXJuZWxfbGludXguW2NoXSwgbWliSUkvaXAuYyk6IEFkZGVkIHN1cHBvcnQgZm9yIGlwUm91dGluZ0Rpc2NhcmRzCiAgIAkoVGhhbmtzIHRvIEJyeWFuIEJsYWNrbWFuKQogICAKMjAwMC0wNi0yMiAxNzowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVtb3ZlIGV4dHJhIGluY2x1ZGUgZXJyb3JtaWIuaAogICAKMjAwMC0wNi0yMiAxNjo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4IGJ1ZyAjMjc2IC0gY2xvc2UgbW9zdCBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSBleGVjJ2luZyBjb21tYW5kLgogICAKMjAwMC0wNi0yMiAxNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYwosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwo6CgogICBmZ2V0czogdXNlIHNpemVvZihidWYpIGluIGxpZXUgb2YgY29tcGlsZXIgY29uc3RhbnQgU1RSTUFYLgogICAKMjAwMC0wNi0yMiAxNTo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgVXNlIGZld2VyIGxhcmdlIHN0YXRpYyBidWZmZXJzLiAgcGFzc19wZXJzaXN0IHVzZXMgYmlnZ2VyIGJ1ZmZlcnMgbm93LgogICAKMjAwMC0wNi0yMSAxMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBVaCwgb25seSBpZiBub3QgZGVsZXRlZC4KICAgCjIwMDAtMDYtMjEgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogY2hhbmdlIGNyZWF0ZUFuZEdvL2NyZWF0ZUFuZFdhaXQgc3RhdGVzIHRvIGFjdGl2ZS9OSVMuCiAgIAoyMDAwLTA2LTIwIDIwOjAxICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIERlY2xhcmUgdG9wX2J1aWxkZGlyIHRvIGF2b2lkIGFubm95aW5nIC9saWJ0b29sIG5vdCBmb3VuZCBtZXNzYWdlLgogICAKMjAwMC0wNi0yMCAxNzozMCAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBEb250IGFzc3VtZSBBTlNJIEMtcHJlcHJvY2Vzc29yIChyZXBsYWNlICIjIyIgY29uY2F0ZW5hdGlvbiB3aXRoIHNwcmludGYpLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kZWYsIGxpYmFnZW50L2xpYmFnZW50LmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgV2luMzIgTVMtVkMrKyBidWlsZCBmaXh1cHMuCiAgIAoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRW5jYXBzdWxhdGUgbG9jYWwgdmFyaWFibGUgIngiIHRvIHRoZSBzY29wZSB3aGVyZSBuZWVkZWQuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhciAibmV3dmFyIi4KICAgCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgVXNlIGludCB2cyB1bG9uZyBmb3IgYXJyYXkgaW5kZXhpbmcgdmFyaWFibGVzIHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4KICAgCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcnMgc3RydWN0IHRtLCB0aW1lX3QuCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgImluaXRsaXN0Ii4KICAgCjIwMDAtMDYtMjAgMTU6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERlY2xhcmUgc3RybmNhc2VjbXAgaW4gc3lzdGVtLmggOyBSZW1vdmUgdW51c2VkIHZhciAic3RhdHVzIi4KICAgCjIwMDAtMDYtMjAgMTU6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzLgogICAKMjAwMC0wNi0yMCAxNTozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRGVjbGFyZSBvcHRhcmcgaW4gZ2V0b3B0LmguCiAgIAoyMDAwLTA2LTIwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIG1pbm9yIGNoYW5nZXMuCiAgIAoyMDAwLTA2LTIwIDEzOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiAuY3ZzaWdub3JlLCBzbm1wTm90aWZ5VGFibGUuYwosIHNubXBOb3RpZnlUYWJsZS5oOgoKICAgLSAoLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oKToKICAgICAtIFNOTVAtTk9USUZJQ0FUSU9OLU1JQidzIHNubXBOb3RpZnlUYWJsZSBpbXBsZW1lbnRlZDoKICAgICAgIC0gdXNlcyB0aGUgU05NUC1UQVJHRVQtTUlCIHRvIGdldCBpdHMgYWRkcmVzc2VzIGZyb20uCiAgICAgICAtIHVzZXMgaGVhZGVyX2NvbXBsZXggdG8gaGFuZGxlIHRoZSBkYXRhLgogICAgICAgLSBtdWNoIHRvZG86CiAgICAgICAgIC0gZHluYW1pYyB0YXJnZXQvbm90aWZpY2F0aW9uIG1pYiB1cGRhdGluZyB3aXRob3V0IGtpbGwgLUhVUCBuZWVkZWQuCiAgICAgICAgICAgLSB0aGlzIHdpbGwgYmUgYSByZWFsIHBhaW4uCiAgICAgICAgIC0gZml4IHYzIHJlbGF0ZWQgdHJhcHMgc3RpbGwgKHNhbWUgdXNtIGJ1ZyBJJ3ZlIGJlZW4gbWVhbmluZyB0byBmaXgpLgogICAgICAgICAtIHRoZSByZXN0IG9mIHRoZSBTTk1QLU5PVElGSUNBVElPTi1NSUIgdGFibGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CiAgIC0gZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAtIG1pc2Mgb3RoZXIgbWlub3IgZml4ZXMuCiAgIAoyMDAwLTA2LTIwIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvdGFyZ2V0LmMsCiAgIHRhcmdldC90YXJnZXQuaDoKCiAgIC0gKHRhcmdldC5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOiBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCiAgICAgYmFzZWQgb24gZW50cmllcyBpbiB0aGUgU05NUC1UQVJHRVQtTUlCIHRhYmxlLgogICAKMjAwMC0wNi0yMCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiByZW1vdmUgTWljaGFlbCdzIGhvcnJpYmxlbHkgd3JvbmcgImZpeGVzIi4KICAgCjIwMDAtMDYtMjAgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6IGFkZCByZW1vdmVfdHJhcF9zZXNzaW9uKCkuCiAgIAoyMDAwLTA2LTIwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZGVhbCB3aXRoIDAtbGVuZ3RoIHBlcnNpc3RlbnQgc3RyaW5ncyBiZXR0ZXIuCiAgIAoyMDAwLTA2LTE5IDEyOjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDaGVjayBtb3JlIGFsbG9jIGZhaWx1cmVzLgogICAKMjAwMC0wNi0xOSAxMjoxNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIHByb3RvY29sLmM6CgogICAocHJvdG9jb2wuYykgVXNlIHNpemVvZihvaWQpLCBub3QgNCEKICAgKGNsaWVudC5jKSBBZGQgX2FsbF8gb2YgT0lEIHZhbHVlIGZvciBhZ2VudHhfcmVnaXN0ZXIgYW5kIGFnZW50eF91bnJlZ2lzdGVyLgogICAKMjAwMC0wNi0xOSAxMTo0MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICBSZW1vdmVkIHNpemVvZih1X2NoYXIpIGFuZCB1bm5lY2Vzc2FyeSAodW5zaWduZWQpIGNhc3RzIHRvIG1hbGxvYyBwYXJhbXMuCiAgIAoyMDAwLTA2LTE5IDAzOjA0ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICBQcm90b3R5cGUgZml4dXAuCiAgIAoyMDAwLTA2LTE5IDAzOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIHMvY29uaWZnL2NvbmZpZy8gLi4uLiBIcnJybW1tcGYKICAgCjIwMDAtMDYtMTkgMDI6NTggIG5iYQoKICAgKiBtYWtlbm9zeXNkZXBlbmQucGwsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gbWFrZW5vc3lzZGVwZW5kLnBsIE1ha2VmaWxlLmluOiBvYmplY3QgZmlsZXMgYXJlIG5vdyBuYW1lZCAubG8gLi4uCiAgIAoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oKTogYWRkIHRoZSBTTk1QdjItVE0gbWliIHRvIHRoZSBkZWZhdWx0IGxpc3QuCiAgIAoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IGZpeCBpbmNvcnJlY3QgT0lEcy4KICAgCjIwMDAtMDYtMTUgMDY6NDUgIG1hcnoKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgZmF0IGZpbmdlcnMKICAgCjIwMDAtMDYtMTUgMDY6NDIgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLlBMOgoKICAgYWRkIGRlZmF1bHRzIHRvIGRhZW1vbiBzZWFyY2ggcGF0aC4uLnJlY2FsYyB0L3NubXB0ZXN0LmNtZCBldmVyeXRpbWUgcGVyIG1ha2VmaWxlLlBMIGlzIHJ1bgogICAKMjAwMC0wNi0xMiAxNjo0MyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdHJhcHNlc3MuCiAgIAoyMDAwLTA2LTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOgogICAgIC0gbmV3IHNubXBkLmNvbmYgdG9rZW4gZm9yIHRyYXAgc2Vzc2lvbnM6ICJ0cmFwc2VzcyIuCiAgICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzIHNvIGFueSB0eXBlIG9mIHRyYXAgY2FuIGJlIHNlbnQgd2l0aCBpdAogICAgICAgICBtb2RpZmllZCBieSBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgZG9jdW1lbnRlZCBpbiBzbm1wY21kKDEpLgogICAgICAgLSB2MyB0cmFwcyBkb24ndCB3b3JrIGR1ZSB0byB0aGUgc2FtZSBVU00gcHJvYmxlbXMgZm91bmQgaW4gdGhlCiAgICAgICAgIHJlY2VudCBwcm94eSBzdWJtaXNzaW9ucyAobXkgbmV4dCB0YXJnZXQpLgogICAgICAgLSAtQ2kgaW4gdGhlIGFyZ3VtZW50IHNwZWNpZmllcyBpbmZvcm1zIHNob3VsZCBiZSB1c2VkLgogICAKMjAwMC0wNi0xMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmUtZW5hYmxlIGZyZWVpbmcgb2YgbWFzdGVyIHJlcXVlc3QuCiAgIAoyMDAwLTA2LTEyIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2F2ZSBleGVjIGRhdGEgdG8gL3Zhci91Y2Qtc25tcC4KICAgICAtIGNvdWxkIGNhdXNlIHByb2JsZW1zIGZvciBub24tcm9vdCBydW5zLiAgVW50ZXN0ZWQuCiAgIAoyMDAwLTA2LTEyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gKHNubXB0cmFwZF9sb2cuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHJlbW92ZSBlbmRpbmcgY29tbWFzIGluIGVudW0gbGlzdC4KICAgCjIwMDAtMDYtMDcgMTM6MjMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICAtIChzbm1wX2NvbmZpZy41LmRlZiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSB0aGUgVFlQRS5jb25mIHBhcnNlciBub3cgYWNjZXB0cyB0b2tlbnMgZnJvbSBhIGRpZmZlcmVudCAuY29uZgogICAgICAgZmlsZSBUWVBFIGlmIGEgc3BlY2lhbCAiW1RZUEVdIiBrZXl3b3JkIGlzIGluc2VydGVkIGludG8gdGhlCiAgICAgICAuY29uZiBmaWxlLiAgU2VlIHNubXBfY29uZmlnKDUpIGZvciBhIGJldHRlciBkZXNjcmlwdGlvbi4KICAgCjIwMDAtMDYtMDcgMTM6MjIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtYXAgc3RydG91bCB0byBhdG9pIGlmIHRoZSBmdW5jdGlvbiBpc24ndCBmb3VuZC4KICAgCjIwMDAtMDYtMDIgMTE6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkICoubWFkZS4KICAgCjIwMDAtMDYtMDIgMTE6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIGZpeHByb2MsIGlwZi1tb2QucGwsCiAgIG1pYjJjLCB0a21pYjoKCiAgIC0gKE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLCBtaWIyYywgdGttaWIpOgogICAgIC0gbWFrZSAoYW5kIGluc3RhbGwpIHBlcmwgc2NyaXB0cyBkaWZmZXJlbnRseSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIG9yaWcuCiAgIAoyMDAwLTA2LTAxIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBpbW1lZGlhdGVseSBhZnRlciBpbml0J2luZyB0bwogICAgIGVuc3VyZSB3ZSB1cGRhdGUgY291bnRlcnMgYW5kIHN0dWZmIHRoYXQgbXVzdCBjaGFuZ2UgKGVnLCBlbmdpbmVCb290cykuCiAgIAoyMDAwLTA1LTMxIDE2OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRlc2NyaWJlIC1JLgogICAKMjAwMC0wNS0zMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYl9tb2R1bGVzLmMKLCBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBkLmMpOgogICAgIC0gbmV3IC1JIHN3aXRjaCB0byBzbm1wZCB0byBkbyBkeW5hbWljIGRldGVybWluYXRvbiBvZiB3aGljaCBtaWIKICAgICAgIG1vZHVsZXMgdG8gaW5pdGlhbGl6ZSAoYW5kIGhlbmNlIHdoaWNoIG1pYiB0cmVlIHNlY3Rpb25zIHRvIHN1cHBvcnQpLgogICAKMjAwMC0wNS0zMSAxNTo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOiBkZWZhdWx0IHN0b3JlIHJvdXRpbmVzIGZvciB2b2lkIHBvaW50ZXJzLgogICAgLSB3aGljaCBJIGltbWVkaWF0ZWx5IGRlY2lkZWQgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCBmb3Igd2hhdCBJCiAgICAgIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgaXQgZm9yLCBzbyBpdHMgbm90IGJlaW5nIHVzZWQgeWV0LgogICAKMjAwMC0wNS0zMSAwNTo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcC5jLCBpcC5oOgoKICAgLSAobWliSUkvaXAuW2NoXSk6IEFsbG93IElQIHN1cHBvcnQgd2l0aG91dCB0aGUgQXQvaXBOZXRUb01lZGlhIG1vZHVsZQogICAKMjAwMC0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IHNpbXBsZSBwcm94eSBzdXBwb3J0LgogICAgIC0gbWFwcyBvbmUgb2lkIGluc2lkZSB0aGUgYWdlbnQgdG8gYSBwb3NzaWJseS1kaWZmZXJlbnQgb2lkIG9uIGEgdGFyZ2V0LgogICAgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3MoKSBzbyBpdCB0YWtlcyBzdGFuZGFyZCBjb21tYW5kIGxpbmUgY29uZmlnIG9wdGlvbnMuCiAgICAgLSBubyBzZXQgc3VwcG9ydC4KICAgICAtIG5vIGtpbGwgLUhVUCBzdXBwb3J0LgogICAgIC0gbm8gU05NUHYzIHN1cHBvcnQgKHNpZ2gpLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0OgoKICAgZmlsZSBJQU5BLUxBTkdVQUdFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dDoKCiAgIGZpbGUgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9BR0VOVFgtTUlCLnR4dDoKCiAgIGZpbGUgQUdFTlRYLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDA3OjQ3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggcHJvYmxlbSBpZGVudGlmaWVkIGJ5IFYuIEdyZW5ldDogbmV3IG1ldGhvZCBzbm1wX29pZF9taW5fY29tcGFyZQogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvbWliZmV0Y2g6CgogICBmaWxlIG1pYmZldGNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvc21pc3RyaXA6CgogICBmaWxlIHNtaXN0cmlwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZmlsZSBNYWtlZmlsZS5taWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTI2IDA5OjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkvc3lzT1JUYWJsZS5jIG1pYklJL3N5c3RlbV9taWIuYyk6CiAgICAgLSBVc2UgbmV3IHRpbWUgdXRpbGl0eSByb3V0aW5lcyB0byBzaW1wbGlmeSBwcm9jZXNzaW5nCiAgICAgLSBVcGRhdGUgc3lzT1JMYXN0Q2hhbmdlIHdoZW4gYWRkaW5nL3JlbW92aW5nIGVudHJpZXMKICAgCjIwMDAtMDUtMjYgMDk6MjMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLltjaF0pOiBOZXcgdGltZS1kaWZmIHV0aWxpdHkgcm91dGluZXMKICAgCjIwMDAtMDUtMjYgMDg6NDYgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBkLmMgc25tcF9hZ2VudC5jIG1pYklJL3Zhcl9yb3V0ZS5jKTogVXNlICdtaWJpbmNsLmgnIGhlYWRlcgogICAKMjAwMC0wNS0yNiAwNzo0OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdCiAgICAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBTdXBwb3J0IGZvciBNSUIgcmVnaW9uIHRpbWVvdXRzCiAgIAoyMDAwLTA1LTI2IDA3OjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBTdXBwb3J0IGZvciBwZXItcmVxdWVzdCB0aW1lb3V0IGhhbmRsaW5nCiAgIAoyMDAwLTA1LTI2IDA3OjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogTWlub3IgZXJyb3IgaW4gQWdlbnRYIHBhY2tldCBkdW1wCiAgIAoyMDAwLTA1LTI1IDEwOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAtIGZpeGVkIGxpbnV4IHByb2JsZW06IHdyb25nIHBhcmFtcyBnZXR0aW5nIHJldHVybmVkLgogICAKMjAwMC0wNS0yNSAwNTozOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IHVzZSBvZiBiaW4yYXNjIHRvIG5vdCBhbHdheXMgc2hvdyAic3RyaW5nIjsgdXNlIHNubXBfb2lkX2NvbXBhcmUsIHRvby4KICAgU2VlIGJ1ZyAjMjM0IGZvciBkZXRhaWxzLgogICAKMjAwMC0wNS0yNSAwMzozOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAobWliSUkvaW50ZXJmYWNlcy5jKTogQ29uc29saWRhdGUgaGVhZGVyIGhhbmRsaW5nLgogICAKMjAwMC0wNS0yNSAwMzozMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAobWliSUkvaW50ZXJmYWNlcy5jKTogQ29ycmVjdCBjb25mdXNpbmcgY29tbWVudAogICAKMjAwMC0wNS0yNSAwMTo1MyAgZGF2ZXMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogUmVwbGFjZSB1c2Ugb2YgJ2N1dCcgd2l0aCBlcXVpdmFsZW50ICdzZWQnIGNhbGxzCiAgIAoyMDAwLTA1LTI1IDAxOjMwICBkYXZlcwoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSk6CiAgICAgLSBEaXJlY3QgY2VydGFpbiBjaGVja3MgdG8gdGhlIGFwcHJvcHJpYXRlIGZpbGUgZGVzY3JpcHRvciAoc2VlIEJVRyMyNDcpCiAgIAoyMDAwLTA1LTIyIDE2OjIyICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtIChhcHBzLy5jdnNpZ25vcmUpOiBhZGQgbW9yZSBzdHVmZiB0byBpZ25vcmUuCiAgIAoyMDAwLTA1LTIyIDE2OjIxICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jCiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa2dldC5jLAogICAgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHVzbS5jLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jLCBNYWtlZmlsZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmgpOgogICAgIC0gbW92ZWQgc25tcF9wYXJzZV9hcmdzIHRvIHRoZSBsaWJyYXJ5LCBhcyBJIHByb21pc2VkIHRvIGRvIGFnZXMgYWdvLgogICAgICAgLSBubyBsb25nZXIgY2FsbHMgdXNhZ2UoKSBkaXJlY3RseSwgYnV0IHJldHVybnMgLTEgaWYgeW91IHNob3VsZC4KICAgCjIwMDAtMDUtMjIgMDU6NDcgIGRhdmVzCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgLSAoc25tcGxpYi90b29scy5bY2hdKTogUm91dGluZSBmb3IgY29tcGFyaW5nIHR3byBtYXJrZXJzLgogICAKMjAwMC0wNS0yMiAwNTo0MiAgZGF2ZXMKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChsb2NhbC9taWIyYyk6IEdlbmVyYXRlIG11bHRpcGxlIHRhYmxlcyBpbiBvbmUgY29kZSBmaWxlCiAgIAoyMDAwLTA1LTE3IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CiAgICAgLSB3cml0YWJsZSB2YWNtIG1pYiBzdXBwb3J0LgogICAgIC0gb3RoZXIgbWlzYyB2YWNtIGZpeGVzLgogICAKMjAwMC0wNS0xNyAxMDoyNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CiAgICAgLSBEb24ndCBzZWdmYXVsdCBvbiBhbiB1bmtub3duIGNvbW1hbmQsIGluc3RlYWQgcHJpbnQgYSB3YXJuaW5nLi4KICAgCjIwMDAtMDUtMTcgMTA6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIC0gKHNubXB2YWNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CiAgICAgLSBhZGRlZCBhIG5ldyBjb21tYW5kOiBzbm1wdmFjbS4KICAgCjIwMDAtMDUtMTcgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogbWVudGlvbiB0aGUgcG9ydCBudW1iZXIgb24gdGhlIHRyYXBzaW5rIGhlbHAgbGluZS4KICAgCjIwMDAtMDUtMTcgMDk6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IHVzZSBzdGFuZGFyZGl6ZWQgYnVmZmVyIHNpemVzCiAgIAoyMDAwLTA1LTE3IDA5OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgbWFuL3NubXB0cmFwZC44OgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbQogICAgIEplZmYgQ291cnM6CiAgICAgLSBjdXN0b21pemVkIGZvcm1hdHRpbmcgb2YgdHJhcCBvdXRwdXQuCiAgIAoyMDAwLTA1LTE3IDA5OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGQgSmVmZiBhbmQgQXJuZS4KICAgCjIwMDAtMDUtMTcgMDg6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6ICpjb3JyZWN0bHkqIGFzc29jaWF0ZSBlc2NhcGVRdW90ZXMgd2l0aCB0aGUgcmlnaHQgZGVmYXVsdF9zdG9yZSBib29sLgogICAKMjAwMC0wNS0xNyAwODoxMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGVzY2FwZVF1b3Rlcy4KICAgCjIwMDAtMDUtMTcgMDg6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcGNtZC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbmV3IG9wdGlvbiAtT0U6CiAgICAgLSBzaGVsbCBiYWNrc2xhc2ggZXNjYXBlIHF1b3RhdGlvbnMgbWFya3MgZm9yIGN1dHRpbmcgYW5kIHBhc3RpbmcKICAgICAgIG9udG8gYW5vdGhlciBzbm1wIGNvbW1hbmQgbGluZS4KICAgCjIwMDAtMDUtMTUgMDk6MjQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzoga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oCiwgaWNtcC5jLCBpcC5jLCBpcC5oLCBpY21wLmgsIHRjcC5jCiwgdGNwLmgsIHVkcC5jLCB1ZHAuaDoKCiAgIC0gKG1pYklJL3tpcCxpY21wLHRjcCx1ZHAsa2VybmVsX2xpbnV4fS5bY2hdKToKICAgICAtICBQdWxsIExpbnV4IE1JQi1JSSBzdGF0aXN0aWNzIGdhdGhlcmluZyBpbnRvIGEgc2luZ2xlIHJvdXRpbmUuCiAgICAgLSAgQ2FjaGUgTUlCLUlJIHN0YXRpc3RpY3Mgb24gYWxsIGFyY2hpdGVjdHVyZXMuCiAgIAoyMDAwLTA1LTE1IDA4OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jCiwgdWNkLXNubXAvdm1zdGF0X2JzZGk0Lmg6CgogICAtICh1Y2Rfc25tcC5oLCB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSB2bXN0YXQgc3VwcG9ydCBmb3IgYnNkaTQuCiAgIAoyMDAwLTA1LTE1IDAzOjA2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZS1yZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQogICAJKEl0IHJlYXBwZWFyZWQgZHVyaW5nIGEgcmVjZW50IGNoYW5nZSkKICAgCjIwMDAtMDUtMTUgMDM6MDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfaW5kZXguYywKICAgYWdlbnRfcmVnaXN0cnkuaCwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IEltcGxlbWVudCBtaXNzaW5nIHJvdXRpbmUgJ3VucmVnaXN0ZXJfbWliX2NvbnRleHQnCiAgIAogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50X2luZGV4LltjaF0pOiBNb3ZlICdmZCcgcmVnaXN0cnkgaGFuZGxpbmcgYmFjayB0byBhZ2VudF9yZWdpc3RyeQogICAKICAgLSAoYWdlbnR4L2NsaWVudC5jKTogUmVjb2duaXNlIG5ldyBjb2RlIGZpbGUgZm9yIGluZGV4IGhhbmRsaW5nCiAgIAoyMDAwLTA1LTEyIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBVbSwgZGVmYXVsdCB0byBwb3J0IDE2MS4gIE9wcHMuCiAgIAoyMDAwLTA1LTEyIDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIHZhcl9zdHJ1Y3QuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSB2YXJfc3RydWN0LmggYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIFByZXBhcmF0aW9uIGZvciBwZXItTUlCIHJlZ2lvbiB0aW1lb3V0LCBhbmQgY29udGV4dCBzdXBwb3J0CiAgIAoyMDAwLTA1LTEyIDA4OjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBSZWNvZ25pc2UgU29sYXJpcyBBVE0gTEFOIEVtdWxhdGlvbiBpbnRlcmZhY2VzCiAgIAlUaGFua3MgdG8gSmF5IFlvdW5nCiAgIAoyMDAwLTA1LTEyIDA4OjEzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X2luZGV4LmgsIE1ha2VmaWxlLmluCiwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfaW5kZXguW2NoXSBhZ2VudF9yZWdpc3RyeS5bY2hdIE1ha2VmaWxlLmluIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBTcGxpdCBpbmRleCBoYW5kbGluZyBvdXQgZnJvbSB0aGUgTUlCIHJlZ2lzdHJ5LgogICAKMjAwMC0wNS0xMiAwNzowMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogQWRkIHN1cHBvcnQgZm9yIHJlY29nbmlzaW5nIFF1YWRGYXN0RXRoZXIgaW50ZXJmYWNlCiAgIAoyMDAwLTA1LTEyIDA2OjU3ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBwcm9ibGVtIHdpdGggbWlzc2luZyBzZXBhcmF0b3IgKHdpdGggLUNpIC1DZikKICAgCVRoYW5rcyB0byBYYXZpZXIgRk9VUk5FVAogICAKMjAwMC0wNS0xMiAwNDowMiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKICAgCUknbSBzdXJlIHRoaXMgd2FzIHB1dCBpbiBmb3IgYSByZWFzb24sIGJ1dCBJIGNhbid0IHJlbWVtYmVyIHdoYXQuCiAgIAlJdCBkb2Vzbid0IHNlZW0gdG8gYmUgbmVlZGVkIG5vdywgYW5kIGp1c3QgbGVha3MgbWVtb3J5LgogICAJSGVyZSdzIGhvcGluZy4uLi4uCiAgIAoyMDAwLTA1LTEyIDAzOjExICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IENhdGNoIChhbmQgaWdub3JlKSBTSUdQSVBFIHNpZ25hbHMuCiAgIAlEaXNhcHBlYXJpbmcgc3ViYWdlbnRzIHRoZXJlZm9yIGFwcGVhciBhcyBub3JtYWwgSS9PIGZhaWx1cmVzCiAgIAoyMDAwLTA1LTEyIDAyOjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKToKICAgICAtIEltcGxlbWVudCBvcGFxdWUtZW5jb2RlZCBmbG9hdCAmIGRvdWJsZSB0eXBlcwogICAgIC0gQnJpbmcgcGFja2V0IGR1bXAgaW4gbGluZSB3aXRoIHRoZSBtYWluIGxpYnJhcnkgc3R5bGUKICAgICAtIEFkZCBwYWNrZXQgZHVtcCBjYXBhYmlsaXR5IGZvciBvdXRnb2luZyBQRFVzCiAgIAoyMDAwLTA1LTEwIDE2OjUyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1wLgogICAKMjAwMC0wNS0xMCAxNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYWx3YXlzIHVzZSB0aGUgZGVmYXVsdCB0cmFuc3BvcnQgbWFwcGluZywgbm90IHRoZSBsYXN0IG9uZS4KICAgCjIwMDAtMDUtMTAgMTY6MjUgIGhhcmRha2VyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW1wbGVtZW50IG11bHRpcGxlIHRyYW5zcG9ydAogICAgIG1hcHBpbmdzIHZpYSAtcCBbdHJhbnNwb3J0Ol1wb3J0W0BhZGRyZXNzXS4KICAgCjIwMDAtMDUtMTAgMTE6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IHVkcHN0YXQgLS0+IHRjcHN0YXQKICAgCjIwMDAtMDUtMTAgMDc6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIEhhbmRsZSBzdWJhZ2VudCBkaXNhcHBlYXJpbmcgd2l0aG91dCB3YXJuaW5nCiAgIAoyMDAwLTA1LTEwIDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wbGliL3NubXBfYXBpLmgpOgogICAgIC0gUHJvdmlkZSBhIG1lY2hhbmlzbSB0byBoYW5kbGUgYXN5bmNocm9ub3VzIHNlbmQgZmFpbHVyZXMuCiAgIAoyMDAwLTA1LTEwIDA2OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogTG9naWNhbCBOT1Q/IEJpdHdpc2UgTk9UPyBXaG8nbGwgbm90aWNlIHRoZSBkaWZmZXJlbmNlIGFueXdheSEKICAgCjIwMDAtMDUtMTAgMDU6MzQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgc3ViYWdlbnRzCiAgIAoyMDAwLTA1LTEwIDA1OjMzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIG1pYklJL3N5c09SVGFibGUuYyk6IERvbid0IGFzc3VtZSBzdWJzZXNzaW9uIGxpbmsgaXMgdmFsaWQKICAgCjIwMDAtMDUtMTAgMDU6MjkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBEZWZpbml0aW9ucyBmb3Igc2Vzc2lvbiBjbG9zZWRvd24gaGFuZGxpbmcKICAgCjIwMDAtMDUtMDkgMTQ6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYWxzbyBjbGVhbiBXaW4zMiBiaW5hcnkgb2JqZWN0cywgYW5kIGNvcmUgZmlsZXMuCiAgIAoyMDAwLTA1LTA5IDE0OjM0ICBtc2xpZmNhawoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgdG91Y2ggdXAgdGhlICJjbGVhbiIgcnVsZS4KICAgCjIwMDAtMDUtMDkgMTE6MzIgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgdW50aWwgRGF2ZSdzIHZlcnNpb24gd2lucywgbmVlZCBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIGJ1aWxkIFdpbjMyIGFnZW50LgogICAKMjAwMC0wNS0wOSAxMTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGZpeCBzb21lIFdpbjMyIGJ1aWxkcyAoc2lnbmFscz8gd2UgZG9uJ3QgbmVlZCBubyBzdGVlbmtpbmcgc2lnbmFscyEpCiAgIAoyMDAwLTA1LTA5IDExOjMwICBtc2xpZmNhawoKICAgKiBsdG1haW4uc2g6CgogICBSZW1vdmUgdHJhaWxpbmcgQ1IgWzB4MGRdIGZyb20gb25lIGxpbmUuCiAgIAoyMDAwLTA1LTA5IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCiAgICAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KICAgCjIwMDAtMDUtMDkgMDg6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KOgoKICAgLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCiAgICAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KICAgCjIwMDAtMDUtMDkgMDc6NDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBTZW5kIG91dCByZS1kZWxlZ2F0ZWQgcmVxdWVzdHMKICAgCShhbmQgZml4IGEgcHJvYmxlbSB3aXRoIHNwZWNpZnlpbmcgdGhlIGVuZC1vZi1yYW5nZSB2YWx1ZSkKICAgCjIwMDAtMDUtMDkgMDc6NDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgZXJyb3IgcmVzcG9uc2UgZ2VuZXJhdGlvbgogICAJKGJ5IGFuYWxvZ3kgd2l0aCByZWNlbnQgY2hhbmdlcyB0byBzbm1wX2FnZW50LmMpCiAgIAoyMDAwLTA1LTA5IDA3OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBIYW5kbGUgQWdlbnRYICJlbmQtb2YtcmFuZ2UiIGluZGljYXRpb24uCiAgIAkoVGhpcyBpcyBub3QgdGhlIGNsZWFuZXN0IHdheSBvZiBkb2luZyB0aGluZ3MsCiAgIAkgYnV0IHdvcmtzIGZvciBub3cuICBXZSBjYW4gdGlkeSB1cCBsYXRlcikuCiAgIAoyMDAwLTA1LTA5IDA3OjE2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogVXNlIE1JQiByZWdpc3RyeSAnc3RhcnQnIHZhbHVlcwogICAJKHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBuYW1lIHJlZ2lzdGVyZWQpCiAgIAlUaGlzIGhhbmRsZXMgc3Vic2VxdWVudCBwYXJ0IG9mICdzcGxpdCcgcmFuZ2VzIHByb3Blcmx5LgogICAKMjAwMC0wNS0wOCAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEkgY2FuJ3QgYmVsaWV2ZSB0aGUgbGFzdCBjaGVja2luIGV2ZW4gY29tcGlsZWQgKGx1Y2spLgogICAKMjAwMC0wNS0wOCAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGZpeCBsaWJyYXJ5IGxpc3QuCiAgIAoyMDAwLTA1LTA1IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gKGRpc2tpby5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gZGlzayBpbyBzdXBwb3J0IGZvciBCU0QvT1MuCiAgIAoyMDAwLTA1LTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLCBhdC5jOgoKICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGZpeCBhIHplcm8gYnl0ZSBtYWxsb2MgYnVnIChtb3N0bHkgbm90aWNlZCB3aXRoIC1sZWZlbmNlKS4KICAgCjIwMDAtMDUtMDUgMDk6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAoVjQtMS0xLXBhdGNoZXMuNSksIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgogICAgIC0gLS13aXRoLWxpYndyYXAgaW1wcm92ZW1lbnRzLgogICAKMjAwMC0wNS0wNSAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4Lzogc3ViYWdlbnQuYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6CiAgICAgLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgdG8gQWdlbnRYIHByb2Nlc3NpbmcKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA1IDA4OjU4ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSBzbm1wbGliL3NubXBfY2xpZW50LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdKToKICAgICAtIE1pbm9yIGNoYW5nZXMgdG8gYXNzaXN0IHdpdGggQWdlbnRYIGRldmVsb3BtZW50CiAgIAkoVGhlc2UgbWF5IG5vdCBiZSBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwgYnV0IHRoZXkgZ2V0IHRoaW5ncyB3b3JraW5nIGFnYWluISkKICAgCjIwMDAtMDUtMDQgMTY6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtaW5vciB1bmltcG9ydGFudCAtLXdpdGhvdXQtb3BlbnNzbCBmaXguCiAgIAoyMDAwLTA1LTA0IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBhbGxvdyAtLXdpdGhvdXQtb3BlbnNzbCB0byB3b3JrLgogICAKMjAwMC0wNS0wNCAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluIChWNC0xLTEtcGF0Y2hlcy4yKSwgTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCB0aGUgRElTTUFOLVNDUklQVC1NSUIudHh0CiAgIAoyMDAwLTA1LTA0IDE2OjAxICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CiAgICAgLSBpbnN0YWxsIFVDRC1ESVNLSU8tTUlCLnR4dC4KICAgCjIwMDAtMDUtMDQgMDg6MjYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5bY2hdKTogTmV3IHJvdXRpbmUgJ3NubXBfY2xvbmVfdmFyYmluZCgpJwogICAJCShGcm9tIGEgc3VnZ2VzdGlvbiBieSBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDg6MjQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFZhcmlvdXMgbWlub3IgZml4ZXMKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDAxOjI5ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdKTogSGFuZGxlIGluZGV4L3N0YXR1cyBpbmZvcm1hdGlvbiBzZXBhcmF0ZWx5IGZyb20gUERVLgogICAJQWxzbyBtZWFucyB0aGF0IGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGFjY2VzcyB0byB2YXJpYWJsZSBpbmRleGVzCiAgIAkJKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBmcm9tIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwMTowMCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgLSAodWNkLXNubXAvcHJvYy5jKTogSW5pdGlhbGl6ZSBuZXdseSBtYWxsb2NlZCBzdHJ1Y3R1cmUKICAgCShUaGFua3MgdG8gSmVmZiBXaWxzb24gLSBzZWUgQlVHICMyMzEpCiAgIAoyMDAwLTA1LTAzIDA5OjA2ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChzbm1wX2FnZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIENsb25lIFBEVSB3aXRoaW4gaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCiAgICAgICBOZXcgcm91dGluZSAnZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24nCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wMyAwODoxNyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogV2hlbiByZXR1cm5pbmcgYW4gZXJyb3IgcmVzcG9uc2UsCiAgIAl1c2UgYSBjbGVhbiBjb3B5IG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0IFBEVS4KICAgCjIwMDAtMDUtMDMgMDg6MTQgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LltjaF0pOiBSb3V0aW5lIHRvIGhhbmRsZSB2YXJpYWJsZXMgaW5kaXZpZHVhbGx5CiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wMyAwNDozNyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogQ2hlY2sgYWNjZXNzaWJpbGl0eSBvZiBleGFjdCByZXF1ZXN0cyBiZWZvcmUgcHJvY2Vzc2luZwogICAJKGFuZCByZW1vdmUgcmVkdW5kYW50ICdnZW5lcmljJyBTRVQgaGFuZGxpbmcpCiAgIAoyMDAwLTA1LTAxIDExOjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBwcmludGluZyBvZiBCSVRTIHZhcmlhYmxlcwogICAKMjAwMC0wNS0wMSAwNjo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgICBhcHBsaWVkIHBhdGNoIGZyb20gU3RldmUgUGhlcmFuIFNub2RncmFzcyB0byBmaXggaW5jb21wYXRpYmlsaXR5IHdpdGggcGVybDUuNiByZWYgc3RyaW5naWZpY2F0aW9uCiAgIAoyMDAwLTA0LTI5IDA3OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50X3JlZ2lzdHJ5LmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSB1c2Ugc2lnYWN0aW9uIHdoZW4gYXZhaWxhYmxlLgogICAKMjAwMC0wNC0yOCAwNzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGZpeCBzaWduYWwgaGFuZGxpbmcuCiAgIAoyMDAwLTA0LTI3IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBkZi5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBkZi5jKTogaW1wbGVtZW50IGEgcmVtb3RlIGRmIGNvbW1hbmQgdmlhIHNubXAKICAgICAtIChuZWVkcyB0aGUgaG9zdCByZXNvdXJjZXMgbWliIHdvcmtpbmcgb24gdGhlIHJlbW90ZSBzeXN0ZW0pLgogICAKMjAwMC0wNC0yNyAxMDo1NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJwbSBpcyBub3cKICAgICByZXF1aXJpbmcgeWV0IGFub3RoZXIgbGlicmFyeTogbGlicG9wdC4KICAgCjIwMDAtMDQtMjYgMTU6MjAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gKE1ha2VmaWxlLnRvcCk6IHJ1biBsaWJ0b29sIC0tZmluaXNoIHdpdGhvdXQgLW4gKGdvIGFoZWFkIGFuZCBkbyB0aGUgY21kcykKICAgCjIwMDAtMDQtMjYgMTU6MTkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOgogICAgIC0gbW9yZSBsaWJ0b29sIGZpeGVzICguc28gdmVyc2lvbmluZywgcHJvcGVybHkgaW5zdGFsbC4uLikKICAgCjIwMDAtMDQtMjYgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgbWlicy9NYWtlZmlsZS5pbiwgc25tcGxpYi8uY3ZzaWdub3JlLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgogICAgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgogICAgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKICAgCjIwMDAtMDQtMjYgMTQ6MTUgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsCiAgIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBsdGNvbmZpZywgbHRtYWluLnNoLCBhZ2VudC8uY3ZzaWdub3JlLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlCiwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc211eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC8uY3ZzaWdub3JlOgoKICAgLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgogICAgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgogICAgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKICAgCjIwMDAtMDQtMjYgMDg6MTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG5ldyBzZWNvbmRhcnkgc2xvZ2FuLgogICAKMjAwMC0wNC0yNiAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IEF0dGVtcHQgdG8gcGFyc2UgdGhlIFBEVSB3aGVuIGEgcmVwb3J0IGlzCiAgICAgYmVpbmcgc2VudCBzbyB0aGF0IHRoZSByZXF1ZXN0aWQgY2FuIGJlIHVzZWQgaW4gdGhlIG91dGdvaW5nIHJlcG9ydC4KICAgICBUaGlzIHNob3VsZCBmaXggYSBwcm9ibGVtIHdoZXJlIFNOTVAgUmVzZWFyY2gncyBFbWFudGUgYWdlbnQgaXMKICAgICBkb2luZyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzIGJhc2VkIG9uIHRoZSByZXF1ZXN0X2lkICh3aGljaCBpcyBhCiAgICAgZmFpcmx5IHBvb3IgY2hvaWNlIGFzIHRoZSBtZXNzYWdlX2lkIHdvdWxkIGJlIGEgYmV0dGVyIG9uZSB0byBtYXRjaAogICAgIG9uIGluIGdlbmVyYWwgYW5kIGlzIHRoZSBvbmx5IHBvc3NpYmxlIHRoaW5nIHRvIHVzZSBpbiBjYXNlcyB3aGVyZQogICAgIHRoZSByZXBvcnQgaXMgZW5jcnlwdGVkKS4KICAgCjIwMDAtMDQtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gdGhhdCB0aGUgcGVybCBtb2R1bGUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgc291cmNlLgogICAKMjAwMC0wNC0yNSAwODoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IG1pc2MgLURkdW1wIGZpeGVzLgogICAKMjAwMC0wNC0yNSAwODowMiAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0YWJsZS5jIChWNC0xLTEtcGF0Y2hlcy40KSwgc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IGNoZWNrIGZvciBlbmQgb2YgbWliIHZpZXcgZXhjZXB0aW9ucyAodjJjLCB2MykuCiAgIAoyMDAwLTA0LTI0IDExOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogLUQgc3VwcG9ydCBmb3IgdGhvc2UgIm9sZGVyIiBwcm90b2NvbHMgdGhhdCBzaG91bGRuJ3QKICAgICBiZSB1c2VkIGFueW1vcmUgKHYxLCB2MmMpLgogICAKMjAwMC0wNC0yNCAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywKICAgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9kZWJ1Zy5jCiwgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmM6CgogICAtIChhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgLSB0aW1lc3RhbXBzIGNhbiBiZSBwcmludGVkIGFzIGEgbnVtZXJpYyBudW1iZXIgb25seSAoLU90KS4KICAgICAtIG1vcmUgY29uZmlndXJhYmxlIHBhY2tldCBkdW1waW5nIGNvZGUgZm9yIGJvdGggc2VuZCBhbmQgcmVjZWl2ZS4KICAgICAgIC0gdXNlcyBuZXcgLUQgdG9rZW5zOiBkdW1waCAoaGVhZGVycyksIGR1bXB4IChoZXgpLCBkdW1wdgogICAgICAgICAodmFsdWVzKS4gIGR1bXB4XyBhbmQgZHVtcHZfIChub3RlIHRoZSBfcykgbWFrZSBpdCBlYXQgc3BhY2UKICAgICAgICAgKGFuZCBuZXdsaW5lKSBiZWZvcmUgdGhlIHNlZ21lbnQgaW4gcXVlc3Rpb24uICBUcnkgLURkdW1wIHRoZW4KICAgICAgICAgLURkdW1waCxkdW1wdl8gdG8gc2VlIGV4YW1wbGVzLgogICAgICAgLSB0b2RvOgogICAgICAgICAtIGJldHRlciBob3Jpem9udGFsbHkgZm9ybWF0ZWQgaW5mb3JtYXRpb24gKHByb2JhYmx5IHVzaW5nICIlTlVNcyIpLgogICAgICAgICAtIFVTTSBpcyBjYWxsZWQgYWZ0ZXIgcGR1IGJ1aWxkaW5nIChtYWtlcyBzZW5zZSBidXQgaXMgYmFja3dhcmRzCiAgICAgICAgICAgdmlzdWFsbHkgaW4gdGhlIGR1bXBlZCBwYWNrZXQpLgogICAgICAgICAtIG9wdGlvbiB0byBzdHJpcCBkYXRhdHlwZSB0b2tlbiAoaWUgSW50ZWdlcjopLgogICAKMjAwMC0wNC0yNCAwOTozNyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMCApCiAgIAoyMDAwLTA0LTI0IDA5OjEzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFWFQuNC4yLnByZTAgKQogICAKMjAwMC0wNC0yMSAxNDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB3YWxrLmMgKFY0LTEtMS1wYXRjaGVzLjEpLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IGZpeCBHRVQgY2FsbCBmb3IgYW4gc25tcHdhbGsuICh3YXMgdXNpbmcgYSBHRVRORVhUIFBEVSwgYWNrKS4KICAgCjIwMDAtMDQtMjEgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IG1vcmUgdV9sb25nIC0+IHNpemVfdCBmb3IgZW5naW5lSUQgbGVuLgogICAKMjAwMC0wNC0yMSAwODoxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jIChWNC0xLTEtcGF0Y2hlcy41KSwgbWliLmM6CgogICAtIChtaWIuYyk6IGZpeCBmcHJpbnRfZGVzY3JpcHRpb24gdG8gY2hlY2sgZm9yIG51bGwgc3VidHJlZXMuCiAgIAoyMDAwLTA0LTIxIDA4OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogdXNlIHNpemVfdCBmb3IgZW5naW5laWQgbGVuZ3Rocy4KICAgCjIwMDAtMDQtMTkgMTE6MDIgIG1hcnoKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBjaGFuZ2VkIG1vZGVfdCB0eXBlZGVmIHRvIGFncmVlIHdpdGggd2hhdCBBY3RpdmVTdGF0ZSBwZXJsIHVzZXMgKGFueW9uZSBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoaXM/KQogICAKMjAwMC0wNC0xOSAxMDo1OSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZGVkIE1hcmMgTGVobWFuIHBhdGNoIHRvIGVuc3VyZSBhbGxvYy9kZWFsbG9jIHVzZSBzYW1lIG1lY2hhbmlzbSAocGVybCB2cy4gc3lzdGVtIGRlZmF1bHQpCiAgIAoyMDAwLTA0LTE5IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGFsd2F5cyBibG9jayBpZiBjYWxsZXIgcmVxdWVzdGVkIGl0LgogICAKMjAwMC0wNC0xOSAwNDozNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIG1vdmUgc3RhdGljIGRlY2wgdG8gLmM7bWlub3IgY2FzdGluZyBhYm91dCB0byBzdXBwb3J0IGFDQwogICAKMjAwMC0wNC0xOCAxMToxMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFN5bmNoIGRldmVsIGJyYW5jaCB3aXRoIHBhdGNoZXMgYnJhbmNoLgogICAKMjAwMC0wNC0xOCAxMTowNyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgogICAoVjQtMS0xLXBhdGNoZXMuWzMsMywzLDIsMywyXSksIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIERlZmluZSBvcHRhcmcgZm9yIGFwcHMgdXNlOyBEZWZpbmUgdmFjbV9pc19jb25maWd1cmVkIGZvciBhZ2VudCB1c2UuCiAgIAoyMDAwLTA0LTE4IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtICh2bXN0YXQuYywgdm1zdGF0LmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1penVraSBIb25kYToKICAgICAtIGltcGxlbWVudCByYXcgY3B1IHVzYWdlIG51bWJlcnMuCiAgIAoyMDAwLTA0LTE4IDAzOjE4ICBkYXZlcwoKICAgKiBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmMgKFY0LTEtMS1wYXRjaGVzLlsxLDNdKSwKICAgbWFuL3NubXB0YWJsZS4xLCBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAobWFuL3NubXB0YWJsZS4xIGFwcHMvc25tcHRhYmxlLmMpOgogICAgIC0gQ29tbWFuZC1zcGVjaWZpYyAnLUMnIG9wdGlvbnMgZm9yIHNubXB0YWJsZQogICAKMjAwMC0wNC0xOCAwMjowMSAgZGF2ZXMKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jIChWNC0xLTEtcGF0Y2hlcy40KSwgc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6IEhhbmRsZSBwcmV2aW91cyBmb3JtIG9mIC1aIG9wdGlvbiBhcyB3ZWxsCiAgIAoyMDAwLTA0LTE3IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmaXggLVogaWYgYXJncyBhcmUgd3JvbmcuCiAgIAoyMDAwLTA0LTE3IDE1OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IGZpeCAtWiB0byB1c2UgYSAnLCcuCiAgIAoyMDAwLTA0LTE3IDE1OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaAo6CgogICAtIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBQYXRjaCBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgogICAgIC0gdXBkYXRlIG9uIHRoZSBzZW5kbWFpbCBtb2R1bGUuCiAgIAoyMDAwLTA0LTE3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgdm1zdGF0LmMKOgoKICAgLSAodm1zdGF0LmMpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKICAgICAtIGZpeCBzc0NwdVN5c3RlbSwgc3NDcHVVc2VyLCBzc0NwdUlkbGUuCiAgIAoyMDAwLTA0LTE3IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluKTogcHJvcGVybHkgdXNlIExOX1MgZm9yIGxpbmtpbmcgc25tcGluZm9ybS4KICAgCjIwMDAtMDQtMTcgMTM6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oKTogZW5naW5lSUQgY2hhbmdlcyBmb3IgYmV0dGVyIGFDQyBzdXBwb3J0LgogICAKMjAwMC0wNC0xNyAxMzo0NCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBzbm1waW5mb3JtLgogICAKMjAwMC0wNC0xNyAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogZml4IHJvdyBjcmVhdGlvbi4KICAgCjIwMDAtMDQtMTcgMDc6MjUgIGRhdmVzCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBzbm1wZC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMKICAgKFY0LTEtMS1wYXRjaGVzLlsyLDMsMl0pLCBhdXRvX25saXN0LmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyBzbm1wZC5jIGFnZW50eC9tYXN0ZXIuYyk6IERvbid0IGV4aXQgb24gZmFpbHVyZSB3aXRoICctcicKICAgCjIwMDAtMDQtMTQgMTU6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBnZXQuMSwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXBjbWQuMSwgc25tcGdldC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKICAgICAtIG1vdmUgLUlmIHRvIC1DZiBhbmQgaW52ZXJ0IGJlaGF2aW91ci4KICAgCjIwMDAtMDQtMTQgMTU6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgZGVidWdnaW5nIG91dHB1dCAob3BwcykuCiAgIAoyMDAwLTA0LTE0IDA5OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZlcnNpb25pbmZvLmMgKFY0LTEtMS1wYXRjaGVzLjIpLAogICB2ZXJzaW9uaW5mby5jOgoKICAgLSAodmVyc2lvaW5mby5jKTogYWxyaWdodC4gIFdobyBtYWRlIHZlcnNpb25DbGVhckNhY2hlIFJPTkxZPwogICAKMjAwMC0wNC0xMyAwNTo0OSAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIHNubXB0cmFuc2xhdGUuMTogZGVjdW1lbnQgdGhlIC13IHdpZHRoIG9wdGlvbgogICAKMjAwMC0wNC0xMiAxMjowNSAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydCAoVjQtMS0xLXBhdGNoZXMuMSksIGJ1Zy1yZXBvcnQ6CgogICBoaWRlIHVzZXIncyBob3N0bmFtZTsgcHJvbXB0IGJlZm9yZSBzZW5kaW5nIGUtbWFpbDsgcHJvbXB0IHRvIHNhdmUgYXMgZmlsZS4KICAgCjIwMDAtMDQtMTIgMTE6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYyAoVjQtMS0xLXBhdGNoZXMuMyksIG1pYi5jOgoKICAgZml4ICVmKCVzKQogICAKMjAwMC0wNC0xMiAwOToyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUlmLgogICAKMjAwMC0wNC0xMiAwOToxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcHV0ICsrIGJhY2sgaW4gdGhhdCBhY2NpZGVudGljYWxseSBnb3QgY2hlY2tlZCBpbi4KICAgCjIwMDAtMDQtMTIgMDk6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSAoc25tcHNldC5jKTogcHV0IHNwYWNlIGJhY2sgaW4gdXNhZ2UgbGluZS4KICAgCjIwMDAtMDQtMTIgMDk6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgogICAgIC0gQWRkIGEgbmV3IG9wdGlvbiAtSWYgdG8gc3BlY2lmeSBmaXhpbmcgb2YgUERVcy4KICAgICAgIC0gQW55b25lIGtub3cgYSBiZXR0ZXIgcGxhY2UgdG8gcHV0IHRoaXMgb3B0aW9uPwogICAgIC0gQXBwbGljYXRpb25zIGRvbid0IGRvIHRoaXMgYnkgZGVmYXVsdCBhbnltb3JlLCBhbmQgeW91IGNhbid0IGluIHNubXBzZXQuCiAgIAoyMDAwLTA0LTEyIDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY20uYywgdmFjbS5oKTogZml4IHRvIGFsbG93IG5vIHYxL3YyYyByZXF1ZXN0cyB3aGVuCiAgICAgY29uZmlndXJlZCBmb3IganVzdCB2My4KICAgCjIwMDAtMDQtMTIgMDY6NDkgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgogICAoVjQtMS0xLXBhdGNoZXMuWzEsMV0pLCB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIGZpeCBNU1ZDIGJ1aWxkIGZvciBlbmNvZGVfa2V5Y2hhbmdlLCBhbmQgYWRkIG1vcmUgc3ltYm9scyBmb3IgcmVsZWFzZSBidWlsZHMKICAgCjIwMDAtMDQtMTIgMDU6MzIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGNvcnJlY3QgcGFyc2luZyBvZiBzdWItdHlwZXMgdGV4dHVhbCBjb252ZW50aW9ucy4gQWxsb3cgcGFyc2luZwogICAJb2YgTUFDUk8gaW52b2NhdGlvbnMgZm9yIHN0YW5kYXJkIHN5bWJvbHMKICAgCjIwMDAtMDQtMTIgMDU6MzEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIHBhcnNlLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiB3aXRoIGZvciAtVHAKICAgCjIwMDAtMDQtMTIgMDU6MzAgIG5iYQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0CjoKCiAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0OiBhbGlnbiB3aXRoIHB1Ymxpc2hlZAogICAJUkZDIDI3OTAKICAgCjIwMDAtMDQtMTEgMTU6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtYWtlIGNvbmZpZ19hZGRfbWliKCkgYWN0dWFsbHkgbG9vayBmb3IKICAgICB0aGUgbWliIGluICRzcmNkaXIvbWlicy9ibGFoIGFuZCBpbnN0YWxsIGl0IGlmIGZvdW5kLgogICAKMjAwMC0wNC0xMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IG1ha2UgbWFjYWRkciBlbmdpbmVpZCBzZXR1cCBub3QgbGludXgKICAgICBzcGVjaWZpYywgYnV0ICNkZWZpbmVzIGFyZSBjaGVja2VkIGluc3RlYWQuCiAgIAoyMDAwLTA0LTExIDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoc25tcF9sb2dnaW5nLmgpOiByZW1vdmUgb2xkIGNhbGxiYWNrIHR5cGVkZWYgbm8gbG9uZ2VyIG5lZWRlZC4KICAgCjIwMDAtMDQtMTEgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKICAgICAtIGVuYWJsZSBlbmdpbmVJRCB0byBiZSBzZXQgZnJvbSBNQUNBZGRyLgogICAKMjAwMC0wNC0xMSAwOTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgKOgoKICAgLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogTmV3IG1vZHVsZSBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgogICAgIC0gaW1wbGVtZW50cyB0aGUgTVRBLU1JQiBmb3IgbW9uaXRvcmluZyBzZW5kbWFpbC4KICAgCjIwMDAtMDQtMTEgMDk6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0OgoKICAgLSAoTVRBLU1JQi50eHQsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dCk6IG5ldyBtaWJzIGZvciBuZXcgbW9kdWxlcy4KICAgCjIwMDAtMDQtMTEgMDM6MjUgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFNhdmUvcmVzdG9yZSBvcmlnaW5hbCBzdGF0UCB2YWx1ZSBmb3IgU0VUIGhhbmRsaW5nLgogICAKMjAwMC0wNC0xMSAwMjozNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXBvcnQgZmFpbHVyZXMgZnJvbSBBQ1RJT04gcGhhc2Ugb2YgU0VUIGNvcnJlY3RseS4KICAgCjIwMDAtMDQtMTEgMDE6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjMpLAogICBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEeW5hbWljYWxseSByZXNpemUgc3ViYWdlbnQgcmVxdWVzdHMKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA0LTEwIDA1OjA4ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMKICAgKFY0LTEtMS1wYXRjaGVzLlswLDJdKSwgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBtdWx0aS1zdWJhZ2VudCByZXF1ZXN0cwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDQtMDcgMTI6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9zbm1wdXNtLmMgKFY0LTEtMS1wYXRjaGVzLlsyLDJdKSwKICAgYXBwcy9zbm1wdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB0cmFwLmMsIHNubXB1c20uYyk6CiAgICAgLSBmaXggc25tcHYzIHRyYXBzIHRvIGJlIGF1dGhvcml0YXRpdmUgZnJvbSB0aGUgY2xpZW50IHNpZGUsIG5vdCB0aGUKICAgICAgIHJlY2VpdmVyIHNpZGUuICBzbm1wdjMgaW5mb3JtcyBzdGF5IGFzIGlzLiAgVW5mb3J0dW5hdGVseSwgZm9yCiAgICAgICBjb21tYW5kIGxpbmUgYXBwcyB0aGlzIGRvZXNuJ3QgbWFrZSBhIHdob2xlIGxvdCBvZiBzZW5zZSBidXQgaXMKICAgICAgIHJpZ2h0IGluIHRlcm1zIG9mIGhvdyB0aGUgcHJvdG9jb2wgd29ya3MgYW5kIHRoaXMgaXMgaGVuY2UKICAgICAgIHNvbWV3aGF0IG9mIGEgaGFjay4KICAgCjIwMDAtMDQtMDcgMDc6NTAgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy45KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSGFuZGxlIHYyIGV4Y2VwdGlvbiB0eXBlcyBpbiB2MSBxdWVyaWVzCiAgIAoyMDAwLTA0LTA3IDA3OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcHYzLmMKICAgKFY0LTEtMS1wYXRjaGVzLls0LDIsM10pLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdHJhcGQuYywgcmVhZF9jb25maWcuYywgc25tcHYzLmMpOgogICAgIC0gYWxsb3cgTlVMTCBoZWxwIGxpbmVzIGZvciBjb25maWcgZGlyZWN0aXZlcyBhbmQgdXNlIGl0IHRvIGhpZGUKICAgICAgIGludGVybmFsIGRpcmVjdGl2ZXMgdXNlZCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlLgogICAKMjAwMC0wNC0wNiAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIHR1cm4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgbWFjcm9zIGJhY2sgaW50byBmdW5jdGlvbnMgc28KICAgICAgIGRlZmF1bHRfc3RvcmUuaCBkZXBlbmRlbmNpZXMgZ28gYXdheSBhZ2Fpbi4KICAgICAtIGNyZWF0ZSBhIGZsYWcgdG8gbm90IHByb2JlIGZvciBlbmdpbmVJRHMgZHVybmluZyBzZXNzX29wZW4oKS4KICAgCjIwMDAtMDQtMDYgMDc6MjAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEZpeCBtaXNoYW5kbGVkIENvdW50ZXI2NCBwYXJzaW5nCiAgIAoyMDAwLTA0LTA2IDAzOjM2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IEZpeCB1c2FnZSBtZXNzYWdlIGFsaWdubWVudC4KICAgCjIwMDAtMDQtMDYgMDM6MzEgIGRhdmVzCgogICAqIG1hbi86IHNubXBkLjEuZGVmIChWNC0xLTEtcGF0Y2hlcy4xKSwgc25tcGQuMS5kZWY6CgogICAtIChtYW4vc25tcGQuMS5kZWYpOiBEb2N1bWVudCB0aGUgQWdlbnRYIHNvY2tldCBjb21tYW5kLWxpbmUgb3B0aW9uCiAgIAoyMDAwLTA0LTA1IDA4OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIC0gKEZBUTJIVE1MKTogaXQncyBiZWVuIHNpdHRpbmcgaW4gbXkgcGVyc29uYWwgc3JjIHRyZWUgZm9yID4gMiB5ZWFycy4KICAgCjIwMDAtMDQtMDUgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwo6CgogICAtIChtaWJpbmNsLmgsIHVzbVVzZXIuYywgc25tcHRyYXBkLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcHVzbS5jLCBzbm1wdXNtLmgsIHNubXB2My5jKToKICAgICAtIG1ha2Ugc25tcHRyYXBkIGhhbmRsZSB2MyB1c2VycyBwcm9wZXJseSwgKGFuZCBzaHV0ZG93biBwcm9wZXJseSBhcyB3ZWxsKS4KICAgICAtIGEgbW9yZSBnZW5lcmljIHVzZXIgc3RvcmFnZSByb3V0aW5lIGFkZGVkIHRvIHNubXB1c20uYyBhbmQgdXNlZCBpbgogICAgICAgdXNtVXNlci5jIHdpdGggYSBzaWRlIGVmZmVjdCBvZiBuZWVkaW5nIGNhbGxiYWNrLmggYWJvdmUgc25tcHVzbS5oLgogICAKMjAwMC0wNC0wNSAwODoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICAtIChyc25tcCk6IC0+IC91c3IvYmluL3BlcmwKICAgCjIwMDAtMDQtMDUgMDg6MjQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogbWlzYyBtaW5vciBhZGRpdGlvbnMgdG8gLwogICAKMjAwMC0wNC0wNCAxMTowMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjgpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgdW5pbXBsZW1lbnRlZCBvYmplY3RzIHJldHVybiAnbm9TdWNoT2JqZWN0JwogICAKMjAwMC0wNC0wMyAxNDo1NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5pdGlhbGl6ZSBzdGF0UC4KICAgCjIwMDAtMDQtMDMgMDk6MTIgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIGEgdjEgU0VUIHJldHVybnMgYSB2MSBlcnJvciBzdGF0dXMuCiAgIAoyMDAwLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBZZWFyIHdhcyAiMTAwIiBmb3IgMjAwMCAobm90aWNlZCBieSBKYXkgUmlkZGVsbCk6CiAgIAoyMDAwLTA0LTAzIDA3OjUzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBTRVRzIGZhaWwgaWYgb25lIHZhcmJpbmQgZG9lcy4KICAgCjIwMDAtMDMtMzEgMDc6MjUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IHRvIHJlcG9ydCAnbm9TdWNoT2JqZWN0JyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKICAgCjIwMDAtMDMtMzEgMDc6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERvbid0IHJlcGVhdCB0aGUgZmlyc3QgZm91ciBieXRlcyBpbiBhIFBEVSBkdW1wCiAgIAoyMDAwLTAzLTMxIDA3OjA0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wX2xvZ2dpbmcuYwo6CgogICAtIChzbm1wbGliL3NubXBfbG9nZ2luZy5jKTogSGFuZGxlIGxvZ2dpbmcgZW1wdHkgc3RyaW5ncyAoZS5nLiBhIG51bGwgaW5kZW50KQogICAKMjAwMC0wMy0zMCAwMDoxNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjUpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBJbml0aWFsaXNlIHRpbWVvdXQgc3RydWN0dXJlIHByb3Blcmx5CiAgIAkoVGhhbmtzIHRvIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKICAgCjIwMDAtMDMtMjcgMTA6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgaHJfc3dydW4uYwo6CgogICByZW1vdmUgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGhyU1dSdW5OYW1lIHZhbHVlcy4KICAgCjIwMDAtMDMtMjQgMDk6MDkgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1waW5mb3JtLjE6CgogICB0byBzeW5jIHdpdGggcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAwLTAzLTI0IDA1OjA3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGNvcnJlY3RseSBmcmVlIHRoZSByZXBvbnNlIGlmIHNlbmRpbmcgaXQgZmFpbHMKICAgCjIwMDAtMDMtMjQgMDQ6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHh4X3N5bmNoX3Jlc3BvbnNlOiBhdm9pZCBmcmVlaW5nIFBEVSB0d2ljZS4KICAgCjIwMDAtMDMtMjMgMjM6MjkgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcC4xCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jOgoKICAgLSBzbm1wY21kLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwLmMsIE1ha2VmaWxlLmluOiBJbnN0YWxsIGFuZCBkb2N1bWVudAogICAJc25tcGluZm9ybS4KICAgCjIwMDAtMDMtMjMgMDk6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVucXVldWUgb25seSBjb21wbGV0ZSByZXF1ZXN0X2xpc3QgZW50cnk7IFJlZHVjZSBzY29waW5nIG9mIGNhbGxiYWNrIHZhcnMuCiAgIAoyMDAwLTAzLTIzIDAzOjAyICBuYmEKCiAgICogbWFuL3NubXBpbmZvcm0uMToKCiAgIGZpbGUgc25tcGluZm9ybS4xIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wMy0yMiAwODoxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgcHJpbnRmID8KICAgCjIwMDAtMDMtMjEgMTE6MTIgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbW9kaWZ5IEYuIFN0cmF1c3MnIHBhdGNoIHBlciBOLiBCYWdnZXNlbidzIHN1Z2dlc3Rpb246IHJlbW92ZSBleHBvcnQtZHluYW1pYy4KICAgCjIwMDAtMDMtMjEgMDk6MTQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgbW9yZSBzbW9vdGggc2FpbGluZyB3aXRoIFdpbjMyIC5ETEwgLiBETExFWFBPUlQsIGFueW9uZSA/CiAgIAoyMDAwLTAzLTIxIDA5OjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwo6CgogICB3aW4zMiBidWlsZCBjaGVjazogbm8gc2lnYWN0aW9uLCBTSUdDTEQgZGVmaW5lZC4KICAgCjIwMDAtMDMtMjEgMDg6NDcgIGRhdmVzCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCwgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGRzX2FnZW50Lmggc25tcGQuYyBtaWJncm91cC9hZ2VudHgve21hc3RlcixzdWJhZ2VudH0uYyk6CiAgICAgLSAgQ29tbWFuZC1saW5lIG9wdGlvbiBmb3Igc3BlY2lmeWluZyBBZ2VudFggcG9ydAogICAgICAgIChiYXNlZCBvbiBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAwLTAzLTIxIDA4OjM4ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogU3VwcG9ydCAnaG9zdDpwb3J0JyByZXByZXNlbnRhdGlvbiBvZiBwZWVybmFtZXMKICAgCjIwMDAtMDMtMjEgMDQ6MDUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy40KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogTWlzc2luZyBuZXctbGluZSBvbiBkZWJ1ZyBvdXRwdXQKICAgCjIwMDAtMDMtMjEgMDI6NTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwLmMsIHRjcC5oLCB0Y3BUYWJsZS5jCiwgdGNwVGFibGUuaCwgdWRwLmMsIGljbXAuYywgdWRwLmgsCiAgIHVkcFRhYmxlLmMsIHVkcFRhYmxlLmgsIGljbXAuaCwgaXAuYywKICAgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkve3RjcCx1ZHAsaXAsaWNtcH0qKSBDb250aW51aW5nIG1pYklJIGNvZGUgY2xlYW51cAogICAKMjAwMC0wMy0yMCAxMToxNCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENvbW1lbnQgLUMgLS0gZG8gbm90IHVzZSB0aGlzIGZsYWcuCiAgIAoyMDAwLTAzLTE3IDE1OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNpemVvZih4KSoobGVuKzEpIG5vdCBzaXplb2YoeCkqbGVuKzEKICAgCjIwMDAtMDMtMTYgMDA6MTAgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIC0gY29uZmlndXJlLCBocl9wcmludC5jOiBkZXRlY3Qgc3lzdGVtIHByaW50ZXJzIChTeXNWL2xwc3RhdCwgKkJTRC9jZ2V0bmV4dCwKICAgCUxpbnV4L3ByaW50Y2FwKQogICAKMjAwMC0wMy0xNSAxODozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFNlY29uZCBwYXJ0OiBhbGwgbWVtYmVycyBvZiBzdHJ1Y3Qgc25tcF9pbmRleCBhcmUgcG9pbnRlcnMuCiAgIAoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHdpdGggdW5yZWdpc3Rlcl9pbmRleC4KICAgCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xlYW5pbmcgdXAgdHJhcCB2YXJpYWJsZXMuCiAgIAoyMDAwLTAzLTE1IDA4OjQ4ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IEluaXRpYWxpc2UgdmFyYmluZCBkYXRhIGhvb2sgZWxzZXdoZXJlIGFzIHdlbGwuCiAgIAoyMDAwLTAzLTE1IDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jIChWNC0xLTEtcGF0Y2hlcy4xKSwKICAgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGluZmluaXRlIGxvb3AgcHJvYmxlbSB3aGVuIHdhbGtpbmcgc3ViYWdlbnQuCiAgIAoyMDAwLTAzLTE1IDA2OjA5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBBdm9pZCBjYWxsaW5nIHJlYWQgcm91dGluZSBmb3IgZWFjaCBTRVQgaGFuZGxpbmcgcGFzcy4KICAgCU4uQjogIFRoaXMgaGFzbid0IGJlZW4gdGVzdGVkIHdpdGggQWdlbnRYIHN1YmFnZW50cyB5ZXQKICAgCjIwMDAtMDMtMTUgMDY6MDcgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUHJvdmlkZSBob29rIGZvciBpbnRlcm5hbCB2YXJiaW5kLXJlbGF0ZWQgZGF0YQogICAKMjAwMC0wMy0xNSAwNToyMiAgZGF2ZXMKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnQvdmFyX3N0cnVjdC5oKTogVXNlIGEgc2luZ2xlIG1hZ2ljIG51bWJlciBmb3IgTUlCIHJlZ2lzdHJ5IG5hbWUgbGVuZ3Rocy4KICAgCjIwMDAtMDMtMTUgMDE6NTEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzeXN0ZW0uaCAoVjQtMS0xLXBhdGNoZXMuMSksIHN5c3RlbS5oOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uaCk6IERvbid0IGRlY2xhcmUgZ2V0dGltZW9mZGF5KCkgaWYgdGhlIHN5c3RlbSBwcm92aWRlcyBpdC4KICAgCShGaXggcHJvdmlkZWQgYnkgUm9uIE1ldmlzc2VuKQogICAKMjAwMC0wMy0xNCAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjMpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgc3RhdHVzIHdoZW4gY2hlY2tpbmcgYWNjZXNzLgogICAKMjAwMC0wMy0xNCAwNzo1MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXR1cm4gYSByZXNwb25zZSwgZXZlbiBpZiB0aGUgcmVxdWVzdCBmYWlsZWQuCiAgIAoyMDAwLTAzLTEzIDE1OjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIGlwZndhY2MuaDogZml4IHRoZSBNSUIgbmFtZQogICAKMjAwMC0wMy0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogYXV0b2NvbmYgcnVuCiAgIAoyMDAwLTAzLTEwIDExOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9NYWtlZmlsZS5kbG1vZDoKCiAgIC0gKE1ha2VmaWxlLmRsbW9kKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZGxtb2QgYnVpbGQgTWFrZWZpbGUgZXhhbXBsZS4gIE5lZWRzIGluY29ycGVyYXRpb24gd2l0aCBtYWluIGNvbmZpZ3VyZS4KICAgCjIwMDAtMDMtMTAgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogYmV0dGVyIHNpZ25hbCBjaGVjayBmcm9tIE1pY2hhZWwgU2xpZmNhawogICAKMjAwMC0wMy0xMCAxMDo1OSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogdHlwbyBmb3VuZCBieSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoyMDAwLTAzLTEwIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9VQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKGRsbW9kLmMsIGRsbW9kLmgsIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbQogICAgIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBSZWltcGxlbWVudGF0aW9uIG9mIHRoZSBkbG1vZCBtaWIgbW9kdWxlOgogICAgICAgbyBtaWJncm91cC9taXNjL2RsbW9kICsgZGxtb2RzL2RsbW9kX21pYiAtPiBtaWJncm91cC91Y2Qtc25tcC9kbG1vZAogICAgICAgbyBmaXhlZCByZWdpc3RyYXRpb24gKHVjZGF2aXMudWNkRXhwZXJpbWVudGFsLjE0IGluc3RlYWQgb2YgdWNkYXZpcy4xNCkKICAgICAgIG8gYWRkZWQgY29uZmlndXJlIHN0dWZmIGZvciBIQVZFX1NOUFJJTlRGLCB3aGljaCB3YXMgdXNlZCBieSBkbG1vZC5jCiAgICAgICBvIHJlbW92ZWQgYF9keW5hbWljXycgcHJlZml4ZXMgZnJvbSBpbml0L2RlaW5pdCBmdW5jdGlvbnMKICAgICAgIG8gbWFkZSBkbG1vZEluZGV4IG5vdC1hY2Nlc3NpYmxlIChvbmx5IGltcGxlbWVudGF0aW9uLCBub3QgZGVmaW5pdGlvbikKICAgICAgIG8gcmVtb3ZlZCB0aGUgYXNuX3BhcnNlX1hYWCBzdHVmZgogICAgICAgbyBtYWRlIGVudHJpZXMgd2l0aCBzdGF0ZSBgZXJyb3InIGFibGUgdG8gYWNjZXB0IHN0YXRlIGBsb2FkJwogICAgICAgbyBtYWRlIHRoZSB3b21iYXQgZXhhbXBsZSB1c2FibGUgYXMgc3RhdGljIGFuZCBkeW5hbWljIG1vZHVsZQogICAgICAgbyBhZGRlZCBzaW1wbGUgY29uZmlnX3BhcnNlIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIHdvbWJhdCBleGFtcGxlCiAgIAoyMDAwLTAzLTEwIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIHNpZ25hbCByZWdpc3RyeSBzeXN0ZW0gaW1wbGVtZW50ZWQgKG5lZWRzIHRvIGJlIHJlZG9uZSBhbGxvd2luZwogICAgICAgbXVsdGlwbGUgY2FsbGJhY2tzIGFuZCBoYW5kbGVycyBmb3IgYWxsIHNpZ25hbHMpLgogICAgIC0gYXJiaXRyYXJ5IGZpbGUgZGVzY3JpcHRvci9zb2NrZXQgcmVnaXN0cmF0aW9uLgogICAgICAgLSB0aGlzIGlzIG5vdCB0aGUgd2F5IGl0IHNob3VsZCBiZSBkb25lICh1c2Ugc2Vzc2lvbnMgaW5zdGVhZCkuCiAgIAoyMDAwLTAzLTEwIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgICAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBjbGVhbiB1cCBzaGFyZWQgbGlicmFyeSB1c2FnZS4KICAgCjIwMDAtMDMtMTAgMTA6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJlLWFycmFuZ2VkIHNvbWUgc3R1ZmYuCiAgIAoyMDAwLTAzLTA3IDExOjU4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbW9yZSB0b3VjaHVwcyB0byBhbGxvdyBVbml4V2FyZSBidWlsZCB0byBjb21wbGV0ZS4KICAgCjIwMDAtMDMtMDcgMTE6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oKTogbWFrZSBNQVhfU1VCSURTIGxhcmdlciBhbmQgYSBtdWx0aXBsZSBvZiA4LgogICAKMjAwMC0wMy0wNyAxMDoxMyAgbXNsaWZjYWsKCiAgICogRkFRLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEludHJvZHVjZSAtLWVuYWJsZS1taW5pLWFnZW50IHRvIGNvbmZpZ3VyZSBhZ2VudCAoc25tcHYzLCBubyBtaWJJSSBpbnRlcmZhY2VzKS4KICAgCjIwMDAtMDMtMDcgMDk6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBhc3N1bWUgInNubXBhcHAiIGlmIG5vIGFyZyBwYXNzZWQgdG8gaW5pdF9zbm1wdjMuCiAgIAoyMDAwLTAzLTA3IDA4OjU4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlbW92ZSBpbml0X21pYigpIGNhbGwgLSBub3QgYXBwcm9wcmlhdGUgaGVyZS4KICAgCjIwMDAtMDMtMDcgMDg6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIExldCB0aGUgYWl4NCBwYXRjaCB3b3JrLgogICAKMjAwMC0wMy0wNyAwNzowOCAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgdHJpbSBmYXQgZnJvbSByZWNlbnQgY2hlY2staW5zLgogICAKMjAwMC0wMy0wNiAyMDowMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW46CgogICBjbGVhbmVkIHVwIFNDTyBVbml4V2FyZSBidWlsZC4KICAgCjIwMDAtMDMtMDYgMTY6NDAgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLAogICBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHN0YXJ0IHN1cHBvcnQgZm9yIFNDTyBVbml4V2FyZSA1IGFzIHN2cjUuCiAgIAoyMDAwLTAzLTA2IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBkb24ndCBjaGVjayByYW5nZXMgaWYgbm90IHJlcXVlc3RlZC4KICAgCjIwMDAtMDMtMDYgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBkLmMKOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGZpeCBleGl0KClpbmcgYmVoYXZpb3VyIGluIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgogICAKMjAwMC0wMy0wNiAxMDozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSAtbiBwcmludHMgbnVtZXJpYyBJUCBhZGRycy4KICAgCjIwMDAtMDMtMDYgMTA6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgKOgoKICAgLSAoY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogSWRlYSBmcm9tIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbToKICAgICAtIGNhbGxiYWNrIGZ1bmN0aW9uICh1c2luZyBjYWxsYmFjay5oKSBhZGRlZCBmb3IgZXh0ZXJuYWwgbG9nZ2luZy4KICAgCjIwMDAtMDMtMDUgMDU6MjUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBmaXggdG8gcHJlc2VydmUgdHJhaWxpbmcgbXVsdGkgY29tcG9uZW50IGluc3RhbmNlIGlkJ3MgYXQgdGhlIGVuZCBvZgogICBzeW1ib2xpYyBtaWIgbmFtZXMoZS5nLiwgZm9vLjYuNykgd2hlbiBkb2luZyB0cmFuc2xhdGVPYmouCiAgIAoyMDAwLTAzLTA0IDExOjM0ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOiBzdXBwb3J0IC0td2l0aG91dC1vcGVuc3NsLCBldmVuIGlmIE9wZW5TU0wKICAgCWlzIGF2YWlsYWJsZQogICAKMjAwMC0wMy0wNCAxMTozMCAgbmJhCgogICAqIGFnZW50Lzoga2VybmVsLmMsIGtlcm5lbC5oLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMKOgoKICAgLSBhZ2VudC8odmFyaW91cyk6IGdsb2JhbGl6ZSB0aGUga3ZtX3QgKmtkIHZhcmlhYmxlCiAgIAoyMDAwLTAzLTA0IDExOjI2ICBuYmEKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gbWliX21vZHVsZXMuYywgaHJfc3RvcmFnZS5jOiBwcmUtcHJvY2Vzc29yICMgc2hvdWxkIGJlIGluIGNvbHVtbiAxCiAgIAoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQuYywgaW5ldDYuYzoKCiAgIC0gaW5ldC5jLCBpbmV0Ni5jOiBzdXJ2aXZlIC12IDJjIGV4Y2VwdGlvbiByZXBsaWVzCiAgIAoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiByZW1vdmUgYSBzdXBlcmZsdW91cyAmIGluIGZyb250IG9mIGFuIGFycmF5CiAgIAoyMDAwLTAzLTA0IDExOjE1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jCiwgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwgdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYwosIHVjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmg6CgogICAtIHVjZF9zbm1wLmgsIHttZW1vcnksdm1zdGF0fV9uZXRic2QxLltjaF06IHN1cHBvcnQgZm9yIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMToxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IGZpeGVzIGZvciBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSB2ZXJzaW9uaW5mby5jOiBkb24ndCByZXR1cm4gdGhlIHRyYWlsaW5nIG5ld2xpbmUKICAgCjIwMDAtMDMtMDQgMTE6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIGhyX3N3cnVuLmM6IGZpeCBwcm9jZXNzIHNpemUgZm9yIEZyZWVCU0QgMyBhbmQgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjA1ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgLSBhZ2VudF90cmFwLmg6IGZpeCBhIHdyb25nIHByb3RvdHlwZQogICAKMjAwMC0wMy0wNCAxMTowNCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBmaXggcHJvYmxlbXMgcHJpbnRpbmcgdGFibGUgbmFtZSBhbmQgaGVhZGVycyB3aGVuIHVzaW5nCiAgIAktT1MgZm9ybWF0CiAgIAoyMDAwLTAzLTAyIDExOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBmaXggYWRkcmVzcyBsZW5ndGggaW5mbyBmb3IgdGNwIGNvbm5lY3QKICAgCjIwMDAtMDMtMDIgMTE6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIGxvYWRhdmUuYzogZml4IGZvciBBSVggNAogICAKMjAwMC0wMy0wMiAwODozMCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcC5jLCBpcEFkZHIuYywgaXBBZGRyLmgKLCBpcC5oOgoKICAgLSAobWliMi9pcC5bY2hdIG1pYjIvaXBBZGRyLltjaF0pOiBGaXJzdCBzdGFiIGF0IHRpZHlpbmcgdXAgbWliMiBzdXBwb3J0LgogICAKMjAwMC0wMy0wMSAwODozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICBmaXggYnVnIDE4MCBmb3IgY3lnd2luIGJ1aWxkIHdpdGggX1JFRU5UUkFOVDsgcGVyIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbQogICAKMjAwMC0wMi0yOSAxNDozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSW52b2tlIHNubXBfc2Vzc19zZW5kIGZyb20gd2l0aGluIHNubXBfcmVhZCB0byBhdm9pZCBtdXRleCBkZWFkbG9ja3MuCiAgIAoyMDAwLTAyLTI4IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wZC5oLCBtaWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc25tcGQuaCwgc211eC5jOiBkb24ndCBpbml0aWFsaXplIHNtdXggbWFzdGVyIGluIHN1YiBhZ2VudAogICAKMjAwMC0wMi0yOCAxNDoxNiAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogdXNlIFNVQl9BR0VOVCBzeW1ib2wKICAgCjIwMDAtMDItMjggMTQ6MTIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogc3ByaW50X2J5X3R5cGUgc2hvdWxkIGhhbmRsZSBBU05fQklUX1NUUgogICAKMjAwMC0wMi0yOCAxNDoxMCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBjb3JyZWN0bHkgY2FsbCB0aGUgLUkgb3B0aW9ucyBpbnB1dCBvcHRpb25zCiAgIAoyMDAwLTAyLTI4IDEwOjQ3ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIGZpeCBidWcgIzE3NiAoQUlYIDQgLSB1c2Uga25saXN0IGluIGxpZXUgb2Ygbmxpc3QpCiAgIAoyMDAwLTAyLTI0IDE3OjE3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGx5IHBhdGNoIHRvIGZpeCBidWcgbm8uIDE3Ny4KICAgCjIwMDAtMDItMjQgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBuZXcgc25tcC5jb25mIGtleXdvcmQKICAgICB0byBmb3JjZSB0aGUgcGFyc2VyIHRvIGlnbm9yZSB1bmtub3duIHRva2Vucy4KICAgCjIwMDAtMDItMjQgMDM6NTkgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wc2V0LjE6CgogICBkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIgKCd1JyBhbmQgJ2MnKSBpbiBzbm1wc2V0IChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMi0yNCAwMzo1NiAgbXNsaWZjYWsKCiAgICogbWFuL3NubXB0cmFwLjEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBDT1VOVEVSMzIgdG8gc25tcF9hZGRfdmFyOyBkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIKICAgKCd1JyBhbmQgJ2MnKSBpbiBzbm1wdHJhcCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKICAgCjIwMDAtMDItMjMgMjM6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGZpeCBzZXR0aW5nIG9mIG9jdGV0IHN0cmluZ3MuCiAgIAoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtIG10X3N1cHBvcnQuaDogYSBiYWQgOyBpbiB0aGUgQysrIGJyYWNrZXRpbmcKICAgCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgaW5kaXJlY3Rpb25zIGluIHN0cmNhc2VjbXAKICAgCjIwMDAtMDItMjMgMDI6MDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gdm1zdGF0X3NvbGFyaXMuYzogbWFrZSBzdXJlIHdlIGFncmVlIHdpdGggdGhlIHByb3RvdHlwZSBvZiBnZXRwYWdlc2l6ZSEKICAgCjIwMDAtMDItMjIgMTU6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaDoKCiAgIC0gcGFzc19wZXJzaXN0Lmg6IGRlY2xhcmUgaW5pdF9wYXNzX3BlcnNpc3QKICAgCjIwMDAtMDItMjEgMTY6MTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgQXBwbHkgUi4gU3RvcnkncyBwYXRjaCBmb3IgbWtkaXJoaWVyIGFuZCBzdHJuY2FzZWNtcCBvbiB3aW4zMgogICAKMjAwMC0wMi0yMSAwNzozOSAgbXNsaWZjYWsKCiAgICogbWFuLzogcmVhZF9jb25maWcuMy5kZWYsIHNubXBfYWxhcm0uMywKICAgc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEKOgoKICAgZml4IGJ1ZyAxNzEgKHRoYW5rcyB0byBMYXJyeSBQYXJtZWxlZSkuCiAgIAoyMDAwLTAyLTIxIDA1OjU2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHJlbW92ZSBmcmVlIGFmdGVyIHNubXBfY2xvc2UgKGRvbid0IGZyZWUgdHdpY2UhKQogICAKMjAwMC0wMi0yMSAwNDo1OCAgbXNsaWZjYWsKCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hbGFybS4zCiwgc25tcF9zZXNzX2FwaS4zOgoKICAgQWRkZWQgZGVzY3JpcHRpb24gaW4gU0hfTkFNRSBmb3Igc2V2ZXJhbCBtYW4tcGFnZXMgKGMvbyByYWduYXJrKQogICAKMjAwMC0wMi0xOCAxMjoxNCAgbXNsaWZjYWsKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zCiwgc25tcF9vcGVuLjMsIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMKLCBzbm1wX3NlbmQuMywgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywKICAgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLCBzbm1wX3Nlc3NfaW5pdC4zCiwgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsCiAgIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywgc25tcF9zZXNzX3Nlc3Npb24uMywKICAgc25tcF9zZXNzX3RpbWVvdXQuMywgc25tcF90aW1lb3V0LjM6CgogICByZWZlciB0aGUgLnNvIG1hY3JvIHRvIG1hbjM7IGFkanVzdCBNYWtlZmlsZS5pbiB0byB1c2UgdGhlIHJlbmFtZWQgZmlsZS4KICAgCjIwMDAtMDItMTcgMDU6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBpbmNsdWRlIHBhc3NfcGVyc2lzdCBpbiB0aGUgcmVxdWlyZWQgbGlzdC4KICAgCjIwMDAtMDItMTcgMDI6MDAgIGRhdmVzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKICAgICAtIFByb3ZpZGUgbWlzc2luZyAnZ2V0cGFnZXNpemUnIHJvdXRpbmUgZm9yIFNvbGFyaXMgMi40CiAgICAgICAoVGhhbmtzIHRvIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkKQogICAKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9zbm1wX21pYi5jCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICBpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCiAgIAoyMDAwLTAyLTE2IDE2OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSBhdXRvX25saXN0IG9mIHVudXNlZCAic3dhcGxpc3QiIHN5bWJvbC4KICAgCjIwMDAtMDItMTYgMTU6MTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcGF0Y2ggc3VnZ2VzdGVkIGJ5IFJpY2sgQmVhbWFuIDxiZWFtYW5AbWVkaWFvbmUubmV0PgogICAKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMC0wMi0xNiAxNDo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHZhY20uYywgdmFjbS5oOgoKICAgdGVzdCBsZW5ndGhzIGJlZm9yZSBhbGxvY2F0aW5nIG1lbW9yeTsgdXNlIG5ldyBWQUNNU1RSSU5HTEVOIGNvbnN0YW50LgogICAKMjAwMC0wMi0xNiAwODoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgaW5jbHVkZSB0aW1lLmggb25jZQogICAKMjAwMC0wMi0xNiAwODowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICByZXN0b3JlICNpZiBIQVZFLi4uSU5fUENCX0gKICAgCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKOgoKICAgLSBjb25maWd1cmUuaW4sIGlwY2guW2NoXTogaW5pdGlhbCBzdGFicyBhdCBMaW51eCBpcHY2IHN1cHBvcnQuIEEgbG90IGlzCiAgIAlsYWNraW5nIGluIHRoZSBrZXJuZWwgc3RhdGlzdGljcyB0aG91Z2guCiAgIAoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCjoKCiAgIC0gKG1hbnkpOiBjb25maWd1cmUgY2hlY2sgZm9yIG5ldGluZXQvaXA2LmgKICAgCjIwMDAtMDItMTUgMjM6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gaHJfZmlsZXN5cy5jOiBNTlRUWVBFIGRlZmluZXMgZm9yIEZyZWVCU0QtMyBhbmQgQlNESS00LCBhbmQgbW92aW5nIHRoZQogICAJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgogICAKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBnaXZlIGEgc2Vuc2libGUgb3V0cHV0IGZvciBhbiBlbXB0eSB0YWJsZS4KICAgCjIwMDAtMDItMTUgMjM6MjIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKICAgCjIwMDAtMDItMTUgMjM6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiByZXR1cm4gbWVtb3J5IHNpemUgaW4gcGFnZXMuCiAgIAoyMDAwLTAyLTE1IDIzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwo6CgogICAtIHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5oOiBtYWtlIGl0IHdvcmsgZm9yIEZyZWVCU0QtMyB0b28KICAgCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogb25lIG1vcmUgcGxhY2UgdG8gc2VuZCBhIEFVVEhGQUlMIHRyYXAKICAgCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhZ2VudF9yZWdpc3RyeS5jOiBmaXggYSByZXR1cm4gZm9yIFNOTVB2MS9Db3VudGVyNjQgY2FzZQogICAKMjAwMC0wMi0xNSAwMjoxMiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KICAgCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogL3Vzci9sb2NhbC9iaW4vcGVybCAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTAyLTExIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogcGVybDUgLT4gcGVybAogICAKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX3RyYXBfYXBpLjMKICAgCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCiAgIAoyMDAwLTAyLTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKICAgCjIwMDAtMDItMTEgMTI6NTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwKOgoKICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCiAgIAoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawogICAKMjAwMC0wMi0xMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGZpeCBmb3Igc2VwZXJhdGUgYnVpbGQgcGF0aAogICAKMjAwMC0wMi0xMSAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgogICAKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgIC0gc2VuZCBhdXRoRmFpbHVyZSB0cmFwLgogICAKMjAwMC0wMi0xMSAxMjoyMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCiAgIAoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgogICAKMjAwMC0wMi0xMCAxMToxNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTAyLTEwIDEwOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGV4dGVuc2libGUuYywgcGFzc19wZXJzaXN0LmMKOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KICAgCjIwMDAtMDItMTAgMTA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgogICAKMjAwMC0wMi0xMCAwODozOSAgbmJhCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMywKICAgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYKLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMywgc25tcGJ1bGtnZXQuMQosIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLjgsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsCiAgIHZhcmlhYmxlcy41OgoKICAgLSBtYW4vKjogc2V0IHRoZSBkYXRlcyBvbiB0aGUgcGFnZXMgdG8gcmVmbGVjdCB0aGUgcmV2aXNpb24gZGF0ZQogICAKMjAwMC0wMi0xMCAwODoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1kNS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgKOgoKICAgZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCiAgIAoyMDAwLTAyLTEwIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KICAgCjIwMDAtMDItMTAgMDc6MTQgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAogICAKMjAwMC0wMi0xMCAwNDo0MSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIC0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CiAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCiAgIAoyMDAwLTAyLTA5IDEzOjUzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgogICAKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZ2V0IFBBVEhfTUFYIG9uIEZyZWVCU0QuCiAgIAoyMDAwLTAyLTA5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIC0gKFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KICAgCjIwMDAtMDItMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhOgoKICAgLSAoU3YzY29uZmlnc2hhKTogc2hhIGNvbmZpZyBzdXBwb3J0CiAgIAoyMDAwLTAyLTA5IDEzOjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbAosIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KICAgCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdG9vbHMuaDoKCiAgIERlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCiAgIAoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMKOgoKICAgLSAoVDAyNHNubXB2M2dldFNIQTEgVDAyNXNubXB2M2dldFNIQURFUyk6IG5ldyB0ZXN0cwogICAKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KICAgCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KICAgCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCiAgIAoyMDAwLTAyLTA5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2UgbW9kZSB0byBhdXRvY29uZi4KICAgCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCiAgIAoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgIC0gU29sYXJpcyBwYXRjaGVzLgogICAKMjAwMC0wMi0wOSAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBmaXggcnNubXAubWFkZS4KICAgICAtIHVzZSAkKE1BS0UpLgogICAKMjAwMC0wMi0wOSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDAtMDItMDcgMTE6NDkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawogICAKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydDoKCiAgIFVuZG8gbGFzdCBjaGFuZ2U7IG9uIFN1biwgYWRkaXRpb25hbCBwbGF0Zm9ybSBpbmZvIHdhcyBub3Qgb2J0YWluZWQ7CiAgIHRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KICAgCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KICAgCjIwMDAtMDItMDcgMDc6MjAgIGhhcmRha2VyCgogICAqIFBPUlRJTkc6CgogICAtIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgogICAKMjAwMC0wMi0wNiAwNjoxMSAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCiAgIAoyMDAwLTAyLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KICAgCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCiAgIAoyMDAwLTAyLTA1IDA2OjU2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBmaXggdmVyc2lvbiAgbnVtYmVyCiAgIAoyMDAwLTAyLTA0IDE4OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90Lzogc2Vzc2lvbi50LCBzZXQudCwgc3RhcnRhZ2VudC5wbDoKCiAgIHdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwogICAKMjAwMC0wMi0wNCAxODoyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC86IG5vdGlmeS50LCBzdGFydGFnZW50LnBsOgoKICAgYnJhaW4tbwogICAKMjAwMC0wMi0wNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xICkKICAgCjIwMDAtMDItMDQgMTc6NDkgIGhhcmRha2VyCgogICAqIFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETyk6IGxhc3QgbWludXRlIGRvYyB1cGRhdGVzLgogICAKMjAwMC0wMi0wNCAxNzoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgbG9jYWwgZml4ZXMgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBoYXZlCiAgICAgY29tcGxpYW50IG1ha2VmaWxlIHZhcmlhYmxlcyBsaWtlICQ8LgogICAKMjAwMC0wMi0wNCAxNjo0NyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjEKICAgCjIwMDAtMDItMDQgMTU6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBoaW50cy9zb2xhcmlzLnBsOgoKICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCiAgIAoyMDAwLTAyLTA0IDE1OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC86IGhpbnRzL3NvbGFyaXMucGwsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcHRlc3QuY29uZjoKCiAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwogICAKMjAwMC0wMi0wNCAxNTowOSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFNOTVAueHMsCiAgIHQvYXN5bmMudCwgdC9nZXQudCwgdC9nZXRuZXh0LnQsIHQvbWlibG9hZC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcGQuY29uZiwKICAgdC9zbm1wdGVzdC5jb25mOgoKICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCiAgIAoyMDAwLTAyLTA0IDE0OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChzbm1wdHJhcGQuOCk6IGRvY3VtZW50IC1jIGFuZCAtQy4KICAgCjIwMDAtMDItMDQgMTM6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBpbXBsZW1lbnQgLWMgYW5kIC1DIGZsYWdzIGZvciBKb2UuCiAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KICAgCjIwMDAtMDItMDQgMTM6NTIgIG1hcnoKCiAgICogSU5TVEFMTDoKCiAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAogICAKMjAwMC0wMi0wNCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBkb24ndCByZWFkIHRoZSBvcHQgY29uZmlnIGZpbGUgb3IgY2FsbAogICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KICAgCjIwMDAtMDItMDQgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMi0wNCAxMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRvbid0IHByaW50IGZhaWxlZCBhY2Nlc3MgZXJyb3JzIChFQUNDRVMpLgogICAKMjAwMC0wMi0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgogICAKMjAwMC0wMi0wNCAxMjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxvY2FsL01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IGZpbmQsIGxvY2F0ZSwgYW5kIHVzZSBwZXJsIGlmIGZvdW5kLgogICAKMjAwMC0wMi0wNCAwODo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZCBkZWZhdWx0cyBmb3IgdjIgdHJhcCBwYXJhbXMKICAgCjIwMDAtMDItMDQgMDY6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAgaGF2ZSBtaWIgbG9hZGluZyBhcGkgcmV0dXJuIHJlc3VsdCBjb2RlcwogICAKMjAwMC0wMi0wNCAwNDowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IHJlYWxseSBkbyB0aGF0IEZyZUJTRCBzY3NpIHRoaW5nCiAgIAoyMDAwLTAyLTA0IDAxOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBzbGlnaHQgcmV3b3JkaW5nIG9mIHdhcm5pbmcgbWVzc2FnZQogICAKMjAwMC0wMi0wNCAwMDoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IEEgbGl0dGxlIGNsZWFudXAgb2YgdGhlIGRpc2sgZGV2aWNlIGRlZmluaXRpb25zLCBhbHNvIGFkZGluZwogICAJU0NTSSB0byBGcmVlQlNEIDMKICAgCjIwMDAtMDItMDQgMDA6MTYgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudDogdG8KICAgCUVOVl9TRVBBUkFUT1J7X0NIQVJ9CiAgIAoyMDAwLTAyLTAzIDIzOjU5ICBuYmEKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtIG10X3N1cHBvcnQuaDogYW5vdGhlciB3YXkgb2YgZG9pbmcgbm90aGluZywgbm90IGdpdmluZyBhICJudWxsIGVmZmVjdCIKICAgCXdhcm5pbmcgZnJvbSBnY2MuCiAgIAoyMDAwLTAyLTAzIDIzOjU3ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gYWdlbnQvcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLCBjbGllbnQuYzogY2hhbmdlIHNvbWUgdHlwZSBjYXN0cyBmcm9tCiAgIAkoY2hhciAqKSB0byAodV9jaGFyICopIHRvcCBzaWxlbmNlIHNvbWUgd2FybmluZ3MuCiAgIAoyMDAwLTAyLTAzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiByZW1vdmUgZHVtbXkgcmVmZXJlbmNlLgogICAKMjAwMC0wMi0wMyAxNDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCiAgIAoyMDAwLTAyLTAzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmguCiAgIAoyMDAwLTAyLTAzIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS86IEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LAogICBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkvKik6IHJlbW92ZWQsIHVzZSBleGFtcGxlIGluc3RlYWQuCiAgIAoyMDAwLTAyLTAzIDEzOjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRm9sbG93IGNvbmRpdGlvbiBIQVZFX0dFVFBJRCBmb3IgcGlkX2ZpbGUgb2JqZWN0LgogICAKMjAwMC0wMi0wMyAxMjo1OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICBOb3RlIHRoZSB3b21iYXQgaXMgcmVwbGFjZWQgYnkgZXhhbXBsZSBpbiBtb3JlIHBsYWNlcy4KICAgCjIwMDAtMDItMDMgMTI6NTcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcAo6CgogICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQgYWJvdXQgb2Jzb2xldGUgdjJwYXJ0eS4KICAgCjIwMDAtMDItMDMgMTA6NDggIG1hcnoKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZCAtdSBQSURGSUxFIHRvIHNubXB0cmFwZCwgbm93IHdlIG5lZWQgLWMgLUM6KSwgYnR3IGlzIHRoZSB2YWx1ZSBvZiBvcHRhcmcgcmVsaWFibGUgYWZ0ZXIgZ2V0b3B0IGhhcyBiZWVuIGNhbGxlZCBhZ2Fpbi4uLml0IHNlZW1zIHRvIHdvcmsKICAgCjIwMDAtMDItMDMgMDk6NTYgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsIHdpbjMyL2NvbmZpZy5oCjoKCiAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KICAgCjIwMDAtMDItMDMgMDk6NDQgIG1hcnoKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsCiAgIAoyMDAwLTAyLTAzIDA2OjQzICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCiAgIAoyMDAwLTAyLTAzIDA0OjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2U6IGxvYWQgYXZlcmFnZSAhPSBhdmVyYWdlIHRpbWUgdGhhdCBDUFUgaXMgaWRsZS4KICAgCjIwMDAtMDItMDMgMDE6MzUgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCiAgIAoyMDAwLTAyLTAyIDE2OjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgVG91Y2h1cCB0byBidWlsZCBtb3JlIE1JQiBtb2R1bGVzIG9uIFdpbjMyLgogICAKMjAwMC0wMi0wMiAxNjoyMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBUb3VjaHVwIGZvciBidWlsZGluZyBtb3JlIE1JQiBtb2R1bGVzIGluIFdpbjMyIChNU1ZDKS4KICAgCjIwMDAtMDItMDIgMTQ6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgTGV0IGhyUHJvY2Vzc29yTG9hZCBvdXQgb2YgdGhlIGdlbmllJ3MgYm90dGxlLgogICAKMjAwMC0wMi0wMiAxNDoxNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FLCBSRUFETUUud2luMzI6CgogICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKICAgCjIwMDAtMDItMDIgMTM6NDIgIG1hcnoKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCiAgIAoyMDAwLTAyLTAyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gUm9iZXJ0IE1pbGVzOgogICAgIC0gdmFyaW91cyBmaXhlczoKICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgMikgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyBuZXZlciByZWNlaXZlZCBhIHJlc3BvbnNlLgogICAgICAgMykgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyB3ZXJlIG5vdCBmaW5kaW5nIHRoZSByZWdpc3RyYXRpb24gd2hlbiB0aGUKICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICA0KSBOb24temVybyB2YWx1ZXMgd2VyZSBub3QgYmVpbmcgZW5jb2RlZCBwcm9wZXJseSBpbiByZWdpc3RyYXRpb24KICAgICAgICAgIHJlc3BvbnNlcy4KICAgCjIwMDAtMDItMDIgMDg6NTIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZml4IHRoZSBmYXQtZmluZ2VyaW5nIHBhdGNoIEkganVzdCBtYWRlLiBmZWguCiAgIAoyMDAwLTAyLTAyIDA4OjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCiAgIAoyMDAwLTAyLTAyIDA4OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCiAgIAoyMDAwLTAyLTAyIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAKICAgCjIwMDAtMDItMDIgMDY6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBhZGQgTmV0QlNEIHN1cHBvcnQKICAgCjIwMDAtMDItMDIgMDQ6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCiAgIAoyMDAwLTAyLTAyIDAxOjEyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gKGhvc3QvaHJfZGlzay5jKTogRml4IHNvbGFyaXMgaW5pdGlhbGlzYXRpb24sIHBsdXMgZXh0cmEgZGVidWdnaW5nIGluZm8uCiAgIAoyMDAwLTAyLTAxIDExOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYzoKCiAgIEZpeHVwIG1vcmUgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMC0wMi0wMSAwODo0NiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IGNoYW5nZWQgY29udGV4dCBzdHJpbmcgaW4gZXhhbXBsZXMgdG8gIiIuCiAgIAoyMDAwLTAyLTAxIDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgogICAKMjAwMC0wMi0wMSAwODo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4xNS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oOgoKICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCiAgIAoyMDAwLTAyLTAxIDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlc3RpbnRlcm5ldHQvZGlza2lvLmMsCiAgIHZlc3RpbnRlcm5ldHQvZGlza2lvLmgsIHVjZC1zbm1wL2Rpc2tpby5jLAogICB1Y2Qtc25tcC9kaXNraW8uaDoKCiAgIC0gKGRpc2tpby4qKTogbW92ZWQgdG8gdGhlIHVjZC1zbm1wIGRpcmVjdG9yeQogICAKMjAwMC0wMi0wMSAwNToyNyAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgogICAKMjAwMC0wMi0wMSAwNDoxOSAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2F0Y2ggY29tbW9uIGludmFsaWQgY29uZmlndXJlIG9wdGlvbnMuCiAgIAoyMDAwLTAyLTAxIDAzOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IHNlc3Npb24gSUQgaGFuZGxpbmcgd2hlbiBkZWxlZ2F0aW5nIHJlcXVlc3RzLgogICAKMjAwMC0wMi0wMSAwMTo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIEZpeCBicm9rZW4gc2V0dGluZyBvZiBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgY2hvaWNlLgogICAKMjAwMC0wMS0zMSAxMDo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBEU19MSUJfRE9OVF9CUkVBS0RPV05fT0lEUyB0byBnZXQgcHJldmlvdWxzeSByZWxlYXNlZCBiZWhhdmlvdXIgb2YgZ2V0X3N5bWJvbCB3cnQgb2N0ZXQgYmFzZWQgaW5zdGFuY2UgaWRzIChpLmUuLCBubyBkb3VibGUtcXVvdGluZykKICAgCjIwMDAtMDEtMzEgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLltjaF0pOgogICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCiAgIAoyMDAwLTAxLTMxIDA3OjU2ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChhcHBzL3NubXB0ZXN0LmMpOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgCjIwMDAtMDEtMzEgMDc6NTUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgLSBOLkI6IFRoaXMgY2hhbmdlcyB0aGUgaW50ZXJmYWNlIG9mIHNubXB2M19nZW5lcmF0ZV9lbmdpbmVJRCgpIHNsaWdodGx5LgogICAKMjAwMC0wMS0zMSAwNzo1MyAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICBzbm1wdXNtLmM6CgogICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgIC0gRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgIAoyMDAwLTAxLTMxIDA3OjUxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMjAwMC0wMS0zMSAwNzo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIEltcHJvdmVkIGNoZWNraW5nIGZvciBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjIwMDAtMDEtMzEgMDM6NDEgIGRhdmVzCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IFJldmlzZWQgYW5kIHVwZGF0ZWQgdmVyc2lvbi4KICAgCjIwMDAtMDEtMzEgMDM6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEluaXRpYWxpemUgYWRkcmxlbiBpbiBfc2Vzc19yZWFkKCkuICAoRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDEtMzEgMDM6MDMgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBBdHRlbXB0IHRvIGRldGVjdCBub24tdHJhZGl0aW9uYWwgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIChvbiBJcml4IDYueCkuCiAgIAoyMDAwLTAxLTMxIDAzOjAwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBJcml4IHNvY2tldCBoYW5kbGluZy4KICAgCjIwMDAtMDEtMzEgMDI6NDAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCiAgIAoyMDAwLTAxLTMxIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgIAlzbm1wVHJhcEVudGVycHJpc2UgT0lEIGRlZmluaXRpb25zLiAgKFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuKQogICAKMjAwMC0wMS0zMSAwMTowNSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgogICAKMjAwMC0wMS0zMCAxMDo1NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFJFQURNRToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgCiAgIE5vdGU6IEtOT1dOIEJVR1MKICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAKICAgbm90IHN1cmUgdGhhdCB0aGlzIGV2ZXIgd29ya2VkIC0gd2lsbCBoYXZlIHRvIGxvb2sgYXQgb2xkIE9DVEVUU1RSCiAgIGJlaGF2aW91ciBhbmQgc2VlIGhvdyB0byByZWNyZWF0ZSBpdAogICAKMjAwMC0wMS0zMCAxMDo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAKICAgTm90ZTogS05PV04gQlVHUwogICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgIAoyMDAwLTAxLTMwIDA4OjE5ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L3NubXBkLmNvbmY6CgogICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAogICAKMjAwMC0wMS0zMCAwMzoxMSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gaWYuYzogZGVmZW5zaXZlIHRlc3QgZm9yIG1pc3Npbmcgb2JqZWN0cyAoaXQgbWlnaHQgZmFpbCB0byBzaG93CiAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKICAgCjIwMDAtMDEtMzAgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiBjb252ZXJ0IGZyb20gcGFnZXMgdG8gMWsgYmxvY2tzCiAgIAoyMDAwLTAxLTMwIDAzOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogY29udmVydCB0byAxayBibG9ja3MKICAgCjIwMDAtMDEtMzAgMDM6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQogICAKMjAwMC0wMS0yOCAxMjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgIGZvciBidWcgIzE0OS4KICAgCjIwMDAtMDEtMjggMTI6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ2hhbmdlIGFnZW50eF97YnVpbGQscGFyc2V9X3Nob3J0IC4gVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMTI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgRml4IHNwZWxsIExJVFRMRV9FTkRJQU4uIFRoYW5rcyB0byB0YWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMDc6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgU29tZSB2YXJpYWJsZSByZW5hbWluZyBmb3IgY29uc2lzdGVuY3ksIGVycm9yIGNoZWNraW5nCiAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgogICAKMjAwMC0wMS0yNyAxNjoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgogICAKMjAwMC0wMS0yNyAxNDo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgIDEuIEZpeCBtZW1vcnkgbGVhayB3aGVuIGFub255bW91c2x5IG5hbWVkIG5vZGVzIGFyZSB1c2VkLgogICAgMi4gSGFjayBhcm91bmQgc21pY25nJ3MgIlNNSSAiIHN0YXRlbWVudHMgdG8gcHJldmVudCBvdGhlciBtZW1vcnkgbGVha3MuCiAgIAoyMDAwLTAxLTI3IDExOjE0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG5vLW9wIHNubXBfc3luY2hfc2V0dXAKICAgCjIwMDAtMDEtMjcgMDg6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jKTogbWFrZSBjb25maWcgcGFyc2VyIGhhbmRsZSAiIiAobnVsbCkgcGFyc2VkIHN0cmluZ3MuCiAgIAoyMDAwLTAxLTI2IDE5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLWNoYW1lbGVvbi4KICAgCjIwMDAtMDEtMjYgMTc6MzIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhbGxvdyAnLCcgc2VwZXJhdGVkIC0td2l0aC0qLW1vZHVsZXMgZmxhZyB2YWx1ZXMuCiAgIAoyMDAwLTAxLTI2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCiAgIAoyMDAwLTAxLTI2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEKOgoKICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgIC0gYmFkbHkgZG9uZSB1cGRhdGVzLgogICAKMjAwMC0wMS0yNiAxNjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KICAgCjIwMDAtMDEtMjYgMTY6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBwcml2IGtleSBsZW5ndGggZXh0cmFwb2xhdGlvbi4gIFNob3VsZCBiZSBkb25lIGRpZmZlcmVudGx5Py4KICAgCjIwMDAtMDEtMjYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMS0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBhZGQgYWJpbGl0eSB0byBhbGxvdyBzZW5kaW5nIHRyYXBzIHRvIHBvcnRzIG90aGVyIHRoYW4gMTYyLgogICAKMjAwMC0wMS0yNiAxNTozNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVUNELURMTU9ELU1JQi50eHQsIFVDRC1JUEZJTFRFUi1NSUIudHh0LAogICBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjb3JyZWN0IHVjZC1zbm1wLWNvZGVycyBlbWFpbCBhZGRyZXNzIHRvIHJlcGxhY2UgImVjZSIgd2l0aCAidWNkLXNubXAiLgogICAKMjAwMC0wMS0yNiAxNTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gY2xlYW4gdXAgYW5kIHJlZm9ybWF0IHN1Yi1yZWdpc3RyYXRpb24gY29tbWVudHMuCiAgIAoyMDAwLTAxLTI2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0OgoKICAgLSAoVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCiAgIAoyMDAwLTAxLTI2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWQgd2l0aCAidWNkIi4KICAgCjIwMDAtMDEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dDoKCiAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGZpeCB0aGUgZGlza2lvIG1pYiwgY29udmVydCB0byBTTUl2MiwgYW5kIG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLgogICAKMjAwMC0wMS0yNiAwNzoyNiAgbXNsaWZjYWsKCiAgICogUkVBRE1FOgoKICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCiAgIAoyMDAwLTAxLTI2IDA3OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3Igd2hlbiAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgaXMgdXNlZCAoc3RyYXVzc0BpYnIuY3MudHUtYnMuZGUpCiAgIAoyMDAwLTAxLTI1IDIxOjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBtaWIuYzpwcmludF90cmVlX25vZGUgLSBzaG93IG1vZHVsZSBuYW1lIG9uY2UgaW4gLS0gRlJPTTsKICAgcGFyc2UuYzogc2hvdyAiQ2Fubm90IGZpbmQgbW9kdWxlIiBvbmNlIHBlciBtaXNzaW5nIG1vZHVsZS4KICAgCjIwMDAtMDEtMjUgMTk6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIExhcmdlciBidWZmZXIgZm9yIHByaW50X21vZHVsZV9uYW1lOyBGaXggcG9zc2libGUgbnVsbCBkZXJlZiBpbiBnZXRfdGMuCiAgIAoyMDAwLTAxLTI1IDE0OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiB0byBkbyB3aGF0IGl0IHNheXMgaXQgc2hvdWxkIGRvLgogICAKMjAwMC0wMS0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiBoZWxwIHVwZGF0ZQogICAKMjAwMC0wMS0yNSAxNDoxMiAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKLCBNYWtlZmlsZS5pbjoKCiAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCBNYWtlZmlsZS5pbjoKICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCiAgIAoyMDAwLTAxLTI1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1ZFU1QtSU5URVJORVRULU1JQi50eHQ6CgogICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgogICAKMjAwMC0wMS0yNSAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC86IGRpc2tpby5jLCBkaXNraW8uaDoKCiAgIC0gKHZlc3RpbnRlcm5ldHQvZGlza2lvLltjaF0pOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCiAgIAoyMDAwLTAxLTI1IDEzOjUyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIHRjX2luZGV4CiAgIAoyMDAwLTAxLTI1IDEyOjA1ICBtYXJ6CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFkZGl0aW9uYWwgd2luMzIgaW5zdGFsbCBub3RlcwogICAKMjAwMC0wMS0yNSAxMTo0NyAgbWFyegoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKICAgCjIwMDAtMDEtMjUgMDY6NDkgIG1hcnoKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAogICAKMjAwMC0wMS0yNCAxMDozNiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjQgMTA6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggcHJpbnRpbmcgSU1QTElFRCBpbmRleCAoZnJvbSBhc3NvY2lhdGUgb2YgSi4gS21pZXRzY2gpIG1vZGlmaWVkIGFuZCBhcHBsaWVkLgogICAKMjAwMC0wMS0yNCAxMDowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJdG9qdW4ncyBuZXRic2QgRUxGIHBhdGNoICsgcmVtb3ZlIHdvbWJhdCBbRGF2ZSdzIGV4YW1wbGUgZml4XQogICAKMjAwMC0wMS0yNCAwOTo1NSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0OiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAiYWxsIiBrZXl3b3JkLgogICAKMjAwMC0wMS0yNCAwOTo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUga3N0YXRfZmQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuCiAgIAoyMDAwLTAxLTI0IDA4OjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yNCAwNzoyMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAtIENvbnNvbGlkYXRlZCBleGFtcGxlIG1vZHVsZXMgaW50byBvbmUsIGluY2x1ZGluZyBjb25maWcgYW5kIFNFVCBzdXBwb3J0LgogICAKMjAwMC0wMS0yMyAxNjo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KICAgCjIwMDAtMDEtMjMgMTI6NDMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwogICAKMjAwMC0wMS0yMyAxMjo0MiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IG1lcmdpbmcgb2YgYW5vbnltb3VzIG5vZGVzIHdoZW4gdGhleSBhcmUgbmFtZWQKICAgCjIwMDAtMDEtMjMgMDg6NTEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCiAgIAoyMDAwLTAxLTIxIDExOjE5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgY29uZmlnX2FyY2hfcmVxdWlyZSBzb2xhcmlzMiB2ZXJzaW9uIG9mIHZtc3RhdC4KICAgCjIwMDAtMDEtMjEgMTA6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMTA6MjMgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMDg6MTMgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDg6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0uCiAgIAoyMDAwLTAxLTIxIDA3OjI3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBhZGRlZCB2MyBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDE6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbmltaXplIGRhdGEgaGFuZGxpbmcgYW5kIHVzZSByZWdpc3RlciB2YXJpYWJpZXMgaW4KICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgogICAKMjAwMC0wMS0yMSAwMTo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KICAgCjIwMDAtMDEtMjEgMDE6NDYgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBSZW1vdmUgcGFydHkgY3J1ZDsgc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTIwIDA0OjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCiAgIAoyMDAwLTAxLTE4IDIxOjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENvbnNpc3RlbnQgZ2V0cGFnZXNpemUgKGZpcnN0IGRpdmlkZSBieSAxMDI0KS4KICAgCjIwMDAtMDEtMTggMjE6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgMi5BcHBseSBXaW4zMiBwYXRjaCBmcm9tIFIuU3RvcnkgdG8gYWN0aXZhdGUgbWliIHN0YXRzIG1vZHVsZSAoc25tcF9taWIpLgogICAKMjAwMC0wMS0xOCAyMToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCiAgIAoyMDAwLTAxLTE4IDIxOjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENsZWFudXAgYXJvdW5kIGlwNl92YXJzLmggaW5jbHVkZSAobm8gI2lmIDApCiAgIAoyMDAwLTAxLTE4IDE0OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIExhdGVzdCB2bXN0YXRfc29sYXJpczIgZnJvbSB0aGUgYXV0aG9yIEpvY2hlbiBLbWlldHNjaC4KICAgCjIwMDAtMDEtMTggMDg6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByZXZlbnQgYXJyYXkgYm91bmRzIGVycm9yIHdoZW4gY3JlYXRpbmcgc3BlY2lmaWMgdHJhcCBvaWQuCiAgIAoyMDAwLTAxLTE4IDA3OjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gdmFscyBmb3IgdHJhcCBmdW5jcywgY2xlYW4gdXAgcGR1CiAgIAoyMDAwLTAxLTE4IDA3OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtb2RpZmllZCBmb3IgdjItdHJhcC4KICAgCjIwMDAtMDEtMTcgMTI6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGFkZGVkIHYyIHRyYXAKICAgCjIwMDAtMDEtMTcgMDk6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgogICAKMjAwMC0wMS0xNyAwNjoxMyAgZGF2ZXMKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KICAgCjIwMDAtMDEtMTQgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogcmVtb3ZlIGV4cG9ydCBjb250cm9sIG5vdGUgYWJvdXQgREVTLgogICAKMjAwMC0wMS0xNCAxNjowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KICAgCjIwMDAtMDEtMTQgMTE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogZ3JlcCBmb3IgY29uZmlndXJlIGZsYWdzCiAgIAoyMDAwLTAxLTE0IDA5OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgc211eC9zbm1wX2JncC5jCiwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX3JpcDIuYzoKCiAgIFNtYWxsIGNvbXBpbGUgZml4IGFuZCBkZWJ1ZyBtZXNzYWdlIHJlc3RvcmF0aW9uLgogICAKMjAwMC0wMS0xMyAwNjozMyAgZGF2ZXMKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKTogTW9yZSBjb21wbGV0ZSBoYW5kbGluZyBvZiB1bmxvYWRpbmcgTUlCIG1vZHVsZXMuCiAgIAoyMDAwLTAxLTEzIDA2OjMxICBkYXZlcwoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBsaWIvcGFyc2UuW2NoXSk6IFVubG9hZCBNSUIgbW9kdWxlCiAgIAkoTi5COiBTb21ld2hhdCBzaW1wbGlzdGljIHdpdGggcmVnYXJkIHRvIG11bHRpcGx5LWxvYWRlZCBub2RlcykKICAgCjIwMDAtMDEtMTMgMDU6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgogICAKMjAwMC0wMS0xMyAwMjo0NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IFJlbW92ZSBleHRyYW5lb3VzIGJyYWNrZXQuCiAgIAoyMDAwLTAxLTEyIDIxOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYXBwcy9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oCjoKCiAgIFVzZSBERUJVR01TR09JRCBsaWJlcmFsbHksIHJlcGxhY2luZyBzcHJpbnRfb2JqaWQ7IHNtYWxsIHNwZWVkdXAuCiAgIAoyMDAwLTAxLTEyIDExOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjYXN0IG1hbGxvYyByZXR1cm5zLgogICAKMjAwMC0wMS0xMSAxNTowNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBVc2UgQ0ZMQUdTIHdoZW4gbGlua2luZyAoY291bGQgaGF2ZSBwcm9maWxlIHN3aXRjaCwgZXRjKS4KICAgCjIwMDAtMDEtMTEgMTA6MzcgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvZ2V0LnQ6CgogICByZW1vdmUgYmFkIHNlc3Npb24gdGVzdCAtIHNlc3Npb24udCBoYXMgaXQgYWxyZWFkeSAtIG5vdGUgdGhlIGNhbGwgdG8gZ2V0aG9zdGJ5bmFtZSBjYW4gaGFuZyBmb3Igc29tZSB0aW1lIGlmIEROUyBpcyBub3Qgc2V0dXAgY29ycmVjdGx5IC0gYW55b25lIGtub3cgYSB3YXkgYXJyb3VuZCB0aGlzPwogICAKMjAwMC0wMS0xMSAwOToxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCiAgIAoyMDAwLTAxLTExIDA4OjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5pdCBmaWxlIGNvdW50IGF0IHplcm8sIG5vdCBieSBpbmNyZW1lbnRpbmcgcmFuZG9tIHZhbHVlLgogICAKMjAwMC0wMS0xMSAwNzo1OSAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBLZWVwIHdpbjMyIHJlbGVhc2UgYnVpbGQgZnJvbSBicmVha2luZy4KICAgCjIwMDAtMDEtMTEgMDc6NDQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgQWRkIElOX1VDRF9TTk1QX1NPVVJDRSB0byBub3QgYnJlYWsgV2luMzIgYnVpbGRzLgogICAKMjAwMC0wMS0xMSAwMTo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBHbGVhbiByZWZzIHRvIG1pYklJLm8gZnJvbSB0aGlzIG1ha2VmaWxlLgogICAKMjAwMC0wMS0xMSAwMTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCiAgIAoyMDAwLTAxLTEwIDE2OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYwo6CgogICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgIHJlYWRfY29uZmlnLmMgLSByZW1vdmUgc2l6ZW9mKHVfY2hhcikgZnJvbSBtYWxsb2Mgc2l6ZSBjYWxjLgogICBzY2FwaS5oICAgICAgIC0gc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTEwIDE2OjMxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgogICAKMjAwMC0wMS0xMCAxNjozMSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIHNubXB0cmFuc2xhdGUuMSAgIC0gcmVtb3ZlIGp1bmsgbGluZS4KICAgCjIwMDAtMDEtMTAgMTY6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHVjZERlbW9QdWJsaWMuYyAtIHJlbW92ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBmcm9tIHdyaXRlIG1ldGhvZC4KICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgIHNubXBkLmMgICAgICAgICAtIHRlcm1pbmF0ZSBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgLSBjaGVjayBmb3IgLWxuc2wgbW9yZSBleHBsaWNpdGx5LgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICAtIChTdjNjb25maWcpOiByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlLgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCiAgIAoyMDAwLTAxLTEwIDE0OjQwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIGFkZCBtaWJsb2FkCiAgIAoyMDAwLTAxLTEwIDE0OjM0ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMTAgMTQ6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBNQU5JRkVTVCwgTUFOSUZFU1QuU0tJUCwKICAgTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cywgVE9ETwosIHBlcmxzbm1wLmgsIHR5cGVtYXAsIGV4YW1wbGVzL2FzeW5jMS5wbCwKICAgZXhhbXBsZXMvYXN5bmMyLnBsLCBleGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIGV4YW1wbGVzL21pYnRyZWUucGwsIGV4YW1wbGVzL21pYndhbGsucGwsCiAgIGV4YW1wbGVzL3BpbmdtaWIucGwsIGV4YW1wbGVzL3RhYmxld2Fsay5wbCwKICAgZXhhbXBsZXMvdGVzdGxlYWsucGwsIGhpbnRzL2lyaXgucGwsIGhpbnRzL3NvbGFyaXMucGwKLCB0L1JFQURNRSwgdC9hc3luYy50LCB0L2dldC50LCB0L2dldG5leHQudAosIHQvbWliLnQsIHQvbWliLnR4dCwgdC9zZXNzaW9uLnQsIHQvc2V0LnQKLCB0L3NubXBkLmNvbmY6CgogICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKICAgCjIwMDAtMDEtMTAgMTM6MjEgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVhbGlmeSB1c2Ugb2Ygd2l0aHZhbCB0byBkZWZpbmUgbGlicmFyeSBhbmQgaW5jbHVkZSBzZWFyY2ggcGF0aHMuCiAgIAoyMDAwLTAxLTEwIDEzOjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgogICAKMjAwMC0wMS0xMCAwNjoxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBSZS1zdHJ1Y3R1cmUgZ2V0X3VwdGltZSgpIHRvIGNhY2hlIGJvb3QgdGltZS4KICAgCjIwMDAtMDEtMTAgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKICAgCjIwMDAtMDEtMTAgMDI6MzEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCiAgIAoyMDAwLTAxLTEwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkuaCk6IFJlLXJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlLgogICAKMjAwMC0wMS0wOCAxMjowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgVXNlIGtubGlzdCBpZmYgYWl4NCBhbmQgSEFWRV9LTkxJU1QgW25vdCBjb21wbGV0ZSB3L28gY29uZmlndXJlIG1vZHNdCiAgIAoyMDAwLTAxLTA4IDExOjQ0ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBidWlsZCBmb3IgTGludXggUmVkSGF0IDYuMSAoY2FudCBsaW5rIGxpYndyYXAgd2l0aG91dCBsaWJuc2wpLgogICAKMjAwMC0wMS0wOCAwMDo1NiAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IGJ1Z2ZpeCBmb3IgYSBidWdmaXggYnVnCiAgIAoyMDAwLTAxLTA3IDIzOjQzICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGNvbmZpZ3VyZS5pbjogc29tZSBtaXNzaW5nICJ4IiBpbiB0ZXN0cyBmb3IgLS13aXRoLW9wZW5zc2wgYW5kCiAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCiAgIAoyMDAwLTAxLTA3IDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcHJvcGVybHkgZ3JvdXAgcncvcm91c2VycyBpbnRvIHVzbSBub3QgdjEvdjJjLgogICAKMjAwMC0wMS0wNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGhhbmRsZSBtdWx0aXBsZSB0cmFuc2xhdGVkIE9JRHMuCiAgIAoyMDAwLTAxLTA3IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IHVwZGF0ZSB0byB2NCBBUEkgc2V0IGNvZGUuCiAgIAoyMDAwLTAxLTA3IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCiAgIAoyMDAwLTAxLTA2IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IHVucXVvdGVkIHF1b3RlcyBxdW90ZWQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHkyayBidWcuCiAgIAoyMDAwLTAxLTA2IDEzOjE0ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHVwZGF0ZSBjb25maWcgYWNjZXNzIHN5bnRheCAoZXhhY3QpCiAgIAoyMDAwLTAxLTA2IDEzOjA3ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCiAgIAoyMDAwLTAxLTA2IDEyOjU2ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWc6CgogICB1cGRhdGUgc3ludGF4IChleGFjdCkKICAgCjIwMDAtMDEtMDYgMDg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IHByb3Blcmx5IHdyYXAgc3RydWN0LmggaW5jbHVkZSBkaXJlY3RpdmUgZm9yCiAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KICAgCjIwMDAtMDEtMDYgMDE6NTggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmM6CgogICAtIChtaWJncm91cC9taWJJSS5jKTogUmVtb3ZlIHJlZHVuZGFudCBmaWxlCiAgIAoyMDAwLTAxLTA0IDIzOjUxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGltcGxlbWVudCB0cmFuZCBoYW5kbGVycyBmb3Igd2luMzIKICAgCjIwMDAtMDEtMDQgMjM6NTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6ICNpZmRlZiBzb21lIHZhcmlhYmxlcyBub3QgdXNlZCB1bmRlciB3aW4zMgogICAKMjAwMC0wMS0wNCAyMjoxMiAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc25tcGQuY29uZi41LmRlZjogcmVtb3ZlIGFsbCB0cmFjZXMgb2Ygc2VjdXJpdHkKICAgCW1vZGVsICJhbnkiIGluICJncm91cCIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCiAgIAoyMDAwLTAxLTA0IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAtIEFkZCAtSS91c3IvaW5jbHVkZS9ycG0gYmVjYXVzZSBvZiBiYWRseSB3cml0dGVuIHJwbSBoZWFkZXIgZmlsZXMuCiAgIAoyMDAwLTAxLTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBkZWFsIHdpdGggYmxvY2tpbmcgYmV0dGVyIGluIHNubXBfYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjIwMDAtMDEtMDQgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCiAgIAoyMDAwLTAxLTA0IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KICAgCjIwMDAtMDEtMDMgMTU6MzkgIG5iYQoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFuc2xhdGUuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBjbWQuMTogYWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwbGljYXRpb25zCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBleHBsYWluIC1UIG91dHB1dHMKICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCiAgIAoyMDAwLTAxLTAzIDE1OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAogICAKMjAwMC0wMS0wMyAxNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgCUlnbm9yZSAuaW5kZXggZmlsZSBvbiBXSU4zMiBwbGF0Zm9ybQogICAKMjAwMC0wMS0wMyAxNTozMCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBhZGQgcHJvdG90eXBlIGZvciBzdHJjYXNlY21wCiAgIAoyMDAwLTAxLTAzIDE1OjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIHdvbWJhdC5bY2hdOiBjb3JyZWN0IHByb3RvdHlwZSBmb3Igd29tYmF0X3BhcnNlX2NvbmZpZwogICAKMjAwMC0wMS0wMyAxNToyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIG1pYklJLmg6IGFkZCBwcm90b3R5cGUgZm9yIGluaXRfbWliSUkKICAgCjIwMDAtMDEtMDMgMTU6MjYgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiBhZGQgYSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcgogICAKMjAwMC0wMS0wMyAxNToyNiAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogaW5jbHVkZSBhZ2VudF9yZWdpc3RyeS5oIG9ubHkgb25jZQogICAKMjAwMC0wMS0wMyAxNToyMyAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKICAgCjE5OTktMTItMzEgMTM6MjcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgQXBwbHkgc29tZSBOZXRCU0QgMS4zLngsIDEuNCBwYXRjaGVzIGMvbyBHcmVhIEEuIFdvb2RzIDx3b29kc0BwbGFuaXguY29tPgogICAKMTk5OS0xMi0zMSAxMjo0MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IGJ1ZyAjNDg6IG5vIHN0cmNhc2VjbXAvc3RybmNhc2VjbXAgZm9yIFNpbml4CiAgIAoxOTk5LTEyLTMxIDEwOjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHdhcm5pbmdzIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0zMSAxMDozMyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBBdXRvY29uZiBwYXRjaCBjL28gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgogICAKMTk5OS0xMi0zMSAxMDoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCiAgIAoxOTk5LTEyLTMxIDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBBcHBseSBwYXRjaCBwcm92aWRlZCBieSBTZXJnIFRydXNobmlrb3YgPHNhdEB6bWFpbC5ydT4gZm9yIEFJWCA0LjIuMSBrbmxpc3QKICAgCjE5OTktMTItMzEgMDk6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIEZpeCBidWcgIyAxMjIKICAgCjE5OTktMTItMzAgMTI6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgc25tcGxpYi90b29scy5jOgoKICAgRml4IGNvbXBpbGUgZXJyb3JzLgogICAKMTk5OS0xMi0zMCAwNzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB1c2FnZSBsaW5lIG9yZGVyIG1lc3NlZCB1cCwgYXMgcG9pbnRlZCBvdXQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMi0yOCAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmVtb3ZlIHRoZSAhIGluIGZyb250IG9mIGluX2Ffdmlldywgd2hpY2ggY2hhbmdlZC4KICAgCjE5OTktMTItMjMgMDg6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIG5vbiA4MC1jb2x1bW4gd3JhcHBlZCB2ZXJzaW9uLgogICAKMTk5OS0xMi0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTEyLTIyIDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgdGFibGUgd2l0aCBtb3JlIHRoYW4gdGhhdCBudW1iZXIgaW4gY29sdW1ucywgd2hpY2ggYnJlYWtzIHNubXB0YWJsZS4KICAgCjE5OTktMTItMjIgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKG1hc3Rlci5jKTogdXNlIHNubXBfc2Vzc19vcGVuIGZvciB0aGUgc2Vjb25kIHRyeSBhdCBvcGVuaW5nIHRoZQogICAgIG1hc3RlciBwb3J0LgogICAKMTk5OS0xMi0yMiAwNTo1OCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gdmFjbSByb3V0aW5lczogYWxpZ25tZW50IHdpdGggUkZDIG1pYnMsIHByZXBhcmluZyBmb3IgdHJhcCBnZW5lcmF0aW9uCiAgIAlhbmQgYSBiZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCB2YXJpYWJsZSB0cmVlIHdhbGtpbmcKICAgCjE5OTktMTItMjIgMDU6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCiAgIAoxOTk5LTEyLTIyIDA1OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCiAgIAoxOTk5LTEyLTIyIDAyOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzoga2lsbCBhIGR1bW15IHZhbHVlCiAgIAoxOTk5LTEyLTIyIDAyOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICAtIG1lbW9yeV9mcmVlYnNkMi5jOiBtYWtlIGl0IHdvcmsgKGFnYWluKSBmb3IgRnJlZUJTRC0yOi0pCiAgIAoxOTk5LTEyLTIxIDAyOjM3ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0yMCAxNzozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTEgKQogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNSXYyIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTIwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIG5vdGUuCiAgIAoxOTk5LTEyLTIwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRGlnaXRhbCBVbml4IGhhY2sgZm9yIGJhZCByZWN2ZnJvbSBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTktMTItMjAgMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCiAgIAoxOTk5LTEyLTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBtYWtlIHVwdGltZSBhIGxvbmcgZm9yIDY0Yml0IGFyY2hpdGVjdHVyZXMuCiAgIAoxOTk5LTEyLTIwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJUEZXQUNDLU1JQi50eHQgLT4gVUNELUlQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmM6CgogICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCiAgIAoxOTk5LTEyLTIwIDEzOjI2ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELUlQRldBQ0MtTUlCLmluYywgVUNELUlQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCBhbmQgdXBkYXRlZCBmcm9tIElQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0byBVQ0QtSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjIzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIChJUFNFQy1NSUIudHh0KTogcmVtb3ZlZAogICAKMTk5OS0xMi0yMCAwNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoxOTk5LTEyLTIwIDA2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBGb3JjZSBzZXQgdG8gMSBmb3IgLUQgc28gbXVsdGlwbGUgc3dpdGNoZXMgY2FuCiAgICAgYmUgZ2l2ZW4gKGllLCBkb24ndCB0b2dnbGUgdGhlIHZhbHVlKS4KICAgCjE5OTktMTItMjAgMDQ6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwdjYuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBzbm1wX3ZhcnMuYyBtaWJJSS5bY2hdIG1pYklJLyouYyBtaWJJSS9zeXNPUlRhYmxlLmgpOgogICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgLSBSZWdpc3RlciB0aGUgdmFyaW91cyBNSUItMiBtb2R1bGVzIHNlcGFyYXRlbHkgaW4gc3lzT1JUYWJsZS4KICAgCjE5OTktMTItMjAgMDM6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBVcGRhdGVkIHRvIGRlc2NyaWJlIGN1cnJlbnQgc3RhdHVzLgogICAKMTk5OS0xMi0xNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGNvbXBsZXRlbHkgcmVzdHJ1Y3R1cmVkLgogICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCiAgIAoxOTk5LTEyLTE3IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgIC0gaW5jbHVkZSAic25tcF9hbGFybS5oIiBmb3IgbWliIG1vZHVsZXMgdGhhdCBuZWVkIHRoZSBjYWxsYmFjayBkZWYuCiAgIAoxOTk5LTEyLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gLUkuCiAgIAoxOTk5LTEyLTE3IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IG1pc3NpbmcgISBvcGVyYXRlciBvbiBzaWduYWwgdGVzdC4KICAgCjE5OTktMTItMTcgMTU6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdC5jCiwgdm1zdGF0X2ZyZWVic2QyLmM6CgogICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KICAgCjE5OTktMTItMTcgMTU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgSW5jbHVkZSBGcmVlQlNEIDQueCBzcGVjaWZpYyBtZW1vcnkgYW5kIHZtc3RhdCB3aGVuIGJ1aWxkaW5nIHRoYXQgYWdlbnQuCiAgIAoxOTk5LTEyLTE3IDE0OjIzICBtc2xpZmNhawoKICAgKiBtYW4vOiBSRUFETUUsIG1pYl9hcGkuMywgc25tcC5jb25mLjUuZGVmLAogICBzbm1wY21kLjEsIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wdGVzdC4xLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEKOgoKICAgRml4ZWQgYSBmZXcgc3BlbGlsbmcgZXJyb3JzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBzZWNvbmQgcGFzcy4KICAgCjE5OTktMTItMTcgMTA6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZWQgLVIgZnJvbSB0aGUgLWggb3V0cHV0LgogICAKMTk5OS0xMi0xNyAxMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGNoYW5nZWQgaGVscCBsaW5lIG9mIGNyZWF0ZVVzZXIgdG8gc2VwZXJhdGUgREVTIHRva2VuCiAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KICAgCjE5OTktMTItMTcgMTA6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBwdXQgc25tcGQubyBpbnRvIHRoZSBvYmplY3QgbGlzdCwgYW5kIHJlbW92ZSBpdCBmcm9tCiAgICAgZGlyZWN0IGNvbXBpbGF0aW9uIGluIHRoZSBDQyBsaW5rIGxpbmUuCiAgIAoxOTk5LTEyLTE3IDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHJlb3JkZXIgaW5pdCgpIHJvdXRpbmVzIGZvciAtSCB0byBwcmV2ZW50IHNlZ2ZhdWx0aW5nLgogICAKMTk5OS0xMi0xNyAxMDoxMSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogUEVSU0lTVEVOVF9ESVJFQ1RPUlkgdG9rZW4gYWRkZWQuCiAgIAoxOTk5LTEyLTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGZpcnN0IHBhc3MgYXQgY2hhbmdlcy4KICAgCjE5OTktMTItMTcgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCiAgIAoxOTk5LTEyLTE3IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgZmlsZSBkaXJlY3RpdmUuCiAgIAoxOTk5LTEyLTE3IDA3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCByb2NvbW11bml0eSwgcndjb21tdW5pdHksIHJvdXNlciwgcnd1c2VyLgogICAKMTk5OS0xMi0xNyAwNzoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjE5OTktMTItMTcgMDc6MDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KICAgCjE5OTktMTItMTcgMDc6MDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSSBhbmQgLU8gZmxhZ3MuCiAgIAoxOTk5LTEyLTE3IDAzOjIyICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIGxpYnNubXAuZGVmOiBhZGQgc29tZSBmdW5jdGlvbiBuYW1lcwogICAKMTk5OS0xMi0xNyAwMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBtYWtlIHRoZSBvaWRzIGdpdmVuIHRvIHRyYXBkIGhhbmRsZXJzIHByb3Blcmx5IC4wIHRlcm1pbmF0ZWQuCiAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgIAlBZGQgc3lzbG9nIG9mIHYyIHRyYXBzIGFuZCBpbmZvcm1zCiAgIAoxOTk5LTEyLTE3IDAyOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgCWRlZmF1bHQgKGRvbid0IGV2ZW4gZG9jdW1lbnQgdGhlIC1DIGNvbXBhdGliaWxpdHkgb3B0aW9uKS4gSWdub3JlCiAgIAlub3QtYWNjZXNzaWJsZSBmaWVsZHMgaW4gdGhlIHdhbGsuCiAgIAoxOTk5LTEyLTE3IDAyOjA5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHVzYWdlKCkgY2FsbHMuCiAgIAoxOTk5LTEyLTE3IDAyOjA4ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgIAljb25kaXRpb25hbHMuIFByb3Blcmx5IG91dHB1dCBhbiBlbXB0eSBzdHJpbmcgaW5kZXguCiAgIAoxOTk5LTEyLTE2IDIzOjEwICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KICAgCjE5OTktMTItMTYgMjM6MDkgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IGEgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24gcHJvYmxlbSBwcmludGluZyBvaWRzCiAgIAoxOTk5LTEyLTE2IDIzOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogYmUgZXhwbGljaXQgaW4gdGhlIC10IHdhcm5pbmcKICAgCjE5OTktMTItMTYgMjM6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIHNtdXguW2NoXTogZml4IHNvbWUgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMuCiAgIAoxOTk5LTEyLTE2IDIzOjA2ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogXG4gdGVybWluYXRlIHNvbWUgbG9nIG1lc3NhZ2VzCiAgIAoxOTk5LTEyLTE2IDIzOjA1ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCiAgIAoxOTk5LTEyLTE1IDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCiAgIAoxOTk5LTEyLTE1IDA5OjU2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIEFkZCB0aW1lIG1hcmtlciBjcmVhdGUsIHNldCwgYW5kIGRlbHRhIHRpbWUgY2hlY2sgbWV0aG9kcy4KICAgCjE5OTktMTItMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICBSZW1vdmUgc25tcF9sb2dfc3lzbG9nLCBzbm1wX2xvZ19maWxlbG9nLCBzbm1wX2xvZ19zdGRlcnJsb2c7CiAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KICAgCjE5OTktMTItMTUgMDk6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgU05NUHYyLU0yTS1NSUIudHh0LAogICBTTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0IFNOTVB2Mi1NMk0tTUlCLnR4dCApOiByZW1vdmVkLgogICAKMTk5OS0xMi0xNSAwOToxNyAgaGFyZGFrZXIKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIuaW5jLCBVQ0QtSVBGSUxURVItTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsIFVDRC1JUEZJTFRFUi1NSUIuaW5jLAogICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMTItMTUgMDU6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgogICAKMTk5OS0xMi0xNSAwNDoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmM6CgogICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgIAoxOTk5LTEyLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IGdldCBuZXh0IGluIGxpbmsgbGlzdCBiZWZvcmUgZGVsZXRpbmcgcm9vdC4KICAgCjE5OTktMTItMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgogICAKMTk5OS0xMi0xNCAxNToxOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRExNT0QgLT4gVUNELURMTU9ECiAgIAoxOTk5LTEyLTE0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogcmV2ZXJzZSBnZW5lcmF0ZV9LdSBvcHRpbWl6YXRpb25zLCBhcyB0aGV5IGRvbid0IHdvcmsuCiAgIAoxOTk5LTEyLTE0IDA4OjQxICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSB1cGRhdGVzLgogICAKMTk5OS0xMi0xNCAwODowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGRlZmF1bHRfc3RvcmUuaCwKICAgICBtaWIuYywgbWliLmgpOgogICAgIC0gYXJndW1lbnQgc2h1ZmZsaW5nLi4uCiAgICAgICAtSSBmb3IgaW5wdXQgYXJncyBjcmVhdGVkLCBhbmQgLU9SIG1vdmVkIHRoZXJlLgogICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAtVEIgY3JlYXRlZCBmb3Igc25tcHRyYW5zbGF0ZSAod2FzIC1CKS4KICAgCjE5OTktMTItMTMgMTY6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBbGxvdyBzcHJpbnRfdmFyaWFibGUgdG8gd29yayBldmVuIGlmIG5vIE1JQiBmaWxlcyB3ZXJlIHJlYWQuCiAgIAoxOTk5LTEyLTEzIDE1OjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRmluaXNoIHN5bWJvbCBjb252ZXJzaW9uIHdpdGggbnVtZXJpYyB3aGVuIHN1YnRyZWUgaXMgbGVhZiBub2RlLgogICAKMTk5OS0xMi0xMyAxNDo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwcm9ibGVtIHByaW50aW5nIElNUExJRUQgaW5kaWNlcyBvZiBPQkpFQ1RJRCB0eXBlLgogICAKMTk5OS0xMi0xMyAxNDoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS13aXRoLWVmZW5jZSBpbXBsZW1lbnRlZC4KICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKICAgCjE5OTktMTItMTMgMTM6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMi0xMyAxMjowNCAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gYWxzbyByZW1vdmVzIGdlbmVyYXRlZCBkZWZhdWx0X3N0b3JlLjMuaCAuCiAgIAoxOTk5LTEyLTEzIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsCiAgIFVDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAtIEp1ZXJnZW5zIHBhdGNoIHRvIG1vdmUgRExNT0QtTUlCIC0+IFVDRC1ETE1PRC1NSUIgYW5kIC0+IFNNSXYyLgogICAgIC0gbW92ZWQgdG8gdGhlIGV4cGVyaW1lbnRhbCB0cmVlLgogICAKMTk5OS0xMi0xMyAwOTo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgQWRkZWQgcGF0Y2ggZnJvbSBNLk1pY2hhdWQgdG8gdXNlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMuCiAgIAoxOTk5LTEyLTEzIDA0OjQzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3NtdXgvc211eC5jLAogICBtaWJncm91cC9zbXV4L3NtdXguaDoKCiAgIC0gKGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LltjaF0pOgogICAgIC0gUGF0Y2ggdG8gZ2V0IFNNVVggc3VwcG9ydCB3b3JraW5nIHdpdGggdGhlIG5ldyBhZ2VudCBhcmNoaXRlY3R1cmUuCiAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgIFRoYW5rcyB0byBOaWNrIEFtYXRvIGFuZCBNaWtlIE1pY2hhdWQuCiAgIAoxOTk5LTEyLTEzIDAzOjE4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwogICAKMTk5OS0xMi0xMyAwMzoxNyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBIYW5kbGUgZGVsZWdhdGVkIE1JQiByZWdpb25zIHByb3Blcmx5IHdoZW4gc3BsaXQuCiAgIAoxOTk5LTEyLTEwIDEzOjAzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgRml4IEhQLVVYIHByb2JsZW0gd2l0aCBpcERlZmF1bHRUVEwuCiAgIAoxOTk5LTEyLTEwIDEwOjQ0ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCiAgIAoxOTk5LTEyLTEwIDEwOjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBBcHBseSBEYXZlJ3MgcGF0Y2ggdG8gZml4IG1heCB2YXJiaW5kcyB0ZXN0aW5nIG9uIEdFVEJVTEsuCiAgIAoxOTk5LTEyLTEwIDA3OjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBidWlsZCBleGVjdXRhYmxlIGFnZW50IG9uIEhQLVVYLgogICAKMTk5OS0xMi0xMCAwMzoxOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICAtICh2YXJpb3VzKTogY2hhbmdlcyB0byBjb21waWxlIHNubXBkIHdpdGggVkMrKyA1LjAgKFJlbGVhc2UgbW9kZSkKICAgCjE5OTktMTItMTAgMDM6MTAgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IGFkZCBzb21lIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVycwogICAKMTk5OS0xMi0xMCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCiAgIAoxOTk5LTEyLTEwIDAzOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSBwYXNzLmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgogICAKMTk5OS0xMi0xMCAwMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KICAgCjE5OTktMTItMDkgMTc6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQgb24gaHB1eAogICAKMTk5OS0xMi0wOSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBuZXRzdGF0L01ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQKICAgCjE5OTktMTItMDkgMTY6MTYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIGFsbCBpbnN0YW5jZXMgb2Yga2IgdG8ga0IuCiAgIAoxOTk5LTEyLTA5IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgIC0gZ2VuZXJhdGVfS3UoKSBzcGVlZCBpbXByb3ZlbWVudHMuCiAgIAoxOTk5LTEyLTA5IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgIC0gZml4ZWQgLS1lbmFibGUtc2hhcmVkIChhdCBsZWFzdCBvbiBsaW51eCkuCiAgIAoxOTk5LTEyLTA5IDA4OjE0ICBtc2xpZmNhawoKICAgKiBtaWJzLzogRElTTUFOLVNDUklQVC1NSUIudHh0LCBVQ0QtREVNTy1NSUIuaW5jLAogICBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0CjoKCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgogICAKMTk5OS0xMi0wOSAwNzo0OSAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBkYXZlcwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgLSAobWFuL3NubXBfdHJhcF9hcGkuMyk6IEluaXRpYWwgZG9jdW1lbnRhdGlvbiBmb3IgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OS0xMi0wOCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtYXN0ZXIuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGltcGxlbWVudCBta2RpcmhpZXIoKSBhbmQgdXNlIGl0IGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIGFnZW50eAogICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCiAgIAoxOTk5LTEyLTA4IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcwo6CgogICAtIChtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcyk6CiAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgIG5lZWQgdG8gYmUgZWRpdGVkIG9uY2UuCiAgIAoxOTk5LTEyLTA4IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCouLk1ha2VmaWxlLmluKTogQSByZWFsIG1ha2UgZGVwZW5kIHdpdGggbm8gc3NsIGRlcGVuZGFuY2llcywgZXRjLgogICAKMTk5OS0xMi0wOCAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3ZlIHN5cy9wYXJhbSBvdXQgb2YgaWZkZWYgRkRfU0VULgogICAKMTk5OS0xMi0wOCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMTItMDggMTU6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgogICAKMTk5OS0xMi0wOCAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gcmVtZW1iZXJlZCBJTVBMSUVEIGluZGV4ZXMuCiAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICBjdXR0aW5nL3Bhc3Rpbmcgb2YgdGhlbSB3b3Jrcy4KICAgICAtIHByb3Blcmx5IHByaW50IHN0cmluZ3MgYW5kIG9pZHMgdGhhdCBhcmUgSU1QTElFRC4KICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCiAgIAoxOTk5LTEyLTA4IDE1OjA0ICBtc2xpZmNhawoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGQgbWlzc2luZyBkc2tQZXJjZW50Tm9kZSB0byBEc2tFbnRyeSAodGhhbmtzIHRvCiAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCiAgIAoxOTk5LTEyLTA4IDE1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCiAgIAoxOTk5LTEyLTA4IDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBmaXggLU9zIGFuZCBpbmRleCBiYXNlZCBvaWQgcHJpbnRpbmcgdG8gd29yayBhZ2Fpbi4KICAgCjE5OTktMTItMDggMTQ6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIG1ySW5kZXggSU1QTElFRCBzaW5jZSBpdCBpcyBpbiB0aGUgY29kZS4KICAgCjE5OTktMTItMDggMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHJlZ2lzdGVyIGEgY29uZmlnIHRva2VuIGZvciBzdWZmaXggcHJpbnRpbmcuCiAgIAoxOTk5LTEyLTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBFbGltaW5hdGUgbXVsdGlwbHlpbmcgYnkgc2l6ZW9mKGNoYXIpIG9yIHNpemVvZih1bnNpZ25lZCBjaGFyKTsKICAgYWdlbnR4L2NsaWVudC5jIC0gc25tcF9mcmVlX3ZhcmJpbmQgcmVwbGFjZXMgZnJlZSBpbiBmb3VyIHBsYWNlczsKICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCiAgIAoxOTk5LTEyLTA3IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHdhbGsuMToKCiAgIC0gKHNubXB3YWxrLjEpOiBkb2N1bWVudCAtQ2kgYW5kIC1DcCAoYmFkbHkpLgogICAKMTk5OS0xMi0wNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6CiAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIG9yIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgYW4gaW5jbHVzaXZlIG9wdGlvbi4KICAgICAtIE5ldyBhYmlsaXR5IHRvIHByaW50IG51bWJlciBvZiB2YXJpYWJsZXMgZm91bmQgYXQgdGhlIGVuZC4KICAgCjE5OTktMTItMDcgMDk6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGNvbnZlcnQgdG8gU01JdjIgYW5kIGNsZWFudXAuCiAgIAoxOTk5LTEyLTA3IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzeXNPUlRhYmxlLmMpOiBtYWtlIHN5c09ySW5kZXggbm90LWFjY2Vzc2libGUsIGFzIGl0IHNob3VsZCBiZS4KICAgCjE5OTktMTItMDcgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYzoKCiAgIC0gKGhyX290aGVyLmMpOiBzaG9ydGVuIGNwdSBkZXNjcmlwdGlvbiBsZW5ndGguCiAgIAoxOTk5LTEyLTA3IDA4OjI5ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0gYWdlbnQvc25tcGQuW2NoXQogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgLSAgVXNlIHRoZSBzYXZlZCBhcHBsaWNhdGlvbiBuYW1lIGZvciByZWdpc3RlcmluZyBjb25maWcgaGFuZGxlcnMKICAgCShOLkI6IFRoaXMgY2hhbmdlIHdpbGwgbmVlZCB0byBiZSBhcHBsaWVkIHRvIE1JQiBtb2R1bGVzIGFzIHdlbGwpCiAgIAoxOTk5LTEyLTA3IDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB1c20uYzoKCiAgIFVzZSBhcmd2WzBdIHNpbmNlIHRoZSBhcHAgd29udCBiZSBzbm1wZ2V0bmV4dCwgcHJvYmFibHkuCiAgIAoxOTk5LTEyLTA2IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB1c20uYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNb3JlIGZ1biB1cGRhdGluZyBNUyBWQyBidWlsZCBvZiBhcHBzIGFuZCBsaWJyYXJ5LgogICAKMTk5OS0xMi0wNiAxNToxMSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi93aW4zMi5kc3cKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIC0gc3lzdGVtLmMsIGNvbmZpZy5oLCB3aW4zMi5kc3csICouZHNwLCBsaWJzbm1wLmRlZjogY2xlYW5pbmcgdXAgZm9yIFZDIGJ1aWxkcwogICAKMTk5OS0xMi0wNiAxNTowOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHVzbS5oOgoKICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCiAgIAoxOTk5LTEyLTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGZpeCB1c2FnZSBmb3IgbmV3IGFyZ3MuCiAgIAoxOTk5LTEyLTA2IDE0OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogbWFrZSB2MyB0ZXN0aW5nIHdvcmsgYWdhaW4uCiAgIAoxOTk5LTEyLTA2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6CiAgICAgLSBtYWtlIHNubXB1c20gdXNhYmxlIGFnYWluLCBjaGFuZ2luZyBhcmd1bWVudHMgc2xpZ2h0bHkuCiAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgogICAKMTk5OS0xMi0wNiAxNDozMiAgbmJhCgogICAqIHdpbjMyLzogYmluLy5jdnNpZ25vcmUsIGxpYi8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiBNYWtlIENWUyBzaWxlbnQgYWJvdXQgaW5zdGFsbGF0aW9uIGZpbGVzCiAgIAoxOTk5LTEyLTA2IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwcmludCBlcnJvciBzdHJpbmdzIHJldHVybmVkIGJ5IGdlbmVyYXRlX0t1KCkuCiAgIAoxOTk5LTEyLTA2IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBkZWZhdWx0IHNwZWNpZmljYXRpb25zIGZvciBhdXRoL3ByaXYgdHlwZXMuCiAgIAoxOTk5LTEyLTA2IDA5OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU2hvdyBhbGwgbm9uLXByaW50YWJsZSBzdWJpZHMgaW4gZHVtcF9vaWRfdG9fc3RyaW5nLgogICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCiAgIAoxOTk5LTEyLTA1IDIxOjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBlbnN1cmUgcHJvcGVyIGJ5dGUgb3JkZXJpbmcgd2hlbiBwYXNzJ2luZwogICAJaXBhZGRyZXNzLgogICAKMTk5OS0xMi0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgbGltaXRzLmggaW5jbHVkZS4KICAgCjE5OTktMTItMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB1c2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UuCiAgIAoxOTk5LTEyLTAzIDE2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3dpdGNoIHRvIFBJQyBmcm9tIHBpYy4KICAgCjE5OTktMTItMDMgMTU6MDUgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHJlbWVtYmVyIHRvIE5VTEwgYSBmcmVlZCBwb2ludGVyCiAgIAoxOTk5LTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKICAgCjE5OTktMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdCBoYW5kbGluZyBvZiBTSUdIVVAgdHAgcmVjb25maWd1cmUuCiAgIAoxOTk5LTEyLTAyIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogdHVybiBvbiBSRUdFWF9FWFRFTkRFRC4KICAgCjE5OTktMTItMDIgMDk6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjODEgLSBjb250aW51ZSBpbnN0YWxsIGFmdGVyIGVycm9yIGNyZWF0aW5nIHBlcnNpc3RlbnQgZGlyZWN0b3J5LgogICAKMTk5OS0xMi0wMiAwNTowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgIAl0byB0aGUgbGlicmFyeSwgc28gdGhhdCBzbm1wdHJhcGQgY2FuIHVzZSBpdC4KICAgCjE5OTktMTItMDIgMDQ6NDIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCiAgIAoxOTk5LTEyLTAyIDA0OjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAogICAKMTk5OS0xMi0wMSAxNjozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgVXNlIFNOTVBfTUFYQlVGIHdoZW4gZGVmaW5pbmcgbGFyZ2Ugc3RhdGljIGJ1ZmZlciBzdG9yYWdlLgogICAKMTk5OS0xMi0wMSAxNTo1NSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IGJ1ZyAjMTEyIGFuZCBmaW5pc2ggcGF0Y2ggc3VwcGxpZWQgYnkgQW50aG9ueSBTaGlwbWFuLgogICAKMTk5OS0xMi0wMSAxMDozOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgUHJldmVudCBvdmVyZmxvdyBvZiBvYmplY3QgSUQgaW4gZ2V0X21vZHVsZV9ub2RlLgogICBJbiBmaW5kX2Jlc3RfdHJlZV9ub2RlLCB0cmVhdCByZXN1bHQgZnJvbSByZWN1cnNlZCBjYWxsIHNhbWUgZm9yIG1hdGNoID0gMC4KICAgCjE5OTktMTItMDEgMDY6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEVycm9yIGNoZWNrIGFuZCBmcmVlIHJlc291cmNlcyBkdXJpbmcgcmVnZXggcHJvY2Vzc2luZy4KICAgCjE5OTktMTEtMzAgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgQWRkIG11bHRpcGxlIG1hdGNoIGNhcGFiaWxpdHkgdG8gZmluZF9iZXN0X3RyZWVfbm9kZSwgYW5kIHVzZSBpdCBpbgogICBzbm1wdHJhbnNsYXRlIChuZXcgLUIgb3B0aW9uKS4KICAgCjE5OTktMTEtMzAgMTQ6NDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCiAgIAoxOTk5LTExLTMwIDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jKTogaW1wbGVtZW50IHJlZ2V4IG1hdGNoaW5nCiAgICAgZXZlcnl3aGVyZS4KICAgCjE5OTktMTEtMzAgMTM6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbmNsdWRlIGN0eXBlLmgKICAgCjE5OTktMTEtMzAgMTM6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgRml4IC1UZCB1c2FnZSBkZXNjcmlwdGlvbjsgdXNlIHN3aXRjaCB3aGVuIGN1cnJlbnRfbmFtZSBpcyBOVUxMLgogICAKMTk5OS0xMS0zMCAwNzowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoxOTk5LTExLTMwIDA3OjA3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhZ2VudHgvbWFzdGVyLmMpOiBSZW1vdmUgcmVkdW5kZW50IHJvdXRpbmUuCiAgIAoxOTk5LTExLTMwIDAzOjAxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDoKCiAgIC0gc25tcF9hcGkuaCwgc25tcF9taWIuW2NoXTogQSBjb3VwbGUgYWRkaXRpb25hbCBTTk1QIHN0YXRpc3RpY3MgcG9pbnRzCiAgIAoxOTk5LTExLTI5IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhbm90aGVyIG5hbWUuCiAgIAoxOTk5LTExLTI5IDE0OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIHJlZ2V4LmgsIHJlZ2NvbXAsIHN0cmNhc2VzdHIuCiAgIAoxOTk5LTExLTI5IDE0OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogbWFrZSBiZXN0IG1hdGNoaW5nICgtYikgdXNlIHJlZ2V4IHdoZW4gYXZhaWxhYmxlLgogICAKMTk5OS0xMS0yOSAxNDowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHN5c3RlbS5jLCBzeXN0ZW0uaDoKCiAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IGltcGxlbWVudCBzdHJjYXNlc3RyIChmcm9tIE1pY2hhZWwgU2xpZmNhaykuCiAgIAoxOTk5LTExLTI5IDEyOjQzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICBVc2Ugc2l6ZV90IGZvciBuYW1lX2xlbiBtZW1iZXIuCiAgIAoxOTk5LTExLTI5IDExOjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGcmVlIFNUUkVBTSBwYWNrZXQgYnVmZmVyIHdoZW4gc2Vzc2lvbiBpcyBjbG9zZWQ7CiAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCiAgIAoxOTk5LTExLTI5IDEwOjM2ICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvbWFpbi5jCjoKCiAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIERFQlVHX01BTExPQ19JTkMgZnJhZ21lbnRzLgogICAKMTk5OS0xMS0yOSAxMDozMyAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwOgoKICAgRml4IHJlZmVyZW5jZSB0byBzbm1wbGliLgogICAKMTk5OS0xMS0yOSAxMDozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG50b2hzIG1hY3JvIHRvIGNhcmVmdWxseSBvYnRhaW4gdGhlIGRlZmF1bHQgc2VydmljZSBwb3J0LgogICAKMTk5OS0xMS0yOSAwNTo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wYnVsa2dldC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1vcmUgSFAtVVggYUNDIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTExLTI3IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgogICAKMTk5OS0xMS0yNyAwNjozMSAgbWFyegoKICAgKiBhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgIChhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZml4IC1yIHN3aXRjaCB0byBzdXByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGZhaWxlZCBrZXJuZWwgYW5kIGFkZCAtciB0byBkZWZhdWx0IHRlc3RpbmcgY29kZSBzbyAnbWFrZSB0ZXN0IGNhbiBiZSBydW4gYnkgdXNlcgogICAKMTk5OS0xMS0yNiAxMToxOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSBkZWZhdWx0X3N0b3JlLmM6IGFsdGhvdWdoIHJlYWRfY29uZmlnIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGRzX2hhbmRsZV9jb25maWcKICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgIAlpdCB3YXMgY2FsbGVkIGJ1dCBkaWRuJ3Qga25vdyB3aGF0IHRvIGRvLgogICAKMTk5OS0xMS0yNSAxNDo1NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBraWxsIHlldCBhbm90aGVyIHNpbGx5IHdhcm5pbmcgZnJvbSBnY2MKICAgCjE5OTktMTEtMjUgMTQ6NTYgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGRlZmF1bHRzX3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfcGFyc2VfYXJncy5jOiBhZGQgZGVmQ29tbXVuaXR5CiAgIAlkaXJlY3RpdmUKICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQogICAKMTk5OS0xMS0yNSAxNDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtIHVzbVVzZXIuYzogbmV3IHVzZXIgaXMgbm90IGFkZGVkIHVubGVzcyBib3RoIGF1dGggYW5kIHByaXYgaXMgc3BlY2lmaWVkCiAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQogICAKMTk5OS0xMS0yNSAxNDozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6CgogICAtIHNubXBfbWliLmg6IGZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwogICAKMTk5OS0xMS0yNSAxNDozMiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAJZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIAoxOTk5LTExLTI0IDExOjA3ICBtc2xpZmNhawoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCiAgIAoxOTk5LTExLTI0IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZDouCiAgIAoxOTk5LTExLTI0IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGNoYW5nZSBlZGl0aW5nIG9mIGNvbmZpZy5oIG5vdGUuCiAgIAoxOTk5LTExLTI0IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi90b29scy5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1c21Vc2VyLmMsCiAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICBrZXltYW5hZ2V0ZXN0LmMsIHNjYXBpdGVzdC5jLCBjb25maWcuaCk6CiAgICAgLSBmb3JjZSAtLWVuYWJsZS1kZXZlbG9wZXIgZm9yIENWUyBjaGVja291dHMuCiAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgogICAKMTk5OS0xMS0yNCAwOTowMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogUmVsZWFzZSBhbGxvY2F0ZWQgaW5kZXhlcyBvbiBzdWJhZ2VudCBzaHV0ZG93bi4KICAgCjE5OTktMTEtMjMgMDU6NDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgIC0gQXNzb2NpYXRlIHN1Y2ggcmVnaXN0cmF0aW9ucyB3aXRoIHRoZSBtYWluIHNlc3Npb24KICAgICAtIG5ldyByb3V0aW5lIHRvIHVucmVnaXN0ZXIgYWxsIGluZGV4ZXMgZm9yIGEgZ2l2ZW4gc2Vzc2lvbgogICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgLSBjbGVhbiB1cCBhc3NvcnRlZCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0xMS0yMyAwNToyMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgTWFrZSBtYWluIHNlc3Npb24gc3RydWN0dXJlIHZpc2libGUgdGhyb3VnaG91dCB0aGUgYWdlbnQsCiAgICAgIGFuZCB1c2UgdGhpcyBmb3IgQWdlbnRYIHN1YmFnZW50IGFzIHdlbGwuCiAgIAoxOTk5LTExLTIzIDAyOjIwICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKICAgCjE5OTktMTEtMjMgMDI6MTEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N0b3JhZ2UuYyBob3N0L2hyX3N3cnVuLmMpOiBHdWFyZCBhZ2FpbnN0IGNhbGN1bGF0aW9uIG92ZXJmbG93CiAgIAoxOTk5LTExLTIzIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgCShSZXBvcnRlZCBieSBNaXRjaCBTaGllbGRzKQogICAKMTk5OS0xMS0yMyAwMToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYXJndW1lbnRzIChpbnQgPT4gc2l6ZV90KS4gVGhhbmtzIHRvCiAgIAlBbnRob255IFNoaXBtYW4gPGFzaGlwbWFuQGVyZ2dyb3VwLmNvbT4KICAgCjE5OTktMTEtMjMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIElQU0VDLU1JQi50eHQ6IGNoYW5nZSBzb21lIHVuZGVybGluZXMgaW50byBkYXNoZXMsIGFuZCByZXBhaXIgdGhlCiAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0Oi0pKQogICAKMTk5OS0xMS0yMyAwMToyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KICAgCjE5OTktMTEtMjIgMTc6NTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KICAgCjE5OTktMTEtMjIgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggbGVuZ3RoIGNoZWNrIG9mIGtleSBzcGFjZS4KICAgCjE5OTktMTEtMjIgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHNubXB2My91c21Vc2VyLmMKOgoKICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYyk6IG5ldyBjb25maWcgdG9rZW5zIGFsbG93aW5nIGVhc3kgdXNlciBhbmQKICAgICB2YWNtL3VzZXIgY29uZmlndXJhdGlvbiBhbmQgc2V0dXAuCiAgIAoxOTk5LTExLTIyIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlIGNyZWF0aW9uIG9mIGluaXRpYWwgYW5kIHRlbXBsYXRlKiB1c2Vycy4KICAgCjE5OTktMTEtMjIgMTM6MDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHRjcC5jKTogUGF0Y2gKICAgICBmcm9tIEdhcnJldHQgV29sbG1hbjoKICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgogICAKMTk5OS0xMS0yMiAxMjo1MyAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKOgoKICAgLSAqOiBjaGFuZ2UgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucyB0byBhCiAgIAljb25zdCBzdHJpbmcKICAgCjE5OTktMTEtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHVjZC1zbm1wL3Bhc3MuYwo6CgogICAtICh2YWNtX3ZhcnMuYywgcGFzcy5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zLgogICAKMTk5OS0xMS0yMiAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCiAgIAoxOTk5LTExLTIyIDA5OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsCjoKCiAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSB0ZXN0cyBmb3IgbmV3CiAgICAgZXJyb3IgbWVzc2FnZXMuCiAgIAoxOTk5LTExLTIyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhvc3RfcmVzLmgsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgogICAKMTk5OS0xMS0yMiAwOTowNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgbW9yZSBwZW9wbGUgdG8gdGhlIHRoYW5rcyBsaXN0LgogICAKMTk5OS0xMS0yMiAwOTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucyBwb2ludGVkIG91dCBieSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk5LTExLTIyIDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAtIEFkZGVkIGNvZGUgdG8gaGFuZGxlIHNwYXJzZSB0YWJsZXMuCiAgIAoxOTk5LTExLTIyIDA4OjIxICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlOgoKICAgQWRkIENWUyBpZ25vcmUgbGlzdCBmb3Igd2luMzIvbGliYWdlbnQuCiAgIAoxOTk5LTExLTIyIDA4OjIwICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3A6CgogICBSZXRyeSBhZGQgTVNWQysrIHByb2plY3QgZmlsZS4KICAgCjE5OTktMTEtMjIgMDc6MzAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgSW5kZXggZGUtYWxsb2NhdGlvbiwgYW5kIEFnZW50WCBpbmRleCBzdXBwb3J0LgogICAKMTk5OS0xMS0yMiAwNzoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCiAgIAoxOTk5LTExLTIyIDA2OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBpcHY2LmM6IHVwZ3JhZGUgdG8gdGhlIGN1cnJlbnQgS2FtZSBwYXRjaAogICAKMTk5OS0xMS0yMiAwNTozMiAgbmJhCgogICAqIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwgbWlicy9JUFY2LVVEUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCjoKCiAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgCXRhYmxlcyB0byB0aGVpciBwcm9wZXIgcG9zaXRpb24gaW4gdGhlIHRyZWUsIGFjY29yZGluZyB0byB0aGUgUkZDLgogICAKMTk5OS0xMS0yMiAwNToyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKICAgCjE5OTktMTEtMjIgMDU6MjggIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiByZWluc3RhdGUgc25tcGQgLWEgZnVuY3Rpb25hbGl0eQogICAKMTk5OS0xMS0yMiAwNToyOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAgc25tcF9sb2dnaW5nLmM6IG9ubHkgdGltZXN0YW1wIGVmdGVyIGEgbmV3bGluZQogICAKMTk5OS0xMS0yMiAwNToyNyAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBjb25maWd1cmUgdGVzdCBmb3IgbmV0aW5ldC9pcC5oCiAgIAoxOTk5LTExLTE5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGRpc2suYywgZGlzay5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCiAgIAoxOTk5LTExLTE5IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgIC0gbWFrZSBzbm1wX3NlbGVjdF9pbmZvIHBvc3NpYmx5IGhhbmRsZSBhbGFybSB0aW1lcnMuCiAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgogICAKMTk5OS0xMS0xOSAxMzo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZml4IG1pYjJjLnN0b3JhZ2UuY29uZi4KICAgCjE5OTktMTEtMTkgMTE6MDYgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogUHJvdmlkZSBtaXNzaW5nIGluZGV4IGFsbG9jYXRpb24gZGVmaW5lcy4KICAgCjE5OTktMTEtMTggMTg6MjAgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9kb3RfY29uZi5oLAogICBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJ1Y2RtaWJzLy5jdnNpZ25vcmUsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHNubXBkLy5jdnNpZ25vcmUsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIE1vcmUgTVNWQysrIFdpbjMyIGFnZW50IGZpbGVzLCBncmF0aXMgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xOCAxODoxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3OgoKICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KICAgCjE5OTktMTEtMTggMTc6NTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFwcHMvc25tcGJ1bGtnZXQuYwo6CgogICBDaGVjay1pbiBhZ2VudCBjaGFuZ2VzIHRvIHN1cHBvcnQgV2luMzIgYWdlbnQgYnVpbHQgd2l0aCBNU1ZDKysuCiAgIFRoYW5rcyB0byBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDIxOjUxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIGRlZmF1bHRfc3RvcmUuYzogZHNfdG9nZ2xlX2Jvb2xlYW4gbWlzc2VkIGEgbWFzawogICAKMTk5OS0xMS0xNyAxMzowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogdXBkYXRlLiAgRGVhbHMgd2l0aCBSb3dTdGF0dXMgb2JqZWN0cyBiZXR0ZXIuCiAgIAoxOTk5LTExLTE3IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUuCiAgIAoxOTk5LTExLTE3IDEzOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiB1cGRhdGUgdGhlIHNvIExEIGZvciBsaW51eCB0byAkKENDKS4KICAgCjE5OTktMTEtMTcgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoZHNfYWdlbnQuaCwga2VybmVsLmMsIHNubXBkLmMsIHNubXBkLjEuZGVmKToKICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKICAgCjE5OTktMTEtMTcgMDc6MzYgIG1zbGlmY2FrCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIEFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcHMgdG8gYnVpbGQuCiAgIAoxOTk5LTExLTE3IDA3OjM1ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wYnVsa2dldC86IC5jdnNpZ25vcmUsIHNubXBidWxrZ2V0LmRzcDoKCiAgIFByb2plY3QgZmlsZSBmb3IgYnVpbGRpbmcgc25tcGJ1bGtnZXQgdXNpbmcgTVNWQysrIGdyYXRpcyBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDA1OjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBSZXBsYWNlIHVfaW50MTZfdCB3aXRoIG1vcmUgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIHVfc2hvcnQuCiAgIAoxOTk5LTExLTE2IDE0OjU2ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIEJ1aWxkIHdpdGggZ2V0b3B0LgogICAKMTk5OS0xMS0xNiAxNDo0MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcAosIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgTVNWQyB0b3VjaHVwczoKICAgQWRkZWQgc25tcHRyYXBkIHByb2plY3QgLkRTUCBmaWxlOyBBbGwgLkRTW1BXXSBmaWxlcyBDUi1MRiBsaW5lIHRlcm1pbmF0ZWQ7CiAgIEZpeCB3YXJuaW5ncyBpbiBhc24xLmMgYW5kIHNubXBfYXBpLmM7IFJlbW92ZSB1bnVzZWQgdmFyIGluIHNubXB0cmFuc2xhdGUuYy4KICAgCjE5OTktMTEtMTYgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB0aGUgVDogZmxhZyBmb3IgLVQgdG8gZ2V0b3B0CiAgIAoxOTk5LTExLTE2IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCiAgIAoxOTk5LTExLTE2IDA5OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jKTogRml4IGVuY29kaW5nIG9mIHJvb3QgT0lEcy4KICAgCjE5OTktMTEtMTYgMDg6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIEVtYnJhY2UgYWxsIEhQLTkwMDAvNnh4LDd4eCwgOHh4IHNlcmllcyBwbGF0Zm9ybXMsIHdpdGhvdXQgcmVncmV0cy4KICAgCjE5OTktMTEtMTYgMDY6MjEgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmM6IHJlZG8gdGhlIHNubXB0cmFuc2xhdGUgb3B0aW9ucwogICAJdG8gZm9sbG93IHRoZSBjb21tb24gb3B0aW9uIHNldC4gSXNzdWUgd2FybmluZ3Mgd2hlbiBzb21lb25lCiAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KICAgCjE5OTktMTEtMTYgMDM6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCiAgIAoxOTk5LTExLTE1IDIxOjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKICAgCjE5OTktMTEtMTUgMTc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FnZW50LmMsIG1hc3Rlci5jLCBwcm90b2NvbC5jLCBwcm90b2NvbC5oLCBzdWJhZ2VudC5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbWFrZSBUQ1Agc3VwcG9ydCBiZXR0ZXIgZm9yIGFnZW50eC4gIFN0aWxsIGhhcyBhIHByb2JsZW0gKEkgYnJva2UgYWdlbnR4KS4KICAgCjE5OTktMTEtMTUgMTY6NDMgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFkZCBOVUxMIHZhcmJpbmQgd2hlbiBFTkRPRk1JQlZJRVcgaXMgcmVhY2hlZC4KICAgCjE5OTktMTEtMTUgMTU6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgIGFuZCBkZWFsaW5nIHdpdGggcGllY2VzIG9mIGluY29taW5nIGRhdGEgdGlsbCB3ZSBoYXZlIGEgZnVsbCBwYWNrZXQuCiAgIAoxOTk5LTExLTE1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgCjE5OTktMTEtMTUgMTU6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIHNubXBuZXRzdGF0L21haW4uYwo6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMpOgogICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAogICAKMTk5OS0xMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgpOiBuZXcgZnVuY3Rpb246IGFzbl9jaGVja19wYWNrZXQoKS4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGluc2VydGVkLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogZG9uJ3QgY2FsbCBzdWJhZ2VudF9wcmVfaW5pdCgpLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgdGttaWI6CgogICAtIChtaWIyYywgdGttaWIpOiByZW1vdmUgLXcuCiAgIAoxOTk5LTExLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCiAgIAoxOTk5LTExLTE1IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KICAgCjE5OTktMTEtMTUgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIChtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYyk6IG1vdmUgc3ViYWdlbnRfcHJlX2luaXQoKSB0byBpbml0X2FnZW50KCkuCiAgIAoxOTk5LTExLTE1IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCiAgIAoxOTk5LTExLTE1IDE0OjA5ICBuYmEKCiAgICogLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoxOTk5LTExLTE1IDE0OjA1ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5OS0xMS0xNSAxNDowMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgUkZDMTI3MS1NSUIudHh0LCBSTU9OLU1JQi50eHQKOgoKICAgLSBtaWJzLzogcmVwbGFjZSBSRkMxMjcxLU1JTi50eHQgd2l0aCBSTU9OLU1JQi50eHQgKFJGQyAxNzU3IHZlcnNpb24pCiAgIAoxOTk5LTExLTE1IDE0OjAwICBuYmEKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wYnVsa2dldC5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICBzbm1wYnVsa2dldC5jOiBuZWVkcyAjaW5jbHVkZSA8Z2V0b3B0Lmg+IChUaGFua3MgdG8gUm9iZXJ0IFN0b3J5KQogICAKMTk5OS0xMS0xNSAwODoyOSAgbXNsaWZjYWsKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIEZpeCBkZXNjcmlwdGlvbiBvZiByZWFkX29iamlkIHJldHVybiB2YWx1ZS4KICAgCjE5OTktMTEtMTUgMDc6NTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKICAgCjE5OTktMTEtMTQgMDY6MzIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIG1ha2V0YXJnZXQsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1pYnMvSVBTRUMtTUlCLnR4dCwKICAgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwgbWlicy9JUFY2LU1JQi50eHQsCiAgIG1pYnMvSVBWNi1UQy50eHQsIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwKICAgbWlicy9JUFY2LVVEUC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluOgoKICAgLSBpcGM2OiBBZGQgdGhlIElQdjYgY29kZSBmcm9tIHRoZSBLYW1lIHByb2plY3QuIEkgaGF2ZSBvbmx5IG1hc3NhZ2VkCiAgIAlpdCBzbyBtdWNoIGFzIHRvIHN0aWxsIGNvbXBpbGUgb24gbm9uLUlQdjYgc3lzdGVtcywgYW5kIGRldGVjdAogICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAJYXV0aG9yOiBpdG9qdW5AaWlqbGFiLm5ldAogICAKMTk5OS0xMS0xNCAwNjoxNSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gc25tcHRyYXBkLjg6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDA2OjEyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDAyOjQyICBuYmEKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIFNOTVB2Mi1DT05GLnR4dDogY29tbWVudCBvdXQgdGhlIElNUE9SVCBjbGF1c2UKICAgCjE5OTktMTEtMTQgMDI6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmMsIHNubXB0cmFuc2xhdGUuYzogbW92ZSB0aGUgTUlCOmlkIGhhbmRsaW5nIGluc2lkZSByZWFkX29iamlkIGZvcgogICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwogICAKMTk5OS0xMS0xNCAwMjowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQogICAKMTk5OS0xMS0xNCAwMjowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzoga2lsbCBhIHdhcm5pbmcKICAgCjE5OTktMTEtMTQgMDE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LCBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQKLCBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAosIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQKLCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsCiAgIG1pYnMvU05NUHYyLVNNSS50eHQsIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gbWlicy8qLCB2YWNtX3ZhcnMuaDogdXBkYXRlIHRoZSBtaWIgZmlsZXMgdG8gcmZjIDI1NzEtMjU3NS4gQWxzbyBhZGQKICAgCVNOTVBfQ09NTVVOSVRZX01JQiBmcm9tIHRoZSBjb2V4IGRyYWZ0LgogICAKMTk5OS0xMS0xNCAwMTo1NCAgbmJhCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCiAgIAoxOTk5LTExLTE0IDAxOjUzICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBtYW4vc25tcGJ1bGtnZXQuMSwgbWFuL01ha2VmaWxlLmluOgoKICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CiAgIAoxOTk5LTExLTE0IDAxOjUxICBuYmEKCiAgICogbWFuL3NubXB0YWJsZS4xOgoKICAgLSBzbm1wdGFibGU6IGFkZCBpbiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgc25tcHRhYmxlIG9wdGlvbnMgYmV0d2VlbgogICAJdGhlIG5vcm1hbCBvcHRpb25zLgogICAKMTk5OS0xMS0xNCAwMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZSwgc25tcF9wYXJzZV9hcmdzOiBhbGxvdyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgb3B0aW9ucyB0bwogICAKMTk5OS0xMS0xMiAxMzowMSAgbWFyegoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgbGNkX3RpbWUuaCwgc25tcHVzbS5jOgoKICAgIChsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBmaXggZW5naW5ldGltZSB1cGRhdGUgYWxnb3JpdGhtIHRvIGNvbmZvcm0gdG8gc3BlYyByZmMyNTc0IDMuMi43LmIuMQogICAKMTk5OS0xMS0xMiAwODo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgYWxsIGluY29taW5nIFBEVXMKICAgCjE5OTktMTEtMTEgMjI6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmM6IGFsaWdubWVudCBvZiBvcHRpb24gY29kZS4KICAgCVNvbWUgZW5oYW5jZW1lbnRzIHRvIHRoZSBzbm1wdHJhbnNsYXRlIC1kIG91dHB1dC4KICAgCjE5OTktMTEtMTEgMjI6MTQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBzbm1wY21kLjE6IHVwZGF0ZSBtYW4gcGFnZSB0byBjb3JyZXNwb25kIHRvIHRoZSBuZXcgZ2V0b3B0IHNpdHVhdGlvbgogICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAJcGFnZSwgdGhleSBzdGlsbCB3b3JrIQogICAKMTk5OS0xMS0xMSAwMzozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSAoYWdlbnR4L2NsaWVudC5jKTogU2lsbHkgdHlwbyBpbiBzdGFydCB0aW1lIHN5bmNocm9uaXNhdGlvbgogICAKMTk5OS0xMS0xMCAyMjoxMCAgbmJhCgogICAqIHdpbjMyLzogLmN2c2lnbm9yZSwgZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLAogICBsaWJzbm1wLy5jdnNpZ25vcmUsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsLy5jdnNpZ25vcmUsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICBzbm1wZGVsdGEvLmN2c2lnbm9yZSwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcsCiAgIHNubXBnZXQvLmN2c2lnbm9yZSwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvLmN2c2lnbm9yZSwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLAogICBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBzbm1wc2V0Ly5jdnNpZ25vcmUsCiAgIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvLmN2c2lnbm9yZSwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRhYmxlLy5jdnNpZ25vcmUsCiAgIHNubXB0ZXN0Ly5jdnNpZ25vcmUsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnCiwgc25tcHRyYXAvLmN2c2lnbm9yZSwgc25tcHRyYXAvc25tcHRyYXAucGxnLAogICBzbm1wdHJhcGQvLmN2c2lnbm9yZSwgc25tcHVzbS8uY3ZzaWdub3JlLAogICBzbm1wd2Fsay8uY3ZzaWdub3JlLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIHdpbjMyLyo6IGNsZWFuIHVwIHJlcG9zaXRvcnkgZmlsZXMsIGFuZCBhZGQgcHJvcGVyIC5jdnNpZ25vcmUgZmlsZXMKICAgCjE5OTktMTEtMTAgMTU6MjkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3A6CgogICAtIGFwcHMvKjogY2hhbmdlcyBmb3IgZ2V0b3B0IHVzYWdlLCBhbmQgcmV3b3JraW5nIG9mIHNubXBfcGFyc2VfYXJncwogICAKMTk5OS0xMS0xMCAxMjoyMCAgbmJhCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICAtIHdpbjMyLyouZHNwOiB5ZXQgYW5vdGhlciByb3VuZCBvZiBtYWtpbmcgdGhpcyBjcmFwIHdvcmsKICAgCjE5OTktMTEtMTAgMDg6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggQWdlbnRYIG5vdGlmeSBzdXBwb3J0CiAgIAoxOTk5LTExLTEwIDA4OjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgogICAKMTk5OS0xMS0xMCAwODo1NyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKICAgCjE5OTktMTEtMTAgMDg6MzEgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgLSB3aW4zMi8qOiBWQysrIHByb2plY3QgdXBkYXRlcwogICAKMTk5OS0xMS0xMCAwODozMCAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIC0gd2luMzIvKjogZml4ZXMgdG8gdGhlIFZDKysgYnVpbGQgcHJvamVjdHMKICAgCjE5OTktMTEtMDkgMjM6MzAgIG5iYQoKICAgKiBzbm1wbGliL2dldG9wdC5oOgoKICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCiAgIAoxOTk5LTExLTA5IDIyOjIwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC4gc25tcF9wYXJzZV9hcmdzLmM6IGEgZ2xpdGNoIGluIHRoZSBjb252ZXJzaW9uIHRvIGdldG9wdCAodGhhbmtzIHRvCiAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQogICAKMTk5OS0xMS0wOSAxNToxNSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5vcHQsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZwosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZwo6CgogICAtIHZhcmlvdXM6IGFkYXB0IHRvb2xzIHRvIHVzZSBnZXRvcHQgKGFuZCBwdXQgb25lIGluIGZvciBXaW4zMikKICAgCjE5OTktMTEtMDkgMTM6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIERFTU8tTUlCLgogICAKMTk5OS0xMS0wOSAxMzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogcmVxdWlyZSB0aGUgREVNTy1NSUIgKGp1c3QgZm9yIHR1dG9yaWFsIHB1cnBvc2VzKS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1ILgogICAKMTk5OS0xMS0wOSAxMjo1OSAgbmJhCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBzbm1wdHJhcGQuYyxzbm1wdHJhcGRfaGFuZGxlcnMuYzogbWFrZSBpdCBjb21waWxlIHdpdGggVkMrKyA1LjAKICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCiAgIAoxOTk5LTExLTA5IDAxOjUwICBuYmEKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMsCiAgIHBhcnNlLmg6CgogICAtIG1pYi5jLHBhcnNlLmM6IG1ha2UgZXJyb3IgcmVwb3J0aW5nIGluIHBhcnNlciB3b3JrIGFjY29yZGluZyB0byBzcGVjICgtUGUpCiAgIAlzaG93IGRlZmluaW5nIG1vZHVsZXMgaW4gc25tcHRyYW5zbGF0ZSAtZAogICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCiAgIAoxOTk5LTExLTA1IDA2OjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIFNheSBnb29kYnllIHRvIFNOTVBfTUFMTE9DLCBtYWxsb2NfemVybywgeGNhbGxvYywgeG1hbGxvYywgYW5kIHhzdHJkdXAuCiAgIFJlc3BlY3RpdmVseSByZXBsYWNlZCB3aXRoIGNhbGxvYywgY2FsbG9jLCBjYWxsb2MsIG1hbGxvYywgYW5kIHN0cmR1cC4KICAgCjE5OTktMTEtMDQgMTM6NDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTcGVlZCB1cCBzcHJpbnRfdmFyaWFibGU6IGhhbHZlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gZ2V0X3N5bWJvbC4KICAgCjE5OTktMTEtMDQgMTA6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogbW92ZSAtcSBmbGFncyB0byAtTy4KICAgCjE5OTktMTEtMDQgMTA6MTkgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlZG8gRnJlZUJTRCA0LjA6IGRlZmluZSBmcmVlYnNkMyBpbiBzL2ZyZWVic2Q0Lmg7IHJlZHVjZSAiZGVmaW5lIiB0aHJhc2hpbmcuCiAgIAoxOTk5LTExLTA0IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGluY2x1ZGUgaGVhZGVycyBmb3IgY29tcGlsYXRpb24gZm9yIGJvdGggaW50ZXJuYWwgYW5kCiAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KICAgCjE5OTktMTEtMDQgMTA6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgLSBkZWZpbmUgSU5fVUNEX1NOTVBfU09VUkNFIGluIGNvbmZpZy5oIGJ1dCBub3QgaW4gdWNkLXNubXAtY29uZmlnLmguCiAgICAgLSBtb3ZlIHVjZC1zbm1wLWNvbmZpZy5oIHVwIGluIHRoZSBidWlsZCBvcmRlciBiZWZvcmUgc3ViZGlycy4KICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAtIE1ha2UgTUlCRElSUyBwYXJzaW5nIGhhbmRsZSAkSE9NRSB2YXJpYWJsZXMgaW4gaXQuCiAgIAoxOTk5LTExLTA0IDA1OjEyICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KICAgCjE5OTktMTEtMDQgMDQ6MzMgIG1zbGlmY2FrCgogICAqIEFHRU5ULnR4dDoKCiAgIENoYW5nZSBleGFtcGxlIGF3YXkgZnJvbSBTVERDX0hFQURFUlMuCiAgIAoxOTk5LTExLTA0IDA0OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBtaWJncm91cC9taWJJSS9hdC5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgTW9yZSBTVERDX0hFQURFUlMgY2xlYW51cDogdXNlIEhBVkVfU1RSSU5HX0gsIEhBVkVfU1RETElCX0ggaW5zdGVhZC4KICAgCjE5OTktMTEtMDQgMDI6NDIgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIHRvIGJ1aWxkIEJTRC9PUyA0LjAuMTsgZnJvbSBCZXJ0IERyaWVodWlzIC0tIGRyaWVodWlzQHBsYXliZWluZy5vcmcKICAgCjE5OTktMTEtMDMgMTM6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wOiBrZXkgb2ZmIEdOVV9MSUJSQVJZIHZhbHVlLgogICAKMTk5OS0xMS0wMyAxMzoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYwosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwosIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLAogICB1Y2Qtc25tcC9wcm9jLmg6CgogICBGb2xsb3dpbmcgY2FsbCB0byBmZG9wZW4gKG5lYXIgZ2V0X2V4ZWNfb3V0cHV0KSwgZG8gbm90IGNsb3NlKGZkKS4KICAgCjE5OTktMTEtMDMgMDY6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE5lYXIgbGluZSA2NjM6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCiAgIAoxOTk5LTExLTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBkZWNsYXJlIGZpbmRfYmVzdF90cmVlX25vZGUgZm9yIE1TVkMgYnVpbGQuCiAgIAoxOTk5LTExLTAyIDE1OjQ2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHNubXBfYWdlbnRfYXBpLjMKICAgCjE5OTktMTEtMDIgMTU6MzYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvY29uZmlnLmg6CgogICBVc2UgSEFWRV9TVERBUkdfSCB3aGVuIGRlY2lkaW5nIHRvIHVzZSB2YXJhcmdzIHZzIEFOU0ktQyBwcm90b3R5cGVzLgogICAKMTk5OS0xMS0wMiAwOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBvdGhlciBoZWFkZXIgZmlsZXMgbmVlZGVkIGJ5IFNOTVAucG0uCiAgIAoxOTk5LTExLTAxIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAtIGRvbid0IGJyZWFrIG9pZHMgaW50byBwaWVjZXMgaWYgcXVpY2tfcHJpbnQgaXMgdHVybmVkIG9uLgogICAgIC0gZGl0dG8gaWYgdGhlIG5ldyBkZWZhdWx0X3N0b3JlIG9wdGlvbiBpcyB0dXJuZWQgb24uCiAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KICAgCjE5OTktMTAtMjkgMTk6NTQgIG1hcnoKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAogICAKMTk5OS0xMC0yOSAxNjo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgaXQgZG8gc25tcHYzLiAgQWRkZWQgbWFueSB0aGluZ3MgdG8gdGhlIG9wdGlvbnMgbWVudS4KICAgCjE5OTktMTAtMjkgMTA6MTUgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBkZWZhdWx0X3N0b3JlLjN7LC5ofQogICAKMTk5OS0xMC0yOSAxMDoxNSAgaGFyZGFrZXIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuaDoKCiAgIC0oZGVmYXVsdF9zdG9yZS4zeywuaH0pOiByZW1vdmVkIGZyb20gQ1ZTIHNpbmNlIHRoZXkgYXJlIGJ1aWx0CiAgIAoxOTk5LTEwLTI5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQogICAKMTk5OS0xMC0yOSAxMDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgIC0gc25tcCBvdmVyIFRDUCBvcHRpb25zOiAtVCBUQ1AuCiAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KICAgCjE5OTktMTAtMjkgMDk6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IHR3byBuZXcgcHJpbnRpbmcgb3B0aW9uczoKICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAtIHByaW50TnVtZXJpY0VudW1zCiAgIAoxOTk5LTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAogICAKMTk5OS0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KICAgCjE5OTktMTAtMjkgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBQYXRjaCBmcm9tIEtlaXRoIFR1c29uOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMTAtMjggMDY6NDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICByZXBocmFzZSBzdWJ0cmVlIG5vdCBmb3VuZCBjb2RlIGluIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMC0yOCAwNToyNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaDoKCiAgIE9vcHMhIHJlc3RvcmUgdmVyc2lvbiByMS4xMzEuCiAgIAoxOTk5LTEwLTI4IDA1OjIzICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaDoKCiAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KICAgCjE5OTktMTAtMjggMDQ6NTUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERhdmUncyBjb21tZW50IGFib3V0IHByZV9wYXJzZSBldGMuIHdhcyB0b28gZ29vZCB0byBsb3NlIGluIGUtbWFpbC4KICAgCjE5OTktMTAtMjcgMTc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiB3YXRjaCBmb3IgbnVsbCBjb21tdW5pdGllcyB3aGVuIHByaW50aW5nIGRlYnVnIHN0YXRlbWVudHMuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBiYWlsIGlmIHdlIGNhbid0IGZpbmQgYW4gaW5kZXggaW4gdGhlIG1pYiB0cmVlIHRvIHVzZSBmb3IKICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgogICAKMTk5OS0xMC0yNyAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZCBkZWZhdWx0X3N0b3JlLmggYW5kIHNubXBfbG9nZ2luZy5oCiAgIAoxOTk5LTEwLTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmg6CgogICAtIChsY2RfdGltZS5oKTogZGVmaW5lIGFuZCBjb21tZW50IExDRF9USU1FX1NZTkNfT1BUIGJldHRlci4KICAgCjE5OTktMTAtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIG1hcmsgcmVnaW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGVmYXVsdF9zdG9yZS4zIG1hbnVhbCBwYWdlLgogICAKMTk5OS0xMC0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywKICAgZGVmYXVsdF9zdG9yZS4zLmJvdCwgZGVmYXVsdF9zdG9yZS4zLmgsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjM6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICAgIGRlZmF1bHRfc3RvcmUuMy5oLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zKToKICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KICAgCjE5OTktMTAtMjcgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogc2ltcGxlIGRlYnVnZ2luZyBzbyB5b3UgY2FuIHdhdGNoIHN0dWZmIHJlZ2lzdGVyLgogICAKMTk5OS0xMC0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgIHdyYXAgYXJvdW5kIHRoZSB2YXJpb3VzIGFnZW50IGluY2x1ZGUgZmlsZXMuCiAgIAoxOTk5LTEwLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmgpOiBwcm90b3R5cGUgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjE5OTktMTAtMjcgMTQ6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggdXAgdWNkLXNubXAtY29uZmlnLmggYnVpbGRpbmcuCiAgIAoxOTk5LTEwLTI2IDEwOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBBbGxvdyB1bnNpZ25lZCByYW5nZSBmb3IgY291bnRlci9nYXVnZS90aW1ldGlja3MgKGZpeCBCVUcjODQgcGVyIFNhbmRlciBTdGVmZmFubikuCiAgIAoxOTk5LTEwLTI1IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBwYXJzZS5jKTogaGFjayB0byBkbyB3aWxkIGNhcmQgc2VhcmNoZXMgZm9yIGEgbWliIG5vZGUuCiAgIAoxOTk5LTEwLTI1IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGVuYWJsZSAtcCBwcmludGluZyBvZiBvbmx5IGEgc2VjdGlvbiBvZiB0aGUgbWliIHRyZWUuCiAgIAoxOTk5LTEwLTI1IDE0OjEyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgLSAqOiBjb25maWd1cmUgc3VwcG9ydCBmb3IgZG1hbGxvYyBtYWxsb2MgZGVidWdnZXIgKHd3dy5kbWFsbG9jLmNvbSkKICAgCjE5OTktMTAtMjUgMTQ6MDggIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGQuY29uZi41LmRlZjogbWlub3IgcXVpcmsKICAgCjE5OTktMTAtMjUgMTQ6MDcgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSBzbm1wZGVsdGEuYzogQ09VTlRFUjY0IHdpbGwgZGVyZWZlcmVuY2UgZnJlZWQgcG9pbnRlcgogICAKMTk5OS0xMC0yNSAxMzo1NiAgbmJhCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoCiwgZXZhbF90b29scy5zaDoKCiAgIC0gUlVOVEVTVFMsIFRFU1RDT05GLnNoIGV2YWxfb25lc2NyaXB0LnNoIGV2YWxfdG9vbHMuc2g6IHN1cHBvcnQgbm9uLWJhc2gKICAgCXNoZWxscyAoZWNobyAtbiB2cyBlY2hvIFxcYykuIERvbid0IHJlcXVpcmUgLiBpbiBQQVRICiAgIAoxOTk5LTEwLTI1IDEzOjQwICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gY29uZmlndXJlLmluLCBwcm9jLmM6IHN1cHBvcnQgZm9yIEZyZWVCU0QgMi4xIHdoZXJlIHBzIGRvZXNuJ3QgaGF2ZSBjIGZsYWcKICAgCjE5OTktMTAtMjUgMTM6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIExpbnV4IHBhcnQKICAgCjE5OTktMTAtMjUgMDg6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtaWIuYywgc2NhcGkuYzoKCiAgIG1pbm9yIHJld29yayB0byBjbGFyaWZ5IHNpZ25lZCBjb21wYXJlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEwLTI0IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHByZW1pYiBkaXJlY3RpdmVzIHdlcmVuJ3QgZ2V0dGluZyByZWFkIGR1ZSB0byBhIG1pc3NpbmcgbmVnYXRpb24gKCEpLgogICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgogICAKMTk5OS0xMC0yNCAwODoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICBoYW5kbGUgbXVsdGlwbGUgY2FsbHMgKGFkZGl0aXZlKSBhbmQgJysncyBhbmQgdGhpbmdzLgogICAKMTk5OS0xMC0yNCAwODoyNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB0eXBvLgogICAKMTk5OS0xMC0yNCAwODoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNOTVBDT05GUEFUSCB1c2VzIHN5c2NvbmZkaXIgbm90IGRhdGFkaXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oCiwgc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBrZXl0b29scy5jLAogICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgIC0gdXNlIG9wZW5zc2wgZm9yIG1kNS9zaGEgc3VwcG9ydCAoZnJvbSBPbGFmdXIgR3VkbXVuZHNzb24pLgogICAKMTk5OS0xMC0yMiAxMDoxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERpc3BsYXkgX3NvbWVfIG9jdGV0IHN0cmluZyBpbmRpY2VzIG9mIG9iamVjdCBpZGVudGlmaWVycyBhcyBxdW90ZWQgcHJpbnRhYmxlLgogICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgogICAKMTk5OS0xMC0yMiAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIGhleCBzdHJpbmdzIGluc2lkZSBvaWRzLgogICAKMTk5OS0xMC0yMiAwNzozOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQogICAKMTk5OS0xMC0yMiAwNjoyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgRml4IEJVRyAjODMuCiAgIAoxOTk5LTEwLTIxIDEyOjU0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KICAgCjE5OTktMTAtMjEgMTI6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNtYWxsIHBhdGNoIGZyb20gTS4gTGF1a2thbmVuIHRvIGZpeCBIUCBhQ0MgYnVpbGQuCiAgIAoxOTk5LTEwLTIxIDEyOjA5ICBtc2xpZmNhawoKICAgKiBtYW4vOiBzbm1wX2FwaS4zLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBkLjEuZGVmCiwgc25tcG5ldHN0YXQuMSwgc25tcHRlc3QuMToKCiAgIEZpeCBCVUcjNzgKICAgCjE5OTktMTAtMjEgMTA6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB1c2Ugc25tcF9vcGVuX2V4LgogICAKMTk5OS0xMC0yMSAxMDo0MSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICByZW1pbmRlcnMgZm9yIHNubXBfc2Vzc19wZXJyb3IgdXNhZ2UgYWZ0ZXIgb3Blbi4KICAgc25tcHRhYmxlLmMgLSBvcGVuL2Nsb3NlIHNlc3Npb24gZnJvbSBtYWluKCkuCiAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCiAgIAoxOTk5LTEwLTIxIDEwOjM5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBGaXh1cHMgZm9yIGJ1aWxkaW5nIHdpdGggTVNWQysrLiAobm8gaHB1eC5jLCBzdXBwbHkgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUykuCiAgIAoxOTk5LTEwLTIxIDEwOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMKLCBzbm1wX2FwaS5oOgoKICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgcmVhZF9jb25maWcuYyAtIGRyb3AgdW51c2VkIHZhcmlhYmxlLgogICBzbm1wX2FwaS5jIC0gbmV3IG1ldGhvZCBzbm1wX29wZW5fZXggcmVwbGFjZXMgc2V0IGludGVybmFsIGhvb2sgZnVuY3Rpb25zLgogICAKMTk5OS0xMC0yMSAxMDoyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KICAgCjE5OTktMTAtMjEgMTA6MjAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3Igd2l0aG91dCBzcGVjaWZ5aW5nIHNubXBfZXJybm8gX291dHNpZGVfIHRoZSBsaWJyYXJ5LgogICAKMTk5OS0xMC0yMSAxMDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCiAgIAoxOTk5LTEwLTIwIDE4OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgb2lkIHBhcnNlciB0byBoYW5kbGUgc2ltcGxlIGVtYmVkZGVkIHN0cmluZ3MgaW4gb2lkcwogICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICBFRzogLjEuMy5cImhlbGxvXCIuXCdoaVwnIC0+IC4xLjMuNS4xMDQuMTAxLjEwOC4xMDguMTExLjEwNC4xMDUKICAgCjE5OTktMTAtMjAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcGFyc2VkIHN0cmluZ3MgZnJvbSBvaWQncyBpbmNsdWRlIG51bGwgdGVybWluYXRvcnMuCiAgIAoxOTk5LTEwLTE1IDA3OjA5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgZGVmYXVsdF9zdG9yZS5jOgoKICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICBidWcgaW4gYXJyYXktYm91bmRhcnkgY2hlY2sgaW4gc25tcGxpYi9jYWxsYmFjay5jCiAgIHJlcG9ydGVkIGJ5IEJlcnQgSG9sc3RlaW4gMTUgT2N0IDE5OTkuCiAgIAoxOTk5LTEwLTEzIDA3OjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYklJL3N5c3RlbV9taWIuYwo6CgogICAtIG1hc3Rlcl9hZG1pbi5jLCBzeXN0ZW1fbWliLmg6IGluY2x1ZGVzIGZvciBwcm90b3R5cGVzCiAgIAoxOTk5LTEwLTEzIDAzOjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBhZGQgbWlzc2luZyBwcm90byBmb3Igc2F2ZV9wZXJzaXN0ZW50LgogICAKMTk5OS0xMC0xMiAwNjowNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lIGFkZHJlc3MgbGVuZ3RoIGZvciBGcmVlQlNEIHBsYXRmb3JtLgogICAKMTk5OS0xMC0xMiAwNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIG1pYi5jOgoKICAgbWliLmM6IHF1aWNrX3ByaW50IGlzIGV4cG9zZWQgZm9yIENNVV9DT01QQVRJQkxFIGJ1aWxkcy4KICAgbGNkX3RpbWUuYzogY29tbWVudGVkIHVudXNlZCBkdW1wX2V0aW1lbGlzdF9lbnRyeSB1bmRlciBTTk1QX1RFU1RJTkdfQ09ERS4KICAgCjE5OTktMTAtMDcgMDk6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogTm90aWZpY2F0aW9uIHN1cHBvcnQKICAgCjE5OTktMTAtMDcgMDg6NDIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF90cmFwLltjaF0pOiBJbXByb3ZlIGFjY2Vzc2liaWxpdHkgZm9yIHN1YmFnZW50cwogICAKMTk5OS0xMC0wNyAwNzoyNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaCwgc25tcGQuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBhZ2VudF90cmFwLmggYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wZC5oKToKICAgICAtICBSZS13cml0ZSBvZiBhZ2VudCB0cmFwIGhhbmRsaW5nOgogICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgIAlDb25zb2xpZGF0ZSB2MSBhbmQgdjIgdHJhcCBzaW5rIGxpc3RzCiAgIAlQcmVsaW1pbmFyeSBJTkZPUk0gc3VwcG9ydAogICAKMTk5OS0xMC0wNiAxNjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gU2F2ZSBhbmQgcGFyc2Ugb2xkZXIgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzIHRvIG1ha2Ugc3VyZSBkYXRhIGlzCiAgICAgICBub3QgbG9zdCBkdXJpbmcgc3RvcmFnZSBjcmFzaGVzLgogICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgogICAKMTk5OS0xMC0wNiAwODo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBuZXcgY29tbWVudGVkIHZlcnNpb24uCiAgIAoxOTk5LTEwLTA1IDIyOjIyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IGluY2x1ZGUgc3lzdGVtLmggZm9yIHByb3RvdHlwZSBmb3IgY2FsY3VsYXRlX3RpbWVfZGlmZgogICAKMTk5OS0xMC0wNSAyMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAogICAKMTk5OS0xMC0wNSAyMTo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSBzbm1wX2RlYnVnLmg6IG1ha2UgdGhlIERFQlVHKiBtYWNyb3Mgc2FmZSBmb3IgdXNlIGluIGNvbXBvdW5kIHN0YXRlbWVudHMKICAgCjE5OTktMTAtMDUgMDc6MjMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIHN1YmFnZW50LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOiBXb3JraW5nIFNFVCBzdXBwb3J0CiAgIAoxOTk5LTEwLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgogICAKMTk5OS0xMC0wNCAxMzo1MiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSBzdWJhZ2VudC5oLCBzdWJhZ2VudC5jLCBtaWJfbW9kdWxlcy5jOiBwcmVfaW5pdF9zdWJhZ2VudCBjb25mdXNlcwogICAJY29uZmlndXJlIGludG8gYmVsaWV2aW5nIHRoZXJlIGlzIGEgaW5pdF9zdWJhZ2VudCBmdW5jdGlvbi4KICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAogICAKMTk5OS0xMC0wNCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNTZXJ2aWNlcyBjb25maWd1cmFibGUuCiAgIAoxOTk5LTEwLTA0IDEzOjM4ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgKOgoKICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwogICAKMTk5OS0xMC0wNCAxMTo1MiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBjb25maWd1cmUuaW46CXJlbW92ZSAtcGVkYW50aWMgZnJvbSAtLXdpdGgtZGV2ZWxvcGVyLCBhbmQgdGhlIHN5c3RlbSBoZWFkZXJzCiAgIAlhcmUgbm90IHByZXBhcmVkIGZvciBpdCAoYXQgbGVhc3Qgb24gTGludXggYW5kIE5ldEJTRCkKICAgCjE5OTktMTAtMDQgMTE6NTAgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKICAgCjE5OTktMTAtMDQgMTE6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIGFwcHMvc25tcHRyYXAuYwo6CgogICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKICAgCjE5OTktMTAtMDQgMTA6MjIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogVHJpdmlhbCAncGluZycgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMTAtMDQgMTA6MTcgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaAo6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5bY2hdCiAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gQ29tcGxldGUgc3ViYWdlbnQgaGFuZGxpbmcgb2YgQWdlbnQgQ2FwYWJpbGl0aWVzIC8gc3lzT1JUYWJsZQogICAKMTk5OS0xMC0wNCAxMDoxNSAgZGF2ZXMKCiAgICogc25tcGxpYi9jYWxsYmFjay5oOgoKICAgLSAoc25tcGxpYi9jYWxsYmFjay5oKTogSW5jcmVhc2UgbnVtYmVyIG9mIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBzdXBwb3J0ZWQKICAgCjE5OTktMTAtMDQgMDk6NTggIGRhdmVzCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgLSBFbnN1cmUgc3ViYWdlbnQgaXMgaW5pdGlhbGlzZWQgZWFybHkgKHByaW9yIHRvIE1JQiByZWdpc3RyYXRpb24sIGV0YykKICAgCjE5OTktMTAtMDQgMDk6NTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcF92YXJzLmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBzbm1wX3ZhcnMuaCBtaWJJSS9zeXNPUlRhYmxlLmMKICAgICAgYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKICAgCjE5OTktMTAtMDQgMDM6NTggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgpOgogICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CiAgIAoxOTk5LTEwLTAyIDE0OjI4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgLSBGaXggYSBwcm9ibGVtIHdpdGggcmUtdXNlZCBQRFUgc3RydWN0dXJlcyBiZWluZyBmcmVlZCB0d2ljZS4KICAgCjE5OTktMTAtMDEgMDk6NDggIGRhdmVzCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBGaXggaW5jb21wYXRhYmlsaXR5IGluIGFnZW50IGxpYnJhcnkgbmFtZXMKICAgCjE5OTktMDktMzAgMDE6MDkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jKToKICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQogICAKMTk5OS0wOS0yOSAyMzo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9ocHV4LmM6CgogICBSZW1vdmUgdW51c2VkIGZpbGUuLiBzbm1wbGliL2hwdXguYwogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gKG1pYl9tb2R1bGVzLmMpOiBpbmNsdWRlIG5ldGluZXQvaW4uaAogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCk6IGZpeCBidWdzLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmVkIGV4dHJhIFxuLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogcnVuIG50b2hsIG9uIGlwIGFkZHJlc3NlcyBzdG9yZWQgaW4gYSBsb25nLgogICAKMTk5OS0wOS0yOSAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCiAgIAoxOTk5LTA5LTI5IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50Lmg6CgogICAtIChjbGllbnQuaCk6IGRlZmluZSBERUZBVUxUX01JQl9QUklPUklUWSB0byAyNTUuCiAgIAoxOTk5LTA5LTI5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIChjbGllbnQuYyk6IHRoYXRzICJ0aW1ldmFsIiBub3QgInRpbWV2YWxlIiBEYXZlIChoZWhlKS4KICAgCjE5OTktMDktMjkgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gbmV3IGV4dHJhY3Rpb24gYW5kIGZyZWVpbmcgZnVuY3Rpb25zLgogICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KICAgCjE5OTktMDktMjkgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIE1pa2UgTWljaGF1ZCB0byB0aGUgdGhhbmsgeW91IGxpc3QuCiAgIAoxOTk5LTA5LTI5IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IFJBTkxJQiB0ZXN0aW5nIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk5LTA5LTI5IDE0OjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSb2J1c3QgY29weSBvZiBpbmZvcm1hdGlvbiB0byB0cmVlLCBpbXBvcnRfbGlzdCwgZGlzcGxheSBoaW50cy4KICAgCjE5OTktMDktMjkgMTI6MTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsCiAgIHByb3RvY29sLmgsIHN1YmFnZW50LmM6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCiAgIAoxOTk5LTA5LTI5IDExOjQ4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOiBDaGFuZ2UgaW4gTUlCIHJlZ2lzdHJhdGlvbiBpbnRlcmZhY2UKICAgCjE5OTktMDktMjkgMTE6NDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOgogICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgIChzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHN1YmFnZW50cyB3aXRoIHRoZSBtYXN0ZXIncyB2YWx1ZSkKICAgCjE5OTktMDktMjkgMTE6NDMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aXNpb24gdG8gdW5yZWdpc3RlciBNSUJzIGJ5IHNlc3Npb24KICAgCjE5OTktMDktMjkgMTE6MzggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtICdDaGlsZHJlbicgbm9kZXMgbm93IGhhdmUgYSBkaWZmZXJlbnQgc3RhdHVzLCBhbmQgc2hvdWxkbid0IGJlIGZyZWVkLiBPb3BzIQogICAKMTk5OS0wOS0yOSAxMTozNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgLSBJbXByb3ZlIHJlZ2lzdHJ5IGVycm9yIGhhbmRsaW5nCiAgICAgLSBDb3JyZWN0bHkgaGFuZGxlIHVucmVnaXN0ZXJpbmcgTUlCIHJlZ2lvbnMKICAgCjE5OTktMDktMjkgMTE6MjMgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogQ29ycmVjdCB2YWx1ZSBvZiBkZWZhdWx0IHJlZ2lzdHJhdGlvbiBwcmlvcml0eQogICAKMTk5OS0wOS0yOSAxMToxNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IG10X3N1cHBvcnQuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChtdF9zdXBwb3J0Lmggc25tcF9hcGkuW2NoXSk6IFN1cHBvcnQgZm9yIHNlc3Npb24gYW5kIGluY29taW5nIHRyYW5zYWN0aW9uIElEcwogICAKMTk5OS0wOS0yOSAxMToxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogcHJvdGVjdCBzbm1wX2Nsb3NlKCkgYWdhaW5zdCBhIG51bGwgU2Vzc2lvbnMgbGlzdAogICAKMTk5OS0wOS0yOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaAosIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIG1ha2UgbGlidWNkYWdlbnQgYW5kIGxpYnVjZG1pYnMgYXMgc2VwZXJhdGUgbGlicmFyaWVzLiAgSW4gdGhlb3J5LAogICAgICAgeW91IHNob3VsZG4ndCBuZWVkIGxpYnVjZG1pYnMgdG8gdXNlIGxpYnVjZGFnZW50LgogICAKMTk5OS0wOS0yNyAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KICAgCjE5OTktMDktMjIgMTI6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLSBJbXByb3ZlZCBlcnJvciBzdGF0dXMgYWdncmVnYXRpb24uCiAgIAoxOTk5LTA5LTIyIDEwOjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSW1wcm92ZWQgQWdlbnRYIHJlc3BvbnNlIGhhbmRsaW5nCiAgIAoxOTk5LTA5LTIyIDEwOjAwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEVuc3VyZSByZWdpc3RyeSBpcyBpbml0aWFsaXNlZCBjb3JyZWN0bHkgb24gc3ViYWdlbnRzCiAgIAoxOTk5LTA5LTIyIDA5OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IHJlbW92ZSByZWR1bmRhbnQgcm91dGluZXMKICAgCjE5OTktMDktMjIgMDk6NTQgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgdmFyX3N0cnVjdC5oKToKICAgICBDaGFuZ2UgdGhlIHdheSB0aGUgTUlCIHJlZ2lzdHJ5IGhhbmRsZXMgcmVnaXN0ZXJlZCByYW5nZXMuCiAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQogICAKMTk5OS0wOS0yMiAwOTozNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwogICAKMTk5OS0wOS0yMiAwOTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3ZpZGUgbWV0aG9kIGZvciBwcmlvcml0aXNlZCByZWdpc3RyYXRpb24KICAgCjE5OTktMDktMjIgMDk6MzEgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjIgMDk6MjcgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjEgMTA6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKG1pYi5jKSB1bmRvIGVycm9uZW91cyBjaGFuZ2UgdG8gaW5pdF9taWIgKHRoYW5rcyBOQiEpCiAgIAoxOTk5LTA5LTIxIDA5OjMyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBkLmMpOiBTaW1wbGUgcnVuLXRpbWUgZHVtcCBvZiByZWdpc3RlcmVkIE1JQnMKICAgCjE5OTktMDktMjEgMDk6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKICAgCjE5OTktMDktMjEgMDk6MjEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGhhbmRsZSBhZGRpbmcgJ2Vycm9yJyB0eXBlIHZhcmlhYmxlcyB0byBhIFBEVQogICAKMTk5OS0wOS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlIHRvIDIuMTMuCiAgIAoxOTk5LTA5LTE3IDExOjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCiAgIAoxOTk5LTA5LTE3IDExOjI0ICBtc2xpZmNhawoKICAgKiBGQVEsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLXJlbW92ZSBvbGQtc3R5bGUgaW5pdCBmb3IgcmVwbGFjZSBtaWIgZmVhdHVyZS4KICAgCjE5OTktMDktMTcgMTE6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgLSByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIHN0YXRpYyB2YXIgImxhc3QiCiAgIAoxOTk5LTA5LTE3IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hcGkuMzoKCiAgIC0gKHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGZpeCBjb21tZW50cy4KICAgCjE5OTktMDktMTYgMTQ6MTYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLXBlciBhZ3JlZW1lbnQgd2l0aCBNYXJra3UsIG5vIHN1cHBvcnQgbmVlZGVkIGZvciBTb2xhcmlzLXNwZWNpZmljIHRocmVhZHMuCiAgIAoxOTk5LTA5LTE1IDExOjMwICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICBzbm1wbGliL210X3N1cHBvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZmluZSB0dW5pbmcgbXQgc3VwcG9ydAogICAKMTk5OS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zCiwgc25tcF9vcGVuLjMsIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMKLCBzbm1wX3NlbmQuMywgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywKICAgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLCBzbm1wX3Nlc3NfaW5pdC4zCiwgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsCiAgIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywgc25tcF9zZXNzX3Nlc3Npb24uMywKICAgc25tcF90aW1lb3V0LjM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMsIHNubXBfb3Blbi4zLAogICAgIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMsIHNubXBfc2VuZC4zLAogICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICBzbm1wX3Nlc3NfaW5pdC4zLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLCBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsCiAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGNyZWF0ZSBzb21lIGZha2Ugc291cmNpbmcgbWFuIHBhZ2VzIGZvciBmdW5jdGlvbnMuCiAgIAoxOTk5LTA5LTE1IDA2OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgaW5jbHVkZSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggZm9yIGJlbmVmaXQgb2YgbWliX21vZHVsZV9kb3RfY29uZi5oCiAgIAoxOTk5LTA5LTE0IDEzOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAogICAKMTk5OS0wOS0xNCAxMzowMCAgbWFyegoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IGZpeCBzcHVyaW91cyBlcnJvciBtZXNzYWdlIHdoZW4gc25tcF9wYXJzZV9vaWQgZmFpbHMKICAgCjE5OTktMDktMTQgMDk6NTMgIG1zbGlmY2FrCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0oRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL3BhcnNlLiopIGFkZCByZXBsYWNlIE1JQiBjYXBhYmlsaXR5KGV4cGVyaW1lbnRhbCkKICAgCjE5OTktMDktMTMgMjA6MjAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgcmUtYXNzZXJ0IE5pZWxzJyBwYXRjaCB0byBzbm1wX3NlbmQgdG8gZnJlZSB2Mi92MSBUcmFwLVBEVXMKICAgCjE5OTktMDktMTMgMTU6MDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIHN1YmFnZW50LmMsCiAgICAgc3ViYWdlbnQuaCwgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAtIHVzZSBjYWxsYmFja3MgZXZlcnl3aGVyZSBuZWVkZWQgdG8gbm90IGNhbGwgbWliIG1vZHVsZSBjb2RlIGRpcmVjdGx5LgogICAgICAgLSBnZXQgcmlkIG9mIGFsbCBpbnN0YW5jZXMgb2YgVVNJTkdfIGluIGxpYmFnZW50IGNvZGUuCiAgIAoxOTk5LTA5LTEyIDIyOjAwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCiAgIAoxOTk5LTA5LTEyIDIxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGFkZCBhIG1pc3NpbmcgaW5jbHVkZSBmaWxlLgogICAKMTk5OS0wOS0xMiAyMTo1OCAgbmJhCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIFRFU1RDT05GLnNoOiBmaXggc29tZSBleHBvcnRzIHRvIGV4cG9ydCB0aGUgcmlnaHQgdmFyaWFibGUuCiAgIAoxOTk5LTA5LTEyIDIxOjU3ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBhZ2VudC8qLCBzbm1wbGliLyo6IG1hbGxvYyBmaXhlcywgc29tZSBwcm92b2tlZCBieSB0aGUgY29ycmVjdGVkCiAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgogICAKMTk5OS0wOS0xMiAyMTo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCiAgIAoxOTk5LTA5LTA5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlLmMgd29yayBhcm91bmQgY29yZSBkdW1wIGZyZWVpbmcgVENzIHRoYXQgc3BlY2lmeSByYW5nZXMuCiAgIAoxOTk5LTA5LTA5IDAyOjMxICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHdpbjMyL2NvbmZpZy5oOgoKICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgogICAKMTk5OS0wOS0wOSAwMjoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICAtKHdpbnN0dWIuYykgSGFjayB0byBhbGxvdyBzbm1wbmV0c3RhdCAtYSB0byB3b3JrIG9uIEFJWDQgKHNpYykuCiAgIAoxOTk5LTA5LTA4IDIyOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtKG1pYmluY2wuaCkgY29tbWVudCBvdXQgZHVwbGljYXRlICNpbmNsdWRlIGhlYWRlciBsaW5lcy4KICAgCjE5OTktMDktMDggMjI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KICAgCjE5OTktMDktMDggMTc6NTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtdF9zdXBwb3J0LmMsIG10X3N1cHBvcnQuaDoKCiAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKICAgCjE5OTktMDktMDggMTc6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtKGNvbmZpZyosd2luMzIvKixzbm1wbGliLyopIHJlc291cmNlIGxvY2tpbmcgb3JpZ2luYWxseSBmcm9tIE1hcmtrdSBMYXVra2FuZW4KICAgCjE5OTktMDktMDggMTc6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBtaWJJSS9pY21wLmMsCiAgIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywgbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jOgoKICAgbWliaW5jbC5oLCBtaWJncm91cC9taWJJSS8qIC0gZml4dXAgZm9yIEN5Z1dpbjMyIGJ1aWxkCiAgIAoxOTk5LTA5LTA4IDEzOjA0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0oc25tcGxpYi9zbm1wX2NsaWVudC4qKSBhZGQgc25tcF9zcGxpdF9wZHUsIHNubXBfdmFyYmluZF9sZW4gbWV0aG9kcy4KICAgCjE5OTktMDktMDggMTM6MDAgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKHRlc3RpbmcvUlVOVEVTVFMpIHByZWZpeCBQQVRIIHdpdGggLiBhbmQgLi4gLCBhcyB0aGUgc2NyaXB0IGNoYW5nZXMgZGlyLgogICAKMTk5OS0wOS0wOCAwNzo1MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwcm9jZXNzaW5nICgtbGQgYW5kIHNpbWlsYXIpCiAgIAoxOTk5LTA5LTA4IDA3OjUxICBuYmEKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSBzbm1wZC4xLmRlZjogZml4IGEgZm9ybWF0dGluZyBwcm9ibGVtCiAgIAoxOTk5LTA5LTA4IDA3OjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIGFnZW50eC9zdWJhZ2VudC5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmM6CgogICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTA5LTA4IDA3OjQ4ICBuYmEKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCiAgIAoxOTk5LTA5LTA4IDA3OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX2FwaS5oOiBtb3ZlIGluY2x1c2lvbiBwcm90ZWN0aW9uIHRvIHRoZSByZWFsIGJlZ2lubmluZy9lbmQgb2YgdGhlIGZpbGUKICAgCjE5OTktMDktMDggMDc6NDUgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCiAgIAoxOTk5LTA5LTA4IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKICAgCjE5OTktMDktMDcgMjA6MTkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIHNubXB0cmFwLmMgLSByZXdvcmsgZml4IGJ1ZyAjNTQgKG1pc3NlZCBlbHNlKS4KICAgCjE5OTktMDktMDcgMjA6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIG1hbi9zbm1wX2FwaS4zLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKGFnZW50X3RyYXAuYyxzbm1wdHJhcC5jLHNubXBfYXBpLlszY10pIC0gc25tcF9mcmVlX3BkdSBmaXggQnVnICM1NCBwZXIgTmllbHMgQi4KICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KICAgCjE5OTktMDktMDcgMTU6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCiAgIAoxOTk5LTA5LTA3IDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIHJlbW92ZSB1bm5lZWRlZCBzdHJkdXAgdG8gRmlsZSB2YXJpYWJsZSBmcm9tIGluaXRfbWliX2ludGVybmFscy4KICAgCjE5OTktMDktMDcgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0oc25tcF9hcGkuaCkgc3RydWN0IHBkdSBhbmQgc25tcF9zZXNzaW9uIGFncmVlOiBsb25nIHR5cGUgZm9yIHZlcnNpb24gbWVtYmVyLgogICAKMTk5OS0wOS0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICh3aW4zMipsaWJzbm1wLmRlZikgLSBhZGQgbmV3IHNubXBfZ2V0X3Rva2VuIHRvIGxpc3QuCiAgIAoxOTk5LTA5LTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmg6CgogICAoZGVmYXVsdF9zdG9yZS4qKSAtIG1ha2UgM3JkIHBhcmFtIHRvIGRzX3NldF9zdHJpbmcgdHlwZSBvZiBjb25zdCBjaGFyICouCiAgIAoxOTk5LTA5LTA3IDE1OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KICAgCjE5OTktMDktMDcgMTQ6NDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLShwYXJzZS4qKSBmaXggc21hbGwgbWVtb3J5IGxlYWtzOyBhbGxvdyBJTkRFWHtJTlRFR0VSLi4ufSBjbGF1c2VzOwogICAgICAgICAgICAgIGFsbG93IGxhcmdlciBERVNDUklQVElPTiBjbGF1c2VzIFttYXggODE5Ml0uCiAgIAoxOTk5LTA5LTAzIDE1OjAxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KICAgCjE5OTktMDktMDMgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCBmYWxsIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWFyY2ggdHJlZS4KICAgCjE5OTktMDktMDMgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChzbm1wbGliL01ha2VmaWxlLmluKTogaW5zdGFsbCBtb3JlIGxpYnJhcnkgaGVhZGVycy4KICAgCjE5OTktMDktMDMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gaW5zdGFsbCBsaWJhZ2VudC5hLgogICAgIC0gbWtkaXJoZWlyIG9uIG5lZWRlZCBuZXcgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgYWdlbnQgaGVhZGVyIGZpbGVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgKOgoKICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDktMDIgMDg6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KICAgCjE5OTktMDktMDIgMDc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IHNodXRkb3duX3N1YmFnZW50IC0+IHN1YmFnZW50X3NodXRkb3duIHNvIGNvbmZpZ3VyZQogICAgIGRvZXNuJ3QgZmluZCBpdC4KICAgCjE5OTktMDktMDIgMDY6MzggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCiAgIAoxOTk5LTA4LTMxIDA5OjI2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KICAgCjE5OTktMDgtMzEgMDg6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0oYWdlbnRfdHJhcC5jKSBmaXggcmVjZW50IG1lbW9yeSBsZWFrLCBhbmQgc2l6ZW9mKG9iamlkX3NubXB0cmFwKSBidWcuCiAgIAoxOTk5LTA4LTMwIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jKTogeWV0IG1vcmUgZGVidWdnaW5nLgogICAKMTk5OS0wOC0zMCAwOTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlci5jLAogICBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jOgoKICAgLSAoY2xpZW50LmMsIG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jKToKICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgIC0gdXNlIG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzIGluc3RlYWQgb2YgZXh0ZXJuYWwgdmFyaWFibGVzLgogICAKMTk5OS0wOC0zMCAwOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICBzbm1wZC5jLCB1dGlsX2Z1bmNzLmMsIHN5c09SVGFibGUuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgLSBuZWVkcyBtdWNoIG1vcmUgd29yay4KICAgICAgIC0gbWFueSBwYXJhbWV0ZXJzIGFyZSBub3cgY29udHJvbGxlZCBieSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncwogICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgIC0gbWVyZ2UgaW5pdF9zbm1wIGFuZCB0aGUgY3VzdG9tIHZlcnNpb24gY2FsbGVkIGluc2lkZSB0aGUgYWdlbnQuCiAgICAgLSBhZGQgYSBuZXcgcGxhY2UgZm9yIHRyYXAgc3BlY2lmaWMgYWdlbnQgY29kZSAoYWdlbnRfdHJhcC5bY2hdKS4KICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgogICAKMTk5OS0wOC0yOCAwNzoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgogICAKMTk5OS0wOC0yOCAwNzoxOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfYWxhcm0uMy4KICAgCjE5OTktMDgtMjcgMDk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCiAgIAoxOTk5LTA4LTI3IDA4OjAzICBtc2xpZmNhawoKICAgKiBUT0RPOgoKICAgSG93YXJkIFNwaW5kZWwgc3VnZ2VzdHMgYW4gQVBJIGZvciB0cmFwcyB3aXRoIHBhc3NfcGVyc2lzdC4KICAgCjE5OTktMDgtMjcgMDc6MzUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW46CgogICAtKGNvbmZpZ3VyZSosIHNlZHNjcmlwdCopIGNoYW5nZSAuLi5FWFRFTklTLi4uICB0byAuLi5FWFRFTlNJLi4uCiAgIAoxOTk5LTA4LTI2IDEzOjQwICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBkb24ndCBidWlsdCB0YXJnZXRzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkCiAgIAoxOTk5LTA4LTI2IDEzOjE4ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAogICAKMTk5OS0wOC0yNCAxNzo0MyAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KICAgCjE5OTktMDgtMjQgMTc6MzkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCiAgIAoxOTk5LTA4LTI0IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAuMSApCiAgIAoxOTk5LTA4LTI0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCiAgIAoxOTk5LTA4LTI0IDE2OjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBUMi5zaCwKICAgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0X2tleWNoYW5nZS5zaCwgdGVzdF9rdWwuc2g6CgogICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgogICAKMTk5OS0wOC0yNCAxNjowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtKGNvbmZpZ3VyZS4qKSBtb3ZlIHN0YXRlbWVudCBhYm91dCB1Y2REZW1vUHVibGljIGludG8gY29tbWVudCBmaWVsZC4KICAgCjE5OTktMDgtMjQgMTY6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNC4wLjEgdXBkYXRlCiAgIAoxOTk5LTA4LTI0IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHZlcnNpb24gc2V0dGluZyBpbiBzbm1wX2FwaS5jLiAgTm90IG5lZWRlZCB0aGVyZS4KICAgCjE5OTktMDgtMjQgMTU6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIGFwcGx5IE5pY2sgQW1hdG8ncyBwYXRjaDogcHJldmVudCBTTVVYIGNsb3NlIG9uIHBhcnNlIG9yIGVycm9yLgogICAKMTk5OS0wOC0yNCAxNDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N3cnVuLmMsIG1pYklJL2ljbXAuYywKICAgbWliSUkvaXAuYywgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9wcm9jLmM6CgogICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgogICAKMTk5OS0wOC0yNCAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICAtIChhbGxfc3lzdGVtLmgpOiByZW1vdmUuICBhZ2Fpbi4KICAgCjE5OTktMDgtMjQgMTQ6MDUgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCiAgIAoxOTk5LTA4LTI0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydDotKQogICAKMTk5OS0wOC0yNCAxMzozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXB2My5jKToKICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KICAgCjE5OTktMDgtMjQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KICAgCjE5OTktMDgtMjQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBjb3JyZWN0IHN5c09SVGFibGUgZW50cnkuCiAgIAoxOTk5LTA4LTI0IDEwOjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCiAgIAoxOTk5LTA4LTI0IDA2OjE5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQuYywgZXRpbWV0ZXN0LmMsCiAgIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmM6CgogICBBZGQgIi4iIHRvIFBBVEggZm9yIFJVTlRFU1RTOyBEcm9wIG9wdHJlc2V0IHRvIGJ1aWxkIG1vc3QgcGxhdGZvcm1zCiAgIAoxOTk5LTA4LTI0IDA1OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgQVNOX1NIT1JUX0xFTiBoYWNrIC0ga25vd24gdG8gZHVtcCBjb3JlIGluIGFnZW50LgogICAKMTk5OS0wOC0yNCAwNDo0NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KICAgCjE5OTktMDgtMjMgMTY6NDQgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgc25tcHVzbS4xIG1hbnVhbCBwYWdlLgogICAKMTk5OS0wOC0yMyAxNjoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wICkKICAgCjE5OTktMDgtMjMgMTY6MTcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KICAgCjE5OTktMDgtMjMgMTY6MTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWw6CgogICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgogICAKMTk5OS0wOC0yMyAxNjowNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUKICAgCjE5OTktMDgtMjMgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgogICAKMTk5OS0wOC0yMyAxNDowMiAgbXNsaWZjYWsKCiAgICogRkFRLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCiAgIAoxOTk5LTA4LTIzIDEzOjU0ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBfdmFycy5jOiBtb3ZlIHNvbWUgLXYgbG9nZ2luZyB0byBhIG1vcmUgcmF0aW9uYWwKICAgCXBsYWNlLgogICAKMTk5OS0wOC0yMyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChwcm90b2NvbC5jKTogYWxsb3cgTlVMTCBzdHJpbmdzIGluIGFnZW50WCBwYWNrZXRzLgogICAKMTk5OS0wOC0yMyAwOTowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUZXN0IHBvaW50ZXIgYmVmb3JlIGRlcmVmZXJlbmNlIGluIHVzbV9mcmVlX3VzZXIKICAgCjE5OTktMDgtMjMgMDk6MDIgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFNwZWxsIGNoZWNrOiBzaW1pbGFyCiAgIAoxOTk5LTA4LTIzIDA5OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgYnVpbGQgZml4ZXMKICAgCjE5OTktMDgtMjMgMDc6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYW5zaSBtZW50aW9uZWQuCiAgIAoxOTk5LTA4LTIzIDA2OjE0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgd2luMzIvY29uZmlnLmg6CgogICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKICAgCjE5OTktMDgtMjIgMjM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIGFnZW50eC9tYXN0ZXJfYWRtaW4uYzogZmFpbHVyZSB3aGVuIGNsb3NpbmcgZmlyc3QgYWdlbnRzIHNlc3Npb24KICAgCSh1bmluaXRpYWxpemVkIHZhcmlhYmxlKS4KICAgCjE5OTktMDgtMjIgMTc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KICAgCjE5OTktMDgtMjIgMTc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA4LTIyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgIC0gZml4IG9mIHBlcmlzdGVudCBkaXJlY3RvcnkgY3JlYXRpb24uCiAgIAoxOTk5LTA4LTIyIDE3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLzogSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUKLCBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsCiAgIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywgbGliaXBmd2MuaDoKCiAgIC0gKGlwZmNoYWlucyk6IHJlbW92ZWQgZnJvbSBkaXN0cmlidXRpb24uICBOZXdlciBvbmUgaW4gZnRwJ3MgY29udHJpYiBkaXIuCiAgIAoxOTk5LTA4LTIwIDE3OjEwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNyApCiAgIAoxOTk5LTA4LTIwIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGxhc3QgbWludXRlIGNoYW5nZXMKICAgCjE5OTktMDgtMjAgMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCwgYXNuMS5jKTogNjRiaXQgY2xlYW51cC4KICAgCjE5OTktMDgtMjAgMTM6NTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAtIHR1cm4gb2ZmIHRpbWUgc3RhbXAgbG9nZ2luZyBieSBkZWZhdWx0LiAgSXQgbXVzdCBiZSBleHBsaWNpdGx5CiAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgaXMgbm90IGxpbmUgYnVmZmVyZWQgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIGxvZ2dpbmcgcm91dGluZXMuCiAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgogICAKMTk5OS0wOC0yMCAxMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywKICAgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgIC0gbWFrZSBsb2dnaW5nIG9mIHRpbWVzdGFtcHMgb3B0aW9uYWwgYnkgYSBzbm1wLmNvbmYgZGlyZWN0aXZlLgogICAKMTk5OS0wOC0yMCAwMzo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCiAgIAoxOTk5LTA4LTE5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmM6CgogICAtIChzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYyk6IFBhdGNoIGZyb20gZGxlbmdlbEBob21lLmNvbToKICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KICAgCjE5OTktMDgtMTkgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgIAl0aGUgcGR1IHN0cnVjdHVyZSAodXNlZCBmb3IgdjEgdHJhcHMpLgogICAKMTk5OS0wOC0xOSAxMDo0MCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKICAgCjE5OTktMDgtMTkgMTA6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgogICAKMTk5OS0wOC0xOSAxMDozOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKICAgCjE5OTktMDgtMTkgMDI6MzUgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgIAl0aW1lc3RhbXAgZmlsZSBhbmQgc3RkZXJyIGxvZ2dpbmcuCiAgIAoxOTk5LTA4LTE5IDAyOjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IHJlbW92ZSBzb21lIGxlZnQgb3ZlciBkZWJ1ZyBvdXRwdXQKICAgCjE5OTktMDgtMTggMDk6MzAgIG5iYQoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAJZGVmYXVsdCBkb19zdGRlcnJfbG9nZ2luZyB0byAxLgogICAKMTk5OS0wOC0xOCAwOToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgIAlpbnRlcmZhY2VzLgogICAKMTk5OS0wOC0xOCAwMjo1MSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcGQuYywgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KICAgCjE5OTktMDgtMTggMDI6NDAgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWdlbnQvc25tcGQuYzoJbW92ZSB0aGUgdGVybWluYXRpb24gcHJvY2Vzc2luZyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgogICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KICAgCjE5OTktMDgtMTYgMTU6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgLSAoVDEwMGFnZW50aHVwKTogYWRkZWQgbmV3IGFnZW50IGNhcGFiaWxpdHkgdGVzdCB0byB0ZXN0IGtpbGwgLUhVUC4KICAgCjE5OTktMDgtMTYgMTQ6NTkgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KICAgCjE5OTktMDgtMTYgMTQ6NTggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgCWZyb20gc25tcGQgKHN1Y2ggYXMgTGludXggdGhhdCBkb2VzIG5vdCByZXR1cm4gaWZJbk5VQ2FzdFBrdHMKICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKICAgCjE5OTktMDgtMTMgMTY6MDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQogICAKMTk5OS0wOC0xMyAxNjowNSAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCiAgIAoxOTk5LTA4LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzdG9yZSB0aGUgcGVyaXN0ZW50IGRhdGEgaW4gYSB0ZW1wb3JhcnkgZmlsZS4gIHJlYWxseS4KICAgCjE5OTktMDgtMTMgMTU6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsCiwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6CiAgICAgLSBmaXhlZCB0byBjaGVjayBmb3IgIm5vc3VjaCIgZXJyb3JzIGFjdHVhbGx5IHJldHVybmVkLgogICAgIC0gc2hvcnRlbmVkIHRoZSBzbm1wdXNtIHRlc3QgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTA4LTEzIDE1OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KICAgCjE5OTktMDgtMTMgMTU6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCiAgIAoxOTk5LTA4LTEzIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgc2hvdWxkIGRvLgogICAKMTk5OS0wOC0xMyAxMjoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KICAgCjE5OTktMDgtMTMgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCBkbyBjYWNoaW5nIGZvciBOT19EVU1NWV9WQUxVRVMuCiAgIAoxOTk5LTA4LTEzIDExOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfcHJpbnQuYywKICAgaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jCiwgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9hdC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICBob3N0L2hyX3N3aW5zdC5jLGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYyxtaWJJSS9hdC5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCiAgIAoxOTk5LTA4LTEzIDA5OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgogICAKMTk5OS0wOC0xMyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDgtMTMgMDc6MTIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5OS0wOC0xMyAwNzoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KICAgCjE5OTktMDgtMTMgMDI6NDYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBleGFtcGxlcy91Y2REZW1vUHVibGljLmgsIGlwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oCiwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbXV4L3NubXBfYmdwLmMKLCBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsCiAgIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgKOgoKICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgIHRhcmdldC9zbm1wVGFyZ2V0e0FkZHIsUGFyYW1zfUVudHJ5LltjaF0KICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQogICAKMTk5OS0wOC0xMyAwMjo0NCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBEcm9wIHN1cHBvcnQgZm9yICdzdGF0aWMnIG1vZHVsZSByZWdpc3RyYXRpb24gdmlhIGNvbmZpZ3VyZQogICAKMTk5OS0wOC0xMiAxNjo0NiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTktMDgtMTIgMTY6NDEgIGhhcmRha2VyCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjE6CgogICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgogICAKMTk5OS0wOC0xMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAyMHNubXB2M2dldCwKICAgVDAyMXNubXB2M2dldG5leHQsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChTdjNjb25maWcsIFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LAogICAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiB0ZXN0IHVwZGF0ZXMsIGluY2x1ZGluZyBhIG5ldyBzbm1wdXNtIHRlc3QuCiAgIAoxOTk5LTA4LTEyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogbm8tZmlsbCB0aGUgLmNvbmYgZmlsZSBlbnRyaWVzLgogICAKMTk5OS0wOC0xMiAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KICAgCjE5OTktMDgtMTIgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBhZGRlZCB0byBkZXNjcmliZSB0aGUgc25tcHVzbSBjb21tYW5kLgogICAKMTk5OS0wOC0xMiAwOTozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKHNubXB1c20uYykgLSBmaXggcG90ZW50aWFsIHJlcGVhdGVkICJmcmVlIiBvbiBtYWxsb2MgZmFpbHVyZS4KICAgCjE5OTktMDgtMTEgMjE6NTMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOgloYW5kbGUgbm9uLWNvbnRpZ3VvdXMgaWZUYWJsZS4gQWxzbyBtYWtlIHRoZQogICAJY291bnRlcnMgdW5zaWduZWQuCiAgIAoxOTk5LTA4LTExIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBocl9zdG9yYWdlLmM6CXJlbW92ZSB0byBmb3Jnb3R0ZW4gZGVidWcgbGluZXMuCiAgIAoxOTk5LTA4LTExIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAtIE1ha2UgcGVyc2lzdGVudCBjYWNoZSBjb25mb3JtIHRvIGEgbW9yZSBzZWN1cmUgdW1hc2suCiAgIAoxOTk5LTA4LTExIDEwOjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhcHBzL3NubXB1c20uYzoKCiAgIC0gKFJFQURNRS5zbm1wdjMsIHNubXB1c20uYyk6IHVzZSBzcyBzZXNzaW9uIHRvIGdldCBwcm9iZWQgZW5naW5lSUQuCiAgIAoxOTk5LTA4LTEwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6CgogICAtIChsY2RfdGltZS5jKTogZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoxOTk5LTA4LTEwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHByaW50IC1IIHVzYWdlIHRvIHN0ZGVyci4KICAgCjE5OTktMDgtMTAgMTc6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlLgogICAKMTk5OS0wOC0xMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCiAgIAoxOTk5LTA4LTEwIDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogVW0sIGNvdWdoLCBhY3R1YWxseSByZWdpc3RlciB1cyBpbiB0aGUgKmluaXQqIGZ1bmN0aW9uLi4uCiAgIAoxOTk5LTA4LTEwIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdGVjdCBhZ2FpbnN0IGV2aWwgbWliIG1vZHVsZXMgZnJvbSBtb2RpZnlpbmcKICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KICAgCjE5OTktMDgtMTAgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KICAgCjE5OTktMDgtMTAgMTA6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRml4IGZvciBidWlsZCAobm8gcGFnZXNpemUgdmFyIGRlZmluZWQgZm9yIGxpbnV4KS4KICAgCjE5OTktMDgtMTAgMDk6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQogICAKMTk5OS0wOC0xMCAwNDo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMDgtMTAgMDQ6NDggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCiAgIAoxOTk5LTA4LTEwIDA0OjQ3ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZ2VudC9rZXJuZWwuYzoJYWJvcnQgb24ga3ZtX29wZW4gZmFpbHVyZXMKICAgCjE5OTktMDgtMTAgMDQ6NDYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwogICAKMTk5OS0wOC0xMCAwNDo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAJc3VwcG9ydCBmb3IgTmV0QlNEL3NwYXJjIGFuZCBOZXRCU0QgMS40CiAgIAoxOTk5LTA4LTA5IDE1OjA3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgc25tcHVzbS5jIC0gYWx3YXlzIGNsZWFyIGZpZWxkX2xlbiBpZiByZWYgaXMgdmFsaWQgcHRyOwogICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgogICAKMTk5OS0wOC0wOSAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBlcnJvciBjaGVjay9udWxsIHNldCAqYWZ0ZXIqIGZyZWVpbmcgdGhlIG9sZCBtZW1vcnkuCiAgIAoxOTk5LTA4LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IG1vcmUgZXJyb3IgY2hlY2tpbmcgaW4gdGhlIE1BS0VfRU5UUlkgbWFjcm8uCiAgIAoxOTk5LTA4LTA5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgL2Rldi9yYW5kb20gdGVzdC4KICAgCjE5OTktMDgtMDkgMTE6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtZDUuYywgc25tcF9hcGkuYzoKCiAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgLShzbm1wX2FwaS5jKSBmaXggbG9zaW5nIGNvbW11bml0eSBzdHJpbmcgcHJvYmxlbQogICAKMTk5OS0wOC0wOSAxMDo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCiAgIAoxOTk5LTA4LTA5IDA5OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQogICAKMTk5OS0wOC0wOSAwNjo1NCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwogICAKMTk5OS0wOC0wOSAwNjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCiAgIAoxOTk5LTA4LTA5IDA2OjUwICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMKOgoKICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgogICAKMTk5OS0wOC0wOSAwNjo0OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaAo6CgogICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwogICAKMTk5OS0wOC0wOSAwMTowMiAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgogICAKMTk5OS0wOC0wOSAwMDoyNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlLmM6CXBhcnNlIGFnZW50IGNhcGFiaWxpdGllcwogICAKMTk5OS0wOC0wNiAwNzozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oc25tcF9sb2dnaW5nLiopIC1hZGRlZCBSYWduYXIncyBwYXRjaCAjMyB3aXRoIHNtYWxsIHRvdWNoZXMuCiAgIAoxOTk5LTA4LTA2IDA2OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL2F0LmMsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmMsIG1pYklJL3Zhcl9yb3V0ZS5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dydW4uYwosIGhvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQogICAKMTk5OS0wOC0wNiAwNTo1OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIGNvbmZpZ3VyZS10aW1lIGZsYWcgdG8gY29udHJvbCBwcm92aXNpb24gb2YgImR1bW15IiB2YWx1ZXMKICAgCjE5OTktMDgtMDUgMTE6MTEgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wX2FwaS4zOgoKICAgc25tcF9hcGkuMyAtIGRlc2NyaWJlIHNubXBfZXJyb3IoKSwgcmVwbGFjZXMgc25tcF9lcnJubyBhbmQgc25tcF9nZXRfZXJybm8oKQogICAKMTk5OS0wOC0wNSAxMDo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgYWdlbnR4L2NsaWVudC5jIC0gcmVtb3ZlIHJlZnMgdG8gc25tcF9zeW5jaHtzZXR1cCxyZXNldH0gb3JpZ2luYWwgdmVyc2lvbgogICAKMTk5OS0wOC0wNSAwMzoyNSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCiAgIAoxOTk5LTA4LTA0IDEyOjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCiAgIAoxOTk5LTA4LTA0IDA5OjE3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KICAgCjE5OTktMDgtMDQgMDU6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KICAgCjE5OTktMDgtMDQgMDM6NDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIC0gcGF0Y2ggc3VwcGxpZWQgYnkgTmljayBBbWF0byB0byBmaXggQVNOX0lQQUREUkVTUyBwYXJzZS4KICAgCjE5OTktMDgtMDQgMDE6NDYgIGRhdmVzCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIC0gKG1pYnMvVUNELURFTU8tTUlCLnR4dCk6IFJlLXJlc29sdmUgZmlsZSAmIHVjZERlbW8gT0lEIGNvbmZsaWN0CiAgIAoxOTk5LTA4LTAzIDE0OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgogICAKMTk5OS0wOC0wMyAxMjo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnLmggLSBmaXggIndhcm5pbmc6IEFOU0kgQyBmb3JiaWRzIGNvbmRpdGlvbmFsIGV4cHIgd2l0aCBvbmx5IG9uZSB2b2lkIHNpZGUiLgogICAKMTk5OS0wOC0wMyAwODozNyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gcnVudGltZSBsaWIgYW5kIGRlYnVnIGluZm8gY291cnRlc3kgb2YgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0wOC0wMyAwNzo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKICAgCjE5OTktMDgtMDMgMDc6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1Zy5oIC0gbW92ZSBERUJVR1RSQUNFIGZyb20gZGVidWdtc2dfaGV4dGxpIHRvIERFQlVHRFVNUFNFVFVQCiAgIAoxOTk5LTA4LTAzIDA3OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHJlbW92ZSB0cmFjZSBtZXNzYWdlcyBmcm9tIGRlYnVnbXNnX2hleHRsaS4KICAgCjE5OTktMDgtMDMgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgogICAKMTk5OS0wOC0wMyAwNDo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKICAgCjE5OTktMDgtMDIgMjI6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KICAgCjE5OTktMDgtMDIgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCiAgIAoxOTk5LTA4LTAyIDA0OjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBwYXJzZS5jOgoKICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKICAgCjE5OTktMDctMzAgMTQ6MTkgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCBSRUFETUUKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKICAgCjE5OTktMDctMzAgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0zMCAxNDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICBzZXQgYXMgd2VsbC4KICAgCjE5OTktMDctMzAgMTQ6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KICAgCjE5OTktMDctMzAgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogZ2VuZXJpYyB2MyBpbnN0cnVjdGlvbnMsIGJ1dCBoYXMgZXJyb3JzLgogICAKMTk5OS0wNy0zMCAwODozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgogICAKMTk5OS0wNy0zMCAwODowMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKICAgCjE5OTktMDctMzAgMDc6MzEgIGRhdmVzCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CiAgIAoxOTk5LTA3LTMwIDA3OjAxICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKICAgCjE5OTktMDctMzAgMDY6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAogICAKMTk5OS0wNy0zMCAwNjo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIHVzZSB0cmFkaXRpb25hbCBLJlIgY29tbWVudGluZzsgbm90IGFsbCAiQyIgY29tcGlsZXJzIGFjY2VwdCAiLy8iIGNvbW1lbnRzLgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICB3aW4zMi9jb25maWcuaCAtIGRlZmluZSBIQVZFX0dFVEhPU1ROQU1FCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgc3lzdGVtIC0gdXNlIHNpemVvZgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2MyAtIGtleSBvZmYgSEFWRV9HRVRIT1NUTkFNRTsgdXNlIHNpemVvZiBidWYKICAgCjE5OTktMDctMzAgMDY6MjMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19tMm0uaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA2OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzIC0gd3JhcCBwb3NzaWJseSB1bnVzZWQgdmFycyBpbiAjaWZkZWYgSEFWRV9HRVRIT1NUTkFNRQogICAKMTk5OS0wNy0zMCAwNjowMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYwogICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuYyBhZ2VudC9taWJncm91cC92MnBhcnR5LmgpOgogICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA1OjQyICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICBzbm1wX2xvZ2dpbmcuYyAtIGNoYW5nZSBmaWx0ZXIgZm9yIG9wZW5sb2cgcGVyIEEuIFN5bW9ucyBwYXRjaAogICAKMTk5OS0wNy0zMCAwNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKICAgCjE5OTktMDctMzAgMDQ6MzkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsIGxvZ19wZXJyb3IKICAgCjE5OTktMDctMzAgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCiAgIAoxOTk5LTA3LTMwIDA0OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oaXN0b3J5LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICAtKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsYWdlbnQvaGlzdG9yeS5jLGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uYykgLSBwc29zIGRpZmZzIG9mZmVyZWQgYnkgQW50aG9ueSBTeW1vbnMKICAgCjE5OTktMDctMzAgMDM6NTcgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgUmVtb3ZlZCBoaW50IG9mIHYycGFydHkgZnJvbSBjb21tZW50LgogICAKMTk5OS0wNy0zMCAwMzo1MSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAogICAKMTk5OS0wNy0zMCAwMzo0OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gY2xlYW5lZCB1cCwgYWRkZWQgbW9yZSBhY2tub3dsZWRnZW1lbnRzCiAgIAoxOTk5LTA3LTI5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHh4Lmg6CgogICAtIChhZ2VudHh4LmgpOiByZW1vdmVkCiAgIAoxOTk5LTA3LTI5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5LzogYWNsX3ZhcnMuYywgYWNsX3ZhcnMuaCwKICAgYWxhcm0uYywgYWxhcm0uaCwgY29udGV4dF92YXJzLmMsCiAgIGNvbnRleHRfdmFycy5oLCBldmVudC5jLCBldmVudC5oLCBwYXJ0eV92YXJzLmMKLCBwYXJ0eV92YXJzLmgsIHZpZXdfdmFycy5jLCB2aWV3X3ZhcnMuaDoKCiAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgogICAKMTk5OS0wNy0yOSAxNzowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiByZW1vdmUgdHJhcF9zcGVjaWFsIHN0dWZmLgogICAKMTk5OS0wNy0yOSAxNjowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHVzZSBmcHV0cywgYXMgdnNwcmludGYgaGFzIGFscmVhZHkgZG9uZSB0aGUgaGFyZCB3b3JrLgogICAKMTk5OS0wNy0yOSAxNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGZsdXNoIGZpbGUgYW5kIHN0ZGVyciBhZnRlciB3cml0ZS4KICAgCjE5OTktMDctMjkgMTU6NTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtKHNubXBfbG9nZ2luZykgaW5jb3Jwb3JhdGUgUmFnbmFyJ3MgaW1wcm92ZW1lbnRzIHdpdGggaW50ZXJlc3QKICAgCjE5OTktMDctMjkgMTU6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBrZXJuZWwuYzoKCiAgIGF1dG9fbmxpc3QsIGtlcm5lbDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCiAgIAoxOTk5LTA3LTI5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KICAgCjE5OTktMDctMjkgMTM6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtKGFwcHMvTWFrZWZpbGUuaW4pIC0gY29tbWVudCB1bm5lZWRlZCBUUkFQU1BFQ0lBTCBsaW5lCiAgIAoxOTk5LTA3LTI5IDEyOjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIC0gZml4IGxvZ19wZXJyb3IKICAgCjE5OTktMDctMjkgMDg6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIG1lbW9yeV9zb2xhcmlzMjogaGFuZGxlIG1hbGxvYyBlcnJvcnMKICAga2VybmVsX3N1bm9zNTogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KICAgCjE5OTktMDctMjkgMDM6MjkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwogICAKMTk5OS0wNy0yOCAxMzozMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLVJFQURNRS53aW4zMiAtIGJ1aWxkIGd1aWRlIGZvciBXaW4zMi4gQ3lnd2luIGZyaWVuZGx5IHNjcmlwdCBpbmNsdWRlZC4KICAgCjE5OTktMDctMjggMDk6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBzbm1wX2xvZ2dpbmcuYzogYWRqdXN0IGhlYWRlcnMgZm9yIHRoYXQgV2luMzIgcGxhdGZvcm0uCiAgIAoxOTk5LTA3LTI4IDA5OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIFN1cHBvcnQgaHB1eDkgYW5kIHNvbGFyaXMyLjUuMSB3aXRoIHZzcHJpbnRmIGluc3RlYWQuCiAgIAoxOTk5LTA3LTI4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwogICAKMTk5OS0wNy0yOCAwMjo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKICAgCjE5OTktMDctMjcgMjM6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtZDUuYywgbWQ1LmgsIHNjYXBpLmMKLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jOgoKICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKICAgCjE5OTktMDctMjcgMjM6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCiAgIAoxOTk5LTA3LTI3IDIxOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcuYykgZml4IHN5c2xvZyBieSB2c25wcmludGYgdG8gYnVmZmVyLgogICAKMTk5OS0wNy0yNyAxOTowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCiAgIAoxOTk5LTA3LTI3IDE5OjAyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KICAgCjE5OTktMDctMjcgMTc6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KICAgCjE5OTktMDctMjcgMTY6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogZml4IGhlYWRlciBkdW1wLgogICAKMTk5OS0wNy0yNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jCiwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIGNsZWFuZWQgdXAgZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgogICAKMTk5OS0wNy0yNyAxNjowNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLShpbnRlcmZhY2VzLmMpIC0gZml4IGVycm9yIHNldHRpbmcgaWZfaWJ5dGVzIGZvciBMaW51eCAyLjAKICAgCjE5OTktMDctMjcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgc25tcGxpYjpyZWFkX2NvbmZpZy5jLHNubXB2My5jOyB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZikgLQogICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQogICAKMTk5OS0wNy0yNyAxMjowMCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwOgoKICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgogICAKMTk5OS0wNy0yNyAwOTo0MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICAtKG1hc3Rlci5jLCBzdWJhZ2VudC5jKSB1bi1jb21tZW50IGluaXRfbWFzdGVyIGFuZCBpbml0X3N1YmFnZW50LgogICAKMTk5OS0wNy0yNyAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYyxhcHBzL3NubXBkZWx0YS5jLGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYyxhcHBzL3NubXB1c20uYyxhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdjMuYykgZml4IHNubXBfc2Vzc19wZXJyb3IgdXNlOyB1c2UgbG9nX3BlcnJvciBmb3IgcGVycm9yCiAgIAoxOTk5LTA3LTI3IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBzbm1wbGliL2FzbjEuYyxzbm1wbGliL3NjYXBpLmMsc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAogICAKMTk5OS0wNy0yNyAwNjozOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgZmlsZS5jLCBocHV4LmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfc29sYXJpczIuYywKICAgcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwogICAKMTk5OS0wNy0yNyAwNDoyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwogICAKMTk5OS0wNy0yNiAxNzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgLSAoc2NhcGkuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHNpemVfdCBmaXguCiAgIAoxOTk5LTA3LTI2IDE3OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywKICAgc2NhcGkuYzoKCiAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsIHNjYXBpLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBzaXplX3QgY2hhbmdlcy4KICAgCjE5OTktMDctMjYgMTc6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCiAgIAoxOTk5LTA3LTI2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wNy0yNiAxNToxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMKLCBzbm1wX2F1dGguYywgc25tcHVzbS5jOgoKICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KICAgCjE5OTktMDctMjYgMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEJJVF9zdHJpbmc6IC0+IEJJVFM6CiAgIAoxOTk5LTA3LTI2IDExOjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKICAgCjE5OTktMDctMjYgMDk6MTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAogICAKMTk5OS0wNy0yNiAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0yNiAwNzozNyAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCiAgIAoxOTk5LTA3LTI0IDA4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLShtZDUuYykgLSB3cmFwIHVudXNlZCBNRDVwcmludCB3aXRoIFNOTVBfVEVTVElOR19DT0RFIGlmZGVmCiAgIAoxOTk5LTA3LTI0IDA4OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oY2FsbGJhY2suaCxkZWZhdWx0X3N0b3JlLmgsc25tcF9hbGFybS5oLHNubXBfbG9nZ2luZy5oKSBleHRlcm4gIkMiIHdyYXBwZWQKICAgCjE5OTktMDctMjQgMDc6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0oc25tcF9jbGllbnQuYykgLSB1c2UgU0VUX1NOTVBfRVJST1IgZm9yIHJlc3RvcmVkIHNubXBfZXJybm8gc2V0cy4KICAgCjE5OTktMDctMjQgMDc6MTggIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDctMjQgMDc6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKICAgCjE5OTktMDctMjMgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgIHNubXBfY2xpZW50LmMpOgogICAgIC0gbWFrZSBhbmQgdXNlIHNubXBfc2Vzc19wZXJyb3Ioc3RyLCBzZXNzKSBmb3IgZXJyb3IgcHJpbnRpbmcuCiAgIAoxOTk5LTA3LTIzIDE0OjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMgosIGRlbW8yLmZ1bmN0aW9ucywgZGVtbzIuc2V0dXBmaWxlOgoKICAgLSAoVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMiwgZGVtbzIuZnVuY3Rpb25zLCBkZW1vMi5zZXR1cGZpbGUpOgogICAgIC0gcmVtb3ZlZCBzb21lIHVuLW5lZWRlZCBvbGRlciBkZW1vIGZpbGVzLgogICAKMTk5OS0wNy0yMyAxNDoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAosIHRlc3RzL1QwMjBzbm1wdjNnZXQsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwKICAgICBUMDIzc25tcHYzZ2V0TUQ1REVTKTogc3VwcG9ydCBhIFNOTVBfRkxBR1MgZW52IHZhcmlhYmxlLgogICAKMTk5OS0wNy0yMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KICAgCjE5OTktMDctMjMgMTQ6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jCiwgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KICAgCjE5OTktMDctMjMgMTM6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBhIGxpdHRsZSBtb3JlIHZlcmJvc2UgYWJvdXQgd2hhdCBpcyBydW5uaW5nLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMKLCBzbm1wX2FwaS5jOgoKICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KICAgCjE5OTktMDctMjMgMTM6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KICAgCjE5OTktMDctMjMgMTM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgogICAKMTk5OS0wNy0yMyAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmgpOiBhZGRlZCBmb3IgYSBwcm90b3R5cGUgZGVmaW5pdGlvbi4KICAgCjE5OTktMDctMjMgMTA6NDIgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lQLU1JQi50eHQsIG1pYnMvVENQLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGtlcm5lbF9zdW5vczUuYywgdXRpbF9mdW5jcy5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dCwgVENQLU1JQi50eHQsCiAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTA3LTIzIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBsb2cgdG8gc3RkZXJyLgogICAKMTk5OS0wNy0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuc3RvcmFnZS5jb25mLCB0a21pYjoKCiAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgogICAKMTk5OS0wNy0yMCAxOTozMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKICAgCjE5OTktMDctMjAgMTg6MTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgogICAKMTk5OS0wNy0yMCAxNzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IC1XYWxsIGZpeGVzIChBTlNJKS4KICAgCjE5OTktMDctMjAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMKLCBkbG1vZHMvZGxtb2RfbWliLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMKLCBtaWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgIGFsYXJtLmMpOgogICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KICAgCjE5OTktMDctMjAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgaGlzdG9yeS5jLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCwgdXRpbF9mdW5jcy5jLCBpcGZ3Y2hhaW5zLmMsCiAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YWNtX3ZhcnMuYywgdmFyX3JvdXRlLmMsIGRsbW9kLmMsIHNtdXguYywgZGlzay5jLCBleHRlbnNpYmxlLmMsCiAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBQYXRjaCBmcm9tIFJhZ25hcgogICAgIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgLSBkbyBmaWxlLCBzdGRlcnIsIGFuZCBzeXNsb2cgc3VwcG9ydC4KICAgCjE5OTktMDctMTUgMDg6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaDoKCiAgIC0gKGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAtIGJlZ2lubmluZyBvZiBhIC1EZHVtcCB2ZXJzaW9uIG9mIHBhY2tldCBkdW1waW5nLgogICAgIC0gbmVlZHMgYSBsb3QgbW9yZSB3b3JrIGFuZCBjbGVhbiB1cC4KICAgICAtIEkgbmVlZCBjb21tZW50cy4uLiAgVGVsbCBtZSB3aGF0IHlvdSB0aGluay4uLgogICAKMTk5OS0wNy0xNSAwODo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgLSAodG9vbHMuYyk6IGluY2x1ZGUgYXJwYS9pbmV0LmguCiAgIAoxOTk5LTA3LTE0IDEzOjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShzbm1wbGliL21pYi5jKSAtIGNvbmRpdGlvbmFsbHkgYWxsb3cgZm9yIG5vdCBzZXR0aW5nIHNubXBfZXJybm8KICAgCjE5OTktMDctMTQgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLSBzbm1wX2FkZF92YXIgcmV0dXJucyBTTk1QRVJSOyBNQVkgc2V0IHNubXBfZXJybm8KICAgCjE5OTktMDctMTQgMDc6MTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBXYXJuaW5nIC0gaGVyZSBiZSBkcmFnb25zLi4uLgogICAKMTk5OS0wNy0xMiAwODozMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2RldmljZS5jLCBocl9kZXZpY2UuaCwKICAgaHJfZGlzay5jLCBocl9kaXNrLmgsIGhyX2ZpbGVzeXMuYywKICAgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwKICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLAogICBocl9wcmludC5oLCBocl9wcm9jLmMsIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5jCiwgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLAogICBocl9zeXN0ZW0uaDoKCiAgIC0gKG1pYmdyb3VwL2hvc3QvKik6IER5bmFtaWNhbGx5IHJlZ2lzdGVyIGFsbCBIb3N0IFJlc291cmNlIG1vZHVsZXMKICAgCjE5OTktMDctMTIgMDc6MTQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiByZW1vdmUgZGVwZW5kZW5jeSBvbiBzbm1wbGliL2FnZW50eC5oCiAgIAoxOTk5LTA3LTExIDE4OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIFJlZHVjZSB1c2Ugb2Ygc25tcF9lcnJubyAtIGZpeCBtZW1vcnkgbGVhaywgdW51c2VkIHZhcnMsIGFuZCB1bnNldCB2YXIuCiAgIAoxOTk5LTA3LTA5IDE2OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IGZpeCBjbGllbnRyZWcgZXJyb3IuCiAgIAoxOTk5LTA3LTA5IDE0OjE5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSh3aW4zMixzbm1wbGliLGFwcHMsYWdlbnQpIGFkZCBzbm1wX3NvY2tldF9sZW5ndGggdG8gaGlkZSBzb2NrYWRkcl91bjsgV2luMzIgdG91Y2h1cHMKICAgCjE5OTktMDctMDkgMTI6MTIgIG1zbGlmY2FrCgogICAqIFJFQURNRS50aHJlYWQsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXBfc2Vzc19hcGkuMywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0oc25tcF9jbGllbnQuKikgcmVtb3ZlIHNubXBfc3luY2hfc2V0dXAsIHNubXBfc3luY2hfcmVzZXQKICAgCjE5OTktMDctMDkgMDg6MzUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4LmgsIGFnZW50eF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvYWdlbnR4Kik6IE1vdmVkIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDA4OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC5oLCBhZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50eC9jbGllbnQuaCwgYWdlbnR4L21hc3Rlci5jLCBhZ2VudHgvbWFzdGVyLmgKLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudHgvcHJvdG9jb2wuYywgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5jCiwgYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHguaCBhZ2VudC9taWJncm91cC9hZ2VudHgvKik6CiAgICAgLSBNb3ZlIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZyB0byBhIChtb3N0bHkpIHNlbGYtY29udGFpbmVkIG1vZHVsZQogICAKMTk5OS0wNy0wOSAwODoyNyAgZGF2ZXMKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KOgoKICAgLSAoKi9NYWtlZmlsZS5pbiBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0KICAgICAgYWdlbnQvc25tcGQuW2NoXSBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIE1vdmUgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKICAgCjE5OTktMDctMDkgMDE6NDkgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogQ2xlYW4gdXAgZ2lkL3VpZCBjaGFuZ2UgbG9nZ2luZwogICAKMTk5OS0wNy0wOCAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgogICAgIC0gQWRkIG9wdGlvbnMgZm9yIHN3aXRjaGluZyB0byBhIGdpdmVuIHVpZCBhbmQgZ2lkLgogICAKMTk5OS0wNy0wOCAxNToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgKOgoKICAgLSAoc25tcGRlbHRhLmMsIGludDY0LmMsIGludDY0LmgpOiBtaW5pbWFsIGM2NCBzdXBwb3J0IGZvciBzbm1wZGVsdGEuIFVudGVzdGVkLgogICAKMTk5OS0wNy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCiAgIAoxOTk5LTA3LTA4IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvdmlld19wYXJzZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgKLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi92aWV3LmMsIHNubXBsaWIvdmlldy5oCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgdmlld19wYXJzZS5jLCB2YWNtX3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLCBtYWluLmMsIE1ha2VmaWxlLmluLCBhY2wuYywKICAgICBhY2wuaCwgYWNsX3BhcnNlLmMsIGNvbnRleHQuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgbGlic25tcC5oLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHZpZXcuYywgdmlldy5oKToKICAgICAtIHYycGFydHkgc3VwcG9ydCBpcyBmaW5hbGx5IGdvbmUhCiAgIAoxOTk5LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IC1XYWxsIGZpeGVzLgogICAKMTk5OS0wNy0wOCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHguaDoKCiAgIC0gKGFnZW50eC5jLCBhZ2VudHguaCk6IC1XYWxsIGZpeGVzLgogICAKMTk5OS0wNy0wOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtIChjb25maWcuaCk6IGNvbW1lbnQgY2hhbmdlIGZvciBpbnRlcm5hbCBtZDUuCiAgIAoxOTk5LTA3LTA4IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAtICh0b29scy5jKTogdHlwbyBpbiAjaWZkZWYuCiAgIAoxOTk5LTA3LTA4IDA2OjI1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNubXBfbWliLmMsIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3N5c3RlbV9taWIuYyBtaWJJSS9zbm1wX21pYi5jKToKICAgICAtIFVwZGF0ZSAnd3JpdGUnIHJvdXRpbmVzIGZvciBWNCBhcmNoaXRlY3R1cmUsCiAgICAgICBhbmQgdXNpbmcgdGhlIGZ1bGwgU0VUIG11bHRpLXBhc3MgYWxnb3JpdGhtCiAgIAoxOTk5LTA3LTA4IDAyOjE2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUmV0YWluIGNvbW11bml0eSBzdHJpbmcgaW4gcmVzcG9uc2VzCiAgIAoxOTk5LTA3LTA3IDA2OjU0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsCiAgIGFnZW50eC5jLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYyBhc24xLmggc25tcC5jIHNubXAuaCBzbm1wX2FwaS5jIHNubXBfYXBpLmgKICAgICAgc25tcF9hdXRoLmMgc25tcF9pbXBsLmggYWdlbnR4LmMpOgogICAgICAtIEZpcnN0IGF0dGVtcHQgYXQgZm9ybWF0dGVkIGRpc3BsYXkgb2YgcGFja2V0IGRhdGEKICAgCjE5OTktMDctMDYgMDI6MjAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBTTk1QdjEgbm9TdWNoTmFtZQogICAKMTk5OS0wNy0wMiAwODoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiByZWdpc3RlciBkZWJ1Z2dpbmcgdG9rZW5zIHdpdGggLUQKICAgCjE5OTktMDctMDIgMDU6MTggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4eC5oLCBhZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50eC9tYXN0ZXIuaCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudHgvbWFzdGVyX2FkbWluLmgsIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuaDoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eHguaCBtaWJncm91cC5hZ2VudHgvKTogSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBBZ2VudFggbWFzdGVyCiAgIAoxOTk5LTA3LTAyIDA1OjE2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogc3VwcG9ydCBsaXN0cyBvZiBzZXNzaW9ucyAoYW5kIHN1YnNlc3Npb25zKQogICAKMTk5OS0wNy0wMiAwNToxNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCB2YXJfc3RydWN0Lmg6CgogICAtICh2YXJfc3RydWN0LmggYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgLSBtYXAgYmV0d2VlbiBNSUIgcmVnaXN0cmF0aW9ucyBhbmQgdGhlIHN1cHBvcnRpbmcgKHN1YmFnZW50KSBzZXNzaW9uCiAgIAoxOTk5LTA3LTAyIDA1OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL2FzbjEuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBsaWIvYXNuMS5oIGFnZW50L3NubXBfdmFycy5oIGFnZW50L3NubXBfYWdlbnQuYyk6CiAgICAgLSBpbXBsZW1lbnQgYW4gaW50ZXJmYWNlIGZvciBkZWxlZ2F0aW5nIHJlcXVlc3RzIHRvIHN1YmFnZW50cwogICAKMTk5OS0wNy0wMiAwMjozOSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZpeCB0aGF0IGxhc3QgJ3NlbmR0bycgY2FzZSAqY29ycmVjdGx5KiB0aGlzIHRpbWUKICAgCjE5OTktMDctMDIgMDI6MDQgIGRhdmVzCgogICAqIHNubXBsaWIvYWdlbnR4LmM6CgogICAtIChhZ2VudHguYyk6IEJldHRlciBoYW5kbGluZyBvZiBidWlsZGluZyBudWxsIHN0cmluZ3MKICAgCjE5OTktMDYtMzAgMTk6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMKLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oCjoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMsCiAgICAgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIGNvbnZlcnQgbW9yZSBzdHVmZiB0byB0aGUgZGVmYXVsdF9zdG9yZSBzcGFjZS4KICAgCjE5OTktMDYtMzAgMTk6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCB0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYywgdG9vbHMuYyk6IC1XYWxsIGZpeGVzIHdoZW4gVEVTVElOR19DT0RFIGlzIGVuYWJsZWQuCiAgIAoxOTk5LTA2LTMwIDA1OjQ4ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogTWlzc2VkIG9uZSAnc2VuZHRvJyBjYWxsCiAgIAoxOTk5LTA2LTMwIDA1OjA2ICBkYXZlcwoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKTogY2hlY2sgZm9yIHN5cy91bi5oCiAgIAoxOTk5LTA2LTMwIDA1OjA1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUHJvdmlkZSB0aGUgY29ycmVjdCBzaXplIG9mIHNvY2tldCBhZGRyZXNzZXMKICAgCjE5OTktMDYtMzAgMDM6MjAgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5oKTogb21pdCByZWR1bmRhbnQgZGVjbGFyYXRpb25zCiAgIAoxOTk5LTA2LTMwIDAyOjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogQ29ycmVjdCB0aGUgc2V0dXAgb2Ygc3RyZWFtLWJhc2VkIGFjY2VwdGVkIGludGVybmFsIHNlc3Npb25zCiAgIAoxOTk5LTA2LTMwIDAxOjQ4ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6ICdhZ2VudF9zbm1wX3Nlc3Npb24nIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUKICAgCjE5OTktMDYtMzAgMDE6NDUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5oKTogSW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlIG9mIHt1bn1yZWdpc3RyYXRpb24KICAgCjE5OTktMDYtMzAgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmg6CgogICAtIChzeXNPUlRhYmxlLmMgc3lzT1JUYWJsZS5oKTogSW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlIG9mIHt1bn1yZWdpc3RyYXRpb24KICAgCjE5OTktMDYtMjggMTU6MDEgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGluaXRfc25tcF9hbGFybSgpOwogICAKMTk5OS0wNi0yOCAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jKTogY29udmVydCB0byBzaXplX3QKICAgCjE5OTktMDYtMjggMTQ6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogaW5pdF9zbm1wX2FsYXJtKCkuCiAgIAoxOTk5LTA2LTI4IDA5OjUyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzLmggdmFyX3N0cnVjdC5oKToKICAgICAtIE5vbi1yZWN1cnNpdmUgTUlCIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTA2LTI4IDA4OjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvOiBzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCwKICAgc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oLCB1c21TdGF0cy5jLAogICB1c21TdGF0cy5oLCB1c21Vc2VyLmMsIHVzbVVzZXIuaDoKCiAgIC0gKHNubXBFbmdpbmUuYyBzbm1wRW5naW5lLmggc25tcE1QRFN0YXRzLmMgc25tcE1QRFN0YXRzLmgKICAgICAgdXNtU3RhdHMuYyB1c21TdGF0cy5oIHVzbVVzZXIuYyB1c21Vc2VyLmgpOgogICAgICAtIFJ1bi10aW1lIHJlZ2lzdHJhdGlvbiAocmF0aGVyIHRoYW4gdmlhICdjb25maWd1cmUnKQogICAKMTk5OS0wNi0yOCAwNzo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAyMXNubXB2M2dldG5leHQsCiAgIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVM6CgogICAtIChTdjNjb25maWcsIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTKToKICAgICAtIDMgbmV3IHYzIHRlc3RzLgogICAKMTk5OS0wNi0yOCAwNzo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoOgoKICAgLSAoUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2gpOiBhY2NlcHQgYWdlbnQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgIAoxOTk5LTA2LTI4IDA0OjA3ICBkYXZlcwoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0ge01ha2VmaWxlLmluIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcF92YXJzLmMgYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgLSBDb25zb2xpZGF0ZSBhbGwgcmVnaXN0cnkgaGFuZGxpbmcgaW50byBvbmUgZmlsZQogICAKMTk5OS0wNi0yOCAwMzowOCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiBtYWtlIFNOTVAgcGFja2V0IGhhbmRsaW5nIHJvdXRpbmUgcmUtZW50cmFudC4KICAgCjE5OTktMDYtMjMgMTA6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFRFU1RDT05GLnNoLAogICBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9TdjNjb25maWc6CgogICAtIChNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLCBTdjNjb25maWcpOgogICAgIC0gZ2l2ZSBSVU5URVNUUyBsb3RzIG9mIGFyZ3VtZW50cy4KICAgICAtICJtYWtlIHRlc3QiIG5vdyBjYWxscyAiUlVOVEVTVFMgLWEiCiAgIAoxOTk5LTA2LTIyIDA1OjI1ICBuYmEKCiAgICogVE9ETzoKCiAgIFRPRE86CW5lZWQgZm9yIENvdW50ZXI2NCBzdXBwb3J0IGluIHNubXBkZWx0YQogICAKMTk5OS0wNi0yMiAwNToyMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICBpbnZva2Ugc25tcF9zZXNzX2luaXQgYmVmb3JlIGFueSBNSUIgcHJvY2Vzc2luZyAoZml4ZXMgbWFzdGVyIGFnZW50KS4KICAgCjE5OTktMDYtMTggMTI6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4X2NsaWVudC5jOgoKICAgLShhZ2VudHgqLmMpIGZpeCBoZWFkZXJzIHRvIGNvbXBpbGUgb24gQ3lnV2luLCBXaW4zMiBNU1ZDKysKICAgCjE5OTktMDYtMTggMTA6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0oc3lzT1JUYWJsZS5jKSBmaXggcHRyIHRlc3QKICAgCjE5OTktMDYtMTggMDk6MTQgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmgsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoc25tcGQuYyBzbm1wZC5oIHNubXBfdmFycy5jIHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgKICAgICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBpbml0aWFsIEFnZW50WCBzdWItYWdlbnQgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMDYtMTggMDk6MDAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBtZWFucyBvZiBieXBhc3NpbmcgVkFDTSBjaGVja3MKICAgCjE5OTktMDYtMTggMDg6NTUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4LmgsIGFnZW50eF9jbGllbnQuYywKICAgc25tcF9hcGkuaCwgTWFrZWZpbGUuaW46CgogICAtIChzbm1wX2FwaS5oIE1ha2VmaWxlLmluIGFnZW50eC5jIGFnZW50eC5oIGFnZW50eF9jbGllbnQuYyk6CiAgICAgLSBiYXNpYyBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcKICAgCjE5OTktMDYtMTggMDg6NDkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOgogICAgIC0gYWNjb21vZGF0ZSBzZXJ2ZXJzIHRoYXQgcmVxdWlyZSBhbiBhY2Nlc3NpYmxlIGNsaWVudC1lbmQgdW5peCBzdHJlYW0gc29ja2V0CiAgICAgICAgICAgICAgICAgKGluIHBhcnRpY3VsYXIsIHRoZSBDTVUgQWdlbnRYIG1hc3RlciBhZ2VudCkKICAgCjE5OTktMDYtMTggMDg6NDcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBub24tcmVzcG9uc2UgaGFuZGxpbmcgaW4gJ3NubXBfc2Vzc19yZWFkJwogICAKMTk5OS0wNi0xOCAwODo0NCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IE5ldyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUKICAgCjE5OTktMDYtMTggMDg6MDQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmgsIHNubXBfYXBpLmM6CgogICAtIChhc24xLmggc25tcF9hcGkuYyk6IE5ldyBwcml2YXRlIHR5cGVzIGZvciBPSUQgcmFuZ2VzCiAgIAoxOTk5LTA2LTE4IDA4OjAwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogRW5hYmxlIGFjY2VzcyB0byAiZW1wdHkiIHJlc3BvbnNlIFBEVXMgKGkuZS4gaGVhZGVyIG9ubHkpLgogICAJKGFsc28gbWFrZSAnc25tcF9jbG9uZV9tZW0nIGFjY2Vzc2libGUgdG8gb3RoZXIgZmlsZXMpCiAgIAoxOTk5LTA2LTE4IDA3OjU2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcC5oLCBzbm1wX2FwaS5jOgoKICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIFNOTVAgcHJvdG9jb2wgJiBQRFUgaGFuZGxpbmcgZmxhZ3MKICAgCjE5OTktMDYtMTggMDY6NTggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmg6CgogICAtIChzeXNPUlRhYmxlLmMgc3lzT1JUYWJsZS5oKTogbmV3IHJvdXRpbmUgZm9yIHJlbW92aW5nIHN5c09SVGFibGUgZW50cmllcwogICAKMTk5OS0wNi0xOCAwNTowMSAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHVzbS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGxpZWQgZml4ZXMgZnJvbSBNLiBMYXVra2FuZW4KICAgCjE5OTktMDYtMTcgMTM6MTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBmaXh1cHMgdG8gYnVpbGQgbW9zdCBhcHBzIHVuZGVyIFdpbjMyIChNU1ZDKysgNS4wIG9yIGxhdGVyKQogICAKMTk5OS0wNi0xNyAwNzozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCAtLWhlbHAuCiAgIAoxOTk5LTA2LTE2IDE2OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgIC0gMiBuZXcgc25tcC5jb25mIHRva2VuczogZG9EZWJ1Z2dpbmcsIGRlYnVnVG9rZW5zLgogICAKMTk5OS0wNi0xNiAxNjoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYwosIHBhcnNlLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMpOgogICAgIC0gZmlyc3QgdXNhZ2Ugb2YgdGhlIGRlZmF1bHRfc3RvcmUoKSByb3V0aW5lczogbW92ZSBhbGwgdGhlIG1pYgogICAgICAgcGFyc2VyIHZhcmlhYmxlcyB0byBpdCwgYW5kIGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aGVtLgogICAgICAgLSBwcmVtaWIgYXV0by1yZWdpc3RyYXRpb24gb2YgZGVmYXVsdF9zdG9yZSBuZWVkcyBjbGVhbmluZyB1cC4uLiAgc2lnaC4uLgogICAKMTk5OS0wNi0xNiAwNjo1NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBIb29rcyBmb3IgYnVpbGRpbmcvcGFyc2luZyBub24tU05NUCBwYWNrZXRzCiAgIAoxOTk5LTA2LTE2IDA1OjQ5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaGFuZGxlIHJlc3BvbnNlcyBpbiBhIG1vcmUgcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWFubmVyCiAgIAoxOTk5LTA2LTE2IDA1OjExICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcC5oLCBzbm1wX2FwaS5jOgoKICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBtb3ZlIFBEVSB2YWxpZGF0aW9uLCBldGMgZnJvbSAnc2VuZCcgdG8gJ2J1aWxkJyByb3V0aW5lcwogICAKMTk5OS0wNi0xNSAxNjoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0OgoKICAgLSAoVDAyMHNubXB2M2dldCk6IG5ldyB0ZXN0OiAgc25tcGdldCB1c2luZyB2MyBhbmQgdXNlciAiaW5pdGlhbCIuCiAgIAoxOTk5LTA2LTE1IDE2OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQ6CgogICAtIChUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dCk6CiAgICAgLSBDaGVjayBmb3IgVGltZXRpY2tzOiBpbiBvdXRwdXQsIHNpbmNlIG91dHB1dCBoYXMgY2hhbmdlZCBpbiA0LjAuCiAgIAoxOTk5LTA2LTE1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIChldmFsX3Rvb2xzLnNoKTogZGlzcGxheSBtb3JlIG91dHB1dCBzdHVmZiB3aGVuIGluIHZlcmJvc2UgbW9kZS4KICAgCjE5OTktMDYtMTUgMTY6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIChURVNUQ09ORi5zaCk6IHNhdmUgcGFja2V0IGR1bXAuCiAgIAoxOTk5LTA2LTE1IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IGFsbG93ZWQgemVyb2xlbmd0aCBwZHUtPnNlY3VyaXR5TmFtZSBwcm9ibGVtIGZvcgogICAgIHYzIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMuCiAgIAoxOTk5LTA2LTE1IDA4OjI3ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6CiAgICAgLSBNb3ZlIHByb2Nlc3NpbmcgZnJvbSAnaGFuZGxlX25leHRfcGFzcygpJyB0byAnaGFuZGxlX3NubXBfcGFja2V0KCknCiAgIAoxOTk5LTA2LTE1IDAzOjU5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlCiAgIAoxOTk5LTA2LTExIDE3OjQ0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YxY29uZmlnLCBTdjJjY29uZmlnLCBTdmFueWNvbmZpZwosIFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbDoKCiAgIC0gKFN2MWNvbmZpZywgU3YyY2NvbmZpZywgU3Zhbnljb25maWcsIFQwMDFzbm1wdjFnZXQsCiAgICAgVDAwMnNubXB2MWdldG5leHQsIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwKICAgICBUMDE1c25tcHYyY2dldG5leHQsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsKToKICAgICAtIGluaXRpYWwgcGFzcyBvZiB0ZXN0aW5nIHN1aXRlIHRlc3RzLi4uICBBZ2Fpbiwgc3RpbGwgbmVlZHMgd29yay4KICAgCjE5OTktMDYtMTEgMTc6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVDIuc2gsIFRFU1RDT05GLnNoLAogICBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaDoKCiAgIC0gKFJVTlRFU1RTLCBUMi5zaCwgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoKToKICAgICAtIHRlc3Rpbmcgc3VpdGUgc2NyaXB0cy4uLiAgc3RpbGwgbmVlZCBoZWF2eSB3b3JrLgogICAKMTk5OS0wNi0wOSAxODoyOSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBGQVEKLCBJTlNUQUxMLCBORVdTLCBSRUFETUUsIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1ha2V0YXJnZXQsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi92YWNtLmM6CgogICAtICgqKTogbWVyZ2VkIDMuNi4yIGNoYW5nZXMgaW50byBtYWluIGJyYW5jaC4KICAgCjE5OTktMDYtMDkgMDY6MzIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiByZW9yZGVyIFBEVSBhbmQgc2Vzc2lvbiBmaWVsZHMgbW9yZSBjbGVhcmx5CiAgIAoxOTk5LTA2LTA4IDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLAogICB2bXN0YXRfZnJlZWJzZDIuYzoKCiAgIC0oeHhfX2ZyZWVic2QyLmMpIC0gZml4IHNpemVfdCB0byBidWlsZCBvbiBGcmVlQlNEIDIuMi54CiAgIAoxOTk5LTA2LTA4IDA4OjQzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYwogICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oCiAgICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCk6CiAgICAgIC0gIHJlbW92ZWQgYWxsIHVzZXMgb2YgJ3N0cnVjdCBwYWNrZXRfaW5mbycgKHN1YnN1bWVkIGludG8gJ3N0cnVjdCBzbm1wX3BkdScpCiAgIAoxOTk5LTA2LTA4IDA3OjQxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jIChWMy1saW5lLjQpLCBocl9maWxlc3lzLmMKOgoKICAgLShocl9maWxlc3lzLmMpIGZpeCBtZW1vcnkgbGVhayB3aGVuIEhBVkVfR0VURlNTVEFUIGlzIGRlZmluZWQuCiAgIAoxOTk5LTA2LTA3IDEzOjA0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KICAgCjE5OTktMDYtMDcgMDc6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYwosIHVkcC5jOgoKICAgLShpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgaXAuYykgY2xvbmUgZml4ZXMgZnJvbSAzLjYgbGluZSAoRnJlZUJTRDMuMSkKICAgCjE5OTktMDYtMDQgMDk6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwogICAKMTk5OS0wNi0wMiAxMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgIC0gKHNubXBfYWxhcm0uMyk6IGRvY3VtZW50IHRoZSBuZXcgc25tcF9hbGFybSgpIGNhbGxzLgogICAKMTk5OS0wNi0wMSAxNzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaAosIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgIC0gaW1wbGVtZW50ZWQgYSBnZW5lcmljIGFsYXJtIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm0gZnVuY3Rpb25zIHRvCiAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgogICAKMTk5OS0wNi0wMSAwNzozMCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKICAgCjE5OTktMDYtMDEgMDI6MzIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdlbmVyYWxpc2UgaGFuZGxpbmcgb2YgYWRkcmVzc2VzICh3LnIudCBzZW50by9yZWN2ZnJvbSkKICAgCjE5OTktMDYtMDEgMDI6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwogICAKMTk5OS0wNS0yOCAxNjo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsCiAgIGRlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMvZXRjIGNyZWF0ZWQgZm9yIHZhbHVlcyB3aGljaCBjb25maWd1cmUgdGhlCiAgICAgICBsaWJyYXJ5LgogICAKMTk5OS0wNS0yOCAxNjoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KICAgCjE5OTktMDUtMjggMDk6MjQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKICAgCjE5OTktMDUtMjggMDk6MTIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFNlcGFyYXRlIG91dCBjb3B5aW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIG5ldyBvbmUKICAgCjE5OTktMDUtMjggMDg6NTcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKICAgCjE5OTktMDUtMjggMDg6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKICAgCjE5OTktMDUtMjggMDc6MDEgIGRhdmVzCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggcHJvYmxlbSB3aXRoIG51bGwgbWFjcm8KICAgCjE5OTktMDUtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgogICAKMTk5OS0wNS0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgogICAKMTk5OS0wNS0yNyAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgogICAKMTk5OS0wNS0yNyAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogaW1wbGVtZW50IHRoZSBkZWZhdWx0IHRyYXAgaGFuZGxlci4KICAgCjE5OTktMDUtMjcgMDU6MTYgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKICAgCjE5OTktMDUtMjYgMTc6MzggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUEZXQUNDLU1JQi50eHQgKFYzLWxpbmUuMiksIElQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgogICAKMTk5OS0wNS0yNiAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KICAgCjE5OTktMDUtMjYgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBpcGZ3YWNjLmggKFYzLWIzLjIpLCBpcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCiAgIAoxOTk5LTA1LTI2IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVBGV0FDQy1NSUIudHh0IChWMy1iMy4xKSwgSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgogICAKMTk5OS0wNS0yNiAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3aW5zdC5jIChWMy1iMy4xKSwgaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgogICAKMTk5OS0wNS0yNiAxMToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGlwZndhY2MuaCAoVjMtYjMuMSksIGlwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgogICAKMTk5OS0wNS0yNiAwODoxNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKSAtIGluY2wgc3lzL3R5cGVzIHRvIGZpeCBIUC1VWCA5LnggYnVpbGQKICAgCjE5OTktMDUtMjQgMDU6MzYgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZToKCiAgIC1jb25maWd1cmUgLSBzYXZlIG9uZSB3aGljaCBsb29rcyBmb3IgbmV0ZGIvc29ja2V0IGhlYWRlcnMKICAgCjE5OTktMDUtMjMgMDg6MDQgIG1hcnoKCiAgICogdGVzdGluZy9wYWNrZXQxLnR4dDoKCiAgIGZpbGUgcGFja2V0MS50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTIxIDE1OjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmlldy5jCiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgogICAKMTk5OS0wNS0yMSAxMToxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgLSBtaXNjIGV2YWwgZml4ZXMuCiAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgogICAKMTk5OS0wNS0yMSAxMTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgLSBoZWFkZXJfY29tcGxleF9wYXJzZV9vaWQoKSBjcmVhdGVkLgogICAgIC0gY29udmVydCBldmVyeXRoaW5nIHRvIHNpemVfdC4KICAgCjE5OTktMDUtMjEgMDU6NTQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgIChhbHNvIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93bikKICAgCjE5OTktMDUtMjEgMDU6MjQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KICAgCjE5OTktMDUtMjEgMDE6MjUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogRml4IGluY29ycmVjdCBwb2ludGVyIGNhc3QKICAgCjE5OTktMDUtMjAgMDM6NDYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCiAgIAoxOTk5LTA1LTE5IDE4OjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3RfcmVzLmggKFYzLWxpbmUuMSksIGhvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCiAgIAoxOTk5LTA1LTE5IDE4OjAxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWMy1saW5lLjIpLCB2YXJfcm91dGUuYwo6CgogICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKICAgCjE5OTktMDUtMTkgMDg6MDIgIG1hcnoKCiAgICogdGVzdGluZy9wa3RnZW4udHh0OgoKICAgZmlsZSBwa3RnZW4udHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNzoxNiAgbWFyegoKICAgKiB0ZXN0aW5nL3BhY2tldC50eHQ6CgogICBmaWxlIHBhY2tldC50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTE5IDA3OjE0ICBtYXJ6CgogICAqIHRlc3RpbmcvcGt0Z2VuLnBsOgoKICAgZmlsZSBwa3RnZW4ucGwgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTE5IDA1OjExICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCiAgIAoxOTk5LTA1LTE5IDAyOjMzICBkYXZlcwoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwogICAKMTk5OS0wNS0xOCAwOToyMyAgZGF2ZXMKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXBidWxrd2Fsay5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB1c20uYyBhcHBzL3NubXB3YWxrLmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyk6CiAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKICAgCjE5OTktMDUtMTggMDk6MDEgIG1zbGlmY2FrCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoeHgvTWFrZWZpbGUuaW4pIHJlbW92ZSByZWZlcmVuY2VzIHRvIGFzIHlldCBtaXNzaW5nIGRpc21hbiBmaWxlcy4KICAgCjE5OTktMDUtMTggMDY6MjYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwogICAKMTk5OS0wNS0xNyAwNzoxNyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwo6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAKICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAob2Jzb2xldGluZyAnYWdlbnRfYWRkcicpCiAgIAoxOTk5LTA1LTE3IDA0OjM2ICBkYXZlcwoKICAgKiBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3MgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKICAgCjE5OTktMDUtMTcgMDQ6MzQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAKICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCiAgIAoxOTk5LTA1LTE3IDAzOjIwICBkYXZlcwoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMgKFYzLWxpbmUuMSksIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCiAgIAoxOTk5LTA1LTE3IDAzOjE3ICBkYXZlcwoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCiAgIAoxOTk5LTA1LTE0IDEzOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHNubXBsaWIvc25tcHVzbS5jCjoKCiAgIC0oYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIHNubXBsaWIvc25tcHVzbS5jKSBmaXhlcyB0byBidWlsZCBIUCAmIEFJWAogICAKMTk5OS0wNS0xNCAwOTo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICBzbm1wbGliL3BhcnNlLmMpIG1vcmUgQU5TSS1DIHRvdWNodXBzCiAgIAoxOTk5LTA1LTE0IDA2OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgc25tcGxpYi9zbm1wX2F1dGguYykgbW9yZSBzaXplX3QgZml4ZXMKICAgCjE5OTktMDUtMTMgMDk6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFYzLWxpbmUuMyksIHZhY21fdmFycy5jCjoKCiAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgogICAKMTk5OS0wNS0xMyAwMzo1MiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcC5jIChWMy1saW5lLjIpLCBpcC5jOgoKICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKICAgCjE5OTktMDUtMTIgMTE6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jCjoKCiAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgogICAKMTk5OS0wNS0xMiAxMDo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQogICAKMTk5OS0wNS0xMSAxNDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBocHV4LmMsIGhwdXguaDoKCiAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KICAgCjE5OTktMDUtMTEgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oOgoKICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgogICAKMTk5OS0wNS0xMSAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KICAgCjE5OTktMDUtMTAgMTQ6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAJaW5zaWRlIFYxIHNlc3Npb24uCiAgIAoxOTk5LTA1LTEwIDE0OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeGluZyBzb21lIG1vcmUgcHJvdG90eXBlcy4gUG9pbnRlZCBvdXQgYnkgTWFya2t1IExhdWtrYW5lbi4KICAgCjE5OTktMDUtMDYgMDk6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgogICAKMTk5OS0wNS0wNCAxMTowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgogICAKMTk5OS0wNS0wNCAxMTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6CiAgICAgLSBmaXhlcyBmb3Iga210LgogICAgIC0gcG9ydGFiaWxpdHkgZW5oYW5jZW1lbnRzLgogICAKMTk5OS0wNS0wNCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IGRvbid0IHVzZSBJU0RGKCkuCiAgIAoxOTk5LTA1LTA0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogZG9uJ3QgZHVtcCBrZXlsaXN0LgogICAKMTk5OS0wNS0wNCAwMDo1MCAgbmJhCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCBzbm1wZC5jLCBzbm1wZC5oLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBtaWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwosIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYwosIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwosIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jCiwgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBtaWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMKLCBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMKLCBtaWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIG1pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsIG1pYmdyb3VwL3YycGFydHkvZXZlbnQuYwosIG1pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBtaWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jOgoKICAgKG1hbnkpOglyZW1vdmUgY29uc3Qgc3BlYyBmcm9tIEZpbmRWYXJNZXRob2QuIFRoYXQgd2FzIHdyb25nCiAgIAoxOTk5LTA1LTA0IDAwOjQ3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCiAgIAoxOTk5LTA1LTAzIDE1OjM4ICBuYmEKCiAgICogYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsCiAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaAosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwosIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvYWxsX3N5c3RlbS5oLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvY29udGV4dC5jLAogICBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWQ1LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLXRjLmgKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3NubXB2My5oLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKLCBzbm1wbGliL3ZhY20uaCwgc25tcGxpYi92aWV3LmMsIHNubXBsaWIvdmlldy5oCjoKCiAgICgqLltjaF0pOglwYXRjaGVzIHRvIHR5cGVzIHRvIHdpcGUgd2FybmluZ3MgZnJvbSBjb21waWxlcnMKICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQogICAKMTk5OS0wNS0wMyAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwgc25tcGxpYi9hbGxfc3lzdGVtLmgsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9ldGltZXRlc3QuYywKICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgYWxsX2dlbmVyYWxfbG9jYWwuaCwgYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgIC0gbnVrZWQgYWxsX2dlbmVyYWxfbG9jYWwuaCBhbmQgYWxsX3N5c3RlbS5oLgogICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgogICAKMTk5OS0wNS0wMyAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KICAgCjE5OTktMDUtMDMgMDc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3NubXB2My5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICBzY2FwaS5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgogICAKMTk5OS0wNS0wMyAwNzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IC1XYWxsIGZpeCBpbml0aWFsaXppbmcgYSB2YXJpYWJsZS4KICAgCjE5OTktMDUtMDEgMDc6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgLSAoY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IHJlbmFtZWQgc25tcF9jYWxsYmFjayB0byBzbm1wX2dlbl9jYWxsYmFjay4KICAgCjE5OTktMDQtMjkgMDg6NDQgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IE5vdGUgY2hhbmdlIGZyb20gUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0wNC0yOSAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMKLCBzbm1wbGliL3NubXB2My5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCiAgIAoxOTk5LTA0LTI5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAtIChNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IGNhbGxiYWNrIEFQSS4KICAgCjE5OTktMDQtMjggMDc6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGVudW0gI2RlZmluZXMgY3JlYXRlZAogICAKMTk5OS0wNC0yNyAwOTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKSBhZGQgaWZfdHlwZV9mcm9tX25hbWUgdG8gY29udmVydCBpbnRlcmZhY2UgbmFtZSB0byB0eXBlLgogICAKMTk5OS0wNC0yNiAxMjozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCiAgIAoxOTk5LTA0LTI2IDEyOjExICBuYmEKCiAgICogdmVyc2lvbi5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2F1dG9fbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmlld19wYXJzZS5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCjoKCiAgIAogICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgCWZ1bmN0aW9ucy4KICAgCjE5OTktMDQtMjYgMTI6MDkgIG5iYQoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICBzbm1wdGFibGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmM6CgogICAKICAgCiAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgYXBwcy9zbm1wdHJhcGQuYzogZml4IGEgYnVzIGVycm9yIHdoZW4gdXNpbmcgLVMgYW5kIHJlY2VpdmluZyBhbgogICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgogICAKMTk5OS0wNC0yNiAxMjowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIAogICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgIAlzdHJpbmdzCiAgIAoxOTk5LTA0LTI2IDExOjQ4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICBpbnNwaXJlZCBieSBhIHJlZmVyZW5jZSB0byBzbm14IGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwogICAKMTk5OS0wNC0yNiAxMToyMSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgIAogICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQogICAKMTk5OS0wNC0yNiAwOToyMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgogICAKMTk5OS0wNC0yMyAxMzowNSAgbXNsaWZjYWsKCiAgICogUkVBRE1FLnRocmVhZDoKCiAgIC0gUkVBRE1FLnRocmVhZCAtIGxvbmcgbmVlZGVkIGRvY3VtZW50IGRlc2NyaWJpbmcgaG93IHRvIHVzZSBTaW5nbGUgQVBJCiAgIAoxOTk5LTA0LTIyIDEwOjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaAosIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBrZXl0b29scy5jKTogQW5vdGhlciB2MyBicmFuY2ggdXBkYXRlLgogICAKMTk5OS0wNC0yMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogQ3JlYXRlZCBhIG5ldyBzdXBlci1kdXBlciBtaWIyYyBjb25maWd1cmF0aW9uCiAgICAgZmlsZSB0aGF0IHRha2VzIGNhcmUgb2YganVzdCBhYm91dCBldmVyeXRoaW5nIGlmIHlvdSBoYXZlIGEgbWliIHRoYXQKICAgICBkb2VzIGl0cyBvd24gc3RvcmFnZSAocmF0aGVyIHRoYW4gaGF2aW5nIHRvIHBva2Ugc29tZXRoaW5nIGVsc2UgZm9yCiAgICAgaW5mb3JtYXRpb24pLgogICAKMTk5OS0wNC0yMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICBkaXJlY3RpdmVzIHdoZXJlIG5lZWRlZCBiZWNhdXNlIG9mIGl0LgogICAKMTk5OS0wNC0yMiAwNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwogICAKMTk5OS0wNC0yMiAwNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBtYWtlIGhlYWRlcl9jb21wbGV4KCkgYWNjZXB0IE5VTExzLgogICAKMTk5OS0wNC0yMCAyMTozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmUgdW4tdXNlZCB2dHlwZSwgcGFyc2VyIGZpZWxkcy4KICAgCjE5OTktMDQtMjAgMjE6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCiAgIAoxOTk5LTA0LTIwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgogICAKMTk5OS0wNC0yMCAxNjowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAtIHZhcmlhYmxlVHlwZXMgLT4gdmFyaWFibGVzCiAgICAgLSBjbmFtZSAtPiBOQU1FCiAgIAoxOTk5LTA0LTIwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAtIGNvbXBsZXRlbHkgcmUtaGFja2VkOgogICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICBnZW5lcmljYWxseSwgYW5kIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHR5cGVzIG9mIGNvZGUgdGVtcGxhdGVzCiAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICBhbnkgdHlwZSBvZiBjb2RlIChub3QganVzdCBDKSBmb3Igc29tZXRoaW5nIGVsc2UgYmFzZWQgb24gbWliCiAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgIGFnYWluIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCB3aXRob3V0IGJlaW5nLCB3ZWxsLCBtZS4gIFRoZQogICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICByZWFkIHRoaXM/IChJZiBzbywgc2VlIG1lIGZpcnN0KS4KICAgCjE5OTktMDQtMjAgMTE6MjggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk5LTA0LTE5IDIxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICAtICh0b29scy5oKTogbmV3IGNvbnZlbmllbmNlIG1hY3JvOiBTTk1QX01BTExPQ19TVFJVQ1Qoc3RydWN0TmFtZSkuCiAgIAoxOTk5LTA0LTE5IDIxOjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGRvbid0IGZyZWUgdGhpbmdzIHRoYXQgYXJlIE5VTEwuCiAgIAoxOTk5LTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KICAgCjE5OTktMDQtMTkgMjE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBjcmVhdGVkIGEgbW9yZSBjb252ZW5pZW50IHJlYWRfY29uZmlnX3JlYWRfZGF0YSgpIGZ1bmN0aW9uIHRvCiAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAtIHVzZSBwcmV2aW91c2x5IG1hbGxvY2VkIHNwYWNlIGluIHNvbWUgcm91dGluZXMsIG9yIG1hbGxvYyBpdCBmb3IKICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgogICAKMTk5OS0wNC0xOSAyMTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBOVUxMIGNoZWNraW5nLgogICAKMTk5OS0wNC0xOSAyMTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCiAgIAoxOTk5LTA0LTE5IDIxOjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgZmlsZSBub3cgY29udGFpbnMgdGhlIGNvZGUgaXRzZWxmLgogICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KICAgCjE5OTktMDQtMTggMDY6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dDogOSAtPiAxMAogICAKMTk5OS0wNC0xNiAyMTozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCiAgIAoxOTk5LTA0LTE2IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChzbm1wdHJhcGQuOCk6IG1hbiBwYXRjaCBmcm9tIE5pZWxzCiAgIAoxOTk5LTA0LTE2IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZWQKICAgCjE5OTktMDQtMTYgMjE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCiAgIAoxOTk5LTA0LTE2IDIxOjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgogICAKMTk5OS0wNC0xNiAyMToxMyAgaGFyZGFrZXIKCiAgICogbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQ6CgogICAtIChESVNNQU4tU0NSSVBULU1JQi50eHQpOiBhZGRlZCB0byBtaWJzIGRpci4KICAgCjE5OTktMDQtMTYgMjE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5oKTogcHJvdG90eXBlcy4KICAgCjE5OTktMDQtMTYgMjE6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCiAgIAoxOTk5LTA0LTE2IDIxOjEwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCiAgIAoxOTk5LTA0LTE2IDA4OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpICItbSIgb3IgTUlCUzogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCiAgIAoxOTk5LTA0LTE2IDA3OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL0lQRldDSEFJTlMtTUlCLnR4dDoKCiAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCkgaXBmd0NoYWluVGFibGUge2lwZncgMX0gZml4CiAgIAoxOTk5LTA0LTE2IDA3OjMwICBtc2xpZmNhawoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCkgY2hhbmdlIG1vZHVsZSBuYW1lIGZyb20gSVBGV0FETS1NSUIgdG8gSVBGV0FDQy1NSUIuCiAgIAoxOTk5LTA0LTE0IDE2OjU2ICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHN0YXR1cy5jOgoKICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQogICAKMTk5OS0wNC0xNCAxNjozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIChzbm1wX2FnZW50LGMsIHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LltjaF0pIGZpeCB2YXJpYWJsZV9saXN0IHdpdGggYnVpbHQtaW4gc3RvcmFnZQogICAKMTk5OS0wNC0xNCAxNTo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KICAgCjE5OTktMDQtMTQgMTU6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgogICAKMTk5OS0wNC0xNCAxNToyOSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpIGluaXRfc25tcCB0YWtlcyBhcmd1bWVudDsgIiIgdXNlZC4KICAgCjE5OTktMDQtMTMgMTY6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCiAgIAoxOTk5LTA0LTEzIDE2OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAtIEFkZCBGUkFNRS1SRUxBWS1EVEUtTUlCIGFzIHJlcGxhY2VtZW50IGZvciBSRkMtMTMxNQogICAKMTk5OS0wNC0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KICAgCjE5OTktMDQtMTMgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHN1cHBvcnQgLVAuCiAgIAoxOTk5LTA0LTEzIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGJldHRlciBjaGVja2luZyBvZiAuY29uZiBmaWxlIHBhcnNpbmcgbGluZSByZXF1aXJlbWVudHMuCiAgIAoxOTk5LTA0LTEzIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCiAgIAoxOTk5LTA0LTEzIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQ6CgogICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBtb2R1bGUgbG9jYXRpb25zIGZvciBicm9rZW4gbWlicy4KICAgCjE5OTktMDQtMTMgMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCiAgIAoxOTk5LTA0LTEzIDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KICAgCjE5OTktMDQtMTMgMTU6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgogICAKMTk5OS0wNC0xMyAwODo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLSAoUkVBRE1FLndpbjMyKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBhZGQgYSBVUkwgcmVmZXJlbmNlIHRvIGN5Z3dpbi4KICAgCjE5OTktMDQtMTIgMjI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCiAgIAoxOTk5LTA0LTEyIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgogICAKMTk5OS0wNC0xMiAyMjoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oOgoKICAgLSAoaHJfdXRpbHMuaCk6IHJlbW92ZSB2YXJpYWJsZSBuYW1lcyBmcm9tIHByb3RvdHlwZXMgKHdhcyBjYXVzaW5nIHByb2JsZW1zKS4KICAgCjE5OTktMDQtMTIgMjI6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3lzL3RpbWUuaC4KICAgCjE5OTktMDQtMTIgMjI6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBkZWFsIHdpdGggbW9yZSBjb21wbGV4IGRhdGEKICAgICBzdHJ1Y3R1cmVzIHdpdGggbXVsdGlwbGUgYW5kIHZhcmlhYmxlIGxlbmd0aCBpbmRleGVzLgogICAKMTk5OS0wNC0xMiAyMjoxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLSAoUkVBRE1FLndpbjMyKTogbmV3IFJFQURNRSBmcm9tIEpvZSBNYXJ6b3QuCiAgIAoxOTk5LTA0LTA3IDE1OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICAtKHVzbVVzZXIuYyxzeXN0ZW0uYykgcGx1ZyBtZW0gbGVhazsgKHNubXBfYXBpLmMpIGVuZm9yY2UgYXJyYXkgbGltaXQuCiAgIAoxOTk5LTA0LTA3IDEyOjIzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi90b29scy5jOgoKICAgLShhcHBzL2VuY29kZV9rZXljaGFuZ2UuYyBzbm1wbGliL3Rvb2xzLmMpIG1vdmUga2V5c3Ryb2tlIGZ1bmN0aW9ucyB0byBhcHBsaWNhdGlvbi4KICAgCjE5OTktMDQtMDcgMTI6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jOgoKICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKICAgCjE5OTktMDQtMDcgMTE6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi92YWNtLmgsIHNubXBsaWIvdmlldy5oCjoKCiAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCBzbm1wbGliL3ZhY20uaAogICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCiAgIAoxOTk5LTA0LTA3IDExOjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6IHJlbW92YWwgb2YgZHVwbGljYXRlIGZ1bmN0aW9ucy4KICAgCjE5OTktMDQtMDcgMTE6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYzoKCiAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jKTogZGVidWdnaW5nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNC0wNyAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIG1pYklJL3N5c09SVGFibGUuYywgbWliSUkvdmFjbV92YXJzLmMsIHNtdXgvc211eC5jCiwgc25tcHYzL3NubXBFbmdpbmUuYywgc25tcHYzL3VzbVVzZXIuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCjoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY29udmVyc2lvbgogICAKMTk5OS0wNC0wNyAxMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNjYXBpLmMsIHNubXB2My5jOgoKICAgLSAoc2NhcGkuYywgc25tcHYzLmMpOiBkZWJ1ZyB0eXBvcyBhbmQgaW5jbHVkZSBmaWxlIGFkZGl0aW9ucy4KICAgCjE5OTktMDQtMDcgMTA6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KICAgCjE5OTktMDQtMDcgMTA6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVidWcuaDoKCiAgIC0gKGRlYnVnLmgpOiByZW1vdmVkLgogICAKMTk5OS0wNC0wNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgIGxjZF90aW1lLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgbmV3ZXIgbW9kZWwuCiAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDQtMDcgMDY6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9hbGxfc3lzdGVtLmgsCiAgIHNubXBsaWIvZGVidWcuaCwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5oCiwgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKICAgCjE5OTktMDQtMDYgMjI6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpIG1vcmUgdjJwYXJ0eSByZXdvcmsgbmVlZGVkCiAgIAoxOTk5LTA0LTA2IDIyOjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCiAgIAoxOTk5LTA0LTA2IDIxOjIzICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCjoKCiAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwogICAKMTk5OS0wNC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChtaWJpbmNsLmgsIHVjZERlbW9QdWJsaWMuYywgdmFjbV92YXJzLmgsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLAogICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCiAgIAoxOTk5LTA0LTA2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBJU1NVRVMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgKLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L20ybS5oLCBhZ2VudC9zbm1wMnAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kcywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgYXBwcy8uY3ZzaWdub3JlCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9zbm1wLXVjZC5zaAosIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQKLCBtaWJzL1NOTVB2Mi1UQy50eHQsIG1pYnMvVUNELURFTU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9kZWJ1Zy5oLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC5jCiwgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi92YWNtLmgsCiAgIHNubXBsaWIvdmlldy5jLCB0ZXN0aW5nLy5jdnNpZ25vcmUsCiAgIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUkVBRE1FLCB0ZXN0aW5nL1QuYywKICAgdGVzdGluZy9ULnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwKICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzCiwgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwKICAgdGVzdGluZy9kZW1vLnJlbW90ZSwgdGVzdGluZy9kZW1vMiwKICAgdGVzdGluZy9kZW1vMi5mdW5jdGlvbnMsIHRlc3RpbmcvZGVtbzIuc2V0dXBmaWxlLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwKICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdGVzdGxpc3QsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYywKICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCiAgIAoxOTk5LTA0LTA2IDExOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZmlsZXN5cy5jLCBob3N0L2hyX3Byb2MuYywKICAgaXBmd2NoYWlucy9saWJpcGZ3Yy5jLCBtaWJJSS9pY21wLmMsIG1pYklJL2lwLmMKLCBtaWJJSS9yb3V0ZV93cml0ZS5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMKLCBzbXV4L3NtdXguYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmg6CgogICAtIGFub3RoZXIgcm91bmQgb2YgQU5TSS1meWluZyB0aGUgYWdlbnQgY29tcGxldGVkLgogICAKMTk5OS0wNC0wNiAxMDo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKSBxdWVsbCB3YXJuaW5nIGFib3V0IGNvbXBhcmluZyBwb2ludGVyIHdpdGggbm9uLXBvaW50ZXIuCiAgIAoxOTk5LTA0LTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIpOiBuZXcgdmVyc2lvbnMgZnJvbSBhdXRvY29uZiAyLjEzLgogICAKMTk5OS0wNC0wNSAxNTo1OSAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSBCdWlsZCB1c2luZyBDeWdXaW4zMiAoaW5jbHVkZXMgTmllbHMgQi4ncyBzbm1wX3ZhcnMuYyBwYXRjaCkuCiAgIAoxOTk5LTA0LTA1IDE0OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBCdWlsZCB3aXRoIEN5Z1dpbjMyCiAgIAoxOTk5LTA0LTA1IDE0OjEwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogTWFrZWZpbGUuaW4sIGlmLmMsIHdpbnN0dWIuYwosIHdpbnN0dWIuaDoKCiAgIC0gYnVpbGQgc25tcG5ldHN0YXQgd2l0aCBDeWdXaW4zMgogICAKMTk5OS0wNC0wNSAxMTowNiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMsIG1haW4uYywgc25tcF9wYXJzZV9hcmdzLmMpIEpvZSBNYXJ6b3QncyBmaXggdG8gY29weSBldmVuIGFuIGVtcHR5IGNvbW11bml0eSBuYW1lLgogICAKMTk5OS0wNC0wMSAxMzoxMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9saWJzbm1wLmg6CgogICAtIChsaWJzbm1wLmgpIEFzeW1wdG90aWNhbGx5IGNsb3NlciB0byBzdXBwb3J0aW5nIENNVSBjb25zdGFudHMuCiAgIAoxOTk5LTAzLTI4IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgLSB3aGVuIHVzaW5nIGNvcHlfd29yZCgpIGRvbid0IHNraXAgc3BhY2VzLCBzaW5jZSBpdCBkb2VzIHRoYXQuCiAgIAoxOTk5LTAzLTI4IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6IHJlbG9jYXRlIHRvCiAgICAgc25tcE1vZHVsZXMuMTIsIHdoZXJlIHRoZXkgc2hvdWxkIGJlLgogICAKMTk5OS0wMy0yMyAxMDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiByZWdleHAgZml4LgogICAKMTk5OS0wMy0yMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAobWliZGVmcy5oLCBzdHJ1Y3QuaCwgZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmgsIHByb2MuYywgcHJvYy5oLAogICAgIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcGVyLXByb2Nlc3MvZXhlYyBmaXggc2NyaXB0cyBjcmVhdGVkLgogICAKMTk5OS0wMy0yMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgY29weV93b3JkKCkgcmV0dXJuIHRoZSBuZXh0IHRva2VuLCBub3QgdGhlCiAgICAgbmV4dCBzcGFjZS4KICAgCjE5OTktMDMtMjMgMTA6MDkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIG1vcmUgdGFyZ2V0cy4KICAgCjE5OTktMDMtMTkgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZ2V0LmMsIHNubXB3YWxrLmM6CgogICAtIChzbm1wZ2V0LmMsIHNubXB3YWxrLmMpOiBmaXhlZCBpbml0aWFsaXphdGlvbiBhbmQgdXNhZ2Ugb2YgImZhaWx1cmVzIi4KICAgCjE5OTktMDMtMTggMDg6MzcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICAtIChtaWJJSS9pcC5jKSBmaXggTUlCX0lQQ09VTlRFUl9TWU1CT0wgdXNhZ2UKICAgCjE5OTktMDMtMTcgMTM6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0oaHJfc3dydW4uYykgLSBwcmV2ZW50IFN1bk9TIDQuMSBjb3JlIChzdW5vczQgc3RpbGwgcHJpbWl0aXZlKQogICAKMTk5OS0wMy0xNiAxMTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmgsIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLCBtaWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3RjcC5jCiwgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMKOgoKICAgLSBtb3ZlIE1BVENIX0ZBSUxFRC9NQVRDSF9TVUNDRUVERUQgZnJvbSB1dGlsX2Z1bmNzLmggdG8gbWliaW5jbC5oCiAgIAoxOTk5LTAzLTE2IDExOjIzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIGNvbnNpc3RlbnQgZXJyb3IgcmV0dXJuLgogICAKMTk5OS0wMy0xNiAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBmcmVlYnNkLgogICAKMTk5OS0wMy0xNiAwODoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IHJlbW92ZWQgYSBib2d1cyBuZXctbGluZS4KICAgCjE5OTktMDMtMTUgMTY6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBkb24ndCBkbyBhIG1ha2UgaW5zdGFsbCBvZiBkbG1vZHMKICAgCjE5OTktMDMtMTUgMTY6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUUsIEZBUSwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMSApCiAgIAoxOTk5LTAzLTE1IDE2OjAyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtYXJrIHdpdGggdmVyc2lvbiBudW0uCiAgIAoxOTk5LTAzLTE1IDE2OjAwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNi4xLgogICAKMTk5OS0wMy0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTOgoKICAgLSAoRkFRLCBORVdTKTogdXBkYXRlcyB0byB0YWxrIGFib3V0IHRoZSBBR0VOVC50eHQgZmlsZS4KICAgCjE5OTktMDMtMTUgMTU6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgogICAKMTk5OS0wMy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogZml4ZXMgZm9yIGxpbnV4IDIuMiBpbnRlcmZhY2Ugc2Nhbm5pbmcuCiAgIAoxOTk5LTAzLTE1IDE1OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGludGVyZmFjZXMuYywgbGludXguaCk6IGRldGVjdAogICAgIC9wcm9jL25ldC9kZXYgdmVyc2lvbiBhdCBydW4gdGltZSwgbm90IGNvbXBpbGUgdGltZS4KICAgCjE5OTktMDMtMTUgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfcHJvYy5oLAogICB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL2xvYWRhdmUuaDoKCiAgIC0gKGhyX3Byb2MuYywgaHJfcHJvYy5oLCBsb2FkYXZlLmMsIGxvYWRhdmUuaCk6IGZpeCB0cnlfbG9hZGF2ZSBmb3Igc29sYXJpcy4KICAgCjE5OTktMDMtMTUgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKTogYWRkZWQgQ01VX0NPTVBBVElCTEUKICAgCjE5OTktMDMtMTUgMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgLSAoc25tcC5oKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnRlZCBvdXQgZGVmaW5lLgogICAKMTk5OS0wMy0xNSAwOTo0MiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0cmFwZC5jCiwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIHNlY29uZCBwYXNzIGF0IENNVV9DT01QQVQ6IERpc2FibGUgYnkgZGVmYXVsdCwgbGVhdmUgc25tcF9wYXJzZSBhbG9uZS4KICAgCjE5OTktMDMtMTUgMDg6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jKToKICAgICAtIHJldmVydCB0byBzbm1wX3BhcnNlLgogICAgIC0gZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguCiAgIAoxOTk5LTAzLTE1IDA1OjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGxpYnNubXAuaCwgbWliLmMsCiAgIHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluIGxpYnNubXAuaCBtaWIuYyBzbm1wLmggc25tcF9hcGkuYykgdXBkYXRlIENNVV9DT01QQVRJQkxFCiAgIAoxOTk5LTAzLTEyIDE1OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLzogSVBGV0NIQUlOUy1NSUIudHh0LAogICBpcGZ3Y2hhaW5zLmg6CgogICAtIChJUEZXQ0hBSU5TLU1JQi50eHQsIGlwZndjaGFpbnMuaCk6IG1vdmUgdG8gYSBzdWItb2lkIGluIHRoZQogICAgIGV4cGVyaW1lbnRhbCB0cmVlLgogICAKMTk5OS0wMy0xMiAxNToyNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvSVBGV0NIQUlOUy1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y19rZXJuZWxfaGVhZGVycy5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvbGliaXBmd2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9saWJpcGZ3Yy5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIElQRldDSEFJTlMtTUlCLnR4dCwgUkVBRE1FLAogICAgIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLAogICAgIGxpYmlwZndjLmgpOiBQYXRjaCBmcm9tIERpZGllciBEaGFlbmVuczoKICAgICAtIG5ldyBtb2R1bGVzOiBpcGZ3Y2hhaW5zLgogICAKMTk5OS0wMy0xMiAxNToyMyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBkb24ndCBwcmludCBtb2R1bGUgbGlzdCBoZXJlLi4uICB0ZWxsIHRoZW0gdG8gbG9vayBhdAogICAgIGNvbmZpZ3VyZSAtLWhlbHAuCiAgIAoxOTk5LTAzLTEyIDE0OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCBob3N0L2hyX3N5c3RlbS5oLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIHJlc3RvcmUgY29uZmlnX3JlcXVpcmUgbG9naWM7IGZpeCBzcHJpbnRmIGNhbGxzIHRvIGNvbXBpbGUgdW5kZXIgU3VuT1MgNC4xLnguCiAgIAoxOTk5LTAzLTEyIDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmgpOiBNQVRDSF9GQUlMRUQgLT4gLTEsIHNpbmNlIHNvbWUgdXNlIGl0LgogICAKMTk5OS0wMy0xMiAxNDozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHRhcmdldC5oLCB0YXJnZXQvKi5oKSByZXF1aXJlIHV0aWxfZnVuY3Mgb25jZS4KICAgCjE5OTktMDMtMTIgMTQ6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jLCBocl9zeXN0ZW0uaDoKCiAgIC0gKGhyX3N5c3RlbS5oKSAtIGRvbid0IHJlcXVpcmUgaHJfdXRpbDsgZG9uZSBpbiBtaWJncm91cC9ob3N0LmgKICAgLSAoaHJfc3dydW4uYykgLSBzb2xhcmlzMjogbWFrZSBzdXJlIGt2bV9vcGVuIGlzIGNhbGxlZCBiZWZvcmUga2QgaXMgdXNlZC4KICAgLSAoaHJfc3dydW4uYykgLSBhZGQgbGFtZSBzdW5vczQgZXF1aXZhbGVudCBpbiBIUlNXUlVOUEVSRl9DUFUuCiAgIAoxOTk5LTAzLTEyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHByb3RlY3Qgc3RyY3B5KCkgYWdhaW5zdCBhIG51bGwgcGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZQogICAgIGNvbmZpZyBsaW5lLgogICAKMTk5OS0wMy0xMiAxNDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUuCiAgIAoxOTk5LTAzLTEyIDEyOjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogZml4IGFzbl9wYXJzZSBmdW5jdGlvbnMgdG8gcGFzcyBhIHBvaW50ZXIgdG8gdGhlIHNpemUgdmFyaWFibGUuCiAgIAoxOTk5LTAzLTEyIDExOjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IGV4cGxpY2l0IHRlc3QgZm9yIE1BVENIX0ZBSUxFRAogICAKMTk5OS0wMy0xMiAwOToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIGR1bW15L2R1bW15LmMsCiAgIGV4YW1wbGVzL3dvbWJhdC5jLCBob3N0L2hyX2RldmljZS5jLCBob3N0L2hyX2Rpc2suYwosIGhvc3QvaHJfZmlsZXN5cy5jLCBob3N0L2hyX25ldHdvcmsuYywKICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYwosIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jLAogICBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL2ljbXAuYwosIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywKICAgbWliSUkvc25tcF9taWIuYywgbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWlzYy9kbG1vZC5jLCB1Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgLSAobWliaW5jbC5oLCBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgc25tcF9taWIuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywgZGxtb2QuYywKICAgICByZWdpc3RyeS5jKTogZml4ZWQgTUFUQ0hfRkFJTEVEL1NVQ0NFRURFRCBkZWZpbmVzIC0+IHV0aWxfZnVuY3MuaC4KICAgCjE5OTktMDMtMTIgMDc6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogVXNlIE1BVENIX0ZBSUwvU1VDQ0VFREVEIGluIHV0aWxfZnVuY3MuaAogICAKMTk5OS0wMy0xMSAxNjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmgsIHNubXBfZGVidWcuaDoKCiAgIC0gKHNubXBfYXBpLmgsIHNubXBfZGVidWcuaCk6IFBhdGNoIGZyb20gRXJpayBKYWNvYnNlbjoKICAgICAtIGZpeGVkIHByb3RvdHlwZXMgZm9yIERFQlVHUCgpIGFuZCBERUJVR1BPSUQoKS4KICAgCjE5OTktMDMtMTEgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6IG1vdmUgTUFUQ0hfU1VDQ0VFREVEIGRlZnMgdG8gLmguCiAgIAoxOTk5LTAzLTExIDE2OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogZml4ZWQgYSBjb3VwbGUgb2YgYnVncyBhbmQgYW5zaSdpZmllZCB0aGluZ3MuCiAgIAoxOTk5LTAzLTExIDE2OjEwICBoYXJkYWtlcgoKICAgKiBBR0VOVDoKCiAgIC0gKEFHRU5UKTogcmVtb3ZlZCBBR0VOVAogICAKMTk5OS0wMy0xMSAxNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGNoYW5nZWQgc29tZSBjb21tZW50cyB0byAvKiAqLyBpbnN0ZWFkIG9mIC8vLgogICAKMTk5OS0wMy0xMSAxNTo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgTWlrZSBCYWVyLgogICAKMTk5OS0wMy0xMCAxNToxNCAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogTkFNRSAtPiBPSUQuCiAgIAoxOTk5LTAzLTEwIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGdyb3VwIGxpbmVzIHdlcmUgYmFja3dhcmRzLgogICAKMTk5OS0wMy0xMCAxNTowNyAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogbW92ZWQgZnJvbSBBR0VOVCB0byBhdm9pZCBub24tY2FzZS1zZW5zaXRpdmUgdzMyIGNvbmZsaWN0cy4KICAgCjE5OTktMDMtMDggMTQ6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCByb3V0ZS5jOgoKICAgLSAoc25tcG5ldHN0YXQ6aWYuYywgcm91dGUuYykgbGltaXQgaW50ZXJmYWNlIG5hbWUgc2l6ZXMgdG8gZml0IGZpeGVkIGxlbmd0aCBidWZmZXJzLgogICAKMTk5OS0wMy0wOCAwOTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKSBDb21wbGV0ZSBEYXZlIFNoaWVsZHMnIHBhdGNoIGZvciBjb250aW51ZSBhZnRlciBlcnJvci4KICAgCjE5OTktMDMtMDggMDU6MDcgIG1zbGlmY2FrCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpIE1BWF9OQU1FX0xFTiAtLT4gTUFYX09JRF9MRU4gaW4gZXhhbXBsZQogICAKMTk5OS0wMy0wOCAwNTowMSAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtKHdpbjMyL2NvbmZpZy5oKSByZW1vdmUgdW51c2VkIFNZU19USU1FX05BTUUsR0xPQkFMU0VDVVJJVFkuIGFkZCBuZXcgY29uc3RhbnRzLgogICAKMTk5OS0wMy0wOCAwNDoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYykgdXNlIHJlcXVlc3QgZGF0YSB3aXRoIHJlcXVlc3QgY2FsbGJhY2sKICAgCjE5OTktMDMtMDggMDQ6MDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIChwYXJzZS5jKSAtIGZpeCBzdWJpZCBpbml0OyByZW1vdmUgdXNlbGVzcyAnLVBsJyBvcHRpb24uCiAgIAoxOTk5LTAzLTA1IDE3OjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTc6MzUgIGhhcmRha2VyCgogICAqIEZBUSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYgKQogICAKMTk5OS0wMy0wNSAxNzozNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogZmluYWwgdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDMtMDUgMTc6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTc6MTkgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUzoKCiAgIC0gKEZBUSwgTkVXUyk6IGZpbmFsIHVwZGF0ZXMuCiAgIAoxOTk5LTAzLTA1IDE3OjEyICBoYXJkYWtlcgoKICAgKiBBR0VOVDoKCiAgIC0gKEFHRU5UKTogRGF2ZSBTaGllbGQncyBuZXcgZG9jdW1lbnQuCiAgIAoxOTk5LTAzLTA1IDE3OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaDoKCiAgIC0gKG1pYklJL3N5c3RlbS5oKTogcmVtb3ZlZAogICAKMTk5OS0wMy0wNSAxNzowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogcmVmZXJlbmNlIEFHRU5UIGRvY3VtZW50LgogICAKMTk5OS0wMy0wNSAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGRvIGVycm9yIHJlcG9ydGluZyBmb3Igc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KICAgCjE5OTktMDMtMDUgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oOgoKICAgLSAodm1zdGF0LmgpOiBkZWNsYWlyIGluaXRfdm1zdGF0KCkuCiAgIAoxOTk5LTAzLTA1IDE2OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAncyBtb2R1bGUgbGlzdC4KICAgCjE5OTktMDMtMDUgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBleGFtcGxlcy93b21iYXQuYwosIGhvc3QvaHJfbmV0d29yay5jLCBtaWJJSS9zbm1wX21pYi5oLAogICBtaWJJSS9zeXN0ZW1fbWliLmgsIHVjZC1zbm1wL2Rpc2suaCwKICAgdWNkLXNubXAvZXJyb3JtaWIuaCwgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICB1Y2Qtc25tcC9maWxlLmgsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICB1Y2Qtc25tcC9wYXNzLmgsIHVjZC1zbm1wL3Byb2MuaCwgdWNkLXNubXAvcmVnaXN0cnkuaAosIHVjZC1zbm1wL3ZlcnNpb25pbmZvLmg6CgogICAtIChrZXJuZWxfc3Vub3M1LmMsIHdvbWJhdC5jLCBocl9uZXR3b3JrLmMsIHNubXBfbWliLmgsIHN5c3RlbV9taWIuaCwKICAgICBkaXNrLmgsIGVycm9ybWliLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLCBtZW1vcnlfc29sYXJpczIuaCwgcGFzcy5oLAogICAgIHByb2MuaCwgcmVnaXN0cnkuaCwgdmVyc2lvbmluZm8uaCk6CiAgICAgLSAtV2FsbCBmaXhlcywgbW9zdGx5IGluaXRfKCkgcm91dGluZXMgZGVjbGFpcmVkIGluIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgCjE5OTktMDMtMDUgMTU6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiBjcmVhdGUgVU5ETwogICAKMTk5OS0wMy0wNSAxNToxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHJlbW92ZSBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mbywgc2luY2UgaXRzIG5vdCB1c2VkIHRoaXMgcmVsZWFzZS4KICAgCjE5OTktMDMtMDUgMTE6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgCiAgICh0Y3AuYykgLSBicmVhayBvdXQgb2YgaW5maW5pdGUgbG9vcCB3aGVuIGtsb29rdXAgZmFpbHMuCiAgIAoxOTk5LTAzLTA1IDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc3dpdGNoIENPTU1JVCBhbmQgQUNUSU9OIHBoYXNlcy4KICAgCjE5OTktMDMtMDUgMTA6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmU6IHJlYXJyYW5naW5nIGFuZCBjbGVhbmluZy4KICAgCjE5OTktMDMtMDUgMTA6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB0aGUgdXNlIG9mICdoZWFkZXJfc2ltcGxlX3RhYmxlJyByYXRoZXIgdGhhbiAnY2hlY2ttaWInCiAgICAgLSBleHBsaWNpdCBjb21wYXJpc29uIHdpdGggTUFUQ0hfRkFJTEVECiAgICAgLSBkb24ndCBzZXQgZGVmYXVsdHMgZm9yICd3cml0ZV9tZXRob2QnIGFuZCAndmFyX2xlbicKICAgCQkoc2luY2UgYm90aCAnaGVhZGVyX2dlbmVyaWMnIGFuZCAnY2hlY2ttaWInIGRvIHRoaXMgYW55d2F5KQogICAgIC0gVXNlIGRlZmluZWQgY29uc3RhbnRzIGZvciB2YXJpYWJsZSBpbml0aWFsaXNhdGlvbiBpbiB0aGUKICAgCQl3cml0ZSByb3V0aW5lIChzaW1pbGFybHkgaW4gdGhlIG1pYjJjLmNvbmYgcGF0Y2gpCiAgICAgICAgIFtUaGlzIGlzIG9uZSBvZiBteSBob2JieS1ob3JzZXMgd2l0aCBvdXIgc3R1ZGVudHMsIHNvIEkgZG9uJ3QKICAgCQkgc2VlIHdoeSAicHJvZmVzc2lvbmFsIiBwcm9ncmFtbWVycyBzaG91bGQgYmUgZXhlbXB0IV0KICAgCiAgICAgLSBNYWtlIHByb3BlciB1c2Ugb2YgdGhlIHRocmVlLXBoYXNlIG5hdHVyZSBvZiBTRVRzCiAgIAoxOTk5LTAzLTA1IDA5OjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgCiAgIEZpeCBXaW4zMiB2ZXJzaW9uIG9mIGdldHRpbWVvZmRheTogdHZfdXNlYyB3YXMgbWlsbGlzZWNzICwgcmV0dXJuIG5vdyA9IDAKICAgCjE5OTktMDMtMDQgMTg6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgCiAgIChzbm1wX2FwaS5jKSAtIGV4cG9zZSBzbm1wX2ZyZWU7IHNubXBfcGR1X2FkZF92YXJpYWJsZSByZXR1cm5zIHB0ciB0byB2YXIgZm9yCiAgIGZ1dHVyZSBpbXByb3ZlZCBlcnJvciByZWNvdmVyeS4KICAgCjE5OTktMDMtMDQgMTc6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHdpbjMyL2NvbmZpZy5oCjoKCiAgIAogICBSZXBsYWNlIHVzZXMgb2YgYnplcm8gd2l0aCBtZW1zZXQsIGJjb3B5IHdpdGggbWVtY3B5LgogICBGaXggcHJvdG90eXBlcy4KICAgCjE5OTktMDMtMDQgMTc6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIAogICAoc3lzT1JUYWJsZS5jKSAtIHJlbW92ZSBzdGF0aWMgdV9sb25nIGxvbmdfcmV0dXJuLCBmb3IgY29uc2lzdGVuY3kuCiAgIAoxOTk5LTAzLTA0IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMKLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAodXRpbF9mdW5jcy5jLCBkdW1teS5jLCBleGFtcGxlLmMsIHdvbWJhdC5jLCB0Y3AuYywgaHB1eC5jLAogICAgIG1lbW9yeS5jLCBhbGFybS5jLCBzbm1wX2FwaS5jKToKICAgICAtIG1pc2MgZml4ZXMsIC1XYWxsIG1vc3RseS4KICAgCjE5OTktMDMtMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTktMDMtMDQgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgLSAodm1zdGF0X2ZyZWVic2QyLmMpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSB0eXBvIGZpeGVkLgogICAKMTk5OS0wMy0wNCAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXg6CgogICAtIChSRUFETUUuc211eCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHVwZGF0ZS4KICAgCjE5OTktMDMtMDQgMTU6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsCiAgIGV4YW1wbGVzL2V4YW1wbGUuYywgbWliSUkvc3lzT1JUYWJsZS5jLCBtaXNjL2lwZndhY2MuYwosIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9maWxlLmMsIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbWVtb3J5LmMKLCB1Y2Qtc25tcC9wcm9jLmMsIHVjZC1zbm1wL3Ztc3RhdC5jLAogICB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBleGFtcGxlLmMsIHN5c09SVGFibGUuYywgaXBmd2FjYy5jLAogICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdm1zdGF0LmMsCiAgICAgdm1zdGF0X2ZyZWVic2QyLmMpOgogICAgIC0gY3JlYXRlIGFuZCB1c2UgaGVhZGVyX3NpbXBsZV90YWJsZSB0byByZXBsYWNlIGNoZWNrbWliKCkuCiAgIAoxOTk5LTAzLTA0IDE1OjI5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIAogICAoaHJfZGlzay5jKSAtIGNvbmRpdGlvbmFsbHkgdXNlIGRlZmluZWQgREtDIGRpc2sgdHlwZXMKICAgCjE5OTktMDMtMDQgMTU6MjUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIAogICAoZGlzay5jKSAtIGV4cGxpY2l0IGJyYWNlcyB0byBhdm9pZCBhbWJpZ3VvdXMgYGVsc2UnCiAgIAoxOTk5LTAzLTA0IDE1OjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCB1Y2Qtc25tcC9sb2FkYXZlLmMKOgoKICAgCiAgIAogICAoaHJfcHJvYy5jLCBsb2FkYXZlLmMpIC0gZml4ZWQgY29yZSBvbiBnZXRsb2FkYXZnIGluIGEgZGlmZmVyZW50IHdheQogICAKMTk5OS0wMy0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB2b2lkIGNoZWNrLgogICAKMTk5OS0wMy0wNCAwOTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgIC0gV2hlbiB0aGUgYWdlbnQgaXMgY29tcGlsZWQgd2l0aCBIQVZFX0xJQlJQTSBzZXQsIHlldCBubyBkYXRhYmFzZQogICAgICAgaXMgZm91bmQsIGFnZW50IHdpbGwgY29yZS4uLgogICAKMTk5OS0wMy0wNCAwOTozOCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzLCBsb2NhbC9lY2Utc25tcGQuY29uZiwKICAgbG9jYWwvZml4cHJvYy5jb25mOgoKICAgLSAocmVtb3ZlLWZpbGVzLCBlY2Utc25tcGQuY29uZiwgZml4cHJvYy5jb25mKToKICAgICAtIHJlbW92ZWQgZWNlIHNwZWNpZmljIGNvbmZpZyBmaWxlcyBmcm9tIHRoZSByZXBvc2l0b3J5LgogICAgIC0gZG9uJ3QgcmVtb3ZlIGxvY2FsLyouY29uZiBpbiB0aGUgZmlyc3QgcGxhY2UgYW55bW9yZS4KICAgCjE5OTktMDMtMDQgMDk6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gKGxvYWRhdmUuYyk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgIC0gZml4IGxvYWQgYXZlcmFnZSBvbiBzb2xhcmlzLgogICAKMTk5OS0wMy0wNCAwOToyNCAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICAKICAgCiAgIChNYWtlZmlsZS5pbikgLSBmaW5kIG1pYmRlZnMuaCB3aGVuIG5vdCBidWlsZGluZyBpbiB0aGUgc291cmNlIHRyZWUKICAgCjE5OTktMDMtMDQgMDk6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMKLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAKICAgCiAgIChhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMpOiByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGVzCiAgIAogICAoYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGNoYW5nZSAiKndvcmQiIHRvICIqdG9rZW4iIHRvIGhlbHAgc29tZSBjb21waWxlcgogICAKMTk5OS0wMy0wNCAwOTowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpeCB2b2lkIHRlc3QgZm9yIGFuc2kgY29tcGlsZXJzLgogICAKMTk5OS0wMy0wNCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXg6CgogICAtIChSRUFETUUuc211eCk6IGFkZCBOaWNrLgogICAKMTk5OS0wMy0wNCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiByZXBvc2l0b3J5IG1vdmUuCiAgIAoxOTk5LTAzLTA0IDA0OjA4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAKICAgKHNubXBuZXRzdGF0L2lmLmMpIC0gYWRkIHZvaWQgdG8gZW1wdHkgZm9ybWFsIHBhcmFtZXRlciBsaXN0CiAgIAoxOTk5LTAzLTAzIDE4OjAyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTEwICkKICAgCjE5OTktMDMtMDMgMTg6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBTTVVYLgogICAKMTk5OS0wMy0wMyAxODowMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIG5hbWUgY2hhbmdlLgogICAKMTk5OS0wMy0wMyAxNzo1MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRQosIFRPRE8sIGJ1Zy1yZXBvcnQsIGFnZW50L3NubXBkLmMsCiAgIGxvY2FsL1JFQURNRS5taWIyYzoKCiAgIC0gKENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsIFRPRE8sIGJ1Zy1yZXBvcnQsIHNubXBkLmMsCiAgICAgUkVBRE1FLm1pYjJjKTogZWNlLnVjZGF2aXMuZWR1IC0+IHVjZC1zbm1wLnVjZGF2aXMuZWR1LgogICAKMTk5OS0wMy0wMyAxMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgLSAocHJvYy5jLCBzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAtIFVzZSAvcHJvYyBvbiBzb2xhcmlzLgogICAKMTk5OS0wMy0wMyAxMDoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGFuc2knaWZ5IHRoZSBjb25maWcgZnVuY3Rpb24uCiAgIAoxOTk5LTAzLTAzIDA4OjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiByYW4gYXV0b2NvbmYuLi4KICAgCjE5OTktMDMtMDMgMDg6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIE5pY2suCiAgIAoxOTk5LTAzLTAyIDE1OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gTGludXggY29tcGlsZXMgZGllIGF0IFNPX1JDVlRJTUVPLgogICAgIC0gLVdhbGwgdHlwZSBmaXhlcy4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHR5cG8uCiAgIAoxOTk5LTAzLTAyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogdHlwZWNhc3QgZnVuY3Rpb24gd2l0aCAodm9pZCkuCiAgIAoxOTk5LTAzLTAyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lmg6CgogICAtIChzbXV4LmgpOiB0b3AgbGV2ZWwgc211eCBmYWtlIG1vZHVsZSBoZWFkZXIuCiAgIAoxOTk5LTAzLTAyIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9kZWJ1Zy5jLAogICAgIHNubXBfZGVidWcuaCk6CiAgICAgLSBuZXcgZmxhZzogIC0tZGlzYWJsZS1kZWJ1Z2dpbmcgdG8gY29tcGxldGVseSB0dXJuIG9mZiBpdHMgc3VwcG9ydC4KICAgICAtIHJlbmFtaW5nIG9mIERPREVCVUcgdG8gU05NUF9BTFdBWVNfREVCVUcuCiAgICAgLSBjbGVhbiB1cCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBvcHRpb25zIGxpc3RlZCwgaW5jbHVkaW5nIHB1dHRpbmcKICAgICAgIGEgbGlzdCBvZiBhdmFpbGFibGUgbW9kdWxlcyBmb3IgY29tcGlsYXRpb24gaW50byB0aGUgYWdlbnQuCiAgIAoxOTk5LTAzLTAyIDEzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgcmV0dXJuIGEgcG9pbnRlciB0byBhIHBvaW50ZXIuCiAgIAoxOTk5LTAzLTAyIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdmFjbV92YXJzLmMKLCBtaXNjL2lwZndhY2MuYzoKCiAgIC0gKHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGlwZndhY2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gU3VnZ2VzdGVkIGZpeGVzIHRvIGVsaW1pbmF0ZSBtb3JlIHNoYWRvd2VkIGdsb2JhbCByZWZlcmVuY2VzLgogICAgIC0gZml4dXBzIGZvciBwcm90b3R5cGUgWyh2b2lkKSByZXBsYWNpbmcgKCldLgogICAKMTk5OS0wMy0wMiAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gRG9uJ3QgZGVmaW5lIE1BWF9OQU1FX0xFTiBpZiBkZWZpbmVkIHNvbWV3aGVyZSBlbHNlLgogICAKMTk5OS0wMy0wMSAxNzo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOgogICAgIC0gYWxsb3cgbnVsbCBsZW5ndGggcGFzc3dvcmRzLgogICAgIC0gY2xlYW4gdXAgZGVidWdnaW5nIG91dHB1dC4KICAgCjE5OTktMDMtMDEgMTY6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgLSAoYXNuMS5oKTogcHV0IGJhY2sgaW4gTUFYX05BTUVfTEVOIHRlbXBvcmFyaWx5LgogICAKMTk5OS0wMy0wMSAxNjoyMCAgaGFyZGFrZXIKCiAgICogbWFuLzogZGVzLjEsIGRlcy4zOgoKICAgLSAoZGVzLjEsIGRlcy4zKTogcmVtb3ZlZCB1bnVzZWQgbWFudWFsIHBhZ2VzLgogICAKMTk5OS0wMy0wMSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIEVDRSBkZXB0LgogICAKMTk5OS0wMy0wMSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIHRhcmdldHMuCiAgIAoxOTk5LTAzLTAxIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYKLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsCiAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmCiwgdmFyaWFibGVzLjU6CgogICAtIChtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwKICAgICB2YXJpYWJsZXMuNSk6IE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHNwZWxsIGNoZWNrLgogICAKMTk5OS0wMy0wMSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgLSByZW1vdmVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIHRoYXQgd2Fzbid0IG5lZWRlZC4KICAgCjE5OTktMDMtMDEgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYzoKCiAgIC0gKGFsYXJtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIENhc3QgdG8gcG9pbnRlciB0byBpbnQgbWF5IG92ZXJmbG93IHRoZSByZXR1cm4gYnVmZmVyLgogICAKMTk5OS0wMy0wMSAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgpOiAzLjZpZmllZC4KICAgCjE5OTktMDMtMDEgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gY29tcGxldGVseSByZS13cml0dGVuIHNtdXggbW9kdWxlcy4KICAgCjE5OTktMDMtMDEgMTM6NTkgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSBjb21wYXJlX3RyZWUoKSBnbG9iYWwuCiAgIAoxOTk5LTAzLTAxIDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY29udGV4dF9wYXJzZS5jLCBtaWIuYzoKCiAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cGVjYXN0aW5nIGZvciBjZXJ0YWluIGZ1bmN0aW9ucyB0byAoY2hhciAqKS4KICAgCjE5OTktMDMtMDEgMTI6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSBhZGRlZCBNSU5fT0lEX0xFTiBmb3IgaW5zdHJ1Y3Rpb25hbCB1c2UgbW9zdGx5IChpdHMgdW51c2VkKS4KICAgCjE5OTktMDMtMDEgMTI6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgogICAKMTk5OS0wMy0wMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHB1dCBhIHByb3BlciAodm9pZCkgaW50byB0aGUgZnVuY3Rpb24gcHJvdG90eXBlLgogICAKMTk5OS0wMy0wMSAxMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IHNwcmludGYgYXJnIG1pc21hdGNoLgogICAKMTk5OS0wMy0wMSAxMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBjYXNlIGVudHJpZXMuCiAgIAoxOTk5LTAzLTAxIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSBmcmVlIHRoZSBpbnRlcmZhY2UgdGFibGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jOgoKICAgLSAoZXJyb3JtaWIuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIGVycm5vIHZhcmlhYmxlLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbmFtaW5nIG9mIHZhcmlhYmxlcyBhd2F5IGZyb20gc3lzdGVtIGZ1bmN0aW9uIG5hbWVzIChpbmRleCAtPiBsaW5kZXgpLgogICAKMTk5OS0wMy0wMSAxMjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGluaXRpYWxpemUgdmFyaWFibGUgdG8gMC4KICAgCjE5OTktMDMtMDEgMTA6NDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0eXBvOiBmaWxlTWF4IC0+IGZpbGVFcnJvckZsYWcgbmFtZSBjaGFuZ2UuCiAgIAoxOTk5LTAyLTI2IDE2OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTkgKQogICAKMTk5OS0wMi0yNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmLAogICBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmCiwgc25tcHRyYXBkLjgsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgLSBuZXcgZG9jdW1lbnRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGNhcGFiaWxpdGllcy4KICAgCjE5OTktMDItMjYgMTY6MTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IHVzYWdlIHVwZGF0ZSwgYW5kIC1IIHN1cHBvcnQuCiAgIAoxOTk5LTAyLTI2IDE2OjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgMy42IHJlbGVhc2UuCiAgIAoxOTk5LTAyLTI2IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZSBhbmQgbWFkZSBiZXR0ZXIgZXhhbXBsZXMuCiAgIAoxOTk5LTAyLTI2IDE1OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVW5saW5rZWQgT0lEIC4uLiBjY2l0dCAwIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAtIENvbnRpbnVlIGFmdGVyIHJlc2VydmVkIHdvcmQgZXJyb3IgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgIC0gTW9kaWZpY2F0aW9uIHRvICMyIGNvdXJ0ZXN5IG9mIE5pZWxzIEJhZ2dlc2VuLgogICAgIC0gTW9kaWZpY2F0aW9uIHRvIHByaW50IHN1Yi1pZGVudGlmaWVyID09IDAKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgogICAgIC0gSW5zdGVhZCBvZiByZS1vcmRlcmluZyBhbGwgc2luZ2x5LWxpbmtlZCBsaXN0cywgdXNlIGEgbmV3IG1lbWJlcgogICAgICAgdGhhdCBmbGFncyB3aGVuIGEgcmVwb3J0IGhhcyBiZWd1bi4KICAgCjE5OTktMDItMjYgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAobG9hZGF2ZS5jLCBsb2FkYXZlLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gaW1wbGVtZW50IGxvYWQgYXZlcmFnZSByZXBvcnRpbmcgYXMgYSBpbnRlZ2VyIGFuZCBhcyBhIGZsb2F0LgogICAKMTk5OS0wMi0yNSAxMDowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmg6CgogICAtIChSRUFETUUsIHVjZF9zbm1wLmgsIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCk6IFBhdGNoCiAgICAgZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgLSBtZW1vcnkgc3VwcG9ydCBmb3Igc29sYXJpczIuCiAgIAoxOTk5LTAyLTI0IDE3OjEwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxpbnV4LmgpOgogICAgIC0gQ2hlY2sgZm9yIGFuZCBoYW5kbGUgMi4yIC9wcm9jL25ldC9kZXYgY2hhbmdlcy4KICAgCjE5OTktMDItMjQgMTQ6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogdXBkYXRlLgogICAKMTk5OS0wMi0yMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gRG9uJ3QgcHJpbnQgImNhbid0IGZpbmQgbW9kdWxlIFhYWCIgbWVzc2FnZXMgd2l0aG91dCB3YXJuaW5ncyB0dXJuZWQgb24uCiAgIAoxOTk5LTAyLTIyIDA5OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgIC0gVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc2VsZWN0ICJhbGxvdyB1bmRlcnNjb3JlIGluIE1JQgogICAgICAgc3ltYm9scyIgaXMgbWlzc2luZy4KICAgCjE5OTktMDItMTcgMTY6MjMgIGRyZWVkZXIKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICBmaWxlIHNubXAtdWNkLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wMi0xNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IHdpbnN0dWIuYywgd2luc3R1Yi5oOgoKICAgLSAod2luc3R1Yi5jLCB3aW5zdHViLmgpOiBwYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGdlbmVyaWMgd2luZG93cyBBUEkgcmVwbGFjZW1lbnRzLgogICAKMTk5OS0wMi0xNyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHNubXBkLmMsIGR1bW15LmMsIHdvbWJhdC5jLCBzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBkbG1vZC5jLAogICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgbWVtb3J5X2ZyZWVic2QyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgbWliLmMsCiAgICAgcmVhZF9jb25maWcuYyk6IHdvcmQgLT4gdG9rZW4gKCJ3b3JkIiBpcyByZXNlcnZlZCBpbiBzb21lIGNvbXBpbGVycy4KICAgCjE5OTktMDItMTcgMTU6MjggIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwCjoKCiAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgIHNubXBuZXRzdGF0LmRzcCwgc25tcHRhYmxlLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gd2luMzIgdXBkYXRlcy4KICAgCjE5OTktMDItMTcgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2F1dGguYwo6CgogICAtIChwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2F1dGguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgbmFtZSBjb25mbGljdCBmaXhlcy4KICAgCjE5OTktMDItMTcgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBkZWJ1Z19hcmdzIHdhcyBkZWNsYXJlZCB0d2ljZS4KICAgICAtIGhlYWRlciBmaXhlcyBmb3Igd2luMzIuCiAgIAoxOTk5LTAyLTE3IDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBmcHJpbnRfdmFyaWFibGUgdG8gbm90IHJlY3Vyc2UuCiAgIAoxOTk5LTAyLTE3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYzoKCiAgIC0gKGNvbnRleHRfcGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZG9uJ3QgdXNlIGEgdmFyaWFibGUgY2FsbGVkICd0aW1lJy4gIFRzayB0c2suCiAgIAoxOTk5LTAyLTE3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gY29tbWVudCByZWZvcm1hdHRpbmcuCiAgIAoxOTk5LTAyLTE3IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNlIGEgJy0nIGluc3RlYWQgb2YgYSAnLicgZm9yIElFRUU4MDItMTEuCiAgIAoxOTk5LTAyLTE3IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHNlcGFyYXRlIHRhcmdldCBmb3IgZ2VuZXJhdGVkIG1hbnVhbCBwYWdlcy4KICAgCjE5OTktMDItMTcgMTU6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZSBhZ2FpbiBmb3IgYmV0dGVyIHN0aWxsIG91dHB1dC4KICAgCjE5OTktMDItMTcgMTU6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIG1haW4uYywKICAgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgLSAoaWYuYywgaW5ldC5jLCBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSBzbm1wbmV0c3RhdCB3aW4zMiBjb21wYXRpYmxlLgogICAKMTk5OS0wMi0xNyAxNToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzYWdlIGZpeC4KICAgCjE5OTktMDItMTcgMTU6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmg6CgogICAtIChzbm1wZC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHByb3RvdHlwZS4KICAgCjE5OTktMDItMTcgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBMLiBIaXRjaDoKICAgICAtIGZpeCBpZl9uYW1lIHZhcmlhYmxlIGJ5IG1ha2luZyBpdCBzdGF0aWMuCiAgIAoxOTk5LTAyLTE2IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGVkIG1pYjJjIHByb2dyYW0uLi4gIHN0aWxsIGluIHByb2dyZXNzLi4uCiAgIAoxOTk5LTAyLTExIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHVwZGF0ZS4KICAgCjE5OTktMDItMTEgMTY6NDggIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOCApCiAgIAoxOTk5LTAyLTExIDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRXh0LTMtNi1wcmU4ICkKICAgCjE5OTktMDItMTEgMTY6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgLSAodGNwLmMpOiB2YXJfdGNwRW50cnkgd2FzIGNoZWNraW5nIGFnYWluc3QgdGhlIGluY29taW5nIG9pZCB3aXRoIHRoZQogICAgIHdyb25nIGxlbmd0aCBhbmQgY291bGQgc3VjY2VlZCBhdCB0aW1lcyB3aGVuIGl0IHNob3VsZG4ndCBoYXZlLgogICAKMTk5OS0wMi0xMSAxNjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsCiAgIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmM6CgogICAtIChhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAtIE1vcmUgYnVmIHNpemUgc3RhbmRhcmRpemF0aW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAgIC0gQSBmZXcgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOIGNvbnZlcnNpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgIAoxOTk5LTAyLTExIDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IGluY2x1ZGUgc25tcF92YXJzLmggYWhlYWQgb2YgdmFyX3N0cnVjdC5oLgogICAKMTk5OS0wMi0xMSAxNjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtICgqKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBjb252ZXJ0IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTi4KICAgICAtIGNvbnZlcnQgdGVtcG9yYXJ5IGNoYXJhY3RlciBzdG9yYWdlIGJ1ZmZlcnMgdG8gU1BSSU5UX01BWF9MRU4uCiAgICAgLSBtYWtlIHRoZSBsaWJyYXJpZXMgcHJpbnRfIGZ1bmN0aW9ucyB1c2UgdGhlIGZwcmludF8gZnVuY3Rpb24KICAgICAgIGFscmVhZHkgZGVmaW5lZCBhbmQgcGFzcyBpdCBzdGRvdXQuCiAgIAoxOTk5LTAyLTA5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBpbmNyZWFzZSBidWZmZXIgc2l6ZSBmb3Igb2lkIHByaW50aW5nLgogICAKMTk5OS0wMi0wOSAxNDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChzbm1wX2RlYnVnLmMpOiBkZWZpbmUgYSBzeW1ib2wgZm9yIE9JRCBwcmludGluZydzIHN0b3JhZ2UgYnVmZmVyIHNpemUuCiAgIAoxOTk5LTAyLTA5IDE0OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogdHlwby4KICAgCjE5OTktMDItMDkgMTQ6MTAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIEZBUS5odG1sLgogICAKMTk5OS0wMi0wOCAyMzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzLzogZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oLCBleGFtcGxlLmMKLCBleGFtcGxlLmg6CgogICAtIChhZ2VudC9kbG1vZHMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgZml4ZXMuCiAgIAoxOTk5LTAyLTA4IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgpIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gaW5jbHVkZSB1cGRhdGVzLgogICAKMTk5OS0wMi0wOCAyMzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaAosIHNubXAycC5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLAogICBzbm1wX3ZhcnMuaCwgc25tcGQuaCwgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAyLTA4IDIzOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGR1bW15L2R1bW15LmMsIGV4YW1wbGVzL2V4YW1wbGUuYywKICAgZXhhbXBsZXMvZXhhbXBsZS5oLCBleGFtcGxlcy93b21iYXQuYywgaG9zdC9ocl9kZXZpY2UuYwosIGhvc3QvaHJfZGV2aWNlLmgsIGhvc3QvaHJfZGlzay5jLCBob3N0L2hyX2Rpc2suaAosIGhvc3QvaHJfZmlsZXN5cy5jLCBob3N0L2hyX2ZpbGVzeXMuaCwKICAgaG9zdC9ocl9uZXR3b3JrLmMsIGhvc3QvaHJfbmV0d29yay5oLAogICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3BhcnRpdGlvbi5oLAogICBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJpbnQuaCwgaG9zdC9ocl9wcm9jLmMsCiAgIGhvc3QvaHJfcHJvYy5oLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zdG9yYWdlLmgKLCBob3N0L2hyX3N3aW5zdC5jLCBob3N0L2hyX3N3aW5zdC5oLAogICBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3dydW4uaCwgaG9zdC9ocl9zeXN0ZW0uYwosIGhvc3QvaHJfc3lzdGVtLmgsIG1pYklJL2F0LmMsIG1pYklJL2F0LmgsCiAgIG1pYklJL2ljbXAuYywgbWliSUkvaWNtcC5oLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2ludGVyZmFjZXMuaCwgbWliSUkvaXAuYywgbWliSUkvaXAuaCwKICAgbWliSUkvcm91dGVfd3JpdGUuaCwgbWliSUkvc25tcF9taWIuYywgbWliSUkvc25tcF9taWIuaAosIG1pYklJL3N5c09SVGFibGUuYywgbWliSUkvc3lzT1JUYWJsZS5oLAogICBtaWJJSS9zeXN0ZW0uaCwgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS9zeXN0ZW1fbWliLmgKLCBtaWJJSS90Y3AuYywgbWliSUkvdGNwLmgsIG1pYklJL3VkcC5jLAogICBtaWJJSS91ZHAuaCwgbWliSUkvdmFjbV92YXJzLmMsIG1pYklJL3ZhY21fdmFycy5oCiwgbWliSUkvdmFyX3JvdXRlLmMsIG1pYklJL3Zhcl9yb3V0ZS5oLAogICBtaXNjL2lwZndhY2MuYywgbWlzYy9pcGZ3YWNjLmgsIHNtdXgvc25tcF9iZ3AuYywKICAgc211eC9zbm1wX2JncC5oLCBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfb3NwZi5oCiwgc211eC9zbm1wX3JpcDIuYywgc211eC9zbm1wX3JpcDIuaCwKICAgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9kaXNrLmgsIHVjZC1zbm1wL2Vycm9ybWliLmMKLCB1Y2Qtc25tcC9lcnJvcm1pYi5oLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL2V4dGVuc2libGUuaCwgdWNkLXNubXAvZmlsZS5jLCB1Y2Qtc25tcC9maWxlLmgKLCB1Y2Qtc25tcC9ocHV4LmMsIHVjZC1zbm1wL2hwdXguaCwKICAgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnkuaCwKICAgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Bhc3MuaCwKICAgdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICB1Y2Qtc25tcC9wcm9jLmMsIHVjZC1zbm1wL3Byb2MuaCwgdWNkLXNubXAvcmVnaXN0cnkuYwosIHVjZC1zbm1wL3JlZ2lzdHJ5LmgsIHVjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIHVjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIHVjZC1zbm1wL3Ztc3RhdC5jLAogICB1Y2Qtc25tcC92bXN0YXQuaCwgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCB2MnBhcnR5L2FjbF92YXJzLmMsCiAgIHYycGFydHkvYWNsX3ZhcnMuaCwgdjJwYXJ0eS9hbGFybS5jLCB2MnBhcnR5L2FsYXJtLmgKLCB2MnBhcnR5L2NvbnRleHRfdmFycy5jLCB2MnBhcnR5L2NvbnRleHRfdmFycy5oLAogICB2MnBhcnR5L2V2ZW50LmMsIHYycGFydHkvZXZlbnQuaCwgdjJwYXJ0eS9wYXJ0eV92YXJzLmMKLCB2MnBhcnR5L3BhcnR5X3ZhcnMuaCwgdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgdjJwYXJ0eS92aWV3X3ZhcnMuaDoKCiAgIC0gKGFnZW50LyopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgogICAKMTk5OS0wMi0wOCAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChzbm1wX2RlYnVnLmMpOiBzeXMvdHlwZXMuaAogICAKMTk5OS0wMi0wOCAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtYWtlIHNubXBfb2lkX2NvbXBhcmUgdXNlIGNvbnN0J3MuCiAgIAoxOTk5LTAyLTA4IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2Ugc2l6ZV90IGluc3RlYWQgb2YgInVuc2lnbmVkIiBmb3IgeG1hbGxvYywgZXRjLgogICAKMTk5OS0wMi0wOCAxNToxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBwcm9wZXIgYnJhY2tldCBpbmRlbnRhdGlvbi4KICAgCjE5OTktMDItMDggMTU6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IElmSW5kZXguCiAgIAoxOTk5LTAyLTA4IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBub3RoaW5nLiAgcmVhbGx5LgogICAKMTk5OS0wMi0wOCAxNToxNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZyB0aW1lIC0+IG1fdGltZS4KICAgCjE5OTktMDItMDggMTU6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBpaW5kZXguCiAgIAoxOTk5LTAyLTA4IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtYWtlIHRyZWVfY29tcGFyZSgpIGJlIGEgcmVhbCB0eXBlZGVmJ2VkIGZ1bmN0aW9uIGFnYWluIG5vdyB0aGF0CiAgICAgICBxc29ydGluZyBpcyBubyBsb25nZXIgbmVlZGVkLgogICAKMTk5OS0wMi0wOCAxNTowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBUay5wbSBtZW50aW9uLgogICAKMTk5OS0wMi0wOCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvaG4gUG9sc3RyYToKICAgICAtIGNhbGwgYWNjZXB0KCkgdG8gZ2V0IHRoZSBzb2NrZXQgZmlsZSBkZXNjcmlwdG9yLgogICAKMTk5OS0wMi0wMiAyMjowMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtZW50aW9uIHRoYXQgdGhlIG1lbW9yeSBzZWN0aW9uIGlzbid0IHN1cHBvcnRlZCBvbiBhbGwKICAgICAgIGFyY2hpdGVjdHVyZXMuCiAgIAoxOTk5LTAyLTAyIDIyOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIC0gKGhyX3Byb2MuYyk6IHVzZSBbMF0gaW5kZXggb2YgbG9hZCBhdmVyYWdlIHRhYmxlLgogICAKMTk5OS0wMi0wMiAyMjowMSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBSZW1vdmUgdW5zdXBwb3JlZCBtaWIgbm9kZXMgZnJvbSBvdXRwdXQgaW5zdGVhZCBvZiByZXR1cm5pbmcgMCdzLgogICAKMTk5OS0wMi0wMiAyMjowMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiBsYWNrIG9mIHNvbGFyaXMgbWVtb3J5IHN1cHBvcnQuCiAgIAoxOTk5LTAyLTAyIDE0OjQ4ICBiYWVybQoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jCiwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtICh0YXJnZXQuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKToKICAgLSBDb2RlIGFkZGVkIHRvIHN1cHBvcnQgdGhlIHRhcmdldCBNSUIsIHNwZWNpZmljYWxseSB0aGUgYWRkcmVzcyBhbmQKICAgICBwYXJhbXMgdGFibGUuCiAgIAoxOTk5LTAyLTAyIDE0OjM0ICBiYWVybQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIFVwZGF0ZWQgY29weV93b3JkIHRvIGFjY2VwdCBxdW90ZWQgc3RyaW5ncywgd2l0aCBpbmNsdWRlZCB3aGl0ZQogICAgICAgc3BhY2VzLiAnXCcgZXNjYXBlcyB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlci4KICAgCjE5OTktMDItMDIgMTM6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogdHlwbzogLUwgLT4gLUEgaW4gaGVscCBzdHJpbmdzIGRvY3MuCiAgIAoxOTk5LTAyLTAyIDEzOjMzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAyMDM2IC0+IDIwMzgKICAgCjE5OTktMDEtMjYgMDk6NDUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHJlZmVyZW5jZSBJUCBuZXQgYWRkcmVzc2VzIHRvIDEwLjEwLjEwLjAuCiAgIAoxOTk5LTAxLTI1IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGxvY2FsL1JFQURNRS5taWIyYzoKCiAgIC0gKFJFQURNRSwgUkVBRE1FLm1pYjJjKTogbWliMmMgcmVhZG1lIGZpbGUuCiAgIAoxOTk5LTAxLTI1IDExOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsCiAgICAgZmlsZS5jLCBpbmV0LmMsIHBhcnNlLmMsIHNubXBfZGVidWcuYyk6CiAgICAgLSAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDEtMjUgMTE6MTEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSB0ZXN0IGlmIF9fRlVOQ1RJT05fXyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbXBpbGVyLgogICAKMTk5OS0wMS0yNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIChzbm1wX2RlYnVnLmgpOiBzcGVjaWFsIHRlc3QgZm9yIF9fRlVOQ1RJT05fXyBiZWZvcmUgdXNpbmcgaXQuCiAgIAoxOTk5LTAxLTI1IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBmaXggc3RyaW5ncy5oIGluY2x1ZGUuCiAgIAoxOTk5LTAxLTI1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY29udGV4dF9wYXJzZS5jLCBtaWIuYywgcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywKICAgc3lzdGVtLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfY2xpZW50LmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYW5zaSBmaXhlcy4KICAgCjE5OTktMDEtMjUgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdHlwby4KICAgCjE5OTktMDEtMjUgMTA6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jCiwgc25tcHRyYXAuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXBuZXRzdGF0L2luZXQuYywgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcGRlbHRhLmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaW5ldC5jLCBtYWluLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBtb3JlIGFuc2kgZml4ZXMuCiAgIAoxOTk5LTAxLTIyIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBDaGVjayBmb3IgTlVMTCBvbiBzZXNzaW9uIGNsb3Nlcy4KICAgCjE5OTktMDEtMjEgMDg6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1vZHVsZSBkZXBlbmRzLgogICAKMTk5OS0wMS0yMSAwODo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvc25tcF9hcGkuYwosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfYXBpLmMsIGNvbmZpZy5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsCiAgICAgSi4gU2xpZmNhazoKICAgICAtIE5PX05VTExfQ09NVU5JVFkgLT4gTk9fWkVST0xFTkdUSF9DT01NVU5JVFkuCiAgIAoxOTk5LTAxLTIxIDA4OjM5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAtIHR5cG8gb24gSm9lJ3MgbmFtZSBmaXhlZC4KICAgCjE5OTktMDEtMjAgMTc6MTEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCiAgIAoxOTk5LTAxLTIwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQogICAKMTk5OS0wMS0yMCAxNzowMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IHJhbiBhdXRvaGVhZGVyCiAgIAoxOTk5LTAxLTIwIDE2OjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIG1haW4uYywgc25tcF9hcGkuYyk6CiAgICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBhbGxvdyB6ZXJvIGxlbmd0aCAobGVnYWwpIGNvbW11bml0eSBzdHJpbmdzLgogICAKMTk5OS0wMS0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBkZWJ1Z2dpbmcgY2hhbmdlcy4KICAgCjE5OTktMDEtMjAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZXhwb3J0IHNkbGlzdCBhbmQgc2RsZW4gdmFyaWFibGVzLgogICAKMTk5OS0wMS0yMCAxNTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbWliIG1vZHVsZSBtYWtlIHJlcXVpcmVtZW50cy4KICAgCjE5OTktMDEtMjAgMTU6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QpOiAjaWZkZWYgUlBNIHByb3RlY3QgYSBmcmVlIHJvdXRpbmUuCiAgIAoxOTk5LTAxLTIwIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHR5cG8KICAgCjE5OTktMDEtMjAgMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGhlbHBpbmcgb3V0IGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjMwICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IEl0J3MgMTk5OQogICAKMTk5OS0wMS0yMCAxNToyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IGFkZGVkIHZlcnNpb24gc3RhbXAuCiAgIAoxOTk5LTAxLTIwIDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wMS0yMCAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB1Y2Qtc25tcC1pbmNsdWRlcy5oLgogICAKMTk5OS0wMS0yMCAxNToxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IG1pbmltYWxpc2ggaW5jbHVkZSBzZXQgZm9yIGxpYnJhcnkgY2xpZW50cy4KICAgCjE5OTktMDEtMjAgMTU6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6CiAgICAgLSBsaW51eCAyLjEga2VybmVsIG5lZWRzIGFzbS9wYWdlLmggKGFsbCBpbmNsdWRlcyBuZWVkIHRvIGJlIHJlLXdyaXR0ZW4pLgogICAKMTk5OS0wMS0yMCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jCjoKCiAgIC0gKGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jKToKICAgICAtIHN5cy9zdHJlYW0uaCBuZWVkZWQgYnkgU0NPLgogICAgIC0gaW50ZXJmYWNlcyBzY2FuIGZpeGVzIGZvciBsaW51eCAyLjAgdnMgMi4xIGNhbiBiZSBjb25maWd1cmVkIGVsc2V3aGVyZSBub3cuCiAgICAgLSBwcm90ZWN0IGdldF9hZGRyZXNzIGNhbGxzIGFnYWluc3QgTlVMTCBwb2ludGVyIHJldHVybnMuCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHZlcnNpb24gdGFnZ2luZyBhYmlsaXR5IHRvIGRvIG1hbnkgdGhpbmdzLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvc3RyZWFtLmggZm9yIFNDTy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBmb3IgYXNtL3BhZ2UuaCAobGludXgpLgogICAgIC0gY2hlY2sgZm9yIHN5cy9zdHJlYW0uaCAoU0NPKS4KICAgICAtIEZpeCBydGVudHJ5IHRlc3QuCiAgIAoxOTk5LTAxLTIwIDE1OjExICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdmVyc2lvbiB0YWcgY3JlYXRpb24uCiAgIAoxOTk5LTAxLTIwIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwgLmN2c2lnbm9yZSwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpZi5jLCBNYWtlZmlsZS5pbiwgbWliLmMsIHBhcnNlLmMsCiAgICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsCiAgICAgdmFjbS5jKTogZGVidWdnaW5nIHN1cHBvcnQgY29kZSBtb3ZlZCB0byBzbm1wX2RlYnVnLltjaF0uCiAgIAoxOTk5LTAxLTIwIDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiB0eXBvIGluIGFuc2kgY2hhbmdlcy4KICAgCjE5OTktMDEtMjAgMTI6MjEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKTogdW5uZWVkZWQgY29tbWVudCByZW1vdmVkLgogICAKMTk5OS0wMS0yMCAxMjoyMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogcGVybC1TTk1QIGFuZCB5MmsgcXVlc3Rpb25zIGFkZGVkLgogICAKMTk5OS0wMS0yMCAxMjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvLnB1cmUsIHNubXBsaWIvLnB1cmU6CgogICAtICgucHVyZSwgLnB1cmUsIC5wdXJlKTogcmVtb3ZlZC4KICAgCjE5OTktMDEtMTkgMjA6MDEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIC0gKHNubXB0YWJsZS5jLCBtaWIuYywgcGFyc2UuYywgc25tcF9hdXRoLmMsIGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbQogICAgIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAtIGFwcHMvc25tcHRhYmxlLmMgLSBzb21lIGNvbXBpbGVycyB3YXJuIGNvbXBhcmluZyBwb2ludGVyIHdpdGggaW50ZWdlcgogICAgIC0gc25tcGxpYi9taWIuYyAtIGFscmVhZHkgbWVudGlvbmVkIGJlZm9yZTsgaGVyZSBmb3IgY29tcGxldGUtbmVzcwogICAgIC0gc25tcGxpYi9wYXJzZS5jIC0gbWlub3IgdG91Y2h1cCBvZiBpbmNsdWRlczsgc3lzdGVtLmggZHVwIHJlbW92ZWQKICAgICAtIHNubXBsaWIvc25tcF9hcGkuaCAtIE1TVmlzdWFsIEMrKyBkb2Vzbid0IGhhdmUgX19GVU5DVElPTl9fCiAgICAgLSBzbm1wbGliL3NubXBfYXV0aC5jIC0gbWlub3IgZml4IG9mIGNvbW1lbnQKICAgICAtIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIC0gc25tcF9wYXJzZV9hcmdzIG5lZWRzIGEgbmV3IGZ1bmN0aW9uCiAgIAoxOTk5LTAxLTE5IDE5OjU5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgX19QIGNoZWNraW5nLgogICAKMTk5OS0wMS0xOCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2knaWZ5IGV2ZXJ5dGhpbmcuCiAgIAoxOTk5LTAxLTE4IDEwOjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMKLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2F1dG9fbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgKLCBhZ2VudC92YXJfc3RydWN0LmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmgsCiAgIGFnZW50L2RsbW9kcy9leGFtcGxlLmMsIGFnZW50L2RsbW9kcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL21pYklJLmMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgKLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmg6CgogICAtIChSRUFETUUsIGFwcHMsIGFnZW50LCBhY2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KICAgCjE5OTktMDEtMTYgMjM6MTMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNiApCiAgIAoxOTk5LTAxLTE2IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jCiwgYXNuMS5oLCBjb250ZXh0LmMsIGNvbnRleHQuaCwKICAgY29udGV4dF9wYXJzZS5jLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtZDUuYywKICAgbWQ1LmgsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaAosIHBhcnR5LmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXAuYywgc25tcC5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLAogICBzeXN0ZW0uYywgc3lzdGVtLmgsIHZhY20uYywgdmFjbS5oLAogICB2aWV3LmMsIHZpZXcuaDoKCiAgIC0gKHNubXBsaWIvKi5bY2hdKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYXNuaSdpZnkgYWxsIGZ1bmN0aW9ucy4KICAgCjE5OTktMDEtMTYgMjM6MDQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiB1cGRhdGVkIC1EIGRlc2NyaXB0aW9uLgogICAKMTk5OS0wMS0xNSAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSBzbXV4IHBhdGNoZXMuCiAgIAoxOTk5LTAxLTE1IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKHZhY20uYyk6IERFQlVHTVNHIHR5cG8uCiAgIAoxOTk5LTAxLTE1IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KICAgCjE5OTktMDEtMTUgMTU6MjIgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvTWFrZWZpbGUuaW4KLCBtaWJncm91cC9taWJJSS5oLCBtaWJncm91cC9kdW1teS9kdW1teS5jLAogICBtaWJncm91cC9kdW1teS9kdW1teS5oLCBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMKLCBtaWJncm91cC9leGFtcGxlcy93b21iYXQuaCwgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvYXQuaCwgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmgsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcC5oLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5oLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcC5oLAogICBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgKLCBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMKLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmgsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMKLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmg6CgogICAtIChhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHJlZ2lzdGVyX21pYigpLgogICAKMTk5OS0wMS0xNSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcGQuYywgc25tcGQuaCk6CiAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgogICAKMTk5OS0wMS0xNSAxMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcDJwLmM6CgogICAtIChzbm1wMnAuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KICAgCjE5OTktMDEtMTQgMDk6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiB1cGRhdGUgZm9yIFNOTVAucG0gMS44LgogICAKMTk5OS0wMS0wOSAyMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhdXRvX25saXN0LmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC9kdW1teS9kdW1teS5jLCBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBtaWJncm91cC9ob3N0L2hyX3Byb2MuYywgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsCiAgIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS91ZHAuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gKGFnZW50LyouYyk6CiAgICAgLSB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAgIC0gaW1wbGVtZW50IG5lZWRlZCAtRCBmbGFnIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTA5IDIwOjUyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZGlzY3VzcyAtRCB1c2FnZSBjaGFuZ2UuCiAgIAoxOTk5LTAxLTA5IDIwOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBERUJVR1BPSUQgcmVwbGFjZW1lbnQ6IERFQlVHTVNHT0lELgogICAKMTk5OS0wMS0wOSAyMDo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IHJlbW92ZSBvbGQgdG9rZW4gc3BlY2lmaWVyIGluIGEgZGVidWdnaW5nIHN0YXRlbWVudAogICAgIGZvcm1hdCBsaW5lLgogICAKMTk5OS0wMS0wOSAyMDo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIG1haW4uYzoKCiAgIC0gKGlmLmMsIG1haW4uYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTA5IDIwOjUwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDEtMDkgMjA6NDkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBVUkwgY2hhbmdlcy4KICAgCjE5OTktMDEtMDkgMjA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1ha2UgLUQgcmVnaXN0ZXIgdGhlIGRlYnVnZ2luZyB0b2tlbnMgc3BlY2lmaWVkLgogICAKMTk5OS0wMS0wOSAyMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogY2hhbmdlIGludGVybmFsIGRlYnVnIHZhcmlhYmxlIHRvIGxvY2FsZGVidWcuCiAgIAoxOTk5LTAxLTA5IDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCB2YWNtLmMpOgogICAgIC0gSW1wbGVtZW50IHRoZSBuZXcgdG9rZW4gYmFzZWQgZGVidWdnaW5nIG1lc3NhZ2Ugc3VwcG9ydC4KICAgCjE5OTktMDEtMDUgMTA6NDggIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgc25tcHRhYmxlLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBtYWtlIG1haW4oKSByZXR1cm4gYW4gaW50IGluc3RlYWQgb2Ygdm9pZC4KICAgCjE5OTktMDEtMDUgMTA6NDEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IE1ha2UgZmllbGQgc2VwYXJhdG9yIHRha2UgYXJndW1lbnRzIGRpcmVjdGx5IGFmdGVyIHRoZSAtZi4KICAgCjE5OTktMDEtMDIgMDg6NDggIGhhcmRha2VyCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgIC0gbmV3IGNvbXBsZXRlIGxpc3Qgb2YgaWZUeXBlcy4KICAgCjE5OTgtMTItMzEgMTc6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAtIG9pZExlbidzIHdlcmUgd3JvbmcgZm9yIG0ybSBvaWRzLgogICAKMTk5OC0xMi0zMSAxNzo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gbmVlZCB0byByZWFkX29iamlkKCkgdGhlIGNvbnRleHQgb2lkIGJhc2UsIG5vdCB0aGUgcGFydHkgb2lkIGJhc2UKICAgICAgIGluIG9uZSBsb2NhdGlvbi4KICAgCjE5OTgtMTItMzEgMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYzoKCiAgIC0gKGV2ZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAtIG1lbWNtcCdzIHNpemVzIHdlcmUgd3JvbmcuCiAgIAoxOTk4LTEyLTI5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdmFjbS5jIChWMy1iMy4yKSwgdmFjbS5jOgoKICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICBmaXJzdCB2aWV3IHdhcyBmb3VuZC4KICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICBzcGVlZC4KICAgCjE5OTgtMTItMjkgMTY6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIG5ld2xpbmVzIGZyb20gc3ByaW50X3ZhbHVlKCkgd2hlcmUgYXBwbGljYWJsZS4KICAgCjE5OTgtMTItMjYgMTA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBkbG1vZCBjb21waWxhdGlvbiBpbiBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpIGNhbGwuCiAgIAoxOTk4LTEyLTIyIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICAtIChtaWIuYywgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IG15IGJyb2tlbiBzZXRfbG9jYWxlIHN0dWZmLgogICAKMTk5OC0xMi0yMiAwODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGNvbXBpbGUgZGxtb2RzCiAgIAoxOTk4LTEyLTIxIDE4OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFdpbjMyIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBvcGVuZGlyKCksIGV0Yy4KICAgCjE5OTgtMTItMjEgMTg6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGZpbGUuaCwgVUNELVNOTVAtTUlCLnR4dCk6IG1vdmUgdGhlIGZpbGUgbWliIHRvIC4xNSBzbyBpdCBkb2Vzbid0CiAgICAgY29uZmxpY3Qgd2l0aCB0aGUgZGVtbyBtaWIuCiAgIAoxOTk4LTEyLTIxIDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGEgLmdkYiBmaWxlIG9mIG1pbmUuCiAgIAoxOTk4LTEyLTIxIDA5OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9pcGYtbW9kLnBsLCBtaWJzL0lQRklMVEVSLnR4dDoKCiAgIC0gKGlwZi1tb2QucGwsIElQRklMVEVSLnR4dCk6IFBhdGNoIGZyb20gWWFyb3NsYXYgVGVybGV0c2t5OgogICAgIC0gaXBmaWx0ZXIgcGFzcyBzY3JpcHQgYW5kIG1pYiBmaWxlLgogICAKMTk5OC0xMi0xOCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oCjoKCiAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBtaWIgb2JqZWN0IHRvIGRpc3BsYXkgY29uZmlndXJlIG9wdGlvbnMuCiAgIAoxOTk4LTEyLTE4IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gc3RvcmUgY29uZmlndXJlIGZsYWdzIHRvIGEgZGVmaW5lLgogICAKMTk5OC0xMi0xOCAxODoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogaW5jbHVkZSByZWFkX2NvbmZpZy5oLgogICAKMTk5OC0xMi0xOCAxODoxMSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IHVwZGF0ZSBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgCjE5OTgtMTItMTggMTg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCjoKCiAgIC0gKHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gZml4ZXMgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgICAgLSBtaXNjIHJlYWRfY29uZmlnIGZ1bmN0aW9ucyBwdWxsZWQgaW4gZnJvbSB0aGUgdjMgd29yay4KICAgCjE5OTgtMTItMTggMTE6MzYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cG8uCiAgIAoxOTk4LTEyLTE3IDA4OjA1ICBkcmVlZGVyCgogICAqIGxvY2FsL3NubXBkLXVjZC5zaDoKCiAgIGZpbGUgc25tcGQtdWNkLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OC0xMi0xNiAwNzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcG9pbnRlciBjaGVja3MgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICAKMTk5OC0xMi0xMyAwODo1OSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU1ICkKICAgCjE5OTgtMTItMTMgMDg6NTcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIEplZmYgSm9obnNvbiB0byB0aGUgY29udHJpYnV0b3JzIGxpc3QuCiAgIAoxOTk4LTEyLTEzIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIEplZmYgSm9obnNvbjoKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgUlBNIHBhY2thZ2UgaW5mbyBjYWxscy4KICAgCjE5OTgtMTItMTMgMDg6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgLSAoaW5ldC5jKTogaW5pdCBwb2ludGVyIHRvIE5VTEwuCiAgIAoxOTk4LTEyLTEzIDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IHdhdGNoIG91dCBmb3IgTlVMTCBmaWxlIHBvaW50ZXJzLgogICAKMTk5OC0xMi0xMyAwODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcmVtb3ZlIGEgZmV3IGRlZmluZXMgdGhhdCB3ZXJlIG1lc3NpbmcgdXAgc29sYXJpcyA3LgogICAKMTk5OC0xMi0xMyAwODoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIC13Ly1XIGZsYWcgaW4gdXNhZ2UuCiAgIAoxOTk4LTEyLTEzIDA4OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogc3BhY2luZyBpbiBtaWIgb3B0aW9uIHVzYWdlIGZpeGVzLgogICAKMTk5OC0xMi0xMyAwODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogZml4IGRpc2sgc2l6ZSBlcnJvciBmbGFnIHJlcG9ydGluZyBvbiBTb2xhcmlzLgogICAKMTk5OC0xMi0xMyAwODowNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBiZWdpbm5pbmcgbm90ZXMgZm9yIDMuNi4KICAgCjE5OTgtMTItMTMgMDc6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IC1QIGZsYWcgZm9yIHRvZ2dsaW5nIG5ldyBtaWIgcGFyc2luZyBvcHRpb25zLgogICAKMTk5OC0xMi0xMyAwNzo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogbmV3IGZ1bmN0aW9uczogc25tcF9taWJfdG9nZ2xlX29wdGlvbnMoKSBhbmQgdXNhZ2UuCiAgIAoxOTk4LTEyLTEzIDA3OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgIC0gdXNlIHNldGxvY2FsZSgpIGlmIGF2YWlsYWJsZSB0byBjb3JyZWN0IGlzcHJpbnQgcHJvYmxlbXMuCiAgIAoxOTk4LTEyLTA1IDE2OjUyICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtby5yZW1vdGU6CgogICBmaWxlIGRlbW8ucmVtb3RlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHM6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuY21kcyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ERU1PLU1JQi50eHQ6CgogICBmaWxlIFVDRC1ERU1PLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDExOjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGZpbGUgc25tcHVzbS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMyAxODo0NCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8yLmZ1bmN0aW9uczoKCiAgIGZpbGUgZGVtbzIuZnVuY3Rpb25zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMyAxODo0NCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8yOgoKICAgZmlsZSBkZW1vMiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMi5zZXR1cGZpbGU6CgogICBmaWxlIGRlbW8yLnNldHVwZmlsZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDIgMTU6MTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBmaWxlIHNubXAuY29uZi41LmRlZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjcgMTY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHBhc3MuYzoKCiAgIGZpbGUgc25tcHBhc3MuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjQgMTY6NDMgIGRyZWVkZXIKCiAgICogc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oOgoKICAgZmlsZSB0cmFuc2Zvcm1fb2lkcy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNCAxNjo0MyAgZHJlZWRlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpbGUgZW5jb2RlX2tleWNoYW5nZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAtIHJ1bnRpbWUgb3B0aW9ucyB0byBjb250cm9sIHVuZGVyc2NvcmUgYW5kIGNvbW1lbnQgcGFyc2luZyBpbiBtaWJzLgogICAKMTk5OC0xMS0yMyAxNjoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBwYXJzaW5nIGJ1ZyBmaXhlcy4KICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KICAgCjE5OTgtMTEtMjMgMTU6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYywgaXJpeC5oKTogZml4IGxvY2F0aW9uIG9mIF9LRVJORUwgZGVmaW5lIGZvciBpcml4LgogICAKMTk5OC0xMS0yMiAwNzoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy8uY3ZzaWdub3JlOgoKICAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yMiAwNzoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9kZW1vOgoKICAgZmlsZSBkZW1vIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0xNiAyMjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IHRvbyBtYW55IGltcHJvdmVtZW50cyB0byBjb3VudC4KICAgCjE5OTgtMTEtMDYgMTc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogdjIgdHJhcCBzZW5kIGRlYnVnZ2luZy4KICAgCjE5OTgtMTEtMDYgMTc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5oKTogdXNlIHRyYXAyc2luayBmb3IgdjIgaGFuZGxlcnMKICAgCjE5OTgtMTEtMDYgMTc6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IHYyIHRyYXAgZ2VuZXJhdGlvbi4KICAgCjE5OTgtMTAtMjQgMjM6MDcgIGRyZWVkZXIKCiAgICogdGVzdGluZy9taXNjdGVzdC5jOgoKICAgZmlsZSBtaXNjdGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAxNTozOSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V0aW1ldGVzdC5jOgoKICAgZmlsZSBldGltZXRlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMTM6NTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBkLmMsIHdvbWJhdC5oLAogICAgIHN5c3RlbS5oLCB2YWNtX3ZhcnMuaCwgZGxtb2QuYywgZGlzay5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwKICAgICBsb2FkYXZlLmgsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuaCwgcGFzcy5oLCBwYXNzX3BlcnNpc3QuaCwKICAgICBwcm9jLmgsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWliLmMsIHJlYWRfY29uZmlnLmMsCiAgICAgcmVhZF9jb25maWcuaCk6CiAgICAgLSBuZXcgb3B0aW9uIC1IIG9uIGNvbW1hbmQgbGluZSB0byBwcmludCBvdXQgLmNvbmYgZmlsZSBkaXJlY3RpdmVzCiAgICAgICB0aGF0IHRoZSBhcHBsaWNhdGlvbiB1bmRlcnN0YW5kcy4KICAgICAtIGNyZWF0ZWQgYSBuZXcgb3B0aW9uIHRvIHRoZSByZWFkIGNvbmZpZyByZWdpc3RyYXRpb24gdG8gYWxsb3cKICAgICAgIHNwZWNpZnlpbmcgb2YgYSBoZWxwIGxpbmUuCiAgIAoxOTk4LTEwLTIzIDEzOjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogZWRpdGFibGUgb2lkIGZpZWxkLgogICAKMTk5OC0xMC0yMyAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYwo6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYyk6IGJ1ZyBmaXhlcywgbWlzc2luZyAjZW5kaWYuCiAgIAoxOTk4LTEwLTIzIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zZXJ0IEAgc2lnbi4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ULnNoOgoKICAgZmlsZSBULnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdGVzdGxpc3Q6CgogICBmaWxlIGV2YWxfdGVzdGxpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGZpbGUgZXZhbF90b29scy5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgZmlsZSBldmFsX3N1aXRlLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaDoKCiAgIGZpbGUgZXZhbF9vbmVwcm9ncmFtLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL1QuYzoKCiAgIGZpbGUgVC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL1JFQURNRToKCiAgIGZpbGUgUkVBRE1FIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gTlVMTCBjaGVja2luZyBvbiB0aGUgZmlsZXN5c3RlbSBtb3VudCBwb2ludC4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIGZpbGUgdGVzdF9rdWwuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2g6CgogICBmaWxlIHRlc3Rfa2V5Y2hhbmdlLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3RfdG9vbHMuc2g6CgogICBmaWxlIHRlc3RfdG9vbHMuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rdWwtbWQ1OgoKICAgZmlsZSBkYXRhLmt1bC1tZDUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXM6CgogICBmaWxlIGRhdGEua2V5Y2hhbmdlLXNoYTEtZGVzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTE6CgogICBmaWxlIGRhdGEua2V5Y2hhbmdlLXNoYTEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1OgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1tZDUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rdWwtc2hhMToKCiAgIGZpbGUgZGF0YS5rdWwtc2hhMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTc6MDEgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZgo6CgogICAtICguY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYpOgogICAgIC0gbmV3IHVucHJvb2ZyZWFkIG1hbnVhbCBvbiB0aGUgcmVhZF9jb25maWcgYXBpIChtb3N0IG9mIGl0KS4KICAgCjE5OTgtMTAtMjEgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHdhdGNoIG91dCBmb3IgZW1wdHkgZmlsZSBuYW1lcyBwYXNzZWQgaW4uCiAgIAoxOTk4LTEwLTIxIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIEZpeCBwYXJzZXIgdG8gZGVhbCB3aXRoIGFub255bW91cyBjaGlsZHJlbiBwcm9wZXJseS4KICAgCjE5OTgtMTAtMjAgMTE6MzggIGRyZWVkZXIKCiAgICogdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmM6CgogICBmaWxlIGtleW1hbmFnZXRlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTggMjE6MTQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpbGUgTWFrZWZpbGUuaW4gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE4IDIxOjE0ICBkcmVlZGVyCgogICAqIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBmaWxlIHNjYXBpdGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNiAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYwo6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgYWl4LmgpOiBhaXggaGVhZGVyIGZpbGUgZml4ZXMuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpbGUgdG9vbHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgZmlsZSB0b29scy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmg6CgogICBmaWxlIGxjZF90aW1lLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpbGUgc2NhcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgZmlsZSBzY2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6CgogICBmaWxlIGxjZF90aW1lLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIva2V5dG9vbHMuaDoKCiAgIGZpbGUga2V5dG9vbHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgZmlsZSBrZXl0b29scy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmg6CgogICBmaWxlIGFsbF9nZW5lcmFsX2xvY2FsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvYWxsX3N5c3RlbS5oOgoKICAgZmlsZSBhbGxfc3lzdGVtLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvZGVidWcuaDoKCiAgIGZpbGUgZGVidWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTQgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBmaXggZm9yIGhwdXg5LgogICAKMTk5OC0xMC0xNCAxNjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZm9yIGJyb2tlbiBjb21waWxlciB3YXJuaW5ncyBvbiBOVC4KICAgCjE5OTgtMTAtMTQgMTY6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLUEuCiAgIAoxOTk4LTEwLTE0IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGRvY3VtZW50IC1BLgogICAKMTk5OC0xMC0xNCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiAtQTogYXBwZW5kIHRvIGxvZyBmaWxlLgogICAKMTk5OC0xMC0xNCAwOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIChocl9zdG9yYWdlLmMpOiBtYWNoaW5lL3R5cGVzLmggYW5kIHN5cy92bW1ldGVyLmggZm9yIGZyZWVic2QzLgogICAKMTk5OC0xMC0xNCAwOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBuZXQvaW5fdmFyLmggZm9yIGZyZWVic2QzLgogICAKMTk5OC0xMC0xNCAwOTo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIG1hY2hpbmUvdHlwZXMuaC4KICAgCjE5OTgtMTAtMTQgMDk6MTcgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHB1YmxpYyBjb21tdW5pdHkgZXhhbXBsZXMgLT4gcHJpdmF0ZS4KICAgCjE5OTgtMTAtMDkgMjM6MjAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUgU2hpZWxkIGV4cGxhaW5zIGluIHdvbmRlcm91cyBkZXRhaWwgYWxsIGFib3V0IHRoZSBWQUNNIG1vZHVsZS4KICAgCjE5OTgtMTAtMDkgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc3VwcG9ydCBmb3Igc3RyaWN0IChjYXNlIHNlbnNpdGl2ZSkgb3B0aW9uIHRvIHRoZSBtaWIgY29tcGlsZXIuCiAgIAoxOTk4LTEwLTA5IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIENoZWNrIGZvciBmdWxseSBxdWFsaWZpZWQgb2lkIHN0YXRlbWVudHMuCiAgIAoxOTk4LTEwLTA5IDA4OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCiAgIAoxOTk4LTEwLTA3IDE3OjAwICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICAtIChsaWJzbm1wLmRzcCwgbGlic25tcF9kbGwuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB3aW5OVCBwcm9qZWN0IGZpbGUgdXBkYXRlcy4KICAgCjE5OTgtMTAtMDcgMTY6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGV4aXRpbmcgcHJvYmxlbXMgb24gTlQuCiAgIAoxOTk4LTEwLTA3IDE2OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IGRlZmF1bHQgcG9ydCBwcm9ibGVtcyAoYWdhaW4pLgogICAKMTk5OC0xMC0wNyAxNjo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIHVuLW5lZWRlZCBoZWFkZXJzLgogICAKMTk5OC0xMC0wNyAxNjo0OSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBtYWtlIGh0bWwuCiAgIAoxOTk4LTEwLTA3IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBwcm9wZXJseSBsb2NhdGUgdmVyc2lvbi5oIGluICQoc3JjZGlyKS4KICAgCjE5OTgtMTAtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMyApCiAgIAoxOTk4LTEwLTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCiAgIAoxOTk4LTEwLTA2IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IGZpeCBmb3IgY3ZzIDEuMTAuCiAgIAoxOTk4LTEwLTA2IDE1OjM0ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiB1cGRhdGUuCiAgIAoxOTk4LTEwLTA2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi1PTEQudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLU9MRC50eHQpOiBhZGRlZAogICAKMTk5OC0xMC0wNiAxNToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IHNldHVwIGRlZmluZSBmb3IgSEFWRV9VU0xFRVAuCiAgIAoxOTk4LTEwLTA2IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jKTogaGFjayBmaXhlcyBmb3IgaHB1eDEwIGFuZCBydGVudHJ5LgogICAKMTk5OC0xMC0wNSAxNzowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIChocl9wcm9jLmMpOiBwb3NzaWJsZSBmaXggZm9yIHNvbGFyaXMncyBwcm9jZXNzIHBlcmNlbnRhZ2UuCiAgIAoxOTk4LTEwLTA1IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS86IGR1bW15LmMsIGR1bW15Lmg6CgogICAtIChkdW1teS5jLCBkdW1teS5oKTogdXBkYXRlIHRvIHJlbW92ZSBjb21tb25faGVhZGVyLmgKICAgCjE5OTgtMDktMzAgMTQ6NTYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGludGVyZmFjZXMuYywgbWVtb3J5LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHBhcnNlLmMpOgogICAgIC0gbWVyZ2UgMy41LjMgY2hhbmdlcyBpbnRvIG1haW4gdHJ1bmsuCiAgIAoxOTk4LTA5LTI1IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHV0aWxfZnVuY3MuYyk6IHVzZSBVU0xFRVAgaWYgYXZhaWxhYmxlIGZvcgogICAgIHNtYWxsIHNsZWVwIHRpbWVzIHdoaWxlIHdhaXRpbmcgZm9yIHByb2Nlc3NlcyB0byBmaW5pc2guCiAgIAoxOTk4LTA5LTI1IDE4OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQtb3V0LgogICAKMTk5OC0wOS0yNSAxODowMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdmVyc2lvbi5oLCBhbmQgc3RyaXAgaW5jbHVkZXMgb3V0IG9mIGNvbmZpZy5oCiAgIAoxOTk4LTA5LTI1IDE3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4gIEl0J3MgZ29pbmcgdG8gY2hhbmdlIHRvbwogICAgIG11Y2ggaW4gdGhlIGZ1dHVyZS4KICAgCjE5OTgtMDktMjUgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gaW5zdGFsbCBtb3JlIGhlYWRlcnMuCiAgIAoxOTk4LTA5LTI1IDE3OjMyICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3A6CgogICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgc25tcHRhYmxlLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc3R1cGlkIE9TIHVwZGF0ZS4KICAgCjE5OTgtMDktMjUgMTc6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjM6CgogICAtIChzbm1wX3Nlc3NfYXBpLjMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHNlc3Npb24gZG9jdW1lbnRhdGlvbiB1cGRhdGUuCiAgIAoxOTk4LTA5LTI1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBwcm9jZXNzIGFyZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIGdldF9vcHQoKS4KICAgCjE5OTgtMDktMjUgMTc6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tCiAgICAgTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGNvbXBpbGVyIHdhcm5pbmdzLCBlcnJvcnMuCiAgIAoxOTk4LTA5LTI1IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAtIFRoZSBDTVUgbGlicmFyeSBoYXMgYW4gb3B0aW1pemF0aW9uIGluIHNubXBfY2xvbmVfcGR1KCkgdGhhdCBkb2VzCiAgICAgIG5vdCBjb3B5IHplcm8gbGVuZ3RoIHN0cmluZ3MuICBJIGhhZCBtZXJnZWQgdGhpcyBpbiB3aXRoIGNoYW5nZXMKICAgICAgbWFkZSBmb3IgbXVsdGktdGhyZWFkIHN1cHBvcnQuICBVbmZvcnR1bmF0ZWx5LCBJIGRpZCBub3QgbWFrZSBzdXJlCiAgICAgIHRoZSBjbG9uZWQgUERVIGhhZCBubyBwb2ludGVyIGZvciB0aGlzIGNhc2UuICBPb3BzIQogICAgLSBBbm90aGVyIHByb2JsZW0gaW4gc25tcF9jbG9uZV9wZHUoKSB3YXMgdGhlIHRlc3QgZm9yIHplcm8gbGVuZ3RoCiAgICAgIHN0cmluZyB3YXMgbm90IGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY2hhaW4uCiAgIAoxOTk4LTA5LTI1IDE3OjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoRXh0LTMtNS1wYXRjaGVzLjUpLCBzbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGRvbid0IHJlbHkgb24gdGhlIGdldHNlcnZieW5hbWUgcG9pbnRlciB0byBzdGF5IGFyb3VuZC4KICAgCjE5OTgtMDktMjMgMTM6MDYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBwYXJzZS5jKTogTmV3IGZsYWc6CiAgICAgLSAtLWVuYWJsZS1lb2wtdGVybWluYXRlZC1jb21tZW50cy4KICAgCjE5OTgtMDktMjMgMTI6MTUgIGhhcmRha2VyCgogICAqIElTU1VFUzoKCiAgIGZpbGUgSVNTVUVTIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0yMSAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAoRXh0LTMtNS1wYXRjaGVzLjUpLCBzbm1wX3ZhcnMuYwogICAoVjMtYjEuWzUsMl0pLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCiAgIAoxOTk4LTA5LTIxIDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSAoZmlsZS5jLCBmaWxlLmgpOiBhbGxvdyAtMSBzaXplIHRvIGluZGljYXRlIHNpbXBsZSBzaXplIG1vbml0b3JpbmcuCiAgIAoxOTk4LTA5LTE4IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ2hhbmdlIGZpbGUgcmV0dXJuIGNvZGUgZnJvbSBUcnV0aFZhbHVlIHRvCiAgICAgaW50ZWdlciBzaW5jZSAxLzIgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IDAvMSByZXR1cm4gY29kZSBzY2hlbWUuCiAgIAoxOTk4LTA5LTE4IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmg6CgogICAtIChmaWxlLmgpOiByZW1hcCB0byB0aGUgMTAwLzEwMSBjb252ZW50aW9ucyBvZiB0aGUgdWNkLXNubXAgdGFibGVzLgogICAKMTk5OC0wOS0xOCAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiBhZGQgdGhlIGZpbGUgbWliIG1vZHVsZS4KICAgCjE5OTgtMDktMTggMTM6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIChmaWxlLmMsIGZpbGUuaCk6IFBhdGNoIGZyb20gSm9uYXMgT2xzc29uOgogICAgIC0gSW1wbGVtZW50IGEgZmlsZSBzaXplIHdhdGNoaW5nIG1pYiBtb2R1bGUgKHVjZC1zbm1wL2ZpbGUpLgogICAKMTk5OC0wOS0xOCAxMzoyMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGFkZGVkIHRoZSBGaWxlVGFibGUgc3VibWl0dGVkIGJ5IEpvbmFzIE9sc3Nvbi4KICAgCjE5OTgtMDktMTggMTI6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5oOgoKICAgZmlsZSBzbm1wLXRjLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGZpbGUgc25tcHVzbS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmg6CgogICBmaWxlIHNubXB1c20uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBmaWxlIHVzbVVzZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBmaWxlIHVzbVVzZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTYgMDc6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oOgoKICAgZmlsZSB1c21TdGF0cy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNiAwNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmM6CgogICBmaWxlIHVzbVN0YXRzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggaW5pdF9zbm1wIGNhbGxzIGZyb20gc2Vzc2lvbiByb3V0aW5lcy4KICAgCjE5OTgtMDktMTUgMTM6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IC8vIGNvbW1lbnQgLT4gLyogKi8gY29tbWVudC4KICAgCjE5OTgtMDktMTUgMTM6MDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgLSAoaW5ldC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtZW1vcnkgcmVsYXRlZCBmaXhlcy4KICAgCjE5OTgtMDktMTQgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYzoKCiAgIGZpbGUgc25tcE1QRFN0YXRzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmg6CgogICBmaWxlIHNubXBNUERTdGF0cy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgZmlsZSBzbm1wdjNtaWJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbDoKICAgICAtIGRvIGRsbW9kcyBjb21waWxhdGlvbiBiZXR0ZXIgYXQgbGVhc3Qgb24gc29sYXJpcyBhbmQgbGludXguCiAgIAoxOTk4LTA5LTE0IDEyOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIGRsbW9kX21pYi5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICAgIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBzbm1wX2JncC5jLAogICAgIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgaHB1eC5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLAogICAgIHJlZ2lzdHJ5LmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLAogICAgIHBhcnR5X3ZhcnMuYywgdmlld192YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW5hbWUgY29tcGFyZSAtPiBzbm1wX29pZF9jb21wYXJlKCkuCiAgIAoxOTk4LTA5LTE0IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gaW5zdGFsbCBzbm1wX3Nlc3NfYXBpLjMuCiAgIAoxOTk4LTA5LTE0IDA5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jOgoKICAgZmlsZSBzbm1wRW5naW5lLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDA5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oOgoKICAgZmlsZSBzbm1wRW5naW5lLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDA5OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZmlsZSBzbm1wdjMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmg6CgogICBmaWxlIHNubXB2My5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xMyAyMTowOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHVwZGF0ZTogMy42LnByZTIKICAgCjE5OTgtMDktMTMgMjE6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gKG1pYi5jLCByZWFkX2NvbmZpZy5jKTogcmVmaXggdGhlIG5vbi1tYWxsb2NlZCBjb25maWd1cmF0aW9uIHZhcnMuCiAgIAoxOTk4LTA5LTEzIDIxOjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBOYW1lIGFkZGl0aW9uLgogICAKMTk5OC0wOS0xMyAyMDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByZXZlbnQgZG91YmxlIGluaXRfc25tcCgpcy4KICAgCjE5OTgtMDktMTMgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBub3QgZmluZGluZyBhIGNvbmZpZyBmaWxlIGlzIHByaW50ZWQgd2l0aCBERUJVR1AoKSBpbnN0ZWFkLgogICAKMTk5OC0wOS0xMyAyMDoxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGRlZmluZSB1c2FnZSBtaXNwZWxsaW5nIFNOTVBfQkFEX1BBUlNFIC0+IFNOTVBFUlJfQkFEX1BBUlNFLgogICAKMTk5OC0wOS0xMyAyMDoxMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAoc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAtIG1lcmdlIGludG8gbWFpbiBsaW5lIGZyb20gdGhlIDMtNi1wcmUxLXRyYW5zIGJyYW5jaC4KICAgCjE5OTgtMDktMTMgMTg6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGV4aXQgLT4gcmV0dXJuLgogICAKMTk5OC0wOS0xMiAwOTowOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IE1vdmUgQ0FOX1VTRV9OTElTVCB0ZXN0cyBiZWxvdyBhcmNoIC5oIGZpbGVzLgogICAKMTk5OC0wOS0xMiAwOTowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gYnVnIGZpeCB0byBjaGVjayBmb3IgTlVMTCBzZXNzaW9uIHBvaW50ZXIgYmVmb3JlIHVzaW5nIGl0LgogICAKMTk5OC0wOS0xMiAwODo1NiAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW46CgogICAtIChvdi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBzZWN0aW9ucyBhbHJlYWR5IGRlZmluZWQgaW4gTWFrZWZpbGUudG9wLgogICAKMTk5OC0wOS0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGQgbWliX21vZHVsZV9zaHV0ZG93bi5oCiAgIAoxOTk4LTA5LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRG9uJ3QgZm9yY2UgY2MgYW55bW9yZSwgYWxsb3cgZ2NjIHRvIGdvIGZpcnN0LgogICAKMTk5OC0wOS0xMiAwODo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1vdmUgdW4tY29uZmlndXJlZCBkZWZpbmVzIGFib3ZlIEBUT1BALgogICAKMTk5OC0wOS0xMiAwODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByb3RvdHlwZSBtb3ZlIGluaXRfc25tcCgpIGFib3ZlIGluaXRfc25tcF9zZXNzaW9uLgogICAKMTk5OC0wOS0xMSAwOToyNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBtYW4vc25tcF9zZXNzX2FwaS4zLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgKLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvY29uZmlnLmgKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKCopOiBNZXJnZWQgdGhlIE1UIGNoYW5nZXMgaW50byB0aGUgbWFpbiBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDIxOjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xpYnNubXAuaDoKCiAgIGZpbGUgbGlic25tcC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtMS1NVC4KICAgCjE5OTgtMDktMDkgMjE6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjM6CgogICBmaWxlIHNubXBfc2Vzc19hcGkuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LTEtTVQuCiAgIAoxOTk4LTA5LTA5IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCB0cmFwIHN0dWZmIGJyb2tlbiBieSB0aGUgY29kZSBtZXJnZS4KICAgCjE5OTgtMDktMDkgMTY6MDkgIGhhcmRha2VyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZwosIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLnBsZwosIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXQvc25tcGdldC5wbGcsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHNldC9zbm1wc2V0LnBsZywKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5wbGcsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBhY2wuaCwgYXNuMS5jLCBhc24xLmgKLCBtZDUuaCwgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsCiAgIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwKICAgc3lzdGVtLmMsIHZhY20uaCwgdmlldy5oOgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1hbi9taWJfYXBpLjMsCiAgIG1hbi9zbm1wX2FwaS4zLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgbWFuL3NubXB0cmFuc2xhdGUuMSwgbWFuL3NubXB0cmFwZC44LAogICBtYW4vdmFyaWFibGVzLjU6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENPUFlJTkcsIENoYW5nZUxvZywgTWFrZWZpbGUuaW4KLCBORVdTLCBSRUFETUUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9zbm1wMnAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwOgoKICAgZmlsZSBzbm1wZGVsdGEuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5wbGc6CgogICBmaWxlIHNubXBkZWx0YS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5wbGc6CgogICBmaWxlIHNubXB0ZXN0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcDoKCiAgIGZpbGUgc25tcHRyYXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwOgoKICAgZmlsZSBzbm1wdGVzdC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5wbGc6CgogICBmaWxlIHNubXB0cmFwLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaDoKCiAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmg6CgogICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDMgMTQ6MjkgIG5iYQoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgLSAoZml4cHJvYyk6IGFkZGVkIGNvbW1lbnQgdG8gdGVzdCBDVlMuCiAgIAoxOTk4LTA5LTAyIDE4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsCiAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgc25tcGQuaCk6CiAgICAgLSBzdXBwb3J0IG1pYi1tb2R1bGUgc2h1dGRvd24gZnVuY3Rpb25zLgogICAgIC0gZG8gYSBtaW5pbWFsIHBlcnNpc3RlbnQgY2FjaGUgaW1wbGVtZW50YXRpb24gYW5kIHJlYWQgaXQgYXQgc3RhcnQgdXAuCiAgICAgLSB0ZXN0IHdpdGggYmVnaW5uaW5ncyAod3JvbmcgcGxhY2UpIG9mIGFnZW50Qm9vdHMgdmFyaWFibGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiB1c2UgaW5pdF9zbm1wIGluc3RlYWQgb2YgaW5pdF9taWIoKS4KICAgCjE5OTgtMDktMDIgMTg6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZS4KICAgCjE5OTgtMDktMDIgMTg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGluaXRfc25tcCgpLgogICAKMTk5OC0wOS0wMiAxODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywKICAgcmVhZF9jb25maWcuaDoKCiAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBwcmUvcG9zdCBtaWIgbG9hZGluZyBjb25maWcgZmlsZXMuCiAgICAgLSBjcmVhdGUgaW5pdF9zbm1wKCkgdG8gd3JhcCBvdGhlciBmdWN0aW9ucy4KICAgICAtIG5ldyBzbm1wLmNvbmYgZGlyZWN0aXZlczogbWlicywgbWliZGlycywgbWliZmlsZS4KICAgCjE5OTgtMDktMDIgMTg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB0eXBvLgogICAKMTk5OC0wOS0wMiAxODo0NCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHBlcnNpc3RlbnQgY29uZmlnIGZpbGUgcXVlc3Rpb24uCiAgIAoxOTk4LTA5LTAyIDE4OjQzICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IGFkZGVkIHNlY3VyaXR5IGNoZWNrcy4KICAgCjE5OTgtMDgtMzEgMTM6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgogICAKMTk5OC0wOC0zMSAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKEV4dC0zLTUtcGF0Y2hlcy4yKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgogICAKMTk5OC0wOC0xNCAwODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDgtMTQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA3LTIyIDE2OjIzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IGZpeCBzZWRzY3JpcHQgaW5jbHVkZXMuCiAgIAoxOTk4LTA3LTIyIDE1OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCiAgIAoxOTk4LTA3LTIwIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoc25tcGNoZWNrLmRlZik6IHdvcmsgYXJvdW5kIGZvciBuZXcgbXVsdGktZGVwdGggbWliIHRhYmxlcy4uCiAgIAoxOTk4LTA3LTE3IDEzOjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL1JGQy0xMjE1LnR4dDoKCiAgIC0gKFJGQy0xMjE1LnR4dCk6IGNyZWF0ZWQgYW4gZW1wdHkgbWliIG1vZHVsZSBmb3IgaW1wb3J0aW5nIG9mIFRSQVAtVFlQRS4KICAgCjE5OTgtMDctMTcgMTM6MTEgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGVkIHNtaWNuZyBpbnB1dCBmaWxlLgogICAgIC0gZml4ZWQgdGhlIFVDRC1TTk1QIG1pYiB0byBkZWFsIHdpdGggbW9zdCBzbWljIGVycm9ycy4KICAgCjE5OTgtMDctMTUgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oOgoKICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KICAgCjE5OTgtMDctMTUgMTU6NDYgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHVzaW5nX21vZHVsZSBjaGFuZ2VzLgogICAKMTk5OC0wNy0xMCAwOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB3cm9uZyBwZHUgcG9pbnRlciBmb3Igc25tcHYyYyB0cmFwcy4KICAgCjE5OTgtMDctMDggMTU6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjYucHJlMSApCiAgIAoxOTk4LTA3LTA4IDE1OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYyk6IC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogLVdhbGwgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBidWcgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmgKICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCjoKCiAgIC0gKHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaCk6IGNsZWFuZWQgdXAgYW5kIC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gKHZlcnNpb25pbmZvLmMpOiBpbmNsdWRlIHN5c3RlbS5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBpbmNsdWRlIHN5cy93YWl0LmgKICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogcmVtb3ZlZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QgZnJvbSBkZWZhdWx0IGluY2x1ZGUgbGlzdC4KICAgCjE5OTgtMDctMDggMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKLCBwYXNzLXBlcnNpc3QuYywgcGFzcy1wZXJzaXN0Lmg6CgogICAtIChwYXNzLXBlcnNpc3QuYyBwYXNzLXBlcnNpc3QuaCk6IG1vdmVkIHRvIHBhc3NfcGVyc2lzdC5bY2hdLgogICAKMTk5OC0wNy0wOCAxNDoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlIHVucmVnaXN0ZXJfcmVhZC4uKCkgZnVuY3Rpb24uCiAgIAoxOTk4LTA3LTA4IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAgLSAoZGxtb2QuYyk6IHVzZSBzbm1wZF8gcmVnaXN0ZXJfcmVhZF9jb25maWcoKSB3cmFwcGVycy4KICAgCjE5OTgtMDctMDggMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgpOiB3cmFwcGVycyBmb3IgcmVhbCByZWFkX2NvbmZpZygpcy4KICAgCjE5OTgtMDctMDggMTQ6MDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvZGxtb2RzLy5jdnNpZ25vcmUsIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmgsCiAgIGFnZW50L2RsbW9kcy9leGFtcGxlLmMsIGFnZW50L2RsbW9kcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIG1pYnMvRExNT0QtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwKICAgICAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oLCBleGFtcGxlLmMsCiAgICAgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgRExNT0QtTUlCLnR4dCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBFdWdlbmUKICAgICBQb2xvdm5pa292OgogICAgIC0gbmV3IGRsbW9kIHNldC4KICAgICAtIGZpeCBjb25maWd1cmUgc2NyaXB0LgogICAKMTk5OC0wNy0wOCAxMzowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgogICAKMTk5OC0wNy0wOCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KICAgCjE5OTgtMDctMDggMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IG1ha2UgaHBfaW50ZXJmYWNlcyBzdHJ1Y3R1cmUgc3RhdGljLgogICAKMTk5OC0wNy0wOCAxMjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIGZpeCAibnVtYmVyIG9mIHJldHJpZXMiIGJ1Zy4KICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KICAgCjE5OTgtMDctMDggMTI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogYWRkZWQgcGFzcy1wZXJzaXN0IG1vZHVsZS4KICAgCjE5OTgtMDctMDggMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiByZW1vdmVkIGZyb20gYWdlbnQgZGlyLgogICAKMTk5OC0wNy0wOCAxMjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLAogICB1dGlsX2Z1bmNzLmgsIHVjZC1zbm1wL3Bhc3MtcGVyc2lzdC5jLAogICB1Y2Qtc25tcC9wYXNzLXBlcnNpc3QuaDoKCiAgIC0gKHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgcGFzcy1wZXJzaXN0LmMsCiAgICAgcGFzcy1wZXJzaXN0LmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgLSBjcmVhdGUgYSBwYXNzLXBlcnNpc3QgbW9kdWxlIHRvIGhhbmRsZSBjb250aW51b3VzbHkgcnVubmluZyBwYXNzIHRocm91Z2hzLgogICAKMTk5OC0wNy0wOCAxMjoyNyAgaGFyZGFrZXIKCiAgICogd2luMzIvOiB3aW4zMi5vcHQsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5kc3AKLCBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAod2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5wbGcsCiAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLmRzcCwKICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgIE1hcnpvdDoKICAgICAtIHdpbjMyIHVwZGF0ZS4KICAgCjE5OTgtMDctMDEgMTU6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOgogICAgIC0gZml4IGV4dGVuc2libGl0eSBjaGVja2luZyBvZiBvaWRzLgogICAgIC0gc2VwZXJhdGUgcnVubmluZyBvZiBleHRlcm5hbCBjb21tYW5kIGludG8gbmV3IGZ1bmN0aW9uLgogICAKMTk5OC0wNy0wMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogbWlub3Igc3BhY2luZyBjaGFuZ2VzLgogICAKMTk5OC0wNy0wMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmgpOgogICAgIC0gYWRkZWQgREVCVUdQT0lEKG5hbWUsIG5hbWVsZW4pOwogICAgIC0gbW92ZWQgREVCVUdQIGRlZmluaXRpb24gaW50byBzbm1wX2FwaS5oIHdoZXJlIGl0IGJlbG9uZ3MuCiAgIAoxOTk4LTA3LTAxIDExOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgc3RydWN0LmgsIHBhc3MuaCwgTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZyBzdXBwb3J0IGludG8gdGhlIGxpYnJhcnkgYW5kIHVzZSBpdC4KICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCiAgIAoxOTk4LTA3LTAxIDExOjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBNYWtlZmlsZS5pbiwKICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KICAgCjE5OTgtMDYtMjggMDk6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggc25tcF9hZGRfdmFyKCkuCiAgIAoxOTk4LTA2LTI2IDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYwosIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaDoKCiAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCiAgIAoxOTk4LTA2LTI2IDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICBwcm90ZWN0IGFnYWluc3QgMzIgYml0IG92ZXJmbG93cy4KICAgCjE5OTgtMDYtMjQgMTE6NDAgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkZWQgLmluZGV4LgogICAKMTk5OC0wNi0yNCAxMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcGQuYywgc25tcGQuaCk6CiAgICAgLSBjcmVhdGVkIChwb29ybHkpIHNlbmRfdHJhcF9wZHUoKSBmb3Igc2VuZGluZyB2MiB0cmFwcyBmcm9tIG1pYiBtb2R1bGVzLgogICAKMTk5OC0wNi0yNCAxMTowOCAgaGFyZGFrZXIKCiAgICogbWlicy86IC5jdnNpZ25vcmUsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgLSBtaXNjIG1pYiBmaXhlcy4KICAgCjE5OTgtMDYtMjQgMTA6NTggIGhhcmRha2VyCgogICAqIGFnZW50Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUsIC5jdnNpZ25vcmUpOiBhIGZldyB1cGRhdGVzLgogICAKMTk5OC0wNi0yNCAxMDo1NyAgaGFyZGFrZXIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICAtIChtYW4vLmN2c2lnbm9yZSk6IGlnbm9yZSAuaHRtbCBmaWxlcy4KICAgCjE5OTgtMDYtMjQgMTA6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcHNldC5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmVkIGhleF90b19iaW5hcnksIGFzY2lpX3RvX2JpbmFyeSwgYW5kIHNubXBfYWRkX3ZhciB0byBzbm1wbGliLgogICAKMTk5OC0wNi0yNCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfcGR1X2FkZF92YXJpYWJsZSgpLgogICAKMTk5OC0wNi0yNCAxMDozMCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYW4tPmh0bWwgbWFrZSBzcGVjaWZpY2F0aW9uLgogICAKMTk5OC0wNi0yMiAwOToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAtIGNvbW1lbnRlZCBvdXQgdHJhaWxpbmcgI2VuZGlmIGNvbW1lbnQuCiAgIAoxOTk4LTA2LTE5IDEzOjE0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNS4KICAgCjE5OTgtMDYtMTkgMTM6MTMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjUgKQogICAKMTk5OC0wNi0xOSAxMzoxMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBMYXN0IHVwZGF0ZSBmb3IgMy41LgogICAKMTk5OC0wNi0xOSAxMzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNi0xOSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IG1lbXNldCB0byAwIHRoZSBlbnRpcmUgc3VidHJlZSBzdHJ1Y3QuCiAgIAoxOTk4LTA2LTE5IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBmaXggY2hlY2ttaWIoKSBpbiBjYXNlIHdlIGdldCBjYWxsZWQgb24gYSBnZXQgd2hlbgogICAgIHdlIHJlYWxseSBzaG91bGRuJ3QgKGJhZCBhcnRpZmFjdCBvZiBuZXcgdHJlZSBzdHJ1Y3R1cmUpLgogICAKMTk5OC0wNi0xOSAxMjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYzoKCiAgIC0gKGR1bW15LmMpOiBtZW50aW9uIGF1dG9fbmxpc3QoKS4KICAgCjE5OTgtMDYtMTkgMTI6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L0FkZE1vZHVsZUZvckR1bW1pZXMudHh0OgoKICAgLSAoQWRkTW9kdWxlRm9yRHVtbWllcy50eHQpOiB1cGRhdGUgdG8gZml4IHBhdGhzIGFuZCBtaXNjIHN0dWZmLgogICAKMTk5OC0wNi0xOSAxMjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGZpeCByZWdpc3Rlcl9taWIoKSB0byBpbml0IHBvaW50ZXJzIHRvIG51bGwuCiAgIAoxOTk4LTA2LTE5IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gaW5zdGFsbCBJUEZXQUNDIG1pYi4KICAgCjE5OTgtMDYtMTkgMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0KTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIHR1cm4gaW50byBhIGNvcnJlY3QgdGFibGUuCiAgIAoxOTk4LTA2LTE5IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBleGFtcGxlIG91dHB1dCBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDYtMTkgMDg6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIEJTREkgdXNlcnMgYWdhaW5zdCAvdXNyL3VjYi9jYy4KICAgCjE5OTgtMDYtMTkgMDg6NDEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkOiBub3QgZm91bmQgbW9kdWxlcyB3aXRoIGNvbmZpZ3VyZT8uCiAgIAoxOTk4LTA2LTE3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oOgoKICAgLSAoZHVtbXkuaCk6IGFkZCBEVU1NWS1NSUIgYnkgZGVmYXVsdC4KICAgCjE5OTgtMDYtMTcgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKFJFQURNRSk6IG1lbnRpb24gZHVtbXkgZ3JvdXAuCiAgIAoxOTk4LTA2LTE3IDA4OjIxICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL2R1bW15L0FkZE1vZHVsZUZvckR1bW1pZXMudHh0CiwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvRFVNTVktTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaAo6CgogICAtIChSRUFETUUsIEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LCBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oKToKICAgICBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgLSBtaWIgbW9kdWxlIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGUgZm9yIGR1bW1pZXMuCiAgIAoxOTk4LTA2LTE3IDA4OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgLSAobWliLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcmVtb3ZlIDJuZCBpbml0X21pYigpIHByb3RvdHlwZS4KICAgCjE5OTgtMDYtMTcgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGJjb3B5IC0+IG1lbWNweS4KICAgCjE5OTgtMDYtMTcgMDg6MTAgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLAogICBzbm1wZGVsdGEuMSwgc25tcGdldC4xLCBzbm1wZ2V0bmV4dC4xLCBzbm1wc2V0LjEKLCBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcC4xLAogICBzbm1wd2Fsay4xOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgICAgc25tcGdldG5leHQuMSwgc25tcHNldC4xLCBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcC4xLAogICAgIHNubXB3YWxrLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jdW1lbnRhdGlvbiBjbGVhbnVwIGFuZCBjZW50cmFsaXphdGlvbiBvZiBjb21tb24gb3B0aW9ucy4KICAgCjE5OTgtMDYtMTcgMDg6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIChzbm1wZGVsdGEuYyk6IHVzYWdlKCkgdXBkYXRlLgogICAKMTk5OC0wNi0xNyAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG1pc2MgdHlwZSBmaXhlcy4KICAgCjE5OTgtMDYtMTIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY3JlYXRlIGFuZCB1c2UgYSB1Y2RFeHBlcmltZW50YWwgc2VjdGlvbiBmb3IgdGhlIGlwZndhY2MgbWliIHRpbGwKICAgICAgIGl0IHN0YWJpbGl6ZXMuCiAgIAoxOTk4LTA2LTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIC0gKGtlcm5lbC5jKTogZG9uJ3QgcHJpbnQga2xyZWFkIGVycm9ycyB1bmxlc3MgaW4gZGVidWdnaW5nIG1vZGUuCiAgIAoxOTk4LTA2LTEyIDEzOjQzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IDY0Yml0IGZpeCBtZW50aW9uZWQuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogYWRkIHNldGVudiB0byB0aGUgbGlzdC4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAod2luMzIvY29uZmlnLmgpOiBkb24ndCBoYXZlIHNldGVudi4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBmdW5jdGlvbiBuYW1lIHR5cG8uCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogdHJhcCB0eXBlcyB3ZXJlIGludCdzIG5vdCBsb25ncyAoZmFpbGVkIHVuZGVyIDY0Yml0IGFyY2gpLgogICAKMTk5OC0wNi0xMiAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogcGVyY2VudGFnZSBjaGVjayB3YXMgYmFja3dhcmRzLgogICAKMTk5OC0wNi0xMiAxMDoxMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtaW5vciB1cGRhdGUuCiAgIAoxOTk4LTA2LTEyIDEwOjEyICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHNob3cgdmFjbSBleGFtcGxlIGZvciBwdWJsaWMvcHJpdmF0ZSBmcm9tIGFueXdoZXJlLgogICAKMTk5OC0wNi0xMiAwODo1MiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgRkFROgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHVwZGF0ZSBmb3IgVkFDTSBzdHVmZi4KICAgCjE5OTgtMDYtMTAgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IC1XYWxsIGNsZWFudXBzLgogICAKMTk5OC0wNi0xMCAxNTozMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUuCiAgIAoxOTk4LTA2LTEwIDE1OjMwICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IGFkZGVkIERhdmUncyBsaXN0LgogICAKMTk5OC0wNi0xMCAxNDoxNSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUyICkKICAgCjE5OTgtMDYtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wZC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtICBzdGFydHMgdG8gc2VwYXJhdGUgb3V0IHRoZSBoaXN0b3JpYyBTTk1QdjIgc3R1ZmYuCiAgICAgLSAgZG9lcyBhIGJpdCBvZiAnY29kZSB0aWR5aW5nJy4KICAgICAtICBzdGFydHMgdG8gbW92ZSB0b3dhcmRzIHBvcnQtc3BlY2lmaWMgaGFuZGxlcnMuCiAgIAoxOTk4LTA2LTEwIDA3OjExICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogaGF2ZV9zZXRlbnYuCiAgIAoxOTk4LTA2LTA4IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogdW5kaWQgcmVkbyBvZiBjb21tZW50IG9mIGdldHRpbWVvZmRheSgpLgogICAKMTk5OC0wNi0wOCAxNDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmM6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2gKICAgIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIGFzeW5jIHN0dWZmIGFkZGVkLgogICAgIC0gZ2V0X3RjIGFkZGVkLgogICAgIC0gYmV0dGVyIGNvbW1lbnRzIGluIHNvbWUgcGxhY2VzLgogICAKMTk5OC0wNi0wOCAxNDoxNiAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogdzMyIHVwZGF0ZS4KICAgCjE5OTgtMDYtMDggMTQ6MTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSByZW1vdmUgbW9yZSBjb25maWcgY3JlYXRlZCBoZWFkZXJzIG9uIG1ha2UgY29uZmlnY2xlYW4uCiAgIAoxOTk4LTA2LTA4IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgcmZjICMgZm9yIHZhY20gcmVmZXJlbmNlLgogICAKMTk5OC0wNi0wOCAxMzo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgRXVnZW5lJ3MgbmFtZS4KICAgCjE5OTgtMDYtMDggMTI6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBjcmVhdGUgYSAuYyAtPiAubyBydWxlIHRvIG1ha2Ugc3VyZSBhbmQgcGxhY2UgdGhlCiAgICAgb2JqZWN0IGZpbGVzIGluIHRoZSBhcHByb3ByaWF0ZSBzdWJkaXJlY3Rvcmllcy4KICAgCjE5OTgtMDYtMDggMTA6NTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVybCB0eXBlIHNwbGl0dGluZy4KICAgCjE5OTgtMDYtMDUgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOgogICAgIC0gY2hhbmdlIHtkZSx9aW5pdCBmdW5jdGlvbnMgdG8gX2R5bmFtaWNfe2RlLH1pbml0X01PRFVMRS4KICAgICAtIHVzZSBTTk1QTElCUEFUSCBpbnN0ZWFkIG9mIGhhcmQgY29kZWQgL3Vzci9sb2NhbC9saWIuCiAgIAoxOTk4LTA2LTA1IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgcGFyc2UuaCwgc3lzdGVtLmMKLCBzeXN0ZW0uaDoKCiAgIC0gKGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBNSUJfQUNDRVNTIGRlZmluZSBjaGFuZ2VzLgogICAgIC0gc2V0ZW52IGltcGxlbWVudGF0aW9uLgogICAgIC0gaWZkZWYgd3JhcHBlcnMgZm9yIE9QQVFVRV9TUEVDSUFMX1RZUEVTLgogICAKMTk5OC0wNi0wNSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IGZvciBudWxsIHBvaW50ZXIuCiAgIAoxOTk4LTA2LTA1IDEwOjUyICBoYXJkYWtlcgoKICAgKiBtYWtldGFyZ2V0OgoKICAgLSAobWFrZXRhcmdldCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzdXBwb3J0IGZvciBsYXJnZXIgdHJlZSBkZXB0aHMuCiAgIAoxOTk4LTA2LTA1IDEwOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3QgZm9yIHNldGVudi4KICAgCjE5OTgtMDYtMDMgMTQ6MjYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMSApCiAgIAoxOTk4LTA2LTAzIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVhZF9jb25maWcubyBpcyBtaWJtb2R1bGUgaGVhZGVyIGRlcGVuZGFudCB0b28uCiAgIAoxOTk4LTA2LTAzIDE0OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbidzKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA2LTAzIDE0OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhcHBzL3NubXBzZXQuYywKICAgc25tcGxpYi9hc24xLmgsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChocl9kaXNrLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgc25tcHNldC5jLCBhc24xLmgsCiAgICAgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgIC0gLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA2LTAzIDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IG5ldyAtLXdpdGgtY2MgYW5kIC0td2l0aC1jZmxhZ3MgYXJndW1lbnRzLgogICAKMTk5OC0wNi0wMyAxMzo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBmcmVlYnNkMi5oKToKICAgICAtIG1vdmUgY29uZmlndXJhYmxlIGRlZmluZXMgdG8gY29uZmlndXJlIHJhdGhlciB0aGFuIGluIGZyZWVic2QyLmguCiAgIAoxOTk4LTA2LTAzIDEzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXB0cmFwZC5jKToKICAgICAtIGNoZWNrIGZvciBnZXRkdGFibGVzaXplIGFuZCB1c2UgYSBnZW5lcmljIGlmIG5vdCBhdmFpbGFibGUuCiAgIAoxOTk4LTA2LTAzIDEzOjM5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogTmV3IGZsYWdzOgogICAgIC0gLS13aXRoLWNjPUNDCiAgICAgLSAtLXdpdGgtY2ZsYWdzPUNGTEFHUwogICAKMTk5OC0wNi0wMyAxMjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgLSBmaXggcGR1LT52ZXJzaW9ucyB0byBiZSBhbGwgaW50cy4KICAgCjE5OTgtMDYtMDMgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IG1pc3NlZCBhIG5lZWRlZCBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBpZmRlZi4KICAgCjE5OTgtMDYtMDMgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW5jbHVkZSBtaWJJSS9zbm1wX21pYi5oLgogICAKMTk5OC0wNi0wMyAxMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUsIGV4YW1wbGUuYywgZXhhbXBsZS5oLAogICB3b21iYXQuYywgd29tYmF0LmgsIGV4YW1wbGVzL2V4YW1wbGUuYywKICAgZXhhbXBsZXMvZXhhbXBsZS5oLCBleGFtcGxlcy93b21iYXQuYywKICAgZXhhbXBsZXMvd29tYmF0Lmg6CgogICAtIChSRUFETUUsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgsIGV4YW1wbGUuYywKICAgICBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6CiAgICAgLSBtb3ZlZCB3b21iYXQgYW5kIGV4YW1wbGUgdG8gZXhhbXBsZXMvIGRpcmVjdG9yeS4KICAgCjE5OTgtMDYtMDMgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsIG1pc2MvZGxtb2QuYwosIG1pc2MvZGxtb2QuaDoKCiAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oKTogUGF0Y2ggZnJvbSBFdWdlbmUgUG9sb3ZuaWtvdjoKICAgICAtIGltcGxlbWVudCBhIGR5bmFtaWMgbG9hZGluZyBtb2R1bGUgZm9yIGxvYWRpbmcgc2hhcmVkIG9iamVjdCBtaWIgbW9kdWxlcy4KICAgCjE5OTgtMDYtMDMgMTA6NTggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG1lbnRpb24gQ3Jpc3RpYW4gRXN0YW4gaW4gdGhlIGNvZGVycyBsaXN0LgogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBtZW50aW9uIGlwZndhY2MKICAgCjE5OTgtMDYtMDMgMTA6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuYywgaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbW92ZWQgaXBmd2FjYyB0byB1Y2RhdmlzLjEzIGFuZCByZW1vdmVkIF5NcyBhbmQgc29tZSBibGFuayBsaW5lcy4KICAgCjE5OTgtMDYtMDMgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogY29uZmlnX2FkZF9taWIoSVBGV0FDQy1NSUIpLgogICAKMTk5OC0wNi0wMyAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuYywgaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gaXAgZmlyZXdhbGwgYWNjb3VudGluZyBpbmZvcm1hdGlvbiBtaWIgaW1wbGVtZW50YXRpb24uCiAgIAoxOTk4LTA2LTAzIDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsCiAgIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaAosIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgc211eC9zbXV4LmMsCiAgIHNtdXgvc211eC5oLCBzbXV4L3NubXBfYmdwLmMsIHNtdXgvc25tcF9iZ3AuaCwKICAgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX29zcGYuaCwgc211eC9zbm1wX3JpcDIuYwosIHNtdXgvc25tcF9yaXAyLmg6CgogICAtIChzbXV4LmMsIHNtdXguaCwgc211eF9nYXRlZC5oLCBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywKICAgICBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgICBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6CiAgICAgLSBtb3ZlZCBzbXV4IHN0dWZmIGludG8gYSBzbXV4IHN1Yi1kaXJlY3RvcnkuCiAgIAoxOTk4LTA2LTAyIDE0OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfbmV0d29yay5jLCBocl9vdGhlci5jLAogICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGhyX3V0aWxzLmMsIGF0LmMsIGludGVyZmFjZXMuYywKICAgICB2YXJfcm91dGUuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywKICAgICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBmcmVlYnNkMi5oLCBocHV4LmgsIGxpbnV4LmgsIG5ldGJzZC5oLAogICAgIHNvbGFyaXMuaCwgc3lzdi5oLCBhc24xLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2F1dGguYywKICAgICBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgIC0gbWFrZSBob3N0IHJlc291cmNlcyB3b3JrIHVuZGVyIE5ldEJTRCwgRnJlZUJTRCwgU29sYXJpcyBhbmQgTGludXguCiAgICAgICAtIFN1bk9TNCBhbG1vc3Qgd29ya3MuCiAgICAgLSBBZGQgLXMvLVMgdG8gY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHByaW50aW5nIG9mIHNob3J0ZXIgb2lkcy4KICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KICAgCjE5OTgtMDUtMzEgMTc6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtYWtlIGl0IHBvc3NpYmxlIG5vdCB0byB1c2Ugb3BhcXVlIHNwZWNpYWwgdHlwZXMgd2l0aCBuZXcgY21kIGxpbmUgZmxhZy4KICAgCjE5OTgtMDUtMzEgMTc6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSAoc25tcHNldC5jKTogZW5hYmxlIHNldHRpbmcgb2Ygb3BhcXVlIGZsb2F0cywgZG91YmxlcywgaW50NjRzLCB1aW50NjRzLgogICAKMTk5OC0wNS0zMSAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oCiwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaAosIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgpOgogICAgIC0gaW1wbGVtZW50IHNwZWNpYWwgZGF0YSB0eXBlcyB2aWEgb3BhcXVlczogZmxvYXQsIGRvdWJsZSwgaW50NjQsIHVpbnQ2NHMuCiAgIAoxOTk4LTA1LTI5IDE2OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiBjaGFuZ2UgcGR1IHZlcnNpb24gZnJvbSBsb25nIHRvIGludC4KICAgCjE5OTgtMDUtMjkgMTY6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2hwdXguaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuYywgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaAosIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMKLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCiwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsIGFnZW50L21pYmdyb3VwL21pYklJLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS5oLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYwosIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmgsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmMsIGFnZW50L21pYmdyb3VwL3N5c09SVGFibGUuaAosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaAosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC90Y3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLAogICBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmgKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMKLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jLCBhZ2VudC9taWJncm91cC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaAosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gbW92ZWQgbW9zdCBtaWJncm91cCBwaWVjZXMgaW50byByZWxldmVudCBzdWItZGlyZWN0b3JpZXMuCiAgICAgICAtIGNoYW5nZWQgYWxsIGhlYWRlciBmaWxlIGFuZCAjaWZkZWYgVVNJTkdfKiBsaW5lcyB0byByZWZsZWN0IHRoaXMuCiAgIAoxOTk4LTA1LTI5IDE1OjIxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IG1pYiBpbmZvcm1hdGlvbiBvbiB0aGUgY21kIGxpbmUuCiAgIAoxOTk4LTA1LTI5IDE1OjIwICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHdpblNOTVAgbWVudGlvbi4KICAgCjE5OTgtMDUtMjkgMTE6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIC0gQWRkIGEgZGVwZW5kYW5jeSBsaW5lIGZvciBzbm1wX3ZhcnMubyBmb3IgYWxsIHRoZSBtb2R1bGUgaW5jbHVkZXMuCiAgIAoxOTk4LTA1LTI5IDExOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBtYWtlIG9mIGNvbmZpZ3VyZS4KICAgCjE5OTgtMDUtMjkgMTE6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHBhdGNoIGZyb20gTmllbHM6IGluY2x1ZGUgc3lzL3NvY2tldCBpbiBpZl9tdHUgdGVzdC4KICAgCjE5OTgtMDUtMjkgMTA6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gZml4IGNvbW11bml0eSBuYW1lIGxlbmd0aCBwcm9ibGVtcyBhbmQgaW5jcmVhc2Ugc2l6ZS4KICAgCjE5OTgtMDUtMjkgMTA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmM6CgogICAtIChhdC5jKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDogZml4IGZvciBpcml4LgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGZvciBuZXRic2QgPCAxLjMuCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGNoYW5nZSB2YWNtIG5ld3Mgd29yZGluZy4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSB0byBjaGFuZ2UgYSBmZXcgdGhpbmdzLgogICAKMTk5OC0wNS0yMCAwODozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNCApCiAgIAoxOTk4LTA1LTIwIDA4OjMwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUuCiAgIAoxOTk4LTA1LTIwIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA1LTIwIDA4OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGNvbmZpZ19wZXJyb3IoKSAtPiBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyB0b2tlbnMuCiAgIAoxOTk4LTA1LTIwIDA3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiB2ZXJzaW9uIHNob3VsZCBiZSBhIGxvbmcuCiAgIAoxOTk4LTA1LTIwIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBtYWtlIGNoZWNtaWIoKSB1c2Ugb2lkIG5vdCBpbnQgZm9yIG5ld25hbWUuCiAgIAoxOTk4LTA1LTIwIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTgtMDUtMjAgMDc6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGV4dGVuZCByYW5kb20gbG9va3VwcyBmdXJ0aGVyLgogICAKMTk5OC0wNS0xOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IGZpeCBzd2FwaW5mbyBvbiBocHV4MTAgc3lzdGVtcy4gKC9ldGMvc3dhcGluZm8gLXIpLgogICAKMTk5OC0wNS0xOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYzoKCiAgIC0gKGF0LmMpOiBzZXQgdG8gZG8gbm90aGluZyB3aGVuIENBTl9VU0VfU1lTQ1RMLgogICAKMTk5OC0wNS0xOCAxODoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgLSAoaW50NjQuYyk6CiAgICAgLSBpbmNsdWRlIGhlYWRlciBjaGFuZ2VzIGZvciB3aW4zMi4KICAgCjE5OTgtMDUtMTggMTU6MzkgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOSApCiAgIAoxOTk4LTA1LTE4IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogcHJvdGVjdCB1c2luZyB0aGUgZGF0ZSBwb2ludGVyIGFnYWluc3QgTlVMTCBzZXR0aW5ncy4KICAgCjE5OTgtMDUtMTggMTI6NTIgIGhhcmRha2VyCgogICAqIG1pYnMvLmluZGV4OgoKICAgLSAobWlicy8uaW5kZXgpOiByZW1vdmVkLgogICAKMTk5OC0wNS0xOCAxMToxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGZpeCBydGVudHJ5IHN0cnVjdHVyZSB0ZXN0IG9uIHJlLWNvbmZpZ3VyZXMuCiAgIAoxOTk4LTA1LTE1IDExOjE4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5vcHQsIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LnBsZwosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LnBsZwosIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKGNvbmZpZy5oLCB3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwuZHNwLCBsaWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQucGxnLAogICAgIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5wbGcsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLnBsZywKICAgICBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSB3aW4zMiBmaWxlIHVwZGF0ZXMuCiAgIAoxOTk4LTA1LTE1IDExOjE3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNubXBsaWIvbWliLmM6CgogICAtIChGQVEsIG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGhhbmRsZSByYW5kb20gbG9va3VwcyB3aXRoIG11bHRpcGxlIG9pZCBzZWdtZW50cy4KICAgCjE5OTgtMDUtMTUgMTA6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBwcm92aWRlIGFiaWxpdHkgdG8gZG8gcmFuZG9tIHNlYXJjaGVzIHNwZWNpZnlpbmcgYSBtb2R1bGUgbmFtZSB0byBsb29rIGluLgogICAKMTk5OC0wNS0xNSAxMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgc25tcGxpYi9pbnQ2NC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICBocl9zeXN0ZW0uaCwgaHJfdXRpbHMuYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYW5zbGF0ZS4xLAogICAgIGJzZC5oLCBzb2xhcmlzLmgsIHN1bm9zLmgsIGludDY0LmgsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB0cmFuc2xhdGUgc3VwcG9ydHMgLVIgYW5kIC1yLgogICAgIC0gbWlzY2VsbGFuZW91cyB3YXJuaW5nIGZpeGVzLgogICAgIC0gb2lkIHNlYXJjaGVyIGFsd2F5cyBpZ25vcmVzIGNhc2UuCiAgICAgLSBmaXhlZCBocl9zeXN0ZW0gdG8gY29tcGlsZSBvbiBTdW5PUzQuCiAgIAoxOTk4LTA1LTE1IDEwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogc2luZ2xlIHF1b3RlIG1pc3NpbmcgbW9kdWxlIG5hbWVzLgogICAKMTk5OC0wNS0xNCAwODoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IHR5cG9zLgogICAKMTk5OC0wNS0xNCAwODoyMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtaWIyYyBtZW50aW9uZWQuCiAgIAoxOTk4LTA1LTE0IDA4OjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBuZXcgRkFRIGZyb20gRGF2ZSBTaGllbGRzLgogICAKMTk5OC0wNS0xNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IG1vdmUgc3lzL3BhcmFtLmggdXAgYWJvdmUgZnMuaCBoZWFkZXJzLgogICAKMTk5OC0wNS0xMyAyMToyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogc3ByaW50X2J5X3R5cGUoKSBkaWRuJ3QgaGFuZGxlIGNvdW50ZXI2NCdzLgogICAKMTk5OC0wNS0xMyAyMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggZm9yIGJzZGkKICAgCjE5OTgtMDUtMTMgMjE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogaW5jbHVkZSBuZXQvcm91dGUuaCBhbmQgc3lzbG9nLmggZm9yIGJzZGkuCiAgIAoxOTk4LTA1LTEzIDIxOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgcmV0dXJuIGEgY291bnRlcjY0IHRvIGEgc25tcHYxIHJlcXVlc3QuCiAgIAoxOTk4LTA1LTEzIDIxOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYywgaW50NjQuaCwgbWliLmM6CgogICAtIChpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IG1ha2UgaW50NjQuYyB1c2UgY291bnRlcjY0J3Mgc3RydWN0dXJlLgogICAKMTk5OC0wNS0xMiAxNToxNSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU4ICkKICAgCjE5OTgtMDUtMTIgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYwosIGxvYWRhdmUuYywgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jCiwgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYzoKCiAgIC0gKGRpc2suYywgZXhhbXBsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHBhc3MuYywKICAgICBwcm9jLmMsIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmMpOgogICAgIC0gaW5jbHVkZSB0aW1lLmggcHJvcGVybHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHV0aWxfZnVuY3MuaCB0byBkbyBpdC4KICAgCjE5OTgtMDUtMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzeXN0ZW0uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHN5c3RlbS5jKToKICAgICAtIG1vdmUgZGVidWdnaW5nIGNvZGUgZnJvbSBzeXN0ZW0uYyB0byBzbm1wX2FwaS5jLCB3aGVyZSBpdCBzaG91bGQgYmUuCiAgIAoxOTk4LTA1LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92bXN0YXQuYzoKCiAgIC0gKHZtc3RhdC5jKTogY29ycmVjdCBzdHJpbmdzIGluY2x1c2lvbi4KICAgCjE5OTgtMDUtMTIgMTE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IE5VTEwgLT4gMC4KICAgCjE5OTgtMDUtMTIgMTE6MTEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtdW5nZSBycG0gbGliIGNoZWNrIHRvIGxpbmsgd2l0aCAtbGRiIGFzIHdlbGwuCiAgIAoxOTk4LTA1LTEyIDExOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1vcmUgdXBkYXRlcy4KICAgCjE5OTgtMDUtMTIgMTA6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBpbmNsdWRlIGEgZ2V0ZHRhYmxlc2l6ZSgpIGZ1bmN0aW9uIGZvciBocHV4OS4KICAgCjE5OTgtMDUtMTIgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gbW9yZSBzd2luc3QgZml4ZXMgZm9yIHJwbSBtb2R1bGVzLgogICAKMTk5OC0wNS0xMSAxMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLAogICBzbm1wX2FwaS5oLCB2YWNtLmMsIHZhY20uaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20KICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgLSBmaXggdGhlIHBhcnNlciB0byByZXBvcnQgdW5saW5rZWQgT0lEcy4gVGhpcyBkaWQgcmV2ZWFsIGFuIGVycm9yIGluIGEKICAgICAgIENpc2NvIE1JQiAoQ0lTQ08tSVBNQ0FTVC1NSUIpIHRoYXQgSSBoYWQgYmVlbiB1c2luZyAoaXQgbmVlZHMgYW4KICAgICAgIElNUE9SVFMgY2lzY29FeHBlcmltZW50IEZST00gQ0lTQ08tU01JKQogICAgICAgQWN0dWFsbHkgdGhlIHBhcnNlciB3b3JrZWQgb2ssIGV4Y2VwdCBmb3IgdGhlIG1pc3NpbmcgZXJyb3IgbWVzc2FnZXMuCiAgICAgLSByZXdyaXRlIG9mIHRoZSBwYXJzZXJzIGxleGljYWwgYW5hbHlzZXIsIHRvIGNvcnJlY3QgdGhlIGVycm9ycyB0aGF0CiAgICAgICBEYXZlIFBlcmtpbnMgYW5kIG90aGVycyBoYXZlIHBvaW50ZWQgb3V0IHJlY2VudGx5IChuYW1lOjo9ICwgREVTQ1JJUFRJT04iCiAgICAgICBhbmQgcHJvcGVyIGhhbmRsaW5nIG9mIC0tIHBhcnRpYWwgbGluZSBjb21tZW50cyAtLSkuIFdhdGNoIG91dCEgdGhpcyBsYXN0CiAgICAgICBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdAogICAgICAgd2Ugc2hpcCkuIE15IEZvcmUgU3lzdGVtcyBNSUJzIGhhZCBlcnJvcnMgd2l0aCB0aGlzLgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCiAgIAoxOTk4LTA1LTExIDEwOjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIENvcnJlY3Rpb25zIG9mIGRpc2sgZW50cnkgY2FwaXRpbGF6YXRpb24gcHJvYmxlbXMuCiAgIAoxOTk4LTA1LTExIDEwOjMxICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVB2Mi1UQy50eHQ6CgogICAtIChTTk1QdjItVEMudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRoaXMgbGFzdCBbcGFyc2VyXSBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUKICAgICAgIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQgd2Ugc2hpcCkuCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSAoc25tcHRyYW5zbGF0ZS4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZS4KICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfcGFydGl0aW9uLmMsIHZhY21fdmFycy5jOgoKICAgLSAoaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20KICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNvbWUgcHJvdG90eXBlcyBmb3IgdGhlIGhyXyouYyBmaWxlcyAobmVlZHMgRGF2ZSdzIHJlY2VudCBwYXRjaCkKICAgICAgIFdhcm5pbmc6IHRoZSBwcm9jIHBhcnQgc3RpbGwgZG9lcyBub3Qgd29yayB3aXRoIFNvbGFyaXMhCiAgIAoxOTk4LTA1LTExIDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLAogICBzbm1wZC5oLCB2YXJfc3RydWN0Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgc25tcGQuaCwgdmFyX3N0cnVjdC5oKTogUGF0Y2gKICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHRoZSB0cmFwc2luayBkaXJlY3RpdmVzIGluIHNubXBkCiAgIAoxOTk4LTA1LTExIDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIChpbnQ2NC5jKTogYWRkIGluY3JCeVUzMigpLgogICAKMTk5OC0wNS0xMSAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IG9wYXF1ZSdzIGNhbiBoYXZlIGEgc2l6ZSBzcGVjaWZpZXIuCiAgIAoxOTk4LTA1LTExIDA4OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKToKICAgICAtIGNvdW50ZXI2NHMuCiAgICAgLSBjb25zb2xvZGF0aW9uIG9mIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KICAgICAtIG1vcmUgZXJyb3Igc3RpbmdzIGluIGFsbCBmaWxlcyBmb3IgdW5rbm93biB2YXJpYWJsZSB0eXBlcy4KICAgCjE5OTgtMDUtMTEgMDg6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBvcHRpb25hbCBwb3J0IG51bWJlci4KICAgCjE5OTgtMDUtMTEgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGJsYW5rIGxpbmUgcmVtb3ZhbC4KICAgCjE5OTgtMDUtMDggMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IHdvcmRpbmcgY2hhbmdlLgogICAKMTk5OC0wNS0wOCAxMTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kaXNrLmMsIGhyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMsIGhyX2Rpc2suYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzLgogICAKMTk5OC0wNS0wOCAxMDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBwa2dsb2NzLmguCiAgIAoxOTk4LTA1LTA3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRlYnVnIGluZm8gZm9yIGNvbmZpZyBmaWxlcyByZWFkLgogICAKMTk5OC0wNS0wNyAwOTowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHN5cy9zdGF0IGluY2x1c2lvbiBpbiBmcyBjaGVja3MuCiAgIAoxOTk4LTA1LTA3IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IGNvcnJlY3Rpb24gZm9yIGRhdGVzLgogICAKMTk5OC0wNS0wNiAyMjoyOCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtICh3aW4zMi9jb25maWcuaCk6IHVwZGF0ZSBmcm9tIEpvZSBNYXJ6b3QuCiAgIAoxOTk4LTA1LTA2IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogY3JlYXRlZCBhIG1pYjJjIHRlbXBsYXRlIGNyZWF0b3IuCiAgIAoxOTk4LTA1LTA2IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWFrZSBib2d1cyBpbmRleCdzIGJlIDAuCiAgIAoxOTk4LTA1LTA2IDIxOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgIC0gbmV3IGZ1bmN0aW9uOiBjYWxjdWxhdGVfdGltZV9kaWZmKHQxLCB0MikuCiAgIAoxOTk4LTA1LTA2IDIxOjA2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pbm9yIHdvcmRpbmcgY2hhbmdlLgogICAKMTk5OC0wNS0wNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGVycm9ybWliLmMsIGV4YW1wbGUuYwosIGV4YW1wbGUuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMKLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgdmVyc2lvbmluZm8uYwosIHZtc3RhdC5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgICAgbWVtb3J5LmMsIHByb2MuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLAogICAgIHV0aWxfZnVuY3MuaCwgdmVyc2lvbmluZm8uYywgdm1zdGF0LmMpOgogICAgIC0gcmVtb3ZlIHRoZSBuZXduYW1lIHJlcXVpcmVtZW50IGZyb20gY2hlY2ttaWIoKS4KICAgICAtIGNyZWF0ZSBoZWFkZXJfZ2VuZXJpYygpIGZvciBzaW1wbGUgc2NhbGFyIHRlc3RzLgogICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljKCkgaW4gYWxsIHVjZCBzcGVjaWZpYyBzY2FsYXIgbWlicywgYW5kIGV4YW1wbGUuW2NoXS4KICAgCjE5OTgtMDUtMDYgMTQ6MDYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gYWRkZWQgaW50ZXJuYWwgdGFibGUgc2VjdGlvbi4KICAgICAtIG1pYiBudW1iZXIgY29ycmVjdGlvbnMgdG8gbWF0Y2ggdGhlIHNvdXJjZS4KICAgCjE5OTgtMDUtMDYgMTE6MjIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRrbWliLgogICAKMTk5OC0wNC0yOSAxMTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6CiAgICAgLSBkaXNwbGF5IHVubG9hZGVkIG1vZHVsZSBlcnJvci4KICAgICAtIGRvbid0IHRyeSB0byBsb2FkIGEgZmlsZSBvbiBhIGNhbmNlbC4KICAgCjE5OTgtMDQtMjkgMTE6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwdXQgdm1zdGF0IGJhY2sgaW4gYW5kIHJlbmFtZWQgdG8gc3lzdGVtU3RhdHMuCiAgIAoxOTk4LTA0LTI5IDExOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZtc3RhdC5jLCB2bXN0YXQuaDoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXQuaCk6IG1vdmVzLCBjaGFuZ2VzLCByZW1vdmFscywgYW5kIGZpeGVzLgogICAKMTk5OC0wNC0yOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMKLCB3b21iYXQuaDoKCiAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOiBtb3JlIGNsZWFuIHVwcy4KICAgCjE5OTgtMDQtMjkgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jCiwgd29tYmF0LmM6CgogICAtIChleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAtIG5saXN0IGNsZWFudXBzLgogICAKMTk5OC0wNC0yOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGRvbid0IHVzZSBUQ1BTVEFUX1NZTUJPTCB1bmxlc3MgZGVmaW5lZC4KICAgCjE5OTgtMDQtMjkgMDg6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggLUggaGVhZGVyIHByaW50aW5nLgogICAKMTk5OC0wNC0yNyAxNjo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGJ1ZyBmaXhlcy4KICAgCjE5OTgtMDQtMjcgMTY6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBOZXcgbWliIG1lbnUgY29tbWFuZDogbG9hZCBhIG1pYiBtb2R1bGUgYnkgSUQgbmFtZS4KICAgCjE5OTgtMDQtMjcgMTY6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBidWcgZml4ZXMgYW5kIG5ldyBtaWIgbWVudSB0byBsb2FkIG5ldyBtaWJzLgogICAKMTk5OC0wNC0yNyAxMzozMSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU3ICkKICAgCjE5OTgtMDQtMjcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYwosIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jCiwgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB3YWxrLmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB3YWxrLmMpOgogICAgIC0gUHV0IHRoZSB3b3JkICJUaW1lb3V0OiAiIGluIGZyb250IG9mIHRoZSAiTm8gUmVzcG9uc2UiIGVycm9ycy4KICAgCjE5OTgtMDQtMjcgMTE6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkZWZpbmUgU0hMSUJfTERDT05GSUdfQ01EIGFzICI6IiBmb3IKICAgICBzdGF0aWMgbGlicmFyeSBjYXNlcy4KICAgCjE5OTgtMDQtMjcgMTA6NTkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZWQgdW5uZWVkZWQgdmFyaWFibGUuCiAgIAoxOTk4LTA0LTI0IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jKTogd2F0Y2ggb3V0IGZvciBzaW5nbGUgcm91dGUgbG9vcHMuCiAgIAoxOTk4LTA0LTI0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgpOiBuX3ZhbHVlIGlzIGEgbG9uZzoKICAgICAtIHJldHVybiB0aGUgdmFsdWUgZnJvbSBhdXRvX25saXN0X3ZhbHVlIGFzIGFuIHVuc2lnbmVkIGxvbmcuCiAgIAoxOTk4LTA0LTI0IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AuYzoKCiAgIC0gKHRjcC5jKTogaW5jbHVkZSBuZXRpbmV0L3RjcGlwLmggZm9yIERVNC4wLgogICAKMTk5OC0wNC0yNCAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogY2FsY3VsYXRlIHZmcyBibG9jayBzaXplIGlmIHBvc3NpYmxlIGFuZCBzaXplID4gMjU1IGJ5dGVzLgogICAKMTk5OC0wNC0yNCAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmM6CgogICAtIChocl9wYXJ0aXRpb24uYyk6IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBqdXN0IG9wZW5lZC4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZGVmaW5lIE1BWFBBVEhMRU4uCiAgIAoxOTk4LTA0LTI0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgc3RhdHZmcy5oIGZvciBmX2JhdmFpbC4KICAgCjE5OTgtMDQtMjQgMTQ6MDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3JlIGNsZWFuaW5nIGFuZCByZW5hbWluZy4KICAgCjE5OTgtMDQtMjQgMTA6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0aGUgdGV4dHVhbCBkZXNjcmlwdGlvbnMgd2VyZSB1cGRhdGVkIHNvbWUuCiAgIAoxOTk4LTA0LTI0IDEwOjAyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHJlbmFtZWQgbGFiZWxzIHRvIGJlIHVuaXF1ZSBmcm9tIHRoZSBvbGQgZGVmaW5pdGlvbnMuCiAgICAgLSByZW51bWJlcmVkIGFnYWluLgogICAgIC0gY29tbWVudGVkIG9uIHRoZSBkZXNnaW4gb2YgdGhlIG1pYiBhdCB0aGUgdG9wLgogICAgIC0gQ2hhbmdlZCBiYWNrIHRvIFNNSXYxLgogICAgIC0gcmVtb3ZlZCBsb2NrZCBzZWN0aW9uLgogICAgIC0gcmVtb3ZlZCB2bXN0YXQgc2VjdGlvbiB0aWxsIGl0IGdldHMgaW1wbGVtZW50ZWQuCiAgICAgLSByZW1vdmVkIHNlcXVlbmNlcyBvZiBzY2FsZXJzLgogICAKMTk5OC0wNC0yNCAxMDowMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1pYiBvaWQgbG9jYXRpb24gdXBkYXRlcyBmb3IgdWNkLXNubXAgbWliLgogICAKMTk5OC0wNC0yMiAwODozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwYXJzZSBCSVRTIGtleXdvcmRzLgogICAKMTk5OC0wNC0yMiAwNzo0OSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgd29yZGluZywgY2xlYW5lZCB1cCBhIGJpdC4KICAgCjE5OTgtMDQtMjAgMTY6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbmVlZGVkIHBvaW50ZXIgY29waWVzLgogICAKMTk5OC0wNC0yMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jOgoKICAgLSAodGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSAjaWZkZWYgY2hlY2tzIG9uIHN5bWJvbHMgYW5kIGhlYWRlciBtb3ZlbWVudC4KICAgCjE5OTgtMDQtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdHlwZWNhc3QgYSBwb2ludGVyLgogICAKMTk5OC0wNC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGdldGhvc3RieWFkZHIgbW92ZXMgdXAuCiAgICAgLSBpbmNsdWRlIHN5cy93YWl0LmguCiAgICAgLSBzeXNsb2cgJWQgLT4gJWxkIGZvciBsb25nIHNwZWNpZmljX3R5cGUuCiAgIAoxOTk4LTA0LTIwIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIG90aGVyIGNsZWFudXBzLgogICAKMTk5OC0wNC0yMCAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBzeW1ib2wgZGVmaW5lcyBhbmQgY2xlYW51cC4KICAgCjE5OTgtMDQtMjAgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBoZWFkZXIgbW92ZXMuCiAgIAoxOTk4LTA0LTIwIDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBhcHByb3ByaWF0ZSB1c2Ugb2Ygc3RyZHVwIGR1cmluZyBzdGFydHVwIGFuZCBiZXR0ZXIgZmxhZyBjaGVja2luZy4KICAgCjE5OTgtMDQtMjAgMTU6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jOgoKICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBzb21lIGhvc3QgcmVzb3VyY2VzIGZvciBzb2xhcmlzLgogICAKMTk5OC0wNC0yMCAxNTo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHN5cy9ka2lvLmgKICAgCjE5OTgtMDQtMjAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmM6CgogICAtIChob3N0X3Jlcy5oLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAgLSBjb25zb2xpZGF0ZSB0aGUgc3lzdGVtLXNwZWNpZmljIHN0dWZmIGEgYml0IChzaG91bGQgbWFrZSBpdCBlYXNpZXIKICAgICAgICAgdG8gZm9sbG93KQogICAgICAgLSBSZS1zdHJ1Y3R1cmVzIHRoZSBEaXNrIHNlYXJjaGluZywgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBzZXQgdXAKICAgICAgICAgdmlhIHRoZSBjb25maWcgZmlsZS4gKHdoaWNoIEkgc3RpbGwgbmVlZCB0byBkbykKICAgICAgIC0gU3BlZWQgdXAgZGlzayBzZWFyY2hpbmcgKGJ5IGNhY2hpbmcgaW52YWxpZCByZXN1bHRzIC0gYSAqbWFqb3IqIHdpbiEpCiAgICAgICAtIEhhbmRsZSBwYXJ0aXRpb25zIHNlbnNpYmx5IChhcnRoZXIgdGhhbiBvbmUgcGVyIGRpc2spCiAgICAgICAtIEltcHJvdmUgU29sYXJpcyBzdXBwb3J0IGZvciB0aGUgRGV2aWNlIGdyb3VwCiAgIAoxOTk4LTA0LTIwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGNoYW5nZSBvaWQgZnJvbSB0ZXh0dWFsIHRvIG51bWVyaWMgdG8gYWxsb3cgbm93IG1pYnMgdG8KICAgICBiZSBsb2FkZWQuCiAgIAoxOTk4LTA0LTAxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBhbHdheXMgc2VuZCBlbnRlcnByaXNlIGFuZCB0cmFwb2lkIHRvIHNjcmlwdHMuCiAgIAoxOTk4LTA0LTAxIDE0OjQzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTYgKQogICAKMTk5OC0wNC0wMSAxNDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIHVucmVnZXN0ZXJpbmcgb2YgbWlicyB3b3JrLgogICAgIC0gKGluIG1vc3QgY2FzZXM6LT8pCiAgIAoxOTk4LTA0LTAxIDE0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNC0wMSAxNDoxMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZW1vdmVkIGEgZmV3IHRoaW5ncyEKICAgCjE5OTgtMDQtMDEgMTM6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IG1vdmVkIHRoZSB2aWV3IGV4YW1wbGUgc2VjdGlvbiBhYm92ZSB0aGUgYWNjZXNzIHNlY3Rpb24uCiAgIAoxOTk4LTA0LTAxIDEzOjUzICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHZhY20gZXhhbXBsZSBjb25maWd1cmF0aW9uLgogICAKMTk5OC0wNC0wMSAxMzo0NyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IG1vcmUgMy40IHVwZGF0ZXMuCiAgIAoxOTk4LTA0LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBORVdTLCBQT1JUSU5HOgoKICAgLSAoTkVXUywgUE9SVElORyk6IHVwZGF0ZXMgZm9yIDMuNC4KICAgCjE5OTgtMDQtMDEgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6CiAgICAgLSByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBvZiB0cmVlIHRyYXZlcnNhbC4KICAgCjE5OTgtMDQtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBlbnRlcnByaXNlX2xlbmd0aCBpcyBzaXplb2Yob2lkKSBkZXBlbmRlbnQuCiAgIAoxOTk4LTAzLTI3IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9yZWdpc3RyeS5jOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJlZ2lzdHJ5LmMpOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIC1XYWxsIGZpeGVzLgogICAKMTk5OC0wMy0yNyAxNjo0MiAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBkb2N1bWVudCBsaWJ3cmFwLgogICAKMTk5OC0wMy0yNyAxNjoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKToKICAgICAtIGNvcnJlY3RseSAjaWZkZWYgb3V0IHRoZSB0Y3B3cmFwcGVycyBwYXRjaC4KICAgCjE5OTgtMDMtMjcgMTY6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IEludGVyZmFjZXNfU2Nhbl9OZXh0IG5lZWRlZCBhIDR0aCAoTlVMTCkgYXJndW1lbnQuCiAgIAoxOTk4LTAzLTI3IDE2OjEwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKTogUGF0Y2ggZnJvbQogICAgIEFydGh1ciBIeXVuOgogICAgIC0gdGNwd3JhcHBlcnMgc3VwcG9ydC4KICAgCjE5OTgtMDMtMjcgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jOgoKICAgLSAoaHJfZGV2aWNlLmMpOiBjaGVjayBkZXZpY2UgaW5kZXggYWdhaW5zdCBtYXhpbXVtIChzZWdmYXVsdCBvbiBIUFVYKS4KICAgCjE5OTgtMDMtMjcgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IHVzZSBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyBkaXNrcy4KICAgCjE5OTgtMDMtMjcgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gY3JlYXRlIGNvbmZpZ19wd2FybigpIHRoYXQgZG9lc24ndCBpbmNyZWFzZSB0aGUgZXJyb3IgY291bnQgdG8KICAgICAgIHByZXZlbnQgZXhpdGluZy4gIFVzZWQgZm9yIGRpc2tzLCBzaW5jZSBzb21lIG1pZ2h0IGJ5IHByb2Nlc3Mgb3IKICAgICAgIG5mcyBtb3VudGVkLgogICAKMTk5OC0wMy0yNyAwOToyMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIEJldGEgdmVyc2lvbiBvZiBhbiBleHRlbnNpYmxlIHRyYXAgZGVtb24uCiAgICAgICAtIC1DICdjb21tYW5kJyBvbiB0aGUgY29tbWFuZCBsaW5lIHJ1bnMgdGhlIGNvbW1hbmQgYW5kIGZlZWRzIGl0CiAgICAgICAgIHN0ZGluIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0cmFwLgogICAgICAgLSB2MSB0cmFwcyBhcmUgY29udmVydGVkIHRvIHYyIHRyYXBzIGZvciBjb25zaXN0YW5jeSBvZgogICAgICAgICBpbmZvcm1hdGlvbiBzZW50IHRvIHRoZSBzY3JpcHRzLgogICAKMTk5OC0wMy0yNiAwNzoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYywgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYwosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYwosIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9yaXAyLmMsIGFnZW50L21pYmdyb3VwL3N5c09SVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92bXN0YXQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92aWV3LmMKOgoKICAgLSAoKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG1pc2MgcG9ydGluZyBpbXByb3ZlbWVudHMgKHRoZSBic2QgZ3JvdXBzLCBzdW5vcywgLi4uKS4KICAgICAtIHN3aXRjaCBhdXRvX25saXN0cyBjYWxsaW5nIG9yZGVyIG9mIF8gdnMgbm9uIF8gbG9va3Vwcy4KICAgICAtIHJldmVyc2UgYWxsIHN0cmluZy5oL3N0cmluZ3MuaCBpbmNsdWRlIHBvc3NpYmlsaXRpZXMuCiAgIAoxOTk4LTAzLTI1IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocHV4LmM6CgogICAtIChocHV4LmMpOiBmaXggd3JpdGVfbWV0aG9kIGRlY2xhcmF0aW9uLgogICAKMTk5OC0wMy0yNSAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5jLCB2MnBhcnR5LmMsIHZhY21fdmFycy5jCjoKCiAgIC0gKHYycGFydHkuYywgbWliSUkuYywgdmFjbV92YXJzLmMpOiBkZWNsYWlyIHJlZ2lzdHJhdGlvbiB2YXJpYWJsZXMgc3RhdGljbHkuCiAgIAoxOTk4LTAzLTI1IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jCjoKCiAgIC0gKE1ha2VmaWxlLmluLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IENvZGUgZnJvbSBEYXZpZCBULiBQZXJraW5zOgogICAgIC0gaW50ZWdyYXRlZCBEYXZpZCdzIGNvZGUgdG8gcHJpbnQgY291bnRlcjY0cyBhcyBpbnRlZ2VycyByYXRoZXIgdGhhbiBoZXguCiAgIAoxOTk4LTAzLTI1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gQWRkIGFuICYgdG8gYXJwY29tLmFjX2VuYWRkciBpbiBtZW1zZXQuCiAgIAoxOTk4LTAzLTI1IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBsaW51eC5oKTogbmV3IGRlZmluZTogRE9OVF9VU0VfTkxJU1QuCiAgIAoxOTk4LTAzLTI1IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wZC5jLCBzbm1wX2FwaS5jKTogU3BlbGxpbmcgZXJyb3JzIGZyb20gdGhlIENNVSBjb2RlIGZpeGVkLgogICAKMTk5OC0wMy0yNSAxMDozOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNpbXBseSBkb24ndCBkZWZpbmUgQ0FOX1VTRV9OTElTVCBvbiBsaW51eC4KICAgCjE5OTgtMDMtMjUgMTA6MzkgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMKLCBtaWJncm91cC9yZWdpc3RyeS5jLCBtaWJncm91cC9yZWdpc3RyeS5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOgogICAgIC0gZml4IHRoZSByZWdpc3RyeSBtaWIgdG8gdXNlIHRoZSBuZXcgbW9kdWxlIHN0cnVjdHVyZS4KICAgICAtIGNyZWF0ZSBhIHdvcmtpbmcgZmluZF9zdWJ0cmVlKCkgYW5kIGZpbmRfc3VidHJlZV9uZXh0KCkuCiAgIAoxOTk4LTAzLTI1IDA5OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AuYzoKCiAgIC0gKHRjcC5jKTogaW5jbHVkZSB0Y3BpcC5oIGZvciBkaWdpdGFsIHVuaXguCiAgIAoxOTk4LTAzLTIyIDE4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHBhc3MuYywgcHJvYy5jLCB2YWNtX3ZhcnMuYzoKCiAgIC0gKHBhc3MuYywgcHJvYy5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgLSBtb3ZlIHN5cy90eXBlcy5oIHVwIGZvciB1bHRyaXguCiAgIAoxOTk4LTAzLTE4IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTUgKQogICAKMTk5OC0wMy0xOCAxMzo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIG1hbi9taWJfYXBpLjMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jLAogICAgIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWFpbi5jLCBtaWJfYXBpLjMsCiAgICAgY29uZmlnLmgpOgogICAgIC0gU05NUExJQlBBVEggLT4gU05NUFNIQVJFUEFUSAogICAgIC0gYSByZWFsIFNOTVBMSUJQQVRICiAgICAgLSBtYWtlIHRoZSBhZ2VudCByZWFkIC5jb25mIGZpbGVzIGZyb20gU05NUFNIQVJFUEFUSDpTTk1QTElCUEFUSC4KICAgCjE5OTgtMDMtMTggMTM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jCiwgcHJvYy5jLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKGV4dGVuc2libGUuYywgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgLSB3YWl0IGZvciBwaWQgYWZ0ZXIgZ2V0X2V4ZWNfb3V0cHV0KCkgd2l0aCBuZXcgd2FpdF9vbl9leGVjKCkgZnVuY3Rpb24uCiAgIAoxOTk4LTAzLTE4IDEzOjEwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHJlLW51bWJlcmluZyBvZiB0aGUgbmV3IHRhYmxlIG1vZHVsZXMuCiAgIAoxOTk4LTAzLTE4IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBvdi9SRUFETUU6CgogICAtIChSRUFETUUpOiBjaGFuZ2VkIE9WIHBhdGgncyB0byBuZXdlciByZWxlYXNlIHBhdGhzLgogICAKMTk5OC0wMy0xMSAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGRvbid0IGNob21wIG5ldyBsaW5lIG9uIHJlYWRfY29uZmlnIHV0aWxzLgogICAKMTk5OC0wMy0xMSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGRlcGVuZCB1cGRhdGUuCiAgIAoxOTk4LTAzLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBuYW1lIHVwZGF0ZS4KICAgCjE5OTgtMDMtMTEgMTU6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IGJldHRlciBkZWJ1Z2dpbmcgcHJpbnRmcwogICAKMTk5OC0wMy0xMSAxNDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMKLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgbWliZ3JvdXAvaG9zdF9yZXMuaAosIG1pYmdyb3VwL2hyX2RldmljZS5jLCBtaWJncm91cC9ocl9kZXZpY2UuaCwKICAgbWliZ3JvdXAvaHJfZGlzay5jLCBtaWJncm91cC9ocl9kaXNrLmgsCiAgIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaHJfZmlsZXN5cy5oLAogICBtaWJncm91cC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hyX25ldHdvcmsuaCwKICAgbWliZ3JvdXAvaHJfb3RoZXIuYywgbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsCiAgIG1pYmdyb3VwL2hyX3BhcnRpdGlvbi5oLCBtaWJncm91cC9ocl9wcmludC5jLAogICBtaWJncm91cC9ocl9wcmludC5oLCBtaWJncm91cC9ocl9wcm9jLmMsCiAgIG1pYmdyb3VwL2hyX3Byb2MuaCwgbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ocl9zdG9yYWdlLmgsIG1pYmdyb3VwL2hyX3N3aW5zdC5jLAogICBtaWJncm91cC9ocl9zd2luc3QuaCwgbWliZ3JvdXAvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaHJfc3dydW4uaCwgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2hyX3N5c3RlbS5oLCBtaWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL2lwLmMsIG1pYmdyb3VwL21pYklJLmMsIG1pYmdyb3VwL21pYklJLmgKLCBtaWJncm91cC9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL3YycGFydHkuYywKICAgbWliZ3JvdXAvdjJwYXJ0eS5oLCBtaWJncm91cC92YWNtX3ZhcnMuYywKICAgbWliZ3JvdXAvdmFjbV92YXJzLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgIGhvc3RfcmVzLmgsIGhyX2RldmljZS5jLCBocl9kZXZpY2UuaCwgaHJfZGlzay5jLCBocl9kaXNrLmgsCiAgICAgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgsIGhyX25ldHdvcmsuYywgaHJfbmV0d29yay5oLCBocl9vdGhlci5jLAogICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLAogICAgIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5jLCBocl9zdG9yYWdlLmgsIGhyX3N3aW5zdC5jLCBocl9zd2luc3QuaCwKICAgICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmgsIGludGVyZmFjZXMuYywKICAgICBpcC5jLCBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHYycGFydHkuYywgdjJwYXJ0eS5oLAogICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBtYXNzaXZlIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgZml4ZXMuCiAgICAgLSBmaXhlZCB0aGluZ3MgYnJva2VuIGJ5IHRoZSBmcmVlYnNkIHBhdGNoIChvbmx5IHNvbWUgSSdtIHN1cmUpLgogICAKMTk5OC0wMy0xMSAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaWNtcC5jLAogICAgIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gR2FycmV0dAogICAgIFdvbGxtYW46CiAgICAgLSBmcmVlYnNkIDMgc3lzY3RsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTgtMDMtMTEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaDoKCiAgIC0gKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmgpOiBQYXRjaCBmcm9tCiAgICAgQ3JhaWcgQmV2aW5zOgogICAgIC0gcG9ydCB0byBPcGVuQlNELgogICAKMTk5OC0wMy0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMKLCBzeXN0ZW0uaDoKCiAgIC0gKHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgIC0gZml4IHRpbWUgdmFsdWVzIGFuZCBtb3ZlIHN5c09STGFzdENoYW5nZWQgdG8gdGhlIHN5c3RlbSBncm91cC4KICAgCjE5OTgtMDMtMTEgMDk6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5oLCBocl9maWxlc3lzLmgsIG1lbW9yeS5oCiwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5oLAogICBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oOgoKICAgLSAoaHB1eC5oLCBocl9maWxlc3lzLmgsIG1lbW9yeS5oLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwKICAgICBzbm1wX3JpcDIuaCwgc3lzT1JUYWJsZS5oLCB2bXN0YXQuaCk6CiAgICAgLSBmaW5pc2ggY29udmVydGluZyBhIGZldyBvZiB0aGUgZmlsZXMgdGhhdCBOaWVscyBtaXNzZWQuCiAgIAoxOTk4LTAzLTExIDA4OjA2ICBoYXJkYWtlcgoKICAgKiBtaWJzLy5pbmRleDoKCiAgIC0gKG1pYnMvLmluZGV4KTogdXBkYXRlLi4uCiAgIAoxOTk4LTAzLTExIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5oLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwLmgsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBtYW4vTWFrZWZpbGUuaW46CgogICAtICgqLyovKi8qKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBhdXRvX25saXN0IG9uIHByZWNlZWRpbmcgXyBhcmNoaXRlY3R1cmVzLgogICAgIC0gQ2hhbmdlICphbGwqIGRlZmluZSB1c2FnZSB0byBuZXcgU05NUF8gYW5kIEFTTl8gcHJlZml4ZXMuCiAgICAgLSBsZWF2ZSBtaWIgYWNjZXNzIG9wZW4gaWYgbm8gY29tMnNlYyBzdGF0ZW1lbnRzIHdlcmUgZm91bmQgaW4gc25tcGQuY29uZi4KICAgCjE5OTgtMDMtMDkgMTc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jCiwgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgdjJwYXJ0eS5jLAogICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICAtIChtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gaW1wbGVtZW50IHN5c09SVGFibGUuCiAgICAgLSByZWdpc3RlciBtaWJzIHVuZGVyIGl0LgogICAKMTk5OC0wMy0wNiAxNTo0OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHJlbW92ZSBzZWN1cml0eSB0eXBlIHByb21wdHMuCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IG1vdmUgc25tcF9hcGkuaCB1cCBhYm92ZSBzbm1wX2ltcGwuaC4KICAgCjE5OTgtMDMtMDYgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIChtaWJJSS5oKTogYWRkIHZhY21fdmFycy4KICAgCjE5OTgtMDMtMDYgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6CiAgICAgLSByZW1vdmUgR0xPQkFMLVNFQ1VSSVRZIGNoZWNrcy4KICAgCjE5OTgtMDMtMDYgMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcmVhZF9jb25maWcuYwosIGFnZW50L3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdGFibGUuMSwgbWlicy8uaW5kZXgKLCBtaWJzL01ha2VmaWxlLmluLCBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsCiAgIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dCwgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LAogICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oCiwgc25tcGxpYi92aWV3LmM6CgogICAtIChNYWtlZmlsZS5pbiwga2VybmVsLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywKICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGRpc2suYywKICAgICBldmVudC5jLCBleHRlbnNpYmxlLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBtaWJpbmNsLmgsCiAgICAgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgcm91dGVfd3JpdGUuYywKICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsCiAgICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgICBpZi5jLCBpbmV0LmMsIHJvdXRlLmMsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0YWJsZS4xLCAuaW5kZXgsCiAgICAgTWFrZWZpbGUuaW4sIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsCiAgICAgTWFrZWZpbGUuaW4sIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICBtaWIuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgdmFjbS5jLCB2YWNtLmgsCiAgICAgdmlldy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEltcGxlbWVudCB0aGUgU05NUHYzIFZpZXcgQmFzZWQgQWNjZXNzIENvbnRyb2wgTW9kZWwgKFJGQyAyMjc1KS4KICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAtIGJldHRlciBoZWFkZXItZmlsZSAjZGVmaW5lIG5hbWVzIHRvIGluY2x1ZGUgU05NUF8sIEFTTl8sIGV0Yy4gcHJlZml4ZXMuCiAgIAoxOTk4LTAzLTA0IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IGRvY3VtZW50YXRpb24gcmVxdWlyZW1lbnQgY2hhbmdlLgogICAKMTk5OC0wMi0yNSAwNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wZC5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggcmVhZF9jb25maWcgcGFyc2VyJ3MgZW5kIG9mIGxpbmUgcHJvYmxlbXMuCiAgIAoxOTk4LTAyLTIwIDExOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KICAgCjE5OTgtMDItMjAgMTE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQgdG8gbG9vayBmb3IgYW5kIHN0cmlwIC91c3IvbGliLyouCiAgIAoxOTk4LTAyLTIwIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGZpeCBpbmNsdWRlIGZpbGUgZGVwZW5kYW5jaWVzIG9uIGlyaXggd2l0aCBfS0VSTkVMIGRlZmluZWQuCiAgIAoxOTk4LTAyLTE4IDE2OjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTQgKQogICAKMTk5OC0wMi0xOCAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wMi0xOCAxNjozMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IG9wZW5ic2QgZGVmaW5lcy4KICAgCjE5OTgtMDItMTggMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMKLCB2YXJfcm91dGUuYzoKCiAgIC0gKGF0LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgYnNkLmgsIGJzZGkuaCwgZnJlZWJzZC5oLAogICAgIGdlbmVyaWMuaCwgaHB1eC5oLCBuZXRic2QuaCk6CiAgICAgLSB0cmllZCB0byBtZXJnZSBzb21lIHRoaW5ncyBpbnRvIHMvKi5oIGRlZmluZXMgaW5zdGVhZC4gIFRoZXJlIGlzIGEKICAgICAgIGxvdCB0byBnbyBzdGlsbC4KICAgCjE5OTgtMDItMTggMTY6MjkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmVtb3ZlZCB1bm5lZWRlZCBzdHVmZi4KICAgICAtIGFkZGVkIG9wZW5ic2QuCiAgIAoxOTk4LTAyLTE4IDE0OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBwcm90b3R5cGluZyBjaGVja3MuCiAgIAoxOTk4LTAyLTE4IDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBjaGVja3MuCiAgIAoxOTk4LTAyLTE4IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jCiwgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaHJfdXRpbHMuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKLCBpbnRlcmZhY2VzLmgsIGlwLmMsIG1lbW9yeS5jLAogICBtaWJpbmNsLmgsIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsCiAgIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywgc3lzdGVtLmMKLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLAogICB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgdm1zdGF0LmM6CgogICAtIChhY2xfdmFycy5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jLAogICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIG1lbW9yeS5jLCBtaWJpbmNsLmgsCiAgICAgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLAogICAgIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywKICAgICB2bXN0YXQuYyk6CiAgICAgLSBtYXNzaXZlIC1XYWxsIGFuZCAtLXN0cmljdC1wcm90b3R5cGVzIGNoZWNraW5nLgogICAgIC0gYnplcm8gLT4gbWVtc2V0LgogICAKMTk5OC0wMi0xOCAxMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBleGFtcGxlLmMsIGhwdXguYywKICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLAogICBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYwosIGlwLmMsIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jCiwgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYwosIHZhcl9yb3V0ZS5jLCB3b21iYXQuYzoKCiAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHB1eC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgIC0gYWxsIGJjb3B5cyAtPiBtZW1jcHkuCiAgICAgLSBpbmNsdWRlIGEgZmV3IGV4dHJhIGhlYWRlcnMgZm9yIERFQlVHUCBzdGF0ZW1lbnRzLgogICAKMTk5OC0wMi0xOCAxMzozNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgogICAKMTk5OC0wMi0xOCAxMzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChkaXNrLmgsIGV4dGVuc2libGUuaCwgbG9hZGF2ZS5oLCBwcm9jLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gdHVybiB0aGVzZSBtaWJzIGludG8gcmVhbCB0YWJsZXMuICBSZXF1aXJlZCBjaGFuZ2luZyB0aGUgbWliIHRob3VnaC4KICAgCjE5OTgtMDItMTggMTE6NDYgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYpOiBjaGFuZ2UgdG8gREFUQURJUiBmcm9tIExJQkRJUi4KICAgCjE5OTgtMDItMTggMTE6NDUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IGRlZmluZSBMSUJESVIgYW5kIERBVEFESVIuCiAgIAoxOTk4LTAyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCBpcml4LmgpOgogICAgIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gcG9ydCB0byBpcml4LgogICAKMTk5OC0wMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBmaXggYSBkZWJ1Z2dpbmcgc3RhdGVtZW50IChtaXNzaW5nIGEgdmFyaWFibGUpLgogICAKMTk5OC0wMi0xOCAwODoxNSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBjaGVjayBmb3Igc3lzL3N5c21wLmguCiAgIAoxOTk4LTAyLTE4IDA4OjA1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92bXN0YXQuaDoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHZtc3RhdC5jLCB2bXN0YXQuaCwgdWNkX3NubXAuaCwKICAgICBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgLSBpbXBsbWVudCBhIHZtc3RhdCBtaWIgZ3JvdXAgb24gbGludXguCiAgIAoxOTk4LTAyLTE3IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC5jLCB1ZHAuYzoKCiAgIC0gKHRjcC5jLCB1ZHAuYyk6CiAgICAgLSBubGlzdCBzeW1ib2wgbmFtZSBlcnJvcnMuCiAgIAoxOTk4LTAyLTE3IDA5OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b25saXN0LmgsIHNubXBfdmFycy5jCjoKCiAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b25saXN0LmgsIHNubXBfdmFycy5jKToKICAgICAtIHVzZSBhcHByb3ByaWF0ZSBtYWxsb2NzLCBhbmQgTlVMTCBpbml0aWFsaXphdGlvbiBvZiBwb2ludGVycy4KICAgICAtIG1hbGxvYyB0aGUgc3ltYm9sIHJhdGhlciB0aGFuIHVzaW5nIGEgZml4ZWQgbGVuZ3RoLgogICAgIC0gaW5zZXJ0IGRlYnVnZ2luZyBjb2RlLgogICAgIC0gZW5hYmxlIHByaW50aW5nIG9mIHRoZSBubGlzdCB0cmVlIGlmIFRFU1RJTkcgaXMgZGVmaW5lZC4KICAgCjE5OTgtMDItMTcgMDk6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSB1c2Ugc25tcF9pcGFkZHIgaW5zdGVhZCBvZiBpcGFkZHIgdG8gYXZvaWQgaHB1eCBjb25mbGljdHMuCiAgIAoxOTk4LTAyLTEzIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB0eXBvOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCiAgIAoxOTk4LTAyLTExIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc2VkIGRvZXNuJ3QgbGlrZSBbYS16XSsgdHlwZSBleHByZXNzaW9ucy4KICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYzoKCiAgIC0gKGhyX25ldHdvcmsuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzb2xhcmlzIGZpeGVzLgogICAKMTk5OC0wMi0xMSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZG9uJ3QgaW5jbHVkZSBjb25maWcuaAogICAKMTk5OC0wMi0xMSAwOToyOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBwcyBhdXggc2hvdWxkIGRlZmluZSBhdXggbm90IC1hdXguCiAgIAoxOTk4LTAyLTExIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2hyX3Byb2MuYywKICAgbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBtaWJncm91cC9tZW1vcnkuYywKICAgbWliZ3JvdXAvdGNwLmMsIG1pYmdyb3VwL3VkcC5jLCBtaWJncm91cC92YXJfcm91dGUuYwosIGF1dG9fbmxpc3QuYzoKCiAgIC0gKGdlbmVyaWMuaCwgYXV0b19ubGlzdC5jLCBhdC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgbWVtb3J5LmMsCiAgICAgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggYWxsIG15IHR5cG9zIDstKS4KICAgICAtIGNyZWF0ZSBhdXRvX25saXN0X3ZhbHVlIHRvIHJldHVybiB0aGUgbG9va2VkLXVwIHZhbHVlLgogICAKMTk5OC0wMi0wOSAxMToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgaW9jdGxzLmguCiAgIAoxOTk4LTAyLTA5IDExOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiAgaW5jbHVkZSBpb2N0bHMuaCBpZiBhdmFpbGFibGUuCiAgIAoxOTk4LTAyLTA5IDExOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaW9jdGxzLmgKICAgCjE5OTgtMDItMDkgMTE6MTcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMyApCiAgIAoxOTk4LTAyLTA5IDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGZpeCBwcm90b3R5cGVzIG9uIG15IGJyb2tlbiB0YWJsZSB3YWxraW5nIHJvdXRpbmVzLgogICAKMTk5OC0wMi0wOSAxMTowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGFuZ2VkIC0td2l0aC1zaGFyZWQtbGlicmFyaWVzIHRvIC0tZW5hYmxlLXNoYXJlZCB0byBtYXRjaCBvdGhlciBwa2dzLgogICAgIC0gZGlzcGxheSBhcmd1bWVudHMgZm91bmQgZm9yIC0tZW5hYmxlLXNoYXJlZC4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuaDoKCiAgIC0gKGF1dG9fbmxpc3QuaCk6IHByb3RvdHlwZSB3cmFwcGVyLgogICAKMTk5OC0wMi0wOSAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgaHB1eC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYwosIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsCiAgIGludGVyZmFjZXMuYywgaXAuYywga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMKLCBtZW1vcnkuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLAogICAgIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMpOgogICAgIC0gdXNlIGF1dG9fbmxpc3QuCiAgIAoxOTk4LTAyLTA2IDE3OjEwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2F1dG9ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwgYXV0b25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX3ZhcnMuYywgaXAuYyk6CiAgICAgLSBjcmVhdGVkIGEgbmV3IGF1dG9fbmxpc3QgZnVuY3Rpb24gYW5kIHVzZSBpdCBpbiBpcC5jLgogICAKMTk5OC0wMi0wNiAxMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jOgoKICAgLSAoaHJfZGlzay5jKTogY2xvc2UoKSBnb3QgY2F1Z2h0IGluc2lkZSBhbiBlbHNlIGl0IHNob3VsZG4ndCBoYXZlIGR1ZQogICAgIHRvIGFuIGlmZGVmIGVycm9yLgogICAKMTk5OC0wMi0wNiAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgaXAuYywgdGNwLmMsIHVkcC5jOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6IHByb3RlY3QgYWdhaW5zdCBubGlzdC5oCiAgIAoxOTk4LTAyLTAyIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2huIEhhd2tpbnNvbjoKICAgICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBmb3Igc2hhcmVkIGxpYnJhcnkgZXh0ZW5zaW9uIHcvbyBzaGFyZWQgbGlicmFyaWVzLgogICAKMTk5OC0wMS0zMCAxNToyNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMpOiBmaXggZGVmYXVsdCBwb3J0IGZvciBzbm1wdHJhcC4KICAgCjE5OTgtMDEtMzAgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IGZpbmlzaCBsaW51eCBwcm9ibGVtcyBhbmQgdXNlIGlmX3NwZWVkLgogICAKMTk5OC0wMS0zMCAxNDozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlmX3NwZWVkLgogICAKMTk5OC0wMS0zMCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlndXJlKTogZGVmaW5lIGlmbmV0IGZvciBsaW51eC4KICAgCjE5OTgtMDEtMzAgMTM6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEkgY2FuJ3QgcmVhbGx5IGhhdmUgZm9yZ290dGVuIFNpbW9uJ3MgbmFtZSBpbiB0aGUgbGlzdAogICAgIGNvdWxkIEk/CiAgIAoxOTk4LTAxLTMwIDEwOjU1ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTIgKQogICAKMTk5OC0wMS0zMCAxMDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChkaXNrLmMsIGhvc3RfcmVzLmgsIHBhc3MuYywgcmVnaXN0cnkuYywgc25tcF9taWIuYywgc3lzdGVtLmMsCiAgICAgdmVyc2lvbmluZm8uYywgc25tcF9hcGkuaCk6CiAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBmb3IgYWRkcmVzcyBzdHJ1Y3R1cmUuCiAgIAoxOTk4LTAxLTMwIDEwOjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlIG1vZHVsZSBpbmRleGluZyB0byB1c2Ugb2lkIGluc3RlYWQgb2YgYSBudW1lcmljLgogICAKMTk5OC0wMS0zMCAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiByZWdpc3RyeS5jLCByZWdpc3RyeS5oOgoKICAgLSAocmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6IGJlZ2luIG11bmdpbmcgZm9yIG5ldyBoaWVyYXJjaHkuCiAgIAoxOTk4LTAxLTMwIDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgdmFyX3N0cnVjdC5oKToKICAgICAtIG1lcmdlIERhdmUncyBjb2RlIHdpdGggbWluZS4gIFN0aWxsIGEgZmV3IGJ1Z3MgdG8gd29yayB0aHJvdWdoLgogICAKMTk5OC0wMS0zMCAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogcHV0IHBhc3NfY29tYXByZSBoZXJlLgogICAKMTk5OC0wMS0zMCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0LCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAtIHJlcG9ydCBjYWNoZWQsIGJ1ZmZlciwgYW5kIHNoYXJlZCBzdGF0aXN0aWNzIGZvciBsaW51eC4KICAgCjE5OTgtMDEtMzAgMDg6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0ZXN0IGZvciAncHMgYXV4JyAocmVkaGF0IDUuMCkuCiAgIAoxOTk4LTAxLTIzIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgY29uZmlndXJlCiwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgdmFyX3N0cnVjdC5oLAogICAgIGV4dGVuc2libGUuYywgcGFzcy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1ha2UgdGhlIG1pYiByZWdpc3RyeSByZWNvcmQgYW5kIGRpc3BsYXkgYSBtaWIgbW9kdWxlIG5hbWUgYXMgd2VsbC4KICAgCjE5OTgtMDEtMjMgMTY6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLAogICBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1Y2Rfc25tcC5oLAogICB1ZHAuYywgdmVyc2lvbmluZm8uYzoKCiAgIC0gKGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1Y2Rfc25tcC5oLCB1ZHAuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgLSAjaW5jbHVkZSAic25tcF9hcGkuaCIKICAgCjE5OTgtMDEtMjMgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaDoKCiAgIC0gKHJlZ2lzdHJ5LltjaF0sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY3JlYXRlIGEgbmV3IHRhYmxlIGF0IHVjZGF2aXMuMTAzIHRvIGRpc3BsYXkgcmVnaXN0ZXJlZCBtaWJzLgogICAKMTk5OC0wMS0yMyAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9leHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMsCiAgIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgbWliZ3JvdXAvcGFzcy5jOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICAgIGV4dGVuc2libGUuYywgcGFzcy5jKToKICAgICAtIGNyZWF0ZSBuZXcgZnVuY3Rpb25zOgogICAgICAgLSByZWdpc3Rlcl9zdWJ0cmVlKCkKICAgICAgIC0gcmVnaXN0ZXJfbWliKCkKICAgICAgIC0gdW5yZWdpc3Rlcl9taWIoKS4KICAgICAtIGdldCByaWQgb2YgcmVhZF9jb25maWcgc3BlY2lhbCBzdHVmZiBmb3IgZXh0ZW5zaWJpbGl0eSBhbmQgcHV0IGl0CiAgICAgICBpbiB0aGVpciBvd24gc3VibW9kdWxlcyB3aGljaCBub3cgY2FsbCByZWdpc3Rlcl9taWIoKS4KICAgCjE5OTgtMDEtMjMgMDg6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9uJ3QgY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGluIGxpbnV4J3MgRklMRV9UT19CVUYgbWFjcm8uCiAgIAoxOTk4LTAxLTIxIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY3JlYXRlIG0vIGFuZCBzLyBkaXJlY3RvcmllcyBhbmQgdXNlIHRoZW0gZm9yIHN1cHBsZW1lbnRhbCBjb25maWcKICAgICAgIGluY2x1ZGUgZmlsZXMgYmFzZWQgb24gdGhlIGNvbmZpZy5ndWVzcyBvdXRwdXQuCiAgIAoxOTk4LTAxLTIxIDE3OjMyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgIC0gRG8gYSBiZXR0ZXIgdmVyc2lvbiBvZiBzaGxpYiBzdXBwb3J0LiAgU2hvdWxkIGJlIHVzZWFibGUgbm93IGF0IGxlYXN0LgogICAKMTk5OC0wMS0yMSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYwosIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLAogICAgIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgdmVyc2lvbmluZm8uYyk6CiAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCiAgIAoxOTk4LTAxLTIxIDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMKLCBzbm1wZC5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCiAgIAoxOTk4LTAxLTIxIDExOjExICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4pOgogICAgIC0gYmVnaW4gc3VwcG9ydCBmb3IgY3JlYXRpbmcgYW5kIHVzaW5nIHNoYXJlZCBsaWJyYXJpZXMuCiAgICAgLSBhbGwgTWFrZWZpbGVzIG5vdyBpbmNsdWRlIGEgTWFrZWZpbGUudG9wIGZvciBlYXNpZXIgZnV0dXJlIGdsb2JhbCBjaGFuZ2VzLgogICAKMTk5OC0wMS0yMSAxMTowOCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiB1cGRhdGUuCiAgIAoxOTk4LTAxLTE2IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gU2hlc2hhZHJpIFlhZ2F0aToKICAgICAtIHNpZ25hbCBhIHRyYXAgKDIpIHdoZW4gdGhlIGFnZW50IGlzIHNodXQgZG93bi4KICAgCjE5OTgtMDEtMTIgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbmNyZWFzZSBidWZmZXIgc2l6ZSB0byBpbmNyZWFzZSBtYXggaW50ZXJmYWNlcyByZXBvcnRlZCBvbiBTb2xhcmlzLgogICAKMTk5OC0wMS0xMiAwOTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFVuZGlkIGFub24tY2hpbGRyZW4gY2hhbmdlLgogICAKMTk5OC0wMS0xMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIHNubXBfYXBpLmgsCiAgIHNubXBfaW1wbC5oLCBzeXN0ZW0uaDoKCiAgIC0gKGFzbjEuYywgbWliLmMsIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMKICAgICBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBjaGFuZ2VzIGFuZCBib29sZWFuIGNoZWNrIGNvcnJlY3Rpb25zLgogICAKMTk5OC0wMS0xMiAwOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYwo6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgLSBzbm1wX3BlcnJvciB1c2FnZS4KICAgCjE5OTgtMDEtMTIgMDk6NDAgIGhhcmRha2VyCgogICAqIEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW46CgogICAtIChGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIERvY3VtZW50YXRpb24gdXBkYXRlIHRvIGZpeCBwYXRocyBmcm9tIHJlY2VudCBjaGFuZ2VzLgogICAKMTk5OC0wMS0xMiAwOToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhbGFybS5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYwosIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBpY21wLmMsCiAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCBwcm9jLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKToKICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRml4IGhlYWRlcnMgZm9yIEZyZWVCU0QgYW5kIE5ldEJTRC4KICAgCjE5OTgtMDEtMTIgMDk6MTkgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSByZW1vdmUgdW51c2VkIGhlYWRlcnMuCiAgICAgLSBzbm1wX3BlcnJvciBjaGFuZ2VzLgogICAKMTk5OC0wMS0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogbGluayBkaXJlY3RseSB0byBsaWIuCiAgIAoxOTk4LTAxLTEyIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHNubXBfYXBpLjM6CgogICAtIChtaWJfYXBpLjMsIHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jIHVwZGF0ZSB0byByZWZsZWN0IG1vdmVkIGhlYWRlcnMuCiAgIAoxOTk4LTAxLTEyIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIGZpeCBhbm9uX2NoaWxkcmVuIGludmFsaWQgbWVtb3J5IGFjY2Vzcy4KICAgCjE5OTgtMDEtMDUgMTc6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzd2FwIGFyZ3MgdG8gbWVyZ2VfYW5vbl9jaGlsZHJlbigpLgogICAKMTk5OC0wMS0wNSAxNjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGFzbjFfYnVpbGRfb2JqaWQuCiAgIAoxOTk4LTAxLTA1IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHNubXB2MwogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBwdXQgaW5pdF9taWIgYmFjayBpbiBwbGFjZSAob3BwcykuCiAgIAoxOTk4LTAxLTA1IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IGFkZCBhIGZpbmRfbW9kdWxlKCkgcm91dGluZS4KICAgCjE5OTgtMDEtMDUgMTM6MjcgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBjaGFuZ2UgImFsbCIgdG8gIkFMTCIuCiAgIAoxOTk3LTEyLTMwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogQ3JlYXRlIGEgZ3JhcGhpbmcgd2lkZ2V0LgogICAKMTk5Ny0xMi0zMCAxNDowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6CiAgICAgLSBuZXcgY29tbWFuZDogdGFibGUgdG8gZGlzcGxheSBzbm1wdGFibGVzIGFzIGEgdGFibGUuCiAgICAgLSBtaXNjLi4uCiAgIAoxOTk3LTEyLTI5IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogRmlyc3QgaW1wbGVtZW50YXRpb24uCiAgIAoxOTk3LTEyLTIzIDE2OjMwICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTEgKQogICAKMTk5Ny0xMi0yMyAxNTo1OSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0IGlmIGRlYnVnZ2luZwogICAgIGlzIG9uIG9yIG9mZi4KICAgCjE5OTctMTItMjMgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaDoKCiAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydAogICAgIGlmIGRlYnVnZ2luZyBpcyBvbiBvciBvZmYuCiAgIAoxOTk3LTEyLTIzIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2F0LmgsCiAgIG1pYmdyb3VwL2hvc3RfcmVzLmgsIG1pYmdyb3VwL2ljbXAuaCwKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9pbnRlcmZhY2VzLmgsCiAgIG1pYmdyb3VwL2lwLmgsIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC90Y3AuaCwKICAgbWliZ3JvdXAvdWRwLmMsIG1pYmdyb3VwL3VkcC5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX3ZhcnMuYzoKCiAgIC0gKGF0LmMsIGF0LmgsIGhvc3RfcmVzLmgsIGljbXAuaCwgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgICAgdGNwLmMsIHRjcC5oLCB1ZHAuYywgdWRwLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAtIGNsZWFuIHVwIHJlcXVpcmVkIGhlYWRlcnMgZm9yIGxpbnV4LgogICAKMTk5Ny0xMi0yMyAxNDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9pY21wLmMsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaXAuYywKICAgbWliZ3JvdXAvc25tcF9taWIuYywgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3RjcC5jCiwgbWliZ3JvdXAvdWRwLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gYnJlYWsgdXAgY29tbW9uX2hlYWRlci5oLgogICAKMTk5Ny0xMi0yMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXB0cmFwZC44OgoKICAgLSAoc25tcGQuMS5kZWYsIHNubXB0cmFwZC44KTogZGVidWdnaW5nIGZsYWcgYWRkaXRpb25zLgogICAKMTk5Ny0xMi0yMyAxNDo0MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaHB1eC5jLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKCopOiBUdXJuIGFsbCBkZWJ1Z2dpbmcgcm91dGluZXMgaW50byBsaWJyYXJ5IGNhbGxzIHRoYXQgY2FuIGJlCiAgICAgdHVybmVkIG9uIGFuZCBvZmYgYXQgcnVuIHRpbWUuCiAgICAgLSBERUJVR1AoKSBpcyBub3cgYSB0eXBpY2FsIHByaW50ZiBzdHlsZSBmdW5jdGlvbiBhbmQgaXMgdXNlZCBldmVyeXdoZXJlLgogICAgIC0gdm9pZCBzbm1wX3NldF9kb19kZWJ1Z2dpbmcoaW50KS4KICAgICAtIGludCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKS4KICAgCjE5OTctMTItMjMgMTQ6NDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZCBUZWQgUnVsZSB0byBjb2RlcnMgbGlzdC4KICAgCjE5OTctMTItMjMgMTI6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBDaGFuZ2UgLWYgZmxhZyB0byAtbCBhbmQgbWFrZSAtZiBuby1mb3JrLgogICAgIC0gZml4IHBhdGNoIHdoaWNoIG11bmdlZCBhYmlsaXR5IHRvIGdlbmVyYXRlIGJvdGggLVAgYW5kIC1zIHNpbXVsdGFuZW91c2x5LgogICAKMTk5Ny0xMi0yMyAxMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAtIFVzZSBzeXNsb2cgb3B0aW9uIExPR19QSUQgb24gc3RhcnR1cC4KICAgICAtIGZvcmsgaWYgc3lzbG9nIGVuYWJsZWQuCiAgICAgLSBFbmFibGUgbG9nZ2luZyB0byBvdGhlciBzeXNsb2cgZmFjaWxpdGllcy4KICAgICAtIHByaW50IGFsbCB0cmFwIGRhdGEgdG8gYSBzaW5nbGUgc3lzbG9nIGxpbmUuCiAgIAoxOTk3LTEyLTIzIDExOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocHV4LmM6CgogICAtIChocHV4LmMpOiAjaWZkZWYnZWQgb3V0IHVudXNlZCB3cml0ZUhQIGZ1bmN0aW9uLgogICAKMTk5Ny0xMi0yMyAxMTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hyX3Byb2MuYywgbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ocl9zd3J1bi5jLCBtaWJncm91cC9ocl9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5jLCBtaWJncm91cC9tZW1vcnkuYywKICAgY29tbW9uX2hlYWRlci5oOgoKICAgLSAobWliZ3JvdXAvKi5jLCBjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6MzUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluKTogQlNESSBkZWZpbml0aW9uIGZpeGVzLgogICAKMTk5Ny0xMi0yMyAxMTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogU29sYXJpcyBzcGVjaWZpYyBmaXhlcy4KICAgCjE5OTctMTItMjMgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogQ29ycmVjdCBhIG5vbi1jYXN0ZWQgbWFsbG9jLgogICAKMTk5Ny0xMi0xNSAxNTowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgYWNjb25maWcuaCk6CiAgICAgLSBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KICAgCjE5OTctMTItMTUgMTU6MDcgIGhhcmRha2VyCgogICAqIG92LzogVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW46CgogICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbik6IFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgogICAKMTk5Ny0xMi0xNSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL2hyX3Byb2MuYywgbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ocl9zd3J1bi5jLCBtaWJncm91cC9ocl9zeXN0ZW0uYywKICAgbWliZ3JvdXAvaWNtcC5jLCBtaWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuaCwgbWliZ3JvdXAvaXAuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5jLCBtaWJncm91cC9tZW1vcnkuYywKICAgbWliZ3JvdXAvcm91dGVfd3JpdGUuYywgbWliZ3JvdXAvdGNwLmMsIG1pYmdyb3VwL3VkcC5jCiwgbWliZ3JvdXAvdmFyX3JvdXRlLmMsIG1pYmdyb3VwL3dvbWJhdC5jLAogICBjb21tb25faGVhZGVyLmg6CgogICAtIChhdC5jLCBleGFtcGxlLmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jLCBjb21tb25faGVhZGVyLmgpOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gdG8gaW1wcm92ZSBpcml4IDYuMiBzdXBwb3J0LgogICAKMTk5Ny0xMi0xNSAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0LmgsIHVjZF9zbm1wLmgsIHYycGFydHkuaDoKCiAgIC0gKGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oKToKICAgICAtIHVzZSBjb25maWdfYWRkX21pYigpLgogICAKMTk5Ny0xMi0xNSAxMTowOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG5ldyBtYWNybyB0byBjaGFuZ2UgZGVmYXVsdCBNSUJTIHdoZW4gbW9kdWxlcyBhcmUgY29tcGlsZWQ6CiAgICAgICBjb25maWdfYWRkX21pYigpLgogICAKMTk5Ny0xMi0wNSAxNDozMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gaW5zdGVhZCBvZiBlcnJvciBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm8ncy4KICAgCjE5OTctMTItMDUgMTE6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsCiAgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLAogICBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXB0YWJsZS5jLAogICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMpOiBzdXBwb3J0IHJhbmRvbSBhY2Nlc3MgcmVxdWVzdHMgb24gYWxsIGFwcHMgdmlhIC1SIHN3aXRjaC4KICAgCjE5OTctMTItMDUgMDg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWFrZSB0cmFwIHZhcmlhYmxlcyBsb25nJ3Mgbm90IGludHMgZm9yIDY0Yml0IG1hY2hpbmVzIHRvIG1hdGNoCiAgICAgICBhc25fYnVpbGRfaW50IGZ1bmN0aW9ucy4KICAgCjE5OTctMTItMDEgMTI6NDQgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KICAgCjE5OTctMTItMDEgMTI6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wX2FwaS4zCiwgbWlicy9SRkMxMjcxLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KICAgCjE5OTctMTItMDEgMTI6MzIgIGhhcmRha2VyCgogICAqIEZBUSwgSU5TVEFMTCwgTkVXUywgUkVBRE1FLAogICBhY2NvbmZpZy5oLCBidWctcmVwb3J0LCBjb25maWcuaC5pbiwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KICAgCjE5OTctMTEtMTcgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcGFydHlfdmFycy5jIChFeHQtMy0zLXBhdGNoZXMuMSksIHBhcnR5X3ZhcnMuYwo6CgogICAtIChwYXJ0eV92YXJzLmMpOiB1c2Ugc3RyaW5ncy5oIGRlZmluZSBub3Qgc3RyaW5nLmguCiAgIAoxOTk3LTExLTE0IDEyOjM2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zICkKICAgCjE5OTctMTEtMTQgMTI6MzYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHZlcnNpb24gdXBkYXRlLgogICAKMTk5Ny0xMS0xNCAxMjozNSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTLCBSRUFETUU6CgogICAtIChGQVEsIE5FV1MsIFJFQURNRSk6IGxhc3QgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5Ny0xMS0xNCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0LmM6CgogICAtICh3b21iYXQuYyk6IHF1aWNrIGRvYyBjaGFuZ2UuCiAgIAoxOTk3LTExLTE0IDA4OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBjb2RlciBsaXN0IHVwZGF0ZS4KICAgCjE5OTctMTEtMTQgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jOgoKICAgLSAod29tYmF0LmMpOiBjb2RlIGNvbW1lbnRzIGZyb20gQWxhbiBCYXRpZS4KICAgCjE5OTctMTEtMTIgMjA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmM6CgogICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IFNUREMgdHlwb3MuCiAgIAoxOTk3LTExLTEyIDIwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBmaXggcXNvcnQgcGFyYW1zIGZvciBTVERDLgogICAKMTk5Ny0xMS0xMiAyMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYywgc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAtIEZpeGVzIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgLSBGaXhlcyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAyMDoyNyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICh3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogZnVuY3Rpb24gY2hhbmdlcy4KICAgCjE5OTctMTEtMTIgMTY6MDUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTEgKQogICAKMTk5Ny0xMS0xMiAxNTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5Ny0xMS0xMiAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmM6CgogICAtIChwYXJ0eV92YXJzLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAxNToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKHN5c3RlbS5oKTogRG9uJ3QgaW5jbHVkZSBjb25maWcuaCEKICAgCjE5OTctMTEtMTIgMTE6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZGVkIHNubXB0YWJsZS4KICAgCjE5OTctMTEtMTIgMTA6NDQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogZG9jIHVwZGF0ZS4KICAgCjE5OTctMTEtMTIgMTA6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2NsaWVudC5jOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwYXJzZXIgaW1wcm92ZW1lbnRzLgogICAgIC0gcGFyc2VyIGRpcmVjdG9yeSBjYWNoaW5nLgogICAgIC0gc2F2ZV9kZXNjcmlwdGlvbnMvbWliX3dhcm5pbmdzIHNldCBmdW5jdGlvbnMuCiAgIAoxOTk3LTExLTEyIDEwOjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZGVsdGEuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwZC44OgoKICAgLSAobWFuL3NubXBkZWx0YS4xLHNubXB0YWJsZS4xLHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgYWRkaXRpb25zLgogICAKMTk5Ny0xMS0xMiAxMDozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHYyYyBzdXBwb3J0IGFuZCBhcmd1bWVudCBwYXJzaW5nIGNoYW5nZXMuCiAgIAoxOTk3LTExLTEyIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYwosIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOgoKICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdmFyaW91cyAocmVtb3ZlIHVubmVlZGVkIHZhcnMsIGV0YykuCiAgICAgLSBhZGQgc25tcHRhYmxlLgogICAgIC0gbWFrZSBzbm1wdHJhcGQgbXVsdGktbGluZ3VhbC4KICAgCjE5OTctMTEtMTIgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCiAgIAoxOTk3LTExLTEyIDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmM6CgogICAtIChwYXJ0eV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggaWYgYXZhaWxhYmxlLgogICAKMTk5Ny0xMS0xMiAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNvbGFyaXMgcGF0Y2hlcy4KICAgCjE5OTctMTEtMTIgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgogICAKMTk5Ny0xMS0xMiAxMDoyNSAgaGFyZGFrZXIKCiAgICogTkVXUywgVE9ETzoKCiAgIC0gKE5FV1MsIFRPRE8pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jIHVwZGF0ZS4KICAgCjE5OTctMTEtMTIgMDk6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCBmb3IgbGludXgvaHB1eDEwIHByb2JsZW1zLgogICAKMTk5Ny0xMS0xMiAwOToxNyAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMTEtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMTEtMTIgMDg6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBGcmVlIGEgcGR1IGluIGEgc3BvdCB0aGF0IHNob3VsZCB0ZWNobmljYWxseSBuZXZlciBiZSBuZWVkZWQsIGJ1dAogICAgICAgaXMgbmljZSBmb3IgcGVvcGxlIHJlYWRpbmcgdGhlIGNvZGUuCiAgIAoxOTk3LTExLTEyIDA3OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogVzMyIHNwZWNpZmljIGZpeGVzLgogICAKMTk5Ny0xMS0wNyAxNjozOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMCApCiAgIAoxOTk3LTExLTA3IDE2OjM3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUUsIFRPRE86CgogICAtIChORVdTLCBSRUFETUUsIFRPRE8pOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk3LTExLTA3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiB3YXRjaCBvdXQgZm9yIC91c3IvdWNiL2NjIG9uIHNvbGFyaXMgYW5kIGRvbid0IHVzZSBpdC4KICAgCjE5OTctMTEtMDcgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi93aW4zMi5vcHQKLCB3aW4zMi9saWJzbm1wL2xpYnNubXAucGxnLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywKICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZywKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQucGxnLAogICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnBsZwo6CgogICAtICgqKTogbWVyZ2UgdG8gbWFpbiBicmFuY2g6ICBwYXRjaGVzIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTctMTEtMDcgMTM6MzggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBzdG9wIG9uIG5vIHJlc3BvbnNlIGZyb20gaG9zdC4KICAgCjE5OTctMTEtMDcgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYzoKCiAgIC0gKGhyX25ldHdvcmsuYyk6IGRvbid0IHBhc3MgY2hhciAqKiB0byBpbnRlcmZhY2VzX3NjYW5fbmV4dCgpLgogICAKMTk5Ny0xMS0wNyAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBVU0lORy4qX01JQl9NT0RVTEUgLT4gVVNJTkcuKl9NT0RVTEUuCiAgIAoxOTk3LTExLTA3IDEyOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBwYXRjaCBmcm9tIE5pZWxzIGZvciBzb2xhcmlzID4yLjYuCiAgIAoxOTk3LTExLTA3IDEyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IGRvbid0IHByaW50IGEgdmFyaWFibGUgdGhhdCBkb2Vzbid0IGV4aXN0IHVuZGVyIGxpbnV4LgogICAKMTk5Ny0xMS0wNyAxMjoyNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGxpbnV4L2hkcmVnLmgKICAgCjE5OTctMTEtMDUgMTU6MjkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOSApCiAgIAoxOTk3LTExLTA1IDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogcHJvdGVjdCB2bW1ldGVyLmggZnJvbSBtdWx0aXBsZSBpbmNsdXNpb25zIG9uIG5ldGJzZC4KICAgCjE5OTctMTEtMDUgMTM6NTkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBzbm1wbGliL21pYi5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbF9zdW5vczUuYywgbWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gb2N0ZXQgY291bnRlcnMgZm9yIHNvbGFyaXMuCiAgICAgLSBNYWtlZmlsZS5pbiBwYXRjaGVzLgogICAKMTk5Ny0xMS0wNSAxMzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgaXAuYywgdGNwLmMsIHVkcC5jOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIKICAgCjE5OTctMTEtMDUgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9wcm9jLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIGRpc2suYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMpOgogICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiLgogICAKMTk5Ny0xMS0wNSAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBjb21tb25faGVhZGVyLmgsIG1pYmdyb3VwL2hyX2Rpc2suYywKICAgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ocl91dGlscy5jLCBtaWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKCopOiBtZXJnZSBmcm9tIERhdmUncyBwcmU2IHBhdGNoZXMuCiAgIAoxOTk3LTExLTA1IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IHB1dCBzbm1wdHJhcGQgaW4gQHNiaW5kaXJACiAgIAoxOTk3LTExLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSBDaGVjayBmb3IgJHByZWZpeCBiZWluZyBkZWZpbmVkIGFzIE5PTkUgZm9yIG90aGVyIHZhcnMuCiAgIAoxOTk3LTExLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSAjaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgICAgLSBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUgLT4gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFCiAgIAoxOTk3LTEwLTI5IDE0OjAwICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTggKQogICAKMTk5Ny0xMC0yOSAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBkb24ndCBpbmNsdWRlIGNvbmZpZy5oIHR3aWNlLgogICAKMTk5Ny0xMC0yOSAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGFuZCBpbmNsdWRlIHN5cy9jZGVmcy5oIGluIGNvbmZpZy5oLgogICAKMTk5Ny0xMC0yOSAxMjo0MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgKLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsCiAgIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92YXJfc3RydWN0LmgsCiAgIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvYXQuaCwgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlLmgsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBhZ2VudC9taWJncm91cC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgKLCBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oCiwgYXBwcy8uY3ZzaWdub3JlLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIHNubXBsaWIvdmlldy5oCiwgd2luMzIvY29uZmlnLmg6CgogICAtICgqLiouKik6IF9fVUNEX1AgLT4gX19QLCBhbmQgYSBjb25maWd1cmUgY2hlY2sgdG8gbG9vayBmb3IgaXQuCiAgIAoxOTk3LTEwLTI5IDEyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAtIChwYXJzZS5oKTogU1RBVFVTX0tXX09QVElPTkFMIC0+IFNUQVRVU19PUFRJT05BTAogICAKMTk5Ny0xMC0yOSAxMToyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGRlbHRhLjEKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGFzbjEuYywgbWliLltjaF0sIHBhcnNlLmgsYXBwcy8qLGVycm9ybWliLmMsbG9hZGF2ZS5jLAogICAgICBleHRlbnNpYmxlLmMsIGRpc2suYywgc25tcGRlbHRhKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0aGUgbm93IHdlbGxrbm93biBOZXRCU0QgZml4LAogICAgIC0gU3VuT1M0IGNjIGRvZXNuJ3QgbGlrZSB1bnNpZ25lZCBsaXRlcmFscyBvciBzdHJ0b3VsLAogICAgIC0gYWRkZWQgYSBjaGFyIHZlcnNpb24gb2YgIjsiLAogICAgIC0gYWRkZWQgZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgZXRjCiAgICAgLSBjaGFuZ2VkIHRoZSBhcHBzIHRvIHByaW50IGFsbCBlcnJvciBtZXNzYWdlcyB0byBzdGRlcnIsCiAgICAgLSBjb21wbGV0ZWQgdGhlIGFjY2VzcyBhbmQgc3RhdHVzIHZhbHVlcyBpbiBzbm1wbGliL3BhcnNlLmgKICAgICAtIGFkZGVkIGEgcm91Z2hseSBwYXRjaGVkIHZlcnNpb24gb2Ygc25tcGRlbHRhLgogICAKMTk5Ny0xMC0yOSAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG9wcHMsIGZvcmdvdCB0byBwdXQgaW4gQGV4ZWNfcGF0aEAuCiAgIAoxOTk3LTEwLTI5IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbgosIG92L01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlnKiwgKi9NYWtlZmlsZS5pbik6CiAgICAgLSBNb3ZlIHNubXBsaWJwYXRoIHRvIEBkYXRhZGlyQCB3aGljaCBkZWZhdWx0cyB0byAvdXNyL2xvY2FsL3NoYXJlL3NubXAuCiAgIAoxOTk3LTEwLTI5IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBtYW4vbWliX2FwaS4zLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgbWlicy9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluLCBtYW4vKik6CiAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlIHRvIGNoYW5nZSBpbnN0YWxsYXRpb24gcGF0aHMuCiAgICAgICAtIChtb2RpZmllZCB0byBwb2ludCBhZ2VudCB0byBzYmluZGlyIGluc3RlYWQgb2YgZXRjZGlyKS4KICAgCjE5OTctMTAtMjkgMTA6MDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHJlbW92ZSBzcGFjZSBiZWZvcmUgJSBzaWduLgogICAKMTk5Ny0xMC0yOSAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogZml4IHBvaW50ZXIgcHJvYmxlbXMgZnJvbSBvbGQgcmVhZF9jb25maWcgZm9ybSB0byBuZXcuCiAgIAoxOTk3LTEwLTI5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGRpc2suW2NoXSwgc3RydWN0LmgsIHNlZHNjcmlwdC5pbiwgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlIHRvIGFsbG93IGEgbWluaW11bSBwZXJjZW50YWdlIG9uIGRpc2sgc3BhY2UuCiAgICAgICAtICh3YXMgb3JpZ2luYWxseSBhIG1heGltdW0sIGJ1dCBJIGNoYW5nZWQgaXQgdG8gbWluaW11bSBpbnN0ZWFkKS4KICAgCjE5OTctMTAtMjkgMDk6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBzeXMvc2VsZWN0LmggZm9yIGFpeC4KICAgCjE5OTctMTAtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOiByZW1vdmUgdW51c2VkIG5saXN0IHN0cnVjdC4KICAgCjE5OTctMTAtMjggMTc6MTIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNyApCiAgIAoxOTk3LTEwLTI4IDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBQYXRjaCBmcm9tIE5vYnVvX09rYWJlQHlva29nYXdhLmNvLmpwOgogICAgIC0gZml4IHVud3JhcHBlZCBmb3BlbigpIGJ5IGFkZGluZyByZXR1cm4gTlVMTCBjaGVjay4KICAgCjE5OTctMTAtMjggMTc6MDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6IGRlZmluZSBic2RpIGFnZW50IHR5cGUuCiAgIAoxOTk3LTEwLTI4IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoY29uZmlnKiwgcm91dGVfd3JpdGUuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gZml4IHJ0ZW50cnkgcHJvYmxlbXMgb25jZSBhbmQgZm9yIHByb2JhYmx5IG5ldmVyLgogICAKMTk5Ny0xMC0yOCAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvdmFyX3N0cnVjdC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ocHV4LmgsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXguaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgKLCBhZ2VudC9taWJncm91cC93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmgKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIHNubXBsaWIvdmlldy5oCiwgd2luMzIvY29uZmlnLmg6CgogICAtICgqLiouKi4qKTogcmVuYW1lIG1hY3JvIF9fUCAtPiBfX1VDRF9QIHRvIHJlZHVjZSBzdHVwaWQgY29uZmxpY3RzLgogICAKMTk5Ny0xMC0yOCAxNDo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogZml4IHJ0ZW50cnkgc3RydWN0dXJlIGNoZWNrcyBmb3IgdGhlICpic2QgZ3JvdXBzLgogICAKMTk5Ny0xMC0yOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChhY2NvbmZpZy5oLCBtaWIuYyk6IHVzZSAnOydzIGZvciBET1MgZW52IHBhdGhzLgogICAKMTk5Ny0xMC0yOCAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc3lzdGVtLmMKLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoYWNjb25maWcuaCwgc3lzdGVtLltjaF0sIHNubXAuYyk6IG1vdmUgc3RyZHVwIGRlZiB0byBzeXN0ZW0uW2NoXS4KICAgCjE5OTctMTAtMjcgMTg6MzEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNiApCiAgIAoxOTk3LTEwLTI3IDE4OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGZpeCBjb25maWdfYXJjaF9yZXF1aXJlIG1hY3JvIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoxOTk3LTEwLTI3IDE4OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYwosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wbGliLyouYyk6IHVzZSBzbm1wX3NldF9kZXRhaWwgdG8gaGFuZGxlIG1hbGxvYy9mcmVlIG9mIHNubXBfZGV0YWlsLgogICAKMTk5Ny0xMC0yNyAxODoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IHJlbW92ZSBnb3Ryb290IHZhci4KICAgCjE5OTctMTAtMjcgMTg6MDUgIGhhcmRha2VyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcC9saWJzbm1wLnBsZywKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQuZHNwCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcAosIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKHdpbjMyKTogIGFkZCBmaWxlcyBvbiBtYWluIGJyYW5jaC4KICAgCjE5OTctMTAtMjcgMTg6MDIgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdywgd2luMzIub3B0OgoKICAgd2luMzIgZmlsZXMKICAgCjE5OTctMTAtMjcgMTc6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBtZXJnZSBidWdzOiBlbHNlIGNoZWNrIGFnYWluc3QgcGR1IGNvbW1hbmQgdHlwZS4KICAgCjE5OTctMTAtMjcgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChzbm1wX2F1dGguYyk6IG1lcmdlIGJ1Z3MuICBNaXNzaW5nIGJyYWNrZXRzLgogICAKMTk5Ny0xMC0yNyAxNzo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWlzc2luZyBhIGVsc2Ugc3RhdGVtZW50IChzaWdoKS4KICAgCjE5OTctMTAtMjcgMTc6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGV2aWNlLmgsIGhyX2Rpc2suaCwgaHJfZmlsZXN5cy5oCiwgaHJfbmV0d29yay5oLCBocl9wcmludC5oLCBocl9wcm9jLmgsCiAgIGhyX3N3aW5zdC5oLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2hyXyouaCk6IHByb3BlciBpbml0XyBwcm90b3R5cGVzLgogICAKMTk5Ny0xMC0yNyAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHR3byBtb2R1bGVzIGZvciBleHRlbnNpYmxlIGNvdW50LgogICAKMTk5Ny0xMC0yNyAxNzowNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiByZW1vdmUgZHVwbGljYXRlIGRlY2xhaXJhdGlvbi4KICAgCjE5OTctMTAtMjcgMTc6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jCiwgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywKICAgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jCiwgaHJfc3lzdGVtLmM6CgogICAtIChocl8qLmMpOiBFUlJPUiAtPiBFUlJPUl9NU0cuCiAgIAoxOTk3LTEwLTI3IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLltjaF0pOiBmaXggcGVycm9yIGxvc3NlcyBmcm9tIG1lcmdlLgogICAKMTk5Ny0xMC0yNyAxNjoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuYzoKCiAgIC0gKCopOiBtZXJnZSBvZiBXMzIgcG9ydCBhbmQgbWFpbiB2ZXJzaW9uIGJyYW5jaC4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIGZpbGUgc25tcHdhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGZpbGUgc25tcHdhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3A6CgogICBmaWxlIHNubXB0cmFuc2xhdGUuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGc6CgogICBmaWxlIHNubXB0cmFuc2xhdGUucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3A6CgogICBmaWxlIHNubXBzdGF0dXMuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5wbGc6CgogICBmaWxlIHNubXBzdGF0dXMucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBzZXQvc25tcHNldC5wbGc6CgogICBmaWxlIHNubXBzZXQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3A6CgogICBmaWxlIHNubXBzZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcDoKCiAgIGZpbGUgc25tcGdldG5leHQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZzoKCiAgIGZpbGUgc25tcGdldG5leHQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3A6CgogICBmaWxlIHNubXBnZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGc6CgogICBmaWxlIHNubXBnZXQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnOgoKICAgZmlsZSBzbm1wYnVsa3dhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwOgoKICAgZmlsZSBzbm1wYnVsa3dhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgZmlsZSBsaWJzbm1wLmRlZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBmaWxlIGxpYnNubXBfZGxsLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGc6CgogICBmaWxlIGxpYnNubXBfZGxsLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgZmlsZSBsaWJzbm1wLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAucGxnOgoKICAgZmlsZSBsaWJzbm1wLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBmaWxlIHdpbjMyLmRzdyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGZpbGUgY29uZmlnLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIub3B0OgoKICAgZmlsZSB3aW4zMi5vcHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwLyouaCk6CiAgICAgLSBuZXcgY29uZmlnIG1hY3JvOiAgY29uZmlnX2FyY2hfcmVxdWlyZShhcmNoLCBtb2R1bGUpLgogICAgIC0gbW92ZWQgYXJjaCBkZXBlbmRhbnQgbW9kdWxlcyAobWVtb3J5LCBocHV4LCBrZXJuZWxfc3Vub3M1KSBsb2FkcwogICAgICAgZnJvbSB0aGUgY29uZmlndXJlIGludG8gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAtIChpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIHR5cGVjYXN0IGtsb29rdXAgY2FsbHMgZm9yIGZyZWVic2QyLgogICAKMTk5Ny0xMC0yMiAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChjb21tb25faGVhZGVyLmgsIHJlYWRfY29uZmlnLmMsIGRpc2suYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgIC0gVHlwbydzIGZpeGVkIGJ5IE5pZWxzLgogICAKMTk5Ny0xMC0yMSAxMjozNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU1ICkKICAgCjE5OTctMTAtMjEgMTI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBkaWQgYSBtYWtlIGRlcGVuZC4KICAgCjE5OTctMTAtMjEgMTI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kLi4KICAgCjE5OTctMTAtMjEgMTI6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kIHNldHVwLgogICAKMTk5Ny0xMC0yMSAxMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAosIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2Rpc2suaCwgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL2xvYWRhdmUuaCwKICAgbWliZ3JvdXAvcGFzcy5oLCBtaWJncm91cC9wcm9jLmMsIG1pYmdyb3VwL3Byb2MuaAosIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmgsCiAgIG1pYmdyb3VwL3N5c3RlbS5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKGFnZW50L3JlYWRfY29uZmlnLltjaF0sIHNubXBkLmMsIHNubXBfdmFycy5jLCBtaWJncm91cC8qKToKICAgICAtIG1vdmVkIHJlYWRfY29uZmlnLltjaF0gdXAgYSBsZXZlbCB0byBhbHdheXMgYmUgY29tcGlsZWQgaW4uCiAgIAoxOTk3LTEwLTIxIDExOjAyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTQgKQogICAKMTk5Ny0xMC0yMSAxMTowMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBiZWdpbm5pbmdzIG9mIE5FV1MgdXBkYXRlcy4KICAgCjE5OTctMTAtMjEgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYwo6CgogICAtIChocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIG1lbW9yeS5jKTogY2xvc2Ugb3BlbiBmaWxlcyBvbiBsaW51eC4KICAgCjE5OTctMTAtMjEgMTA6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFsbG93IC12IDJoIGFuZCAycCBmb3IgcGFydHkgY29kZS4KICAgCjE5OTctMTAtMjEgMTA6MTUgIGhhcmRha2VyCgogICAqIFBPUlRJTkcsIFJFQURNRToKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSk6IG1pbm9yIHVwZGF0ZXMuCiAgIAoxOTk3LTEwLTIwIDE5OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZGVmaW5lIGF0IGxlYXN0IGJsYW5rIGZ1bmMgbmxpc3RfaW5pdCgpIG9uIGxpbnV4LgogICAKMTk5Ny0xMC0yMCAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSBsaW51eCdzIE9TIHR5cGUuCiAgIAoxOTk3LTEwLTIwIDE4OjAxICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCB1Y2Rfc25tcC5oLCBzbXV4X2dhdGVkLmgpOgogICAgIC0gY3JlYXRlZCBuZXcgd3JhcHBlcnMgZm9yIHRoZSB2YXJpb3VzIG1vZHVsZXMgdG8gbWFrZSB0aGVtIGVhc3kgdG8KICAgICAgIGFkZCBhbmQgcmVtb3ZlIGFzIG5lZWRlZC4KICAgCjE5OTctMTAtMjAgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC5jLCBob3N0LmgsIGhyX2RldmljZS5jLAogICBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfbmV0d29yay5jLCBocl9vdGhlci5jCiwgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywKICAgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywKICAgaHJfc3lzdGVtLmM6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KICAgCjE5OTctMTAtMjAgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUkVBRE1FLCB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIChhZ2VudC9taWJncm91cC9SRUFETUUsIHdvbWJhdC5bY2hdKToKICAgICAtIGRvY3VtZW50YXRpb24gdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgdXNhZ2UuCiAgIAoxOTk3LTEwLTIwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgogICAKMTk5Ny0xMC0yMCAxNjo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogcGF0Y2ggYWxsIG90aGVyIGVudi12YXJzIHRvIHRha2UgJysnIGluIGZyb250LgogICAKMTk5Ny0xMC0yMCAxNjozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogRnJvbSBEYXZlOiAgcGF0Y2ggREVGQVVMVF9NSUJTIHRvIHRha2UgJysnIGluIGZyb250LgogICAKMTk5Ny0xMC0yMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gZG9uJ3QgcmVwb3J0IGFuIGVycm9yIGlmIHlvdSBjYW4ndCBmaW5kIGEgc25tcGQuY29uZiBmaWxlLgogICAgIC0gZG9uJ3QgcmVwb3J0IGFsbCBsaW5lcyBhcyBhbiBlcnJvciAob3BwcykuCiAgIAoxOTk3LTEwLTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXNzLmM6CgogICAtIChwYXNzLmMpIGRvbid0IG51bGwgbGFzdCBjaGFyIGluIGNvbW1hbmQgbGluZS4KICAgCjE5OTctMTAtMjAgMTE6NTEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLAogICBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wYXNzLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLCBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oCjoKCiAgIC0gKGNvbmZpZyosIGFnZW50L3NubXAqLCBhZ2VudC9taWJncm91cC8qLltjaF0pOgogICAgIC0gQ3JlYXRlZCBhIG5ldyBtaWJtb2R1bGUuaCBjb25maWd1cmF0aW9uIG1hY3JvIGNhbGxlZAogICAgICAgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB0byByZXF1ZXN0IHBhcnNpbmcgb2YKICAgICAgIHRoZSBzbm1wZC5jb25mIGZpbGUocykgb24gYSBwZXIgbW9kdWxlIGJhc2lzLgogICAgIC0gQWxsIHJlbGF0ZWQgcGFyc2luZyBoYXMgYmVlbiBzdHJpcGVkIGZyb20gcmVhZF9jb25maWcuYyBhbmQgbW92ZQogICAgICAgdG8gdGhlaXIgY29ycmVjdCBtb2R1bGUgaW5zdGVhZC4KICAgICAtIE5ldyBmdW5jdGlvbjogY29uZmlnX3BlcnJvcihjaGFyICopOiBwcmludCBlcnJvciB3aXRoIGZpbGUgJiBsaW5lICMuCiAgICAgLSBiYXNpYyAtV2FsbCBjbGVhbnVwcyBpbiBociogYXMgd2VsbCAobm90IG5lYXJseSBkb25lIHlldCkuCiAgIAoxOTk3LTEwLTIwIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KICAgCjE5OTctMTAtMTUgMTg6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5jLCBhZ2VudC9taWJncm91cC9ob3N0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmMKLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYywgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmgsIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwo6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ociopOiBIb3N0IHJlc291cmNlcyBtaWIgZnJvbSBEYXZlIFNoaWVsZC4KICAgICAtIG1pbm9yIHBhdGNoZXMgYnkgbWUsIG1vc3RseSBwb2ludGVyIGVycm9ycy4KICAgLSAobWVtb3J5LmMpOiBmaXhlZCBhIG51bGwgcG9pbnRlciBwcm9ibGVtIHVuZGVyIGxpbnV4LgogICAKMTk5Ny0xMC0xNSAxMjoxMiAgaGFyZGFrZXIKCiAgICogbWlicy8uY3ZzaWdub3JlOgoKICAgLSAobWlicy8uY3ZzaWdub3JlKTogIGFkZGVkIE1ha2VmaWxlLgogICAKMTk5Ny0xMC0xNSAxMjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKOgoKICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIG5ldyBmdW5jdGlvbjogIHNubXBfcGVycm9yKGNoYXIgKikKICAgICAtIGZyZWUgYWxsb2NhdGVkIHNwYWNlIG9mIHNubXBfZGV0YWlsIHVwb24gdXNhZ2UgYnkgc25tcF9hcGlfZXJyc3RyaW5nKCkuCiAgIAoxOTk3LTEwLTE1IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3ZpZXcuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6IFBhdGNoIGZyb20gTmllbHM6CiAgICAgLSB3YXJuaW5nIGZpeGVzLgogICAgIC0gcmVtb3ZlIHRoZSBwcmludGYncyBmcm9tIHRoZSBsaWJyYXJ5IGFuZCBzZXQgYSBzbm1wICdlcnJubycgZXF1aXZhbGVudC4KICAgCjE5OTctMTAtMTUgMDk6NTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogdmlld19wYXJzZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmMpOiBGcm9tIE5pZWxzOiB3YXJuaW5nIHJlbW92YWxzIGFuZCBzdGFuZGFyZGl6YXRpb24uCiAgIAoxOTk3LTEwLTE0IDE1OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jCiwgZXZlbnQuYywgZXZlbnQuaCwgaW50ZXJmYWNlcy5jLAogICBrZXJuZWxfc3Vub3M1LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCwgcGFydHlfdmFycy5jCiwgcmVhZF9jb25maWcuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMKLCB2aWV3X3ZhcnMuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwLyouYyk6IFlNV1JBTUZTRk46CiAgICAgLSAoeWV0IG1vcmUgd2FybmluZyByZW1vdmFscyBhbmQgbWVtb3J5IGZ1bmN0aW9uIHN0YW5kYXJkaXphdGlvbnMgZnJvbSBOaWVscykuCiAgICAgLSBtaW5vciBsaW51eC9uZXRic2QvYnNkaSBjbGVhbiB1cHMuCiAgIAoxOTk3LTEwLTE0IDE1OjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBGcm9tIERhdmUgU2hpZWxkczogcmVmZXIgcmVhZGVyIHRvIGFub3RoZXIgYW5zd2VyIGFzIHdlbGwuCiAgIAoxOTk3LTEwLTE0IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCk6IGR5bml4IGRvZXNuJ3QgaGF2ZSBuZXQvcm91dGUuaC4KICAgCjE5OTctMTAtMTQgMTU6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBGcm9tIERhdmUgU2hpZWxkczoKICAgICAtIHNlbGYgY29udGFpbmVkIG1pYiAudHh0IGZpbGVzIHdpdGggbXVsdGlwbGUgbW9kdWxlcy4KICAgCjE5OTctMTAtMTQgMTU6MTUgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBkb2MgYWRkaXRpb246ICBhZGRfbWliZGlyKCkgcmV0dXJuIHZhbHVlLgogICAKMTk5Ny0wOC0yNSAwMDoyMiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgZm9yIG5ldGJzZC4KICAgCjE5OTctMDgtMjUgMDA6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogY2hlY2tpbiB2ZXJzaW9uLmguCiAgIAoxOTk3LTA4LTI1IDAwOjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogdHlwbyBpbiBpZmRlZi4KICAgCjE5OTctMDgtMTUgMDY6NDUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydCwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMyApCiAgIAoxOTk3LTA4LTE1IDAyOjMwICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3N5c3RlbS5jLCBhZ2VudC9zbm1wZC5jCiwgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGNvbmZpZyosIHNubXBkLmMsIHNubXBfY2xpZW50LltjaF0sIHN5c3RlbS5bY2hdKToKICAgICAtIGZpeCBtb3JlIGxvbmcvaW50IHByb2JsZW1zIG9uIDY0IGJpdCBtYWNoaW5lcyB1X2xvbmcgLT4gaW5fYWRkcl90LgogICAgIC0gQ2hlY2sgZm9yIFNJT0NHSUZBRERSIGluIHN5cy9pb2N0bC5oIGFuZCB1c2UgaXQgaW4gZ2V0X215YWRkcigpIGlmCiAgICAgICBkZWZpbmVkLgogICAKMTk5Ny0wOC0xNCAwODoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBDLiBMYXdyZW5jZSBmb3IgbmV0YnNkICogYnNkL29zIDIuMC4KICAgCjE5OTctMDgtMTQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3Byb2MuYzoKCiAgIC0gKHByb2MuYyk6IGRvbid0IHVzZSBzZXRlcnJvcnN0YXR1cygpIGlmIG5vdCB1c2luZyB0aGUgZXJyb3JtaWIuCiAgIAoxOTk3LTA4LTE0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBQb2ludCBvdXQgdGhhdCBtaWIgbGlzdCBtdXN0IGJlIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAgIAoxOTk3LTA4LTE0IDA4OjE1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopOgogICAgIC0gVHlwbydzIHdoZW4gY29weWluZyBpbiBhIGF1dG9jb25mIHRlc3QuCiAgICAgLSBBZGQgZXJyb3JtaWIgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdCAoc2luY2UgaXRzIG5vIGxvbmdlciByZXF1aXJlZCkuCiAgICAgLSBiYWNrcXVvdGUgYSAuIGluIGEgc2VkIHJlZ2V4cCB0byB3YXRjaCBvdXQgZm9yIG1vZHVsZSBuYW1lcwogICAgICAgYmVnaW5uaW5nIHdpdGggdGhlIGxldHRlciBvLgogICAKMTk5Ny0wOC0xNCAwNzozNyAgd2hhcmRha2UKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoY29uZmlnKiwgRkFRLCBSRUFETUUsIGFnZW50L21pYmdyb3VwLyouYywgYXBwcy8qLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZpZCBQYXVsIFppbW1lcm1hbjoKICAgICAgIC0gcG9ydCB0byBBSVggNC4xLjUuCiAgICAgICAtIGZpeCBtb3JlIHR5cGUgY2FzdGluZyBwcm9ibGVtcy4KICAgCjE5OTctMDgtMTQgMDA6NDYgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMKLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIG1haW4uYyk6CiAgICAgLSBhZGQgLVYgdmVyc2lvbiBmbGFnZS4KICAgCjE5OTctMDgtMTMgMDg6MTAgIHdoYXJkYWtlCgogICAqIHZlcnNpb24uaCwgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZwosIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL3BhcnR5Lmg6CgogICAtICh2ZXJzaW9uLmgsIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gbW92ZSB2ZXJzaW9uIHN0cmluZyB0byBhIGdsb2JhbCBoZWFkZXIuCiAgICAgLSBpbnNlcnQgVVNJTkdfKl9NT0RVTEUgbWFjcm8ncyBpbiBtYW55IHBsYWNlcyB0byBtYWtlIG1vZHVsZQogICAgICAgcmVtb3ZhbCBtb3JlIHBvc3NpYmxlLiAgWW91IGNhbiBub3cgY29tcGlsZSB3aXRoIGFsbW9zdCBubyBtb2R1bGVzCiAgICAgICBpbnN0YWxsZWQuCiAgIAoxOTk3LTA4LTEzIDA0OjQ3ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IG9wdGFyZy9vcHRpbmQgbmVlZCB0byBiZSBkZWNsYWlyZWQgdW5kZXIgdWx0cml4NC4KICAgCjE5OTctMDgtMDcgMDI6MzQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChjb25maWcqLCBtZW1vcnkuYyk6CiAgICAtIGZpeCBzd2FwIG9uIEhQVVggMTAuMjAKICAgCjE5OTctMDgtMDcgMDE6MzMgIHdoYXJkYWtlCgogICAqIGFnZW50Lzoga2VybmVsLmMsIG1pYmdyb3VwL3Byb2MuYzoKCiAgIC0gKGtlcm5lbC5jLCBwcm9jLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gSW1wbGVtZW50IHJlYWwgcHJvY2VzcyB0YWJsZSB3YWxrcyBvbiBVbHRyaXguCiAgIAoxOTk3LTA4LTA3IDAxOjEwICB3aGFyZGFrZQoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcC5jOgoKICAgLSAoY29uZmlnKiwgbG9hZC5jLCBkaXNrLmMsIHBhcnNlLmMsIHNubXAuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgLSBVbHRyaXggZml4ZXMgZm9yIHN0YXRmcywgbG9hZGF2ZS4KICAgICAtIGltcGxlbWVudCBzdHJkdXAgaWYgbm90IGZvdW5kIGluIHN5c3RlbS4KICAgICAtIHRlc3QgZm9yIHRlc3QgZmxhZ3MgZm9yIGtlcm5lbCBjaGVja2luZy4KICAgICAtIHdhdGNoIG91dCBmb3IgcHMnZXMgdGhhdCByZXR1cm4gZWdyZXAgd2l0aCB0aGUgcHMgYXJnIG9uIHRoZSBsaW5lLgogICAgIC0gdXAgbWF4aW11bSBkaXNrcyB0byA1MC4KICAgCjE5OTctMDgtMDcgMDA6MjkgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGJ5IGFwcHMuCiAgIAoxOTk3LTA3LTI0IDIzOjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBFZGR5IEouIEd1cm5leTogIHVuY29tbWVudCBnZXR0aW1lb2ZkYXkoKSBjYWxsLgogICAKMTk5Ny0wNy0wMyAyMzozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMiApCiAgIAoxOTk3LTA3LTAzIDIzOjMzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBtaWIuW2NoXSwgcGFyc2UuW2NoXSk6CiAgICAgLSBOZXcgb3B0aW9uIHRvIHNubXB0cmFuc2xhdGUgKC1hKSB0byBvdXRwdXQgYSBhc2NpaSBkdW1wIG9mIHRoZSBtaWIKICAgICAgIGRhdGFiYXNlIGNhcGFibGUgb2YgYmVpbmcgdXNlZCBieSB0aGUgcGFyc2VyIGZvciBxdWljayBPSUQgdHJhbnNsYXRpb25zLgogICAKMTk5Ny0wNy0wMSAwODozNyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc2Vkc2NyaXB0LmluLAogICBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMSApCiAgIAoxOTk3LTA3LTAxIDA3OjIwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KICAgCjE5OTctMDctMDEgMDY6NDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBsb2FkYXZlLmMsCiAgIG1lbW9yeS5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KICAgCjE5OTctMDctMDEgMDY6MDIgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsCiAgIHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLAogICBzbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMpOiBCZXR0ZXIgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIHVzYWdlKCkgc3RhbmRhcml6YXRpb24uCiAgIAoxOTk3LTA3LTAxIDA1OjQxICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCwgaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBmaXggZnJlZWJzZDMgc3BlY2lmaWMgcHJvYmxlbXMgKGJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gQmlsbCBGZW5uZXIpLgogICAKMTk5Ny0wNy0wMSAwMToxMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoc211eC5jKTogZml4IHByb3RvdHlwaW5nIGZhaWx1cmVzLgogICAKMTk5Ny0wNi0zMCAwNzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMpOiBTdWdnZXN0aW9ucyBmcm9tIExhdWtrYW5lbiBNYXJra3UgTlJDL0hraToKICAgICAtIE1hbGxvYyB0eXBlY2FzdHMgYW5kIG90aGVyIGNvcnJlY3Rpb25zIGluIGNhc3RpbmcuCiAgIAoxOTk3LTA2LTMwIDA2OjU4ICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaAo6CgogICAtIChtaWJfYXBpLjMsIHBhcnNlLltjaF0pOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gSGFuZGxlIG1pYiBtb2R1bGUgcmVwbGFjZW1lbnRzIHRocm91Z2ggbmV3IGZ1bmN0aW9uIGFuZCByZXBsYWNlbWVudCB0YWJsZS4KICAgCjE5OTctMDYtMzAgMDY6NDkgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChjb25maWcqLCBtZW1vcnkuYyk6IFBhdGNoIGZyb20gdmxhZEBtaXNlcnkucm9zcHJpbnQucnU6CiAgICAgLSBpbXBsZW1lbnQgbWVtb3J5IHNlY3Rpb24gb2YgdWNkIG1pYiBvbiBsaW51eC4KICAgCjE5OTctMDYtMzAgMDY6MzggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAod29tYmF0LmgpOiBiZXR0ZXIgZG9jdW1lbnQgY29uZmlnX2xvYWRfbWliKCkgZXhhbXBsZS4KICAgCjE5OTctMDYtMzAgMDY6MzMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIC0gKHNubXB0ZXN0LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCBnZXQgLT4gZmdldCAnXG4nIHByb2JsZW0uCiAgICAgLSBBbHNvIG1ha2VzIHN1cmUgaXQgaGFuZGxlcyB1cCBhbmQgbG93ZXIgY2FzZXMuCiAgIAoxOTk3LTA2LTMwIDA1OjU0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMpOiBEb24ndCBwdXQgJiBpbiBmcm9udCBvZiBvc2Y0IGFjX2VuYWRkci4KICAgCjE5OTctMDYtMzAgMDU6NTMgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKGFnZW50L3NubXBfe2FnZW50LHZhcnN9LmMsIGFsYXJtLmMsIGV2ZW50LmMsIGFwcHMvKiwKICAgICAgc25tcGxpYi9zbm1weyxfYXBpLF9hdXRofS5jKToKICAgICAgLSBBZGRlZCBiYXNpYyAobW9zdGx5IGNvbmZvcm1pbmc/KSB2MmMgc3VwcG9ydC4KICAgICAgLSBNZXJnZWQgYXJnIHBhcnNpbmcgb2YgYXBwcy8qIGNsaWVudHMgaW50byBvbmUgZmlsZS4KICAgCjE5OTctMDYtMjYgMjM6MzkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IF9fUCBtYWNyb3Mgd2VyZSBjYWxsZWQgd2l0aCB0b28gbWFueSBhcmd1bWVudHMgKG5lZWRlZCAoYXJncykpLgogICAKMTk5Ny0wNi0yMyAyMzo0MiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogbmVlZCAyIGxlYWRpbmcgJy0ncyBvbiAtLXdpdGgtbWliLW1vZHVsZXMgZmxhZy4KICAgCjE5OTctMDYtMjMgMjM6NDEgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKik6IGJzZGkzIG5lZWRzIHRvIGRlZmluZSBic2RpMiwgbm90IGl0c2VsZiAoZHVoKS4KICAgCjE5OTctMDYtMjMgMjM6NDAgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gQ2hhcmx0b24gdG8gZml4IGxlYWRpbmcgc3BhY2VzIGluIHNlZHNjcmlwdC4KICAgCjE5OTctMDYtMTEgMDU6NDYgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHdob29wcy4KICAgCjE5OTctMDYtMTEgMDQ6NTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gbWFrZSBNSUJGSUxFUyBlbnYgdmFyIHdvcmsgY29ycmVjdGx5LgogICAKMTk5Ny0wNS0yNiAwMjozOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbmllbHMgQmFnZ2VzZW4gdG86CiAgICAgLSBjbG9zZSBtaWJmaWxlcyBmb3IgTUlCUz1BTEwuCiAgICAgLSBBbGxvdyBTWU5UQVggRGlzcGxheVN0cmluZyAoU0laRSkgaW5zaWRlIE9CSkVDVC1UWVBFLgogICAKMTk5Ny0wNS0yNiAwMTo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjIgKQogICAKMTk5Ny0wNS0yNiAwMTo1NyAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciAzLjIuCiAgIAoxOTk3LTA1LTI2IDAxOjU2ICB3aGFyZGFrZQoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoc25tcGNoZWNrLmRlZik6IG5ldyB2YXJpYWJsZXMgdG8gc2V0IHdhbGsvZ2V0L3NldCBjb21tYW5kIGxpbmUgdXNhZ2UuCiAgIAoxOTk3LTA1LTI2IDAxOjUyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogdHJhcCBsb25nJ3MgYmFjayB0byBpbnRzLCBiYWQgc29sdXRpb24uCiAgIAoxOTk3LTA1LTI2IDAxOjUwICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKElOU1RBTEwsIGNvbmZpZ3VyZSk6IGRlZmF1bHQgbWlicyBsaXN0ZWQgY29ycmVjdGx5LgogICAKMTk5Ny0wNS0yMyAwNzozNCAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IE1vZGlmaXkgdG8gbm90ZSBkZWZhdWx0IG1pYnMuCiAgIAoxOTk3LTA1LTIzIDA3OjIzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTggKQogICAKMTk5Ny0wNS0yMyAwNDo0MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IENoYW5nZSB0cmFwIHR5cGVzIGZyb20gaW50IHRvIGxvbmcuCiAgIAoxOTk3LTA1LTIzIDA0OjQwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggU05NUCBwZXJsIGFnYWluLgogICAKMTk5Ny0wNS0yMyAwNDozOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IG11bHRpcGxlIGZyZWVzIGluIHYyIHBkdSdzLgogICAKMTk5Ny0wNS0yMyAwNDozNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGllbm5lcyBwcm9ibGVtcy4KICAgCjE5OTctMDUtMjMgMDQ6MzYgIHdoYXJkYWtlCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBTTk1QdjItVEMudHh0OgoKICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dCk6IEZyb20gTmllbHM6IGNoYW5nZSBpbXBvcnQgY2xhdXNlcy4KICAgCjE5OTctMDUtMjMgMDQ6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWFubmVzIHByb2JsZW1zLgogICAKMTk5Ny0wNS0yMyAwNDozNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IFNldCBkZWZhdWx0IE1JQiBsaXN0LgogICAKMTk5Ny0wNS0yMiAwNDoxMyAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTTJNLU1JQi50eHQ6CgogICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiByZXN0b3JlZC4gIEdvdCB0cnVuY2F0ZWQuCiAgIAoxOTk3LTA1LTIxIDA2OjQwICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KICAgCjE5OTctMDUtMjEgMDY6MzggIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTA1LTIxIDAxOjEzICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IFVwZGF0ZSBmb3IgMy4yLgogICAKMTk5Ny0wNS0yMCAwNzo1MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGNvZGUgZnJvbSBEYXZlIFNoaWVsZDogYWRkIGJhY2sgaW4gZmluZF9ub2RlKCkgZm9yIHBlcmwgdXNhZ2UuCiAgIAoxOTk3LTA1LTIwIDA3OjUwICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHNubXBzZXQgc2hvdWxkIGNoZWNrIGFnYWluc3Qgc2l6ZSBkZWZpbmVkIGluIG1pYi4KICAgCjE5OTctMDUtMjAgMDI6MjQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC5jOgoKICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246ICBGaXggbXkgY3BwIHN0dXBpZGl0eS4KICAgCjE5OTctMDUtMjAgMDE6MDggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNyApCiAgIAoxOTk3LTA1LTE5IDIzOjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXV0aC5jOgoKICAgLSAobWliLmMsIHNubXBfYXV0aC5jKTogaW5jbHVkZSBzeXMvc2VsZWN0LmggZm9yIEFJWC4KICAgCjE5OTctMDUtMTkgMjM6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBwcm90ZWN0IGFnYWluc3QgMCBpbXBvcnQgY2FsbHMuCiAgIAoxOTk3LTA1LTE5IDIzOjE4ICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1UQy50eHQ6CgogICAtIChTTk1QdjItVEMudHh0KTogQ29tbWVudCBvdXQgT2JqZWN0U3ludGF4IGltcG9ydC4KICAgCjE5OTctMDUtMTkgMjM6MDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC5jOgoKICAgLSAodWRwLmMpOiBPbmx5IGRvIE1hcnRpbiBKYWNvYnNzZW4ncyBmaXhlcyBmb3IgZnJlZWJzZDIuCiAgIAoxOTk3LTA1LTE2IDAyOjI1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUHJvdGVjdCBtYWxsb2MgYWdhaW5zdCAwIGV4dGVybmFsIGltcG9ydHMuCiAgIAoxOTk3LTA1LTE1IDA3OjQzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc2VuOgogICAgIC0gRml4IHVkcF9pbnBjYiBzdHJ1Y3R1cmVzLgogICAKMTk5Ny0wNS0xNSAwNzoyNiAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAtIFdvcmRpbmcgYW5kIG9yZGVyIGNoYW5nZXMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KICAgCjE5OTctMDUtMTUgMDc6MjIgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgLSBEaXNwbGF5IGRlZmF1bHRzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjAxICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChjb25maWcqLCBtaWIuYyk6CiAgICAgLSBDaGFuZ2VkIGVudiB2YXJpYWJsZSBNSUJGSUxFIC0+IE1JQkZJTEVTIChzaW5jZSBpdCBpcyBhIGxpc3Qgbm93KS4KICAgICAgICh3aWxsIGFjY2VwdCBNSUJGSUxFIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCiAgICAgLSBCeSBkZWZhdWx0LCAqbm8qIGFkZGl0aW9uYWwgbWliZmlsZXMgYXJlIGxvYWRlZCAoaWUsIG1pYi50eHQgaXMgbm8KICAgICAgIGxvbmdlciBsb2FkZWQpIGFuZCBtdXN0IGJlIHR1cm5lZCBvbiB0aHJvdWdoIGNvbmZpZ3VyZSBvciB0aGUgZW52IHZhci4KICAgICAtIE5ldyBjb25maWd1cmUgb3B0aW9ucyB0byBzZXQgZGVmYXVsdCBNSUJTLCBNSUJGSUxFUywgTUlCRElSUy4KICAgCjE5OTctMDUtMTUgMDY6MjIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgQWRkIG5ldyBub2RlIHN0cnVjdHVyZSBlbnRyaWVzLgogICAKMTk5Ny0wNS0xNSAwNTozNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkZWFsIHdpdGggbXVsdGlwbGUgbW9kdWxlIElEJ3MgYmVpbmcgcmVmZXJlbmNlZCBvciBub2RlcyBkZWZpbmVkLgogICAgIC0gc3VwcmVzcyAibmFtZSBjbGFzaCIgd2FybmluZ3MgZm9yIGFub255bW91cyBub2Rlcy4KICAgCjE5OTctMDUtMTUgMDI6MzIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHByb3RvdHlwaW5nIGFuZCBudWxsIGNoZWNraW5nLgogICAgIC0gaWYgTUlCUyBpcyBzZXQgdG8gQUxMLCBwYXJzZSBldmVyeXRoaW5nIGZvdW5kLgogICAKMTk5Ny0wNS0xNSAwMjozMSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItU01JLnR4dDoKCiAgIC0gKFNOTVB2Mi1TTUkudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGNjaXR0IC0+IDAuCiAgIAoxOTk3LTA1LTE1IDAyOjMwICB3aGFyZGFrZQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGltcG9ydCBpbmRlbnRpZmllcnMuCiAgIAoxOTk3LTA1LTE1IDAyOjI5ICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIE1JQlMgdmFyaWFibGUgY2FuIGJlIHNldCB0byBBTEwuCiAgIAoxOTk3LTA1LTE1IDAyOjI4ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcmVmZXJlbmNlIHRoZSBtYWtldGFyZ2V0IHNjcmlwdC4KICAgCjE5OTctMDUtMTUgMDI6MjMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBwdXJlbHkgbnVtZXJpYyBPSURzLgogICAKMTk5Ny0wNS0xNSAwMjoyMiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogcGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIGZvciBGcmVlQlNECiAgIAoxOTk3LTA1LTE0IDA2OjAwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTYgKQogICAKMTk5Ny0wNS0xNCAwNDo0NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiAgVHlwZWNhc3QgbWFsbG9jLgogICAKMTk5Ny0wNS0xNCAwNDoxNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE9kZGJqb3JuIFN0ZWZmZW5zZW46CiAgICAgLSBQcm90ZWN0IGFnYWluc3QgYmFzaCBuZWVkaW5nICc7J3Mgb24gbXVsdGlwbGUgc3ViZGlyIG1ha2VzLgogICAKMTk5Ny0wNS0xNCAwNDoxMyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHdhcm4gaWYgbWliLnR4dCBpcyBpbnN0YWxsZWQgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuCiAgIAoxOTk3LTA1LTE0IDAyOjQxICB3aGFyZGFrZQoKICAgKiBtaWIudHh0LCBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWIudHh0KTogcmVtb3ZlZCBtaWIudHh0IGZyb20gZGlzdHJpYnV0aW9uLiAgTm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTctMDUtMTMgMDc6MjIgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGNvbmZpZyosbWliLmMpOiBOZXcgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtZGVmYXVsdC1taWJzPSJsaXN0Omxpc3QiLgogICAKMTk5Ny0wNS0xMyAwNjozOCAgd2hhcmRha2UKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiB1Y2Qtc25tcC50eHQgLT4gVUNELVNOTVAtTUlCLnR4dC4KICAgCjE5OTctMDUtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gVUNELVNOTVAtTUlCLnR4dAogICAKMTk5Ny0wNS0xMyAwNjozNiAgd2hhcmRha2UKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vdmVkIGZyb20gdWNkLXNubXAudHh0LgogICAKMTk5Ny0wNS0xMyAwNjowNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYXJjaGl0ZWN0dXJlIGxpc3QgdXBkYXRlLgogICAKMTk5Ny0wNS0xMyAwNjowNSAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBJTlNUQUxMKTogTmV3IGZsYWdzIHRvIHNldCBwcm9tcHRlZCB2YWx1ZXMgaW5zdGVhZCBvZiBwcm9tcHRpbmcuCiAgIAoxOTk3LTA1LTEzIDA1OjQ4ICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IENoYW5nZWQgSUQgdG8gVUNELVNOTVAKICAgCjE5OTctMDUtMTMgMDM6MDMgIHdoYXJkYWtlCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChtaWJzL01ha2VmaWxlLmluKTogcmVtb3ZlZCBzbm1wdjIudHh0LCByZmMxMjcxLnR4dC4KICAgCjE5OTctMDUtMTMgMDM6MDIgIHdoYXJkYWtlCgogICAqIG1pYnMvc25tcHYyLnR4dDoKCiAgIC0gKHNubXB2Mi50eHQpOiByZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMjo1NyAgd2hhcmRha2UKCiAgICogbWlicy9yZmMxMjcxLnR4dDoKCiAgIC0gKHJmYzEyNzEudHh0KTogcmVtb3ZlZC4KICAgCjE5OTctMDUtMTMgMDE6NTIgIHdoYXJkYWtlCgogICAqIG1pYnMvOiB1Y2Qtc25tcC50eHQsIHVjZC50eHQ6CgogICAtICh1Y2QudHh0KTogd2hvb3BzLiAgUmVtb3ZlZC4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTIxMy1NSUIudHh0OgoKICAgLSAoUkZDMTIxMy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzExNTUtU01JLnR4dDoKCiAgIC0gKFJGQzExNTUtU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMjcxLU1JQi50eHQ6CgogICAtIChSRkMxMjcxLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLU0yTS1NSUIudHh0OgoKICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1QQVJUWS1NSUIudHh0OgoKICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvVURQLU1JQi50eHQ6CgogICAtIChVRFAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9UQ1AtTUlCLnR4dDoKCiAgIC0gKFRDUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1UTS50eHQ6CgogICAtIChTTk1QdjItVE0udHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1UQy50eHQ6CgogICAtIChTTk1QdjItVEMudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1TTUkudHh0OgoKICAgLSAoU05NUHYyLVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLU1JQi50eHQ6CgogICAtIChTTk1QdjItTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIChTTk1QdjItQ09ORi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSVAtTUlCLnR4dDoKCiAgIC0gKElQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQ6CgogICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0V0aGVyTGlrZS1NSUIudHh0OgoKICAgLSAoRXRoZXJMaWtlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLnR4dDoKCiAgIC0gKHVjZC50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSUYtTUlCLnR4dDoKCiAgIC0gKElGLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTEgMjM6NTIgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAobWlicy91Y2Qtc25tcC50eHQpOiBQYXRjaCBmcm9tIE1hcmlvIERlRmF6aW8gdG8gZml4IHR5cG9zLgogICAgIC0gY29tcGlsZXMgdW5kZXIgU05NUGMgNC4xZy4KICAgCjE5OTctMDUtMTEgMjM6NDkgIHdoYXJkYWtlCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IGluc3RhbGwgbWliX2FwaS4zLgogICAKMTk5Ny0wNS0xMSAyMzo0OCAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgUkVBRE1FLCBUT0RPOgoKICAgLSAoSU5TVEFMTCwgUkVBRE1FLCBUT0RPKTogZG9jdW1lbnRhdGlvbiB1cGRhdGUuCiAgIAoxOTk3LTA1LTExIDIzOjQ0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogcmVtb3ZlZCBDQ0hBQ0sgPz8/LgogICAKMTk5Ny0wNS0xMSAyMzo0MyAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmM6CgogICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiAgQlNESTMgc3BlY2lmaWMgaGVhZGVycyBhbmQgZGVmaW5lcy4KICAgCjE5OTctMDUtMTAgMDg6MjMgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuYywKICAgbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkZWZhdWx0IHRyYXAgY29tbXVuaXR5LgogICAgIC0gbXVsdGlwbGUgdHJhcCBzaW5rcy4KICAgCjE5OTctMDUtMTAgMDc6NTIgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBOZXcgZmlsZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wNS0xMCAwNzo0NSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICB1cGRhdGUuCiAgIAoxOTk3LTA1LTEwIDA3OjQxICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZG9uJ3Qgc3VibWl0IGJsYW5rIGJ1Zy1yZXBvcnRzLgogICAKMTk5Ny0wNS0wOSAxNTo1MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMgKGV2ZW4gYmV0dGVyKS4KICAgCjE5OTctMDUtMDkgMTU6NDYgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzLgogICAKMTk5Ny0wNS0wOSAxNToyOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgbmVnYXRpdmUgbnVtYmVycyBpbiBtaWJzLgogICAKMTk5Ny0wNS0wOSAxNTowMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nIChtb3N0bHkpLgogICAKMTk5Ny0wNS0wOSAxNDo1MiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguW2NoXSk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcuCiAgIAoxOTk3LTA1LTA5IDEzOjQ2ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IFVwZGF0ZS4KICAgCjE5OTctMDUtMDkgMTM6NDYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguYywgY29uZmlndXJlLmluLCBjb25maWd1cmUKLCBjb25maWcuaC5pbjoKCiAgIC0gKHNtdXguYywgY29uZmlnKik6CiAgICAgLSBjaGVjayBmb3Igc2d0dHkuaCBhbmQgcHJvdG90eXBlIGJldHRlci4KICAgCjE5OTctMDUtMDkgMTM6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgbWliLmMsIG1pYi5oLCBwYXJzZS5jCiwgcGFyc2UuaDoKCiAgIC0gKG1pYi5bY2hdLCBwYXJzZS5bY2hdLCBNYWtlZmlsZS5pbik6IE5ldyBwYXJzZXIgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIFJ1bi10aW1lIGNvbnRyb2wgb2YgaW5pdGlhbCBtb2R1bGUgbG9hZGluZwogICAgICAgICAgICAgKHVzZXMgZW52IHZhcmlhYmxlcyBNSUJESVJTLCBNSUJTLCBhbmQgTUlCRklMRSkKICAgICAtIERlZmluZWQgaW50ZXJmYWNlcyBmb3IgbG9hZGluZyBtb2R1bGVzIGFuZCByZXRyZWl2aW5nIGVudHJpZXMKICAgICAtIE1vZHVsZSBzY29waW5nIG5vdyBpbmNsdWRlcyBUZXh0dWFsIENvbnZlbnRpb25zCiAgICAgLSBUb2tlbnMgaW1wbGVtZW50ZWQgaW50ZXJuYWxseSBubyBsb25nZXIgcmVxdWlyZSBpbXBvcnRpbmcgdGhlCiAgICAgICBjb3JyZXNwb25kaW5nIG1vZHVsZXMKICAgCjE5OTctMDQtMjIgMTE6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNSApCiAgIAoxOTk3LTA0LTIyIDA4OjQzICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKGNvbmZpZyosIHNtdXguYyk6IENoZWNrIGZvciBoZWFkZXJzIGFuZCBkZWZpbmUgRkRfQ09QWSBpZiBub3QgZGVmaW5lZC4KICAgCjE5OTctMDQtMjIgMDc6NDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsCiAgIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYzoKCiAgIC0gKHNubXBfYmdwLmMsIHNubXBfcmlwMi5jLCBzbm1wX29zcGYuYywgc211eC5bY2hdKToKICAgICAtIHN0YW5kYXJkaXplIGhlYWRlcnMgZm9yIGF1dG9jb25mLgogICAgIC0gc211eF9pbml0KCkgLT4gaW5pdF9zbXV4KCkuCiAgICAgLSBTTVVYREVCVUcgLT4gRE9ERUJVRyAoLS1lbmFibGUtZGVidWdnaW5nIHR1cm5zIHRoaXMgb24gYXV0b21hdGljYWxseSkuCiAgIAoxOTk3LTA0LTIyIDA2OjUxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jCiwgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaDoKCiAgIC0gKHNubXBfYmdwLltjaF0sIHNubXBfcmlwMi5bY2hdLCBzbm1wX29zcGYuW2NoXSk6CiAgICAgLSBjb25mb3JtIHRvIG5ldyBtb2R1bGUgc3RhbmRhcmRzIG9mIGNvZGluZy4KICAgCjE5OTctMDQtMjIgMDY6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IHJlbW92ZSBkdXBsaWNhdGUgKHdhcm5pbmcpIFRDUCBkZWZpbmVzIG9uIG9zZjQgc3lzdGVtcy4KICAgCjE5OTctMDQtMjIgMDY6MjAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogUkVBRE1FLnNtdXgsIHNtdXguYywgc211eC5oLAogICBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmM6CgogICAtIChSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYyk6CiAgICAgLSBzbXV4IHN1cHBvcnQgZm9yIGdhdGVkIGZyb20gUm9oaXQgRHViZS4KICAgCjE5OTctMDQtMjIgMDY6MDIgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggdmFyaW91cyB0aGluZ3MsIG1vc3RseSBvbiBsaW51eC4KICAgCjE5OTctMDQtMjIgMDU6NTkgIHdoYXJkYWtlCgogICAqIG1ha2V0YXJnZXQsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5saW51eC5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC90Y3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5oLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmg6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggdmFyaW91cyB0aGluZ3MsIG1vc3RseSBvbiBsaW51eC4KICAgCjE5OTctMDQtMjEgMjM6NDIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZhcmlvdXMgdXBkYXRlcy4KICAgCjE5OTctMDMtMjYgMDg6MDUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAobWliZ3JvdXAvc3lzdGVtLmMpOiByZXBvcnQgYWdlbnQgdXB0aW1lIHJhdGhlciB0aGFuIHN5c3RlbSB1cHRpbWUuCiAgIAoxOTk3LTAzLTI1IDA0OjMwICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IG1pbm9yIGRvYyB1cGRhdGUgZm9yIG5ldyBmbGFncy4KICAgCjE5OTctMDMtMjUgMDA6MzkgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgc3lzbG9jYXRpb24gYW5kIHN5c2NvbnRhY3QgZXhhbXBsZXMuCiAgIAoxOTk3LTAzLTI0IDA0OjU2ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0yNCAwMDo1MSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcnVucyBvbiBic2RpIDIuMS4KICAgCjE5OTctMDMtMjQgMDA6NTEgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBXYXRjaCBvdXQgZm9yIG11bHRpcGxlIHNwYWNlcyBpbiBDIGRlZnMuCiAgIAoxOTk3LTAzLTI0IDAwOjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoZXhhbXBsZS5jLC5oKTogTmV3IGV4YW1wbGUgbWliIG1vZHVsZSBkdXBsaWNhdGluZyB0aGUgcGFzc3Rlc3QKICAgICBzY3JpcHQgaW4gQyBjb2RlLgogICAKMTk5Ny0wMy0yNCAwMDo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHByb3RvdHlwZSB3cml0ZSBmdW5jdGlvbiBiZXR0ZXIuCiAgIAoxOTk3LTAzLTE4IDA3OjUzICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBzbm1wLmNvbmYgLT4gc25tcGQuY29uZgogICAKMTk5Ny0wMy0xOCAwNzo1MiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTE0IDA3OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChtaWJncm91cC9SRUFETUUpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTQgMDQ6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNCApCiAgIAoxOTk3LTAzLTE0IDA0OjU0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWlicy91Y2Qtc25tcC50eHQ6CgogICAtIChhY2NvbmZpZy5oLCB1Y2Qtc25tcC50eHQpOiByZWNvZ25pemUgbmV3IGhvc3RzIGZvciBzeXNPYmplY3RJZC4KICAgCjE5OTctMDMtMTQgMDQ6NTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIGFnZW50L3NubXBkLmMKOgoKICAgLSAoc25tcGQuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzeXN0ZW0uW2NoXSk6CiAgICAgLSA2NGJpdCBmaXg6IGdldF9teWFkZHIoKSBzaG91bGQgcmV0dXJuIGludCBub3QgbG9uZy4KICAgCjE5OTctMDMtMTQgMDQ6NTEgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluKTogZml4IHRyYXAgYnkgaW5jbHVkaW5nIG9wdGlvbmFsIC5vIGZpbGVzLgogICAKMTk5Ny0wMy0xNCAwMjoyMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9ncm91cHZhcnMuaDoKCiAgIC0gKHNubXBfZ3JvdXB2YXJzLmgpOiBheGUuCiAgIAoxOTk3LTAzLTE0IDAyOjIwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnNfZXZlbnQuaDoKCiAgIC0gKHNubXBfdmFyc19ldmVudC5oKTogYXhlLgogICAKMTk5Ny0wMy0xNCAwMjoxOCAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMy0xNCAwMjoxNyAgd2hhcmRha2UKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiBydW4gb24gc25tcG5ldHN0YXQgZGlyIGFsc28uCiAgIAoxOTk3LTAzLTE0IDAyOjA3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRml4IHNlZHNjcmlwdCB0byBpbmNsdWRlIHMjIGFzIHdlbGwgYXMgcy8gY29tbWFuZHMuCiAgIAoxOTk3LTAzLTE0IDAyOjAxICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IFVwZGF0ZWQgdG8gaW5jbHVkZSAtYy8tQyBhbmQgU05NUENPTkZQQVRIIGVudiB2YXIuCiAgIAoxOTk3LTAzLTE0IDAxOjQ5ICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IHJlbW92ZSB0aGUgbGFzdCBvZiB0aGUgc2VkIHNjcmlwdCBkZWZzLgogICAKMTk5Ny0wMy0xNCAwMTo0OCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZyosIG1pYnMvTWFrZWZpbGUuaW4pOiBlbmFibGUgbWlicy8gbWFrZSBpbnN0YWxsLgogICAKMTk5Ny0wMy0xNCAwMDo0OSAgd2hhcmRha2UKCiAgICogbWlicy86IHJmYzEyNzEudHh0LCBzbm1wdjIudHh0LCB1Y2Qtc25tcC50eHQ6CgogICAtIChtaWJzL3tyZmMxMjcxLHNubXB2Mix1Y2Qtc25tcH0udHh0KTogTmV3IG1pYnMgZGlyZWN0b3J5IGZvciBzdWItbWlicy4KICAgCjE5OTctMDMtMTQgMDA6NDcgIHdoYXJkYWtlCgogICAqIG1pYi50eHQ6CgogICAtIChtaWIudHh0KTogc3RyZWFtZWQgZG93bi4KICAgCjE5OTctMDMtMTQgMDA6NDYgIHdoYXJkYWtlCgogICAqIHVjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIG1pYnMvLgogICAKMTk5Ny0wMy0xNCAwMDozOCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGVjZS1taWIuZGVmLCBtaWIudHh0LCBtaWJJSS50eHQKLCB1Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQsIG1pYi50eHQsIE1ha2VmaWxlLmluKTogRG9uJ3QgYnVpbGQgbWliIGZpbGVzIGFueW1vcmUuCiAgIAoxOTk3LTAzLTEzIDA4OjQ1ICB3aGFyZGFrZQoKICAgKiBtYWtldGFyZ2V0LCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wbmV0c3RhdC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgLSBBIGxhcmdlIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZSBMaW51eCBwb3J0CiAgICAgLSBTb21lIHByb2JsZW1zIHdpdGggTmV0QlNEIDEuMkMsIGJ1dCBpdCdzIHN0aWxsIG5vdCBwZXJmZWN0CiAgICAgLSBNb3JlIChzeW1ib2xpYykgZGVidWcgb3V0cHV0IGZyb20gc25tcGQsIHdoZW4gdXNpbmcgLVYuIC1kIGltcGxpZXMgLVYKICAgICAgIFNob3dzIHlvdSB2YXJpYWJsZSByZXF1ZXN0ZWQgYW5kIHZhbHVlIHJldHVybmVkCiAgICAgLSBSZXR1cm4gaXBSb3V0ZU1hc2sgdW5kZXIgU29sYXJpcwogICAgIC0gc25tcG5ldHN0YXQgLXIgc2hvd3Mgbm9uLXN0YW5kYXJkIG5ldG1hc2tzCiAgICAgLSBzbm1wbmV0c3RhdCAtbyAobmV3KSBzaG93cyBpbnRlcmZhY2Ugb2N0ZXRzLCB3aXRob3V0IGVucXVpcmluZyBmb3IgbXR1CiAgICAgICBhbmQgb3RoZXIgdmFyaWFibGVzIG5vdCBwcmVzZW50IGZvciBhIENpc2NvIEZyYW1lLVJlbGF5IHZpcnR1YWwgY2lyY3VpdAogICAgICAgaW50ZXJmYWNlCiAgICAgLSBzbm1wbmV0c3RhdCB0Y3AvdWRwIHByaW50LW91dCBoYWQgbnRvaHMvaHRvbnMgaW4gd3JvbmcgcGxhY2VzIGZvciBwb3J0CiAgICAgICBudW1iZXJzIChzaG93cyB1cCBvbiBsaXR0bGUtZW5kaWFuIGFyY2hpdGVjdHVyZXMpCiAgICAgLSBhZGRzIGEgbWFrZXRhcmdldCBzY3JpcHQgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBwYXJhbGxlbCBzeW1saW5rZWQKICAgICAgIHNvdXJjZSBkaXJlY3RvcnkuIFVzZWZ1bCBpZiB5b3VyIG1ha2UgZG9lcyBub3Qgc3VwcG9ydCBWUEFUSAogICAKMTk5Ny0wMy0xMyAwODoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogZml4IHBhdGggdG8gYWxhcm0uaC4KICAgCjE5OTctMDMtMTMgMDc6MTcgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChhcHBzLyovTWFrZWZpbGUuaW4pOiBkZXBlbmQgcHJvYmxlbXMgZml4LgogICAKMTk5Ny0wMy0xMyAwNzoxMCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogcmVtb3ZlIGR1cGxpY2F0ZSBnZXRob3N0bmFtZSBjaGVjay4KICAgCjE5OTctMDMtMTMgMDc6MDcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIHJ1bGUgZml4ZXMgYXMgd2VsbC4KICAgCjE5OTctMDMtMTMgMDY6NDUgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBOZXcgbWFrZSBkZXBlbmQgcnVsZXMgdG8gc2VwZXJhdGUgc3lzdGVtL25vbiBkZXBlbmRlbnQgc3R1ZmYuCiAgIAoxOTk3LTAzLTEzIDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3Igc3lzdGVtIGRlcGVuZGVudCBtb2R1bGVzLgogICAKMTk5Ny0wMy0xMyAwNjozNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2aWV3X3ZhcnMuYywgY29udGV4dF92YXJzLmMsCiAgIGFjbF92YXJzLmM6CgogICAtICh2aWV3X3ZhcnMuYywgY29udGV4dF92YXJzLmMsIGFjbF92YXJzLmMpOiBkb24ndCBpbmNsdWRlIHNubXB2Ml92YXJzLmguCiAgIAoxOTk3LTAzLTEzIDA2OjM1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oOgoKICAgLSAoaHB1eC5jLCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggbWlub3IgcHJvYmxlbXMuCiAgIAoxOTk3LTAzLTEzIDA1OjQ0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhY2wuY29uZiwga2VybmVsX3N1bm9zNS5jCiwga2VybmVsX3N1bm9zNS5oLCByb3V0ZV93cml0ZS5jLAogICBzbm1wX3Zhcl9yb3V0ZS5jLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuW2NoXSk6IG1vdmVkIHRvIG1pYmdyb3VwLy4KICAgLSAocm91dGVfd3JpdGUuYywgc25tcF92YXJfcm91dGUuYyk6IGRlbGV0ZSBmcm9tIGFnZW50IGRpci4KICAgCjE5OTctMDMtMTMgMDU6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFjbF92YXJzLmMsIGFsYXJtLmMsCiAgIGFsYXJtLmgsIGNvbW1vbl9oZWFkZXIuaCwgY29udGV4dF92YXJzLmMsIGV2ZW50LmMKLCBldmVudC5oLCBwYXJ0eV92YXJzLmMsIHNubXBfdmFycy5jLAogICBzbm1wZC5jLCB2aWV3X3ZhcnMuYywgbWliZ3JvdXAvYWNsX3ZhcnMuYywKICAgbWliZ3JvdXAvYWNsX3ZhcnMuaCwgbWliZ3JvdXAvYWxhcm0uYywgbWliZ3JvdXAvYWxhcm0uaAosIG1pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBtaWJncm91cC9jb250ZXh0X3ZhcnMuaAosIG1pYmdyb3VwL2V2ZW50LmMsIG1pYmdyb3VwL2V2ZW50LmgsCiAgIG1pYmdyb3VwL3BhcnR5X3ZhcnMuYywgbWliZ3JvdXAvcGFydHlfdmFycy5oLAogICBtaWJncm91cC9zbm1wdjJfc3VidHJlZXMuaCwgbWliZ3JvdXAvc25tcHYyX3ZhcnMuaCwKICAgbWliZ3JvdXAvdmlld192YXJzLmMsIG1pYmdyb3VwL3ZpZXdfdmFycy5oOgoKICAgLSAoYWdlbnQvKiwgbWliZ3JvdXAvKik6IG1vdmVkIGFsYXJtLCBjb250ZXh0LCB2aWV3cywgZXZlbnQsIHBhcnR5LAogICAgIGFuZCBhY2wgdmFyaWFibGUgZ3JvdXBzIHRvIG1pYmdyb3VwLy4KICAgCjE5OTctMDMtMTMgMDE6MTQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGVfc3VidHJlZXMuaDoKCiAgIC0gKGV4dGVuc2libGVfc3VidHJlZXMuaCk6IFJlbW92ZWQgZmlsZS4KICAgCjE5OTctMDMtMTMgMDA6MzcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmM6CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCiAgIAoxOTk3LTAzLTEzIDAwOjMyICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBpbl9hZGRyX3QgYW5kIGRlZmluZSBhcyB1X2ludCAoMzIgYml0cykgaWYgbm90IHByZXNlbnQuCiAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgogICAKMTk5Ny0wMy0xMiAwODoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJldHVybnMgZnJvbSBpbmV0X2FkZHIgYXJlIGluX2FkZHJfdCAodV9pbnQpIG5vdCB1X2xvbmcuCiAgIAoxOTk3LTAzLTEyIDA2OjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChtaWJncm91cC9SRUFETUUpOiBkb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTEyIDA2OjQ4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCB1cGRhdGUuCiAgIAoxOTk3LTAzLTEyIDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaAosIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmg6CgogICAtIChjb25maWd1cmUuaW4sIHNubXBkLmMsIHNubXBfYWdlbnQuYywgcm91dGVfd3JpdGUuW2NoXSwKICAgICB2YXJfcm91dGUuW2NoXSwgaXAuW2NoXSwgc25tcC5bY2hdIC0+IHNubXBfbWliLltjaF0pOgogICAgIC0gTW92ZWQgc25tcCBtaWIgbW9kdWxlIC0+IHNubXBfbWliIGZvciBuYW1pbmcgY29uZmxpY3RzIHdpdGggc25tcGxpYi4KICAgICAtIE1vdmVkIHNubXBfdmFyX3JvdXRlLmMgLT4gbWliZ3JvdXAvdmFyX3JvdXRlLmMKICAgICAtIE1vdmVkIHdyaXRlX3JvdXRlLmMgLT4gbWliZ3JvdXAvd3JpdGVfcm91dGUuYwogICAKMTk5Ny0wMy0xMiAwMDoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wX21pYi5jLCBzbm1wX21pYi5oOgoKICAgLSAobWliZ3JvdXAvc25tcC5baGNdIC0+IG1pYmdyb3VwL3NubXBfbWliLltoY10pOiBNb3ZlZCBkdWUgdG8gbmFtZSBjbGFzaGVzLgogICAKMTk5Ny0wMy0xMSAwODozNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wbGliL21pYi5jOgoKICAgLSAobWliZ3JvdXAvKik6CiAgICAgLSByZW1vdmUgdHJhaWxpbmcgO3Mgb24gYnVuY2hlcyBvZiBmdW5jdGlvbnMuCiAgICAgLSBtYWtlIGV2ZXJ5dGhpbmcgYnV0IGludGVyZmFjZXMuYyBjb21waWxlIG9uIGlyaXg2LjMuCiAgIC0gKGNvbmZpZyosc3lzdGVtLmMpOiB1c2UgdW5hbWUgYW5kIGdldGhvc3RuYW1lIGlmIGF2YWlsYWJsZS4KICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBEb24ndCBjaGVjayBfS0VSTkVMIGlmIGlmbmV0LmlmX210dSBhbHJlYWR5IHdvcmtzLgogICAKMTk5Ny0wMy0xMSAwMDowNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBmcmVlYnNkMiBwYXRjaC4KICAgCjE5OTctMDMtMTAgMDg6MjggIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogc3BhY2UgcHJvdGVjdCBtb2R1bGVzIHdoZW4gY2hlY2tpbmcgZm9yIHdpdGggZ3JlcC4KICAgCjE5OTctMDMtMTAgMDc6NTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogTmV3IGNvbmZpZ3VyZSBvcHRpb246ICAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPSJsaXN0Ii4KICAgCjE5OTctMDMtMDcgMDc6MTEgIHdoYXJkYWtlCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGNvbW1lbnQgb3V0IGVuZCBvZiAjZW5kaWYuCiAgIAoxOTk3LTAzLTA3IDA3OjA5ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogbWFrZSBuZXcgY29uZmlndXJlIG9wdGlvbnMgcmVzcGVjdCAkKHNyY2RpcikuCiAgIAoxOTk3LTAzLTA3IDA2OjAyICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSk6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KICAgCjE5OTctMDMtMDcgMDY6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuaCwgZGlzay5oLCBlcnJvcm1pYi5oLAogICBleHRlbnNpYmxlLmgsIGljbXAuaCwgaW50ZXJmYWNlcy5oLCBpcC5oLAogICBsb2FkYXZlLmgsIG1lbW9yeS5oLCBwcm9jLmgsIHNubXAuaCwKICAgc3lzdGVtLmgsIHRjcC5oLCB1ZHAuaCwgdmVyc2lvbmluZm8uaCwKICAgd29tYmF0Lmg6CgogICAtIChtaWJncm91cC8qKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgogICAKMTk5Ny0wMy0wNyAwNTowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc2Vkc2NyaXB0LmluLAogICBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUzICkKICAgCjE5OTctMDMtMDcgMDQ6NTEgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgLSAoc25tcGxpYi9zbm1wLmMpOiByZW1vdmUgc2Vjb25kIGN0eXBlLmggaW5jbHVkZS4KICAgCjE5OTctMDMtMDcgMDQ6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6IGlmZGVmIGEgZmV3IGhlYWRlcnMgZm9yIGNvcnJlY3QgbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTAzLTA3IDA0OjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKTogZGVwZW5kLgogICAKMTk5Ny0wMy0wNyAwNDo0OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IHJlbW92ZSBleHRwcm90by5oIGluY2x1ZGUuCiAgIAoxOTk3LTAzLTA3IDA0OjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIGV4dGVuc2libGUvIHJlbW92ZXMuCiAgIAoxOTk3LTAzLTA3IDA0OjQ2ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBGaXggc2Vkc2NyaXB0IGdlbmVyYXRpb24uICBzaWdoLgogICAKMTk5Ny0wMy0wNyAwNDo0NCAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGQgbWliX21vZHVsZV9jb25maWcuaAogICAKMTk5Ny0wMy0wNyAwNDo0MCAgd2hhcmRha2UKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogYWRkIG1ha2VkZXBlbmQuaW4KICAgCjE5OTctMDMtMDcgMDQ6MzkgIHdoYXJkYWtlCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogbmV3IG1ha2UgZGVwZW5kIHNjcmlwdAogICAKMTk5Ny0wMy0wNyAwMjo0MiAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogZ2VuZXJhdGUgYSBtaWJfbW9kdWxlX2NvbmZpZy5oIHdpdGggZGVmaW5lcyBvZiB3aGF0cyBiZWluZyB1c2VkLgogICAKMTk5Ny0wMy0wNyAwMTo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0Lmg6CgogICAtIChtaWJncm91cC9zdHJ1Y3QuaCk6IG1vdmVkIHRvIGhlcmUuCiAgIAoxOTk3LTAzLTA3IDAxOjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGhwdXguYywgaHB1eC5oOgoKICAgLSAoaHB1eC5bY2hdKTogQWRkZWQgaHB1eCBzcGVjaWZpYyBmaWxlcyBmcm9tIGV4dGVuc2libGUgZGlyLgogICAKMTk5Ny0wMy0wNyAwMTowNyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKG1pYm1vZHVsZS92ZXJzaW9udGFnKTogbW92ZWQgaW50byBwbGFjZSBmcm9tIGV4dGVuc2libGUvCiAgIAoxOTk3LTAzLTA3IDAwOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL2Rpc2suaAosIG1pYmdyb3VwL2Vycm9ybWliLmMsIG1pYmdyb3VwL2Vycm9ybWliLmgsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuYywgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLAogICBtaWJncm91cC9pcC5jLCBtaWJncm91cC9pcC5oLCBtaWJncm91cC9sb2FkYXZlLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuaCwgbWliZ3JvdXAvcGFzcy5jLCBtaWJncm91cC9wYXNzLmgKLCBtaWJncm91cC9wcm9jLmMsIG1pYmdyb3VwL3Byb2MuaCwKICAgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc25tcC5jLCBtaWJncm91cC9zeXN0ZW0uYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtIChzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvKik6IHN0cmljdC1wcm90b3R5cGluZyBhbmQgY29uZmlnX3JlcXVpcmUoKXMuCiAgIAoxOTk3LTAzLTA3IDAwOjA3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtb3JlIG5vbi1taWJncm91cCBzcGVjaWZpYyBjYWxscyBhbmQgaGVhZGVycy4KICAgCjE5OTctMDMtMDcgMDA6MDUgIHdoYXJkYWtlCgogICAqIGFnZW50LzogbWliZ3JvdXAvTWFrZWZpbGUuaW4sIG1pYmdyb3VwL2Rpc2suYywKICAgbWliZ3JvdXAvZGlzay5oLCBtaWJncm91cC9lcnJvcm1pYi5jLAogICBtaWJncm91cC9lcnJvcm1pYi5oLCBtaWJncm91cC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuaCwgbWliZ3JvdXAvbG9hZGF2ZS5jLAogICBtaWJncm91cC9sb2FkYXZlLmgsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC9tZW1vcnkuaCwgbWliZ3JvdXAvbWliZGVmcy5oLAogICBtaWJncm91cC9taWJpbmNsLmgsIG1pYmdyb3VwL3Bhc3MuYywgbWliZ3JvdXAvcGFzcy5oCiwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgsCiAgIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmgsCiAgIG1pYmdyb3VwL3N5c3RlbS5jLCBtaWJncm91cC9zeXN0ZW0uaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIG1pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIG1pYmdyb3VwL3ZlcnNpb25pbmZvLmgsCiAgIE1ha2VmaWxlLmluOgoKICAgLSAoZXh0ZW5zaWJsZS8qIC0+IG1pYmdyb3VwLyopOiBtb3ZlZCBleHRlbnNpYmxlIHN0dWZmIHRvIG1pYiBtb2R1bGVzLgogICAKMTk5Ny0wMy0wNSAwNzoyOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFllcC4gSXQgd2FzIHdyb25nLiAgVGVzdGVkIGFuZCB3b3JrcyBub3cuCiAgIAoxOTk3LTAzLTA1IDA3OjE1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGluIHNubXBfcGFyc2UuICBQb3NzaWJseSB3cm9uZy4KICAgCjE5OTctMDMtMDUgMDc6MTMgIHdoYXJkYWtlCgogICAqIGFnZW50L2FjbF92YXJzLmM6CgogICAtIChhY2xfdmFycy5jKTogaW5jb3JyZWN0bHkgZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGZvciB3cml0ZV9hY2woKS4KICAgCjE5OTctMDMtMDUgMDY6MDUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBhY2wuYywgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMKLCBhc24xLmgsIGNvbnRleHQuYywgY29udGV4dC5oLAogICBjb250ZXh0X3BhcnNlLmMsIG1kNS5jLCBtZDUuaCwgbWliLmMsCiAgIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oLCBwYXJ0eS5jLCBwYXJ0eS5oCiwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywKICAgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaAosIHZpZXcuYywgdmlldy5oOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDA2OjAxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDU6NTggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9hY2xfdmFycy5jLAogICBhZ2VudC9hbGFybS5jLCBhZ2VudC9hbGFybS5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgKLCBhZ2VudC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvZXZlbnQuYywKICAgYWdlbnQvZXZlbnQuaCwgYWdlbnQva2VybmVsLmgsIGFnZW50L3BhcnR5X3ZhcnMuYwosIGFnZW50L3JvdXRlX3dyaXRlLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wX3ZhcnNfZXZlbnQuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYWdlbnQvdmlld19wYXJzZS5jLCBhZ2VudC92aWV3X3ZhcnMuYzoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwMjozNyAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQ29udHJpYnV0ZXIgbmFtZSBhZGRpdGlvbi4KICAgCjE5OTctMDMtMDUgMDI6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmg6CgogICBmaWxlIHNubXBkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtMS00LXByZTItbmllbHMuCiAgIAoxOTk3LTAzLTA1IDAyOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIGZpbGUga2VybmVsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtMS00LXByZTItbmllbHMuCiAgIAoxOTk3LTAzLTA1IDAyOjE3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBFbHd5biBCIERhdmllczoKICAgICAtIEZpeCBhIFBEVSBjbG9uaW5nIGJ1Zy4KICAgCjE5OTctMDMtMDUgMDE6MDQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtIChtaWJncm91cC8uY3ZzaWdub3JlKTogbmV3IHRvIGlnbm9yZSBjcmVhdGVkIC5oIGZpbGVzLgogICAKMTk5Ny0wMy0wNSAwMTowMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IHJlbW92ZWQgc3lzdGVtIG5saXN0ICh1bnVzZWQpLgogICAKMTk5Ny0wMy0wNSAwMDo0OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5oLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGNvbmZpZyosIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gQWRkZWQgLm8gZmlsZSBsaXN0IHRvIGFnZW50L01ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBjb25maWd1cmUuCiAgICAgLSBuZXcgZmlsZXMgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZToKICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oOiAgQSBsaXN0IG9mIG1pYiAuaCBmaWxlcyBmb3Igc25tcF92YXJzLmguCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZXJ5IG1vZHVsZSAqbXVzdCogaGF2ZSBhIC5oIGZpbGUpCiAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaDogQSBsaXN0IG9mIGluaXRfd29tYmF0KCkgdHlwZSBmdW5jdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgcHJlc2VudCBpZiBleGlzdCBpbiB3b21iYXQuYykuCiAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfbG9hZHMuaDogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIG5ldyBtYWNybyBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtaWIuaCBmaWxlcyBjYWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbG9hZF9taWIoKSwgd2hpY2ggc2ltcGxpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBsb2FkaW5nIG9mIHRoZSBtaWIgc2VjdGlvbnMuCiAgIAoxOTk3LTAzLTA0IDA2OjQ0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlnKiwgbWliZ3JvdXAvTWFrZWZpbGUuaW4pOgogICAgIC0gbWliZ3JvdXAgY29tcGlsZSBsaXN0IGlzIGJ1aWxkIGJ5IGNvbmZpZ3VyZSBhbmQgY2FuIGJlIGF1Z21lbnRlZAogICAgICAgYnkgdGhlIC0td2l0aC1taWItbW9kdWxlcz0ibGlzdCBvZiBtb2R1bGVzIiBjb21tYW5kIGxpbmUgdG8gY29uZmlndXJlLgogICAKMTk5Ny0wMi0xNyAwNzoxMSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUyICkKICAgCjE5OTctMDItMTcgMDY6MzIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFJlbW92ZSBNQVhfTkFNRV9MRU5HVEggcmVxdWlyZW1lbnRzLgogICAKMTk5Ny0wMi0xNyAwNjozMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaWNtcC5jOgoKICAgLSAoaWNtcC5jKTogZG9uJ3QgdXNlIHJldCB2YXJpYWJsZSwgc2luY2UgaXQncyBub3QgZGVmaW5lZC4KICAgCjE5OTctMDItMTcgMDY6MzAgIHdoYXJkYWtlCgogICAqIGFnZW50L2V2ZW50LmM6CgogICAtIChldmVudC5jKTogV2FzIHBhc3NpbmcgYW4gaW50IHRvIGJjb3B5IGluc3RlYWQgb2YgJmludC4KICAgCjE5OTctMDItMTcgMDY6MzAgIHdoYXJkYWtlCgogICAqIGFnZW50L2FsYXJtLmM6CgogICAtIChhbGFybS5jKTogdHlwZWRlZiBmb3IgZ2V0U3RhdFB0cigpLgogICAKMTk5Ny0wMi0xNyAwNTo1MyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiAgTWFrZSBkZXBlbmQuCiAgIAoxOTk3LTAyLTE3IDA1OjQ3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gcmVtb3ZlCiAgICAgQU5TSSBzcGVjaWZpYyByZXF1aXJlbWVudHMuCiAgIAoxOTk3LTAyLTE3IDA1OjQ2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSk6IEFkZGVkLgogICAKMTk5Ny0wMi0xNyAwNTozOCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FCiwgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oLCBhZ2VudC9taWJncm91cC9pY21wLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYwosIGFnZW50L21pYmdyb3VwL2lwLmgsIGFnZW50L21pYmdyb3VwL3NubXAuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjJfc3VidHJlZXMuaAosIGFnZW50L21pYmdyb3VwL3NubXB2Ml92YXJzLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMsIGFnZW50L21pYmdyb3VwKTogRGF2ZSBTaGllbGQgc3BsaXQgdXAgdGhlCiAgICAgc25tcF92YXJzLmMgYW5kIHJlbGF0ZWQgZmlsZXMgaW50byBwaWVjZXMgZm9yIGVhc2llciBtYW5hZ2VtZW50LgogICAgIFRoZSByZXN1bHRzIG9mIGhpcyB3b3JrIGFyZSBpbiB0aGUgbmV3IGFnZW50L21pYmdyb3VwIGRpcmVjdG9yeS4KICAgCjE5OTctMDItMTEgMDg6MDAgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBSZXN0IG9mIFBoaWxpcCdzIHBhdGNoIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMgKHNoIHZhcnMpLgogICAKMTk5Ny0wMi0xMSAwNzo0NCAgd2hhcmRha2UKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZml4IHNyY2RpciBwcm9ibGVtcy4KICAgCjE5OTctMDItMTEgMDc6NDIgIHdoYXJkYWtlCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZGVzY2VuZCB3aGVuIG1ha2UgY2xlYW5pbmcuCiAgIAoxOTk3LTAyLTExIDA1OjE0ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTEgKQogICAKMTk5Ny0wMi0xMSAwNToxMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlIG5vbi1zdGF0aWMgbWQ1ZGlnZXN0IHByb3RvdHlwZS4KICAgCjE5OTctMDItMTEgMDU6MTEgIHdoYXJkYWtlCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluCjoKCiAgIC0gKHtsb2NhbCxtYW4sb3Z9L01ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBpbiBmcm9udCBvZiB0YWJzLgogICAKMTk5Ny0wMi0xMSAwNToxMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmxpbnV4Lmg6CgogICAtIChzbm1wX3ZhcnMubGludXguaCk6IEZpeCAjaWZkZWYuCiAgIAoxOTk3LTAyLTExIDA0OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi92aWV3LmMsIHNubXBsaWIvdmlldy5oCjoKCiAgIC0gKGFsbCAuYyB3aXRoIG1haW4oKSwgc25tcGxpYi8qKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgLSBNYWtlIGJldHRlciBzdXBwb3J0IGZvciBzaGFyZWQgbGliIHBvc3NpYmlsaXRpZXMuCiAgIAoxOTk3LTAyLTExIDA0OjEyICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBVcGRhdGUgcGVvcGxlIHN1cHBseWluZyBwYXRjaGVzIGxpc3QuCiAgIAoxOTk3LTAyLTExIDA0OjEwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgosIG1hbi9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAtIEZpeCBhbGwgTWFrZWZpbGUuaW4ncyB0byBzdXBwb3J0IGEgZGlmZmVyZW50IHNyYyBkaXIuCiAgIAoxOTk3LTAyLTExIDAzOjU0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEZpeCBocHV4IHNwZWNpZmljIHByb2JsZW1zLgogICAKMTk5Ny0wMi0xMSAwMzo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmxpbnV4Lmg6CgogICAtIChzbm1wX3ZhcnMubGludXguaCk6IFJlbW92ZWQgbm9uLWxpbnV4IHNwZWNpZmljIHN0dWZmLgogICAKMTk5Ny0wMi0xMSAwMzo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywKICAgc25tcF92YXJzLmxpbnV4Lmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmxpbnV4LmgpOiBQYXRjaCBmcm9tIEplbm5pZmVyIEJyYXk6CiAgICAgLSBHZXQgYWdlbnQgd29ya2luZyBvbiBsaW51eC4KICAgCjE5OTctMDItMTAgMDA6NTQgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKTogV2hvb3BzLgogICAKMTk5Ny0wMi0xMCAwMDo1MSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMyApCiAgIAoxOTk3LTAyLTEwIDAwOjUwICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDMuMS4zCiAgIAoxOTk3LTAyLTEwIDAwOjIyICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFJlbW92ZSBtYWxsb2MgcHJvdG90eXBlLCBub3cgaW4gc3RkbGliLmguCiAgIAoxOTk3LTAyLTEwIDAwOjIyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIFNoaWVsZHMnIGFkZGl0aW9uczogIGZpbmRpbmcgbW9yZSBpbmZvLgogICAKMTk5Ny0wMi0wNSAwODo0MSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmU0ICkKICAgCjE5OTctMDItMDUgMDg6MjkgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHRjbCBzdHVmZi4KICAgCjE5OTctMDItMDUgMDg6MjQgIHdoYXJkYWtlCgogICAqIE5FV1MsIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChORVdTKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCiAgIAoxOTk3LTAyLTA1IDA4OjIwICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IENoYW5nZSBzdWJqZWN0IGxpbmUgdG8gc2hvcnRlbiBhbmQgZm9yY2UgYmV0dGVyIGRlc2NyaXB0aW9uLgogICAKMTk5Ny0wMi0wNSAwODoxMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggbmxpc3QgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTA1IDA4OjA5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfZ3JvdXB2YXJzLmgsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcCBtaWIgZ3JvdXAgY2xlYW51cHMuCiAgICAgLSB0cmFwIGdlbmVyYXRpb24gY2xlYW51cHMuCiAgICAgLSBhZGRlZCBtYW4gZW50cmllcyBmb3IgdHJhcCBnZW5lcmF0aW9uLgogICAgIC0gaW1wcm92ZWQgYWdlbnQgZGVidWdnaW5nIG91dHB1dCB3aXRoIGFnZW50J3MgLWQgZmxhZy4KICAgCjE5OTctMDItMDUgMDg6MDcgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQdXQgL2Rldi9rc3ltcyBhaGVhZCBvZiAva2VybmVsL3VuaXguCiAgIAoxOTk3LTAyLTA1IDA3OjMzICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IG1pc2MgcmVxdWVzdGVkIGFkZGl0aW9ucy4KICAgCjE5OTctMDItMDUgMDc6MzMgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUgdXBkYXRlZCBhcmNoaXRlY3R1cmUgbGlzdHMuCiAgIAoxOTk3LTAyLTA0IDAwOjQxICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBBZGRlZCBUT0MgYW5kIGF1dG9yIG5vdGVzIDstKS4KICAgCjE5OTctMDItMDQgMDA6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gU2ltb246IGNvbW1lbnQgI2lmZGVmIGVuZGluZ3MgZm9yIEFOU0kgY29tcGxpZXJzLgogICAKMTk5Ny0wMi0wNCAwMDozNiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEZpeCBocHV4IHByb2JsZW1zLCAqYWdhaW4qLgogICAKMTk5Ny0wMi0wNCAwMDozNSAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBBZGRlZCBzdWdnZXN0aW9ucyBmcm9tIHVjZC1zbm1wLWNvZGVycy4KICAgCjE5OTctMDItMDQgMDA6MzUgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUncyBsYXRlc3QgcmV2aXNpb24uCiAgIAoxOTk3LTAyLTAzIDA0OjU1ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTMgKQogICAKMTk5Ny0wMi0wMyAwNDo1MyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBtb3ZlIGNvbmZpZy5jYWNoZSB0byBlbmQgb2YgbWVzc2FnZS4KICAgCjE5OTctMDItMDMgMDQ6MzMgIHdoYXJkYWtlCgogICAqIE5FV1MsIFJFQURNRSwgVE9ETzoKCiAgIC0gKFJFQURNRSwgTkVXUywgVE9ETyk6IFVwZGF0ZSBmb3IgMy4xLjMuCiAgIAoxOTk3LTAyLTAzIDA0OjE1ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOgogICAgIC0gYWRkZWQgRkFRIHBvaW50ZXIuCiAgICAgLSBEYXZlJ3MgRW5nbGlzaCBwb2ludGVycyAoaWUsIGhlIHByb29mZWQgaXQgYW5kIEksIHVoLCBkb24ndC4uLikuCiAgICAgLSBzd2l0Y2ggZnRwIG1pcnJvci4KICAgICAtIGJ1Zy1yZXBvcnQgc2NyaXB0IG1lbnRpb25lZC4KICAgICAtIEkgLT4gV2UsIG1lIC0+IHVzLi4uCiAgIAoxOTk3LTAyLTAzIDAzOjUxICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiByZW1vdmUgcHJvamVjdCBoaXN0b3J5LgogICAKMTk5Ny0wMi0wMyAwMzo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGFkZCBzb21lIGlyaXggYXBwcm9wcmlhdGUgaW5jbHVkZXMuCiAgIAoxOTk3LTAyLTAzIDAzOjQ0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IHR5cG86ICBuZWVkcyBhIHNwYWNlIGJldHdlZW4gJ3N0YXRpYycgYW5kICdzdHJ1Y3QnLgogICAKMTk5Ny0wMi0wMyAwMjo1MCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6CiAgICAgLSBDaGVjayBmb3IgaXJpeCA2LjIgaGVhZGVycy4KICAgICAtIENoZWNrIGlmIF9LRVJORUwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgaXJpeCBhbmQgaWZuZXQgdXNhZ2UuCiAgICAgLSBVc2UgdGhlIGZvdW5kIFVOQU1FIHByb2dyYW0gaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBoYXZlIGl0LgogICAKMTk5Ny0wMi0wMyAwMTo0OCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiAgVXNlIENBTl9VU0VfU1lTQ1RMIGluc3RlYWQgb2YgYnNkbGlrZS4KICAgCjE5OTctMDItMDMgMDE6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkCiAgICAgLSBNYXJrIHN0dWZmIGZvciBsYXRlciBjaGFuZ2VzLgogICAKMTk5Ny0wMi0wMyAwMTo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOgogICAgIC0gQ2hlY2sgZm9yIHdob2FtaSwgbG9nbmFtZS4KICAgICAtIERvbid0IHBhc3MgbnVsbCBhcmdzIHRvIGtzaC4KICAgCjE5OTctMDItMDMgMDE6MDMgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogY29tbWVudCBvdXQgcG9zc2libGUgc2VjdXJpdHkgcHJvYmxlbSBsaW5lcy4KICAgCjE5OTctMDItMDMgMDE6MDIgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRvbWFpbiBuYW1lIGZpeCBhbmQgZWRpdG9yIGJvbWIgb3V0LgogICAKMTk5Ny0wMS0zMSAwMjowMyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgdXBkYXRlCiAgIAoxOTk3LTAxLTMxIDAxOjU5ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hhbmdlZCBhcmNoIHRvIGhwcGEgYW5kIG1ha2Ugc3VyZSAvYmluL2tzaCBleGlzdHMuCiAgIAoxOTk3LTAxLTMxIDAxOjQ5ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZmlyZSBvZmYga3NoIGlmIGhwdXggJiYgc2guCiAgIAoxOTk3LTAxLTMxIDAxOjAxICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246CiAgICAgLSBDaGFuZ2Ugc29tZSBzeXN0ZW0gc3BlY2lmaWMgaWZkZWZzIHRvIENBTl9VU0VfU1lTQ1RMLgogICAgIC0gRml4IGNvbXBsaWF0aW9uIGVycm9ycyBvbiBic2RpMi4KICAgICAtIEZpeCByb3V0aW5nIHRhYmxlcyBmb3Igc2ltaWxhci4KICAgCjE5OTctMDEtMzEgMDA6NTcgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBjb25maWcuaC5pbiwKICAgYWNjb25maWcuaDoKCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Iga3N0YXQuaCBhbmQgaWYgc3lzY3RsIGNhbiByZWFkIHRoZSBib290dGltZS4KICAgCjE5OTctMDEtMjkgMDQ6MDggIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KToKICAgICAtIGNoYW5nZSB0byBhZGRyZXNzIChiYWNrKSB0byB1Y2Qtc25tcC1jb2RlcnMuCiAgICAgLSBBZGQgYSB0cmFwIG9uIHNpZ25hbHMgdG8gcmVtb3ZlIHRtcCBmaWxlcy4KICAgCjE5OTctMDEtMjkgMDM6NTggIHdoYXJkYWtlCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRml4IHZhcmlvdXMgd2FybmluZ3MvZXJyb3JzLgogICAgIC0gSW1wbGVtZW50IHJlYWwgdHJhcHMuCiAgIAoxOTk3LTAxLTI5IDAzOjExICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IHVwZGF0ZQogICAKMTk5Ny0wMS0yOSAwMzoxMSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogcmV2aXNpb24gb25lIQogICAKMTk5Ny0wMS0yOSAwMzoxMCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogTmV3IHBzIG9wdGlvbnMgdG8gY2hlY2sgZm9yLgogICAKMTk5Ny0wMS0yOSAwMzowOSAgd2hhcmRha2UKCiAgICogYWNsb2NhbC5tNDoKCiAgIC0gKGFjbG9jYWwubTQpOiBGaXggY2hlY2tfc3RydWN0X2ZvciB0byBkZWZpbmUgdGhpbmdzIGNvcnJlY3RseS4KICAgCjE5OTctMDEtMjkgMDM6MDggIHdoYXJkYWtlCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIC5zb2Z0d2FyZS5kYi5zaAogICAKMTk5Ny0wMS0yOSAwMzowNyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOgogICAgLSBTTk1QQkxPQ0sgPSAhU05NUEJMT0NLCiAgIAoxOTk3LTAxLTI5IDAzOjA3ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6CiAgICAtIEFsd2F5cyB1c2UgbXVsdGlwYXJ0OiB2ZXJzaW9uIGluZm8gYW5kIGNvbmZpZy5jYWNoZSBhcmUgb25lLgogICAgLSByZS1hcnJhbmdlZCBhIGJpdC4KICAgIC0gQWRkZWQgaW50cm9kdWN0aW9uLgogICAgLSBHdWVzcyBhdCBkb21haW4gbmFtZSBpZiBwb3NzaWJsZS4KICAgCjE5OTctMDEtMjkgMDE6NDcgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBidWcgcmVwb3J0aW5nIHNjcmlwdCBhZGQKICAgCjE5OTctMDEtMjEgMDA6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT4KICAgICAgIC0gaGFuZGxlIG11bHRpcGxlIGludGVyZmFjZSBuYW1lcyA+IDEwIHByb3Blcmx5LgogICAKMTk5Ny0wMS0yMCAyMzozNCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSAoc25tcF9jbGllbnQuaCk6IHJlbW92ZSBzZWNvbmQgKHdyb25nKSBmdW5jdGlvbiBwcm90b3R5cGUuCiAgIAoxOTk3LTAxLTIwIDIzOjMzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHJlbW92ZSBzZWNvbmQgY2hhciBkZWZpbml0aW9uLgogICAKMTk5Ny0wMS0yMCAwNzo1OSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUxICkKICAgCjE5OTctMDEtMjAgMDc6NDMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfY2xpZW50LltjaF0pOgogICAgIC0gUGF0Y2ggZnJvbSBQYXRyaWNlIFZBTkFDS0VSIDx2YW5hY2tlckB3b3JsZG5ldC5mcj46CiAgICAgICAtIGZpeCByZXF1ZXN0IGRlbGV0aW9ucyBpbiBzbm1wX3JlYWQoKS4KICAgICAgIC0gYWRkZWQgcmV0dXJuIGFyZ3VtZW50IHRvIHNubXBfYWRkX251bGxfdmFyKCkuCiAgIAoxOTk3LTAxLTIwIDA2OjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAtIGFkZCBic2RpIHRvIHNvbWUgI2lmZGVmcy4KICAgCjE5OTctMDEtMjAgMDY6MzggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMsIGV4dGVuc2libGUuYywgcmVhZF9jb25maWcuYyk6IFJlbW92ZSBBTlNJIGNwcCAjZWxpZidzLgogICAKMTk5Ny0wMS0yMCAwNjozNiAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IEF1dG9oZWFkZXIgaXMgZHVtYjogIFB1dCBtYWNybyBkZWZpbmVzIGJlbG93ZSBAQk9UVE9NQCBzeW1ib2wuCiAgIAoxOTk3LTAxLTIwIDA2OjIyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSAoc25tcF9jbGllbnQuYyk6IFdhaXQgMTIwIHNlY29uZHMgYmVmb3JlIHJldHVybmluZy4KICAgCjE5OTctMDEtMjAgMDY6MDggIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBtYW4vc25tcHRyYXBkLjgsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaAosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92aWV3Lmg6CgogICAtIFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgIC0gaW1wbGVtZW50ZWQ6IGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmU3BlY2lmaWMsCiAgICAgICAgIGlwLmlwUm91dGluZ0Rpc2NhcmRzLAogICAgICAgICBpcC5pcEFkZHJUYWJsZS5pcEFkZHJFbnRyeS5pcEFkRW50UmVhc21NYXhTaXplLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNYXNrICwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWV0cmljNSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlSW5mbywgaXAuaXBOZXRUb01lZGlhVGFibGUsCiAgICAgICAgIHVkcC51ZHBUYWJsZS4KICAgIC0gdWRwIGNvbm5lY3Rpb24gdGFibGUuCiAgICAtIGlwTmV0VG9NZWRpYS4KICAgCiAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAtIHVkcE5vUG9ydCwgdGNwSW5FcnJzIGZpeGVzIGZvciBTb2xhcmlzLgogICAgLSBsaW51eCBhcHBsaWNhdGlvbiBzdXBwb3J0LgogICAgLSBzbm1wIHZhcmlhYmxlIGdyb3VwLgogICAgLSBzaW1wbGUgY29sZCBzdGFydCB0cmFwcyB2aWEgZXhlYygnc25tcHRyYXAnKS4KICAgIC0gTUlCIHBhcnNlciBmaXhlcy4KICAgIC0gTWVtb3J5L2ZyZWUgYWxsb2NhdGlvbiBmaXhlcy4KICAgCjE5OTctMDEtMjAgMDY6MDQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWxhcm0uaCwgYWdlbnQvZXZlbnQuYywKICAgYWdlbnQvZXZlbnQuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbF9zdW5vczUuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9ncm91cHZhcnMuaCwKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwo6CgogICAtIFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgIC0gaW1wbGVtZW50ZWQ6IGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmU3BlY2lmaWMsCiAgICAgICAgIGlwLmlwUm91dGluZ0Rpc2NhcmRzLAogICAgICAgICBpcC5pcEFkZHJUYWJsZS5pcEFkZHJFbnRyeS5pcEFkRW50UmVhc21NYXhTaXplLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNYXNrICwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWV0cmljNSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlSW5mbywgaXAuaXBOZXRUb01lZGlhVGFibGUsCiAgICAgICAgIHVkcC51ZHBUYWJsZS4KICAgIC0gdWRwIGNvbm5lY3Rpb24gdGFibGUuCiAgICAtIGlwTmV0VG9NZWRpYS4KICAgCiAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAtIHVkcE5vUG9ydCwgdGNwSW5FcnJzIGZpeGVzIGZvciBTb2xhcmlzLgogICAgLSBsaW51eCBhcHBsaWNhdGlvbiBzdXBwb3J0LgogICAgLSBzbm1wIHZhcmlhYmxlIGdyb3VwLgogICAgLSBzaW1wbGUgY29sZCBzdGFydCB0cmFwcyB2aWEgZXhlYygnc25tcHRyYXAnKS4KICAgIC0gTUlCIHBhcnNlciBmaXhlcy4KICAgIC0gTWVtb3J5L2ZyZWUgYWxsb2NhdGlvbiBmaXhlcy4KICAgCjE5OTctMDEtMTcgMDI6NTggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKToKICAgICAtIFVzYWdlKCkgdXBkYXRlIGFuZCB2ZXJzaW9uIHByaW50b3V0IHVwZGF0ZS4KICAgCjE5OTctMDEtMTcgMDI6NTEgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jLCBleHRlbnNpYmxlLmMpOgogICAgIC0gTmV3IGFyZyAtYyBGSUxFOiAgCSAgIFJlYWQgRklMRSBhcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhcyB3ZWxsLgogICAgIC0gTmV3IGFyZyAtQzogICAgICAgCSAgIERvbid0IHJlYWQgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgIC0gTmV3IGVudiBTTk1QQ09ORlBBVEg6ICBSZWFkIHNubXBkeywubG9jYWx9LmNvbmYgZmlsZXMgaW46IHNlcGVyYXRlZCBwYXRoLgogICAKMTk5Ny0wMS0xNCAwNzo0NSAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FLCBUT0RPOgoKICAgLSAoUE9SVElORywgUkVBRE1FLCBUT0RPKTogIEFkZGVkIHVjZC1zbm1wLWNvZGVycyBhcyBkZWZhdWx0IG1haWwgYWRkcmVzcy4KICAgCjE5OTctMDEtMDkgMjM6NDYgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFJlbW92ZSBicm9rZW4gRkRfU0VUIGNvZGUuCiAgIAoxOTk3LTAxLTA5IDIzOjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgL2Rldi9rc3ltcyBmb3Igc29sYXJpcyBrZXJuZWwuCiAgIAoxOTk3LTAxLTA5IDIzOjQzICB3aGFyZGFrZQoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6ICBVcGRhdGUgZm9yIDk3LgogICAKMTk5Ni0xMi0wNSAwMDoxOSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMi4xICkKICAgCjE5OTYtMTItMDUgMDA6MTkgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZS4KICAgCjE5OTYtMTItMDUgMDA6MTQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtIChtZDUuYyk6IHJlbW92ZSBhbnNpIHNwZWNpZmljIEMgZmVhdHVyZXMgKHVuc2lnbmVkIGNvbnN0YW50cykuCiAgIAoxOTk2LTEyLTA1IDAwOjEzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogI2lmbmRlZiAtPiAjaWZkZWYgZm9yIHNpZ3NldC4KICAgCjE5OTYtMTItMDQgMDE6MDMgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIgKQogICAKMTk5Ni0xMi0wNCAwMTowMSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogIFVwZGF0ZSBmb3IgcmVsZWFzZSAzLjEuMi4KICAgCjE5OTYtMTItMDQgMDA6NDkgIHdoYXJkYWtlCgogICAqIFBPUlRJTkcsIFJFQURNRToKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCiAgIAoxOTk2LTEyLTA0IDAwOjE1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2NsaWVudC5jOgoKICAgLSAoYXNuMS5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAtIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAgIC0gUGFyc2VyIGZpeGVzIGZvciBtdWx0aXBsZSBub2Rlcy4KICAgICAgIC0gbWVtbW92ZS9jb3B5IGRlbGV0ZXMuCiAgIAoxOTk2LTEyLTAzIDA1OjUxICB3aGFyZGFrZQoKICAgKiBlY2UtbWliLmRlZjoKCiAgIC0gKGVjZS1taWIuZGVmKTogVXNlZCAtPiBBdmFpbCBpbiBtZW1vcnkgc2VxdWVuY2UuCiAgIAoxOTk2LTEyLTAzIDAyOjE0ICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBsb2NhbC9wYXNzdGVzdDoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHBhc3N0ZXN0KTogTW92ZSBwYXNzdGVzdCB0byB1Y2RhdmlzIHN1YnRyZWUuCiAgIAoxOTk2LTEyLTAzIDAyOjAzICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IEZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBGaXggYXJwIHRhYmxlIGZvciBocHV4LgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGFycGhkLmF0X25leHQgYW5kIHVzZSBpbiBhYm92ZS4KICAgCjE5OTYtMTItMDMgMDE6MDUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtIChtZDUuYyk6IFB1dCAnVSduc2lnbmVkIG1hcmtlciBhdCBlbmQgb2YgY29uc3RhbnRzIHRvIHJlbW92ZSBnY2Mgd2FybnMuCiAgIAoxOTk2LTEyLTAzIDAxOjAzICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMpOgogICAgIC0gV3JvdGUgQUNfQ0hFQ0tfU1RSVUNUX0ZPUiBhbmQgdXNlIGl0LgogICAgIC0gTWFrZSBBQ19DSEVDS19JRk5FVF9GT1IgdXNlIGFib3ZlLgogICAgIC0gQ2hhbmdlcXVvdGUgJ1tdJyAtPiAnJyBhcm91bmQgc2VkIGV4cHJlc3Npb24gd2l0aCBbXXMgKC1Eb3N0eXBlKS4KICAgCjE5OTYtMTItMDEgMjM6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gaWZQaHlzQWRkciAtIGluIEludGVyZmFjZV9HZXRfRXRoZXJfQnlfSW5kZXgsIEhQLVVYIGhhcyB0aGUgc2FtZQogICAgICAgICAgIEV0aGVyQWRkciBzdHJ1Y3VyZSBhcyBNSVBTLgogICAKICAgICAtIGlwQWRFbnRJZkluZGV4IC0gaW4gdmFyX2lwQWRkckVudHJ5LCB0aGVyZSBpcyBhIGZhbHNlIG1hdGNoIG9uCiAgICAgICAgICAgdGhlIGxvb3BiYWNrIGludGVyZmFjZSwgZ2l2aW5nIHRoZSB3cm9uZyBhbnN3ZXIgb2YgdGhlIGZpcnN0CiAgICAgICAgICAgaW50ZXJmYWNlIGluZGV4LgogICAKICAgICAtIHVkcEluRXJyb3JzIC0gaW4gdmFyX3VkcCwgdGhlIGNvdW50IG9mIFVEUCBlcnJvcnMgb21pdHMgZGlzY2FyZGVkCiAgICAgICAgICAgcGFja2V0cy4gIFNvbWUgc3lzdGVtcyAoaS5lLiBIUC1VWCkgaGF2ZSBleHRlbmRlZCB0aGUgdWRwc3RhdAogICAgICAgICAgIHN0cnVjdHVyZSB0byBpbmNsdWRlIHRoZXNlLiAgSSd2IHR3ZWFrZWQgdGhpcyBhbmFsb2dvdXMgdG8gYQogICAgICAgICAgIHNpbWlsYXIgYWRkaXRpb24gaW4gdGhlIHRjcHN0YXQgc3RydWN0dXJlLgogICAKICAgICAtIHRjcENvbm5TdGF0ZSAtIEhQLVVYIGhhcyBhZGRlZCBhbiBleHRyYSBzdGF0ZSBpbnRvIHRoZSBsaXN0LCB3aGljaAogICAgICAgICAgIHRocm93cyB0aGUgcmVzdCBvZiB0aGVtIG91dC4KICAgCjE5OTYtMTEtMjYgMjM6NTYgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBUcnVuY2F0ZSBzeXN0ZW0gbmFtZXMgYmV5b25kIFstX10uKi4KICAgCjE5OTYtMTEtMjYgMjM6NDUgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBSZXNldCBzaWduYWwgb24gYWxsIHR5cGVzIG9mIHNpZ25hbCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoxOTk2LTExLTI2IDIzOjM0ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIFdhdGNoIG91dCBmb3IgaW50ZXJmYWNlIG5hbWVzIHdpdGggJyAnIGluIHRoZW0uCiAgICAgLSBSZXNldCBzaWduYWwgb24gQlNEIHNpZ25hbCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoxOTk2LTExLTI2IDIzOjIxICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBVcGRhdGUuCiAgIAoxOTk2LTExLTI2IDIzOjIxICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IFR5cG86ICAzLjEuMyAtPiAzLjAuMy4KICAgCjE5OTYtMTEtMjYgMjM6MDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEZWZhdWx0IHN5c2xvYyBVQ0RhdmlzIC0+IFVua25vd24uCiAgIAoxOTk2LTExLTI2IDIzOjAyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIENoYW5nZSBjb21tZW50cyB0byByZWZsZWN0IHdoYXQgaXRzIGFjdHVhbGx5IGxvb2tpbmcgYXQuCiAgICAgLSBSZW1vdmUgaWZkZWYgYXJvdW5kIGlmbmV0IGRlY2xhcmF0aW9ucy4KICAgCjE5OTYtMTEtMjUgMDA6MTUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKGNvbmZpZyosIHNubXBfaW1wbC5oKTogTW92ZWQgdm9pZCAtPiBjaGFyIGRlZmluZSB0byBhIGNvbmZpZ3VyZSB0ZXN0LgogICAKMTk5Ni0xMS0yNCAyMzo0MyAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtICh7YWdlbnQsYXBwc30vTWFrZWZpbGUuaW4pOiBQdXQgbGlic25tcC5hIGluIGZyb250IG9mIC1sIGxpYnMuCiAgIAoxOTk2LTExLTI0IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yLnByZTEgKQogICAKMTk5Ni0xMS0yNCAwNzoyNCAgd2hhcmRha2UKCiAgICogYWdlbnQva2VybmVsLmMsIElOU1RBTEwsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGtlcm5lbC5jLCBjb25maWcqLCBJTlNUQUxMKTogIE5ldyBjb25maWd1cmUgc3dpdGNoOiAgLS13aXRob3V0LXJvb3QtYWNjZXNzLgogICAgIC0gVGhlIGFnZW50IGRvZXNuJ3QgZXhpdCBpZiBpdCBjYW4ndCBvcGVuIC9kZXYva21lbS4KICAgCjE5OTYtMTEtMjIgMDU6MzcgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLmguaW4sIGNvbmZpZy5zdWIsCiAgIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlyczoKCiAgIC0gKGNvbmZpZyosIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBVcGdyYWRlZCB0byBhdXRvY29uZiAyLjExLgogICAKMTk5Ni0xMS0yMiAwMDoxNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KICAgCjE5OTYtMTEtMjIgMDA6MDYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNZXJnZSBmcm9tIEZyZWVCU0QyLTMtMS0xLgogICAgIC0gQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgogICAKMTk5Ni0xMS0yMSAyMzoxOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFRyYXNoIGludGVyZmFjZSBjYWNoaW5nLgogICAKMTk5Ni0xMS0xNSAwNzo0NCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBBZGQgYmFjayBpbiAicmVhZGluZyBtaWIuLi4iIGRlYnVnZ2luZyBzdGF0bWVudHMuCiAgIAoxOTk2LTExLTE1IDA3OjQzICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBNYWtlIHVuYW1lIGNhbGxzIHdvcmsgY29ycmVjdGx5LgogICAKMTk5Ni0xMS0xNCAwNjoyNCAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXB0cmFwLmMsIHNubXBuZXRzdGF0L2luZXQuYywKICAgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKHNubXB0cmFwLmMsIGluZXQuYywgcm91dGUuYyk6IHR5cGVjYXN0aW5nIHdhcm5pbmcgZml4ZXMuCiAgIAoxOTk2LTExLTE0IDA2OjE3ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKToKICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AuCiAgICAgLSBDaGVjayBmb3Igc3lzL3Zmcy5oLgogICAKMTk5Ni0xMS0xNCAwNjoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6CiAgICAgLSAjaWZkZWYgdHlwby4KICAgICAtIHByb3RvdHlwZSBmb3IgSW50ZXJmYWNlX1NjYW5fSW5pdCgpLgogICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcCBiZWZvcmUgdXNpbmcuCiAgIAoxOTk2LTExLTA4IDA4OjA2ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRml4ZWQgJ3RvdWNoaXQnLgogICAKMTk5Ni0xMS0wOCAwODowMyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IENyZWF0ZWQgYSAndG91Y2hpdCcgdG8gdG91Y2ggY29uZmlnIGZpbGVzIHByb3Blcmx5LgogICAKMTk5Ni0xMS0wNyAwNToxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogdHlwZWNhc3QgZm9yIHNwcmludF9vYmppZCgpLgogICAKMTk5Ni0xMS0wNyAwNToxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIHR5cG9zLgogICAKMTk5Ni0xMS0wNyAwNToxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBpZmRlZidzIGFyb3VuZCBzdHJpbmdzLmguCiAgIAoxOTk2LTExLTA3IDA1OjE1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogQ2hhbmdlZCBkZWZhdWx0IFNOTVBWMkFVVEggdG8gU05NUFYxLgogICAKMTk5Ni0xMS0wNyAwMDozNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gQlNEaTIgMy4xLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNyAwMDoyMiAgd2hhcmRha2UKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oOgoKICAgLSBOaWVscyAzLjEuMSBicmFuY2ggbWVyZ2UuCiAgIAoxOTk2LTExLTA3IDAwOjE1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oOgoKICAgLSBOZXRCU0QgMy4xLjAuMSBicmFuY2ggbWVyZ2UuCiAgIAoxOTk2LTExLTA0IDAxOjA4ICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIG5saXN0IGluIC1sbWxkIChpcml4KS4KICAgCjE5OTYtMTEtMDQgMDA6MzAgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogIE1vcmUgaW5jbHVkZSBjaGVja3MgZm9yIGxpbnV4LgogICAKMTk5Ni0xMC0zMSAyMzo1NCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiAgPHNpbW9uQHN3aXRjaC5jaD46CiAgICAgLSBhc25fYnVpbGRfdW5zaWduZWRfaW50LCBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQ6CiAgICAgICAtIERvbid0IHRyeSB0byBzdHJpcCBGRnMgZnJvbSB0aGUgaGlnaCBlbmQgb2YgdW5zaWduZWQgdmFsdWVzLgogICAgICAgLSBTa2lwIHRoZSBzdHJpcHBpbmcgY29kZSBlbnRpcmVseSBpZiB3ZSBoYXZlIHRvIGFkZCBhIG51bGwgYnl0ZS4KICAgCjE5OTYtMTAtMzAgMDQ6NDggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWY6CgogICAtIChjb25maWcqLCBlY2UtbWliLmRlZik6CiAgICAgLSBDaGFuZ2UgZXh0ZW5zaWJsZSBtaWIgbG9jYXRpb24gdG8gdWNkYXZpcyBlbnRlcnByaXNlIG1pYjogMjAyMS4KICAgICAtIFJlbW92ZSBhc3NvY2lhdGVkIHByb21wdGluZyBmcm9tIGNvbmZpZ3VyZSBzY3JpcHQgYW5kIGV0Yy4KICAgCjE5OTYtMTAtMzAgMDQ6NDcgIHdoYXJkYWtlCgogICAqIFBPUlRJTkcsIFJFQURNRToKCiAgIC0gKFBPUlRJTkcsUkVBRE1FKTogQWRkIGEgbmV3IFBPUlRJTkcgZmlsZSB0byByZWZlcmVuY2UgYXV0b2NvbmYgcGxlZS4KICAgCjE5OTYtMTAtMTYgMjM6MDIgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjEuQlNESSApCiAgIAoxOTk2LTEwLTA5IDA3OjQ2ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4xICkKICAgCjE5OTYtMTAtMDkgMDc6NDUgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6IHVwZGF0ZSBmb3IgMy4xLjEuCiAgIAoxOTk2LTEwLTA5IDA3OjIyICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCB0aGFua3MgbmFtZS4KICAgCjE5OTYtMTAtMDkgMDc6MTggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGcm9tOiBnYWhAYmVsbGNvcmUuY29tIChHYXJ5IEEuIEhheXdhcmQpCiAgICAgLSBGcmVlIHBkdSBjb21tdW5pdHkgdG8gcXVlbGNoIHB1cmlmeS4KICAgCjE5OTYtMTAtMDkgMDA6MzAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOgogICAgIC0gcHJpbnQgYSBuZXcgbGluZSBpbiBwcmludF9lcnJvcigpIGlmIGRlYnVnZ2luZyBpcyB0dXJuZWQgb24uCiAgICAgLSB0b3NzT2JqZWN0SWRlbnRpZmllcigpOiBjYXRjaCBtdWx0aXBsZSBicmFja2V0IGNsYXVzZXMgKElFIHsgezAgMH0gfSApLgogICAKMTk5Ni0xMC0wOSAwMDowNCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6CiAgICAgLSBQYXJzZSBPQkpFQ1QtSURFTlRZIGFzIE9CSkVDVC1HUk9VUCAoc2F2ZXMgb25seSBkZXNjcmlwdGlvbikuCiAgICAgLSBDaGFuZ2UgcHJpbnRfZXJyb3IoKSwgcmVhZF9taWIoKSB0byByZWZsZWN0IGZpbGUgYW5kIGNvcnJlY3QgbGluZSBudW1iZXIuCiAgIAoxOTk2LTEwLTA3IDA0OjIzICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBBZGRlZCBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbi4KICAgCjE5OTYtMTAtMDcgMDQ6MjMgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogQ2hhbmdlZCB0byByZWZsZWN0IFNOTVBMSUIvbWlicy4KICAgCjE5OTYtMTAtMDcgMDM6MDYgIHdoYXJkYWtlCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogIEFkZGVkIHVjZC1zbm1wLnR4dAogICAKMTk5Ni0xMC0wNyAwMzowMCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4pOgogICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgIC0gZW1hY3MgbG9jYWwgdmFycy4KICAgCjE5OTYtMTAtMDcgMDI6MjIgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gYWRkZWQgLS1yZWNoZWNrIHRvIGNvbmZpZy5zdGF0dXMgY2FsbCB0byByZWdlbmVyYXRlIHNlbGYuCiAgICAgLSBDaGFuZ2VkIGVjZS1taWIudHh0IC0+IHVjZC1zbm1wLnR4dCBhbmQgaW5zdGFsbCAoYW5kIGdlbmVyYXRlKSBwcm9wZXJseS4KICAgCjE5OTYtMTAtMDcgMDE6MTEgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgc25tcCB2ZXJzaW9uIGNoZWNrIG9uIGVycm9yIHJldHVybiBmcm9tIHNldC4KICAgCjE5OTYtMTAtMDcgMDA6NTIgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBjb3JyZWN0bHkgZm9yIGdldC9zZXRtbnRlbnQuCiAgIAoxOTk2LTEwLTA3IDAwOjAxICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogTWliIGluc3RhbGxhdGlvbiBjaGFuZ2VkIHRvIHJlZmxlY3QgbmV3IG1pYiBkaXJlY3RvcnkuCiAgIAoxOTk2LTEwLTA2IDIzOjQ5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIFByb3BlciBhdXRvY29uZiBkaXJlbnQgaGVhZGVycy4KICAgCjE5OTYtMTAtMDYgMjM6NDEgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgTm93IGxvYWRzIGFsbCBtaWJzIChmaWxlcykgaW4gdGhlIGRpcmVjdG9yeSBTTk1QTElCL21pYnMuCiAgIAoxOTk2LTEwLTA0IDAyOjAxICB3aGFyZGFrZQoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBsaWIgLT4gbGliL3NubXAgcGF0aCBjb3JyZWN0aW9uIGluIEZJTEVTIHNlY3Rpb24uCiAgIC0gKHNubXBkLjEuZGVmKToKICAgICAtIEFkZGVkIGEgRklMRVMgc2VjdGlvbi4KICAgICAtIEdlbmVyYWwgY2xlYW4gdXAuCiAgIAoxOTk2LTEwLTA0IDAxOjQ2ICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOgogICAgIC0gQ2xlYW5lZCB1cCBtYW4gcGFnZSBmb3JtYXR0aW5nLgogICAgIC0gQWRkZWQgbm90ZSBhYm91dCBTTk1Qc2V0IGNvbW11bml0eSBzdHJpbmdzLgogICAgIC0gbWlub3IgcHJvb2YtcmVhZGluZyAobWFqb3IgcHJvb2ZpbmcgbmVlZGVkIHN0aWxsKS4KICAgICAtIFJlLW9yZ2FuaXplZCBhIGJpdC4KICAgCjE5OTYtMTAtMDQgMDE6NDQgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGZyb20gc2Vkc2NyaXB0IHdoZW4gdXNpbmcgYnJva2VuIGNwcCAoZ2NjKS4KICAgCjE5OTYtMTAtMDQgMDE6NDMgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogQWRkZWQgc25tcGdldC9zZXQgdG8gcGFzcyBleGFtcGxlLgogICAKMTk5Ni0xMC0wMyAwODoxMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogIFR1cm4gb24gb2xkIENNVSBkZWJ1Z2dpbmcgc3RhdG1lbnRzIHdpdGggLS1lbmFibGUtZGVidWdnaW5nLgogICAKMTk5Ni0xMC0wMyAwODowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAtIE1ha2UgYWdlbnQgcHJvcGVybHkgY2hlY2sgc25tcHNldCBleGl0IGNvZGVzIGFuZCB1c2UgdGhlbSAob24gQ09NTUlUKS4KICAgCjE5OTYtMTAtMDEgMDg6MjggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIHJlYWRfY29uZmlnLmMpOgogICAgIC0gQ2hlY2sgZm9yIG1udGVudC5oIGFuZCBpbmNsdWRlIGl0LgogICAgIC0gQ2hlY2sgZm9yIC9ldGMvbW50dGFiIG9yIC9ldGMvbXRhYiBhbmQgdXNlIGFwcHJvcHJpYXRlbHkuCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gcGljayBnZXRtbnRlbnQgb3ZlciBnZXRmc2ZpbGUgaWYgYm90aCBhcmUgYXZhaWxhYmxlLgogICAgIC0gZGVidWcgY2xlYW51cCAob2ZpbGUgLT4gc3RkZXJyLCBjaGVjayBmb3IgRE9ERUJVRyBpbnN0ZWFkIG9mIGNvbnN0IHZhcikuCiAgIAoxOTk2LTEwLTAxIDA3OjMwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBGcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBhbGxvd3MgdGhlIENNVSBsaWIgdG8gcmV0YWluIHRoZSBUQyBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggYQogICAgICAgcGFydGljdWxhciBvYmplY3QuIEluIHBhcnRpY3VsYXIgdGhpcyBhbGxvd3MgRGlzcGxheVN0cmluZ3MgdG8gYmUKICAgICAgIGRpZmZlcmVudGlhdGVkIGZyb20gT2N0ZXRTdHJpbmdzIHdoZW4gdGhleSBhcmUgbG9va2VkIHVwIGluIHRoZQogICAgICAgTWliIFRyZWUuCiAgIAoxOTk2LTA5LTI1IDA1OjE0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGZyZWVic2QyIHR5cGVjYXN0LgogICAKMTk5Ni0wOS0yNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiB0eXBvIGZpeGluZyBhIHR5cG8gKHNpZ2guLikuCiAgIAoxOTk2LTA5LTI0IDA4OjAyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogTW92ZWQgYSB2YXJpYWJsZSBkZWNsYWlyYXRpb24uCiAgIAoxOTk2LTA5LTI0IDA3OjU5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiB0eXBvcy4KICAgCjE5OTYtMDktMjQgMDc6NTQgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChjb25maWcqLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKTogQWRkZWQgc3lzL3NlbGVjdC5oIGZvciBBSVguCiAgIAoxOTk2LTA4LTMwIDAyOjUxICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBNb3JlIG1pbm9yIGJ1Z3MgbGlzdGVkCiAgIAoxOTk2LTA4LTMwIDAyOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtYWxsb2MgcHJvdG90eXBlIGR1ZSB0byBjb25mbGljdGlvbnMuCiAgIAoxOTk2LTA4LTMwIDAxOjE1ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBVcGRhdGVkIGZvciAzLjEuMC4xCiAgIAoxOTk2LTA4LTMwIDAwOjM0ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4wLjEgKQogICAKMTk5Ni0wOC0zMCAwMDozNCAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoTkVXUywgQ2hhbmdlTG9nKTogVXBkYXRlZCBmb3IgMy4xLjAuMQogICAKMTk5Ni0wOC0zMCAwMDoyNCAgd2hhcmRha2UKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiAgQWRkZWQga2VybmVsX3N1bm9zNS5vIHRvIHNubXB0cmFwIGZvciBnZXRLc3RhdC4KICAgCjE5OTYtMDgtMzAgMDA6MjMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOiBwYXRjaCBzY3Jld2VkIHVwLgogICAKMTk5Ni0wOC0zMCAwMDoyMiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmVkIC1YcyBmbGFnIGZvciBnY2Mgb24gc29sYXJpcy4KICAgICAtIGxvZ2ZpbGUgY2hlY2tzIGZvciBleGlzdGFuY2Ugb2YgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgogICAKMTk5Ni0wOC0yOSAwNzoyOSAgd2hhcmRha2UKCiAgICogUkVBRE1FLCBUT0RPOgoKICAgLSBDaGFuZ2VkIG15IGVtYWlsIGFkZHJlc3MgdG8gbXkgbmV3IG9uZS4KICAgCjE5OTYtMDgtMjkgMDc6MjAgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhdXRvY29uZiosIHNubXBfdmFycy5jKTogUmVtb3ZlZCBzb21lIHNvbGFyaXMgaWZkZWZzLgogICAKMTk5Ni0wOC0yOSAwNzowMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IFJlbW92ZWQgU1ZSNCBpZmRlZnMKICAgCjE5OTYtMDgtMjkgMDY6NTggIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogUGF0Y2ggZnJvbSBUcmV2b3IgQm91cmdldCA8dGJvdXJnZXRAcXVhbGNvbW0uY29tPgogICAgIC0gbWFsbG9jIHN5c2Rlc2MgaW5zdGVhZCBvZiBhc3N1bWluZyA8IDEyOCBieXRlcy4KICAgCjE5OTYtMDgtMjkgMDY6MDggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBnY2Mgd2FybmluZ3MgTlVMTCAtPiAwCiAgIAoxOTk2LTA4LTI5IDA2OjA3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gc2F2ZSBtaWIgZGVzY3JpcHRpb25zIGZvciBzbm1wdHJhbnNsYXRlIGFuZCBvdGhlciBhcHBzIHRoYXQgbmVlZCBpdC4KICAgCjE5OTYtMDgtMjkgMDY6MDYgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHByb3RvdHlwZXMgZm9yIGdjYyB3YXJuaW5ncwogICAKMTk5Ni0wOC0yOSAwNjowNiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSB1Y2hhcihzKSBjYW4ndCBiZSBsZXNzIHRoYW4gMC4KICAgCjE5OTYtMDgtMjkgMDY6MDMgIHdoYXJkYWtlCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wdHJhcC4xOgoKICAgLSAobWFuL3NubXB0cmFwLjEpOiAgYWRkZWQgYnkgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgCjE5OTYtMDgtMjkgMDU6NTkgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBzZXQgZXhpdCBjb2RlcyBvZiAwIGZvciBhbGwgYXBwcy4KICAgICAtIFJlbW92ZWQgU1ZSNCAjaWZkZWZzLgogICAgIC0gR3JlYXRseSBpbXByb3ZlZCBzbm1wdHJhcC4KICAgCjE5OTYtMDgtMjcgMDE6MDQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGF1dG9jb25mKik6CiAgICAgLSBGcmVlQlNEIGFkZGl0aW9ucy4KICAgICAtIE5ldyBrZXJuZWwgbG9jYXRpb246ICAva2VybmVsIChpY2spLgogICAgIC0gTG9nIGZpbGUgZGVmYXVsdCBpbnRlbGxpZ2VudGx5IGNoZWNrcyBmb3IgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgogICAgIC0gQ2hlY2tzIGZvciBnZXRsb2FkYXZnKCkuCiAgIAoxOTk2LTA4LTI3IDAxOjAwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogTW9yZSB3YXJwZWQgRnJlZUJTRCBjaGFuZ2VzCiAgIAoxOTk2LTA4LTI3IDAwOjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjE5OTYtMDgtMjcgMDA6MDEgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOgogICAgIC0gRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAgIC0gbW9yZSBhdXRvY29uZiBjb21wbGV0ZTogcGF0aHMgdG8gbGlicmFyaWVzIGFuZCBrZXJuZWwgbG9jYXRpb24uCiAgIAoxOTk2LTA4LTI2IDIzOjQ3ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBGaXggYnl0ZSBvcmRlciBwcm9ibGVtIChjb252ZXJ0IHRvIG5ldHdvcmsgYmVmb3JlIHNlbmRpbmcpLgogICAKMTk5Ni0wOC0yNiAwNzo1NyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYzoKCiAgIC0gKGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jKTogRnJlZUJTRCBtb2RpZmljYXRpb25zCiAgIAoxOTk2LTA4LTI2IDA3OjU1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4ZWQgYSBnY2MvRnJlZUJTRCBvcHRpbWl6YXRpb24gYnVnIChzdHVwaWQgY29tcGlsZXIpCiAgIAoxOTk2LTA4LTI2IDAxOjM3ICB3aGFyZGFrZQoKICAgKiBlY2UtbWliLmRlZjoKCiAgIC0gKGVjZS1taWIuZGVmKTogIGNvbW1hcyBvdXQgb2YgcGxhY2UuCiAgIAoxOTk2LTA4LTI2IDAxOjM3ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETykgRXh0cmEgbWliIHBhcnNpbmcgaWRlYXMgYWRkZWQuCiAgIAoxOTk2LTA4LTI2IDAxOjM2ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUykgVHlwbywgZXh0cmEgcXVvdGF0aW9uIG1hcmsuCiAgIAoxOTk2LTA4LTIxIDA2OjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzdGVzdDoKCiAgIEFkZGVkIHBhc3N0ZXN0IQogICAKMTk5Ni0wNS0yNCAxNTo0NiAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEgKQogICAKMTk5Ni0wNS0yNCAxNTo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNvcHlyaWdodCB1cGRhdGUKICAgCjE5OTYtMDUtMjQgMTU6NDMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6IDMuMSByZWxlYXNlIGluZm8gdXBkYXRlLgogICAKMTk5Ni0wNS0yNCAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgc29tZSBpZmRlZiByZXF1aXJlbWVudHMuCiAgIAoxOTk2LTA1LTI0IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICNpZmRlZiB0eXBvcwogICAKMTk5Ni0wNS0yNCAxNDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBtZW1tb3ZlIGJlZm9yZSB5b3UgZGVmaW5lIGl0LgogICAKMTk5Ni0wNS0yNCAxMzo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIHJvdXRlLmM6CgogICAtIChpZi5jLCByb3V0ZS5jKTogY2FzdCByZXR1cm5zIGZyb20gaW5kZXggdG8gY2hhciAqLgogICAKMTk5Ni0wNS0yNCAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICBkZWZpbmUgbWVtbW92ZSBpZiBub3QgZGVmaW5lZCBhbmQgbWVtY3B5IGlzLgogICAKMTk5Ni0wNS0yNCAxMzoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogIG5vdGUgb24gY3JlYXRpbmcgY29tbWVudHMgYWRkZWQuCiAgIAoxOTk2LTA1LTI0IDEzOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogZGVjbGFyYXRpb25zIGNsZWFudXAKICAgCjE5OTYtMDUtMjQgMTM6MDkgIGhhcmRha2VyCgogICAqIG1pYklJLnR4dDoKCiAgIC0gKG1pYklJLnR4dCk6IHJlbW92ZWQgO3MgYXQgdGhlIGVuZCBvZiB0aGUgQkVHSU4gbGluZXMuCiAgIAoxOTk2LTA1LTI0IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgY29uZmlnLmguaW46CgogICAtIChjb25maWcqKTogIENoZWNrIGZvciBzeXMvbW50dGFiLmgKICAgCjE5OTYtMDUtMjQgMTM6MDggIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgZXhhbXBsZSBmaWxlIGNoYW5nZXMuCiAgIAoxOTk2LTA1LTI0IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBhIHRoYW5rcyBzZWN0aW9uLgogICAKMTk5Ni0wNS0yNCAxMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKTogIHBhcnNpbmcgZml4ZXMgZnJvbSBNaWtlIFBlcmlrIDxtaWtlcEBjcnQuY29tPgogICAKMTk5Ni0wNS0yMyAxNzo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBnZXRtbnRlbnQuCiAgIAoxOTk2LTA1LTIzIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBmaXhlZCBkaXNrIGNoZWNrcyBvbiBTb2xhcmlzIGFuZCBhbHBoYSdzCiAgICAgLSB1c2Ugc3RhdHZmcyBvdmVyIGZzdGFiIGlmIGJvdGggcHJlc2VudC4KICAgCjE5OTYtMDUtMjMgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2wuYywgcGFydHkuYywgdmlldy5jOgoKICAgLSAoYWNsLmMsIHBhcnR5LmMpOiBpbmNsdWRlIHN0ZGlvLmgKICAgCjE5OTYtMDUtMjMgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiB0eXBlIGNhc3RpbmcgYnVncy4KICAgCjE5OTYtMDUtMjMgMTQ6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2wuYywgcGFydHkuYywgdmlldy5jOgoKICAgLSAoYWNsLmMsIHBhcnR5LmMsIHZpZXcuYyk6IHJlbW92ZWQgTlVMTCBkZWZpbmVzLgogICAKMTk5Ni0wNS0yMyAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbid0IGRlZmluZSByYW5kb20gaWYgaXQgYWxyZWFkeSBleGlzdHMuCiAgIAoxOTk2LTA1LTIyIDEyOjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSByZXdvcmtlZCB0aGUgd2F5IHNubXBuZXRzdGF0IC1pIHdvcmtzLgogICAKMTk5Ni0wNS0yMiAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYywKICAgICAgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMscmVhZGNvbmZpZy5jLHNubXBfdmFycy5jKToKICAgICAtIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAtIGZpbmFsbHkgbmFpbGVkIHRoYXQgbWlzc2luZyBpbml0aWFsaXphdGlvbiB0aGF0IGdhdmUgcHJvYmxlbXMKICAgICAgICAgd2l0aCB0aGUgQVQgc3VidHJlZQogICAgICAgLSBJIGFsc28gaW1wbGVtZW50ZWQgdGhlIGRpc2sgcGFydCBvZiB0aGUgZXh0ZW5zaWJpbGl0eSBpbiB0aGUKICAgICAgICAgYXR0YWNoZWQgcGF0Y2guCiAgIAoxOTk2LTA1LTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwKICAgbWtpbnN0YWxsZGlyczoKCiAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogQXV0b2NvbmYtMi4xMAogICAKMTk5Ni0wNS0yMiAwODo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKSBVcGRhdGVkIHRoZSB3YXkgc2Vkc2NyaXB0IGlzIHVzZWQuCiAgIAoxOTk2LTA1LTE1IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pIEZpeGVkIGEgaG9ycmlibGUgdHlwby4gIFAgLT4gUFJFRklYCiAgIAoxOTk2LTA1LTE1IDEyOjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpIHJlbW92ZWQgJiBpbiBmcm9udCBvZiBhcnJheSBwYXNzZWQgYXMgYXJnLgogICAKMTk5Ni0wNS0xNSAxMjowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBBZGRlZCBhIG5vdGUgKHBvaW50ZXIgdG8gZG9jcykgb24gdGhlIGFnZW50J3MgZXh0ZW5zaWJsaXR5LgogICAKMTk5Ni0wNS0xNSAxMjowMCAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMTk5Ni0wNS0xNSAwOTo1MSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuQTEgKQogICAKMTk5Ni0wNS0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBwYXRjaCBtaXN0YWtlLgogICAKMTk5Ni0wNS0xNSAwOToyOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORywgUkVBRE1FLCBUT0RPOgoKICAgLSAoQ09QWUlORywgUkVBRE1FLCBUT0RPKSBSZWxlYXNlIGRvY3MgdXBkYXRlZC4KICAgCjE5OTYtMDUtMTUgMDk6MDcgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudGVkIHBhc3MgdGhydSBtaWJzLgogICAKMTk5Ni0wNS0xNSAwOTowNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLHNlZHNjcmlwdC5pbikgQWRkZWQgUFJFRklYIHRvIHRoZSBzZWRzY3JpcHQuCiAgIAoxOTk2LTA1LTE1IDA5OjA1ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBhZ2VudC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICgqLy5jdnNpZ25vcmUpIGlnbm9yZSBmaWxlIHVwZGF0ZS4KICAgCjE5OTYtMDUtMTUgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1Lmg6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIFBhdGNoIGZyb20gIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAgIC0gQmV0dGVyIGNhY2hpbmcgYWxnb3JpdGhtIGZvciBpbXByb3ZlZCBzcGVlZC4KICAgCjE5OTYtMDUtMTUgMDg6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFnZW50L2V4dGVuc2libGUvcGFzcy5jKSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBJbXBsZW1lbnRlZCBtaXNzaW5nIHBhcnRzIG9mIGludGVyZmFjZSBhZGRyZXNzIGFuZCBuZXR3b3JrIG91dHB1dCAoLWkpCiAgIAoxOTk2LTA1LTEzIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2ltcGwuaCk6IENoYW5nZSBSV1JJVEUgdG8gaW5jbHVkZSBXcml0ZSBmb3IgVjIgYml0cy4KICAgCjE5OTYtMDUtMTMgMTU6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAtIEJ1ZyBmaXg6IEdMT0JBTFNFQ1VSSVRZIGJ1ZzogIHNhdmUgcmlnaHRtb3N0IHR3byBiaXRzIGluIGFjbC4KICAgCjE5OTYtMDUtMTAgMTg6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2tlcm5lbF9zdW5vczUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcHN0YXR1cy4xLCBzbm1wbGliL3BhcnNlLmMKOgoKICAgLSAobWFueSk6IE1lcmVnZWQgYmFnZ2VzZW4tMy0wLTctMiBicmFuY2ggaW50byBtYWluIHRydW5rLgogICAKMTk5Ni0wNS0xMCAxNzowNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBzdGF0dXMuMToKCiAgIGZpbGUgc25tcHN0YXR1cy4xIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJhZ2dlc2VuLTMtMC03LTIuCiAgIAoxOTk2LTA1LTEwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIGZpbGUgc25tcHN0YXR1cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJhZ2dlc2VuLTMtMC03LTIuCiAgIAoxOTk2LTA1LTEwIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBIHBhdGNoIHRvIGZpeCBhIHZpcnR1YWwgaW50ZXJmYWNlIHByb2JsZW0uCiAgICAgLSBwYXRjaCBzdXBwbGllZCBieSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgIAoxOTk2LTA1LTA5IDE2OjEzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYwo6CgogICAtIChjb25maWd1cmUuaW4pOiBTb2xhcmlzIHNwZWNpZmljIGNwcCBmbGFncyBhZGRlZCBmb3IgU1VOc3BybydzIGNwcC4KICAgLSAoYWdlbnQve3NubXBfdmFycyxzbm1wZH0uYyxhZ2VudC9leHRlbnNpYmxlL3tleHRlbnNpYmxlLG1pc2MscGFzc30uYywKICAgICAgc25tcGxpYi97bWliLHNubXBfY2xpZW50fS5jKToKICAgICAtIENsZWFuZWQgdXAgcHJvdG90eXBlcyB0byBtYXRjaCBtb3JlIGNhcmVmdWxseSAod2l0aCBTb2xhcmlzJ3Mgc3BybyBjYykuCiAgIAoxOTk2LTA1LTA5IDEzOjMyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWNjb25maWcuaCxhZ2VudC97TWFrZWZpbGUsc25tcF92YXJzLmN9LGFnZW50L2V4dGVuc2libGUvbWFueSk6CiAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBwYXNzdGhydSBtaWJzLiAgVG90YWwgY29udHJvbCBpcyBoYW5kZWQgdG8gZXhlYydzLgogICAKMTk5Ni0wNS0wOSAxMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCiAgIAoxOTk2LTA1LTA5IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKGFwcHMvc25tcHNldC5jKSBBZGRlZCAnLicgYXMgYSBkZWxpbWl0ZXIgZm9yIGRlY2ltYWwgZW5jb2RlZCBzdHJpbmdzLgogICAKMTk5Ni0wNS0wMyAxNDo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcC5jKSBBZGRlZCAjaW5jbHVkZTxzeXMvc29ja2lvLmg+CiAgIAoxOTk2LTA1LTAzIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKSBTb2xhcmlzIGZpeCBmb3IgaW50ZXJmYWNlcy4KICAgICAtIEZyb20gRGFuIEEuIERpY2tleSA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgCjE5OTYtMDUtMDMgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKQogICAgIC0gQ2hhbmdlZCB0aGUgaW50ZXJmYWNlIGNvdW50ZXIgdG8gYSBzaG9ydCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgKGJ1cyBlcnIpCiAgICAgLSBVbmRlZmVkIGEgZnVuY3Rpb24gdGhhdCBpcyBuZXZlciB1c2VkLgogICAKMTk5Ni0wNS0wMyAxNDozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgogICAKMTk5Ni0wNS0wMSAxNDo1OSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNy4yICkKICAgCjE5OTYtMDUtMDEgMTQ6NTkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZyxORVdTKSB2ZXJzaW9uIHVwZGF0ZSAzLjAuNy4yCiAgIAoxOTk2LTA1LTAxIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCxhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaCk6IHJlbW92ZWQgY29tZW50cy9zcGFjZXMgZnJvbSBkZWZpbmVzLgogICAKMTk5Ni0wNS0wMSAxNDozNyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKSBmb3Jnb3QgTkVUQlNEMUlEIGRlZi4KICAgCjE5OTYtMDUtMDEgMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spIFRrLWIxMCBmaXhlcy4KICAgCjE5OTYtMDUtMDEgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3JvdXRlX3dyaXRlLmM6CgogICAtIChhZ2VudC9yb3V0ZV93cml0ZS5jLGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAtIG5ldGJzZDEuMUIgc3BlY2lmaWMgZml4ZXM6IGNsYXNoIHdpdGggc3lzX2Vycmxpc3QgYW5kIHJ0X2RzdCBkZWZpbmVzLgogICAKMTk5Ni0wNS0wMSAxMzo1NSAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW4vc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZikgLkMgLT4gLkIsIHRvIGluY3JlYXNlIG5yb2ZmIHBvcnRhYmlsaXR5LgogICAKMTk5Ni0wNS0wMSAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKiwgYWdlbnQvZXh0ZW5zaWJsZS97cmVhZF9jb25maWcsZXh0ZW5pc2JsZX0uYyk6CiAgICAgLSBjb25maWd1cmlmaWVkIChuZXcgd29yZCkgc29tZSBvZiBOaWVscycgY2hhbmdlcyBhbmQgdGhlIGJjb3B5L21lbW1vdmUgc3R1ZmYuCiAgIAoxOTk2LTA1LTAxIDEyOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBrZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jCiwgc25tcGQuYzoKCiAgIC0gKG1hbnkpIEZpeGVzIGZvciBTb2xhcmlzICgyLjUpIHN1Ym1pdHRlZCBieQogICAgICAgICAgICBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgICJTb21lIGFyZSBteSBvd24sIG90aGVycyBhcmUgZnJvbSBZdXJpIFJhYm92ZXIgd2hvIG9yaWdpbmFsbHkKICAgICAgICBjcmVhdGVkIHRoZSBwYXRjaC4gU29tZSBvZiB0aGlzIGlzIHRoZXJlIHRvIGVsaW1pbmF0ZSB0aGUKICAgICAgICBkZXBlbmRlbmN5IG9uIHRoZSB1Y2JsaWIgY29tcGF0aWJpbGl0eSBzdHVmZiwgc29tZSBpcyAiY29zbWV0aWMiLAogICAgICAgIGJ1dCBpdCBhbHNvIGZpeGVzIGEgc2VyaW91cyBwcm9ibGVtIGluIHRoZSBhZ2VudCwgd2hlcmUgd2Fsa2luZwogICAgICAgIHRoZSBtaWIgdHJlZSBjYW4gbG9vcCBlbmRsZXNzbHkgaWYgeW91IGhhdmUgbXVsdGlwbGUgbmV0d29yawogICAgICAgIGludGVyZmFjZXMuIgogICAKMTk5Ni0wNC0yNSAxMjoxOSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNy4xICkKICAgCjE5OTYtMDQtMjUgMTI6MTggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChDaGFuZ2VMb2csIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKSBEZWZpbmVkIERFQlVHUCBpZiBET0RFQlVHIGlzIG5vdCBkZWZpbmVkLgogICAKMTk5Ni0wNC0yNCAxNDo1NCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNyApCiAgIAoxOTk2LTA0LTI0IDE0OjUzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykgdXBkYXRlIGZvciAzLjAuNwogICAKMTk5Ni0wNC0yNCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykgbmV3IHByZWY6ICBkb24ndCBwb3AgZm9yd2FyZCBvbiBuZXcgcHJvYmxlbXMuCiAgIAoxOTk2LTA0LTI0IDEzOjI1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChjb25maWcqLGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIGNvbmZpZyBjaGVja2luZyBmb3IgcnRlbnRyeS5ydF9uZXh0CiAgIAoxOTk2LTA0LTI0IDExOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQCMkJWluZyBzb2xhcmlzCiAgIAoxOTk2LTA0LTI0IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQ2hlY2tlZCBmb3Igc3lzL21idWYgZm9yIGRldGVybWluaW5nIHJ0ZW50cnkucnRfbmV4dAogICAKMTk5Ni0wNC0yNCAwOTowNyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpIHVwZGF0ZWQKICAgCjE5OTYtMDQtMjQgMDk6MDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgdXBkYXRlZAogICAKMTk5Ni0wNC0yNCAwODo1NCAgaGFyZGFrZXIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICAtIChtYW4vLmN2c2lnbm9yZSkgYWRkZWQgc25tcGQuMQogICAKMTk5Ni0wNC0yNCAwODo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLAogICBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbgo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsIG92LyopIEFkZGVkIE5ldEJTRCB0byBzeXMtT0lEIHJldHVybmVkLgogICAKMTk5Ni0wNC0yNCAwODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpIG1vcmUgY29uZmlnIGZpbGVzIGZvciBOZXRCU0QuCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKSByZW1vdmVkIGFycCB0YWJsZXMgZm9yIG5ldGJzZC4KICAgCjE5OTYtMDQtMjQgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FsYXJtLmM6CgogICAtIChhZ2VudC9hbGFybS5jKSBGaXhlZCBzb21lIGRlZmluZSBuYW1pbmcgY29uZmxpY3RzIGZvciBOZXRCU0QgKHRpbWVyYWRkKCkpLgogICAKMTk5Ni0wNC0yNCAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbikgRm9yZ290IGEgcXVvdGUuICAod2h5IGhhc24ndCB0aGlzIGFwcGVhcmVkIGJlZm9yZT8pCiAgIAoxOTk2LTA0LTI0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pIE1vcmUgaGVhZGVyIGZpbGUgY2hlY2tzICh2bS92bS5oICgrIG90aGVycykgYW5kIHVmcy9mZnMvZnMuaCkKICAgCjE5OTYtMDQtMTYgMTg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCBmZmx1c2ggY2FsbHMgYWZ0ZXIgcHJpbnRpbmcgcGFja2V0IGR1bXBzCiAgIAoxOTk2LTA0LTE2IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC97cm91dGVfd3JpdGUuYyxzbm1wX3Zhcl9yb3V0ZS5jfSkgT1NGMy4yIHNwZWNpZmljIGNoYW5nZXMuICBhcmcuCiAgIAoxOTk2LTA0LTE2IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgSSBmb3Jnb3QgRE1FTV9MT0MgbmVlZHMgdG8gYmUgI3VuZGVmJ2VkIGlmIG5vdCBmb3VuZAogICAKMTk5Ni0wNC0xNSAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpIEZpeGVkIDIgZ2V0dGltZW9mZGF5IGNhbGxzIC0tIGFkZGVkIGEgTlVMTCB0aW1lem9uZSBwdHIuCiAgIAoxOTk2LTA0LTE1IDE0OjExICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS13aXRoLWRlZmF1bHRzLiAgRG9uJ3QgcHJvbXB0IHRoZSB1c2VyLgogICAtIChjb25maWd1cmUpIGJ1ZyBmaXhlczogIHdhc24ndCBxdW90aW5nIGtlcm5lbCBhbmQgZG1lbSBsb2NhdGlvbi4KICAgLSAoY29uZmlndXJlKSBnY2MgY3BwIHJlcXVpcmVzIC14IGMgdG8gYWNjZXB0IC5pbiBmaWxlIHN1ZmZpeC4KICAgCjE5OTYtMDQtMTUgMTI6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLWVuYWJsZS1kZWJ1Z2dpbmcuICBUdXJucyBvbiBkZWJ1Z2dpbmcuCiAgIC0gKGNvbmZpZ3VyZSkgRml4ZXMgZm9yIHR5cGUgY2hlY2tpbmcgb2YgNC40IHJ0ZW50cnkgc3RydWN0dXJlcyBvbiBhbHBoYXMuCiAgIAoxOTk2LTA0LTEyIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGVjZS1taWIuZGVmLAogICBzZWRzY3JpcHQuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIG92L1VDRC1maWVsZHMsCiAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLAogICBvdi9iaXRtYXBzL1VDRC5maWVsZHM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKQogICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAogICAtIChtYW55KSBBZGRlZCBzdXBwb3J0IGZvciBocHBhMS4xLWhwLWhwdXgxMC4wMQogICAgIC0gdG90YWxseSEgcmVkaWQgdGhlIHJvdXRpbmcgdGFibGVzIGZvciBCU0QgNC40IGRlcml2ZWQgc3lzdGVtcwogICAgICAgKGFscGhhLCBocHV4MTAuMDErLCBuZXRic2QpIHNpbmNlIGhwdXgxMCBkb2Vzbid0IGhhdmUgNC4zIGNvbXBhdCBzdHJ1Y3RzLgogICAtIChlY2UtbWliLmRlZikgQ2FwaXRhbGl6YXRpb24gcHJvYmxlbS4KICAgLSAoY29uZmlndXJlLmluKQogICAgIC0gQ2xlYW5lZCB1cCBrZXJuZWwgY2hlY2tpbmcKICAgICAtIFN0YXJ0ZWQgdXNpbmcgYSBhdXRvY29uZiAyLjggZmVhdHVyZSB0byBjaGVjayBmb3IgY2FjaGUgdmFsdWVzLgogICAKMTk5Ni0wNC0xMiAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS5jKQogICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAogICAKMTk5Ni0wNC0wNSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKSBBZGRlZCBhICdjbGVhbicgZGVmaW5pdGlvbiB0byB0aGUgTWFrZWZpbGUuCiAgIAoxOTk2LTA0LTA1IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jKSByZW1vdmVkIGEgcmVxdWlyZWQgJ3VuaXgnIGRlZmluZSBzdXJyb3VuZGluZyBhIGhlYWRlciBmaWxlLgogICAKMTk5Ni0wNC0wNSAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKSBhdXRvY29uZi0yLjcgLT4gYXV0b2NvbmYtMi45CiAgIAoxOTk2LTA0LTA1IDE2OjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrLmRlZikgVGstYjggPT4gVGstYjEwIGNoYW5nZXMKICAgCjE5OTYtMDMtMTEgMTU6NTggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHNtYWxsIENoYW5nZUxvZyB1cGRhdGUKICAgCjE5OTYtMDMtMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGZpeGVkIGEgdGltZW91dCBidWcgY2F1c2VkIGJ5IGFyY2hpdGVjdHVyZXMKICAgICB3aXRoIGFuIHVuc2lnbmVkIHRpbWV2YWwudHZfc2VjIHZhbHVlLgogICAgIC0gVGhhbmtzIGdvZXMgdG8gR2lvdmFubmkgUy4gTWFyem90IDxnbWFyem90QGJheW5ldHdvcmtzLmNvbT4gZm9yCiAgICAgICB0aGUgcGF0Y2ghCiAgIAoxOTk2LTAzLTExIDE1OjQxICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC42ICkKICAgCjE5OTYtMDMtMTEgMTU6NDEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZy9ORVdTKTogdXBkYXRlZCBmb3IgMy4wLjYKICAgCjE5OTYtMDMtMTEgMTU6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG1vcmUgY2xlYW4gdXAgYW5kIGFkZGVkIHJlZmVyZW5jZSB0byB0aGUgdWNkLXNubXAgbWFpbGluZyBsaXN0LgogICAKMTk5Ni0wMy0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY2xlYW5lZCB1cCwgcmUtYXJyYW5nZWQsIHNob3J0ZW5lZCAoc2VjdGlvbnMgbW92ZWQgdG8gbWFuLyogZG9jcykuCiAgIAoxOTk2LTAzLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNlZHNjcmlwdC5pbjoKCiAgIC0gKG1hbi97TWFrZWZpbGUuaW4sc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZn0sdmVyc2lvbnRhZyxzZWRzY3JpcHQuaW4pOgogICAgIC0gY2xlYW5lZCB1cCBkb2N1bWVudGF0aW9uIG1vcmUgYW5kIGFkZGVkIHRoZSB2ZXJzaW9uIG51bWJlciB0byB0aGUgdHJhaWxlcnMuCiAgIAoxOTk2LTAzLTExIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6IGNvbW1lbnRlZCBvdXQgbmxpc3Qgd2FybmluZ3MuCiAgIAoxOTk2LTAzLTA4IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpIGZpeGVkIGEgZml4IHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiBmaXhlZC4KICAgCjE5OTYtMDMtMDggMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuYykgQ2hlY2sgaWYgdmFyaWFibGUgY29udGVudCBpcyBOVUxMIGJlZm9yZSB1c2luZy4KICAgCjE5OTYtMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wbGliL21pYi5jKSBwcmludGVkIHZhbHVlcyBmb3IgdGltZXRpY2tzIGFyZSBubyBsb25nZXIgbmVnYXRpdmUuCiAgIAoxOTk2LTAzLTA2IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIC0gKGVjZS1taWIuZGVmKQogICAgIC0gQ2hhbmdlZCBjYXBpdGFsaXphdGlvbiBzY2hlbWVzIHRvIGJlIG1vc3kgY29tcGxpYW50LgogICAgIC0gTWFkZSB0aGUgbWVtb3J5IG1pYiBTWU5UQVggcG9pbnQgdG8gdGhlIE1lbW9yeSBzZXF1ZW5jZSBsaWtlIGl0IHNob3VsZC4KICAgCjE5OTYtMDMtMDYgMDk6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKSBBZGRlZCBPX1RSVU5DIHRvIHRoZSBsb2dmaWxlIG9wZW4oKSBjYWxsLgogICAKMTk5Ni0wMi0yMSAxNjoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKQogICAgIC0gQ2hhbmdlZCB0cmFwX3R5cGUgJiBzcGVjaWZpY190eXBlIHRvIGxvbmcgZnJvbSBpbnQgZm9yIDY0IGJpdCBhcmNoaXRlY3R1cmVzLgogICAgICAgLSBzdWdnZXN0ZWQgYnkgZnJhbmN1c0BtZXRzbnkuZGVscGhpLmNvbS4KICAgCjE5OTYtMDItMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgc25tcHRyYXAuYzoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXAuYykKICAgICAtIEFkZGVkIGFwcHMvc25tcHRyYXAKICAgICAgIC0gY29kZSB0YWtlbiBmcm9tIDIuMC4xIGFuZCBzdWJtaXR0ZWQgdG8gbWUgYnkgZnJhbmN1c0BtZXRzbnkuZGVscGhpLmNvbS4KICAgICAgIC0gSSBoYXZlIHlldCB0byB0ZXN0IGl0LgogICAKMTk5Ni0wMi0yMSAxNjoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbiwgbWFuLy5jdnNpZ25vcmUsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmKQogICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSBzbm1wZC5jb25mIG1hbnVhbCBwYWdlLgogICAKMTk5Ni0wMi0xNiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFjY29uZmlnLmgsY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKQogICAgIC0gLmNvbmYgZmlsZSBhZGRpdGlvbjogICJjb21tdW5pdHkgTiBTVFJJTkciIHRvIGNoYW5nZSBjb21tdW5pdHkgbmFtZXMKICAgCjE5OTYtMDItMTIgMTQ6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmhpbiwgYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpCiAgICAgLSBUaGUgYWdlbnQgbm93IHNldHMgYW4gYWxhcm0gdG8gcmVzdGFydCByYXRoZXIgdGhhbiBkb2luZyBhdCB0aGUKICAgICAgIHNubXBzZXQgdGltZSB0byByZXR1cm4gYSB2YWx1ZSB0byB0aGUgc25tcHNldCByZXF1ZXN0LgogICAKMTk5Ni0wMi0wOSAxNzowNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgZWNlLW1pYi5kZWYsIHNlZHNjcmlwdC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIG92Ly5jdnNpZ25vcmUsIG92L01ha2VmaWxlLmluLCBvdi9SRUFETUUsCiAgIG92L1VDRC1Db21wdXRlciwgb3YvVUNELWZpZWxkcywgb3Yvb2lkX3RvX3N5bS5pbiwKICAgb3Yvb2lkX3RvX3R5cGUuaW4sIG92L2JpdG1hcHMvVUNELjIwLm0sCiAgIG92L2JpdG1hcHMvVUNELjIwLnAsIG92L2JpdG1hcHMvVUNELjI2Lm0sCiAgIG92L2JpdG1hcHMvVUNELjI2LnAsIG92L2JpdG1hcHMvVUNELjMyLm0sCiAgIG92L2JpdG1hcHMvVUNELjMyLnAsIG92L2JpdG1hcHMvVUNELjM4Lm0sCiAgIG92L2JpdG1hcHMvVUNELjM4LnAsIG92L2JpdG1hcHMvVUNELjQ0Lm0sCiAgIG92L2JpdG1hcHMvVUNELjQ0LnAsIG92L2JpdG1hcHMvVUNELjUwLm0sCiAgIG92L2JpdG1hcHMvVUNELjUwLnAsIG92L2JpdG1hcHMvVUNELmZpZWxkczoKCiAgIC0gQmV0dGVyIE9wZW5WaWV3IHN1cHBvcnQKICAgICAtIFJldHVybnMgZGlmZmVyZW50IHN5c09iamVjdElEJ3MgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlCiAgICAgLSBBZGRlZCBhICdvdicgZGlyZWN0b3J5IGZvciBPcGVuVmlldyBzdXBwb3J0IGZpbGVzCiAgICAgICAtIGN1cnJlbnRseSBjb250YWlucyBuZWNlc3NhcnkgZmlsZXMgdG8gc3VwcG9ydCBhIFVDRCBiaXRtYXAgZmlsZQogICAgICAgICBmb3IgaG9zdHMgdXNpbmcgdGhlIHVjZC1zbm1wIGFnZW50LiAgU2VlIHRoZSBvdi9SRUFETUUgZmlsZSBmb3IgZGV0YWlscy4KICAgCjE5OTYtMDEtMjYgMDg6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBUaGUgU29sYXJpcyAyLjUga2VybmVsIGhhcyBtb3ZlZCB0byAva2VybmVsL2dlbnVuaXgKICAgICAtIFRoYW5rcyBnb2VzIHRvIHBvbW1pZXJAdm9sbmF5LnN0b3J0ZWsuY29tIChWaW5jZW50IFBvbW1pZXIgKFRvdWxvdXNlKSkKICAgCjE5OTYtMDEtMjQgMTY6MzYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgZWNlLW1pYi5kZWYsIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLCBjb25maWcuaCwgZWNlLW1pYi4qLCBzZWRzY3JpcHQuaW4pCiAgICAgLSBjaGFuZ2VkIHRoZSB3YXkgbWliLnR4dCBpcyBidWlsdAogICAgICAgLSBzcGxpdCB0aGUgY29tbWFuZCBpbnRvIHR3byBwYXJ0cyB0byBidWlsZCBhIGVjZS1taWIudHh0IGFzIHdlbGwKICAgICAtIGFkZGVkIGEgbmV3IE9iamVjdElEIGFkZGl0aW9uIHRvIGVjZS1taWIudHh0CiAgICAgLSBERUZNQVhMT0FEQVZFIC0+IERSRU1PVkVNRUVGTUFYTE9BREFWRQogICAKMTk5Ni0wMS0yNCAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPgogICAgIC0gZml4ZXMgLXAgUE9SVCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSB0aGUgcmVxdWVzdGVkIHBvcnQuCiAgICAgLSBmaXhlcyB0aGUgLWwgTE9HRklMRSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSBpdC4KICAgCjE5OTYtMDEtMjQgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBSZXR1cm5pbmcgRVhURU5TSUJMRURPVE1JQi5BR0VOVElEIGFzIHRoZSBuZXcgb2JqZWN0aWQKICAgCjE5OTYtMDEtMjIgMTc6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZyxORVdTKQogICAgIC0gUHJlcGVkIGZvciAzLjAuNSByZWxlYXNlCiAgIAoxOTk2LTAxLTIyIDE3OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKQogICAgIC0gYWRkZWQgYWdlbnQgY29udHJvbHM6ICByZXN0YXJ0LCB1cGRhdGVjb25maWcsIGNsZWFyY2FjaGUuCiAgICAgLSByZW1vdmVkIGFuIG9sZCBkZWJ1Z2dpbmcgcHJpbnRmLgogICAgIC0gY3RybC1mID0+IGZpeGFsbC4KICAgICAtIEFkZGVkIGtleWJvYXJkIGFjY2VsZXJhdG9ycyB0byB0aGUgYXNzb2NpYXRlZCBtZW51IGl0ZW1zLgogICAgIC0gTWFkZSBoaWdobGlnaHRUaGlja25lc3MgYSBnbG9iYWwgcGFyYW1ldGVyIHZpYSAkd2luZG93LT5vcHRpb24oJ2FkZCcpLgogICAgIC0gQWRkZWQgYSBlbnRyeSBib3ggdG8gdGhlIGV4ZWN1dGFibGUgY29tbWFuZHMgd2l0aCB0aGUgY29tbWFuZCB0byBydW4uCiAgIAoxOTk2LTAxLTIyIDE3OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKSBBZGRlZCBhIGNobW9kIHRvIG1ha2UgdGhlIHNubXBjaGVjayBzY3JpcHQgZXhlY3V0YWJsZQogICAKMTk5Ni0wMS0yMiAxNjoyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLyouYykKICAgICAtIEFkZGVkIG5ldyBkZWZpbmVzIHRvIHR1cm4gb24vb2ZmIHNlY3Rpb25zIG9mIHRoZSBleHRlbnNpYmxlIG1pYi4KICAgICAtIFRoaXMgYWxzbyBmaXhlcyB0aGUgbWliLnR4dCBmaWxlIGRlZmluaXRpb25zIGlmIHNvbWV0aGluZyBpcyB0dXJuZWQgb2ZmLgogICAtIChNYWtlZmlsZS5pbikgcmVtb3ZlZCAke3NyY2Rpcn0gZnJvbSB0aGUgZnJvbnQgb2Ygc3RhbXAtaC5pbgogICAKMTk5Ni0wMS0xOSAxNzozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICByZW1vdmUtZmlsZXM6CgogICAtIChjb25maWd1cmUqKQogICAgIC0gdXBkYXRlZCB0byBhdXRvY29uZiB2Mi43CiAgICAgLSBIb3BlZnVsbHkgbm93IHVzaW5nIGNvcnJlY3QgJ21ha2UnIGRlZmluaXRpb25zCiAgIAoxOTk1LTEyLTI4IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4pIE1pbm9yIGNsZWFudXBzLgogICAKMTk5NS0xMi0yOCAxMjoxNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoQ2hhbmdlTG9nLEVYQU1QTEUuY29uZi5kZWYpIHNwZWxsIGNoZWNrIChzaWdoKQogICAKMTk5NS0xMi0yOCAxMjowOSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLAogICBNYWtlZmlsZS5pbiwgTkVXUywgUkVBRE1FLCBzZWRzY3JpcHQuaW46CgogICAtIENyZWF0ZWQgYSBFWEFNUExFLmNvbmYgZmlsZSBmb3IgZXhhbXBsZSB1c2FnZS4KICAgCjE5OTUtMTItMjggMTA6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6ICBVcGRhdGVkIHRoZXNlIGZvciAzLjAuNCByZWxlYXNlLgogICAKMTk5NS0xMi0yOCAxMDozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6ICBOZXZlciBmaW5pc2hlZCB0aGUgaW5zdGFsbCBpdGVtLgogICAKMTk5NS0xMi0yOCAxMDoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFRPRE8sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGVjZS1taWIuZGVmLAogICBzZWRzY3JpcHQuaW4sIGxvY2FsLy5jdnNpZ25vcmUsIGxvY2FsL01ha2VmaWxlLmluCiwgbG9jYWwvc25tcGNoZWNrLmRlZiwgVE9ETzoKCiAgIC0gQWRkZWQgYSBzZWRzY3JpcHQgd2hpY2ggaXMgYnVpbHQgZnJvbSBjb25maWcuaCBhbmQgYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgKICAgICAtIHVzZWQgdG8gZHluYW1pY2FsbHkgYnVpbGQgbWliLnR4dCBhbmQgbG9jYWwvc25tcGNoZWNrLgogICAKMTk5NS0xMi0yOCAxMDowMSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gQWRkZWQgc2Vkc2NyaXB0IHRvIHRoZSAuY3ZzaWdub3JlIGZpbGUuCiAgIAoxOTk1LTEyLTIwIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSBGb3VuZCBhbmQgZml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgcm91dGluZyB0YWJsZSBtaWIuCiAgIAoxOTk1LTEyLTIwIDA5OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfb3BlbiBjYWxscyBnZXRzZXJ2YnluYW1lIG9ubHkgb25jZSBub3csIGF0IHRoZSByZXF1ZXN0IG9mIEdhcnkKICAgICBIYXl3YXJkIDxnYWhAZGlyYWMuYmVsbGNvcmUuY29tPi4KICAgCjE5OTUtMTItMDUgMTU6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2spCiAgICAgLSBOZXcgZmxhZzogIC1kLCBkb24ndCBzdGFydCBjaGVja2luZyBhbnl0aGluZy4gIEp1c3QgYnJpbmcgdXAgaW50ZXJmYWNlLgogICAgIC0gY2hlY2sgZm9yIGJsYW5rIG91dHB1dCBvZiBzbm1wZ2V0IGJlZm9yZSBwYXJzaW5nIHdpdGggcy8vL2cKICAgICAgIGNvbnN0cnVjdHMuCiAgIAoxOTk1LTEyLTA1IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKSBhZGRlZCBBQ19UWVBFX1BJRF9UIHRvIHRoZSBjb25maWd1cmUgY2hlY2tzCiAgIAoxOTk1LTEyLTAxIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBsb2NhbC9zbm1wY2hlY2s6ICAgICAgICpuZXcgZmVhdHVyZXMqCiAgICAgLSBoYW5kbGVzIGZhaWxlZCBzbm1wd2Fsay9nZXQvc2V0cyBtdWNoIG1vcmUgZ3JhY2VmdWxseSBub3cKICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgWW91IGNhbiBwaWNrIHdoYXQgdHlwZXMgb2YgcHJvYmxlbXMgdG8gY2hlY2sgZm9yCiAgICAgICAtIC1mIG9uIHRoZSBjb21tYW5kIGxpbmUgb25seSBjaGVja3MgZm9yIGZpeGFibGUgcHJvYmxlbXMKICAgICAtIG5vIGxvbmdlciBwaW5nOjplY2hvcyBob3N0cyBiZWZvcmUgY2hlY2tpbmcgdGhlbQogICAgICAgLSBpbnN0ZWFkIHJlbGllcyBvbiAnTm8gUmVzcG9uc2UnIHR5cGUgcmVwbGllcyBmcm9tIHNubXB3YWxrL2dldCB0bwogICAgICAgICBkZXRlcm1pbmUgaWYgYSBob3N0IGlzIHVwLgogICAgICAgLSBwaW5nIHRoZSBob3N0IGlzIHN0aWxsIGFuIG9wdGlvbiAodGhyb3VnaCB0aGUgY29tbWFuZCBsaW5lIGFuZCBtZW51cykKICAgICAtIGNvbnZlcnRlZCBmcm9tIFRrLWI0IHRvIFRrLWI4CiAgICAgLSBBZGRlZCBhIGxvZ2dpbmcgd2luZG93IGZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNraW5nIG9mIGFjdGlvbnMuCiAgICAgICAtIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczogIC1WIE5VTSAgaW5pdGlhbCBsb2cgdmVyYm9zaXR5IGxldmVsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1MICAgICAgc2hvdyB0aGUgbG9nIHdpbmRvdyBhdCBzdGFydHVwCiAgICAgLSBOb3cgdHJhbnNsYXRlcyBtaWIgbnVtYmVycyBpbnRvIG1vcmUgcmVhc29uYWJsZSBuYW1lcwogICAKMTk5NS0xMS0yMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgLSAodHJhcG5vdGlmKSBMb2dzIG5vLXJlc3BvbmNlIGVycm9ycy4KICAgLSAodHJhcG5vdGlmKSBCZXR0ZXIgc3RyaW5nIGNoZWNraW5nIChxdW90ZXMgYWxsIHZhcmlhYmxlcyBub3cpCiAgIAoxOTk1LTExLTIwIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwKICAgbWtpbnN0YWxsZGlyczoKCiAgIC0gKGFsbCBhdXRvY29uZiBidWlsdCBmaWxlcykgVXBkYXRlZCBldmVyeXRoaW5nIHRvIGF1dG9jb25mIDIuNQogICAKMTk5NS0xMS0yMCAxNjowOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgogICAKMTk5NS0xMS0yMCAxNjowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBzb2xhcmlzIHNwZWNpZmljczogIC1EU1ZSNAogICAtIChjb25maWd1cmUuaW4pIENhY2hlcyBpbml0aWFsIHByb21wdCBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBzbyB5b3UKICAgICB3b24ndCBiZSBidWdnZWQgdHdpY2UgYnkgdGhlIGluaXRpYWwgcXVlc3Rpb24uCiAgIAoxOTk1LTExLTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETykgRmluZCBhbmQgZml4IG1lbW9yeSBsZWFrIHNvbWV0aW1lCiAgIAoxOTk1LTExLTIwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIEFkZGVkIHBvaW50ZXIgdG8gdGhpcyBmaWxlIHZpYSBmdHAKICAgCjE5OTUtMTAtMTcgMTc6MjcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZyB1cGRhdGUKICAgCjE5OTUtMTAtMTcgMTc6MTAgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZS1maWxlcyBuZWVkcyB0byAnY2QnIHRvIHRoZSBjb3JyZWN0IGRpcmVjdG9yeSBmaXJzdAogICAKMTk5NS0xMC0xNyAxNjo1NyAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgYWRkZWQgdGhlIHJlbW92ZS1maWxlcyBleHBvcnQgY29tbWFuZAogICAKMTk5NS0xMC0xNiAxNzoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBPbmUgbGFzdCBlY2hvIC1uIHZzIFxjIGZpeAogICAKMTk5NS0xMC0xNiAxNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwZC5jLAogICBzbm1wd2Fsay5jOgoKICAgLSAoYXBwcykgYWxsIGFwcHMgd2VyZSBzdGlsbCBsb29raW5nIGluIC9ldGMvIGZvciAuY29uZiBmaWxlcwogICAKMTk5NS0xMC0xNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKSBmaXhlZCBcYyB2cyAtbiBkZXBlbmRlbmN5CiAgIAoxOTk1LTEwLTE2IDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgd2FzIHN0aWxsIGxvb2tpbmcgaW4gL2V0YyBmb3IgdHdvIC5jb25mIGZpbGVzLgogICAKMTk5NS0xMC0xNiAxNTo1NSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gQWRkZWQgaW5mbyByZXF1ZXN0IHRvIGJvdHRvbSBvZiBUT0RPCiAgIAoxOTk1LTEwLTE2IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIENoYW5nZUxvZyB1cGRhdGUKICAgCjE5OTUtMTAtMTYgMTU6MDUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKSBtYXJrZWQgaW5zdGFsbCBhcyBmaW5pc2hlZCBhbmQgc29sYXJpcyBwb3J0IGFzIGNsb3NlCiAgIAoxOTk1LTEwLTE2IDE1OjAxICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMLCBNYWtlZmlsZS5pbiwgUkVBRE1FLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluCiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlcykgbWFrZSBpbnN0YWxsIGVjaG9zIHdoYXQgaXRzIGRvaW5nIGluIGEgbW9yZSBjbGVhciBmYXNoaW9uCiAgIC0gKElOU1RBTEwpIGFkZGVkIGJldHRlciBpbnN0cnVjdGlvbnMgdG8gdGhlIElOU1RBTEwgZmlsZS4KICAgLSAoUkVBRE1FKSBtaW5vciB3b3JkaW5nIGNoYW5nZXMKICAgCjE5OTUtMTAtMTYgMTM6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBtYW4vLmN2c2lnbm9yZSwgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGVzKSBGYWlybHkgZGVjZW50ICdtYWtlIGluc3RhbGwnIG5vdyBwb3NzaWJsZS4gIEluc3RhbGxzCiAgICAgaW50byB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSAtLXByZWZpeCBmb3IgdGhlIC4vY29uZmlndXJlIHNjcmlwdC4KICAgLSAoZXh0ZW5zaWJsZS5jKSBjb25maWcgZmlsZSByZS1sb2NhdGlvbjogbm93IHVzZXMgdGhlIFNOTVBMSUJQQVRICiAgICAgZGVmaW5lZCBsb29zZWx5IGFzICQocHJlZml4KS9saWIvc25tcC8uCiAgIAoxOTk1LTEwLTEzIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBUT0RPLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBzdGFtcC1oLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcGQuYykgQWRkZWQgLXAgcG9ydCB0byAtLWhlbHAgb3V0cHV0CiAgIC0gKGNvbmZpZykgU2V0dXAgdG8gdXNlIC0tcHJlZml4IHRvIGxvb2sgZm9yIGNvbmZpZyBmaWxlcy4KICAgCjE5OTUtMTAtMTEgMTc6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBUaGUgY29uZmlndXJlIHNjcmlwdCBub3cgcHJvbXB0cyBmb3IgaW1wb3J0YW50IHZhbHVlcyB0byBiZSBwdXQgaW4KICAgICBjb25maWcuaC4gIFNvbWUgdGhpbmdzIG5lZWQgdG8gdXNlICQocHJlZml4KSBpbnN0ZWFkIGhvd2V2ZXIuCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbikKICAgICArIGxpbmtpbmcgdG8gLi4vc25tcGxpYi9saWJzbm1wLmEgaW5zdGVhZCBvZiAuLi9saWIvbGlic25tcC5hIHRvCiAgICAgICByZW1vdmUgaW5zdGFsbCByZXF1aXJlbWVudC4KICAgICArICBwdXQgLi4vbGliL2xpYnNubXAuYSBpbiBhcHBsaWNhdGlvbgogICAKMTk5NS0xMC0wNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogTkVXUywgVE9ETzoKCiAgIC0gKE5FV1MvLVRPRE8pIC1oLy0taGVscCwgLXYvLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb25zCiAgIAoxOTk1LTEwLTA2IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgVXNhZ2Ugb2YgLS1oZWxwIGFuZCAtLXZlcnNpb24gc2hvdWxkIHdvcmsgbm93Li4uICBHTlUgc3RhbmRhcmQuCiAgIAoxOTk1LTEwLTA2IDE2OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYzoKCiAgIC0gKHBhcnNlLmMsIHNubXAuYykgYWRkZWQgY29uZmlnLmggdG8gdGhlIGxpc3Qgb2YgaW5jbHVkZXMuCiAgIAoxOTk1LTEwLTA2IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgQWRkZWQgdHdvIG5ldyBmbGFnczoKICAgICAtaCBmb3IgaGVscAogICAgIC12IGZvciB2ZXJzaW9uIGluZm9ybWF0aW9uCiAgIAoxOTk1LTEwLTA2IDExOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIE1vdmVkIElOU1RBTExBVElPTiBpbnN0cnVjdGlvbnMgdG8gSU5TVEFMTAogICAgICAgICAgICAgIENoYW5nZWQgbGlzdGluZyBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcwogICAgICAgICAgICAgIFVwZGF0ZWQgQVZBSUxBQklMSVRZIHNlY3Rpb24KICAgCjE5OTUtMTAtMDYgMTE6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pIG5vdyBjYWNoZXMgbW9yZSB2YWx1ZXMgKHBzIGFyZ3MsIGV0YykgYW5kCiAgICAgY2hlY2tzIGZvciB0aGUgbG9jYXRpb24gb2YgcHMgKG5vIGxvbmdlciBhc3N1bWluZyB0byBiZSAvYmluL3BzKQogICAKMTk5NS0xMC0wNiAxMToyNCAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgbW92ZWQgdG8gaGVyZQogICAKMTk5NS0xMC0wNSAxNToyMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgVE9ETywgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzdGFtcC1oLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9rZXJuZWxfc3Vub3M1LmgsCiAgIGFnZW50L3JvdXRlX3dyaXRlLmMsIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSBNb3JlIFNvbGFyaXMgcG9ydGluZy4KICAgICAtIE1vc3QgbWliSUkgZW50cmllcyBub3cgd29yay4KICAgICAgICAtIEhhdmVuJ3QgY2hlY2tlZCByZXR1cm5lZCBpbmZvcm1hdGlvbiBmb3IgYWNjdXJhY3kKICAgICAtIHN5c1VwVGltZSBzdGlsbCBmYWlscy4KICAgICAtIGNjIGFuZCBnY2MgYm90aCBjb21waWxlIGV2ZXJ5dGhpbmcgbm93LgogICAKMTk5NS0xMC0wMyAwOTo0MiAgaGFyZGFrZXIKCiAgICogc3RhbXAtaCwgc3RhbXAtaC5pbjoKCiAgICguY3ZzaWdub3JlKSByZW1vdmVkIGZpbGVzIHN0YW1wLWggc3RhbXAtaC5pbiBmaWxlcyBzaW5jZSBtYWtlZmlsZSBuZWVkZWQgdGhlbS4KICAgCjE5OTUtMTAtMDMgMDk6MzUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgKE1ha2VmaWxlLmluKSBSZW1vdmVkIC4vY29uZmlndXJlIGFuZCAuL2NvbmZpZy5oLmluIGZyb20gImFsbDoiIGRlcGVuZGVuY2llcwogICAKMTk5NS0xMC0wMyAwOTozMSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgICguY3ZzaWdub3JlKSByZW1vdmVkIGNvbmZpZy5oLmluIGZyb20gY3ZzIGlnbm9yZSBsaXN0IChiYWQgYmFkKQogICAKMTk5NS0xMC0wMyAwOTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAoY29uZmlnLmguaW4pIEFkZGVkIGZpbGUuCiAgIAoxOTk1LTEwLTAzIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgKFRPRE8pIFVwZGF0ZSBvZiB0aGUgVE9ETyBsaXN0OiAgaW5jbHVkZWQgc25tcHYxIGNvbmZpZyBpZGVhcwogICAKMTk5NS0xMC0wMyAwOToyNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIChhY2NvbmZpZy5oKSBNaW5vciBidWc6ICByZWN1cnNpdmUgY29tbWVudHMgbm90IGNvcnJlY3QgZm9yIGNvbXBpbGVycyAoQUlYKQogICAKMTk5NS0wOS0yOSAxMzo0NiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpIHVwZGF0ZWQgdGhlIG5ld3MgZmlsZS4KICAgCjE5OTUtMDktMjkgMTM6NDEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBUT0RPLCBhY2NvbmZpZy5oCiwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycywKICAgYWdlbnQvLmN2c2lnbm9yZSwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FjbF92YXJzLmMKLCBhZ2VudC9hbGFybS5jLCBhZ2VudC9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvZXZlbnQuYywgYWdlbnQva2VybmVsLmMsIGFnZW50L3BhcnR5X3ZhcnMuYwosIGFnZW50L3JvdXRlX3dyaXRlLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92aWV3X3BhcnNlLmMKLCBhZ2VudC92aWV3X3ZhcnMuYywgYXBwcy8uY3ZzaWdub3JlLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi8uY3ZzaWdub3JlLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbF9wYXJzZS5jCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY29udGV4dC5jLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jCiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3ZpZXcuYzoKCiAgIC0gcG9ydGVkIHRvIEdOVSdzIGF1dG9jb25maWcyLjQKICAgICAtIHRvIGluc3RhbGwsIHlvdSBtdXN0IG5vdyBydW4gLi9jb25maWd1cmUgZmlyc3QgdG8gZ2VuZXJhdGUgdGhlCiAgICAgICBNYWtlZmlsZXMgYW5kIGNvbmZpZy5oCiAgICAgLSBhbG1vc3QgYWxsIG9mIHRoZSBjb2RlIGlzIG5vdyBkeW5hbWljYWxseSBjaGVja2VkIGZvciBwcm9ibGVtcwogICAgICAgcmF0aGVyIHRoYW4gYmVpbmcgZGVwZW5kYW50IG9uIGFyY2hpdGVjdHVyZSBuYW1lcy4KICAgLSBzeXN0ZW0gbmFtZSBub3cgZHluYW1pY2FsbHkgZGV0ZXJtaW5lZCBhdCBydW4gdGltZSAoZnJvbSB1bmFtZSAtbikKICAgLSBjcmVhdGVkIGEgJ21ha2UgZGVwZW5kJyBjYWxsIChmaW5hbGx5KS4KICAgLSAoYWdlbnQvc25tcF92YXJzLmgpIGNoYW5nZWQgU1lTTkFNRSBkZWZpbmUgdG8gU1lTVEVNTkFNRSBkZWZpbmUgdG8KICAgICBhdm9pZCBhIGNvbmZsaWN0IHdpdGggYSBzb2xhcmlzIGhlYWRlciBmaWxlLgogICAtIHByb3RlY3RpbmcgYmV0dGVyIGFnYWluc3QgaW5jbHVkZSBoZWFkZXIgZmlsZXMgdHdpY2UuCiAgIC0gTW9zdCBvZiBwb3J0IHRvIFNvbGFyaXMgMi40IGZpbmlzaGVkLiAgVGhlIGtlcm5lbCByZWFkcyBzdGlsbCBuZWVkIHdvcmsuCiAgIAoxOTk1LTA5LTIxIDA5OjI5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAzLjAuMi4xIHJlbGVhc2UgKGNvbXBpbGF0aW9uIGJ1ZyBmaXgpCiAgIAoxOTk1LTA5LTIxIDA5OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgKHNubXBsaWIvbWQ1LmMpIEZvcmdvdCB0byBpbmNsdWRlIHN5cy90eXBlcy5oIGZvciB1X2xvbmcgZGVmaW5pdGlvbi4KICAgCjE5OTUtMDktMTggMTY6MjQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIE5ld3MvQ2hhbmdlbG9nIHVwZGF0ZXMKICAgCjE5OTUtMDktMTggMTY6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIEJlZ2lubmluZ3Mgb2YgYSBtYW51YWwgcGFnZSBmb3Igc25tcGQKICAgCjE5OTUtMDktMTggMTY6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIE1pbm9yIG1vZHMgdG8gUkVBRE1FIGZpbGUuCiAgIAoxOTk1LTA5LTAxIDE0OjUyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgQWRkZWQgYSBORVdTIGZpbGUgdG8gcmVwb3J0L3JlY29yZCBtYWpvciBjaGFuZ2VzCiAgIAoxOTk1LTA5LTAxIDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYwo6CgogICAtIEZpeGVkIGFscGhhJ3Mga2VybmVsIGxvb2t1cHM6CiAgICAgKiBDTVUgY29kZSB3YXMgcGFzc2luZyBpbnRzIGludG8gbHNlZWsgKG5lZWRzIGxvbmcpLgogICAKMTk5NS0wNy0zMSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gc25tcGNoZWNrIGNoYW5nZXM6CiAgICAgLSB0ZXJtaW5hbCAoYXNjaWkpIGJhc2VkIHN1cHBvcnRlZCBmaXhlZC4KICAgICAgIC0gRGV0ZWN0cyBwcmVzZW5jZSBvZiBhIERJU1BMQVkgdmFyaWFibGUuCiAgICAgICAtIE5vdyByZXF1aXJlcyB0aGUgVGVybTo6UmVhZGtleSBwYWNrYWdlLgogICAgICAgLSBhc2tzIHVzZXJzIHdlYXRoZXIgdG8gZml4IHByb2JsZW1zCiAgICAgLSByYWlzZXMgYW5kIGRlaWNvbmlmaWVzIHdoZW4gbmV3IHByb2JsZW1zIGFyZSBmb3VuZAogICAgIC0gc2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiBuZXcgcHJvYmxlbXMgdG8gcGlua2lzaAogICAgIC0gbmV3IHByZWZlbmNlOiAgcGluZyBob3N0PwogICAgIC0gZ2xvYmFsIGtleSBiaW5kaW5nczoKICAgICAgICAgY3RybC1xID0gcXVpdDsgY3RybC1oID0gaGlkZTsgY3RybC1zID0gc2VlbiBhbGwKICAgCjE5OTUtMDctMjggMTQ6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jOgoKICAgWWV0IG1vcmUgcHJvYmxlbXMgZml4ZWQgaW4gdGhlIGFscGhhIHBvcnQuCiAgICAgLS0gbW9yZSBpbnQgLT4gbG9uZyBjaGVja2luZy4KICAgCjE5OTUtMDctMjYgMTY6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21kNS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSBBZGRlZCBhIG5ldyAjZGVmaW5lOiBFWElUX09OX0JBRF9LTFJFQUQgdG8gY29uZmlnLmgKICAgICBJZiBkZWZpbmVkLCBhbmQgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgdGhlIGtlcm5lbCBjb250ZW50cywKICAgICB0aGUgYWdlbnQgd2lsbCBleGl0LiAgVGhpcyB3YXMgdGhlIGRlZmF1bHQuICBJIHdhbnRlZCBpdCB0bwogICAgIGNvbnRpbnVlLgogICAKICAgLSBQb3J0IHRvIGRlYy1hbHBoYS9PU0YgMy4xCiAgICAgLSBhbHBoYSdzIGxvbmcgaXMgOCBieXRlcywgbm90IDQuCiAgICAgLSBzaG91bGQgYmUgKG1vc3RseSkgNjQgYml0IGNsZWFuIG5vdy4KICAgICAtIGNsZWFuZWQgdXAgYSBMT1Qgb2YgYnVncyBDTVUgY29kZSBpbiB0aGUgcHJvY2Vzcy4KICAgCjE5OTUtMDctMTQgMTU6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZWxvZyB1cGRhdGUKICAgCjE5OTUtMDctMTQgMTU6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIHNubXBjaGVjayAodGstcGVybC1iNCBzY3JpcHQpIGlzIHByZXR0eSBzdGFibGUgYXQgdGhpcyBwb2ludC4gIEkKICAgICBsb3N0IGN1cnNlcyBzdXBwb3J0LCBhbmQgbmVlZCB0byByZS1hZGQgaXQgc3RpbGwsIHNvIGl0IGlzIHN0aWxsCiAgICAgYmV0YS4gIEl0IGRvZXMgZXhwZWN0IGEgbG9nIGZpbGUgb2YgcHJvYmxlbXMgdG8gZXhpc3QgKHBvaW50IGl0IHRvCiAgICAgL2Rldi9udWxsKSwgYW5kIG5lZWRzIHRvIGtub3cgdGhlIGxvY2F0aW9ucyBvZiB0aGUgbWlicyB0byBjaGVjawogICAgICh3aGljaCBhcmVuJ3QgY29uZmlndXJlZCBieSAnbWFrZScpLCBzbyBpdCBuZWVkcyBzb21lIHdvcmsuCiAgICAgSG93ZXZlciwgaXQgd2lsbCBxdWVyeSBhbiBhZ2VudCwgY2hlY2sgaXRzIHByb2JsZW1zIGJhc2VkIG9uIHRoZQogICAgIHN0YXR1cyBvZiB0aGUgZXJyb3IgZmxhZyAob3IgcmV0dXJuIGNvZGUpIGJlaW5nID4xIGFuZCByZXBvcnQgdGhlbQogICAgIHdpdGggbmVhdCBHVUktYnV0dG9ucyBhbmQgc3R1ZmYgKG9oIHdvdykuICBObyBkb2N1bWVudGF0aW9uIG9uIGl0IHRob3VnaC4KICAgCjE5OTUtMDctMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIEZpbmlzaGVkIHRoZSByZXN0YXJ0IG1pYi4gIFRoaXMgaXMgYSBzZXRhYmxlIHN1Yi1taWIgb2YgdGhlIHZlcnNpb24KICAgICBtaWIsIGRlZmF1bHQgdG8gVkVSU0lPTi4xMiguMSkuICBJZiBzbm1wLXNldCB0byAnMScsIGl0IHdpbGwgcmVzdGFydAogICAgIHRoZSBhZ2VudC4KICAgCiAgICAgKiAgQSBzaWRlIGVmZmVjdCBvZiB0aGlzIGlzIHRoYXQgaXQgcmVzdGFydHMgMyB0aW1lcyBvciBzbywgc2luY2UgaXQKICAgICAgICBuZXZlciByZXR1cm5zIGEgcmVzcG9uY2UgdG8gdGhlIHByb2dyYW0gZ2VuZXJhdGluZyB0aGUgcmVxdWVzdC4KICAgICAgICBJZiBzYWlkIHByb2dyYW0gdHJpZXMgdG8gcmVzZW5kIHRoZSByZXF1ZXN0ICh3aGljaCBtb3N0IGRvKSwgaXQKICAgICAgICB3aWxsIEFHQUlOIHJlc3RhcnQgdGhlIGFnZW50Li4uICBvaCB3ZWxsLgogICAKMTk5NS0wNy0xMCAxMjozMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIE1pbm9yIGNvbW1lbnQgY2hhbmdlIGluIGNvbmZpZy5oCiAgIAoxOTk1LTA3LTEwIDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgVHdvIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczoKICAgICAtbCBMT0dGSUxFICAgICAgIE91dHB1dHMgc3RkZXJyL291dCB0byBMT0dGSUxFIChvdmVycmlkZXMgY29uZmlnLmggZGVmKQogICAgIC1MICAgICAgICAgICAgICAgRG8gTk9UIHdyaXRlIHRvIGEgbG9nIGZpbGUgKG92ZXJyaWRlcyBjb25maWcuaCkKICAgCjE5OTUtMDYtMjEgMDk6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHNubXBsaWI6CiAgICAgQnVnIGZpeDogIGZkc2V0IC0+IChpbnQgKikgZmRzZXQgaW4gc2VsZWN0IGNhbGwuCiAgIAoxOTk1LTA2LTIxIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ2hhbmdlZCBkZWZhdWx0IENDIHRvIGNjIGFnYWluLgogICAKMTk5NS0wNi0yMSAwOToxOCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBlY2UtbWliLmRlZjoKICAgQnVnIEZpeDoKICAgICBMb2FkYXZlIG1pYjogIEludGVnZXIgLT4gRGlzcGxheVN0cmluZwogICAgIHZlcnNpb25DbGVhckNhY2hlOiAgLT4gcmVhZC13cml0ZSAod2FzIHJlYWQtb25seSkKICAgCiAgIEZlYXR1cmU6CiAgICAgQWRkZWQgYSBzZXRhYmxlIG1pYiBlbnRyeSB0byB0aGUgdmVyc2lvbiBtaWIgdG8gcmUtcmVhZCB0aGUgY29uZmlnIGZpbGUocykuCiAgIAoxOTk1LTA2LTIxIDA5OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDaGFuZ2VkIGFub3RoZXIgImVtcHR5IiBlcnJvciBtZXNzYWdlIGluIHRoZSBDTVUgY29kZSB0byBhIHJlYWwgd2FybmluZy4KICAgCjE5OTUtMDYtMTYgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgTWlzc2VkIGEgVkVSU0lPTl9JRAogICAKMTk5NS0wNi0xNiAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBIb3VzZSBDbGVhbmluZzoKICAgICBUb29rIG91dCBnY2MvYW5zaSByZXF1aXJlbWVudCBmb3IgdGhlIGFnZW50LgogICAgIHBlcnJvcigpIGlzIGNhbGxlZCBtb3JlIGZyZXF1ZW50bHkgZm9yIGxvZyBhcmNoaXZhbAogICAKICAgTmV3IEJ1Zy9IYXZlbid0IHNvbHZlZDoKICAgICBIUC1VWDogIGlmIGFnZW50LyouYyBhbmQgYWdlbnQvZXh0ZW5zaWJsZS8qLmMgYXJlIGJ1aWx0IHdpdGggZ2NjLAogICAJICBEaXNwbGF5U3RyaW5ncyByZXR1cm4gZ2FyYmFnZS4gIE5vIGNsdWUgYXMgdG8gd2h5LgogICAKMTk5NS0wNi0xNiAxMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCBzbm1wZC5jOgoKICAgSG91c2UgY2xlYW5pbmcKICAgICAtIENvbXBpbGVzIGNsZWFubHkgb24gaHB1eC9nY2MKICAgCShleGNlcHQgb25lIGluY2x1ZGUgZmlsZSBlcnJvciBJIGRvbid0IGhhdmUgY29udHJvbCBvdmVyLikKICAgICAtIENoYW5nZSBWRVJTSU9OX0lEIC0+IFZFUlNJT05JRCB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBIUCdzIGluY2x1ZGVzLgogICAKMTk5NS0wNi0xNiAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBSZW1vdmVkICdnbWFrZScgLT4gJ21ha2UnIGluIGFnZW50L01ha2VmaWxlCiAgIAoxOTk1LTA2LTE0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoxOTk1LTA2LTE0IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIFJFQURNRToKCiAgIFVwZGF0ZWQgdGhlIENoYW5nZUxvZwogICBBZGRlZCBhICJyZWFsIiBkaXNjbGFpbWVyIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDYtMTQgMTM6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgLSBDcmVhdGVkIGEgbWFpbGluZyBsaXN0IHRvIGhhbmRsZSBhbm5vdW5jZW1lbnRzCiAgICAgKHVjZC1zbm1wLWFubm91bmNlQGVjZS51Y2RhdmlzLmVkdSkKICAgCjE5OTUtMDYtMTQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBDbGVhbmVkIHVwL0FkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byBjb25maWcuaAogICAtIEdMT0JBTFNFQ1VSSVRZIG5vdyB1c2VzIHRoZSBsZWZ0IG1vc3QgZm91ciBiaXRzIGluIHRoZSBNSUIgYWNsLgogICAgIFRoaXMgaXMgbW9yZSBjb21wYXRpYmxlIHdpdGggdGhlIENNVSBjb2RlIHRoYW4gdXNpbmcgdGhlIGxlZnQgbW9zdAogICAgIDIsIHdoaWNoIHdhcyBkb25lIHByZXZpb3VzbHkuCiAgIAoxOTk1LTA2LTE0IDExOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGFnZW50OgogICAtIE1pYiB0YWJsZSBpcyBub3cgcXNvcnRlZCBhdCBydW4gdGltZSBhbmQgdGhlIGV4dGVuc2libGUgdmFyaWFibGVzIGFyZQogICAgIHNvcnRlZCBpbiBhdCB0aGlzIHRpbWUuICBUaGlzIGJyaW5ncyB0aGUgYWdlbnQgdXAgdG8gY29ycmVjdAogICAgIFNOTVB3YWxrL2dldG5leHQgcHJvdG9jb2xzLiAgWW91IGNhbiBub3cgd2FsayB0aGUgZW50aXJlIHRyZWUKICAgICBpbmNsdWRpbmcgdGhlIGV4dGVuc2libGUgc2VjdGlvbnMgYW5kIGl0IHdvbid0IHN0b3AuCiAgICAgKiBUaGlzIGhhcyBhbiBhZGRlZCBib251cyBvZiBjaGVja2luZyB0aGUgbWliIHRhYmxlCiAgICAgICAoYWdlbnQvc25tcF92YXJzLmMpIGZvciBjb3JyZWN0IG9yZGVyLiAgSSBoYXZlIGFkZGVkIHRoaW5ncyB0byB0aGUKICAgICAgIHdyb25nIGxvY2F0aW9uIHRvbyBtYW55IHRpbWVzIGFuZCBjYXVzZWQgdGhlIGFnZW50IHRvIGZ1bmN0aW9uCiAgICAgICBpbmNvcnJlY3RseS4gIE1ham9yIHdpbi4KICAgCjE5OTUtMDYtMTIgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIGxvY2FsL3RyYXBub3RpZjoKICAgICAtLSB1c2VzIHNubXB2MiBub3cgKGNvcnJlY3RseSkKICAgCjE5OTUtMDYtMDkgMTQ6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDaGFuZ2VkIHRlc3QgLXggdG8gdGVzdCAtZiBpbiBzbm1wbGliL01ha2VmaWxlLiAgTm90IGFsbCBPU2VzCiAgICAgKGllIHVsdHJpeCkgaGFuZGxlIHRoaXMuCiAgIAoxOTk1LTA2LTA5IDEzOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgRml4ZWQgQXV0aGVudGljYXRpb24gZXJyb3IgKGFnYWluKSAoY29ycmVjdCB0aGlzIHRpbWUpIGJldHdlZW4KICAgICAgICAgcmV2ZXJzZWQgYnl0ZSBvcmRlciBtYWNoaW5lcy4KICAgICAtLSAgI2lmZGVmIGhwdXgvU1lTVi9zdW4gaW4gbWQ1LmMgcmV2ZXJzZXMgYnl0ZSBvcmRlcgogICAKMTk5NS0wNi0wOSAxMjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIEZpeGVkIEF1dGhlbnRpY2F0aW9uIGVycm9yIGJldHdlZW4gcmV2ZXJzZWQgYnl0ZSBvcmRlciBtYWNoaW5lcy4KICAgICAtLSAgI2lmZGVmIGhwdXgvU1lTViBpbiBtZDUuYyByZXZlcnNlcyBieXRlIG9yZGVyCiAgIAoxOTk1LTA2LTA5IDEwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENvcnJlY3RseSBvcmRlcmVkIHRoZSBtaWIgdGFibGUgbGlzdC4KICAgICAtLSAgTmVlZCB0byB3cml0ZSBhIGR5bmFtaWMgY2hlY2tlci9yZS1vcmRlcmVyLgogICAKMTk5NS0wNi0wOSAxMDoyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQWRkZWQgYSBTTk1QQkxPQ0sgb3B0aW9uIHRvIHRoZSBjb25maWcuaCBmaWxlLiAgU3VwcG9zZWRpbHkgc2V0dGluZwogICAgIHRoaXMgdG8gemVybyAobm93IHRoZSBkZWZhdWx0KSB3aWxsIGFsbG93IHNubXAgcmVxdWVzdHMgdG8gdGltZSBvdXQuCiAgICAgSGF2ZW4ndCB0ZXN0ZWQgaXQgdGhyb3VnaGx5LgogICAgICAgLS0gQ29udHJpYnV0ZWQgYnkgU2FuamFpIE5hcmFpbiA8bmFyYWluQHRodW1wZXIuYmVsbGNvcmUuY29tPgogICAKMTk5NS0wNi0wNSAxMjo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBSRUFETUUsIGFnZW50L3NubXBfdmFycy5jOgoKICAgKiBhZ2VudC9leHRlbnNpYmxlL01ha2VmaWxlOgogICAgICAgLS0gIG5vIGxvbmdlciByZXF1aXJlcyBHTlUgbWFrZQogICAgICAgLS0gIGV0YWdzIG5vIGxvbmdlciBydW4gYnkgZGVmYXVsdAogICAKICAgKiBTdW5PUyBhZGRpdGlvbnM6CiAgICAgICAtLSBsb2FkYXZlcmFnZSBjaGVja2luZyBNSUIgZW5hYmxlZAogICAgICAgLS0gZGlzayBjaGVja2luZyBNSUIgZW5hYmxlZAogICAKMTk5NS0wNi0wMiAxNjoyMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgRmluYWwgbW9kaWZpY2F0aW9uIGZvciBpbml0YWwgcmVsZWFzZQogICAKMTk5NS0wNi0wMiAxNTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAjaWZkZWYgaHB1eCBhcm91bmQgaHB1eCBzcGVjaWZpYyBtaWJzCiAgIAoxOTk1LTA2LTAyIDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgRVJST1IoKSBkZWZpbmUgbm93IGZsdXNoZXMgc3Rkb3V0CiAgIAoxOTk1LTA2LTAyIDE1OjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBOb3cgdXNlcyB2MiByZXF1ZXN0IHByb3RvY29sLgogICAKMTk5NS0wNi0wMiAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJpbnRzIE1JQiB0byBzdGRvdXQgZm9yIGV4aXN0ZW50IG1pYnMKICAgCjE5OTUtMDYtMDIgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgYSBjaGVjayBmb3IgU05NUFYyL1NOTVBWMkFVVEggdHlwZSBhdXRob3JpemF0aW9uLgogICAKMTk5NS0wNi0wMiAxNToyNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIFJlb3JnYW5pemVkIGNvbmZpZy5oIGluIG1vcmUgb3IgbGVzcyBvcmRlciBvZiBpbXBvcnRhbmNlCiAgIEFkZGVkIGRlZmluaXRpb25zIGZvciBTTk1QVjJPTkxZIHR5cGUgYXV0aG9yaXphdGlvbi4KICAgCjE5OTUtMDYtMDIgMTU6MjYgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgcmVtb3ZlZCBib2d1cyB0d28gbGluZXMKICAgCjE5OTUtMDUtMzEgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTmV3OgogICAKICAgICBBZGRlZCB0d28gbmV3IEFDTCB0eXBlczogIFBSSVZBVVRIUlcgYW5kIFBSSVZBVVRIUk8gd2hpY2ggd2lsbCBvbmx5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrIGlmIHRoZSByZXF1ZXN0IGlzIGF1dGhlbnRpY2F0ZWQgKGJ5IGFueXRoaW5nKS4KICAgCjE5OTUtMDUtMzEgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIE5ldzoKICAgCiAgICAgQWRkZWQgLWYgb3B0aW9uIHRvIFJFQURNRQogICAKMTk5NS0wNS0zMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBOZXc6CiAgIAogICAgIE5ldyBNSUI6ICBzbm1wRXJyb3JzIHRvIGxvZyBwcm9ibGVtcyB3aXRoIHRoZSBhZ2VudAogICAKMTk5NS0wNS0zMSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICBOZXc6CiAgIAogICAgIE5ldyBkZWZpbml0aW9uIGluY2x1ZGVkIGZvciBhIGRlZmF1bHQgcGxhY2UgdG8gbG9nIG1lc3NhZ2VzOiBMT0dGSUxFCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgICAgRm9ya3MgYXdheSBmcm9tIGNhbGxpbmcgc2hlbGwgYnkgZGVmYXVsdCBub3cgdW5sZXNzIC1mIHNwZWNpZmllZC4KICAgCiAgIE1pc2M6CiAgIAogICAgIElmZGVmcyBhcm91bmQgYWxsIGFkZGVkIHNlY3Rpb25zIG9mIGNvZGUgdG8gZGlzYWJsZSBkdXJuaW5nIGNvbXBpbGF0aW9uCiAgIAoxOTk1LTA1LTMxIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgTmV3OgogICAKICAgICBOZXcgZGVmaW5pdGlvbiBpbmNsdWRlZCBmb3IgYSBkZWZhdWx0IHBsYWNlIHRvIGxvZyBtZXNzYWdlczogTE9HRklMRQogICAgIE5ldyBNSUI6ICBzbm1wRXJyb3JzIHRvIGxvZyBwcm9ibGVtcyB3aXRoIHRoZSBhZ2VudAogICAKICAgQnVnczoKICAgCiAgICAgaHB1eCBjb21wbGllcnMgZG9uJ3QgZGVmaW5lIFNZU1YgYnkgZGVmYXVsdC4uLgogICAKMTk5NS0wNS0xOSAxNTo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIG1lbnVzIGFuZCBtb3ZlZCBzb21lIGNvbW1hbmRzIHRoZXJlIGFzIHdlbGwgYXMgcHJlZnJlbmNlcy4KICAgTm93IHJlc2NhbnMgYWZ0ZXIgNSBtaW51dGVzIGFuZCBjaGVja3MgdGhlIGxvZy4KICAgCjE5OTUtMDUtMTkgMTU6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIGVncmVwaW5nIGZvciBhbiBleGFjdCBtYXRjaCBmb3IgaG9zdHMgbm93LgogICAKMTk5NS0wNS0xOSAxNTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNb3JlIGRlZmluZXMgbW92ZWQgdG8gY29uZmlnLmgKICAgCjE5OTUtMDUtMTkgMTU6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgZWNlLW1pYi5kZWY6CgogICBXb3JraW5nIHRvd2FyZCBhbiBleHBvcnRhYmxlIHZlcnNpb24uCiAgIAoxOTk1LTA1LTE3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV29ya2luZyB2ZXJzaW9uLgogICAgIC0tICBub3cgb3BlcmF0ZXMgb24gYSBzZWxlY3Rpb24KICAgICAtLSAgc3RpbGwgaGFzIGEgbG90IG9mIHJvb20gZm9yIGltcHJvdmVtZW50LgogICAKMTk5NS0wNS0wOCAxNjoyNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEZhaXJseSBmdW5jdGlvbmluZyB2ZXJzaW9uLgogICBOZWVkIHRvIHBvcnQgdG8gcGVybDUuMDAxICYgdGs0YjMKICAgCjE5OTUtMDUtMDUgMTc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgT3Bwcy4gIFNldCB0cC0+bmFtZWxlbiB0byBiZSAtMSwgd2hlbiBpdCBpcyBhIHVuc2lnbmVkIGNoYXIuICBVc2luZyAwIG5vdy4KICAgCjE5OTUtMDUtMDUgMTY6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYwo6CgogICBSZS1hcnJhbmdpbmcgYW5kIFJlLW5hbWluZyBzdHVmZiBmb3IgZXh0ZXJuYWwgZGlzdHJpYnV0aW9uCiAgIAoxOTk1LTA1LTAzIDEzOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1ham9yIGJ1ZzoKICAgICBDaGFuZ2luZyB0cmVlIHNpemUgY2F1c2VkIHByb2JsZW1zLgogICAgIGV4dGVuc2libGUgdHJlZSBub3cgYWRkcyBhIGhhbHQgY29uZGl0aW9uIChuYW1lbGVuID0gLTEpIHRvIGNoZWNrIGZvcgogICAKMTk5NS0wNS0wMyAxMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBwcm90b3R5cGUgZGVjbGFpcmF0aW9uIGZvciBmaW5kX2V4dGVuc2libGUoKQogICAKMTk5NS0wNS0wMyAwOToyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQ2hhbmdlZCB0aW1lb3V0IHRvIGJlIDMwIHNlY29uZHMuCiAgIAoxOTk1LTA1LTAzIDA5OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIE5ldyBzY3JpcHQ6CiAgICAgd2Fsa3MgYW4gZXh0ZW5zaWJsZSAob3IgYW55KSBtaWIgdHJlZS4gIEhhcyBidWlsdCBpbiBrbm93bGVkZ2Ugb2YKICAgICB0aGUgbWlicyBmb3IgbGF5LXBlb3BsZXMgdXNlYWdlLgogICAKMTk5NS0wNS0wMyAwOToxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIEZpeGVkIGJ1ZzogIFVzaW5nIGEgd3JvbmcgdmFyaWFibGUKICAgCjE5OTUtMDUtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgZXh0ZW5zaWJsZSBtaWIgZW50cnkuCiAgICAgLS0gZmluZF9leHRlbnNpYmxlIG5vdyByZXR1cm5zIHRoZSBkZWZhdWx0IG1pYiB0cmVlIG9yIGFuCiAgICAgICAgYXBwcm9wcmlhdGUgbWliIHRyZWUgd2l0aCB0aGUgY3JlYXRlZCBleHRlbnNpYmxlIGVudHJ5IGluIGl0LgogICAKMTk5NS0wNS0wMyAwOToxMCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBsb2FkIGF2ZXJhZ2UgbWliIGVudHJ5CiAgIAoxOTk1LTA0LTE3IDEyOjI1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgU3RhcnRlZCB3cml0dGluZyBhIFRrIGludGVyZmFjZS4uLiAgQ29kZSBpcyBzdGlsbCB2ZXJ5IHZlcnkgdWdseSwgYnV0IHdvcmtzLgogICAKMTk5NS0wNC0xNyAxMjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgTm93IGxvZ3MgaXRzZWxmIGNvcnJlY3RseS4KICAgCjE5OTUtMDQtMTMgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBkZXBlbmRhbmN5IGZvciB3ZXMvbWliZGVmcy5oIHRvIHNubXBfdmFycy5jCiAgIAoxOTk1LTA0LTA3IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgLS0gUG9ydGVkIHRvIGRlYyA1MDAwLzIwMCBVbHRyaXggNC4yIGFyY2hpdGVjdHVyZXMKICAgICAgICAgVE9ETzogIG1lbW9yeS9zd2FwIGluIHdlcy5jCiAgIAoxOTk1LTAzLTMxIDE1OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQnVnczoKICAgICBXYXMgYWN0aW5nIHNsb3cgc2luY2UgaXQgd2FzIGNoZWNraW5nIGVhY2ggbWliIGxvY2F0aW9uIHR3aWNlLgogICAgIFJlbW92ZWQgcGVybCAtdyB3YXJuaW5ncwogICAKMTk5NS0wMy0xNSAxNjo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHNubXBjaGVjayBpcyBub3cgd3JpdHRlbiB1c2luZyBwZXJsNSdzIG9iamVjdCBvcmllbnRlZCByb3V0aW5lcy4KICAgCjE5OTUtMDMtMTUgMTQ6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENNVSBCdWcgZml4ZXM6CiAgICAgLS0gYmV0dGVyIGpvYiB0aGFuIG15IHByZXZpb3VzIGhhY2sgZml4aW5nIGdldF90b2tlbi4KICAgICAgICArIGdldF90b2tlbiBub3cgcmVxdWlyZXMgYSB0aGlyZCBhcmd1bWVudCBkaWN0YXRpbmcgdGhlIG1heCBzdHJpbmcKICAgICAgICAgIGxlbmd0aCB0aGUgdG9rZW4gY2FuIGhvbGQuCiAgIAoxOTk1LTAzLTE1IDA5OjI2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBVcGRhdGVkIFJFQURNRS5ocHV4IGZpbGUgZnJvbSBIUC1wb3J0LTEtMS0xLi4uCiAgIAoxOTk1LTAzLTE1IDA5OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgcGVybCAtPiBwZXJsNQogICBObyBsb25nZXIgZGVwZW5kcyBvbiBPVnMgc25tcHNldCwgY2FuIG5vdyB1c2UgQ01VcyBzbm1wc2V0ICgvdXNyL2xvY2FsL2V0YykKICAgCjE5OTUtMDMtMTAgMTM6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBZGRlZCAvZXRjIGFzIGFub3RoZXIgcGF0aCB0byBzZWFyY2ggd2hlbiBsb29raW5nIGZvciBtaWIudHh0CiAgIAoxOTk1LTAzLTEwIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBNYWpvciBoYWNraW5nIHRvIHBhcnNlKCkgdG8gd29yayBhdCBhbGwuCiAgICAgLS0gTm93IEkgZG9uJ3QgdW5zdGFuZCB3aHkgaXQgZXZlciBzdWNjZXNzZnVsbHkgcGFyc2VkIHRoZSBtaWIudHh0IGZpbGUuCiAgICAgLS0gZ2V0X3Rva2VuIHdhcyBjb25zdGFudGx5IGNhbGxlZCB0byByZWFkIERFU0NSSVBUSU9OIHN0cmluZ3MgaW50bwogICAgICAgIGEgY2hhciBhcnJheSBvZiBlaXRoZXIgNjQgKE1BWFRPS0VOKSBvciA0MDk2IChNQVhRVU9URVNUUikgaW4KICAgICAgICBsZW5ndGguICBNQU5ZIG9mIHRoZSBERVNDUklQVElPTiBzdHJpbmdzIGFyZSBsb25nZXIgdGhhbiB0aGlzLgogICAgIC0tIEhhY2tlZCBwYXJzZVF1b3RlZFN0cmluZyB0byBtYWtlIHN1cmUgcmV0dXJuZWQgYXJlIHN0cmluZ3MgPCBNQVhRVU9URVNUUgogICAKMTk5NS0wMy0xMCAxMzoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgICNpbmNsdWRlIDxzb2NrZXRpby5oPiBpcyBub3QgbmVlZGVkIG9uIEhQVVgKICAgCjE5OTUtMDMtMTAgMTM6MTggIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIEFkZGVkIHNubXBnZXRuZXh0IGFuZCBzbm1wc2V0IHRvIC5jdnNpZ25vcmUKICAgCjE5OTUtMDMtMDkgMTM6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDTVUgMi4xLjIgLT4gMi4xLjIuMSBNZXJnZS4KICAgCjE5OTUtMDMtMDggMTY6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIG1hbi9zbm1wYnVsa3dhbGsuMSwgbWFuL3NubXBnZXQuMSwgbWFuL3NubXBnZXRuZXh0LjEKLCBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMSwKICAgbWFuL3NubXB0cmFuc2xhdGUuMSwgbWFuL3NubXB0cmFwZC44OgoKICAgSW5pdGlhbCByZXZpc2lvbgogICAKMTk5NS0wMy0wOCAxNjowNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFJFQURNRS5jbXUsIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBtYW4vUkVBRE1FLCBtYW4vc25tcHRlc3QuMSwKICAgbWFuL3NubXB3YWxrLjEsIG1hbi9zbm1wYnVsa3dhbGsuMSwKICAgbWFuL3NubXBnZXQuMSwgbWFuL3NubXBnZXRuZXh0LjEsCiAgIG1hbi9zbm1wbmV0c3RhdC4xLCBtYW4vc25tcHNldC4xLAogICBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjgsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92aWV3LmMsCiAgIHNubXBsaWIvdmlldy5oOgoKICAgTmV3IHJlbGVhc2Ugb2YgQ01VJ3MgY29kZToKICAgICAtLSBTZWUgUkVBRE1FIGZvciBzcGVjaWZpYyBkZXRhaWxzCiAgICAgLS0gc25tcHNldCxzbm1wZ2V0bmV4dCBhZGRlZAogICAgIC0tIC1xIGZsYWcgYWRkZWQgInF1aWNrIHByaW50IgogICAgIC0tIGJ1ZyBmaXhlcwogICAgIC0tIE1hbiBwYWdlcyB1cGRhdGVkCiAgIAoxOTk1LTAzLTAyIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgTWlub3IgYmFja3NwYWNlIGNoYW5nZXMuLi4KICAgUmVtb3ZlZCAtdyBzd2l0Y2ggZm9yIHBlcmwKICAgCjE5OTUtMDMtMDIgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBGaXggZnJvbSBUaW06IGNvcnJlY3RseSBmaW5kcyBwaWQgbm93CiAgIAoxOTk1LTAyLTA5IDEyOjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgcGVybCAtdyBwcm9kdWNlcyBubyB3YXJuaW5ncyBub3cgaWYgbm8gY21kIGxpbmUgYXJncyBhcmUgZ2l2ZW4uCiAgIEFkZGVkIHR3byBtb3JlIHN0YXR1cyBpbmRpY2F0b3JzIChzbGVlcGluZywgY2hlY2tpbmcpIGZvciBmaXggcm91dGluZS4KICAgTm93IHNsZWVwcyBmb3IgMiBzZWNvbmRzIGluc3RlYWQgb2YgMSAobm90IHF1aWNrIGVub3VnaCB0byBjYXRjaCBYIHJlc3RhcnRzKQogICAKMTk5NS0wMi0wOSAxMjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIENoYW5nZWQgcHMgLWVsIHRvIHBzIC1lOiAgcHMgLWVsIHJlcG9ydGVkIFggYXMgYmVpbmcgYWxpdmUgaW5zdGVhZCBvZiA8ZGVmdW5jdD4KICAgCjE5OTUtMDItMDggMTU6MjAgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgYSBtaWIgdG8gcHJvdmlkZSBjYXBhYmlsaXR5IGZvciBpZ25vcmluZyB0aGUgZXhlYyBjYWNoZS4KICAgICAtLSAgTmVlZGVkIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBhICdmaXgnIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGUgJ2ZpeCcgd29ya2VkLgogICAKMTk5NS0wMi0wOCAxNTowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFBva2VzIHRoZSByZXNldC1jYWNoZSBtaWIgdG8gZW5zdXJlIGEgbmV3ICdwcycgb3V0cHV0IGZvciBmaXhlZCBwcm9ibGVtcy4KICAgCjE5OTUtMDItMDggMTQ6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBOZXcgb3B0aW9uczoKICAgICAteTogIGFsd2F5cyB0cnkgdG8gZml4IHRoZSBwcm9ibGVtcwogICAgIC1uOiAgbmV2ZXIgdHJ5IHRvIGZpeCB0aGUgcHJvYmxlbXMKICAgQ3VycmVudGx5IGRlZmF1bHRzIHRvIG5ldmVyIChzaG91bGQgcHJvbXB0KSB0aWxsIEkgY2FuIGdldCBwZXJsJ3MKICAgICBnZXRjKFNURElOKSB0byB3b3JrLi4uCiAgIFVzZXMgc25tcHNldCB0byBhY2NvbXBsaXNoIHRoaXMsIHdoaWNoIGlzIE9WcyBhbmQgb25seSBsaWNlbmNlZCBmb3Igb25lIGhvc3QuCiAgIAoxOTk1LTAyLTA4IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wZC5jOgoKICAgQWRkZWQgJ2Nsb3NlIG9uIGV4ZWMnIGZsYWdzIHRvIG9wZW4gZmlsZXMgKC9kZXYvKm1lbSopIGFuZCBzb2NrZXRzLgogICAgIC0tICBQcmV2ZW50cyBzcGF3bmVkIHByb2Nlc3NlcyBmcm9tIGtlZXBpbmcgc25tcGQgZnJvbSByZXN0YXJ0aW5nLgogICAgICAgICAoRXJyb3JzIHdlcmU6ICBDYW4ndCBiaW5kIHNvY2tldCAoaW4gdXNlKSBhbmQgQ2FuJ3Qgb3BlbiAvZGV2L2RtZW0pCiAgIFNldCBPX1JET05MWSBmbGFnIG9uIC9kZXYvKm1lbSogZmlsZXMsIHJlcXVpcmVkIGJ5IHRoZSAnbWFuIHBhZ2UnIChlbHNlIHVuZGVmKQogICAKMTk5NS0wMi0wMyAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBBZGRlZCB3ZXMvZXhlYy5vCiAgIAoxOTk1LTAyLTAzIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIG1pYiBkZWZzIGZvciB0aGUgcmVhZC93cml0ZSBmaXggZm9yIHByb2NzIGFuZCBleGVjIGZ1bmN0aW9ucwogICAKMTk5NS0wMi0wMyAxMzozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBlY2Utc25tcGQuY29uZiwgZml4cHJvYywgZml4cHJvYy5jb25mOgoKICAgQWRkZWQgZml4cHJvYyBhbmQgaXRzIGRhdGFiYXNlIChpbnN0YWxsZWQgaW4gL2xvY2FsL3NjcmlwdHMgYW5kIC9sb2NhbC9ldGMpCiAgIENvcGllZCB0aGUgY3VycmVudCAvZXRjL2VjZS1zbm1wZC5jb25mIHRvIHRoaXMgZGlyZWN0b3J5LCBmb3IKICAgYXJjaGl2aW5nLgogICAKMTk5NS0wMi0wMSAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF9hZ2VudC5jOgoKICAgQWRkZWQgd3JpdGUtbWliIGFiaWxpdHkgdG8gZml4IGEgZ2l2ZW4gcHJvY2VzcwogICAgIC0tIHdpbGwgZXZlbnR1YWxseSBjYWxsIFRpbSdzIHNjcmlwdCB0byBmaXggdGhlIHByb2Nlc3MKICAgICAtLSBEZWZpbmVkIGluIHdlcy5oCiAgIAoxOTk1LTAyLTAxIDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeGVkIE1ha2VmaWxlIGJ1ZzogIGNhbGxlcyAkKE1BS0UpIG5vdyBpbnN0ZWFkIG9mIGV4cGxpY2l0IG1ha2UuCiAgIAoxOTk1LTAxLTMwIDEzOjMzICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIFZlcnNpb24gaW5mb3JtYXRpb24gbm93IGNvbnRhaW5zIGEgQ1ZTIHRhZyBpbmZvIG1pYgogICBWRVJDREFURSBub3cgd29ya3MgcHJvcGVybHkuCiAgIAoxOTk1LTAxLTMwIDExOjE5ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIHZlcnNpb24gbWliIHRvIGRlZmluaXRpb25zLgogICAKMTk5NS0wMS0zMCAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF92YXJzLmM6CgogICBBZGRlZCB2ZXJzaW9uIG1pYiAoVkVSSURFTlQsVkVSREFURSxWRVJDREFURSkKICAgQWRkZWQgbWliaW5jbC5oIGFuZCBtaWJkZWZzLmggdG8gc3RhcnQgc3BsaXR0aW5nIHVwIG1pYnMgaW4gd2VzLmMgaW50bwogICAgIHNlcGVyYXRlIGZpbGVzLiAgSW5jbHVkZSB0aGVzZSB0d28gZmlsZXMgdG8gaW5jbHVkZSBuZWNlc3NhcnkgZGVmcwogICBFUlJPUk1TRyBkZWZzIG5vdyBBTEwgcmV0dXJuIGN1cnJlbnQgbnVtZXJpY2FsIHJlc3VsdCB3aXRoIHRoZSBtc2cuCiAgIAoxOTk1LTAxLTI3IDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFB1dCBpbiBkZWZpbmVzIGZvciB0aGUgc3ViIG1pYiBudW1zIHtzbm1wX3ZhcnMuYywgd2VzLmh9CiAgIAoxOTk1LTAxLTI3IDEzOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgcGF0aHMgKC91c3IvbG9jYWwvZXRjKSB0byBzbm1we2dldCx3YWxrfQogICAKMTk5NS0wMS0yNyAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNYWRlIG5saXN0IGVudHJ5IGNoYW5nZXMuICBubyBsb25nZXIgZGllcyBmcm9tIGEgQXJwVGFibGUgcXVlcnkuCiAgIAoxOTk1LTAxLTI3IDEyOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1vdmVkIGtlcm5lbC9ubGlzdCBwcmludG91dCBvZiBub3QgZm91bmQgbmxpc3QgZW50cmllcyBvdXQgb2YgI2lmZGVmIGhwdXgKICAgCjE5OTUtMDEtMjcgMTE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgY3BwIE1pc3Rha2UgZml4OiAjaWZkZWYgSFBVWCAtPiAjaWZkZWYgaHB1eAogICAKMTk5NS0wMS0yNSAxNzoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBQb3J0ZWQgKGJhY2spIHRvIFN1bjQ6CiAgICAgLS0gc3dhcCBhbmQgZGlzayBtaWJzIG5vdCBzdXBwb3J0ZWQgeWV0CiAgICAgLS0gZm91bmQgbnVtZXJvdXMgYnVncyBJIGhhZG4ndCBub3RpY2VkIHVuZGVyIEhQVVgsIG1vc3RseSB0eXBlCiAgICAgICAgY2FzdGluZy4KICAgCjE5OTUtMDEtMjUgMTY6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBTd2FwL01lbW9yeSBtaWIgY2hlY2sgKC40KSwgbm93IHRoYXQgaXQgY29uZm9ybXMgdG8gLnsxLDIsMTAwLDEwMX0gc3BlY3MuCiAgIENoYW5nZWQgZm9ybWF0aW5nIHRvIHVzZSAlLW4ubnMgc3BlY2lmaWNhdGlvbnMgaW5zdGVhZCBvZiB0YWIgc2VwZXJhdGlvbnMuCiAgIAoxOTk1LTAxLTIzIDE2OjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBCdWcgZml4OiAgUG9sbGVkIHdyb25nIG1pYiAoMTAwIGluc3RlYWQgb2YgMTAxKSBmb3IgZXJybXNnIHN0cmluZy4KICAgCjE5OTUtMDEtMjMgMTI6NTcgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgVHlwbyBmaXhlcyBpbiB0aGUgbWliIGRlZiBmaWxlIGZvciBPVi4KICAgCjE5OTUtMDEtMjMgMTI6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXb24ndCBjaGVjayBkb3duIGhvc3RzOi0pCiAgIAoxOTk1LTAxLTIzIDEwOjU3ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFsbCAod2F0Y2hlZCkgbWlicyBub3cgdXNlOgogICAgIDE6ICBNSUJJTkRFWCwganVzdCBhbiBpbmRleCB0byB0aGUgbnVtYmVyIG9mIHZhcnMKICAgICAyOiAgRVJST1JOQU1FLCBhIGdlbmVyaWMgb25lIHdvcmQgbmFtZSBmb3IgdGhlIGNhdXNlIG9mIEVSUk9Se0ZMQUcsTVNHfS4KICAgCjE5OTUtMDEtMjMgMTA6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIEFkZGVkIC8xL09WL2JpbiB0byB0aGUgcGF0aCB0byBmaW5kIHRoZSBzbm1wIHV0aWxzIHdpdGhvdXQgcGF0aCBleHRlbnNpb25zLgogICBNb3JlIHZhcmlhYmxlIHVzYWdlOiByZW1vdmVkIHVzZSBvZiBjb21tYW5kIGxpbmUgYXJncyBkaXJlY3RseS4KICAgSWYgdGhlIGVycm9yIGZsYWcgaGFzIGNoYW5nZWQgYmFjayB0byBub3JtYWwsIG9ubHkgbG9nIGl0IGluIHRoZQogICAgIGVjZS10b3RhbCBsb2cgZmlsZSBpbnN0ZWFkLgogICAKMTk5NS0wMS0yMyAxMDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdpbGwgdGFrZSBob3N0cyBmcm9tIHRoZSBsb2cgZmlsZSBpZiBub25lIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgogICAgIC0tICBvciBpZiB0aGUgZmlyc3QgYXJnIGlzIGEgJy1hJyB3aWxsIChBKWRkIHRvIHRoZSBjb21tYW5kIGxpbmUgbGlzdC4KICAgRGlzcGxheXMgd2hhdCBob3N0IGl0IGlzIGNoZWNraW5nIGFzIGl0IGNoZWNrcyBpdC4KICAgQ2hhbmdlZCB0aGUgb3V0cHV0IGZvcm1hdCAoSSd2ZSB5ZXQgdG8gc2VlIGlmIGl0IGFjdHVhbGx5IGxvb2tzIGdvb2QgdGhvdWdoKS4KICAgCjE5OTUtMDEtMTggMTU6MjIgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBCZWdpbm5pbmcgb2YgYSBzY3JpcHQgdG8gY2hlY2sgZXJyb3JzIHdpdGggYSBtYWNoaW5lIGFuZCByZXBvcnQgdGhlbQogICAgIHZpYSBzbm1wCiAgIFRPRE86ICBvcHRpb24gdG8gZml4IHRoZSBlcnJvcnMgaWYgcm9vdCBvbiBjbG92ZXIgKG5lZWQgdG8gcnNoIHRvIHRoZSBtYWNoaW5lKQogICAKMTk5NS0wMS0wNSAxNDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQ2hhbmdlZCB0aGUgdHJhcG5vdGlmIGZpbGUgdG8gcmVmbGVjdCByZWNlbnQgc291cmNlIGNoYW5nZXM6CiAgICAgLS0gcmVtb3ZlZCBtZW0gZXJyb3Igc2VjdGlvbi4uLiAgVGhleSBhcmUgaGFuZGxlZCB2aWEgdGhlIG5vcm1hbCBlcnIKICAgICAgICByb3V0ZSBzaW5jZSB0aGV5IG5vdyBoYXZlIGFuIGVycm9yIG1zZyBsaWtlIHRoZSByZXN0CiAgICAgLS0gRXJyb3IgZmxhZyBpcyBub3cgYXQgMTAwLCBhbmQgZXJyb3IgbWVzc2FnZSBpcyBhdCAxMDEuCiAgIAoxOTk1LTAxLTA1IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIENoYW5nZWQgdGhlIG1pYiBmaWxlIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgc291cmNlIGNvZGUuCiAgIEFsbCBtaWJzIG5vdyBoYXZlIEVycm9yRmxhZyBhbmQgRXJyb3JNc2cgYXMgMTAwLDEwMQogICAKMTk5NS0wMS0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiB0cmFwbm90aWYsIHdlc3Jlc3RhcnQ6CgogICBjb3BpZWQgdGhlIHJlc3RhcnQgYW5kIHRyYXBub3RpZiBzY3JpcHRzIHRvIHRoZSBzcmMgdHJlZSBmb3IgY3ZzIGFyY2hpdmluZy4KICAgCjE5OTUtMDEtMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgSW5pdGlhbCByZWxlYXNlLgogICBOZWVkcyB0byBiZSB1cGRhdGVkLgogICAKMTk5NS0wMS0wNCAxNjozMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IC5jdnNpZ25vcmUsIHNubXBuZXRzdGF0Ly5jdnNpZ25vcmU6CgogICBKdXN0IGEgLmN2c2lnbm9yZSBmaWxlCiAgIAoxOTk1LTAxLTA0IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IC5jdnNpZ25vcmUsIHNubXBfdmFycy5jOgoKICAgRmVhdHVyZToKICAgICBBZGRlZCB0aGUgZGlzayB3YXRjaGluZyBmYWNpbGl0aWVzIHRvIHJlcG9ydCBkaXNrIHNwYWNlCiAgICAgICAtLSBuZXcgY29uZmlnIG9wdGlvbiAnZGlzayBESVNLIE1JTkFWQUlMJwogICAgIEFkZGVkIHN1cHBvcnQgZm9yIGEgc2Vjb25kIGNvbmZpZyBmaWxlIGFzIENPTkZJR0ZJTEVUV08KICAgICAgIC0tIGRlZmF1bHRzIHRvIC9ldGMvZWNlLXNubXBkLmxvY2FsLmNvbmYKICAgICAgIC0tIGludGVudDogIG9uZSBpcyByZGlzdGVkIGFuZCBvbmUgaXMgbWFjaGluZSBzcGVjaWZpYwogICAgICAgLS0gVE9ETzogIE5lZWRzIHRvIGVyYXNlIHByZXZpb3VzIGRlZmluaXRpb25zIHJhdGhlciB0aGFuIGFkZGluZwogICAgICAgICAgdHdvIHdpdCB0aGUgc2FtZSBuYW1lCiAgIAogICBDaGFuZ2U6CiAgICAgTUlCIGRlZmluaXRpb24gY2hhbmdlOgogICAgICAgLS0gQWxsIG1pYnMgd2l0aCBlcnJvciBmbGFncyBub3cgdXNlIEVSUk9SRkxBRy9FUlJPUk1TRyBpbnN0ZWFkLgogICAgICAgLS0gVGhlc2UgZGVmYXVsdCB0byAxMDAgYW5kIDEwMSwgYW5kIGFyZSBzZXQgYnkgb25seSB0d28gZGVmaW5lcwogICAgIFNob3J0ZW5lZCBlcnJvciBtZXNzYWdlIGZvciBwcm9jZXNzIGVycm9ycyB0byBmaXQgb24gdGhlIHNjcmVlbi4KICAgICBTd2FwIG1pYiBjb2RlIGNsZWFudXAKICAgCiAgIFRPRE86CiAgICAgQWRkZWQgYmVnaW5uaW5ncyBvZiBrZXJuYWwgbG9ja2luZyB0ZXN0cy4gIE5lZWQgdG8gZmluZCBhIG1hY2hpbmUKICAgICB3aXRoIGEgYnJva2VuIHJwYy5sb2NrZCB0byB0ZXN0IHRoZSBjb2RlIHRob3VnaC4KICAgCiAgIEJ1Z3M6CiAgICAgTXkgbmxpc3QgYXJyYXkgZGlkbid0IGhhdmUgYSBOVUxMIGVuZGluZy4KICAgCjE5OTQtMTItMTQgMTc6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBSRUFETUUgZmlsZQogICAKMTk5NC0xMi0xNCAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9ocHV4LmM6CgogICBBZGRlZCBocHV4LmMKICAgCjE5OTQtMTItMTQgMTY6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcGFydHlfcGFyc2UuYywgc25tcF9jbGllbnQuYwo6CgogICBIUC1VWCBwb3J0IG9mIHRoZSBDTVUgY29kZQogICAKMTk5NC0xMi0xNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFJFQURNRS5jbXUsIG1pYklJLnR4dCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvYXNuMS5oLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaAosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi92aWV3LmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgKLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWQ1LmgsIHNubXBsaWIvdmlldy5oLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBnZXQuYywgc25tcGxpYi8ucHVyZQosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcF9hcGkuMwosIG1hbi9zbm1wdGVzdC4xLCBtYW4vc25tcHdhbGsuMSwKICAgbWFuL3ZhcmlhYmxlcy41LCBtYW4vUkVBRE1FLCBtYW4vZGVzLjEKLCBtYW4vZGVzLjM6CgogICBJbml0aWFsIENNVSBzbm1wIGNvZGUsIHZlcnNpb24gMi4xLjIKICAgCjE5OTQtMTItMTQgMTU6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBtaWJJSS50eHQsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMKLCBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5oCiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5oCiwgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3ZpZXcuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL3ZpZXcuaCwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wZ2V0LmMKLCBzbm1wbGliLy5wdXJlLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3N5c3RlbS5oLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBfYXBpLjMsCiAgIG1hbi9zbm1wdGVzdC4xLCBtYW4vc25tcHdhbGsuMSwgbWFuL3ZhcmlhYmxlcy41LAogICBtYW4vUkVBRE1FLCBtYW4vZGVzLjEsIG1hbi9kZXMuMzoKCiAgIEluaXRpYWwgcmV2aXNpb24KICAgCjE5OTQtMTEtMTggMTU6NTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsCiAgIHNubXBkLmM6CgogICBBZGRlZCBzb21lIGhwLW1pYnMKICAgCjE5OTQtMTEtMDQgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgVmlydHVhbCBNZW1vcnkgbWliIChjdXJyZW50bHkgb25seSB0b3RhbCBhbmQgdXNlZCkKICAgCjE5OTQtMTAtMjggMTM6MzUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICBocC11eCBtYWNoaW5lcyBub3cgcmV0dXJuIHRoZSBjb3JyZWN0IG1pYiBsb2NhdGlvbiBmb3IgdGhlaXIgYXJjaCB0eXBlLgogICBBZGRlZCBocC11eCB0byB0aGUgaWZkZWZzIGZvciBSb3V0ZV9TY2FuX1JlbG9hZCgpIGZ1bmN0aW9uIGZvciBjb3JyZWN0CiAgICAgIGtlcm5hbCByZWFkaW5nLgogICAKMTk5NC0xMC0yNiAxMzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBwYXJ0eV92YXJzLmMsIHNubXBfdmFycy5jOgoKICAgRGVjIGNvbXBpbGF0aW9uIGFjaGl2ZWQsIHRob3VnaCBpdHMgbm90IG9wZW5pbmcgYW55IHBvcnRzIHdoZW4gcnVuLgogICAKMTk5NC0xMC0yNCAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCB0aGUgZXh0ZW5zaWJsZSBtaWIgc2VjdGlvbi4KICAgCjE5OTQtMTAtMjAgMTY6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jLCB2YXJfc3RydWN0Lmg6CgogICBBZGRlZCB0aGUgcmVtYWluaW5nIGhwLXV4IHN5bWJvbHMKICAgcHV0IGFsbCBkZXBlbmRhbmNpZXMgZm9yIG15IHN0dWZmIHVuZGVyIHdlcy8KICAgbW92ZWQgdGhlIHZhcmlhYmxlIGRlY2xhaXJhdGlvbnMgKHN0cnVjdHMpIHRvIHZhcl9zdHJ1Y3RzLmggc28gdGhleSBjb3VsZCBiZQogICByZWZlcmVuY2VkIGJ5IG90aGVyIGZpbGVzLgogICBDaGFuZ2VkIHRoZSBkZWZhdWx0IHZhbHVlcyB0byBocC11eCBmcm9tIEJTRCBhbmQgb3RoZXIgbWlzYyBzdHJpbmdzCiAgIEFkZGVkIGFwcHJvcHJpYXRlIGRlcGVuZGFuY2llcyB0byB0aGUgbWFrZWZpbGUKICAgQ2hhbmdlZCBlcnJvcnMgYW5kIGFkZGVkIHN0dWZmIHRvIHRoZSB2YXJpYWJsZSBkZWNsYWlyYXRpb25zIGZvciBteSBzdHVmZgogICAKMTk5NC0xMC0xNCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwga2VybmVsLmMsIHNubXBfdmFyX3JvdXRlLmMKLCBzbm1wX3ZhcnMuYzoKCiAgIGZpeGVkIG5saXN0IGZvciB0aGUgaHBzLiAgTm90IHN1cmUgb2YgdGhyZWUgcGFydGljdWxhciBubGlzdAogICByZWZlcmVuY2VzIChmb3IgdGhlIGFycCB0YWJsZSkuICBUaGUgcmVzdCBhcmUgd29ya2luZy4KICAgQWxzbyBhZGRlZCB3ZXMvKiBkbyB0aGUgZGVwZW5kYW5jZXMgZm9yIHNubXBfdmFycy5jCiAgIAoxOTk0LTEwLTE0IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wX3ZhcnMuYzoKCiAgIEkgZml4ZWQgdGhlIHNvdXJjZSBmb3IgY29tcGlsYXRpb24gYW5kIGJlZ2FuIGFkZGluZyBteSBvd24gbWliIGRlZnMuCiAgIEFueSBpbmNsdWRlZCBtaWJzIHdoaWNoIG1ha2Uga2VybmFsIHJlYWRzIHN0aWxsIGZhaWwuCiAgIAoxOTk0LTEwLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBoaXN0b3J5LmgsIGtlcm5lbC5jCiwgc25tcF9hZ2VudC5jLCBzbm1wX3Zhcl9yb3V0ZS5jLAogICBzbm1wX3ZhcnMuaCwgc25tcGQuYywgYWxhcm0uYywKICAgZXZlbnQuYywgaGlzdG9yeS5jLCBwYXJ0eV92YXJzLmMsCiAgIHNubXBfdmFycy5jLCBzbm1wX3ZhcnNfZXZlbnQuaCwgdmlld192YXJzLmMKLCBhY2wuY29uZiwgYWNsX3ZhcnMuYywgYWxhcm0uaAosIGNvbnRleHRfdmFycy5jLCBldmVudC5oLCBtMm0uaAosIHNubXBfdmFyc19tMm0uaCwgdmlld19wYXJzZS5jLCAucHVyZQosIHJvdXRlX3dyaXRlLmM6CgogICBJbml0YWwgQ01VIHNvdXJjZS4KICAgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC44IC0+IFY1LjAuOQoKMjAwMy0wOS0wNSAyMzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wOS0wNSAyMzo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmb3Jnb3QgYSB0ZXN0IGFmdGVyIHRoZSBpZgogICAKMjAwMy0wOS0wNSAyMzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA5LTA1IDIzOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMKLCBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zCiwgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMwosIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMKLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RvZG8uMywKICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb3h5Z2VuIHVwZGF0ZQogICAKMjAwMy0wOS0wNSAyMzoyNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuOQogICAKMjAwMy0wOS0wNSAyMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjODAwNTYxIGZyb20gQm9iIFJvd2xhbmRzIHRvIGZpeCA2NGJpdCBwcm9ibGVtcyAoLT4gc2l6ZV90KQogICAKMjAwMy0wOS0wNSAyMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBQYXRjaCAjODAwNDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciA2NCBiaXQgYWdlbnR4IHByb2JsZW1zCiAgIAoyMDAzLTA5LTA1IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFBhdGNoICM3OTIwMDggZnJvbSBUaG9tYXM/IHRvIGFsbG93IHVzbVVzZXIgdG9rZW5zIHRvIG92ZXJyaWRlIHByZXZpb3VzIGVudHJpZXMKICAgCjIwMDMtMDktMDUgMjI6MDQgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCBzbm1wY21kLjEuZGVmLAogICBzbm1wZGVsdGEuMSwgc25tcGRmLjEsIHNubXBuZXRzdGF0LjEsCiAgIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwKICAgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFuc2xhdGUuMS5kZWY6CgogICBQYXRjaCAjNzg5NDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciBhIGxvbmcgbmVlZGVkIG92ZXJoYXVsIG9mIHRoZSBtYW51YWwgcGFnZXMuCiAgIAoyMDAzLTA5LTA1IDIyOjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG9uZSBydW4tYXdheSBwYXRjaAogICAKMjAwMy0wOS0wNSAyMTo1OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgaGlnaCBsZXZlbCBjb21tZW50cyBhYm91dCBjb250YWluZWQgY29weXJpZ2h0cyBtb3ZlZCBmcm9tIHRoZSBtYWluIGJyYW5jaAogICAKMjAwMy0wOS0wNSAyMTo1NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHVwZGF0ZXMKICAgCjIwMDMtMDktMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICBBZGQgb3B0aW9uYWwgYXJndW1lbnRzIHRvIHRoZSAtLXdpdGgtcGVybC1tb2R1bGVzIGZsYWcgZm9yIHBhc3NpbmcgZG93bgogICAKMjAwMy0wOS0wNSAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gZml4IGEgZ2V0YnVsayBidWcgcG9pbnRlZCBvdXQgYnkgSnVyaWogU21ha292LgogICAKMjAwMy0wNy0yNyAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGZpbGVuYW1lIGluIGVycm9yIG1zZywgYXMgbm90ZWQgaW4gY29kZXJzCiAgIAoyMDAzLTA3LTI0IDE4OjE0ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgYWNjZXNzIHRvIGF1Z21lbnRzIHRhZyAoZml4IGJ1ZyA3NDAwODI6IG1pYjJjIGhhbmRsZXMgQVVHTUVOVGluZyB0YWJsZXMKICAgaW5jb3JyZWN0bHkpCiAgIAoyMDAzLTA3LTI0IDE4OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgaW5kZXhlcyBmcm9tIGF1Z21lbnRlZCB0YWJsZSBmb3IgdGFibGVzIHVzaW5nIGF1Z21lbnRzIChmaXgKICAgYnVnIDc0MDA4MjogbWliMmMgaGFuZGxlcyBBVUdNRU5UaW5nIHRhYmxlcyBpbmNvcnJlY3RseSkKICAgCjIwMDMtMDctMjQgMDU6MjcgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIGFzIGVtcHR5IGlmIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTA3LTEwIDA5OjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHR5cG87IHVzZSB3aGljaCB0byBmaW5kIHNjcDsgYWRkIGV4dHJhIGNvbmZpZyB0byBvdGhlciBjb25maWcKICAgCjIwMDMtMDctMDkgMjA6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgaG9zdC9wYXRoIHVwbG9hZDsgdHJ5IHRvIGV4dHJhY3QgbW9yZSBpbmZvIGZyb20gbWFrZSBsb2cgb24gZXJyb3IKICAgCjIwMDMtMDctMDkgMjA6NTQgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UsIG5zYi1uaWdodGx5OgoKICAgYWRkIGhvc3QvcGF0aCB1cGxvYWQgcGFyYW1zOyB1c2UgbmV3IG5zYi1kZWZhdWx0LXBhdGhzCiAgIAoyMDAzLTA3LTAzIDIwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9saXN0X3NzbGwuYywgY29udGFpbmVyX251bGwuYwo6CgogICBvb3BzIC0gbm8gbmV3IGZlYXR1cmVzIGZvciA1LjAuOAogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbGlzdF9zc2xsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX251bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9saXN0X3NzbGwuYywgY29udGFpbmVyX251bGwuYwo6CgogICBuZXcgY29udGFpbmVycwogICAKMjAwMy0wNy0wMiAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFBhdGNoICM3MjQ5MjUgZnJvbSBQZXRlciBXYXJhc2luIHRvIGZpeCBuZXRzbm1wX3N1YnRyZWVfdW5sb2FkKCkgdG8gdXBkYXRlIHRoZSByb290IHBvaW50ZXIKICAgCjIwMDMtMDctMDIgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgc25tcGxpYi9wYXJzZS5jCjoKCiAgIFBhdGNoICM3NjA0NDggZnJvbSBCb2IgUm93bGFuZHMvU3VuIHRvIGZpeCBidWcgIzc1MTkxMyB0byBwcm90ZWN0IGEgZmV3IG1pbm9yIHNlY3VyaXR5IHZpb2xhdGlvbnMKICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3RybGNweS5jOgoKICAgZmlsZSBzdHJsY3B5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc3RybGNweS5jOgoKICAgUGF0Y2ggIzc2MDQxNyBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gZm9yIGZpeGluZyBCdWcgIzc1MTkyMCBmb3IgbWlub3Igc2VjdXJpdHkgcHJvYmxlbXMgKFBJRCBmaWxlIHVubGlrZWQgZmlyc3QsIGFuZCB1c2Ugc3RybGNweSBpbnN0ZWFkIG9mIHN0cmNweS4gIEEgbmV3IHN0cmxjcHkgZmlsZSB3YXMgZGVmaW5lZCBpZiBub3QgZGVmaW5lZCBmb3IgYSBzeXN0ZW0uCiAgIAoyMDAzLTA3LTAyIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZG9uJ3QgdXNlIGlzc3BhY2UgYW5kIGlzcHJpbnQgc2ltdWx0YW5pb3VzbHkKICAgCjIwMDMtMDctMDIgMTA6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGNvbW1lbnQgY2hhbmdlIGZvciBjbGFyaWZpY2F0aW9uCiAgIAoyMDAzLTA3LTAyIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgUGF0Y2ggIzc2NDA0NyBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9uIGZyb20gc25tcF9kZWJ1Zy5oIGFuZCBmaXggYSBmZXcgY29tbWVudHMKICAgCjIwMDMtMDctMDIgMTA6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzc1OTMwOSBmcm9tIFN0ZXBoZW4gRnJpZWRsIHRvIGFkZCBwcm9tcHQgb3Zlci1yaWRlIGZsYWcgZGVzY3JpcHRpb25zIHRvIHByb21wdCBvdXRwdXQKICAgCjIwMDMtMDctMDIgMTA6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzc1OTI5ODogZml4IHNwZWxsaW5nIGVycm9yCiAgIAoyMDAzLTA2LTI1IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHByb3h5aW5nIGZvciBnZXRidWxrCiAgIAoyMDAzLTA2LTIyIDA3OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBmaXggdXNhZ2UgZm9yIGZsYWcgb3JkZXJpbmcKICAgCjIwMDMtMDYtMTYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBjb21tZW50IGFib3V0IGl0IGJlaW5nIGJyb2tlbiwgYXMgcG9pbnRlZCBvdXQKICAgYnkgQnJ1Y2UuCiAgIAoyMDAzLTA2LTE2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgc3VwcG9ydCAsIHNlcGFyYXRlZCBhcmd1bWVudHMgdG8gLVQgbGlrZSAtaCBzYXlzIGl0IHdpbGwuCiAgIAoyMDAzLTA2LTE2IDE0OjU3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnJ1Y2UgU2hhdydzIHBhdGNoIDc1NTU1MyB0byBmaXggUlVOVEVTVFMgdGVzdCBudW1iZXIgcmVwb3J0aW5nIHdoZW4KICAgdGVzdGluZyBzdWJzZXRzIGFyZSB1c2VkLgogICAKMjAwMy0wNi0xNiAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc1NTU0MCBmcm9tIEJydWNlIFNoYXcgYW5kIElSQzpTZWJOb2IgdG8gZml4IGJ1ZyAjNzAxNDM5IGZvciA2NCBiaXQgc29sYXJpcyBzeXN0ZW1zIGFuZCA2NCBiaXQgaW50ZWdlcnMgcmV0dXJuZWQgYnkgZ2V0S3N0YXQKICAgCjIwMDMtMDYtMTYgMTQ6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAKOgoKICAgUGF0Y2ggIzc1NDEwNSBmcm9tIEJydWNlIFNoYXcgdG8gZml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzCiAgIAoyMDAzLTA2LTEwIDE1OjQ4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQmV3YXJlIG9mIGRlcmVmZXJlbmNpbmcgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDMtMDYtMTAgMTA6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgdW51c2VkIGZ1bmN0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5IEJvYiBSb3dsYW5kcwogICAKMjAwMy0wNi0wOSAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L3NubXBfYWdlbnQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgTG9uZyBvdmVyZHVlIHBhdGNoICM2OTUxOTIgZnJvbSBSb24gVGFib3IgdG8gZml4IHRoZSBWQUNNIHNwaW5uaW5nIHByb2JsZW0gdGhhdCBJIGRpZG4ndCBxdWl0ZSBmaXggYmVmb3JlCiAgIAoyMDAzLTA2LTA5IDE2OjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUwosIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIGZpeCBidWcgIzcwNjcxMCB0byBzaG93IHdoZW4gcHJpdmFjeSBoYXMgYmVlbiBkaXNhYmxlZAogICAKMjAwMy0wNi0wOSAxNTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYnVnICM3NDg0MzEgZnJvbSBKb2huIFNoaXZlcjogZml4IHRocmVhZC1zYWZlIHByb2JsZW1zIHdpdGggc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24gKHdoaWNoIHdhcyBtaXNzaW5nIGluIHRoZSA1LnggbGluZSBhbnl3YXkpCiAgIAoyMDAzLTA2LTA5IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuTWF0c3VzaGl0YS50eHQsIFJFQURNRS5NYXRzdXNoaXRhLnR4dDoKCiAgIFBhdGNoICM3NDgzMDUgZnJvbSBzcmluaXZhc2EgcmFvIGd1cnVzdSBkZXNjcmliaW5nIGhvdyB0byBidWlsZCBuZXQtc25tcCBvbiBNYXRzdXNoaXRhIGVtYmVkZGVkIHN5c3RlbXMKICAgCjIwMDMtMDYtMDkgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgUGF0Y2ggNzQ2MzM5OiBPdHRvIFNvbGFyZXMgZml4ZXMgYSBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBsaW51eAogICAKMjAwMy0wNi0wOSAxNDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgcGF0Y2ggIzc0MDkxOCBmcm9tIEVyaWMgRS4gQm93bGVzOiBmaXggcGFzcyB0aHJvdWdoIGludm9jYXRpb24gZm9yIFNFVHMKICAgCjIwMDMtMDYtMDkgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NDkwNjIgdG8gZml4IGNhY2hpbmcgY3Jhc2hpbmcgYW5kIGNsYXNoaW5nIHVuZGVyIFNvbGFyaXMKICAgCjIwMDMtMDYtMDkgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBwYXRjaCAjNzQ5MTAzIGZyb20gR2FycnkgQyBNYXJzaGFsbCB0byBmaXggdGhlIHByb3h5IHdoZW4gYSB0aW1lb3V0IG9jY3VycyBmcm9tIHRoZSB0YXJnZXQKICAgCjIwMDMtMDYtMDYgMjM6MTcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IG1pc3NpbmcgbGVuZ3RoIGJ5dGUgd2hlbiBzZXR0aW5nIGluZGV4IHdpdGggY2hlY2tzIGRpc2FibGVkCiAgIAoyMDAzLTA1LTI4IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBhcyBwb2ludGVkIG91dCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA1LTI4IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICBhZGRlZCBWNC9WNSBub3RlIGZyb20gbWFpbiBicmFuY2ggdG8gcGF0Y2hlcwogICAKMjAwMy0wNS0yMyAxMToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZnJlZSBjb250YWluZXIgYWZ0ZXIgZnJlZWluZyBjb250ZW50cwogICAKMjAwMy0wNS0yMyAxMToyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVwZGF0ZSBjb250YWluZXIgZnJlZSBtYWNyby9jb2RlIHRvIGRlYWwgdy9wb2ludGVyIGJlaW5nIGRlbGV0ZWQKICAgCjIwMDMtMDUtMjMgMTE6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgRVhURU5TSUJMRU1JQiAtPiBVQ0RBVklTX01JQgogICAKMjAwMy0wNS0xNCAxMDozMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWcuaW4KICAgCjIwMDMtMDUtMTQgMTA6MjggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbmV0LXNubXAtY29uZmlnIGNobW9kIHRvIHdvcmsgZnJvbSBjb25maWd1cmUgYW5kIGNvbmZpZy5zdGF0dXMKICAgCjIwMDMtMDUtMTIgMjI6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjNzM1NTExIGZyb20gQWxleCBCdXJnZXI6IGZpeCBzbm1wdHJhcGQgdG8gZW5zdXJlIHRoZXJlIGFyZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgdmFyYmluZHMKICAgCjIwMDMtMDUtMTIgMjI6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBQYXRjaCAjNzM2Nzg0IGZyb20gUm9uIFRhYm9yOiBmaXggcHJveGllcyBmb3IgcmVzdGFydGVkIE5TTVB2MyBzdWItYWdlbnRzCiAgIAoyMDAzLTA1LTA4IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIEFuZHJldyBGaW5kbGF5CiAgIAoyMDAzLTA1LTA4IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgKGV4Y2VsbGVudCkgcGF0Y2ggIzcwNTU2NiBmcm9tIEFuZHJldyBGaW5kbGF5IG9uIHBlcmwgYWdlbnQgc3VwcG9ydDoKICAgCiAgIDEpIEFnZW50IGNhbm5vdCByZXR1cm4gTUFDIGFkZHJlc3NlcyBjb250YWluaW5nIHplcm8gb2N0ZXQuCiAgIAogICAyKSBBZ2VudCBjb3JlZHVtcHMgd2hlbiB0cnlpbmcgdG8gcmV0dXJuIElQIGFkZHJlc3NlcwogICBpZiB0aGVzZSBhcmUgc3VwcGxpZWQgYXMgZG90dGVkLXF1YWQgb3IgYXMgYSBob3N0bmFtZQogICB0aGF0IGZhaWxzIHRvIHJlc29sdmUuCiAgIAogICAzKSBBZ2VudCBjb3JydXB0cyBPSUQgdmFsdWVzLgogICAKICAgNCkgQWdlbnQgdHJ1bmNhdGVzIGFueSBPQ1RFVF9TVFJJTkcgb3IgQklUX1NUUklORyB0aGF0CiAgIGNvbnRhaW5zIGEgemVybyBvY3RldCAodGhpcyBpcyB0aGUgcm9vdCBjYXVzZSBvZiAoMSkgYWJvdmUpCiAgIAogICBBUEkgY2hhbmdlcyBpbnRyb2R1Y2VkOgogICAKICAgYSkgSVAgYWRkcmVzc2VzIG5vdyBwYXNzZWQgYXMgYmluYXJ5IHN0cmluZ3MgKDQgb2N0ZXRzCiAgIGZvciBJUHY0KSByYXRoZXIgdGhhbiBkb3R0ZWQtcXVhZCBvciBuYW1lLiBUaGlzCiAgIHNpZGVzdGVwcyB0aGUgSVB2NC9JUHY2IHByb2JsZW0gYW5kIGxlYXZlcyB0aGUgY2FsbGluZwogICBzY3JpcHQgdG8gZGVhbCB3aXRoIG5hbWUtPmFkZHJlc3MgcmVzb2x1dGlvbiBhbmQKICAgYXNzb2NpYXRlZCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDMtMDUtMDggMDk6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gQWxleCBCdXJnZXIsIHdobyBzdWJtaXR0ZWQgdGhlIHBlcmwgd2luMzIgcGF0Y2hlcwogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBTdGVwaGVuCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYwo6CgogICBwYXRjaCAjNzEwMjc1IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IGNvbnN0IGZpeGVzIGZvciBBUElzIHRoYXQgZG9uJ3QgbW9kaWZ5IHRoZWlyIGFyZ3VtZW50cwogICAKMjAwMy0wNS0wOCAwOToyOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgbWlzc2VkIGEgY29tbWl0IGZvciBhIHBlcmwgcGF0Y2gKICAgCjIwMDMtMDUtMDggMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgQXBwbGllZCBwYXRjaCAjNzEyMTAxOiBtaW5vciBpcml4IGZpeAogICAKMjAwMy0wNS0wOCAwOToyMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gcGF0Y2ggIzcxNTYwMwogICAKMjAwMy0wNS0wOCAwOToxOCAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9SRUFETUUsIFNOTVAvU05NUC54cwosIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgcGF0Y2ggIzcxNTYwMzogZml4IHBlcmwgbW9kdWxlIGJ1aWxkcyB1bmRlciB3aW5kb3dzCiAgIAoyMDAzLTA1LTA4IDA3OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdHJ5IHRvIHVzZSBkZWZhdWx0IGNvbnRhaW5lciBpZiBub25lIHNwZWNpZmllZDsgbm9uLWV4aXN0ZW50IHJvdyBzdGF0dXMgbm90CiAgIGxlZ2FsIGZvciBhIG5ldyByb3c7IHNhbml0eSBjaGVjayBhc3NlcnRzOyByZW1vdmUgdW51c2VkIGNvb3BlcmF0aXZlCiAgIG5vdGlmaWNhdGlvbiBjb2RlOyBjaGVjayBmb3IgbnVsbCB0YWJsZSBjb250YWluZXIKICAgCjIwMDMtMDUtMDggMDc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBvYmplY3RfbW9uaXRvciBhcyBpdCBkb2Vzbid0IGRvIGFueXRoaW5nIGFuZCB3b3VsZCBiZSBhIG5ldyBmZWF0dXJlIGlmCiAgIGl0IGRpZAogICAKMjAwMy0wNS0wOCAwNzowNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBzeXNuYW1lIHRyYW5zbGF0aW9uIGZvciAvOyBhbGxvdyBleHRyYSBjb25maWcgdG8gYmUgc3BlY2lmaWVkIGluCiAgIGVudmlyb25tZW50IHZhcgogICAKMjAwMy0wNS0wOCAwNzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgY2hnIE5FVF9TTk1QX1VTRV9BU1NFUlQgZGVmaW5lIHRvIE5FVFNOTVBfVVNFX0FTU0VSVCB0byBiZSBjb25zaXN0ZW50CiAgIAoyMDAzLTA1LTA4IDA2OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgYXBwbHkgcGF0Y2ggWyA3MjQ5MjcgXSB0byBmaXggbG9nIG1zZzsgYWRkIFxuIHRvIGxvZyBtc2dzCiAgIAoyMDAzLTA1LTA1IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMy0wNS0wNSAxMDozNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4KICAgCjIwMDMtMDUtMDUgMTA6MjkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluOgoKICAgY2htb2QgbmV0LXNubXAtY29uZmlnIGFmdGVyIGNvbmZpZ3VyZSwgaW5zdGVhZCBpbiBtYWtlCiAgIAoyMDAzLTA0LTAzIDE1OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICB3cmFwIFNOTVBfRlJFRSBtYWNybyB3L2RvIHdoaWxlLCBzbyBpdCB3b24ndCBhZmZlY3QgaWYvdGhlbiBmbG93CiAgIAoyMDAzLTAzLTI4IDA2OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNToKCiAgIEtlbiBIb3Juc3RlaW4gbm90ZWQgdGhhdCB0aGUgcnd1c2VyIC1zIGZsYWcgd2FzIG1pc3NpbmcgaXQncyBhcmd1bWVudAogICAKMjAwMy0wMy0yOCAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBmb3IgbWlzYyBrcmI1IGZpeGVzIChlbmNyeXB0aW9uIHR5cGVzLCBOZXcgY3J5cHRvIHN1cHBvcnQsLi4uCiAgIAoyMDAzLTAzLTE5IDExOjQ2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdHJhaWxpbmcgXCBmcm9tIHBlcmwgcnVsZXMKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNyAtPiBWNS4wLjgKCjIwMDMtMDMtMTcgMTc6MzMgIHJzdG9yeQoKICAgKiBORVdTLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgKICAgCjIwMDMtMDMtMTcgMTc6MjAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUQosIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjggKQogICAKMjAwMy0wMy0xNCAxNDo1NSAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIHBlcmwvU05NUC9TTk1QLnBtLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICB1cGRhdGUgZm9yIDUuMC44LnByZTIKICAgCjIwMDMtMDMtMTQgMTQ6NDAgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC44LnByZTIKICAgCjIwMDMtMDMtMTQgMTM6NTMgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zCjoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxMzo0NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdHJhaWxpbmcgc2xhc2ggb24gc3JjZGlyIGZvciBjb21tZW50IGNoZWNrcwogICAKMjAwMy0wMy0xNCAxMzo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgZXh0cmEgbW9kdWxlcyBhbmQgdHJhbnNwb3J0cwogICAKMjAwMy0wMy0xNCAxMjo0NCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgdXNlIG5ldyBtYWNybyBmb3IgaW5saW5pbmc7IGZpeCBzb21lIGluZGVudCBtYWRuZXNzCiAgIAoyMDAzLTAzLTE0IDEyOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXNlIG5ldyBtYWNybyBmb3IgdGVzdGluZyBpZiBpbmxpbmluZyBpcyBvbgogICAKMjAwMy0wMy0xNCAxMjo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYWl4LmgsIGhwdXguaCwKICAgaXJpeC5oOgoKICAgZG9uJ3QgdW5kZWYgaW5saW5lCiAgIAoyMDAzLTAzLTE0IDEyOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbmFtZSBtYWNybyB1c2VkIHRvIHRlc3QgZm9yIGlubGluaW5nCiAgIAoyMDAzLTAzLTE0IDEyOjM5ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBpZiBpbmxpbmUgbWFjcm8gbm90IGRlZmluZWQsIGRlZmluZSBhcyBlbXB0eQogICAKMjAwMy0wMy0xNCAxMjozNyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwosIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICByZXBsYWNlIGlubGluZSB3L21hY3JvCiAgIAoyMDAzLTAzLTEzIDE5OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuIHRvIGZpeCBzb21lIEFnZW50WCAobW9zdGx5KSBtZW1vcnkgbGVha3MKICAgCjIwMDMtMDMtMTIgMTM6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHBhdGNoICM2OTkzODA6IEZyb20gQ2hyaXN0b3BoZSBLYWx0OiBtYWtlIG5ldC1zbm1wLWNvbmZpZyBkbyB3aGF0IGl0J3MgZG9jdW1lbnQgdG8gZG8gKGFkZCAtTEBsaWJkaXJAKQogICAKMjAwMy0wMy0xMiAxMTo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggIzcwMDY3MjogcmVzZXQgaXRtcCB0byB0aGUgbmV3IHZhbHVlIGxlbmd0aCBhZnRlciBkZWNvZGluZyBhIGhleCBzdHJpbmcKICAgCjIwMDMtMDMtMTEgMTc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEFwcGxpZWQgb3BlbnNzbCBkeW5hbWljIHZlcnNpb24gaGFjay9maXgKICAgCjIwMDMtMDMtMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBXUkFQTElCUyB2YXIgaW5zdGVhZCBvZiBkaXJlY3Qgc3Vic3RpdHV0aW9uCiAgIAoyMDAzLTAzLTExIDE1OjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIFdSQVBMSUJTIHRvIC0tYWdlbnQtbGlicyBhbmQgLS1leHRlcm5hbC1hZ2VudC1saWJzCiAgIAoyMDAzLTAzLTExIDAwOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcmV2ZXJ0IHRvIDIuMTMKICAgCjIwMDMtMDMtMDYgMDE6NDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KICAgCjIwMDMtMDMtMDYgMDE6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbGlid3JhcCB3L25zbDsgbWFrZSBzdXJlIGFsbCBxdW90ZXMgcmVzdG9yZWQgYmVmb3JlIHVzaW5nIEFDIG1hY3Jvcy4gVGhpcwogICBzZWVtcyB0byBtZXNzIHVwIHRoZSBjb25maWcgb3V0cHV0IHdoaWxlIGNoZWNraW5nIGZvciBtb2R1bGVzLCBidXQgdy9vdXQgaXQsCiAgIEkgZ2V0IGVycm9ycyBmcm9tIG00IHdoZW4gcnVubmluZyBhdXRvY29uZi4KICAgCjIwMDMtMDMtMDUgMjA6NTEgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIG5ldC1zbm1wLWNvbmZpZy14CiAgIAoyMDAzLTAzLTA1IDIwOjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoZWNrIGZvciBhbiBvcHRpb25hbCAzcmQgcGFyYW0sIG5vY3ZzLCB0byBub3QgY29tbWl0IGFmdGVyIHVwZGF0aW5nIHZlcnNpb24KICAgCjIwMDMtMDMtMDUgMjA6NDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcHV0IGFsbCB0aGUgdmVyc2lvbiBudW1iZXIgY2hhbmdlcyBpbiB0aGUgc2FtZSBzdGVwCiAgIAoyMDAzLTAzLTA1IDIwOjIxICByc3RvcnkKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjgucHJlMSApCiAgIAoyMDAzLTAzLTA1IDIwOjAwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbSwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMC44LnByZTEKICAgCjIwMDMtMDMtMDUgMTk6MDQgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGJhY2sgb3V0IGRvY3MgZm9yIG5ldyBmdW5jdGlvbmFsaXR5IGFjY2lkZW50YWxseSBhZGRlZCB3aGVuIGFwcGx5aW5nIHBhdGNoCiAgIAoyMDAzLTAzLTA1IDE4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgYmFjayBvdXQgbmV3IGZ1bmN0aW9uYWxpdHkgYWNjaWRlbnRhbGx5IGFkZGVkIHdoZW4gYXBwbHlpbmcgcGF0Y2gKICAgCjIwMDMtMDMtMDUgMTg6MjAgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAzLTAzLTA1IDE4OjE4ICByc3RvcnkKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgc25tcGQuOAogICAKMjAwMy0wMy0wNSAxODoxMiAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjM6CgogICB1cGRhdGVzIGZvciA1LjAuOAogICAKMjAwMy0wMy0wNSAxODowNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB0byA1LjAuOAogICAKMjAwMy0wMy0wNSAxNzo1OCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICByZW1vdmUgb2Jzb2xldGUgYXJndW1lbnQ7IGZpeCB0eXBvCiAgIAoyMDAzLTAzLTA1IDE3OjU4ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBleGNsdWRlIGZ0cCBmcm9tIGNvbW1lbnQgY2hlY2s7IHVzZSBlZ3JlcAogICAKMjAwMy0wMy0wNSAxNzo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgY2hnIEMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAzLTAzLTA1IDE3OjUwICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGFyZ2ghIEZyZWVCU0QgaXMgZHJpdmluZyBtZSBjcmF6eSEgIHNldCBSQU5ET009MiBpZiBSQU5ET00gbm90IGRlZmluZWQ7IHVzZSB0ZXN0CiAgIAoyMDAzLTAzLTA1IDE3OjIyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNpbXBsaWZ5IG5ldHN0YXQgYXJncyAmIHR3ZWFrIGdyZXAgcmVnZXggZm9yIG11bHRpIHBsYXRmb3JtIGNvbXBhdGFiaWxpdHkKICAgCjIwMDMtMDMtMDUgMTc6MTEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgY2hlY2sgL2JpbiBhbmQgL3Vzci9iaW4gZm9yIG5ldHN0YXQgKHByb2JhYmx5IGEgZ29vZCBqb2IgZm9yIGNvbmZpZ3VyZSkKICAgCjIwMDMtMDMtMDUgMTc6MDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgbWlzc2VkIG9uZSwgcmU6ICgoICkpIC0+IGV4cHIKICAgCjIwMDMtMDMtMDUgMTY6NTggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgdXNlIG1vcmUgcG9ydGFibGUgZXhwciBpbnN0ZWFkIG9mICAoKCApKSBmb3IgYXJpdGhtZXRpYyBleHByZXNzaW9ucwogICAKMjAwMy0wMy0wNSAxNjoxNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBmb3Igc3lzdGVtcyB3aXRoIC9iaW4vbmV0c3RhdCwgY2hlY2sgdGhhdCBzbm1wZCBwb3J0IGlzIG5vdCBpbiB1c2UuIElmIGl0IGlzLAogICB0cnkgdXAgdG8gdGhyZWUgcmFuZG9tIG90aGVycyBiZWZvcmUgZ2l2aW5nIHVwLgogICAKMjAwMy0wMy0wNSAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItcGFja2FnZToKCiAgIGRvbid0IHByb21wdCBiZXR3ZWVuIHN0ZXBzIGJ5IGRlZmF1bHQKICAgCjIwMDMtMDMtMDUgMTU6MTEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgaW1wb3J0IFNOTVBfU0xFRVAgdGltZSBmcm9tIGVudmlyb25tZW50LCBpZiBhdmFpbGFibGUKICAgCjIwMDMtMDMtMDUgMTU6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRvbid0IHJlZGVmaW5lIGlubGluZQogICAKMjAwMy0wMy0wNSAxNTowOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gNS4wLjgKICAgCjIwMDMtMDMtMDUgMTU6MDcgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIHNvbWUgZmlsZXMgYXV0b2NvbmYgbWF5IGNyZWF0ZQogICAKMjAwMy0wMy0wNSAxMzo0MiAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YgosIGx0bWFpbi5zaCwgY29uZmlndXJlOgoKICAgVXBkYXRlIGxpYnRvb2wgdG8gdmVyc2lvbiAxLjQuMywgZm9yIHRoZSBiZW5lZml0IG9mIERhcndpbgogICAKMjAwMy0wMy0wNSAxMzozOSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIERvbnQgZm9yY2UgLUkvdXNyL2xvY2FsL2luY2x1ZGUgZm9yIC0td2l0aC1kbWFsbG9jCiAgIAoyMDAzLTAzLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICB3cm9uZyB0eXBlIHJldHVybmVkIGZvciBuc01vZHVsZU1vZGVzIGFzIHJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbQogICAKMjAwMy0wMy0wMyAxNTowMyAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTWVudGlvbiB0aGUgQWdlbnRYQWRkcmVzcywgQWdlbnRzUmV0cmllcyBhbmQgQWdlbnRYVGltZW91dCBwYXJhbWV0ZXJzCiAgIAoyMDAzLTAzLTAzIDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIEFkZCBzdXBwb3J0IGZvciBPcGVuQlNEIDMuIFNvcnQgc29tZSBsaW5lcyBmb3IgZWFzaWVyIHJlZmVyZW5jZS4KICAgCjIwMDMtMDMtMDEgMTA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKICAgCjIwMDMtMDMtMDEgMDk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogZG9uJ3QgY3JlYXRlIGRlbGVnYXRlZCBjYWNoZSBmb3IgQ0xFQU5VUFNFVAogICAKMjAwMy0wMi0yOCAyMzo0NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHlwbwogICAKMjAwMy0wMi0yOCAyMzoxMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgUGF0Y2ggIzU5NzYyOSBmcm9tIE1hdHQgU2Vsc2t5IHRvIGZpeCBtYW4gcGFnZSBpbnN0YWxsYXRpb24KICAgCjIwMDMtMDItMjggMTM6MTggIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2Fubm90IGNyZWF0ZSBwaWQgZmlsZQogICAKMjAwMy0wMi0yOCAxMzoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVXNlIEZTIHR5cGVzIHdpdGggTGludXgKICAgCjIwMDMtMDItMjcgMDA6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBzeW5jIHcvbWFpbgogICAKMjAwMy0wMi0yNiAxODo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHN5bmMgdy9tYWluOiBwdXQgaW4gbWlzc2luZyBJTlNUQUxMX0RBVEEKICAgCjIwMDMtMDItMjYgMTg6MDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIEltcGxlbWVudCBzeXNSYXdJbnRlcnJ1cHRzIGFuZCBzeXNSYXdDb250ZXh0IGZvciBTb2xhcmlzCiAgIAoyMDAzLTAyLTI2IDE0OjMwICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBhIEMgcHJlY2VkZW5jZSBib3RjaC11cCwgdGhhbmtzIHRvIEZhYnLniK31gJGL772k9YCRi++9pOatu+KAsmNpbyBMYXMgQ2FzYXMgPEZhYnJpY2lvQGF0YW4uY29tLmJyPgogICAKMjAwMy0wMi0yNiAxNDoxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgSW1wbGVtZW50IHRoZSBzc1Jhd0ludGVycnVwdHMgYW5kIHNzUmF3Q29udGV4dCBjb3VudGVycyBpbiBMaW51eAogICAKMjAwMy0wMi0yNiAxNDoxMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggdGhlIC1TIG9wdGlvbgogICAKMjAwMy0wMi0yNSAxNDozOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGxvZ2ljIG9mIHRlc3Qgb3BlcmF0aW9uCiAgIAoyMDAzLTAyLTI1IDE0OjMzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIHVzZSBBVVRPKENPTkZ8SEVBREVSKSBmcm9tIGNvbmZpZ3VyZSwgaW5zdGVhZCBvZiBoYXJkY29kZWQ7IGRvbid0IHRyeSBhbmQgcnVuCiAgIEFVVE8oQ09ORnxIRUFERVIpIGlmIG5vdCBmb3VuZAogICAKMjAwMy0wMi0yNSAxNDoxMSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogbmV3IGZpbGUKICAgCjIwMDMtMDItMjUgMTQ6MDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoIChjb3JyZWN0bHksIHRoaXMgdGltZSkKICAgCjIwMDMtMDItMjUgMTM6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogYWRkIE5PQVVUT0RFUFMKICAgCjIwMDMtMDItMjUgMTM6MzggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IGFkZCBzbXV4IHRvIGRpc3QgbW9kdWxlczsgbW92ZSBtYWtlIHRlc3QgaW50byBuc2ItbWFrZTsKICAgcmVtb3ZlIHRlZSBzbyByYyBpcyBwcmVzZXJ2ZWQ7IHVzZSBuZXcgTk9BVVRPREVQUwogICAKMjAwMy0wMi0yNSAxMzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFJlY29nbmlzZSAiZGVmVmVyc2lvbiB2MyIgYXMgd2VsbCBhcyAiZGVmVmVyc2lvbiAzIiBhcyBkb2N1bWVudGVkCiAgIGluIHRoZSBtYW4gcGFnZXMgKHByaW9yIHRvIFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb3JyZWN0aW9uKQogICBbV2UgbWlnaHQgYXMgd2VsbCBzdXBwb3J0IGJvdGggc3R5bGVzLi4uLl0KICAgCjIwMDMtMDItMjUgMTM6MjAgIHJzdG9yeQoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBzZWRzY3JpcHQuaW4sCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL21pYjJjLjEuZGVmLAogICBtYW4vcmVhZF9jb25maWcuMy5kZWYsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIG1hbi9zbm1wY29uZi4xLmRlZiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1pYnMvTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IChJIGhvcGUgSSBnb3QgdGhpcyByaWdodCkKICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMjUgMTM6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLSBJcmZhbiBTaGVyaWZmIHBvaW50ZWQgb3V0IGEgYnVnIHdpdGggZ2V0bmV4dCByZXF1ZXN0cyBkaXJlY3RseSB0byBhIGNvbHVtbi4KICAgLSBjaGVjayBlbnRyeSBub2RlIGFzIHN1Z2dlc3RlZCBieSBJcmZhbiBTaGVyaWZmCiAgIAoyMDAzLTAyLTI1IDEzOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUmVtb3ZlIGxhc3QgcmVtYWluaW5nIHVzZSBvZiAnbmxpc3QnIHVuZGVyIEhQLVVYIDEwICYgMTEuCiAgIEFzIHBlciBwYXRjaCAjNjU2NzczIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAzLTAyLTI1IDEzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIENoZWNraW5nIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgYnVmZmVyIG9uY2UgaXMgc3VmZmljaWVudC4KICAgVXNpbmcgJ3N0cm5uY3B5JyBbc2ljXSB0byBjaGVjayB0aGlzIGxlbmd0aCB0d2ljZSBpcyB1bm5lY2Vzc2FyeS4uLgogICAKMjAwMy0wMi0yNSAxMzoxMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtIE1lc3Mgd2l0aCBvdXRwdXQgb2YgZG94eWdlbiB0byBhZGQgc2YgbG9nb3MsIGV0YywgdG8gdGhlIGJvdHRvbSBvZiB0aGUKICAgICBnZW5lcmF0ZWQgaHRtbCBmaWxlcy4KICAgLSBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgbmV0LXNubXAtY29uZmlnIHBhdGNoICgjNjkyMzczKQogICAKMjAwMy0wMi0yNSAxMzoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoICM2NTUxNTQgZnJvbSBKb2VsIFJvc2RhaGw6IG1vcmUgcHJvcGVyIGRlbW9uaXphdGlvbjoKICAgICAtIGNsb3NlIHN0ZGluL3N0ZG91dC9zdGRlcnIgaWYgYXBwcm9wcmlhdGUuCiAgICAgLSBkb3VibGUgZm9yay4KICAgICAtIGNoZGlyIC8gICBbZXhjZXB0IHVuZGVyIHdpbmRvd3NdCiAgIAoyMDAzLTAyLTI1IDEzOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoICM2NjIxNjkgZnJvbSBKYW4gV2lsbGVtIEx1aXRlbjogZGlza2lvIHN1cHBvcnQgZm9yIERhcndpbgogICAKMjAwMy0wMi0yNSAxMzoxMCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgc2V0LnQ6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEZpeCB0ZXN0cyBmb3IgYnVsa3dhbGsgKGR1cGxpY2F0ZSBoZWFkZXIpIGFuZCBzZXQgKGludmFsaWQgT0lEIGNvbnN0YW50KQogICAKMjAwMy0wMi0yNSAxMzowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBBY2NvbW1vZGF0ZSBhIGZ1c3N5IElSSVggZW52aXJvbm1lbnQsIHdoaWNoIGlzIHBpY2t5IGFib3V0IDx1bmlzdGQuaD4KICAgU2VlIGJ1ZyAjNjY3NzI2CiAgIAoyMDAzLTAyLTI1IDEzOjA0ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0yNSAxMzowMiAgcnN0b3J5CgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIGZpeCBteSBkZWNsYXJhdGlvbnMgYXMgcG9pbnRlZCBvdXQgYnkgQW5kcmV3IFBhZ2UKICAgCjIwMDMtMDItMjUgMTM6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBBbiBhZGRpdGlvbmFsIGNoYW5nZSB0byBzdXBwb3J0ICd0JyBoaW50cwogICAKMjAwMy0wMi0yNSAxMzowMCAgcnN0b3J5CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC1kb2N1bWVudCBwYXRjaCAjNjc0MjE4OiByZW9wZW4gbG9nIGZpbGVzIG9uIEhVUC4KICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEyOjU5ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC1kb2N1bWVudCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTI6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoIGZyb20gQ2hyaXN0b3BoZSB0byBzdXBwb3J0IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTI1IDEyOjU1ICByc3RvcnkKCiAgICogRkFROgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBDbGFyaWZ5IHRoZSBsb2NhbC1vbmx5IGFjY2VzcyBmb3Igbm9uLXN0YW5kYXJkIHBvcnQgQWdlbnRYIGNvbm5lY3Rpb25zCiAgIAoyMDAzLTAyLTI1IDEyOjU0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgICAtICBjbG9zZSBhbmQgcmUtb3BlbiBsb2cgZmlsZSBvbiByZWNlaXZpbmcgYSBIVVAgKHBhdGNoIDY3NDIxOCwgc3VibWl0dGVkCiAgICAgICAgYnkgYW5vbnltb3VzKQogICAKMjAwMy0wMi0yNSAxMjo1MiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0yNSAwOTowNCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gY2hhbmdlcy4KICAgKHBhdGNoZXMgIzY5MjM3MiwgIDY5MjM3NywgIDY5MjM3OSBhbmQgNjkyMzg2KQogICAKMjAwMy0wMi0xMyAyMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBQYXRjaCAjNjU0MzI5OiBkb3VibGUgY2hlY2sgbGVuZ3RocyB3aGVuIGNvcHlpbmcKICAgCjIwMDMtMDItMTIgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaDoKCiAgIHVwZGF0ZQogICAKMjAwMy0wMi0xMSAxMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jCjoKCiAgIHBhdGNoICM2Njc2OTQgKGFub24pIHRvIGFkZCBiYWNrIG5ld2xpbmVzIHRvIHBhc3MgY29kZQogICAKMjAwMy0wMi0wMyAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnJvbSBSaWNoYXJkIExhaW5nOiBjaGFuZ2UgdmFsdWUgY2hlY2sgb2YgYSBzdHJpbmcgdG8gdXNlIGEgcHJvcGVyIGxlbmd0aC4KICAgCjIwMDMtMDEtMjQgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzY3MjAyMSBmcm9tIEpvc2h1YSBHaWxlczogbGFyZ2Ugc2V0IHJlcXVlc3QgZml4ZXMKICAgCjIwMDMtMDEtMjAgMjM6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBtaXNzaW5nIGJyYWNlCiAgIAoyMDAzLTAxLTIwIDIzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBiYWNrIChhY2NpZGVudGFsbHkgZGVsZXRlZCkgY3JlYXRpb24gb2YgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTIwIDIzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN0cmluZyB0ZXN0IGNhc2UKICAgCjIwMDMtMDEtMjAgMjM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBhcnJheV9xc29ydDsgZml4IGJpbmFyeSBzZWFyY2g7IGNvbid0IHJlY3Vyc2Ugb24gaW5zZXJ0LCBkZWwsIGV0YyBzaW5jZQogICB0aGUgSU5TRVJUL0RFTEVURSBtYWNyb3MgYWxyZWFkeSBoYW5kbGUgbXVsdGlwbGUgaW5kZXhlcwogICAKMjAwMy0wMS0yMCAyMjo1NCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9mZmljaWFsIHBhdGNoIFsgNjY5NzA3IF0gNS4wLjc6IDE2LUJpdCBSZXF1ZXN0IElEcwogICAKMjAwMy0wMS0yMCAyMjo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtZXNzYWdlOyBhZGQgbmV0c25tcF9jb21wYXJlX21lbQogICAKMjAwMy0wMS0yMCAyMjo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjcmVhdGUgbWQ1c3VtcyBhZnRlciBjcmVhdGluZyBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMjAgMjI6NTEgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBhbm90aGVyIGxldmVsIG9mIGRpcmVjdG9yaWVzIHRvIG1ha2UgZGVwZW5kLCBwZXIgZHRzIG9uIGNvZGVycwogICAodGhvdWdodCB0aGlzIHdhcyBpbiA1LjAuNywgYnV0IGFwcGFyZW50bHkgbm90ISkKICAgCjIwMDMtMDEtMTQgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jCiwgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRveHlnZW4gY2hhbmdlcwogICAKMjAwMy0wMS0xMyAyMTo0OSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEzIDIwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlY29nbml6ZSBuZXcgJ3QnIGNvZGUgaW4gZGlzcGxheSBoaW50cwogICAKMjAwMy0wMS0xMyAyMDowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhdGNoIGZvciBtZW1vcnkgbGVha3Mgc2VudCB0byBjb2RlcnMgYnkgSmF5IFBhcmxhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC42IC0+IFY1LjAuNwoKMjAwMy0wMS0xMSAwMToxNSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgY29uZmlndXJlLXN1bW1hcnkKICAgCjIwMDMtMDEtMTEgMDE6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTAxLTExIDAxOjA4ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB2YXJpYXRpb25zIG9mIGNoYW5nZWxvZy5hZGQKICAgCjIwMDMtMDEtMTAgMjA6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIGRveHlnZW4gb3V0cHV0IHRhZ3MgdG8gcHV0IHRoZSByZWNlbnRseSBkZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIGdyb3Vwcy4KICAgCjIwMDMtMDEtMTAgMjA6MDkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGVzCiAgIAoyMDAzLTAxLTEwIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG9wcHMKICAgCjIwMDMtMDEtMTAgMTc6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGRvdWJsZSBjaGVja2luZyBvdXRwdXQKICAgCjIwMDMtMDEtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCBwb3NpdGlvbmFsIGFyZ3VtZW50cwogICAKMjAwMy0wMS0xMCAwOTowNCAgZHRzMTIKCiAgICogRkFROgoKICAgUmVmZXJlbmNlIEJydWNlIFNoYXcncyBkaXNjdXNzaW9uIG9mIHRoZSBwZXJsIGNvbXBpbGF0aW9uIHByb2JsZW1zCiAgIChzZWUgUkVBRE1FLnNvbGFyaXMpCiAgIAoyMDAzLTAxLTEwIDA4OjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIEFnZW50WCB1bmRlciB3aW5kb3dzLCBhbmQgYmVlZiB1cCB0aGUgcGVybCBzdHVmZiBhIGJpdC4KICAgQWRkIGEgbWlzc2luZyBlbnRyeSBpbiB0aGUgY29udGVudHMgbGlzdC4KICAgKFRoaXMgbWF5IHByb3ZlIHRvbyBsYXRlIGZvciA1LjAuOCwgYnV0IGF0IGxlYXN0IGl0J2xsIGJlIHJlYWR5IGZvciBuZXh0IHRpbWUhKQogICAKMjAwMy0wMS0wOSAxODo0MSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxODozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbW9kZV9lbmRfY2FsbC5oOgoKICAgZW5kLW9mLW1vZGUgaGVscGVyIHRvIGNhbGwgbW9yZSBoYW5kbGVycyBhZnRlciBwcm9jZXNzaW5nIHRoZSBtYWluCiAgIGxpbmUuICBGdW5jdGlvbmFsbHkgYWxsb3dzIHBhcmFsbGVsIGhhbmRsZXIgdHJlZXMgYW5kIGNhbGxiYWNrcyBhZnRlcgogICBhIHBhcnRpY3VsYXIgbW9kZSBpcyBjb21wbGV0ZWQgKHVzZWZ1bCBmb3IgdGhpbmdzIHJlZ2lzdGVyZWQgdW5kZXIgYQogICBzZXJpYWxpemUgaGFuZGxlciB3aGVuIHlvdSBkb24ndCBrbm93IHdoZW4gdGhlIG1vZGUgaXMgb3ZlcikuCiAgICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBwcm9kdWN0aW9uIGNvZGUgeWV0LikuCiAgIAoyMDAzLTAxLTA5IDExOjU1ICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBwZXJsIHNoYXJlZC9zdGF0aWMgbGlicmFyeSBwcm9ibGVtLAogICB0aGUgdW5yZXNwb25zaXZlIGFnZW50IHByb2JsZW0gKGFuZCBmaXgpLCBhbmQKICAgZGlzY2xhaW0gYWxsIGtub3dsZWRnZSBvZiBEYXZpZCBUb3duJ3MgTmV0OjpTTk1QIG1vZHVsZSwKICAgCjIwMDMtMDEtMDkgMTA6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2MHNubXB2MmNidWxrZ2V0LCBUMDIyMHNubXB2M2J1bGtnZXQKOgoKICAgR2V0QnVsayB0ZXN0aW5nIHN1cHBsaWVkIGJ5IFhpYW9mZW5nIExpbmcKICAgCjIwMDMtMDEtMDkgMTA6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBBZGQgLXggZmxhZyBmb3IgY2FsbGluZyBzdWJ0ZXN0cyB3aXRoICJzaCAteCIuCiAgIEZpeCBudW1iZXIgY291bnRpbmcgZm9yIGludGVyYWN0aXZlIG91dHB1dC4KICAgCjIwMDMtMDEtMDcgMTg6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy44KSwgQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCiAgIAoyMDAzLTAxLTA3IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41OCksIEZBUToKCiAgIGlyYyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKICAgCjIwMDMtMDEtMDcgMTE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBidWcgIzY2MzYyOCBhbmQgcGF0Y2g6IGZpeCBpcCBhZGRyZXNzIGluZGV4IHBhcnNpbmcgZnJvbSBPSURzCiAgIAoyMDAzLTAxLTA3IDA0OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IGNvZGUgdG8gZnJlZSAnY2FsbGJhY2tfZGF0YV9rZWVwJyBkYXRhLgogICBUaGlzIGJyYW5jaCB3b3VsZCBuZXZlciBiZSBpbnZva2VkLCBhbmQgaXMgaW4gdGhlIHdyb25nCiAgIHBsYWNlIGFueXdheS4gIFBhdGNoIHN1cHBsaWVkIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMDYgMTE6MTYgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgU29sYXJpcyA5IGhlYWRlcgogICAKMjAwMy0wMS0wNSAxODoxNCAgbmJhCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTc6MjggIG5iYQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIHdpbjMyLm9wdAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNTo0NSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsCiAgIFNOTVAtTVBELU1JQi50eHQsIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dAosIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItVE0udHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb25zCiAgIAoyMDAzLTAxLTAzIDE1OjUwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBjYWxsIEFDX0RJU0FCTEVfU0hBUkVELCBhcyBzZXRzIHRoZSBkZWZhdWx0IHRvIGRpc2FibGVkIChpdCdzIHZlcnkKICAgcHJlc2VuY2UgaW4gY29uZmlndXJlLmluIGdlbmVyYXRlcyBhIGNvbmZpZ3VyZSB3aXRoIHNoYXJlZCBkaXNhYmxlZCwgZXZlbgogICBpZiBpdCB3YXMgaW4gYW4gaWYgYmxvY2s7IGZvciBkZXZlbG9wZXIgZGVmYXVsdCwgc2V0IGVuYWJsZV9zaGFyZWQgZGlyZWN0bHkKICAgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IHNldDsgdGVzdCB0aGF0IGVuYWJsZV9zaGFyZWQ9eWVzIGZvciBlbWJlZGRlZC1wZXJsCiAgIAoyMDAzLTAxLTAzIDA4OjAyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41NyksIEZBUToKCiAgIE1lbnRpb24gdGhlIFN0cmF0dXMgVk9TIHBvcnQuIChUaGFua3MgdG8gQnJhbmRvbiBIYWxsKQogICAKMjAwMy0wMS0wMiAxODowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHBhcmVucyBhcm91bmQgeCBpbiBtYWNybyBpbiBjYXNlIHggaXMgbXVsdGlwbGUgQyB0b2tlbnMKICAgCjIwMDItMTItMjIgMTI6MzIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUyICkKICAgCjIwMDItMTItMjIgMTI6MzEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTIKICAgCjIwMDItMTItMjIgMTI6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTIwIDA3OjU4ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBjbGVhbiBhd2F5IG5ldC1zbm1wLWNvbmZpZyBvbiBtYWtlIGNsZWFuCiAgIAoyMDAyLTEyLTIwIDA3OjU3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzdGFzaCB0aGUgb2lkX3N0YXNoIC4uLgogICAKMjAwMi0xMi0yMCAwNDo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEEgcGF0Y2ggZnJvbSBWNCB0aGF0IGRpZG4ndCBtYWtlIGl0IC4uLiBhbGxvdyBsaXN0IG9mIG51bWVyaWMgYml0cyBzZXR0aW5nIEJJVFMKICAgCjIwMDItMTItMjAgMDI6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBhZGQgYSBnbG9iYWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJlZ2lzdGVyaW5nIGRpcmVjdGx5IHZpYSBhIGNhbGxiYWNrLgogICAKMjAwMi0xMi0yMCAwMjozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGFkZCBjYWxsYmFjay5oCiAgIAoyMDAyLTEyLTIwIDAyOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGVyc2lzdGVudCBzdG9yYWdlIGZpbGUgcmVuYW1pbmcuICAoc25wcmludGYgY2hhbmdlIG1pc3Rha2UpCiAgIAoyMDAyLTEyLTIwIDAyOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc29tZSBuZXcgcm91dGluZXMgZm9yIHNhdmluZyBvaWQgc3Rhc2ggZGF0YSB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIGN1cnJlbnQgcHJvZHVjdGlvbiBjb2RlKQogICAKMjAwMi0xMi0xOSAxNzo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIHdhdGNoIGZvciB1bmRlZnMgcGFzc2VkIGluIGFzIGEgdmFsdWUgdG8gYSBTRVQgY2xhdXNlLgogICAtIGNoYW5nZSBCSVRTIHRvIGEgT2N0ZXQgU3RyaW5nIGFzIGl0IHNob3VsZCBiZS4KICAgICAtIG9uIGEgc2lkZSBub3RlLCBkbyB5b3Uga25vdyB0aGF0IHRoZSBOZXQtU05NUCBwYXJzZXIgZG9lc24ndAogICAgICAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBCSVRTIGFuZCBCSVQgU1RSSU5HIGluIGl0J3MgbGlzdCBvZiB0eXBlcz8gIEkKICAgICAgIGRvbid0IHRoaW5rIGl0J3MgcG9zc2libGUgdG8gdXNlIGJvdGggdHlwZXMgaW4gdGhlIGNvZGUgdG9kYXkKICAgICAgICh3aGljaCBpcyBmaW5lLCBzaW5jZSBCSVQgU1RSSU5HIGlzIG5vdCB1c2VkIGluIFNOTVB2MiBhbmQgYmV5b25kKS4KICAgCjIwMDItMTItMTkgMTc6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHByaW50IGEgd2FybmluZyB3aGVuIHlvdSBjYW4ndCBwYXJzZSBhbiBPSUQgKGVyciwgbm90IGlkZWFsKQogICAKMjAwMi0xMi0xOSAxNzo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gc2tpcCBTRVRpbmcgY29sdW1ucyB3aXRoIG5vIHZhbHVlIHBhc3NlZCBpbi4KICAgCjIwMDItMTItMTkgMTQ6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL2V4YW1wbGUuYywgaG9zdC9ocl9uZXR3b3JrLmMKLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgQmVpbmcgYSBiaXQgcXVpY2ssIGVoLCBEYXZlIC4uLgogICAKMjAwMi0xMi0xOSAxMToxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0yLXBhdGNoZXMuMTIpLCBhdC5jOgoKICAgRW5zdXJlIHRoZSBpZm5hbWUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggdG8gcmVhZCBpbiBhIGZ1bGwtbGVuZ3RoIG5hbWUuCiAgIChGcm9tIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDExOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jCiAgIChWNC0yLXBhdGNoZXMuWzI4LDksMywzLDMwXSksIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jOgoKICAgRGV0ZWN0IHdoZW4gbWVtb3J5IGFsbG9jYXRpb25zIGZhaWwsIGFuZCBkb24ndCBwbG91Z2ggb24gcmVnYXJkbGVzcy4KICAgKEJhc2VkIG9uIGNoYW5nZXMgd2l0aGluIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDEwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi92YWNtLmM6CgogICBUaGUgR3JlYXQgU1VTRSAnc3ByaW50ZicgSHVudC4uLi4uCiAgIAoyMDAyLTEyLTE5IDA2OjAyICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gY29kZSB3aXRoIEJTRGk0CiAgIAoyMDAyLTEyLTE5IDA1OjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGFuZ2UgYSBjb21tZW50IHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUgdHJhbnNwb3J0IHN0dWZmCiAgICAgLSBmaXggc29tZSBwYXJ0aWN1bGFybHkgYmFkIGZvcm1hdHRpbmcgaW4gc25tcF9vcGVuX2V4CiAgIAoyMDAyLTEyLTE4IDEzOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICByZW1vdmUgbWVtLWxlYWsgY29tbWVudC4gIE91dCBvZiBkYXRlIGFuZCB3YXMgZml4ZWQKICAgCjIwMDItMTItMTggMTM6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIGRlbGV0ZSBleHBlcmltZW50YWwgd2FybmluZyBhYm91dCBhZ2VudHgKICAgCjIwMDItMTItMTggMTM6NDAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGZpeCBidWcjNjU1NDg4OiBkZXNjcmlwdGlvbnMgb2Ygc3NJT1Jhd1JlY2VpdmVkIGFuZCBzc1Jhd0ludGVycnVwdHMgd2VyZSByZXZlcnNlZAogICAKMjAwMi0xMi0xOCAwODoxOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc3RkZXJyIGxvZ2dpbmcgb24gSFVQIChpZiAtTCB3YXMgZ2l2ZW4gb24gY29tbWFuZCBsaW5lKQogICAKMjAwMi0xMi0xNyAxOTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSAnOycgZnJvbSBkZWZpbmU7IGlmIHRhYmxlIGhhcyBhIHN0b3JhZ2UgdHlwZSwgY2hlY2sgdGhhdCBpdCdzIG5vdAogICByZWFkIG9ubHkgYmVmb3JlIGFsbG93aW5nIHNldHMKICAgCjIwMDItMTItMTcgMTk6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBuZXZlciBtaW5kCiAgIAoyMDAyLTEyLTE3IDE5OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgRG9uJ3QgY2hlY2sgZm9yIHByZWZpeGVzIGluIHRlc3QuICBUaGV5IGRvbid0IGV4aXN0LiAgSG93ZXZlciwgZG8gc2V0IFNOTVBDT05GUEFUSCBpbiB0ZXN0IGluaXRpYWxpemF0aW9uIHRvIGEgYm9ndXMgdmFsdWUKICAgCjIwMDItMTItMTcgMTg6NTggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkaXJlY3QgY2FsbCB0byBpbml0X3NubXAoKS4gIFRoaXMgaXMgYWxyZWFkeSBjYWxsZWQgYnkgdGhlIC5wbSBmaWxlCiAgIAoyMDAyLTEyLTE3IDEwOjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgcGVyc2lzdGVuY2UgZm9yIGFycmF5LXRhYmxlcwogICAKMjAwMi0xMi0xNyAxMDowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXg7IGFkZCBBU05fVElNRVRJQ0tTIHcvQVNOX1VOU0lHTkVEIGNhc2VzCiAgIAoyMDAyLTEyLTE3IDA5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkb24ndCB1c2UgU09fUkVVU0VfQUREUiBzbyBhZ2VudCBwb3J0IGNhbid0IGJlIGhpamFja2VkCiAgIAoyMDAyLTEyLTE3IDA5OjQzICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIGxvY2FsIHZhciBmb3IgYmFzZSBhZ2VudCBsaWJzOyByZW9yZGVyIGJhc2UgYWdlbnQgbGlicyBzbyBzdGF0aWMgbGlua2luZwogICB3b3JrcwogICAKMjAwMi0xMi0xNiAxODozMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgWWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZyAuLi4KICAgCjIwMDItMTItMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJlbW92ZSBib2d1cyBjb21tZW50IHJlZmVyZW5jZSB0byB0YWJsZV9kYXRhc2V0IGhlbHBlci4KICAgCjIwMDItMTItMTYgMTc6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgYXBwcy9zbm1wdHJhcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgU3ByZWFkIHNvbWUgbWFnaWMgZHVzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5ncyAod2h5IGlzbid0IC0tZW5hYmxlLXNsaWVudC1saWJ0b29sIHRoZSBkZWZhdWx0IC4uLikKICAgCjIwMDItMTItMTYgMTE6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayAocGVlcm5hbWUgaXMgY29waWVkIGJ5IHNubXBfb3Blbl9leCkKICAgCjIwMDItMTItMTYgMTE6MzEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMTE6MTkgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAxMDowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUgKGNhdXNlZCBwcm9ibGVtcyBvbiBTdW4gNS43LCByZXBvcnRlZCBieSBqYnBuKQogICAKMjAwMi0xMi0xNiAwODoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSB3L291dCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDg6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERFVkZMQUdTPSIiIGlmIG5vdCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDI6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogb2lkX3N0YXNoLmMsIHNjYXBpLmMsIHNubXBBQUw1UFZDRG9tYWluLmMKLCBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTYgMDI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBvc3NpYmxlIGxlYWsgb2YgZmQgb24gZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTEyLTE0IDEwOjIyICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTEgKQogICAKMjAwMi0xMi0xNCAxMDoyMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjYgLT4gVjUuMC43cHJlMQoKMjAwMi0xMi0xNCAwOTo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhZ2VudC9taWJncm91cDsgZml4IG1vZHVsZXMgZm9yIGNvbmZpZ19kaXN0CiAgIAoyMDAyLTEyLTE0IDA5OjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA5OjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCByZXYgdG8gNS4wLjcKICAgCjIwMDItMTItMTQgMDk6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtbiB0byBncmVwIGZvciBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDk6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0xNCAwOTo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwOTozMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzIHRvIHNvbWUgc3RydWN0dXJlIG1lbWJlcnMKICAgCjIwMDItMTItMTQgMDk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBlcnJvcnMgZHVyaW5nIGNvbW1pdCB1bmRvIHNob3VsZCBiZSB4eEZBSUxFRDsgdXNlIHNldF9yZXF1ZXN0X2Vycm9yIGluc3RlYWQgb2YKICAgc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgcmVtb3ZlIGluY29ycmVjdCBjb21tZW50OyBtb3JlIGRlYnVnZ2luZzsgY2hlY2sgZm9yCiAgIGFuZCBjYWxsIGxvd2VyIGhhbmRsZXJzCiAgIAoyMDAyLTEyLTE0IDA5OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWx3YXlzIHByb2Nlc3MgbGF0ZXIgcGFzc2VzIG9mIGEgc2V0IHJlcXVlc3QKICAgCjIwMDItMTItMTMgMTY6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTU6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTU6NDAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggaW5jb21wbGV0ZSB6ZXJvaW5nIG9mIHNlY3VyaXR5IGRhdGEKICAgCjIwMDItMTItMTMgMTU6MzkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggYSBwb3NzaWJsZSBmcmVlaW5nIG9mIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAyLTEyLTEzIDE1OjM4ICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDExOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDbGVhciB0aGUgJ3Byb2Nlc3NlZCcgZmxhZyBiZXR3ZWVuIHBhc3Nlcywgc28gdGhhdCBoYW5kbGVycwogICBjYW4gY29ycmVjdGx5IGNsZWFuIHVwIGFmdGVyIGVycm9ycyBoYXZlIGJlZW4gZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTEzIDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZGQgYXNzZXIgdG8gdHJ5IGFuZCBjYXRoIGludGVybWl0dGVudCBjcmFzaCBpJ3ZlIGJlZW4gc2VlaW5nCiAgIAoyMDAyLTEyLTEzIDExOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbG9nIHVua25vd24gYWdlbnR4IG9wZXJhdGlvbgogICAKMjAwMi0xMi0xMyAxMDoxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmIG5vIHJvdyBjcmVhdGUgY2FsbGJhY2sgb24gc2V0LCB1c2UgTk9UV1JJVEFCTEUgaW5zdGVhZCBvZiBOT1NVQ0hJTlNUQU5DRQogICAKMjAwMi0xMi0xMyAxMDowNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgZml4IGN1dC1uLXBhc3RlIHNvIGRlbGVnYXRlZCBmbGFnIGRpc3BsYXllZCBwcm9wZXJseQogICAKMjAwMi0xMi0xMyAxMDowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgbG9nIHRleHQgKEFQUHxMSUJ8VE9LKSBpbnN0ZWFkIG9mIHN0b3JlIGlkIGluIGRlYnVnIG1zZ3MKICAgCjIwMDItMTItMTMgMDk6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgLS13aXRoLWxpYndyYXAKICAgCjIwMDItMTItMTMgMDk6NDkgIHJzdG9yeQoKICAgKiBGQVE6CgogICBncmFtbWFyL2luZGVudGlvbiB0d2VhayArIG1lbnRpb24gc3RyaXAgZm9yIG1lbW9yeSBmb290cHJpbnQgcXVlc3Rpb24KICAgCjIwMDItMTItMTMgMDk6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBleHBsaWNpdCBtZW50aW9uIG9mIFNOTVAgbW9kdWxlIGRvY3VtZW50YXRpb24uCiAgIFRoaXMgc2V0dGluZyBkb2Vzbid0IHNlZW0gdG8gYmUgbmVjZXNzYXJ5LCBhbmQgd2l0aG91dCBpdCwKICAgdGhlIG1hbiBwYWdlIGlzIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5LgogICAKMjAwMi0xMi0xMyAwNzo0NyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgLVMgZG8gdGhlIHNhbWUgYXMgc25tcGQgLVMgKHNldCB0aGUgc3lzbG9nIGZhY2lsaXR5KQogICAgIC0gbWFrZSAtbCBwcmludCBhIHdhcm5pbmcgc2F5aW5nIHRoYXQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgLVMgc2hvdWxkCiAgICAgICBiZSB1c2VkIGluc3RlYWQKICAgCjIwMDItMTItMTMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGluY3JlYXNlIHdpZHRoIG9mIHRva2VuIGZpZWxkIHRvIGltcHJvdmUgbGVnaWJpbGl0eSBvZgogICAgICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgaGVscCBvdXRwdXQKICAgCjIwMDItMTItMTIgMTc6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVua25vd24gLU8gb3B0aW9ucwogICAKMjAwMi0xMi0xMiAxNTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNvbWUgc2l6ZV90IHRoYXQgcmVhbGx5IHNob3VsZCBiZSBpbnQKICAgCjIwMDItMTItMTIgMTQ6MTggIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQSBsb25nIG92ZXJkdWUgcGF0Y2ggKCM0MTUyNTIpIGZyb20gUm9iZXJ0IEhhc3RpbmdzIHRoYXQgaW1wbGVtZW50cwogICByZXZlcnNlIERJU1BMQVktSElOVCBwcm9jZXNzaW5nLCBpLmUuIGl0IGFsbG93cyB5b3UgdG8gaW5wdXQgZGF0YQogICBmb3JtYXR0ZWQgbGlrZSB0aGUgRElTUExBWS1ISU5UIHByZXNjcmliZXMuIEVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0CiAgIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSAtSWggb3B0aW9uIG9yIG5vRGlzcGxheUhpbnQgaW4gc25tcC5jb25mCiAgIAoyMDAyLTEyLTEyIDEzOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBwYXJzZSBvaWRzIGluIHZpZXcgc3RhdGVtZW50cyB0aGUgc2FtZSB3YXkgdGhlIGFwcHMgZG8gaXQgKGNvbnNpc3RlbmN5LCBoZSBzYWlkKQogICAKMjAwMi0xMi0xMiAxMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEFkZCBhIGdldFJvb3RPSUQgZnVuY3Rpb24gdG8gdGhlIHJlZ2luZm8gcG9pbnRlciBwYXNzZWQgaW50byBoYW5kbGVycy4KICAgCjIwMDItMTItMTIgMTM6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjaGFuZ2UgY3JlYXRlIGFuZCBkdXBsaWNhdGUgcm93IHRvIHJldHVybiBzcGVjaWZpYyBjb250ZXh0IGluc3RlYWQgb2YgZ2VuZXJpYwogICBuZXRzbm1wX2luZGV4OyBjYXRjaCBlcnJvciBmcm9tIHBhcnNlX29pZF9pbmRleGVzIG9uIHJvdyBjcmVhdGlvbgogICAKMjAwMi0xMi0xMiAxMzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBQcmludCBlcnJvcnMgdG8gU1RERVJSIGluc3RlYWQuCiAgICAgKGFjdHVhbGx5IGRvbid0IGJlY2F1c2UgdGhlc2Ugc3RhdGVtZW50cyBhcmUgY29tbWVudGVkIG91dCBpbiB0aGUKICAgICBmaXJzdCBwbGFjZSkKICAgCjIwMDItMTItMTIgMTM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZXZlcnNlIHRoZSBjb250ZXh0IG9mIGEgY29udGV4dCBpZiBzdGF0ZW1lbnQgc28gaWYgbm90IHRoZSBjb250ZXh0CiAgIHRoZW4gZG9uJ3QgdXNlIHRoZSBjb250ZXh0IGluIHRoZSBnaXZlbiBjb250ZXh0LgogICAKMjAwMi0xMi0xMiAxMjo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgbG9uZy1kZXByZWNhdGVkIC1xIGFuZCAtUyBvcHRpb25zCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTEyLTEyIDEyOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgbWVzc2FnZSBpbiB1c2FnZQogICAKMjAwMi0xMi0xMiAxMTozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLjEuZGVmLCBhZ2VudC9zbm1wZC5jOgoKICAgSW1wbGVtZW50IGEgY29tbWFuZC1saW5lIG9wdGlvbiAoLVMpIHRvIHNldCB0aGUgZmFjaWxpdHkgdG8gdXNlIHdoZW4KICAgbG9nZ2luZyB2aWEgc3lzbG9nLiAgIEJhc2VkIG9uIGFuIGlkZWEgYnkgSm9lbCBSb3NkYWhsIChQYXRjaCAjNjI3NzAxKQogICBOb3RlIHRoYXQgLWwgYW5kIC1MIGFyZSBhbHJlYWR5IHRha2VuOi0oCiAgIAogICBUb0RvOgogICAgIFByb3ZpZGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGZvciBib3RoIHRoaXMsIGFuZCB0aGUgc3lzbG9nIHRva2VuICgnc25tcGQnKS4KICAgCjIwMDItMTItMTIgMTE6MTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgU3VwcG9ydCBzZXR0aW5nIG9mIHN5c0Rlc2NyIGFuZCBzeXNPYmplY3RJRCB2aWEgc25tcGQuY29uZgogICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgKHRob3VnaCBub3QgdmlhIFNOTVAgU0VUIHJlcWVzdHMpLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzcwMiBhbmQgIzYyODAxMSkKICAgCjIwMDItMTItMTIgMTA6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCB0YWJsZS5jOgoKICAgU3VwcHJlc3Mgc29tZSBjb21waWxlciB3YXJuaW5ncy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMgKCM2NDQwNDEpCiAgIAoyMDAyLTEyLTEyIDEwOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgVXNlICdzeXNjb25mJyB0byByZXBvcnQgb24gU29sYXJpcyBtZW1vcnkgdXNhZ2UuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJlbiBTdGVybiAoIzY1MTE4MikKICAgCjIwMDItMTItMTIgMTA6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJhc2ljIHN1cHBvcnQgZm9yIG11bHRpcGxlIEFnZW50WCBzb2NrZXRzIChvbiB0aGUgbWFzdGVyIHNpZGUgYXQgbGVhc3QpLgogICBTZWUgRmVhdHVyZSBSZXF1ZXN0ICM2MzI1NTYKICAgCjIwMDItMTItMTIgMDg6NTcgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgY3JlYXRlIHZlcnNpb24gdGFnIGZyb20gdmVyc2lvbiBzbyBjdnMgZXhwb3J0IHdvcmtzOyBmaXggUkVMOyBhZGQgdGFyLmd6CiAgIG9mIHNvdXJjZSBhcyBkZXBlbmRlbmN5IGZvciBycG1maWxlcwogICAKMjAwMi0xMi0xMiAwODowNCAgbmJhCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF9lbnVtLmMsIHNubXBfc2VjbW9kLmMsIHNubXBfdHJhbnNwb3J0LmMKOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTEyIDA3OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9jdW1lbnQgdGhlIC1PVSBvcHRpb24sIGFuZCBhbHBoYWJldGlzZSB0aGUgaGFuZGxpbmcgb2Ygb3B0aW9ucy4KICAgCjIwMDItMTItMTIgMDY6MjUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsICdzbm1waW5mb3JtJyBhcyBhIHJlbGF0aXZlIGxpbmssIHJhdGhlciB0aGFuIGFuIGFic29sdXRlIG9uZS4KICAgRml4IHByb3ZpZGVkIGJ5IHRoZSBpbmRlZmF0aWdhYmxlIFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNjUyNTg3KQogICAKMjAwMi0xMi0xMiAwNTo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdW90ZSBjb25maWd1cmUgb3B0aW9ucyB3aGVuIGNvbnRydWN0aW5nIG5ldC1zbm1wLWNvbmZpZ3VyZSBhbmQgbmV0LXNubXAtY29uZmlndXJlLmgKICAgVGhpcyBhbGxvd3Mgb3B0aW9ucyBjb250YWluaW5nIHNwYWNlcywgZXRjLCB0byBiZSBoYW5kbGVkIGNvcnJlY3RseS4KICAgKFNlZSBGZWF0dXJlIFJlcXVlc3QgIzU0NzE1MikKICAgCjIwMDItMTItMTEgMTY6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFBhdGNoIGZvciBGcmVlQlNELiBUaGFua3MgdG8gSnVuIEt1cml5YW1hCiAgIAoyMDAyLTEyLTExIDEyOjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgKFY0LTItcGF0Y2hlcy40KSwgc25tcF9sb2dnaW5nLmM6CgogICBUcnkgZGlzYWJsaW5nIGxpbmUtYnVmZmVyaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcyAoc2luY2UgaXQKICAgYXBwYXJlbnRseSBlbmFibGVzIGZ1bGwtYnVmZmVyaW5nIGluc3RlYWQpLiAgU2VlIEJ1ZyAjNTU4ODM3LgogICAKMjAwMi0xMi0xMSAxMToyNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBnZXQudCwgZ2V0bmV4dC50LAogICBub3RpZnkudCwgc2V0LnQ6CgogICBFeHBsaWNpdGx5IHNldCBTTk1QIHZlcnNpb24gPSAxICh0aGUgb3JpZ2luYWwgZGVmYXVsdCBhcyBleHBlY3RlZCBieSB0aGUgdGVzdHMpCiAgIFRoaXMgc2hvdWxkIG5vdyBwYXNzIGFsbCB0ZXN0cyBhcGFydCBmcm9tIGNvbmYudCAjMwogICAKMjAwMi0xMi0xMSAwNjo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0Lmg6CgogICBCZSBtb3JlIHNlbGVjdGl2ZSBpbiB1c2luZyB0aGUgNjQtYml0IHZlcnNpb24gb2Ygbmxpc3QuIChCdWcgIzYxMTY1NSkKICAgCjIwMDItMTItMTEgMDY6MjcgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbm9uLWZ1bmN0aW9uYWxpdHkgb2Ygb25lIG9mIHRoZSBzdWdnZXN0ZWQgYXBwcm9hY2hlcy4KICAgKEJ1ZyAjNjE3MTE5KS4gICBSZXBvcnRlZCBieSBRdWFuYWggR2lic29uLU1vdW50CiAgIAoyMDAyLTEyLTExIDA2OjIwICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIHRoZQogICBlbWJlZGRlZCBwZXJsIHNjcmlwdC4gIChCdWcgIzYxNzg5MSkgRml4IHByb3ZpZGVkIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAyLTEyLTExIDA1OjU2ICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzIChWNC0yLXBhdGNoZXMuNCksIFJFQURNRS5zbm1wdjM6CgogICBEb2N1bWVudCB0aGUgbG9jYXRpb24gYXNzdW1wdGlvbnMgYmVpbmcgbWFkZSBpbiB0aGlzIGRlc2NyaXB0aW9uLgogICAKMjAwMi0xMi0xMSAwNDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGZvcmNpbmcgc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgaW4gZWl0aGVyCiAgIEFTQ0lJIG9yIEhleCBmb3JtYXQsIGJ5cGFzc2luZyB0aGUgImd1ZXNzIiBtZWNoYW5pc20gYXMgdG8gd2hpY2gKICAgaXMgbW9yZSBhcHByb3ByaWF0ZS4gICBTdWdnZXN0ZWQgYnkgTmljayBLYW5ha2Frb3JuLgogICAgIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGFmZmVjdCBvYmplY3RzIHdpdGggYSBEaXNwbGF5LUhpbnQgaW4KICAgdGhlaXIgTUlCIGRlZmluaXRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjMwICBkdHMxMgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gKICAgKFY0LTItcGF0Y2hlcy5bMiwyNiw2XSksIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ29tbWFuZC1saW5lIG9wdGlvbiB0byBjb250cm9sIHdoZXRoZXIgdG8gdW5saW5rIHRoZSBQSUQgZmlsZSBvciBub3QuCiAgIE5lY2Vzc2FyeSBmb3IgY29ycmVjdCB0ZXN0IG9wZXJhdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6MjEgIGR0czEyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBUaGUgbGF0ZXN0IGxpYnJhcnkgZGVmYXVsdHMgdG8gTU9EVUxFOjpuYW1lIHN0eWxlIG91dHB1dCwKICAgc28gYWRqdXN0IHRoZSBleHBlY3RlZCBvdXRwdXQgY2hlY2tzIGFjY29yZGluZ2x5LgogICBBbHNvLCB0aGVyZSBhcmUgYWN0dWFsbHkgMzYgdGVzdHMsIG5vdCAzNSEKICAgCjIwMDItMTItMTEgMDQ6MTcgIGR0czEyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIEluaXRpYWxpc2UgdGhlIFNOTVAgbGlicmFyaWVzLCB0byBzZXQgdXAgdGhlIE9JRCB0cmVlLgogICBBZGRyZXNzZXMgYnVncyAjNjM4MDI0IGFuZCAjNjI3NjQzCiAgICAgW1FuOiBEbyB3ZSBuZWVkIHRvIHN1cHBseSBhbiAnYXBwbmFtZScgKGMuZCB0aGUgU05NUCBtb2R1bGUpID9dCiAgIAoyMDAyLTEyLTEwIDE5OjI5ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBBbGxvdyBydW50aW1lIGNvbmZpZ3VyYXRpb24gb2YgcGVyc2lzdGVudCBkaXJlY3RvcnkKICAgCjIwMDItMTItMTAgMTk6MjQgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXBvcnQgZXJyb3JzIGhhbmRsaW5nIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcwogICAKMjAwMi0xMi0xMCAxOToyMyAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQYXNzIHVwIGVycm9yIG9uIGRpcmVjdG9yeSBjcmVhdGlvbgogICAKMjAwMi0xMi0xMCAxNzoyNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCZXR0ZXIgcmVzcGVjdCBmb3IgdGhlIG1heCB3aWR0aCBvcHRpb24gKHNubXB0cmFuc2xhdGUgLVRkKQogICAKMjAwMi0xMi0xMCAxNzoyNiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgb2lkT3V0cHV0Rm9ybWF0IG9wdGlvbgogICAKMjAwMi0xMi0xMCAxNzoyNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDbGVhbiB1cC4gUmVtb3ZlIGNhbGxzIHRvIG9ic29sZXRlIGZ1bmN0aW9ucyBzbm1wX3NldF9xdWlja19wcmludCwKICAgc25tcF9nZXRfZHVtcF9wYWNrZXQsIHNubXBfZ2V0X3N1ZmZpeF9vbmx5LiBSZW1vdmUgbGFzdCB0cmFjZXMgb2YgdGhlCiAgIG5vbl9zZXF1ZW50aWFsIGJhY2t3YXJkcyBoYWNrLiBNYWtlIHN1cmUgaXQgd29ya3MgZm9yIGFsbCAtTyBvcHRpb25zLgogICAKMjAwMi0xMi0xMCAxMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yNiksCiAgIGludGVyZmFjZXMuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBlbXB0eSBsaW5lcyBpbiAvcHJvYy9uZXQvZGV2ICAoQnVnICM2MjU0MjYpCiAgIAoyMDAyLTEyLTEwIDExOjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcHYzLmM6CgogICBGcmVlIGRlc3RpbmF0aW9uIG1lbW9yeSBiZWZvcmUgY2xvbmluZyBTTk1QIEVuZ2luZSBJRC4KICAgRml4IHByb3ZpZGVkIGJ5IE1hcnRpbiBDYXJsc3Nvbi4gIChCdWcgIzgzNTQ4MSkKICAgCjIwMDItMTItMTAgMTE6MDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgQWRkICIkQ29uZmlne2NjZmxhZ3N9IiB0byBDQ0ZMQUdTLiAgIChTZWUgYnVnICM2NDA4OTkpCiAgIAoyMDAyLTEyLTEwIDEwOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNC0yLXBhdGNoZXMuOCksIGlwQWRkci5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIExpbnV4IHZpcnR1YWwgaW50ZXJmYWNlcyBpbiB0aGUgaXBBZGRyZXNzVGFibGUuCiAgIChOb3RlIHRoaXMgZG9lcyAqbm90KiBpbmNsdWRlIHNlcGFyYXRlIHBlci12LWludGVyZmFjZSBzdGF0aXN0aWNzCiAgICBpbiB0aGUgaW50ZXJmYWNlcyB0YWJsZSkuCiAgIAogICBQYXRjaCBzdXBwbGllZCBieSBKZW5zIFNpdHRuZXIgKCM2MjEyNzQpCiAgIAoyMDAyLTEyLTEwIDA0OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgZXh0cmFuZW91cyBeTSBjaGFyYWN0ZXJzLgogICAKMjAwMi0xMi0xMCAwMjozNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGVuIHVzaW5nIC1PcXYgYW5kIHByaW50aW5nIGFuIGVtcHR5IHN0cmluZyB5b3UgY291bGQgZW5kIHVwIHdpdGgKICAgYSBOVUxMIHN0cmluZyBhbmQgbm90IGFuIGVtcHR5IHN0cmluZyBsZWFkaW5nIHRvIHNvbWUgdmVyeSBvYnNjdXJlCiAgIHByb2JsZW1zIGluIHNubXB0YWJsZSBhbmQgb3RoZXIgYXBwbGljYXRpb25zLgogICAKMjAwMi0xMi0wOSAxMToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSGFuZGxlIG1pc3NpbmcgaW50ZWdlciB2YWx1ZXMgKHdoZXRoZXIgMzItIG9yIDY0LWJpdCEpLiAgIE9vcHMhCiAgIAoyMDAyLTEyLTA5IDEwOjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjM4KSwgc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBpbnRlZ2VyLWJhc2VkIHZhbHVlcyBjb3JyZWN0bHkgb24gYSA2NC1iaXQgcGxhdGZvcm0uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRob21hcyBXZWJlciAoIzU2MTA3MSkKICAgCjIwMDItMTItMDkgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFRha2Ugbm90ZSBvZiBzdWJhZ2VudC1yZXF1ZXN0ZWQgYnl0ZSBvcmRlcmluZyBpbiBzdWJzZXF1ZW50IGNvbW11bmljYXRpb25zLgogICBQYXRjaCBzdXBwbGllZCBieSBVcmJhbiAoIzYzMjI4NCkKICAgCjIwMDItMTItMDkgMDk6MzIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjI1KSwgc25tcGQuYzoKCiAgIFJlbW92ZSB0aGUgUElEIGZpbGUgb24gYWdlbnQgc2h1dGRvd24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5OSkKICAgCjIwMDItMTItMDkgMDk6MjUgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBIYW5kbGUgJ3N0cnVjdCBzb2NrYWRkcicgdGhhdCBjb250YWluICdzYV9sZW4nIGZpZWxkcyBkaWZmZXJlbnRseQogICB0byB0aG9zZSB0aGF0IGRvbid0IChjLmYgaWZpbHRlcl9pb2N0bC5jIGluIEJJTkQgOS4yLjEgc291cmNlcykKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk2KQogICAKMjAwMi0xMi0wOSAwNzoxMiAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWNvZ25pc2UgQlNEaTQsIGFuZCB0d2VhayB0aGUgcmVjb2duaXRpb24gb2YgJ2Rsb3BlbicuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsLgogICAKMjAwMi0xMi0wOSAwNjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKOgoKICAgUmVtb3ZlIHNvbWUgd2FybmluZ3MsIGFuZCB0cnkgdG8gY29wZSB3aXRoICdzeXNjdGwnIGZhaWx1cmVzLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zLgogICAKMjAwMi0xMi0wOSAwNDoyMCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBsaW1pdGF0aW9ucyBvbiAvdXNyL3VjYi9zZWQsCiAgIGFuZCBwb2ludCBwZW9wbGUgdG93YXJkcyAvdXNyL2Jpbi9zZWQgaW5zdGVhZC4KICAgCjIwMDItMTItMDcgMDg6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgSW5zZXJ0IG5ld2x5LWNyZWF0ZWQgcm93cyBpbnRvIHRoZSBwZXItcmVxdWVzdCBsaXN0cywgc28gdGhhdCBsb3dlcgogICBsZXZlbCBoYW5kbGVycyBjYW4gYWNjZXNzIHRoZW0uCiAgICAgW1FuOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIHNpbWlsYXIgd2l0aCB1cGRhdGVkIGxpc3RzIGFzIHdlbGw/XQogICAKMjAwMi0xMi0wNyAwODozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZXBvcnQgYmFjayB0aGUgY29ycmVjdCBlcnJvciBmb3Igcm93cyB0aGF0IGNvdWxkbid0IGJlIGNyZWF0ZWQuCiAgIAoyMDAyLTEyLTA3IDA4OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGEgcm93IHRoYXQgbmV2ZXIgZ290IGNyZWF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgogICAKMjAwMi0xMi0wNiAxODowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgU2tpcCBvbiBub24tb3BlbnNzbCBtYWNoaW5lcy4gIFRIaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8ganVzdCBub3QgdXNpbmcgZW5jcnlwdGlvbiBvbiB0aG9zZSBtYWNoaW5lcywgYnV0IEkgZG8gbm90IGhhdmUgdGhlIHRpbWUgYXQgdGhlIG1vbWVudAogICAKMjAwMi0xMi0wNiAxMzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEzOjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTI6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgZGVsZXRlIHRoZSAib2xkIiAobm9uLWV4aXN0ZW50KSByb3csIHdoZW4gdGlkeWluZyB1cCBhZnRlcgogICBjcmVhdGluZyBhIG5ldyByb3cuCiAgIAoyMDAyLTEyLTA2IDExOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFR3ZWFrIGhhbmRsaW5nIG9mIChpbnZhbGlkKSBSb3dTdGF0dXMgY3JlYXRpb24gcmVxdWVzdHMgaW4gYW4KICAgImF1dG9tYXRpYyBjcmVhdGlvbiIgdGFibGUuICAgVGhlc2Ugc2hvdWxkIHJldHVybiB3cm9uZ1ZhbHVlIG9yCiAgIGluY29uc2lzdGVudFZhbHVlLCByYXRoZXIgdGhhbiBub3RXcml0YWJsZS4KICAgCjIwMDItMTItMDUgMDU6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3VwcG9ydCB1c2Ugb2YgUm93U3RhdHVzIG9iamVjdCB0byBjb250cm9sIGNyZWF0aW9uIG9mIG5ldyByb3dzCiAgIChpLmUuIHdoZW4gdGhlICdhbGxvd19jcmVhdGlvbicgZmxhZyBpcyBub3Qgc2V0KS4KICAgVGhpcyBzaG91bGQgZGVhbCB3aXRoIGV2ZXJ5dGhpbmcgZXhjZXB0IGRldGVybWluaW5nIHdoZXRoZXIgYQogICByb3cgaXMgcmVhZHkgdG8gZ28gJ2FjdGl2ZScgKGUuZy4gdmlhICdjcmVhdGVBbmRHbycpLiAgU3VjaCBhCiAgIGRlY2lzaW9uIGlzIGluaGVyZW50bHkgc3BlY2lmaWMgdG8gZWFjaCBpbmRpdmlkdWFsIE1JQiwgc28gbXVzdAogICByZWFsbHkgYmUgZG9uZSBpbiB0aGUgbG93ZXItbGV2ZWwgaGFuZGxlci4KICAgCjIwMDItMTItMDUgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3RvcCBwcm9jZXNzaW5nIHdoZW4gYSAnbm9uLXdyaXRhYmxlIGNyZWF0ZScgaXMgZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTA0IDE5OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgLSBydW4gZXZlbnRUYWJsZSBlbnRyaWVzLgogICAKMjAwMi0xMi0wNCAxOTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jOgoKICAgQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAKMjAwMi0xMi0wNCAxOTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYzoKCiAgIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCB0byBnZXQgcmVhbCBzdHJpbmdzIGZyb20gbWliIGRhdGEuCiAgIAoyMDAyLTEyLTA0IDE5OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKLCBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaDoKCiAgIC0gaW1wbGVtZW50ZWQgdGhlIG10ZUV2ZW50VGFibGUgYW5kIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlCiAgICAgLSBGWUksIHRvdGFsIGltcGxlbWVudGF0aW9uIHRpbWU6IGFib3V0IDQgaG91cnMKICAgICAtIG5vIGVhc3ktdG8tdXNlIC5jb25mIHdyYXBwZXJzIHlldCB0aG91Z2guICBzbm1wc2V0IHN1cHBvcnQgb25seS4KICAgCjIwMDItMTItMDQgMTk6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICAtIHVzZSB0aGUgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24gd2hpY2ggYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTEyLTA0IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGNyZWF0ZSBhIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uLgogICAtIEFsbG93IHJvdyBjcmVhdGlvbiB1c2luZyByb3dTdGF0dXMgd2hlbiB0aGUgZGF0YSBjb2x1bW4gZXhpc3RzLCBidXQKICAgICB0aGVyZSBpcyBubyBhc3NpZ25lZCB2YWx1ZSAoaWUsIGlzIE5VTEwpLgogICAtIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCBpbnN0ZWFkIG9mIG1lbWR1cCB0byBtYWtlIHN1cmUgYW4KICAgICBpbXBsaWNpdCBOVUxMIGlzIGluIHBsYWNlIGZvciB0aGluZ3MgdGhhdCB1c2UgdGhlIGRhdGEgYW5kIG5lZWQgaXQKICAgICBhcyBhIHJlYWwgc3RyaW5nLgogICAKMjAwMi0xMi0wNCAxOToyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZG9jdW1lbnQgLS1wcmVmaXgKICAgCjIwMDItMTItMDQgMTM6MTYgIGhhcmRha2VyCgogICAqIE5FV1MgKFY0LTItcGF0Y2hlcy45KSwgTkVXUzoKCiAgIGRvY3VtZW50IDQuMi42CiAgIAoyMDAyLTEyLTAzIDA0OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBDbG9zZSBwcmludGVyIGZpbGUgaGFuZGxlIHdpdGggJ2ZjbG9zZScgcmF0aGVyIHRoYW4gJ3BjbG9zZScgdG8gYXZvaWQKICAgYSBtZW1vcnkgbGVhayBvbiBTb2xhcmlzIDIuNi4gICBGaXggcHJvdmlkZWQgYnkgSmFjb2JvIE1hdHV0ZS4KICAgCjIwMDItMTItMDMgMDQ6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIFRyYW5zbGF0ZSBHZXROZXh0IChhbmQgR2V0QnVsaykgcmVxdWVzdHMgaW50byBzaW1wbGUgR2V0IHJlcXVlc3RzLAogICB3aGVuIHBhc3NpbmcgdGhlbSBmcm9tIHRoZSB0YWJsZV9kYXRhIGhhbmRsZXIgdG8gdGFibGVfZGF0YXNldC4KICAgICBUaGlzIGlzIGFuYWxvZ291cyB0byBob3cgdGhlIGl0ZXJhdGUgaGFuZGxlciB3b3JrcywgYW5kIGFsbG93cwogICBsb3dlciBsZXZlbCBoYW5kbGVycyB0byBvdmVycmlkZSB0aGUgYmFzaWMgYmVoYXZpb3VyICh3aXRob3V0CiAgIGhhdmluZyB0byBkdXBsaWNhdGUgYWxsIG9mIHRoZSAiZmluZCBuZXh0IHJvdyIgY29kZSBldmVyeSB0aW1lKS4KICAgCjIwMDItMTItMDIgMDQ6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHVybiBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gdGhlIFNOTVB2MSAnbm9TdWNoTmFtZScgZXJyb3IuCiAgIFRoaXMgdXNlZCB0byBicmVhayBBZ2VudFggc3ViYWdlbnRzLCBidXQgdGhlIGxhdGVzdCBjaGFuZ2UgdG8gc25tcF9hZ2VudC5jCiAgICh0byBjYXRjaCBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zKSBzZWVtcyB0byBoYXZlIGZpeGVkIHRoYXQgcHJvYmxlbS4KICAgCjIwMDItMTItMDIgMDQ6NDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGxpY2l0bHkgcGFyZW50aGVzaXNlIGEgY29tcGFyaXNvbiwgdG8ga2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuCiAgIAoyMDAyLTEyLTAyIDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdXNpdmUtcmFuZ2UgR2V0TmV4dCByZXF1ZXN0cyBhcmUgdHJhbnNtaXR0ZWQgYXMgR2V0IHJlcXVlc3RzLCBzbyBtYXkKICAgd2VsbCByZXR1cm4gbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucy4gIENhdGNoIHRoZXNlIGFzIHdlbGwuCiAgIAoyMDAyLTEyLTAyIDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENhdGNoIChhbmQgcmVqZWN0KSBhdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgcm93IHZpYSBhIG5vbi13cml0YWJsZSBvYmplY3QuCiAgIAoyMDAyLTExLTI4IDA0OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBOdWxsIG91dCBvbmUgZmluYWwgbG9vcF9jb250ZXh0IHBvaW50ZXIgYWZ0ZXIgYmVpbmcgZnJlZWQuCiAgIChQYXRjaCBwcm92aWRlZCBieSBSb2dlciBNY0NhbG1hbikKICAgCjIwMDItMTEtMjYgMTc6NTkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEaXNjYXJkIHRoZSBzZWNvbmRhcnkgKEdST1VQKSBERVNDUklQVElPTiBpbnNpemUgYSBNT0RVTEUtQ09NUExJQU5DRQogICB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gVGhhbmtzIHRvIEV1Z2VuZV9CcnVrQGJtYy5jb20KICAgCjIwMDItMTEtMjYgMTc6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFJlaW5zdGF0ZSB0aGUgLXcgb3B0aW9ucyB0aGF0IHdhcyBsb3N0IGluIHRoZSBpbmRlbnQgZnVyeQogICAKMjAwMi0xMS0yNiAxMDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBUaGUgbm90aWZpY2F0aW9uIHZhcmlhYmxlIHNob3VsZG4ndCBiZSBzdGF0aWMuICBBIGJ1ZyBmb3VuZCB3aGlsZQogICB0cmFja2luZyBkb3duIGEgcHJvYmxlbSBwb2ludGVkIG91dCBieSBWZW5pY2Ugb24gSVJDLgogICAKMjAwMi0xMS0yNiAwNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBpbmNvcnJlY3QgdXNhZ2Ugb2YgU0VfTUFYX0lEUyB2cyBTRV9NQVhfU1VCSURTLgogICBSZXBvcnRlZCBieSAnc2hpbmVwZWFrJwogICAKMjAwMi0xMS0yNSAyMjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBoYWNrIG9mIGEgaGFjayBvZiBhIGhhY2ssIG9yOiBmaXggbXVsdGktbGluZSBGQVEgcXVlc3Rpb25zCiAgIAoyMDAyLTExLTI1IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDItMTEtMTggMjE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgYXBwbGllZCBwYXRjaCAjNTI3NjUwCiAgIAoyMDAyLTExLTExIDE3OjEwICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlc3BlY3QgdGhlIG1pYmRpcnMgY29uZiBkaXJlY3RpdmUuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0xMSAxNjo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGEgbWlzc2luZyBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMTEgMTQ6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIGZpeCB0YWRkciBnZW5lcmF0aW9uL3BhcnNpbmcgZm9yIHBvcnQgYmFzZWQgdHJhbnNwb3J0cyB0byBwcm9wZXJseSB1c2UKICAgbmV0d29yayBieXRlIG9yZGVyaW5nLgogICAKMjAwMi0xMS0xMSAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGZpeCB3cml0ZSBzdXBwb3J0IGZvciB0aGUgdGltZW91dCBjb2x1bW4KICAgCjIwMDItMTEtMDkgMTA6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgRG8gYXdheSB3aXRoIGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTEtMDkgMDk6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLCBob3N0L2hyX3ByaW50LmMKOgoKICAgWmVybyBpcyBhbiBPSyBmaWxlIGRlc2NyaXB0b3IuIC0xIGlzIHRoZSBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMDkgMDk6NTQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgTW9yZSB0byB0aGUgcG9pbnQgbWVzc2FnZSBmb3IgdW5kZWZpbmVkIGlkZW50aWZpZXJzLiBCcm91Z2h0IGZvcndhcmQgZnJvbSA0LjIKICAgCjIwMDItMTEtMDkgMDk6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBQcmludCB0aGUgZXJyb3IgaW5mb3JtYXRpb24gaW4gY2FzZSBvZiBlcnJvcgogICAKMjAwMi0xMS0wOSAwOTo1MSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB2MiBleGNlcHRpb24gcmVzdWx0cwogICAKMjAwMi0xMS0wOSAwOTo0OSAgbmJhCgogICAqIHNlZHNjcmlwdC5pbiwgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm90ZWN0IFBSRUZJWCB3aGVuIGl0IGlzIHRoZSBlbnYgdmFyLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMDkgMDk6NDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgUkZDIDMzNzEgTDJUUC1NSUIKICAgCjIwMDItMTEtMDkgMDk6NDYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgZnJvbSBJQU5BCiAgIAoyMDAyLTExLTA3IDA1OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IC1DZiBhbmQgLUN3IG9wdGlvbiBwcm9jZXNzaW5nIChwcmV2aW91c2x5IHdvdWxkIGNvcmUgZHVtcCBpZgogICAgICAgbm8gb3B0aW9uIHBhc3NlZCksIGFzIHBvaW50ZWQgb3V0IGJ5IGhhbXBhIG9uICNuZXQtc25tcAogICAKMjAwMi0xMS0wNiAxNTozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBjdXQvcGFzdGUKICAgCjIwMDItMTEtMDYgMTU6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluICYgbWFrZWZpbGVzCiAgIAoyMDAyLTExLTA2IDE0OjA4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG1pc3NpbmcgZW5kIHF1b3RlCiAgIAoyMDAyLTExLTA2IDEzOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIEBERVZGTEFHU0Agd2VoZXJ2ZXIgdGhlcmUgaXMgYSBAQ0ZMQUdTQCwgZXhjZXB0IGZvciB0aGUgbmV3IC0tYmFzZS1jZmxhZ3MKICAgCjIwMDItMTEtMDYgMTM6MjIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBhZGQgQERFVkZMQUdTQCB0byBDRkxBR1MKICAgCjIwMDItMTEtMDYgMTM6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBzZXBlcmF0ZSBkZXZlbG9wZXIgY2ZsYWdzIGZyb20gbm9ybWFsIGNmbGFncwogICAKMjAwMi0xMS0wNiAxMjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGNoYW5nZSBzdHJ1Y3QuaCBpbmNsdWRlIHRvIHVzZSAiIiBpbnN0ZWFkIG9mIDxuZXQtc25tcC8+LCBzaW5jZSBpdCBpdCBhIGxvY2FsCiAgIGluY2x1ZGUsIG5vdCBhIHN5c3RlbSBpbmNsdWRlCiAgIAoyMDAyLTExLTA2IDEyOjM5ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBwdXJnZSBJTl9VQ0RfU05NUF9TT1VSQ0UKICAgCjIwMDItMTEtMDUgMTI6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgYWRkZWQgYSB4bWxzaG9ydCBkZWxpbWl0ZXIgYXMgcmVxdWVzdGVkIGJ5IGxhbmRzIG9uIElSQwogICAKMjAwMi0xMS0wNSAxMTo1OSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB0YWJzIC0+IHNwYWNlcyBvbmx5IHRyeSB0byBjaG1vZCBSTyBzcmMgZGlyIGlmIG93bmVyIG9mIGRpcnMKICAgCjIwMDItMTEtMDUgMTE6NTYgIHJzdG9yeQoKICAgKiBta2luc3RhbGxkaXJzOgoKICAgbWFraW5nIGEgZGlyZWN0b3J5IGlzIG5vdCBhbiBlcnJvciwgc28gZG9uJ3Qgc2VuZCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAyLTExLTA0IDExOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBhbGxvdyB1bnJlZ2lzdGVyZWQgc2VjdXJpdHkgbW9kZWxzIDw9IDIKICAgCjIwMDItMTEtMDQgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gdG8gYmUgYmV0dGVyIHN1cHBvcnRlZCAocm93c3RhdHVzIG5vIGxvbmdlciBoYXMgdG8KICAgYmUgZmlyc3QgaW4gdGhlIGxpc3QsIC4uLikKICAgCjIwMDItMTEtMDQgMTE6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjcHBmbGFncyB0byAtLWNmbGFncwogICAKMjAwMi0xMS0wNCAxMToxMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZCBzdHVmZiBmb3IgNS4wLjcgKG9yIHdoYXRldmVyKSBtZW50aW9uaW5nIGEgZmV3IG5ldyBmZWF0dXJlcy4KICAgCjIwMDItMTEtMDEgMTI6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIGJ1ZyAjNjMyMDk0IHVzaW5nIHRoZSBzdWdnZXN0ZWQgbWV0aG9kOiB3YXRjaCBmb3IgTlVMTCBzdHJlcnJvcigpIHJldHVybgogICAKMjAwMi0xMS0wMSAxMDowOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdW5kbyBteSBjaGFuZ2VzIGZyb20gciA1LjE3LCBhdHRlbXB0aW5nIHRvIHJlZHVjZSBydW5zIG9mIGNvbmZpZy5zdGF0dXMKICAgYnkgdXNpbmcgZXhwbGljaXQgcGF0aHMgdG8gc3JjZGlyLCBhbmQgbGV0IFZQQVRIIGRvIGl0J3MgdGhpbmcKICAgCjIwMDItMTAtMjkgMTQ6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdGFyZ2V0IHRvIGJ1aWxkIGJpbmFyeSBhcnJheSB0ZXN0IGFwcDsgdHdlYWsgdG8gcGFyc2UgdGVzdCB0YXJnZXQgKHJlZHVjZXMgbW9zdAogICBidXQgbm90IGFsbCBleHRlcm5hbCByZWZlcmVuY2VzKQogICAKMjAwMi0xMC0yOSAxNDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGZvciBiaW5hcnkgc2VhcmNoIHByb2JsZW0gbm90ZWQgYnkgUm9teSBDaHJpc3RlbnNlbiBvbiBjb2RlcnM7IHBhcnRpYWwKICAgKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBhIGJpbmFyeSBhcnJheSBpdGVyYXRvcgogICAKMjAwMi0xMC0yOSAxNDoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIHNpbXBsZSB0ZXN0IHByb2dyYW0gZm9yIGJpbmFyeSBhcnJheQogICAKMjAwMi0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggZGVidWdnaW5nIGFzIG5vdGVkIGluIGJ1ZyAjNjMwMzQ4CiAgIAoyMDAyLTEwLTI4IDE5OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgLjEuNi4zIHRvIDEuMy42IGFzIG5vdGVkIGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgCjIwMDItMTAtMjggMTU6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZWQgcGFzc3dvcmQKICAgCjIwMDItMTAtMjggMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIG1pc2MgdmFjbSBmaXhlcwogICAKMjAwMi0xMC0yOCAwODo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIGVycm9uZW91cyBmcmVlKCkgb2YgcnhidWYKICAgCjIwMDItMTAtMjUgMTI6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeGVkIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCAtPiBORVRTTk1QX09QX0NBTExCQUNLX0RJU0NPTk5FQ1QgYXMgbm90ZWQgYnkgVHJvZ0wgb24gSVJDCiAgIAoyMDAyLTEwLTI1IDA3OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGEgTkVUU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHR5cGUgY2FsbGJhY2sgaWYgd2UKICAgICAgIGRlY2lkZSB0byBzaHV0ZG93biBhIHN0cmVhbSB0eXBlIGNvbm5lY3Rpb24gYmVjYXVzZSB3ZSByZWNlaXZlZAogICAgICAgYW4gZXhjZXNzaXZlbHkgbGFyZ2UgcGFja2V0LgogICAKMjAwMi0xMC0yNCAxMDo0MSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIHN1cGVyLWJ1Zy1wYXRjaCBnZW5lcmF0b3IgU3RlZmFuIFJhZG1hbiB0byB0aGUgVEhBTktTIGxpc3QKICAgCjIwMDItMTAtMjQgMTA6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJ1ZyAjNjE3NTA4OiBhZGRlZCB0aGUgbXRhX3NlbmRtYWlsIG1vZHVsZSB0byAtLWhlbHAKICAgCjIwMDItMTAtMjQgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgdXBkYXRlIGluc3RhbGwgbGlzdCBmb3IgbWliMmMgY29uZiBmaWxlcyBhbmQgcmVtb3ZlIG9sZCBvbmUKICAgCjIwMDItMTAtMjMgMjA6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGluY29ycmVjdCB2YXJpYWJsZSBuYW1lIEkgbm90aWNlZCB3aGVuIGNvcHlpbmcgdG8gYSBkaWZmZXJlbnQgY29uZmlndXJlIHNjcmlwdCBpbiBhbm90aGVyIHBhY2thZ2UKICAgCjIwMDItMTAtMjMgMjA6MjggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4ZWQgYnVnIzYxNzgzODogdmVyc2lvbnRhZyBpc24ndCBkaXN0cmlidXRlZCBhbmQgc2hvdWxkbid0IGJlIGFsd2F5cwogICB1c2VkIGluIHRoZSBtYWtlIGRpc3RjbGVhbiBjYWxscy4KICAgCjIwMDItMTAtMjMgMjA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGluY29uc2VxdWVuY2lhbCBtZW1vcnkgbGVha3MgZml4ZWQgKGluaXQgdGltZSBsZWFrcykuCiAgIAoyMDAyLTEwLTIzIDIwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBGaXhlZCB2YXJpb3VzIG1lbW9yeSBsZWFrcyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgYXMgcG9pbnRlZCBvdXQgYnkKICAgUm9nZXIgTWNDYWxtYW4gYW5kIEpheSBQYXJsYXIgb24gdGhlIC1jb2RlcnMgbGlzdCAoaW5jbHVkaW5nIHRoZWlyIHBhdGNoZXMpCiAgIAoyMDAyLTEwLTIzIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzbm1wTm90aWZ5VGFibGUuYwogICAKMjAwMi0xMC0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZnJlZSBhIHByZXZpb3VzbHkgbWFsbG9jZWQgcG9pbnRlciB0byB0aGUgd2F0Y2ggdmFyaWFibGUgYmVmb3JlIHJlcGxhY2luZyBpdC4KICAgCjIwMDItMTAtMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdW51c2VkIG1hbGxvYy4KICAgCjIwMDItMTAtMjEgMTI6NDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgICAtIGFkZCBzeXN0ZW0gZmlsZSBmb3IgU29sYXJpcyA5CiAgIAoyMDAyLTEwLTE3IDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIE9wdGltaXplZCB0aGUgVkFDTSBjaGVja3MgaW4gdGhlIGNhc2Ugb2YgZ2V0bmV4dC9nZXRidWxrIHNvIHRoYXQgd2hlbgogICBsYXJnZSBwb3J0aW9ucyBvZiB0aGUgbWliIHRyZWUgYXJlIGV4Y2x1ZGVkLCB0aGUgc3ViLW1pYiBhY2Nlc3MgY29kZQogICB3b24ndCBiZSBjYWxsZWQgYXQgYWxsIChmaW5hbGx5IGltcGxlbWVudGluZyBhIHZlcnkgbG9uZyBuZWVkZWQgb3B0aW1pemF0aW9uKS4KICAgCjIwMDItMTAtMTcgMjI6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvbW1vbmFsaXR5IGJldHdlZW4gdHdvIG9pZHM6IG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4CiAgIAoyMDAyLTEwLTE3IDIyOjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQcmludCBvdXQgYSAic3VtbWFyeSIgYXQgdGhlIGVuZCBvZiBhIHJ1bgogICAKMjAwMi0xMC0xNyAwNTo0MCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUHJvcGVybHkgdGVybWluYXRlIGEgbG9vcCBjb25zdHJ1Y3QgKG1pc3NpbmcgJ0BlbmRAJykKICAgU3BvdHRlZCBieSBLYXJsIENvb3Blci4gICAgT29wcyEKICAgCjIwMDItMTAtMTYgMTc6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBjb250aW51ZSBhZnRlciBFSU5UUiBjYXVzZWQgYnkgc2lnbmFsIHdlIGhhbmRsZWQgKGluc3RlYWQgb2YgZmFsbGluZwogICB0aG9yb3VnaCB0byBleGl0ISkKICAgCjIwMDItMTAtMTYgMTc6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hlY2sgZm9yIG91ciBzaWduYWwgZmxhZ3Mgb24gRUlOVFIsIGFuZCBvbmx5IHJlbGVzZWN0IGlmIG5vdCBjaGFuZ2VkOwogICBkZWJ1ZyBtc2cgd2hlbiBzaWduYWxzIHJlZ2lzdGVyZWQgYW5kIGZvciBzZWxlY3QvZmRzZXRzOwogICAKMjAwMi0xMC0xNiAxNTo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG1vdmUgQ1BQRkxBR1MgYmVmb3JlIHVzZXIgY29uZmlndXJlIENGTEFHUy4uIHNvIGlmIGEgdXNlciBhZGRzIHNvbWV0aGluZwogICBsaWtlIC91c3IvbG9jYWwvaW5jbHVkZSB0byBDRkxBR1MsIHdlIHdpbGwgcGljayB1cCBvdXIgbG9jYWwgaW5jbHVkZXMgZmlyc3QsCiAgIGluc3RlYWQgb2YgaW5jbHVkZXMgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuLgogICAKMjAwMi0xMC0xNiAwMDowNiAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmgKOgoKICAgbWFrZSBzdXJlIHNubXB0cmFwZCBhbHdheXMgaG9ub3JzIERTX0FQUF9OVU1FUklDX0lQIGZvciBsb2dnaW5nCiAgIAoyMDAyLTEwLTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldHNubXBfZ2V0X2Jvb2xlYW4gLT4gbmV0c25tcF9kc19nZXRfYm9vbGVhbgogICAKMjAwMi0xMC0xNSAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBjb25zdGFudCB1c2VkIGluIGFzc2VydCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAyLTEwLTE1IDE0OjA3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgaW5jbHVkZSBzeXNsb2cgZm9yIGxpYndyYXAgbG9nIGxldmVscwogICAKMjAwMi0xMC0xNSAxMDozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGQgeWV0IGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTE0IDExOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGZpeCBpcHY2IHRyYW5zcG9ydCBhZGRyZXNzIHNwZWNzCiAgIAoyMDAyLTEwLTExIDE5OjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuY211LCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZW1vdmUgdGhlIFJFQURNRS5jbXUgZmlsZSAoZW50aXJlbHkgb3V0IG9mIGRhdGUgYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTEwLTExIDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzYwMDkzMyBmcm9tIERvbmFsIERpYW1vbmQ6IGRza1BlcmNlbnROb2RlIGZvciBGcmVlQlNENAogICAKMjAwMi0xMC0xMSAxNjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1OTgyODAgZnJvbSBKZWZmIFdhdHNvbjogbWFrZSAtT1Egbm90IHByaW50IHR5cGUgd2FybmluZ3MuCiAgIAoyMDAyLTEwLTExIDE2OjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IGluY2x1ZGUgZGlyZWN0b3J5CiAgIAoyMDAyLTEwLTExIDE2OjQyICBoYXJkYWtlcgoKICAgKiBkaXN0Ly5jdnNpZ25vcmU6CgogICBpZ25vcmUgcnBtIHN1YmRpcgogICAKMjAwMi0xMC0xMSAxNjozMiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJldHRlciBkb2NzIGFib3V0IGF1dG8tZXh0cmFjdGVkIFNGIG5ld3MKICAgCjIwMDItMTAtMTEgMTY6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvOiBNYWtlZmlsZSwgbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGluIHBhdGNoICM1OTg4Njk6IE1hcmsgSGFyaWcncyBiZXR0ZXIgcnBtIHN0dWZmCiAgIAoyMDAyLTEwLTExIDE1OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIEFsdGVybmF0aXZlIHRvIGEgcGF0Y2ggc3VnZ2VzdGlvbjogYWRkIC1PVSB0byBub3QgcHJpbnQgVU5JVFMgc3VmZml4ZXMuCiAgIAoyMDAyLTEwLTExIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIC4uL2FnZW50L3NubXBfYWdlbnQuYwogICAKMjAwMi0xMC0xMSAxNToxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGRvbnRQcmludFVuaXRzCiAgIAoyMDAyLTEwLTExIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCAjNjE3MTUxIGZyb20gQW5kcmV3IFJ1Y2tlciBKb25lczogZml4IGxpYndyYXAgaGVhZGVycy4KICAgICAtIEknbSBzdGlsbCB1bmhhcHB5IHdpdGggaG93IGxpYndyYXAgZnVuY3Rpb25zLi4uICBuZWVkcyB0aGlua2luZyBhYm91dC4KICAgCjIwMDItMTAtMTEgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzMxMjY5NCBmcm9tIEpvaG4gU3VydmV5b3I6IGZpeCBkaXNraW8gb24gc29sYXJpcy4KICAgCjIwMDItMTAtMTEgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBBcHBsaWVkIHBhdGNoICM2MjEzOTggZnJvbSBNYXR0aGV3IEtyZW56ZXIgdG8gZml4IGxpbnV4IGFycCB0YWJsZS4KICAgCjIwMDItMTAtMTEgMDk6NDcgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBjaGcgbmV0c25tcG1pYnMgLT4gbmV0c25tcG1pYnNza2QgKG5vdGVkIG9uIGNvZGVycyBieSBKZWQgV2hpdHRlbikKICAgCjIwMDItMTAtMTEgMDk6NDUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gbm90ZSBzcXVhcmUgYnJhY2tldHMgZm9yIElQdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTExIDA5OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzZWxlY3QoKSBtb3JlIHF1aWNrbHkgaWYgYW4gRUlOVFIgaGFwcGVucwogICAKMjAwMi0xMC0xMSAwMTo1MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYXBwbGllZCBIYXJyaWUncyBwYXRjaCBkZXNjcmliaW5nIGxvdyBtZW1vcnkgZm9vdHByaW50cwogICAKMjAwMi0xMC0xMCAxMTozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBIb3JzdGVpbiB0byBmaXggS1NNIG1vZHVsZQogICAKMjAwMi0xMC0xMCAwNjoyMiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAgIC0gcmVtb3ZlIGJhZCBpbmxpbmVzIHdoaWNoIGNhdXNlIGZpbGUgbm90IHRvIGNvbXBpbGUgd2l0aCBTdW4gQ0MuCiAgICAgICBTZWUgYnVnICM2MjA4MjcuCiAgIAoyMDAyLTEwLTEwIDAyOjAzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgLmxhIGZpbGVzCiAgIAoyMDAyLTEwLTEwIDAyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtYWtlIHRoZSAuc3BlYyBmaWxlIGFsbW9zdCB1c2FibGUuCiAgIAoyMDAyLTEwLTA4IDE4OjU1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBGQVEgdXBkYXRlcyBmb3IgZG93bmxvYWQgc2l0ZXMuCiAgIAoyMDAyLTEwLTA4IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBQYXRjaCBmcm9tIEpvc2h1YSBLZXJvZXMgZm9yIHN0cmluZyBjb21wYXJpc29ucwogICAKMjAwMi0xMC0wNyAxMzo1NyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBzdGF0ZW1lbnQgYWJvdXQgdGhlIENPUFlJTkcgZmlsZSAoc3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMTAtMDYgMTQ6MzIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgbnNiLSogbGlrZXMgZnVsbCBwYXRocywgdXBkYXRlIGV4YW1wbGVzOyBmaXggc291cmNlZm9yZ2UgdXBsb2FkIHNpdGUKICAgCjIwMDItMTAtMDUgMTc6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jCiwgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNiApCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC41IC0+IFY1LjAuNgoKMjAwMi0xMC0wNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEwLTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIGlsbGVnYWwgZmxhZyBmcm9tIG5zYi1jb25maWcKICAgCjIwMDItMTAtMDUgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IGFsbG9jYXRlIDAgYnl0ZXMKICAgCjIwMDItMTAtMDUgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgcmVmZXJlbmNlIHB0ciBhZnRlciBpcyBoYXMgYmVlbiBmcmVlJ2QuCiAgIAoyMDAyLTEwLTA0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggc2Vjb25kYXJ5IGVmZmVjdCBvZiBidWcgNjEzOTgzIGFuZCByZWFsbHkgZml4IGl0IHRoaXMgdGltZS4KICAgCjIwMDItMTAtMDIgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5jIChWNC0yLXBhdGNoZXMuMiksIHR1bm5lbC5jCjoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc29tZSBjb2RpbmcgZXJyb3JzCiAgIAoyMDAyLTEwLTAxIDA3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBvZmZpY2FsIHBhdGNoIDYxNzA0OTogaW5pdGlhbGl6ZSBjb250YWluZXIgbGlzdCBlYXJsaWVyIChpbiBpbml0X2FnZW50KQogICAKMjAwMi0xMC0wMSAwNzozNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMgKGRhbW4gd2luZG93cyBlZGl0b3JzKQogICAKMjAwMi0wOS0zMCAxNToxNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNSApCiAgIAoyMDAyLTA5LTMwIDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBpbmZvIG9uIG1kNXN1bXMgYW5kIGdwZyBzaWduaW5nCiAgIAoyMDAyLTA5LTMwIDE1OjE1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBjaG1vZCB0byBkbyB3aGF0IEkgd2FudGVkLCBub3Qgd2hhdCBJIHRvbGQgaXQKICAgCjIwMDItMDktMzAgMTU6MTQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE1ha2VmaWxlLnRvcCwgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjUKICAgCjIwMDItMDktMzAgMTQ6MjcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICBtZXJnZSBwcmUgY2hhbmdlcyBpbnRvIDUuMC40IGNvbW1lbnRzCiAgIAoyMDAyLTA5LTMwIDE0OjI1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBORVdTIHVwZGF0ZXMgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjMgLT4gVjUuMC41CgoyMDAyLTA5LTMwIDE2OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBsZW4gYSBzaXplX3QgdG8gZml4IHByb2JsZW0gb24gNjQgYml0IHN5c3RlbSwgcmVwb3J0ZWQgYnkgc2Vibm9kYCBpbiBJUkMKICAgCjIwMDItMDktMzAgMTY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RhdGljIGxvY2FsIHZhcnMsIGFzIHRoZXkgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcyB3aXRoIHRocmVhZHMKICAgCjIwMDItMDktMzAgMTU6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBzdXJlIGluc3RhbGwgZGlyIGlzIHJlbGF0aXZlIHRvIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0zMCAxNToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZwogICAKMjAwMi0wOS0zMCAxNToxOSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwogICAKMjAwMi0wOS0zMCAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGF2b2lkIGluZmluaXRlIGxvb3AKICAgCjIwMDItMDktMzAgMTQ6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBhc3N1bWUgbWFrZSBpcyBHTlUgbWFrZSwgYW5kIHNlYXJjaCBmb3IgaXQuIHJlcXVpcmUgdXNlciB0byBzZXQgYW4KICAgZW52IHZhciBpZiBubyBHTlUgbWFrZSBpcyBmb3VuZCBpbiBQQVRICiAgIAoyMDAyLTA5LTMwIDE0OjU4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGlmIENWUyBkaXIgaXMgcm8sIGF1dG9tYWdpY2FsbHkgbWFrZSBpdCBydyBiZWZvcmUgdXBkYXRlIGFuZCBybyBhZnRlciB1cGRhdGUKICAgCjIwMDItMDktMjcgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1ha2UgZ2V0X3NldF9jYWNoZSgpIHJldHVybiBhbiBlcnJvciBpZiBubyBwcmV2aW91cyBTRVQgaGFzIGJlZW4gc3RhcnRlZC4KICAgCjIwMDItMDktMjcgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkb3VibGUgY2hlY2sgYWdhaW5zdCBzb21lIG51bGwgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0gaW4gdGhlIGNhY2hlIGNvZGUuCiAgIAoyMDAyLTA5LTI3IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgdHJlZWNhY2hlX251bSB0byAtMSBhdCBpbml0IG9mIG1lbW9yeSwgdG8gYmUgZXh0cmEgc2FmZS4KICAgCjIwMDItMDktMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgbW92ZSBsaWJ3cmFwIHZhcmlhYmxlcwogICAKMjAwMi0wOS0yNiAxNDo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG9rLCByZW1vdmUgdGNwd3JhcHBlcnMgdmFycwogICAKMjAwMi0wOS0yNiAxMzo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGRlZmluZSBzdHVwaWQgdmFyaWFibGVzIG5lZWRlZCBieSB0Y3B3cmFwcGVycyBiZWNhdXNlIHRoZXkgZG9uJ3QgZ2V0CiAgIGNvbmNlcHRzIG9mIGVuY2Fwc3VsYXRpb24uICBhcmcuCiAgIAoyMDAyLTA5LTI2IDExOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgY2hhbmdlIGNhbGxfcHYgdG8gcGVybF9jYWxsX3B2IGZvciBvbGRlciB2ZXJzaW9ucyBvZiBwZXJsLgogICAKMjAwMi0wOS0yNiAxMToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJ1biBzdHJkdXAoKSBvbiBnZXRfbWliX2RpcigpIHJlc3VsdHMgdG8gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBFdWdlbmUgQnJ1ay4KICAgCjIwMDItMDktMjMgMTM6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtZW50aW9uIGZyZXNobWVhdAogICAKMjAwMi0wOS0yMyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gaW1wbGVtZW50IGEgKGxvbmcgbmVlZGVkKSBzZXR0YWJsZSB2YXJpYWJsZSB0byBzdG9yZSB0aGUgY3VycmVudAogICAgIHBlcnNpc3RlbnQgaW5mb3JtYXRpb24uCiAgIAoyMDAyLTA5LTIzIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG1ha2Ugbm90IGluIHRpbWUgd2luZG93IHJlcG9ydHMgdHJpZ2dlciBhIHJlc2VuZCBvZiBpbmZvcm1zLgogICAgIChzdWdnZXN0aW9uIGZyb20gRXJpayBBbmdnYXJkKQogICAKMjAwMi0wOS0yMCAxMToyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgZnVuY3Rpb25zIHZhY21fcGFyc2Vfc2VjdXJpdHkgYW5kIHZhY21fZnJlZV9zZWN1cml0eSB3aGljaAogICAgICAgZG9uJ3QgZXhpc3QKICAgCjIwMDItMDktMTkgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHN1cHBvcnQgYWdlbnQgc2h1dGRvd25zICh3ZWxsLCBvayBpdCdzIGp1c3QgYW4gYXBpIHNpbmNlIGl0IGRvZXNuJ3Qgd29yaykuCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIAoyMDAyLTA5LTE5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMsIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgZml4IGFnZW50IHJlcXVlc3RfaW5mb1B0ciBwcm9ibGVtcy4KICAgCjIwMDItMDktMTkgMTI6MDQgIGR0czEyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3A6CgogICBDb21waWxlIGFuZCBsaW5rIHdpdGggJ2dldG9wdC5jJyBleHBsaWNpdGx5LgogICAKICAgVGhpcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSwgYnV0IGZvciBzb21lIHJlYXNvbgogICAodGhhdCBjb21wbGV0ZWx5IGVzY2FwZXMgbWUhKSwgdXNpbmcgY29tbWFuZC1saW5lIG9wdGlvbnMKICAgKHN1Y2ggYXMgLUlSKSB3aXRoIHRoZSBSZWxlYXNlIHZlcnNpb24gb2Ygc25tcHRyYW5zbGF0ZQogICBjYXVzZXMgYSBydW4tdGltZSBETEwgZXJyb3IuICAoVGhlIERlYnVnIHZlcnNpb24gaXMgZmluZSkuCiAgIFRoZSBvdGhlciBhcHBsaWNhdGlvbnMgc2VlbSB0byBiZSBPSyAtIHRoaXMgcHJvYmxlbSBvbmx5CiAgIHNlZW1zIHRvIGhpdCBzbm1wdHJhbnNsYXRlLiAgU28gYXMgYSBzdGlja2luZy1wbGFzdGVyLAogICBjb21waWxpaW5nIGdldG9wdC5jIGluIGFzIHBhcnQgb2YgdGhlIHByb2plY3QsIGtlZXBzIGJvdGgKICAgdmVyc2lvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIGhhcHB5LgogICAgIFNvbWVvbmUgd2l0aCBiZXR0ZXIgV2luZG93cyBrbm93bGVkZ2UgdGhhbiBtZSBuZWVkcyB0bwogICBsb29rIGF0IHRoaXMgYW5kIGZpeCBpdCBwcm9wZXJseS4KICAgCjIwMDItMDktMTkgMDY6MTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gdW5kbyB3b3JzdCBvZiBpbmRlbnQgZGFtYWdlCiAgIAoyMDAyLTA5LTE5IDA2OjAzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBfZHBhcnNlIGZ1bmN0aW9ucyAod2hpY2ggZG9uJ3QgZXhpc3QpCiAgIAoyMDAyLTA5LTE4IDEwOjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXNldCBTTk1QX1NMRUVQIGFmdGVyIGxvb3AKICAgCjIwMDItMDktMTggMTA6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHJlbW92ZSB2ZXJ5IG9ic29sZXRlIChhbmQgbm90IHVzZWQgYW55d2hlcmUpICNkZWZpbml0aW9ucyBvZgogICAgICAgUEFSVFlfTUlCX0JBU0UgYW5kIENPTlRFWFRfTUlCX0JBU0UKICAgCjIwMDItMDktMTggMDI6NTkgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB0d2VhayBmb3IgNS4wLjQgbGFzdCBtaW51dGUgdXBkYXRlCiAgIAoyMDAyLTA5LTE4IDAyOjQ4ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgY2hnID4gdG8gLWd0IHRvIGFjaGlldmUgaW50ZW5kZWQgcmVzdWx0CiAgIAoyMDAyLTA5LTE4IDAxOjM5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTggMDE6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQgKQogICAKMjAwMi0wOS0xOCAwMTozMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTggMDA6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAkKHNyY2RpcikgdG8gYSBmZXcgZGVwZW5kZW5jaWVzIHRvIHRyeSBhbmQgcmVkdWNlIHRoZSAjIG9mIHRpbWVzIHRoYXQKICAgY29uZmlnLnN0YXR1cyBpcyBydW4gd2hlbiBidWlsZGluZyBvdXRzaWRlIHRoZSBzcmMgZGlyCiAgIAoyMDAyLTA5LTE4IDAwOjU0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdmlzdWFsbHkgcHJvdm9jYXRpdmUgc2VjdGlvbiBoZWFkZXJzOyBhZGQgcmVjZW50IHN0YXR1cyAoYWxsIGJhZCBuZXdzKTsKICAgbm90IHRvIHVzZSBuZXcgd2luMzJzZGsuZHN3IHRvIGdldCBhZGRpdG9uYWwgZnVuY3Rpb25hbGl0eSB3aXRoIHBsYXRmb3JtIHNkazsKICAgcmVtb3ZlIGluZm8gb24gcmVtb3ZpbmcgYWdlbnR4LCBhcyBpdCdzIGJlZW4gYXJvdW5kIG5vdyBmb3IgYSB3aGlsZTsgYWRkCiAgIHNlY3Rpb24gb24gd2hhdCBmaWxlcyB0byBlZGl0IHRvIGFkZCBtaWIyYyBnZW5lcmF0ZWQgY29kZSB0byBhZ2VudDsgcmVtb3ZlCiAgIHJlZmVyZW5jZSB0byBzcGVjaWZpYyByZWxlYXNlIG51bWJlciBpbiBleGFtcGxlCiAgIAoyMDAyLTA5LTE4IDAwOjI1ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgdGFrZSAnc2RrJyBvdXQgb2YgZXhlIG5hbWUKICAgCjIwMDItMDktMTggMDA6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzd2FwIHNubXBkc2RrIGZvciBzbm1wZAogICAKMjAwMi0wOS0xOCAwMDoxNCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBnZXQgYWxsIG91ciBkdWNrcyBpbiBhIHJvdzogYWRkIGFkdmFwaTMyLmxpYiB0byBsaW5rIGxpbmVzLCBtYWtlIHN1cmUgYWxsCiAgIFJlbGVhc2UgYW5kIERlYnVnIGxpYnMvYXBwcyBhcmUgY29tcGlsZSB3aXRoIHNhbWUgQysrIHNldHRpbmdzCiAgIAoyMDAyLTA5LTE4IDAwOjEyICByc3RvcnkKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgcmVtb3ZlIHNkayBkZXBlbmRlbnQgbW9kdWxlcwogICAKMjAwMi0wOS0xOCAwMDoxMCAgcnN0b3J5CgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGdyb3VwIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gd2luMzIgc2RrIHRvZ2V0aGVyLCB3aXRoIGlmZGVmCiAgIAoyMDAyLTA5LTE4IDAwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBubyBjYWxsYmFjayBmb3Igd2luMzIgdW50aWwgcGlwZSBmZCBwcm9ibGVtIGlzIGZpeGVkCiAgIAoyMDAyLTA5LTE4IDAwOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG5ldyB2ZXJzaW9ucyBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE4IDAwOjA1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgbmV3IHdvcmtzcGFjZSBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1pYiBtb2R1bGUgbG9hZGluZyBmaXhlcyBieSBjYWxsaW5nIGluaXRfc25tcCBmaXJzdAogICAKMjAwMi0wOS0xMyAxNTowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBleGFtcGxlIG5zYi1jb25maWcgY29tbWFuZDsgYWRkIC1iIGJhY2sgdG8gY3ZzMmNsLCBvdGhlcndpc2UgeW91CiAgIGdldCBjaGFuZ2Vsb2cgbXNncyBmcm9tIG90aGVyIGJyYW5jaGVzIGFuZCBoYXZlIHRvIHdlZWQgdGhlbSBvdXQKICAgCjIwMDItMDktMTMgMTI6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBmaXggaWxsZWdhbCBvaWRzIHRvIG5vdCByZXR1cm4gYSBwb2ludGVyLgogICAKMjAwMi0wOS0xMyAxMDo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBtaW5vciBvcHRpbWlzYXRpb247IHdlIGRvbid0IG5lZWQgYSB6ZXJvLXRlcm1pbmF0ZWQgY29tbXVuaXR5CiAgICAgICBzdHJpbmcgZXhjZXB0IGZvciBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMi0wOS0xMyAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGRlZCAtaSBvcHRpb24gdG8gcmVxdWVzdCBpbmRlbnQgbm90IGJlIHJ1bgogICAKMjAwMi0wOS0xMyAxMDowNiAgamJwbgoKICAgKiBDT1BZSU5HOgoKICAgICAtIGFkZCBtaXNzaW5nIHZlcmIgaW4gaW50cm9kdWN0aW9uCiAgIAoyMDAyLTA5LTEyIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHByb3RlY3QgY2FsbGluZyBzb21lIFN2SVYgZGVyZWZlcmVuY2UgZnVuY3Rpb25zIGlmIGl0J3Mgbm90IGFuIElWLgogICAgIC0gZWxpbWluYXRlcyB0aGUgcmVtYWluaW5nIHBlcmwgd2FybmluZ3MuCiAgIAoyMDAyLTA5LTEyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbmNsdWRlIGxkZmxhZ3Mgd2hlcmUgYXBwcm9wcmlhdGUgKC0tbGlicywgLS1hZ2VudC1saWJzLCAuLi4pCiAgIAoyMDAyLTA5LTEyIDAxOjQ4ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIGFkZC91c2UgbmV3IG9wdGlvbiB0byByZW1vdmUgYnVpbGQgZGlyIGFmdGVyIHN1Y2Nlc3NmdWwgYnVpbGQKICAgCjIwMDItMDktMTIgMDE6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwcmludCBidWlsZCBkaXIKICAgCjIwMDItMDktMTIgMDE6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtdWNoIG1vcmUgY29tcGxleCB0ZXN0cyBvZiBVU00gdXNlciBjcmVhdGlvbi9tb2RpZmljYXRpb24uCiAgIAoyMDAyLTA5LTEyIDAxOjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAwMXNubXB2MWdldCwKICAgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0cy9UMDA0c25tcHYxbm9zdWNoOgoKICAgLSBzdXBwb3J0IGZvciBtdWx0aXBsZSB0ZXN0cyBhdCBvbmNlLgogICAtIG1lcmdlIHYxIHRlc3RzIGludG8gYSBzaW5nbGUgKGZhc3RlcikgdGVzdC4KICAgCjIwMDItMDktMTIgMDA6MzQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBtb25rZXkgYXJvdW5kIHdpdGggcmV0dXJuaW5nIGVycm9yIGNvZGVzLCBqdXN0IGV4aXQ7IG1vcmUgcmVnZXhwIHR3ZWFrcwogICAKMjAwMi0wOS0xMSAxOTozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSB1c2Ugc3ViLXNlY29uZCBzbGVlcHMgaWYgYXZhaWxhYmxlCiAgIC0gc2xlZXAgMSAoc3ViLSlzZWNvbmQgYXQgYSB0aW1lIHdoZW4gd2FpdGluZyBmb3IgcGFydGljdWxhciB0ZXN0cwogICAgIHJhdGhlciB0aGFuIHRoZSBmdWxsIFNOTVBfU0xFRVAgZHVyYXRpb24uCiAgIAoyMDAyLTA5LTExIDE5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgdXNlIHNubXBfbG9nIGluc3RlYWQgb2YgcHJpbnRmIGZvciBzaHV0ZG93biBtZXNzYWdlLgogICAKMjAwMi0wOS0xMSAxODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzc2luZyB2YXJpYWJsZSBkZWNsIHBvaW50ZWQgb3V0IGJ5IGlyYzpkZgogICAKMjAwMi0wOS0xMCAxNjoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cHMgJiBlcnJvciBtZXNzYWdlcwogICAKMjAwMi0wOS0xMCAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSB5b3VyIGZyaWVuZCE7IGZpeCBlbWJlZGVkIGNvbW1lbnRzOyBmaXggbm9uLXZvaWQKICAgZnVuY3Rpb25zIHcvbm8gcnRuIHZhbHVlczsgY29kZSByZW9yZyB0byBmaXggZW1hY3MgaW5kZW50IGNvbXBsYWludHMKICAgCjIwMDItMDktMTAgMTU6MjYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIHRhcmdldHMgdG8gaGVscCBuaWdodGx5IGJ1aWxkIHNjcmlwdCBkZXRlcm1pbmUKICAgaWYgYSBtYWtlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKICAgCjIwMDItMDktMTAgMTU6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2Vha3MgZm9yIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkczsgYWQgbnNiLWFib3J0LCBuc2ItZmxvdzsKICAgZGlyZWN0IHNvbWUgbWVzc2FnZXMgdG8gc3RkZXJyOyB1c2UgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgbWFrZSB0YXJnZXRzOwogICB1cGRhdGUgZXJyb3IgZ3JlcCB0byBpbmNsdWRlICcqKionOyBjaGVjayBmb3IgbmV3IHZhbHVlIHRvIHJtIC1mUiBidWlsZCBkaXIKICAgCjIwMDItMDktMTAgMTU6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzCiAgIAoyMDAyLTA5LTEwIDE1OjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGFkZCBvcHRpb24gdG8gcm0gLWZSIGJ1aWxkIGRpciBhdCBzdGFydDsgY2hlY2sgc2NyaXAgcGF0aCBmb3IgbnNiLWZ1bmN0aW9uczsKICAgcHJlZml4IGRlZmF1bHQgYnVpbGQgZGlyIHcvdmVyc2lvbjsgZXhpdCB3L3JjIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA5LTEwIDE1OjA1ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1wbGF0Zm9ybToKCiAgIGFkZCBjdXJyZW50IHBhdGggdG8gc2NyaXB0IHRvIG5zYi1mdW5jdGlvbiBzZWFyY2ggcGF0aAogICAKMjAwMi0wOS0wOSAwOToyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBKYXJlZCBTbWl0aC1NaWNrZWxzb24gKGJ1ZyAjNjA1MTQ3KQogICAgICAgd2hlcmVieSBwYXNzaW5nIGFuIHVua25vd24gdHlwZSBjaGFyYWN0ZXIgdG8gc25tcF9hZGRfdmFyIHdvdWxkCiAgICAgICBjYXVzZSBhIHNlZ2ZhdWx0LgogICAKMjAwMi0wOS0wOSAwOTowOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIHZhbHVlIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDItMDktMDkgMDk6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ3VycmVudCBoZWFkZXIgdXBkYXRlIHBhdGNoIGZvciBuZXRic2QgZnJvbSBQYXRyaWNrIFdlbGNoZS4KICAgCjIwMDItMDktMDYgMTg6MzAgIGRyaWVodWlzCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1hcmsgdGhlIG5vbi1yYXcgdmFyaWFudHMgb2Ygb2JqZWN0cyB0aGF0IGFyZSBhY2Nlc3NhYmxlIGFzIHJhdyBjb3VudGVycwogICBhcyBkZXByZWNhdGVkLCB0byAoaG9wZWZ1bGx5ISkgY3V0IGRvd24gb24gdGhlIG51bWJlciBvZiB1c2VycyB0aGF0IGdldAogICBiaXR0ZW4gYnkgaXQuLgogICAKMjAwMi0wOS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBhZGRlZCBCcnVjZSdzIGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMDQgMTQ6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBwZXJsY2xlYW4KICAgCjIwMDItMDktMDQgMTQ6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggcHJvY2VzcyBncm91cGluZyBieSBjYWxsaW5nIHNldHNpZCgpIChyZXBvcnRlZCBieSBpcmM6VHJvZ0wpCiAgIAoyMDAyLTA5LTA0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBzZXRzaWQoKS4KICAgCjIwMDItMDktMDMgMTM6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhc2VzIHdoZXJlIHRoZXJlIGVpdGhlciBhcmUgbm8gdGFibGVzIG9yIG5vIHNjYWxhcnMuCiAgIAoyMDAyLTA5LTAzIDEzOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGRvbid0IHVzZSBOVUxMIHZhcmlhYmxlcy4KICAgCjIwMDItMDktMDIgMjI6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMiApCiAgIAoyMDAyLTA5LTAyIDIyOjMzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTIKICAgCjIwMDItMDktMDIgMjI6MjIgIHJzdG9yeQoKICAgKiBtYW4vbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGVkIGRvY3MKICAgCjIwMDItMDktMDIgMjI6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDktMDIgMjI6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICB0cnkgYW5kIGd1ZXNzIGF0IHNyYyBkaXIgaWYgbm90IHNwZWNpZmllZAogICAKMjAwMi0wOS0wMiAyMjoxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgbm90ZSBhYm91dCBlcnIgd2hlbiBidWlsZGluZyBpbiBhbmQgb3V0IG9mIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA5LTAyIDIxOjU1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmdWxsIHBhdGggdG8gdmVyc2lvbnRhZywgaW4gY2FzZSB3ZSBhcmUgYnVpbGRpbnQgb3V0c2lkZSBvZiBzcmMgZGlyZWN0b3J5CiAgIAoyMDAyLTA5LTAyIDIxOjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVtb3ZlIGZvcmNlZCBwcm9tcHQgb24gZXJyb3JzCiAgIAoyMDAyLTA5LTAyIDIxOjM2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgd2FybmluZ3Mgd2hlbiBWRVJTSU9OIGlzIHJlcXVpcmVkOyBhZGQgdGFyY2xlYW4gdGFyZ2V0OyBhZGQgdGFyY2xlYW4gdG8KICAgZGlzdGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgbXNnIG9uIGVycm9yOyBhZGQgY2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDIwOjI3ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSB3aW4zMiAmIEFnZW50WCBzdGF0dXMKICAgCjIwMDItMDktMDIgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgZml4IHRvIGF2b2lkIGxvY2tpbmcgdXAgdGhlIGFnZW50IHdoZW4gYSBzdWdhZ2VudCBkaWVzIGR1cmluZyBhIHNldCByZXF1ZXN0LiBXZQogICBtdXN0IGNsZWFuIHVwIHRoZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2hlbiB0aGUgc2Vzc2lvbihzKSBhcmUgY2xvc2VkLCBzbyB0aGF0CiAgIHRoZXkgd2lsbCBiZSBwcm9jZXNzZWQgYW5kIHJlbW92ZWQsIGFsbG93aW5nIGZ1cnRoZXIgcmVxdWVzdHMgdG8gYmUgcHJvY2Vzc2VkLgogICAKMjAwMi0wOS0wMSAxMzo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgY2hhbmdlIHJlc3VsdCB0eXBlIGJhY2sgdG8gaW50LCBhcyBpdCBtYXkgcmVjZWl2ZSBhIG5lZ2F0aXZlIHZhbHVlCiAgIAogICBQTEVBU0UgY2hlY2sgdGhlIHVzZSBvZiBhIHZhcmlhYmxlIGJlZm9yZSBjaGFuZ2luZyBpcyBzaWduZWRuZXNzLCBlc3BlY2lhbGx5CiAgIGFyZW91bmQgcmVsZWFzZSB0aW1lIQogICAKMjAwMi0wOC0zMCAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBpbmNsdWRlIGNoZWNrX3ZhcmJpbmQuaAogICAKMjAwMi0wOC0zMCAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGNoYW5nZSBOT1NVQ0hOQU1FIHRvIE5PU1VDSElOU1RBTkNFIGFnYWluLCBhcyBpdCBzZWVtcyB0aGUgYWdlbnRYIGZpeCBhbHNvCiAgIGNvcnJlY3RseSBkZWFscyB3aXRoIHRoaXMgZXJyb3IgY29kZQogICAKMjAwMi0wOC0zMCAwOToxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIGRlbGV0ZSBzdW5zaXRlLmNubGFiLXN3aXRjaC5jaCBtaXJyb3IsIGFzIGl0IGlzbid0IG9uZSBhbnltb3JlLgogICAKMjAwMi0wOC0yOSAxMzozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBtb2R1bGVzIGJlZm9yZSBjb25maWd1cmluZyB0aGVtCiAgIAoyMDAyLTA4LTI5IDEwOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggdGhlIGxhc3QgQUVTIGJ1ZyBJIGtub3cgb2YuICBBRVMxMjggd29ya3MgZ3JlYXQuCiAgICAgSSBzdGlsbCBOZWVkIHRvIGZpeCAxOTIvMjU2IGZvciBsb25nZXIga2V5IGdlbmVyYXRpb24gZnJvbSBNRDUvU0hBCiAgIAoyMDAyLTA4LTI5IDEwOjUyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgdXNlIHRoZSByaWdodCBwZXJsIG1vZHVsZSBuYW1lIGluIHRoZSB1c2UgbGluZS4KICAgCjIwMDItMDgtMjkgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICB3aW4zMi9jb25maWcuaDoKCiAgIE1vcmUgV2luMzItcmVsYXRlZCB0aWR5aW5nIHVwLgogICBUaGUgYWdlbnQgbm93IGNvbXBpbGVzIHdpdGggcmVsYXRpdmVseSBmZXcgd2FybmluZ3MuCiAgIAoyMDAyLTA4LTI5IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRGVjbGFyZSBuZXcgcm91dGluZSAnbmV0c25tcF9vaWRfZXF1YWxzJywgYW5kIGFzc29ydGVkIFdpbjMyIGNsZWFudXAgZml4ZXMuCiAgIAoyMDAyLTA4LTI4IDE0OjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNsYXJpZnkgY3ZzMmNsIHNjcmlwdCBuYW1lOyByZW1vdmUgLWIgZmxhZyBmcm9tIGN2czJjbCBwZXIgRGF2ZTsgYSBsaXR0bGUKICAgcmVvcmdhbml6YXRpb247IHB1dCBjb21tYW5kcyBvbiBzZXBhcmF0ZSBsaW5lcyBwcmVmaXhlZCB3aXRoICQ7IG5vdGUgNS54LzQueAogICBkaWZmZXJlbmNlcyBwZXIgRGF2ZSdzIGVtYWlsOyBwbHVnIG15IG5ldyBzY3JpcHRzIHdoZXJlIGFwcHJvcHJpYXRlCiAgIAoyMDAyLTA4LTI3IDE0OjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBVUkwgZm9yIGN2czJjbDsgdXBkYXRlIGN2czJjbCBjbWRzIHRvIGN2czJjbC5wbCwgc2luY2UgdGhhdCdzIHRoZSBmaWxlCiAgIHRoYXQncyBhY3R1YWxseSBkaXN0cmlidXRlZAogICAKMjAwMi0wOC0yNyAwMDo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMSApCiAgIAoyMDAyLTA4LTI3IDAwOjI0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgKDUuNiksIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICg1LjUpLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgKDUuNiksIGFwcHMvTWFrZWZpbGUuZGVwZW5kICg1LjUpLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAoNS41KSwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKICAgKDUuNSk6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yNyAwMDoxNyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMyAoNS4zKSwgbmV0c25tcF9idWxrX3RvX25leHQuMyAoNS4zKSwKICAgbmV0c25tcF9kZWJ1Zy4zICg1LjMpLCBuZXRzbm1wX2hhbmRsZXIuMyAoNS4zKSwgbmV0c25tcF9pbnN0YW5jZS4zCiAgICg1LjMpLCBuZXRzbm1wX211bHRpcGxleGVyLjMgKDUuMyksIG5ldHNubXBfb2xkX2FwaS4zICg1LjMpLAogICBuZXRzbm1wX3JlYWRfb25seS4zICg1LjMpLCBuZXRzbm1wX3NjYWxhci4zICg1LjIpLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zICg1LjMpLCBuZXRzbm1wX3RhYmxlLjMgKDUuMyksCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMyAoNS4zKSwgbmV0c25tcF90YWJsZV9kYXRhLjMgKDUuMyksCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zICg1LjMpLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMgKDUuMyksCiAgIG5ldHNubXBfdG9kby4zICg1LjMpLCBuZXRzbm1wX3dhdGNoZXIuMyAoNS4yKToKCiAgIHVwZGF0ZSBtYW4gcGFnZXMgZm9yIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWcgKDEuMSk6CgogICBuZXcgZmlsZSB0byBjb25maWd1cmUgdXNpbmcgc2FtZSBvcHRpb25zIGFzIG5zYi1wYWNrYWdlIGZvciB0ZXN0IG9yIGRpc3QKICAgCjIwMDItMDgtMjcgMDA6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlICgxLjMpOgoKICAgZG9uJ3QgYXBwZW5kIHN5cy1uYW1lIHdoZW4gYnVpbGRpbmcgaW4gc3JjIHRyZWUKICAgCjIwMDItMDgtMjcgMDA6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTkpOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDgtMjcgMDA6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTgpOgoKICAgcmVuYW1lIG5zYi1nZXQtY29uZmcgLT4gbnNiLWNvbmZpZy1kaXN0OyB1c2UgZG91YmxlIHF1b3RlcyBjdXogb2Ygc29tZQogICB3aWVyZCBzaGVsbCB0aGluZyBJIGRvbid0IHlldCB1bmRlcnN0YW5kOyBjaGVjayBmb3Igc3JjIGRpciBpbiBjb25maWcqCiAgIAoyMDAyLTA4LTI2IDIzOjM0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4gKDUuMTIpOgoKICAgdHdlYWsgY29tbWVudGNoZWNrIHRhcmdldCB0byB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDIzOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICg1LjMpLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICg1LjEpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oICg1LjIpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggKDUuMSksIHNubXBsaWIvd2luc2VydmljZS5jCiAgICg1LjEpOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cyAoYW5kIGFueXRoaW5nIHRoYXQgZXZlbiByZW1vdGVseSByZXNlbWJsZXMgb25lKQogICAKMjAwMi0wOC0yNiAxNzo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNyk6CgogICBwYXNzIG1ha2UgcGFyYW1zIHRvIG1ha2UsIHNvIHdlIGRvbid0IHRyeSB0byBpbnN0YWxsIGluIC91c3IvbG9jYWwvYmluIG9mCiAgIHRoZSBjb21waWxlIHNlcnZlcnMuLi4gOi0vCiAgIAoyMDAyLTA4LTI2IDE3OjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE2KToKCiAgIG1ha2UgZGlzdCAmIGV4dHJhIHRyYW5zcG9ydHM7IG5vIGlwdjYgb24gRGFyd2luOyBtYWtlIHRvdWNoaXQgYmVmb3JlIG1ha2UKICAgCjIwMDItMDgtMjYgMTc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgKDUuNCk6CgogICByZXBsYWNlIHVfaW50MzJfdCwgd2hpY2ggZG9lc24ndCBjb21waWxlIG9uIFN1biA1LjgsIHdpdGggdV9pbnQKICAgCjIwMDItMDgtMjYgMTY6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYyAoNS4yKToKCiAgIGZpeCB1bmRlY2xhcmVkIHZhcmlhYmxlIGVycm9yIHNwb3R0ZWQgb24gU3VuLCB3aGljaCBsaW51eCBtaXNzZWQgY29tcGxldGVseS4KICAgSSBoYXZlIG5vIGlkZWEgaG93IHRoaXMgY29tcGlsZWQgYmVmb3JlISEKICAgCjIwMDItMDgtMjYgMTY6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTUpOgoKICAgY2xlYW5lciB3YXkgdG8gYWRkIHN5c3RlbSBzcGVjaWZpYyBtb2R1bGVzOyBkaXNhYmxlIHBlcmwsIGFzIGl0IGJyZWFrcwogICBidWlsZHMgb3V0c2lkZSBvZiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMTU6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTQpOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4CiAgIAoyMDAyLTA4LTI2IDE1OjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjEzKToKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eDsgYmFpbCBvbiBjb25maWd1cmUgZXJyb3JzCiAgIAoyMDAyLTA4LTI2IDE1OjA0ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0cyAoMS40KToKCiAgIGFkZCBzdWdnZXN0aW9uIHRvIHN5bWxpbmsgbnNiLSogaW4gbG9jYWwgYmluIGRpcgogICAKMjAwMi0wOC0yNiAxNTowMyAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSAoMS4yKSwgbnNiLWZ1bmN0aW9ucyAoMS4xMik6CgogICBhZGQgb3B0aW9uIGZvciBwcmUtcmVsZWFzZSB0ZXN0IGNvbmZpZ3VyZSBvcHRpb25zCiAgIAoyMDAyLTA4LTI2IDE1OjAyICByc3RvcnkKCiAgICogUkVBRE1FLnNubXB2MyAoNS4zKToKCiAgIG1ha2Ugc2VjdGlvbiBoZWFkZXJzIHN0YW5kIG91dCBtb3JlOyBtb3ZlIG5vdGUgYWJvdXQgZW5jcnlwdGlvbiBub3QgYmVpbmcKICAgZW5hYmxlZCB0byBhIG1vcmUgcHJvbWluZW50IHBsYWNlLgogICAKMjAwMi0wOC0yNCAyMToyNCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYwogICAoVjQtMi1wYXRjaGVzLlszNywzXSk6CgogICBNZXJnZSBmcm9tIEhFQUQ6IGRldGVjdCB0aGUgcmVxdWlyZW1lbnQgZm9yIGxpbmtpbmcgd2l0aCAtbGRldnN0YXQuCiAgIFVnbHkgaGFjayB0byBtYWtlIHN1cmUgZGlza2lvIGRldmljZSBuYW1lcyBpbmNsdWRlIHRoZSBkZXZpY2UgbnVtYmVyLgogICAKMjAwMi0wOC0yMyAxMTo0NiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiAoVjQtMi1wYXRjaGVzLjMpOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjIgMDg6MzEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICg1LjIpOgoKICAgICAtIERPTlRfVVNFX05MSVNUIHJlaW5zdGF0ZWQsIHNvIE5PX0tNRU1fVVNBR0UgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTIyIDA4OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmggKDUuOSksIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gKDUuMTApOgoKICAgICAtIHJlaW5zdGF0ZSB0ZXN0IGZvciBET05UX1VTRV9OTElTVAogICAKMjAwMi0wOC0yMiAwNzoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jICg1LjEwKToKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmMgKFY0LTItcGF0Y2hlcy4yNCk6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwNDozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoNS4yKToKCiAgIEFkZCB0aGUgbWlzc2luZyAnLXgvWCcgb3B0aW9ucyB0byB0aGUgZXhhbXBsZSBhdXRoUHJpdiBjb21tYW5kIGxpbmUKICAgICAocmVwb3J0ZWQgYnkgUHJhc2FkYSBSIFZhbmtheWFsYXBhdGkpCiAgIAoyMDAyLTA4LTIwIDExOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS42KSwgYXBwcy9zbm1wdHJhcGQuYyAoNS40KSwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICg1LjMpLCBGQVEgKDUuMTcpOgoKICAgcXVpZXQgc25tcHRyYXBkIHdoZW4gaXQgY2FuJ3QgY29ubmVjdCB0byB0aGUgYWdlbnR4IG1hc3Rlci4KICAgCjIwMDItMDgtMjAgMDg6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICg1LjEpOgoKICAgICAtIGFkZCAjZGVmaW5lIE5PX0tNRU1fVVNBR0UgMSBzaW5jZSBuZXQtc25tcC1jb25maWcuaC5pbiBubyBsb25nZXIKICAgICAgIHBheXMgYXR0ZW50aW9uIHRvIHRoZSBET05UX1VTRV9OTElTVCB0b2tlbi4gIE9taXNzaW9uIG9mIHRoaXMKICAgICAgIGNhdXNlcyB0aGUgYWdlbnQgdG8gZXhpdCB3aXRoIHRoZSBtZXNzYWdlICJpbml0X2ttZW06IGt2bV9vcGVuCiAgICAgICBmYWlsZWQ6IGVycm9yIDAiLgogICAKICAgICAgIE5PVEU6IHRoaXMgbWF5IG5lZWQgYXBwbHlpbmcgdG8gb3RoZXIgbWVtYmVycyBvZiB0aGUgU29sYXJpcyAyCiAgICAgICBmYW1pbHksIGJ1dCBJIGRvbid0IGhhdmUgbWFjaGluZXMgdG8gaGFuZCB0byB0ZXN0IHRoaXMuCiAgIAoyMDAyLTA4LTIwIDA4OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAoNS4yKToKCiAgICAgLSBkZXRlY3QgZ2lnYWJpdCBldGhlcm5ldCBkZXZpY2VzIChnZU4pCiAgICAgLSB1bmRvIGluZGVudCBtYXloZW0KICAgCjIwMDItMDgtMjAgMDU6NTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAoNS4xKToKCiAgICAgLSBmb3Igbm93LCBkb24ndCAjaW5jbHVkZSBzbm1wX2xvY2tpbmcuaCBzaW5jZSBpdCBicmVha3MgcmUtZW50cmFudAogICAgICAgc3VwcG9ydCAoYmVjYXVzZSBtdXRleF90eXBlIGdldHMgbXVsdGlwbHktZGVmaW5lZCkuICBGdXJ0aGVybW9yZSwgdGhlCiAgICAgICBmdW5jdGlvbnMgaXQgZGVjbGFyZXMgYXJlIG5ldmVyIHVzZWQgYW55d2hlcmUsIG5vciBkZWZpbmVkIGFueXdoZXJlLgogICAKMjAwMi0wOC0yMCAwNTo1NiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oICg1LjEpOgoKICAgICAtIGRvbid0IGRlZmluZSAiZG8gbm90aGluZyIgbWFjcm9zIGZvciBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMKICAgICAgIG9uIFdpbjMyIHBsYXRmb3JtIChzaW5jZSByZWFsICJkbyBub3RoaW5nIiBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkIGZvcgogICAgICAgcmVhc29ucyBiZXN0IGtub3duIHRvIHNvbWVvbmUgZWxzZSkuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDA1OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCAoNS4xKToKCiAgICAgLSBmaXggaGlnaGx5IGJvZ3VzIG5vbi1DIHN5bnRheAogICAKMjAwMi0wOC0yMCAwNTo1MyAgamJwbgoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYyAoNS4xKToKCiAgICAgLSBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMgbm8gbG9uZ2VyICNkZWZpbmVkIHRvICJkbyBub3RoaW5nIgogICAgICAgdGFyZ2V0cyBmb3IgV2luMzIgaW4gbXRfc3VwcG9ydC5oLCB0aGVyZWZvcmUgbm8gbmVlZCB0byAjdW5kZWYgdGhlbQogICAgICAgaGVyZS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDE6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAoNS4yKToKCiAgIGhlYWRlcnMgZm9yIGNhY2hlIGVuYWJsaW5nIGZ1bmN0aW9ucy4KICAgCjIwMDItMDgtMjAgMDE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAoNS4zKToKCiAgIGRvbid0IHVzZSBub24tZXhpc3RlbnQgbWVtb3J5IHBvaW50ZXJzIHRvIHRoZSByZXNwb25zZSBkYXRhIChlZzogInRpbWVvdXQiKQogICAKMjAwMi0wOC0xOSAxNzo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAoNS4xKToKCiAgIENoYW5nZSBhIGZldyBjb25kaXRpb25hbHMgdG8gdXNlICNpZiBpbiBwbGFjZSBvZiAjaWZkZWYKICAgCjIwMDItMDgtMTkgMTc6MjggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMgKDUuMTcpLCBwYXJzZS5jICg1LjQpOgoKICAgQWxpZ24gd2l0aCA0LjIgYnJhbmNoCiAgIAoyMDAyLTA4LTE5IDE3OjI2ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ0hFRFVMRS1NSUIudHh0ICg1LjEpLAogICBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCAoNS4xKSwgSUFOQWlmVHlwZS1NSUIudHh0CiAgICg1LjEpLCBJTkVULUFERFJFU1MtTUlCLnR4dCAoNS4xKSwgTWFrZWZpbGUubWliICg1LjIpLCBpYW5hbGlzdAogICAoNS4xKSwgbWliZmV0Y2ggKDUuMSksIHJmY2xpc3QgKDUuMSk6CgogICBVcGRhdGUgdG8gY3VycmVudCBNSUJzCiAgIAoyMDAyLTA4LTE5IDE3OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgKDUuNyk6CgogICBCYWlsIG91dCBmb3IgYmFkIHNubXBBZG1pblN0cmluZyB2YWx1ZQogICAKMjAwMi0wOC0xOSAxMDo0MyAgamJwbgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41MyksIEZBUSAoNS4xNik6CgogICAgIC0gZG9uJ3QgdXNlIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBpbiBleGFtcGxlcwogICAgIC0gYnJlYWsgYSBjb3VwbGUgb2Ygb3Zlci1sb25nIGxpbmVzCiAgICAgLSBtZW50aW9uIG5ldHNubXBfIHZhcmlhbnQgb2YgZHNfc2V0XyBmdW5jdGlvbgogICAKMjAwMi0wOC0xOSAwNTo0NCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTIpLCBGQVEgKDUuMTUpOgoKICAgQWRkIGFuIGVudHJ5IGFib3V0IHRoZSBzbm1wdHJhcGQvQWdlbnRYIHdhcm5pbmcgbWVzc2FnZS4KICAgCjIwMDItMDgtMTggMjE6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTEpOgoKICAgZG9uJ3QgY29uZmlndXJlIHdpdGggYnVpbGQgaW5zdGFsbCBkaXIsIGl0IGlzIGFscmVhZHkgc3BlY2lmaWVkIG9uIGNtZCBsaW5lCiAgIGZvciBtYWtlIGluc3RhbGwKICAgCjIwMDItMDgtMTggMTM6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgKDUuNyk6CgogICBtb3JlIGRlYnVnZ2luZyAtIGxvZyB2YWx1ZSByZXF1ZXN0IGlzIHRyeWluZyB0byBzZXQKICAgCjIwMDItMDgtMTYgMTg6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRSAoNS45KToKCiAgIGFkZGVkIEJydWNlIFNoYXcgdG8gdGhlIHRoYW5rcyBsaXN0CiAgIAoyMDAyLTA4LTE2IDE4OjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpcyAoMS4yKToKCiAgIEEgZ3JlYXQgdXBkYXRlIHRhbGtpbmcgYWJvdXQgcGVybCBhbmQgc29sYXJpcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDItMDgtMTYgMDQ6NTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAoNS40KToKCiAgIENhdGNoIGV4cGxpY2l0bHkgJ25vU3VjaEluc3RhbmNlJyBleGNlcHRpb25zLCB3aGVuIHdhbGtpbmcgYW4KICAgaXRlcmF0b3ItaGFuZGxlZCBtb2R1bGUsIHNvIHRoYXQgaG9sZXMgY2FuIGJlIHNraXBwZWQgYW5kIHRoZQogICBuZXh0IHJlYWwgaW5zdGFuY2UgcmV0cmlldmVkLiAgKFRoaXMgd2FzIGFscmVhZHkgaGFuZGxlZCBmb3IKICAgbW9kdWxlcyB0aGF0IGRpZG4ndCBtYXJrIG1pc3NpbmcgaW5zdGFuY2VzIGV4cGxpY2l0bHkpLgogICAKMjAwMi0wOC0xNiAwMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjEzKToKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgYnkgZGVmYXVsdCwgc2luY2UgdGhlIGFnZW50eCBjb2RlIGFwcGVhcnMgYnJva2VuLgogICAKMjAwMi0wOC0xNiAwMzowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICg1LjUpLCBzbm1wX2FnZW50LmMgKDUuMTIpOgoKICAgc3BlZWQgZW5oYW5jZW1lbnRzIHZpYSBpbXBsZW1lbnRpbmcgYSByZWdpc3RyYXRpb24gc3VidHJlZSBsb29rdXAKICAgY2FjaGUuICBncmVhdGx5IHNwZWVkcyB0aGluZ3MgdXAgd2hlbiBzaW1pbGFyIHJlcXVlc3RzIGNvbWUgaW4KICAgKHNubXB3YWxrLCAuLi4pLgogICAKMjAwMi0wOC0xNSAxMzozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jICg1LjMpOgoKICAgcHJvdGVjdCBhZ2FpbnN0IE5VTEwgbGFiZWxzIGluIHN1YnRyZWVzCiAgIAoyMDAyLTA4LTE1IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jICg1LjMpLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICg1LjQpLAogICBhZ2VudC9hZ2VudF90cmFwLmMgKDUuMSksIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICg1LjIpLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICg1LjEpLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICg1LjEpLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgKDUuMiksIHNubXBsaWIvc25tcHVzbS5jICg1LjMpOgoKICAgdXNlIG5ldHNubXBfb2lkX2VxdWFscyAod2hpY2ggaXMgc29tZXRpbWVzIGZhc3RlciB0aGFuCiAgIHNubXBfb2lkX2NvbXBhcmUpIGluIGEgZmV3IHBsYWNlcyB0byBhY2hpZXZlIGJhcmVseSBub3RpY2VhYmxlIHNwZWVkIGdhaW5zLgogICAKMjAwMi0wOC0xNSAxMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jICg1LjIpOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciBleGlzdHMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gc3RyY21wKCkKICAgCjIwMDItMDgtMTUgMTE6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCAoNS43KToKCiAgIGNoYW5nZSBNQU4zUE9EUyB0byBzb21ldGhpbmcgY29tcGxpYW50IHdpdGggdGhlIHBlcmwgbWFudWFscy4gIEkgdGhpbmsuCiAgIAoyMDAyLTA4LTE0IDEzOjQyICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmMgKDUuMik6CgogICBhZGQgZGVidWcgZm9yIGxvY2FsIHBhcnNpbmcgb2YgYXJncwogICAKMjAwMi0wOC0xNCAxMjoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICg1LjUpLCBtYXN0ZXJfYWRtaW4uYyAoNS40KSwKICAgc3ViYWdlbnQuYyAoNS41KToKCiAgIGFkZCBtb3JlIGRldGFpbGVkIGluIGRlYnVnIG1lc3NhZ2VzOyBhZGQgYSBmZXcgbmV3IGRlYnVncwogICAKMjAwMi0wOC0xNCAxMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMSk6CgogICB3aGVuIGFsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBmaW5pc2hlZCwgY2hlY2sgYWxsIHJlcXVlc3RzIHN0YXR1cyBzbyB0aGF0CiAgIGFzcCBzdGF0dXMgaXMgc2V0LCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3QgYWdlbnR4IHNldCBwcm9jZXNzaW5nLgogICAobm93IGlmIEkgY2FuIGp1c3QgZ2V0IGFsbCB0aGlzIGhhaXIgb2ZmIHRoZSBmbG9vciwgYW5kIGdsdWUgaXQgYmFjayB0byBteQogICBoZWFkLCBhbmQgdGhlbiBmaXggdGhhdCBkZW50IGluIHRoZSB3YWxsIHdoZXJlIEkndmUgYmVlbiBiYW5naW5nIG15IGhlYWQuLi4uKQogICAKMjAwMi0wOC0xMyAxNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jICg1LjE0KToKCiAgIGZpeCBhIGxlbmd0aCBjb21wYXJpc29uIHByb2JsZW0gd2l0aCBuZXRzbm1wX29pZF9pc19zdWJ0cmVlKCkKICAgCjIwMDItMDgtMTMgMTc6MjQgIGhhcmRha2VyCgogICAqIE5FV1MgKDUuNik6CgogICBkb2N1bWVudCBhIGZldyByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDgtMTMgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAoNS4xKToKCiAgIEZpeCBvcGVuIGZpbGUgcnVuYXdheSBvbiBzb2xhcmlzLiAgU2VlIGJ1ZyAjNTkyODA2IHJlcG9ydGVkIGJ5IEphbWVzIElyd2luLgogICAKMjAwMi0wOC0xMyAxNTowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCAoNS43KToKCiAgIGFycmF5IG9mIHBvaW50ZXJzID0gcG9pbnRlciB0byBhIHBvaW50ZXIKICAgCjIwMDItMDgtMDkgMTk6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MICg1LjEpOgoKICAgbWlzYyBkb2MgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE5OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICg1LjQpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAoNS4yKSwgc25tcGxpYi9zbm1wdXNtLmMKICAgKDUuMiksIHNubXBsaWIvc25tcHYzLmMgKDUuMyk6CgogICBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxOTozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggKDUuMiksIHNubXBsaWIvc25tcF9hcGkuYwogICAoNS4xMyk6CgogICBzbGlnaHQgc3BlZWQgdXBzIGZvciBzbm1wX29pZF9jb21wYXJlKCkgdG8gZG8gc2luZ2xlIGludCBjb21wYXJlcyB0aWxsICE9CiAgIAoyMDAyLTA4LTA5IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmMgKDUuMik6CgogICAtIG9wZW5zc2wgMC45Ljcgc3VwcG9ydCBmb3IgREVTIGNoYW5nZXMuCiAgIC0gaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTk6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYyAoNS4yKToKCiAgIGluZGVudCBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTk6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNjYXBpLmggKDUuMSksIHNubXB1c20uaCAoNS4xKToKCiAgIGRlZmluZSBBRVMga2V5IHNwZWNpZmljcwogICAKMjAwMi0wOC0wOSAxOToyNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAoNS44KSwgY29uZmlndXJlICg1LjE3KSwgY29uZmlndXJlLmluICg1LjE1KSwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAoNS45KToKCiAgIC0gY2hlY2sgZm9yIG9wZW5zc2wgLjAuOS43IERFUyBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMuCiAgIC0gY2hlY2sgZm9yIEFFUyBzdXBwb3J0IGluIG9wZW5zc2wgKD4gMC45LjcpCiAgIAoyMDAyLTA4LTA5IDE5OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS40KToKCiAgIGZpeCBtb2RlIHByb2Nlc3NpbmcgZm9yIFJFU0VSVkUxL1JFU0VSVkUyIHRlc3QgZmFpbHVyZXMKICAgCjIwMDItMDgtMDkgMTg6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTApOgoKICAgbG9nIG1zZyB3aGVuIHdlIGlnbm9yZS9maXggaWxsZWdhbCBlcnJvcl92YWx1ZXMgZm9yIHRoZSBjbGllbnQgQVBJcwogICAKMjAwMi0wOC0wOSAxODoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiAoNS4xMik6CgogICBjb3JyZWN0aW9ucyB0byBleGFtcGxlIGNvZGUKICAgCjIwMDItMDgtMDkgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgKDUuNik6CgogICByZXZlcnQgZXJyb3JzIHRvIHVuaW5mb3JtYXRpdmUgU05NUHYxIG5vU3VjaE5hbWUgZm9yIEFnZW50WCBnZXQtbmV4dC9pbmNsdXNpdmUKICAgcHJvY2Vzc2luZzsgYWxzbyBhZGQgbW9yZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZQogICAKMjAwMi0wOC0wOSAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAoNS40KToKCiAgIGRlYnVnIG1zZyBmb3IgYWdlbnR4IG9pZCBmb3IgY2FzZXMgb3RoZXIgdGhhbiBnZXQvZ2V0bmV4dAogICAKMjAwMi0wOC0wOSAxMTo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAoNS4zKToKCiAgIGRvbid0IGZyZWUgcmVnaXN0cmF0aW9uIGluZm8gb24gZmFpbHVyZSwgYXMgbmV0c25tcF9yZWdpc3Rlcl9taWIgYWxyZWFkeSBkaWQgaXQKICAgCjIwMDItMDgtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgKDUuMiksIHNubXBDYWxsYmFja0RvbWFpbi5jICg1LjEpLAogICBzbm1wSVBYRG9tYWluLmMgKDUuMSksIHNubXBUQ1BEb21haW4uYyAoNS40KSwgc25tcFRDUElQdjZEb21haW4uYwogICAoNS41KSwgc25tcFVEUERvbWFpbi5jICg1LjYpLCBzbm1wVURQSVB2NkRvbWFpbi5jICg1LjcpLAogICBzbm1wVW5peERvbWFpbi5jICg1LjQpLCBzbm1wX3RyYW5zcG9ydC5jICg1LjEpOgoKICAgICAtIHJlbmFtZSBzbm1wXzxkb21haW4+X2JsYWggZnVuY3Rpb25zIHRvIG5ldHNubXBfPGRvbWFpbj5fYmxhaAogICAgIC0gbWFrZSB0cmFuc3BvcnQgbWVtYmVyIGZ1bmN0aW9ucyBzdGF0aWMsIHRvIGVtcGhhc2lzZSB0aGF0IHRoZXkgc2hvdWxkCiAgICAgICBub3QgYmUgdXNlZCBkaXJlY3RseQogICAgIC0gaGFuZGxlIEVJTlRSIGluIHNlbmQgYW5kIHJlY3YgZnVuY3Rpb25zIChhcyBwb2ludGVkIG91dCBieSBBbnR0aSBLdW50c2kKICAgICAgIGluIGJ1ZyByZXBvcnQgIzU3NjgwNikKICAgICAtIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDk6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCAoNS4zKSwKICAgc25tcElQWERvbWFpbi5oICg1LjIpLCBzbm1wVENQRG9tYWluLmggKDUuMiksIHNubXBUQ1BJUHY2RG9tYWluLmgKICAgKDUuMyksIHNubXBVRFBEb21haW4uaCAoNS4yKToKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA5OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICg1LjMpOgoKICAgICAtIGRvbid0IGV4cG9ydCBuZXRzbm1wX3VuaXhfYmxhaCgpIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wOSAwOTo1MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAoNS4xKToKCiAgICAgLSBmaXggbmFzdHkgZm9ybWF0dGluZwogICAKMjAwMi0wOC0wOCAxMjoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmMgKDUuMik6CgogICByZXdvcmQgY29uZmlnX3BlcnJvciBtc2dzIHRvIHJlbW92ZSAiRXJyb3IiLCBhcyBpdCBpcyByZWR1bmRhbnQKICAgCjIwMDItMDgtMDggMTI6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMgKDUuMSk6CgogICByZW1vdmUgaWZkZWYgdG8gbG9nIG1zZyB0byB1c2VyLCBhZnRlciBtYWtpbmcgbXNnIG1vcmUgaW5mb3JtYXRpdmU7IHJlbW92ZQogICBhbm5veWluZyBibGFuayBsaW5lcwogICAKMjAwMi0wOC0wOCAxMTozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAoNS43KSwgY29uZmlndXJlICg1LjE2KSwgY29uZmlndXJlLmluICg1LjE0KToKCiAgIFBhdGNoIGZyb20gSGFycmllIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSBrbWVtIHVzYWdlCiAgIAoyMDAyLTA4LTA2IDAzOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjMpOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAzOjI3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmggKDUuMSk6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAKMjAwMi0wOC0wNiAwMzoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jICg1LjMpLCBzbm1wX2FwaS5jICg1LjEyKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMzoxNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjQpOgoKICAgICAtIGFkZCBkZWJ1Z2dpbmcgb3V0cHV0IHdoZW4gYWxsIGFsYXJtcyB1bnJlZ2lzdGVyZWQKICAgCjIwMDItMDgtMDYgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKFY0LTItcGF0Y2hlcy40KToKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciB0aGlzIHBhdGNoICgjNTU4NTE3KQogICAKMjAwMi0wOC0wNiAwMzowOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bMywxLDM2XSk6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3IgcHJvdmlkaW5nIHRoaXMgcGF0Y2gKICAgCjIwMDItMDgtMDUgMTA6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgKDUuMyk6CgogICBtYXRjaCBmdW5jdGlvbiBkZWZpbml0aW9uIHcvTmV0c25tcF8qX0RhdGFQb2ludCB0eXBlZGVmczsgYWRkIGN2cyBJZAogICAKMjAwMi0wOC0wMyAxMTo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMgKDEuNSk6CgogICBicmVhayB1cCBsaW5lcyBsb25nIHRoYW4gODAgY2hhcnM7IGFiY2RlLCBub3QgYWJjZGQKICAgCjIwMDItMDgtMDMgMDM6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMgKDEuNCk6CgogICBtb3JlIHVwZGF0ZXMgYWJvdXQgdGhpbmdzIFdlcyBkb2VzIGF0IDEyOjMwIGFtCiAgIAoyMDAyLTA4LTAzIDAyOjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEgKDUuMTQpLCBSRUFETUUgKDUuOCksIHNlZHNjcmlwdC5pbiAoNS42KSwgcGVybC9TTk1QL1NOTVAucG0KICAgKDUuMTIpLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICg1LjUpOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4zICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMiAtPiBWNS4wLjMKCjIwMDItMDgtMDIgMjM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGQgLmxpYnMKICAgCjIwMDItMDgtMDIgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA4LTAyIDIzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMDIgMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Jnb3R0ZW4gdG8gY2hlY2sgaW4gdGVzdCBmb3IgcGVybF9ldiBjaGFuZ2VzCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgcHJpbnQgKG9wcHMpCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgdmVyc2lvbiB1c2FnZS4KICAgCjIwMDItMDgtMDIgMjM6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICM1NzIzOTQgZnJvbSBLYXRzdWhpc2EgQUJFOgogICAgIC0gc3VwcG9ydCBsaW5rIGxvY2FsIGFkZHJlc3NlcwogICAgIC0gYmluZCB0byBpcHY2IG9ubHkgaWYgSVBWNl9WNk9OTFkgaXMgZGVmaW5lZC4KICAgCjIwMDItMDgtMDIgMjM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggY29uZmlndXJlIHNwZWNpZmllZCBkZWZhdWx0IHZlcnNpb25pbmcKICAgCjIwMDItMDgtMDIgMjI6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzU3MjM5NDogYWRkIGlwdjYgdHJhbnNwb3J0cyB3aGVuIC0tZW5hYmxlLWlwdjYgZGVmaW5lZC4gIFRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wOC0wMiAxNDo1OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIHVwZGF0ZQogICAKMjAwMi0wOC0wMiAxNDozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgZG9jcy4KICAgCjIwMDItMDgtMDIgMTQ6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjMsIE1ha2VmaWxlLmluOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIGZvciB5ZXQgbW9yZSBzdHVmZi4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSBhIGZldyBtb3JlIGRpc3QgcmVsYXRlZCBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVycm9yIG1lc3NhZ2UgY2hhbmdlIHRvIHJlbW92ZSBERVMgc3BlY2lmaWMgZXJyb3IgbXNnLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90eXBlbWFwOgoKICAgc3BhY2luZyBmaXhlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQueHM6CgogICByZW5hbWVkIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogbmV0c25tcF9yZXF1ZXN0X2luZm8ucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgcmVuYW1lZCBmaWxlCiAgIAoyMDAyLTA4LTAyIDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIEFkZCBhICJldmFsdmFycyIgZGlyZWN0aXZlIHRvIGRvIHNpbXBseSByZXBsYWNlbWVudHMuCiAgIAoyMDAyLTA4LTAyIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIENWU1VTRVIgdmFyaWFibGUgd2hlbiBkb2luZyBzdHVmZiBpbnN0ZWFkIG9mIG15IGhhcmQtY29kZWQgbmFtZS4KICAgCjIwMDItMDgtMDIgMTQ6MTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNoYW5nZSBjaGVja2NvbW1lbnQgdGFnIHRvIGV4Y2x1ZGUgd2luMzIgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgY2hhbmdlbG9nIGJ1aWxkIG5vdGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY3JlYXRlZCBhIGhvdy10byBmaWxlIGZvciBtYWtpbmcgcmVsZWFzZXMKICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvY2hhbmdlbG9nZml4OgoKICAgY2hhbmdlbG9nIGZpeC11cCBzY3JpcHQKICAgCjIwMDItMDgtMDIgMTA6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0cmFuc2xhdGUgJy8nIGluIHN5c3RlbSBuYW1lIHRvICdfJyAoZm9yIGN5Z3dpbikKICAgCjIwMDItMDgtMDIgMDk6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gY3ZzIGdldCBjb21tYW5kIGV4YW1wbGUKICAgCjIwMDItMDgtMDIgMDk6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIFN1cHByZXNzICdpbmxpbmUnIHdoZW4gbm90IHVzaW5nIEdDQy4gU3VnZ2VzdGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMi0wOC0wMiAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBvbiBza2lwcGluZyBtYWtlIHRlc3Q7IGFkZCAtcCBmbGFnIHRvIGV4YW1wbGVzCiAgIAoyMDAyLTA4LTAyIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGRlc2NyaWJlIHVzZSBvZiBuc2ItcGFja2FnZSBzY3JpcHQuIFRlc3RlcnMgYW5kIGNvbW1lbnRzIGFwcHJlY2lhdGVkLi4uCiAgIAoyMDAyLTA4LTAyIDA4OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGxhdGZvcm06CgogICBvdXRwdXQgcGxhdGZvcm0gaW5mbwogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVuYW1lZCB0byBuc2ItcGFja2FnZQogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICByZW5hbWVkIG5zYi1idWlsZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBzY3JpcHQgZnVuY3Rpb24KICAgCjIwMDItMDgtMDIgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENoYW5nZSBsb2NhdGlvbiBuYW1lIHRvIFVua25vd24KICAgCjIwMDItMDgtMDIgMDg6MDggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCByZXR1cm4gY29kZQogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZG9uJ3QgcHVsbCBmaXJzdCBhcmcgdGlsIGFmdGVyIGdldG9wdHMvc2hpZnQ7IG1vdmUgc2V0IG9mIGRlZmF1bHQgb3B0cwogICAKMjAwMi0wOC0wMiAwNzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyBhZGQgLWYgb3B0aW9uIHRvIHByb21wdCB0byBvdmVycmlkZQogICBubyBwcm9tcHQgZmxhZyAodXNlZnVsIGZvciBlcnJvcnMpOyBuZXcgbnNiLW1ha2UgbWV0aG9kOyBjaGVjayByYyBvZgogICBtYWtlIGNsZWFuCiAgIAoyMDAyLTA4LTAyIDA3OjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgdHdlYWsgdXNhZ2UKICAgCjIwMDItMDgtMDIgMDc6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCB0eXBvOyByZW1vdmUgZXh0cmEgdHJhaWxpbmcgc2xhc2ggaW4gZGlyCiAgIAoyMDAyLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBjaGVjayBtb3JlIHBsYWNlcyB0byBzb3VyY2UgbnNiLWZ1bmN0aW9uczsgZml4IGZvciBjbWQgbGluZSBidWlsZCBwYXRoCiAgIAoyMDAyLTA4LTAyIDA2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAganVzdCBzaG93IGVycm9ycyBhZnRlciBidWlsZCwgbm90IHdhcm5pbmdzCiAgIAoyMDAyLTA4LTAxIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZXZlcnQgdG8gbm9uLWFuc2kgcHJvdG90eXBlcyBmb3Igb2xkZXIgcGVybCB3aXRoIG9sZGVyIGNvbXBpbGVycyBvbgogICBvbGRlciBzeXN0ZW1zLiAgTm90IHRoYXQgSSdtIGdydW1weSwgb2YgY291cnNlLgogICAKMjAwMi0wOC0wMSAxNjoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGNoZWNrIGZvciBvbGRlciBhbmQgbmV3IGVtYmVkZGVkIHBlcmwgY2FsbCBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBzeW1saW5rIHRvIHNyYyBmcm9tIGJ1aWxkOyB1cGRhdGUgbnNiLWdldC1jb25maWcKICAgCjIwMDItMDgtMDEgMTQ6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgZGlyCiAgIAoyMDAyLTA4LTAxIDEyOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGNvbmZpZyBpbnN0YWxsIHBhdGg7IHJlbW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOC0wMSAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVtb3ZlIGhhcmQgY29kZWQgaW5mbwogICAKMjAwMi0wOC0wMSAxMjoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBwcm9tcHRzOyByZW1vdmUgcHJldmlvdXMgaW5zdGFsbHM7IHR3ZWFrIGVyciBwYXR0ZXJuCiAgIAoyMDAyLTA4LTAxIDEyOjE0ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkgaW5zdGVhZCBvZiBkc19zZXRfYm9vbGVhbigpCiAgIAoyMDAyLTA4LTAxIDEyOjEyICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgICAgLSBjaGFuZ2UgY29kZSBzYW1wbGUgdG8gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKQogICAgIC0gdXBkYXRlIHJlZmVyZW5jZXMgdG8gbGlicmFyaWVzICh3aGljaCB3ZXJlIHN0aWxsIHRhbGtpbmcgYWJvdXQKICAgICAgIGxpYnVjZGFnZW50IGV0IGFsLikgLS0gUExFQVNFIFJFVklFVyBCRUZPUkUgNS4wLjMKICAgCjIwMDItMDgtMDEgMTI6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBsb3RzIG9mIGZpeGVzIHRvIHByZXZpb3VzZSB1bnRlc3RlZCBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBzY3JpcHQgdG8gYnVpbGQgcmVsZWFzZXMuLi4gc3RpbGwgc29tZSBoYXJkY29kaW5nIHdoaWxlIHRlc3RpbmcsIGJ1dCBpdHMKICAgZ2V0dGluZyB0aGVyZS4uLgogICAKMjAwMi0wOC0wMSAxMTo1MSAgcnN0b3J5CgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cDoKCiAgIHV0aWxpdHkgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXIyLmM6CgogICBHbyB3aXRoIHRoZSAic2NhbGFyIGFzIHN1cGVyLWhhbmRsZXIgb2YgaW5zdGFuY2UiIGltcGxlbWVudGF0aW9uLgogICBTY2FsYXIxLmMgaXMgcHJvYmFibHkgcmVkdW5kZW50LCBidXQgd2UgY2FuIHJlbW92ZSB0aGlzIGxhdGVyLgogICAoWXVwIC0gSSdtIGEgY293YXJkLi4uLikKICAgCjIwMDItMDgtMDEgMDE6MTEgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1pbm9yIHR5cG9zLCBwbHVzIGVtcGhhc2lzZSB0aGUgbmVlZCBmb3IgdGhlIElwSGxwQVBJIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTMwIDA4OjI2ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dDoKCiAgIFJlY29nbmlzZSAnMCcgYXMgYSB2YWxpZCBzZXR0aW5nIGZvciBzdWZmaXhQcmludGluZywgYW5kIHVwZGF0ZSB0aGUKICAgcHJvbXB0cyB0byBtYXRjaCB0aGUgdjUgb3V0cHV0IGZvcm1hdHMgZGVmYXVsdHMuIFNlZSBCdWcgIzU2NzQ1MQogICAKMjAwMi0wNy0zMCAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpcnN0IGF0dGVtcHQgYXQgdGFja2xpbmcgQnVnICM1NzQ0MzQKICAgUmVjb2duaXNlIHRoYXQgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IGlzIGVxdWl2YWxlbnQgdG8gLU9TLgogICBTbm1wdGFibGUgc3RpbGwgY3Jhc2hlcyB3aXRoIC1PZiBvciAtT3UsIGJ1dCBhdCBsZWFzdCB0aGUKICAgZGVmYXVsdCBpbnZvY2F0aW9uIHdvcmtzLgogICAKMjAwMi0wNy0zMCAwNTo0MSAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnQgbmV3bHktZGVmaW5lZCBwdWJsaWMgbmFtZXMsIGFuZCByZS1leHBvcnQgc29tZSByb3V0aW5lcyB0aGF0CiAgIGhhdmUgY2hhbmdlZCBuYW1lLiAgVGhpcyBzaG91bGQgbm93IGNvbXBpbGUgdW5kZXIgVmlzdWFsIEMrKyBhZ2Fpbi4KICAgCjIwMDItMDctMzAgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgcmVtb3ZlIGEgUm93LVN0YXR1cyBhdXRvLWRlbGV0ZWQgcm93IHVudGlsIHRoZSBsYXN0IG1pbnV0ZSwKICAgaW4gY2FzZSBvdGhlciAobG93ZXIpIGhhbmRsZXJzIHRyeSB0byBhY2Nlc3MgaXQuCiAgIAoyMDAyLTA3LTMwIDAxOjM4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4xKSwgRkFROgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBlc2NhcGUgcXVvdGVzIHdoZW4gcXVlcnlpbmcgc3RyaW5nLWluZGV4ZWQgdGFibGVzLgogICAKMjAwMi0wNy0yOSAyMzo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVwZGF0ZSByZWdpc3RlciBmdW5jdGlvbiBuYW1lCiAgIAoyMDAyLTA3LTI5IDIzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYXV0b2dlbiBleGFtcGxlIGNvZGUgZm9yIGluZGV4IGNoZWNraW5nIGluIGV4dHJhY3RfaW5kZXg7IHVwZGF0ZSByZWdpc3RlcgogICBmdW5jdGlvbiBuYW1lOyB1c2UgY29udGFpbmVyIGluICpfZ2V0X2J5X2lkeCgpCiAgIAoyMDAyLTA3LTI5IDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBuZXcgc3RydWN0IG5hbWU7IGFkZCBleGFtcGxlIGNvZGUgYXMgY29tbWVudHMgaW5zdGVhZCBvZiB2YXJfWFhYCiAgIGFuZCBzdWNoOyBpbiBhIGZldyBpbXBvcnRhbnQgcGxhY2VzIGFkZCBjb2RlIHdoaWNoIHdpbGwgYWxsb3cgYSBuZXdseQogICBnZW5lcmF0ZWQgbW9kdWxlIHRvIGJlIGNvbXBpbGVkIGlmIC1EVEFCTEVfQ09OVEFJTkVSX1RPRE8gaXMgc3BlY2lmaWVkOwogICBwcm9iYWJseSBhIGZldyBvdGhlciB0d2Vha3MgSSBmb3Jnb3QKICAgCjIwMDItMDctMjkgMDM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9hcnJheS5jLCB0YWJsZS5jLCB0YWJsZV9kYXRhLmMKLCB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZGVmZXJlbmNpbmcgTlVMTCBwb2ludGVycy4KICAgKE1vc3Qgb2YgdGhlc2UgU2hvdWxkIE5ldmVyIEhhcHBlbiBidXQgWW91IENhbid0IEJlIFRvbyBDYXJlZnVsISkKICAgCjIwMDItMDctMjkgMDM6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBgZG1mZScgZXRoZXJuZXQgY2FyZHMgYXMgZm91bmQgb24gTmV0cmEgWDEgbWFjaGluZXMuCiAgICAgICBUaGFua3MgdG8gSm9obiBPbHNvbiBmb3IgdmVyaWZ5aW5nIHRoaXMgZml4LgogICAKICAgICAgIEFsc28gbm90ZSB0aGF0IGBpbmRlbnQnIGhhcyAtLS0tZWQgdGhlIGZvcm1hdHRpbmcgb2YgdGhpcyBmaWxlCiAgICAgICBiZXlvbmQgbGVnaWJpbGl0eSBpbiBzZXZlcmFsIHBsYWNlcy4gIEkgZG9uJ3QgdGhpbmsgd2Ugd2FudCB0bwogICAgICAgZG8gKnRoYXQqIGFnYWluLgogICAKMjAwMi0wNy0yOSAwMjo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGdWxsZXIgdmFsaWRhdGlvbiBvZiBSb3dTdGF0dXMgdmFsdWVzIHdydCByb3cgY3JlYXRpb24vZXhpc3Rpbmcgcm93cy4KICAgCjIwMDItMDctMjkgMDE6MjUgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVGFrZSBhY2NvdW50IG9mIHJlY2VudCBjaGFuZ2VzIGluIGxpYnJhcnkgZmlsZXMuCiAgICdSZWxlYXNlJyBhcHBsaWNhdGlvbnMgc3RpbGwgZG9uJ3QgbGluayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0CiAgIHRoZSBsaWJyYXJpZXMgY29tcGlsZSwgYW5kIHRoZSAnRGVidWcnIHNpZGUgc2VlbXMgdG8gd29yay4KICAgCjIwMDItMDctMjkgMDE6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgVHdlYWsgaW5saW5lIGhhbmRsaW5nIGZvciBBSVggLSBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMi0wNy0yNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgYXV0b2RlcGVuZGVuY2llcyB1bnRpbCBwb3J0YWJsZSBzb2x1dGlvbiBjYW4gYmUgZm91bmQKICAgCjIwMDItMDctMjYgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmg6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKG9ic29sZXRlKSB1Y2Qtc25tcC9yZWdpc3RyeSBtb2R1bGUuCiAgIAoyMDAyLTA3LTI2IDA3OjMyICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFByb3RlY3QgdGhlIFdpbjMyIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBvdGhlciBoZWFkZXIKICAgZmlsZXMgcmVjb2duaXNlIHRoYXQgaXQgaGFzIGluZGVlZCBiZWVuIGluY2x1ZGVkLgogICAKMjAwMi0wNy0yNiAwNzoyNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMCksIEZBUToKCiAgIEEgYml0IG1vcmUgZGV0YWlsIG9uIG1pYjJjLCBwbHVzIHRoZSBub24td3JpdGVhYmlsaXR5IG9mIHN5c3tMb2NhdGlvbixDb250YWN0fQogICAKMjAwMi0wNy0yNiAwNToyMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOSksIEZBUToKCiAgIEFub3RoZXIgZW50cnkgYWJvdXQgaW52YWxpZCB1c2Ugb2YgbWliMmMuCiAgIAoyMDAyLTA3LTI2IDA1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgU3VwcHJlc3MgdGhlICJub24tc3RhbmRhcmQiIGNvbmRpdGlvbmFsIGNvbnN0cnVjdCwKICAgc2luY2UgaXQncyBub3QgcmVjb2duaXNlZCBieSBzb21lIHZlcnNpb25zIG9mICdtYWtlJy4KICAgCjIwMDItMDctMjUgMDU6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBBZGQgdGhlICdzY2FsYXInIGFuZCAnd2F0Y2hlcicgaGVscGVycyB0byB0aGUgaGVscGVyIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTI1IDAzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgU3VwcG9ydCBmb3Igd2F0Y2hpbmcgYSBzeXNVcFRpbWUgbWFya2VyLgogICAKMjAwMi0wNy0yNSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgTmV3IHJvdXRpbmUgZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gdmFsdWUgZGlyZWN0bHkgZnJvbSBhIHJlcXVlc3Qgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAxMzoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY2hlY2sgZm9yIHNldHRpbmcgc2FtZSB2YWx1ZSBpbiBkc19zZXRfc3RyaW5nLCBzaW5jZSBpdCBmcmVlcyB0aGUgb2xkCiAgIHZhbHVlIGJlZm9yZSBkdXBpbmcgdGhlIG5ldyBvbmUKICAgCjIwMDItMDctMjQgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIGZpcnN0IHN0YWIgYXQgaW5pdC5kIHN0YXJ0dXAgc2NyaXB0IGZvciBzbm1wZAogICAKMjAwMi0wNy0yNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBXaGVuIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2Ygb25lIGNvbHVtbiwgYW5kIG1vdmluZyBvbiB0byB0aGUgbmV4dAogICAoaW4gYSBHZXROZXh0KSwgd2UgbmVlZCB0byBzdGFydCBhZ2FpbiB3aXRoIHRoZSBmaXJzdCByb3cuCiAgIFRoaXMgaXMgcHJvYmFibHkgdGhlIGludGVudGlvbiBvZiB0aGUgY29uZGl0aW9uYWwgYmxvY2sgYXQgdGhlIHN0YXJ0CiAgIG9mIHRoaXMgbG9vcCwgYnV0IEkgY2FuJ3Qgc2VlIGhvdyB0aGlzIHRlc3QgY291bGQgZXZlciBwb3NzaWJseSBtYXRjaC4KICAgCiAgIE5vdGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEgcmVmZXJlbmNlIHRvIHRoZSByb3cgZGF0YSBhY2Nlc3NpYmxlIHZpYQogICB0aGUgJ3JlcXVlc3QtPnBhcmVudF9kYXRhJyBkYXRhIGxpc3QuICAgVGhpcyB3aWxsIGFsc28gbmVlZCB0byBiZQogICByZXdvdW5kLiAgU3VnZ2VzdGlvbnMgYXMgdG8gaG93IGJlc3QgdG8gZG8gc28gZ3JhdGVmdWxseSByZWNlaXZlZC4KICAgCjIwMDItMDctMjQgMDY6MzkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBmYWlsaW5nIHRvIGV4dHJhY3QgYSByb3cgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAwNjozNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIGludmFsaWQgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjMgMTQ6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1pc3NpbmcgY29tbWVudCB0ZXJtaW5hdG9yLjotKAogICAKMjAwMi0wNy0yMyAxMjowMiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAogICAKMjAwMi0wNy0yMyAxMjowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIGFkZCBuZXcgbmV0c25tcF9hc3NlcnQsIHdoaWNoIGRlZmF1bHRzIHRvIGxvZ2dpbmcgYSBtZXNzYWdlCiAgIAoyMDAyLTA3LTIzIDA3OjQzICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgKFY0LTItcGF0Y2hlcy4zKSwgbWliX2FwaS4zLmRlZjoKCiAgIEZpeCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSAnc3ByaW50X3JlYWxsb2MnIGNhbGxzLCB0byBpbmNsdWRlIHRoZSAnYWxsb3dfcmVhbGxvYycgcGFyYW1ldGVyLgogICAKMjAwMi0wNy0yMiAxMDo1OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjLCBuc2ItZnVuY3Rpb25zOgoKICAgbmV3IChhbG1vc3QgZW1wdHkpIHNwZWMgZmlsZTsgc3RhcnQgY3JlYXRpbmcgZnVuY3Rpb25zIGZvciBhdXRvbWF0ZWQgYnVpbGRzCiAgIAoyMDAyLTA3LTIyIDAxOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQSBtb3JlIGdlbmVyYWxpc2VkIGZvcm0gb2YgdGhlICduc19yZWdpc3Rlcl97dHlwZX1faW5zdGFuY2UnIHJvdXRpbmVzLAogICBpbXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlIGhlbHBlciBtb2R1bGUsIGFuZCB1c2VhYmxlIHdpdGggYm90aCB0aGUKICAgaW5zdGFuY2UgYW5kIHNjYWxhciBoZWxwZXJzLgogICAgIFRoaXMgYWxzbyBzdXBwb3J0cyBhcmJpdHJhcnkgQVNOIHR5cGVzIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgT0lEcykuCiAgIAoyMDAyLTA3LTIyIDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYywgYWdlbnQvaGVscGVycy9zY2FsYXIyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmg6CgogICBBZ2VudCBoZWxwZXIgbW9kdWxlIGZvciBzdXBwb3J0IG9mIHNjYWxhciBvYmplY3RzLgogICBWZXJ5IHNpbWlsYXIgdG8gdGhlICJpbnN0YW5jZSIgaGVscGVyLCBleGNlcHQgdGhhdCB0aGlzIGRlYWxzIHdpdGgKICAgaW52YWxpZCBpbnN0YW5jZSBzdWJpZGVudGlmaWVycyBhcyB3ZWxsIChyZXBvcnRpbmcgbm9TdWNoSW5zdGFuY2UKICAgcmF0aGVyIHRoYXQgbm9TdWNoT2JqZWN0KS4KICAgCiAgIFRoZXJlIGFyZSB0d28gcGFyYWxsZWwgaW1wbGVtZW50YXRpb25zIGFzIHRoZSBtb21lbnQ6CiAgICAgLSBzY2FsYXIxIGlzIGVzc2VudGlhbGx5IGFuIGVuaGFuY2VkIGNvcHkgb2YgdGhlIGluc3RhbmNlIGhlbHBlciwKICAgICAgIGJ1dCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIGl0LgogICAgIC0gc2NhbGFyMiBzaXRzIGFib3ZlIHRoZSBpbnN0YW5jZSBoZWxwZXIsIGFuZCB1c2VzIHRoYXQgdG8gZG8gbW9zdAogICAgICAgb2YgdGhlIHJlYWwgcHJvY2Vzc2luZy4KICAgU2NhbGFyMSBpcyBwcm9iYWJseSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCwgd2hpbGUgc2NhbGFyMiBmZWVscyBtb3JlCiAgIGluIGtlZXBpbmcgd2l0aCB0aGUgZ2VuZXJhbCBldGhvcyBvZiB0aGUgaGFuZGxlciBtZWNoYW5pc20uCiAgIFdlIHByb2JhYmx5IG5lZWQgdG8gZGVjaWRlIHdoaWNoIHRvIGFkb3B0LCBhbmQganVuayB0aGUgb3RoZXIuCiAgIAoyMDAyLTA3LTE5IDE0OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdXNlIG5ldCBhZ2VudHggcmV0aXJlcy90aW1lb3V0IGRzIHZhbHVlcwogICAKMjAwMi0wNy0xOSAxNDoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICByZWdpc3RlciBwYXJzZXIgZm9yIGFnZW50eFRpbWVvdXQgYW5kIGFnZW50eFJldHJpZXMgdG9rZW5zCiAgIAoyMDAyLTA3LTE5IDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uLWV4aXN0ZW50IG5zdEFnZW50KiBmaWxlcwogICAKMjAwMi0wNy0xOSAxNDoxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBtb3ZlIE9ORV9TRUMgdG8gZGVmaW5pdGlvbnMuaDsgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUyBkZWZhdWx0cwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmg6CgogICBtb3ZlIGRlZmluaXRpb24gb2YgT05FX1NFQyBoZXJlIGZyb20gc25tcGQuYwogICAKMjAwMi0wNy0xOSAxMToyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBwYXNzIGxvY2FsIG9iaiwgbm90IHJhbmRvbSB1bml0aWFsaXplZCBwb2ludGVyLjotKAogICAKMjAwMi0wNy0xOSAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBNQVhQQVRITEVOIGlzbid0IGRlZmluZWQuCiAgIAoyMDAyLTA3LTE5IDAzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSB0aGUgInN5c3RlbS1pbmRlcGVuZGVudCIgU05NUF9NQVhQQVRIIGxlbmd0aCBkZWZpbml0aW9uIGluc3RlYWQgb2YgTUFYUEFUSExFTgogICAKMjAwMi0wNy0xOCAyMjowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbmV4aXN0ZW50IG1pYmdyb3VwL25zdEFnZW50TW9kdWxlT2JqZWN0LmgKICAgCjIwMDItMDctMTggMTk6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMiApCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjEgLT4gVjUuMC4yCgoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtaW5vciBwYXRjaCBmb3Igbm9uLWV4aXN0ZW50IChkaWVkKSBsb2cgZmlsZXMuCgoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgbWFrZSBkZXBlbmQgZml4ZXMuCgkKMjAwMi0wNy0xOCAxODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFsYXJtLmMsIGV2ZW50LmM6CgogICBtYWtlIHRoZSBybW9uIGNvZGUgY29tcGlsZS4KICAgIC0gbmV3IHN1YnRyZWUgcG9pbnRlciBzdHJ1Y3R1cmUuCiAgICAtIHNwcmludF9vYmppZCAtPiBzbnByaW50X29iamlkCiAgIAoyMDAyLTA3LTE4IDE4OjMyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHNpbGVuY2UgcGVybCBzdWJkaXJlY3RvcnkgYnVpbGQgY29tbWFuZHMuCiAgIAoyMDAyLTA3LTE4IDE4OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gVXNlIG5ldHNoIC10IC1kIHhtbCB0byBnZXQgeG1sIG91dHB1dCBmcm9tIG5ldHNoLgogICAgIChPaywgSSdtIHNpdHRpbmcgaGVyZSBhdCBhbiBJRVRGIGNvbmZlcmVuY2UgaGF2aW5nIGFuIGFyZ3VtZW50IGFib3V0CiAgICAgIHhtbCB2cyBCRVIgYW5kIG5lZWRlZCBhIFhNTCgtbGlrZSkgZXhhbXBsZSBvZiBhIGh1Z2UgZGF0YSBzZXQsIHNvIEkKICAgICAgbWFkZSBuZXRzaCBkbyBpdC4pCiAgIAoyMDAyLTA3LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBpbml0aWFsIHN1cHBvcnQgZm9yIGRvaW5nIHJlcXVlc3RzIGZyb20gbXVsdGlwbGUgaG9zdHMgKHJldHJpZXZhbCwgbm90IHNldHMpCiAgIAoyMDAyLTA3LTE4IDE3OjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIG1vcmUgZml4ZXMgdG8gc3RpbGwgdWdseSBjb2xvcml6ZWQgdGV4dCAod2VsbCwgdGhlIHRleHQgaXMgcHJldHR5IGJ1dAogICB0aGUgc3VwcG9ydCBpcyB1Z2x5KS4KICAgCjIwMDItMDctMTggMTc6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGNoYW5nZSB0ZXh0IHN0cmluZyBlcnJvciB0byBtYXRjaCBmdW5jdGlvbiBuYW1lIGNhbGxlZC4KICAgCjIwMDItMDctMTggMTU6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbmFtZSBmcmVlIC0+IGNmcmVlIHRvIGF2b2lkIHNvbWUgcHJvYmxlbSB3ZXMgaGFkLi4uIDstKQogICAKMjAwMi0wNy0xOCAxNDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICB0d28gcGVvcGxlIGZpeGluZyBtZW1vcnkgbGVhayBpbiBkaWZmZXJlbnQgcGxhY2VzID0gc2VnZmF1bHQKICAgCjIwMDItMDctMTggMTE6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAkbmFtZSAtPiAkaQogICAKMjAwMi0wNy0xOCAxMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0xOCAwOTo0MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWRlYnVnLXRva2VucywgLS1pbmRlbnQtb3B0aW9ucwogICAKMjAwMi0wNy0xOCAwOToxOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsIHNubXBsaWIvc25tcC10Yy5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBCdWcgIzU4MjM0NywgZm9yIElyaXggNi41IHN1cHBvcnQuCiAgIFN1Ym1pdHRlZCBieSBKYW4gWWVueWEgS2FzcHJ6YWsKICAgCjIwMDItMDctMTggMDk6MTIgIGR0czEyCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0yLXBhdGNoZXMuNSksIHNubXB0cmFwZC44LmRlZjoKCiAgIEZpeCBtYXJrdXAgcHJvYmxlbSBvbiBzbm1wdHJhcGQgbWFuIHBhZ2UgKEJ1ZyAjNTgzMzI5KQogICAKMjAwMi0wNy0xOCAwOToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUaGUgZml4IGZvciB0aGUgdG1fZ210b2ZmIHByb2JsZW0gb24gQUlYIChCdWcgIzU2NTc2OSkgYWxzbyBhcHBsaWVzIHRvIEFJWCA1CiAgIAoyMDAyLTA3LTE4IDA5OjA2ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jIChWNC0yLXBhdGNoZXMuMSksIGVuY29kZV9rZXljaGFuZ2UuYwo6CgogICBGaXggb2ZmLWJ5LW9uZSBidWZmZXIgb3ZlcmZsb3cgKHBhdGNoICM1NzcyNjEpCiAgIAoyMDAyLTA3LTE4IDA4OjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBHZW5lcmF0ZSBvbmUgY29kZS1maWxlIHBlciB0YWJsZSAodG8gbWF0Y2ggdGhlIGhlYWRlciBzdHJ1Y3R1cmUpLgogICBNeSBhcG9sb2dpZXMgaWYgdGhpcyBpc24ndCBjb3JyZWN0LCBSb2JlcnQgLSBidXQgdGhlIHByZXZpb3VzIGJlaGF2aW91cgogICBzZWVtZWQgdG8gYmUgYnJva2VuLgogICAKMjAwMi0wNy0xOCAwODozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgVGFja2xlIHNvbWUgb2YgdGhlIGltbWVkaWF0ZSBkZWZpY2llbmNpZXMgaW4gdGhlIGZpcnN0IGRyYWZ0IG9sZC1hcGkgY29uZmlnLgogICAoTm93IHRoYXQgV2VzIGhhcyBwb2ludGVkIG1lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24hKQogICAKMjAwMi0wNy0xOCAwODoyMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdGhlICdkZWNsJyBzdWJzdGl0dXRpb24gaGFuZGxpbmcgKHNvIGl0IGRvZXNuJ3QgaW5jbHVkZSB0aGUgaW50ZXJuYWwgdG9rZW4gYXMgd2VsbCkuCiAgIAoyMDAyLTA3LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFByb3ZpZGUgdGhlIG1pc3NpbmcgcGFyYW1ldGVyIGluIGEgcmVhZF9vbmx5IGluc3RhbmNlIHJlZ2lzdHJhdGlvbi4KICAgCjIwMDItMDctMTggMDc6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEJyaW5nIHRoZSAncmVhZF9vbmx5X2ludCcgaW5zdGFuY2UgaGFuZGxlciBpbiBsaW5lIHdpdGggdGhlIHJlc3Qgb2YKICAgdGhlIGNvbnZlbmllbmNlIGluc3RhbmNlIGhhbmRsZXJzLgogICAoYW5kIGV2ZW4gYnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUgYW5kIGRlY2xhcmUgdGhlIHRoaW5nLi4uLikKICAgCjIwMDItMDctMTggMDU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBhbm90aGVyIG1lbW9yeSBsZWFrIGR1ZSB0byBhbiBpbXByb3BlciBpZmRlZmVkIG91dCBzZWN0aW9uIG9mIGNvZGUKICAgCjIwMDItMDctMTggMDQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEknbSBiZWdpbm5pbmcgdG8gcmVncmV0IGV2ZXIgcnVubmluZyBpbmRlbnQgb24gdGhlIGNvZGUgYmFzZS4uLgogICAKMjAwMi0wNy0xNyAxNTo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZjoKCiAgIGRvY3VtZW50IGFuZCBpbnN0YWxsIG1pYjJjLm9sZC1hcGkuY29uZgogICAKMjAwMi0wNy0xNyAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBzZWdmYXVsdCAocG9zc2libHkgY3JlYXRpbmcgbWVtb3J5IGxlYWspOyBhdXRob3IgbmVlZHMgdG8gZXhhbWluZSBjb2RlCiAgIAoyMDAyLTA3LTE3IDA3OjQxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY29uZiwKICAgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaW50X3dhdGNoLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBEYXZlJ3MgYmVpbmcgdW5yZWFzb25hYmx5IHBpY2t5IGFib3V0IGdyYW1tYXIgJiBzcGVsbGluZyBhZ2Fpbi4KICAgSnVzdCBpZ25vcmUgaGltLCBhbmQgaGUnbGwgZ28gYXdheS4uLi4uCiAgIAoyMDAyLTA3LTE3IDA3OjIwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBvbGQgNHgtc3R5bGUgYWdlbnQgQVBJIHVzaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiBtaWIyYy4KICAgSXQgZG9lc24ndCBoYW5kbGUgdHlwZXMgcHJvcGVybHksIGFuZCBJJ20gc3VyZSBJJ2xsIGhhdmUgYnVnZ2VyZWQgdXAgc29tZSBvZgogICB0aGUgY29udHJvbCBzdHJ1Y3R1cmUgaGFuZGxpbmcsIGJ1dCBpdCBzZWVtcyB0byBnZW5lcmF0ZSBzb21ldGhpbmcgdGhhdCdzCiAgIHByZXR0eSBjbG9zZSB0byB0aGUgb2xkIG91dHB1dC4gICBJdCdzIGJldHRlciB0aGFuIG5vdGhpbmcuLi4uLgogICAKMjAwMi0wNy0xNiAyMjo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICByZXN0b3JlIGlubGluZSBmdW5jdGlvbnMgKHNpZ2guIEkgZmVlbCBsaWtlIEknbSBwbGF5aW5nIHJpbmctYXJvdW5kLXRoZS1yb3NpZSkKICAgCjIwMDItMDctMTYgMjE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVuYW1lIHNvbWUgc3RydWN0IG1lbWJlcnMgdG8gbWFrZSBjb2RlIGVhc2llciB0byByZWFkOyBhIGJpdCBvZiByZS1vcmRlcmluZwogICBpbiB0aGUgc2V0IGNvZGU7IG5ldyBmbGFncyBmb3IgbmV3IGFuZCBkZWxldGVkIHJvd3M7IHJvdyBkZWxldGVzIG5vdwogICBhY3R1YWx5IHdvcmshCiAgIAoyMDAyLTA3LTE2IDE5OjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoYW5nZSBjb21wbGV4IG1hY3JvcyBpbnRvIGZ1bmN0aW9ucy4gd291bGQgYmUgbmljZSBpZiBDIGhhZCBpbmxpbmUuCiAgIAoyMDAyLTA3LTE2IDE4OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdW1tLCB0cnkgdXNpbmcgY29ycmVjdCBkZWZpbmUuOi0vCiAgIAoyMDAyLTA3LTE2IDE4OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdGVzdCB0aGF0IG5ldC1zbm1wLWNvbmZpZy5oIGhhcyBiZWVuIGluY2x1ZGVkLCBpbnN0ZWFkIG9mIGFjdHVhbGx5IGluY2x1ZGluZyBpdC4uCiAgIChzaG91bGRuJ3QgdGhpcyByZWFsbHkgYmUgaW4gYWxsIHRoZSBoZWFkZXIgZmlsZXM/KQogICAKMjAwMi0wNy0xNiAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgY29udGFpbmVycwogICAKMjAwMi0wNy0xNiAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTE2IDExOjE2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzIChncnVtYmxlIGdydW1ibGUpCiAgIAoyMDAyLTA3LTE2IDExOjE0ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDExOjAyICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5kZXBlbmQsIG1pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZmFjdG9yeS5jCiAgIAoyMDAyLTA3LTE2IDEwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfY29udGFpbmVyX2luaXRfbGlzdCgpIGluIHN0YXJ0dXAgaW5pdHMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlcwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGcgcGFyYW0gdHlwZSBmcm9tIHZvaWQqIHRvIHN0cnVjdCAqCiAgIAoyMDAyLTA3LTE2IDEwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oOyBhZGQgZmFjdG9yeSwgYmluYXJ5IGFycmF5IC5bY2hdOyBkZXJpdmUKICAgT0JKUyBhbmQgTE9CSlMgZnJvbSBDU1JDUzsgYWRkIChvcHRpb25hbCkgYXV0byBkZXBlbmRlbmN5IGdlbmVyYXRpb24KICAgCjIwMDItMDctMTYgMDk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA3LTE2IDA5OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgc3RydWN0IHN1YnRyZWUgLT4gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE2IDA5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgbGFzdCByZW1haW5pbmcgcmVmcyB0byBub3cgZGVmdW5jdCBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGdlbmVyaWMgYmluYXJ5IGFycmF5IGNvbnRhaW5lciBleHRyYWN0ZWQgZnJvbSBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oOyBuZXcgdHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9pbmRleCAob2lkIHB0ciArIGxlbikKICAgCjIwMDItMDctMTYgMDk6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBnZW5lcmljIGNvbnRhaW5lciBpbnRlcmZhY2U7IHVzZSBuZXcgbmV0c25tcF9pbmRleCBpbnN0ZWFkIG9mCiAgIG9pZF9hcnJheV9oZWFkZXI7IHJlbmFtZSBhcnJheV9ncm91cCAtPiByZXF1ZXN0X2dyb3VwCiAgIAoyMDAyLTA3LTE2IDA5OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpdGVyYXRvcnM7IG1vcmUgZnVuY3Rpb24gdHlwZWRlZnM7IHJlbmFtZSBzb21lIGZ1bmMgcHRycywgYWRkIGZpbmRfbmV4dCwKICAgZ2V0X3N1YnNldCwgZ2V0X2l0ZXJhdG9yLCBmb3JfZWFjaCwgbmNvbXBhcmU7IGFkZCBhYmlsaXR5IHRvIGhhdmUgbmVzdGVkCiAgIGNvbnRhaW5lcnM7IG1vcmUgdXRpbGl0eSByb3V0aW5lczsgY29udmVuaWVuY2UgbWFyY3Jvczsgc3RhcnQgYWRkaW5nIGNvbW1lbnRzCiAgIAoyMDAyLTA3LTE2IDA5OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaDoKCiAgIGRlY2xhcmF0aW9ucyBmb3IgYSBnZW5lcmljIGZhY3RvcnkKICAgCjIwMDItMDctMTYgMDg6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2R5bml4LmMsIG1lbW9yeV9ocHV4LmMKLCB2bXN0YXRfZHluaXguYywgdm1zdGF0X2hwdXguYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gYnVnIHJlcG9ydCA1ODE2MTggKGFsc28gYXBwbGljYWJsZSB0byBkeW5peCkKICAgUHJvdmlkZWQgYnkgTmljaG9sYXMgTC4gTmlnYXkKICAgCjIwMDItMDctMTYgMDY6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICByZW1vdmUgIm91ciIgcHJvYmxlbSBhbmQgdXNlIG9sZGVyICJ1c2UgdmFycyIgaW5zdGVhZCBmb3Igb2xkZXIgcGVybC4KICAgICAodGhpcyBzaG91bGQgbWFrZSBpdCB3b3JrIHdpdGggcGVybCA1LjAwNS4gIENvdWxkIHNvbWUgb25lIHRlc3QgdGhpcwogICAgICBmb3IgbWU/KQogICAKMjAwMi0wNy0xNSAwNjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gbmFtZXMgb2YgbmV0c25tcF9zdWJ0cmVlIGVsZW1lbnRzIGNoYW5nZWQKICAgCjIwMDItMDctMTUgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE1IDA1OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIFNvbWUgcmVhbGx5IG5hc3R5IGhhY2tzIHRvIGdldCBjb2xvcml6ZWQgdGFibGVzIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTE0IDIwOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYi50OgoKICAgY29tbWVudCBvdXQgYnJva2VuIHRlc3RzIGZvciBub3cgKFhYWCBtYXJrZWQpCiAgIAoyMDAyLTA3LTE0IDIwOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBnZXRidWxrLgogICAKMjAwMi0wNy0xNCAyMDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEEgbmV3IGZ1bmN0aW9uIHRvIGNhbGwgYSBzdWItaGFuZGxlciBidXQgcGFzc2luZyBpdCBvbmx5IG9uZSByZXF1ZXN0IHRvIGhhbmRsZS4KICAgCjIwMDItMDctMTAgMjE6MjEgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRlZmluZSBMT0dfREFFTU9OLCBzaW5jZSB3aW5kb3dzIGRvZXNuJ3QgaGF2ZSBpdAogICAKMjAwMi0wNy0xMCAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIGRlZmluZSBvZiBpbl9hZGRyX3QsIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiBuZXQtc25tcC90eXBlcy5oCiAgIAoyMDAyLTA3LTEwIDAyOjM2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xMCAwMjozNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGRvbid0IHVzZSAwIGluICVwIGZvcm1hdCBzcGVjaWZpZXJzCiAgIAoyMDAyLTA3LTEwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gZml4IHNvbWUgaG9ycmlibGUgaW5kZW50IGJyb2tlbiBmb3JtYXR0aW5nCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSByZW1vdmUgc29tZSBvYnNvbGV0ZSB2YXJpYWJsZXMKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gcmVmbGVjdCBjaGFuZ2VkIGZ1bmN0aW9uIG5hbWVzIGZyb20gYWdlbnRfcmVnaXN0cnkKICAgCjIwMDItMDctMTAgMDI6MzIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgICAtIGNoYW5nZXMgZHVlIHRvIHJlbmFtaW5nIG9mIHN0cnVjdCBzdWJ0cmVlIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gTk9URSBNRU1PUlkgTEVBSyAod2hpY2ggSSBjYW4ndCBzZWUgaG93IHRvIGZpeCAtLSBuZXcgYWdlbnQgQVBJCiAgICAgICBleHBlcnRzIHBsZWFzZSBleGFtaW5lKQogICAKMjAwMi0wNy0xMCAwMjoyOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBuYW1lLCBzdGFydCwgZW5kIG1lbWJlcnMgYXJlIG5vdyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdG8gcmVkdWNlCiAgICAgICB3YXN0ZWQgbWVtb3J5IChieSBhIGZhY3RvciBvZiA1IG9yIHNvKQogICAgIC0gZnVuY3Rpb25zIGFyZSByZW5hbWVkIGNvbnNpc3RlbnRseQogICAKMjAwMi0wNy0xMCAwMjoyMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwKICAgbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0wOSAwNjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSBjYWNoZV9pZCBzdG9yYWdlIHdoZW4gY2xvc2luZyBzZXNzaW9uCiAgIAoyMDAyLTA3LTA5IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBqdXN0IGNhbGwgbmV0c25tcF9kc19zaHV0ZG93bigpIG9uY2UgaW4gc25tcF9zaHV0ZG93bigpCiAgIAoyMDAyLTA3LTA5IDA0OjE1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG5ldHNubXBfZml4dXBfbWliX2RpcmVjdG9yeSgpCiAgIAoyMDAyLTA3LTA5IDAzOjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIGEgY2FzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA4IDIyOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgZXh0ZXJuIEMgZm9yIEMrKyBjb21waWxlcwogICAKMjAwMi0wNy0wOCAwNzoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgICAtIHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTA3LTA3IDE5OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTA3IDE5OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDctMDcgMTk6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgcHJvYy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIGhvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMi0wNy0wNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbWFrZSBwYXJhbSBjb25zdDsgZml4IGNvbXBpbGUgY29uc3Qgd2FybmluZwogICAKMjAwMi0wNy0wNyAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZml4IG1lbW9yeSBsZWFrOyBwcmVwIGEgZmV3IGNvbW1lbnRzIGZvciBpbmRlbnQKICAgCjIwMDItMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yLnByZTEgKQogICAKMjAwMi0wNy0wNiAxNDoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHByb2plY3QgdmVyc2lvbiB0byA1LjAuMgogICAKMjAwMi0wNy0wNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgc25tcHRyYXBkIGlzIGFjdHVhbGx5IGJ1aWx0IGluIHRoZSBhcHBzIGRpcmVjdG9yeSwgbm90IHRoZSBhZ2VudCBkaXJlY3RvcnkuCiAgIAoyMDAyLTA3LTA1IDExOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbGFyaWZ5IGRpcmVjdGlvbnMgZm9yIG9idGFpbmluZyBwZXJsL1NOTVAgbW9kdWxlLgogICAKMjAwMi0wNy0wNSAwNToxOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSAuLi4KICAgCjIwMDItMDctMDUgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvY2xpZW50LmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBzeXNPYmplY3RJRCB3YXMgYmVpbmcgcmV0dXJuZWQgbWludXMgaXRzIGxhc3Qgc3ViLWlkZW50aWZpZXIgYmVjYXVzZQogICAgICAgdGhlIGxlbmd0aCB2YXJpYWJsZSBoYWQgbm90IGJlZW4gdXBkYXRlZCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgaXQKICAgICAgIGlzIG5vdyBsb25nZXIuICBDb2RlIGNoYW5nZWQgdG8gdXNlIHNpemVvZigpIGluc3RlYWQsIHNvIHRoaXMgd29uJ3QKICAgICAgIGhhcHBlbiBhZ2Fpbi4gIFJlcG9ydGVkIGJ5IFN0aWFuIFNvaWxhbmQgKGJ1ZyAjNTc3NDM5KS4KICAgCjIwMDItMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcAogICAKMjAwMi0wNy0wNCAwNzowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgaGFuZGxpbmcgb2Ygb3BhcXVlIHBvaW50ZXIgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzIHRvCiAgICAgICBhdm9pZCBib3RoIG11bHRpcGxlIGZyZWUoKSBwcm9ibGVtIGFuZCB1bm5lY2Vzc2FyeSBjb3B5aW5nLgogICAKMjAwMi0wNy0wNCAwNjowMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIChWNC0yLXBhdGNoZXMuWzUsOV0pLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBOZXR3b3JrRGlzayBwYXRjaCAjNTU0NTU0CiAgIAoyMDAyLTA3LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgKICAgKFY0LTItcGF0Y2hlcy5bNSwxXSksIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTkZTIGZpbGVzeXN0ZW0gcGF0Y2ggIzU1NDU1MwogICAoc2ltcGxpZmllZCB0byBhdm9pZCB0aGUgcmUtaW5kZW50YXRpb24gLSB3aGljaCBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlCiAgICB3aGF0J3MgY2hhbmdlZC4gIFRoZSB3aG9sZSBIb3N0UmVzIGdyb3VwIG5lZWRzIGNsZWFuaW5nIHVwIGFueXdheSEpCiAgIAoyMDAyLTA3LTA0IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnN1cmUgdHJhbnNwb3J0IG9wYXF1ZSBkYXRhIGlzbid0IG11bHRpcGx5IGFzc2lnbmVkCiAgIChhbmQgaGVuY2UgbXVsdGlwbHkgZnJlZWQpIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cy4KICAgRGF0YWdyYW0tYmFzZWQgdHJhbnNwb3J0cyBkb24ndCBzdWZmZXIgZnJvbSB0aGlzIHByb2JsZW0uCiAgIEJhc2VkIG9uIFBhdGNoIDU3Mzc3MQogICAKMjAwMi0wNy0wMyAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgYmUgcHJlY2lzZSBhYm91dCB3aGF0IGZpbGUgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wKICAgCjIwMDItMDctMDMgMTQ6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IG1pbm9yIGdyYW1tYXIgZXJyb3JzOyBhZGQgZGVzY3IgZm9yIG1pYjJjLmFycmF5LXVzZXI7IGFkZCBzZWN0aW9uIGhlYWRlcgogICBmb3IgZ2VuZXJhdGluZyBoZWFkZXIgZGVmaW5pdGlvbiBmaWxlcwogICAKMjAwMi0wNy0wMyAxMzoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBsaWJyYXJ5L3N5c3RlbS5oOgoKICAgbW92ZSBpbmNsdWRlIGZvciBpbl9hZGRyX3QgdG8gbmV0LXNubXAvdHlwZXMuaCwgd2hlcmUgaW5fYWRkcl90IGlzIGRlZmluZWQKICAgZm9yIHN5c3RlbXMgdy9vdXQgbmV0aW5ldC9pbi5oCiAgIAoyMDAyLTA3LTAzIDEyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBtb3JlIHR3ZWFrcyBub3RpY2VkIG9uIHRoZSBtYWlsaW5nIGxpc3QKICAgCjIwMDItMDctMDMgMDg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIG1ha2UgdGVzdCBjbGVhbnVwcyB0ZXN0LnBsCiAgIAoyMDAyLTA3LTAzIDAzOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYyAoVjQtMi1wYXRjaGVzLjEpLCB1dGlsX2Z1bmNzLmMKOgoKICAgU2h1dCB0aGUgYWdlbnQgZG93biBjbGVhbmx5IGJlZm9yZSByZXN0YXJ0aW5nLgogICBUaGlzIGNsb3NlcyBhbnkgU05NUC9BZ2VudFggcG9ydHMgYXMgd2VsbC4KICAgCjIwMDItMDctMDMgMDM6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE9JRCBzdWItaWRlbnRpZmllcnMgYXJlIHVuc2lnbmVkLCBzbyB0cmVhdGluZyB0aGVtIGFzIHNpZ25lZCBjYW4KICAgZ2l2ZSB0aGUgd3JvbmcgcmVzdWx0cyB3aXRoIGxhcmdlIHZhbHVlcy4KICAgCjIwMDItMDctMDMgMDM6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmggKFY0LTItcGF0Y2hlcy41KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgRW5zdXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkLgogICAKMjAwMi0wNy0wMyAwMjozNCAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0aW5nIGZvciA8c3lzL2Rpc2tsYWJlbC5oPiByZXF1aXJlcyA8bWFjaGluZS90eXBlcy5oPiBvbiBOZXRCU0QgMS41LgogICBSZXBvcnRlZCBieSBGZWxpY2lhIE5lZmYuCiAgIChBcHBhcmVudGx5IGZyb20gdGhlIE5ldEJTRCBidWcgZGF0YWJhc2UgLSB3aHkgdGhleSBkaWRuJ3QgdGVsbCB1cyBhYm91dAogICBpdCBpcyBhIG15c3RlcnkgdG8gbWUuLi4uKQogICAKMjAwMi0wNy0wMyAwMjoxOSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBzeXNPYmplY3RJRCBhcyByZXBvcnRlZCBpbiB0aGUgY29uZmlndXJlIC0taGVscCBvdXRwdXQuCiAgIChUaGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgY29ycmVjdCAtIGl0J3MganVzdCB0aGUgaGVscCBvdXRwdXQgdGhhdCdzIHdyb25nKS4KICAgU3BvdHRlZCBieSBTYW5kaHlhIFNhdHlhbmFyYXlhbi4KICAgCjIwMDItMDctMDIgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICB1cGRhdGUgdGV4dCBmb3IgdmFyaW91cyAuY29uZiBmaWxlcwogICAKMjAwMi0wNy0wMiAxMzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgZml4ZXMgbm90ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBieSBQYXRyaWNlIEthZGlvbmlrIDxrYWRpb25pa0BlbnNlaXJiLmZyPgogICAKMjAwMi0wNy0wMiAwMjozOSAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSAnc25tcGQnIGFuZCAnc25tcHRyYXBkJyBiaW5hcnkgbmFtZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHBhdGhzCiAgIHdoZW4gc2V0dGluZyB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuCiAgIAoyMDAyLTA3LTAxIDA3OjUzICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuOCksIGFzbjEuYzoKCiAgIEVuY29kZS9EZWNvZGUgT0lEcyBvZiB0aGUgZm9ybSAyLlggKFggPiA0MCkgY29ycmVjdGx5LgogICAKMjAwMi0wNy0wMSAwMjo0MCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggaG9ycmlibGUgZm9ybWF0dGluZyBpbiBoZWxwIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAyLTA3LTAxIDAyOjIzICBkdHMxMgoKICAgKiBzZWRzY3JpcHQuaW46CgogICBQaWNrIHVwIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gZm9yIHRoZSByb290IG9mIHRoZSBVQ0QgZXh0ZW5zaWJsZSBhZ2VudCB0YWJsZXMKICAgKHNvIHRoYXQgdGhlIEVYQU1QTEUuY29uZiBmaWxlIGdldHMgc2V0IHVwIHdpdGggdGhlIGNvcnJlY3QgbnVtZXJpYyBPSURzKQogICAKMjAwMi0wNi0yOCAwNjo0NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdGNwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yOCAwNDo0MSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgVXBkYXRlIGRlZmF1bHQgc3RvcmUgcmV0cmlldmFsIGZ1bmN0aW9ucyB0byB1c2UgdGhlIGNvcnJlY3QgbmFtZS4KICAgCiAgIE5vdGUgdGhhdCB0aGlzIHRlc3Qgc2NyaXB0IGFwcGVhcnMgdG8gaW5jbHVkZSB0d28gaW5maW5pdGUgbG9vcHMuCiAgIEknbSBub3QgY2xlYXIgaG93IHRoaXMgaXMgZXhwZWN0ZWQgdG8gcnVuIHN1Y2Nlc3NmdWxseSA/CiAgIAoyMDAyLTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmVtb3ZlIHJlZmVyZW5jZSB0byBub24tZXhpc3RlbnQgZGVndWdnaW5nIGZ1bmN0aW9uLgogICAKMjAwMi0wNi0yOCAwNDozNyAgZHRzMTIKCiAgICogcGVybC9tYW5hZ2VyLzogTWFrZWZpbGUuUEwsIGRpc3BsYXl0YWJsZS5wbSwKICAgZ2V0VmFsdWVzLnBtLCBtYW5hZ2VyLnBtLCBzbm1wdG9zcWw6CgogICBCcmluZyBwZXJsICdtYW5hZ2VyJyBtb2R1bGUgdW5kZXIgdGhlIE5ldFNOTVAgYmFubmVyCiAgIChib3RoIGluIHRlcm1zIG9mIG1vZHVsZSBncm91cCBuYW1lLCBhbmQgcmVmZXJlbmNlcyB0byAndWNkLXNubXAnKS4KICAgUmVtb3ZlIHNvbWUgVUNELXNwZWNpZmljIHNldHRpbmdzLgogICAKICAgTm90ZSB0aGF0IHNubXB0b3NxbCBzdGlsbCByZWZlcnMgZXhwbGljaXRseSB0byBXZXMnIFVDRCBlbWFpbCBhZGRyZXNzLAogICBhbmQgbWFuYWdlci5wbSB0byBXZXMnIFVDRCBmaWxlc3RvcmUgcGF0aC4gIFRoZSByZWxldmFudCBsaW5lcyBoYXZlCiAgIGJlZW4gaGlnaGxpZ2h0ZWQsIHRvIGVuY291cmFnZSBhbnlvbmUgd2lzaGluZyB0byB1c2UgdGhpcyB0byBjaGFuZ2UgdGhlbS4KICAgCjIwMDItMDYtMjggMDQ6MTIgIGR0czEyCgogICAqIHBlcmwvOiBBbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIG1hbmFnZXIvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgY2hlY2tpbmcgZm9yICJpbnRlcm5hbCIgcHJlcmVxdWlzaXRlcywgc28gdGhhdCAicGVybCBNYWtlZmlsZS5QTCIKICAgYXQgdGhlIHRvcCBsZXZlbCB3aWxsIHdvcmsgLSBldmVuIG9uIGEgcHJpc3RpbmUgc3lzdGVtLgogICAKICAgUW46CiAgICAgSXMgaXQgbmVjZXNzYXJ5L2Rlc2lyYWJsZSB0byBzZXBhcmF0ZSB0aGUgTmV0U05NUCBtb2R1bGVzIHRvIHRoaXMgZXh0ZW50PwogICBXb3VsZCBpdCBub3QgYmUgc2ltcGxlciB0byBoYXZlIGFsbCBvZiB0aGUgbWFpbiAucG0vLnhzIGZpbGVzIGluIGEgc2luZ2xlCiAgIE5ldFNOTVAgZGlyZWN0b3J5LCBhbmQgY29tcGlsZS9pbnN0YWxsIHRoZW0gYWxsIGZyb20gdGhlcmU/CiAgIAoyMDAyLTA2LTI4IDAxOjQ1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciAtLXdpdGgtZW50ZXJwcmlzZSAoZXQgYWwpIGJlaW5nIGludm9rZWQgd2l0aG91dCBhIHZhbHVlLCBhbmQgYm9tYiBvdXQuCiAgIAoyMDAyLTA2LTI3IDIxOjQzICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBuZXcgUkVBRE1FIGRldGFpbmxpbmcgdGhlIHVzZSBvZiBTRklPIHRvIGNpcmN1bXZlbnQgdGhlIDI1NSBmZCBsaW1pdCBvbgogICBzb2xhcmlzLgogICAKMjAwMi0wNi0yNyAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGNoYW5naW5nIGFycmF5OyBhZGQgbmV0c25tcF90YWJsZV9hcnJheV9yZW1vdmVfcm93KCkKICAgCjIwMDItMDYtMjcgMDQ6MTUgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgU29tZSB2ZXJzaW9ucyBvZiAnbWFrZWRlcGVuZCcgKGUuZy4gUmVkSGF0IDcuMSksIGNhbid0IGhhbmRsZSAiLW9zdWZmaXgiCiAgIGFzIGEgc2luZ2xlIG9wdGlvbi4gIEFsbCB2ZXJzaW9ucyBzZWVtIGhhcHB5IHdpdGggIi1vIHN1ZmZpeCIgc28gdXNlIHRoYXQuCiAgIAoyMDAyLTA2LTI3IDAzOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIEVOVl9TRVBBUkFUT1JfQ0hBUiByYXRoZXIgdGhhbiBoYXJkd2lyaW5nICc6JyBpbiBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5CiAgIChhcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0KQogICAKMjAwMi0wNi0yNyAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdWRwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yNyAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfbWliLmMKOgoKICAgVmFsaWRhdGUgbmV3IHNubXBFbmFibGVBdXRoZW5UcmFwcyB2YWx1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KICAgU3BvdHRlZCAmIGZpeGVkIGJ5IFNoYW50aGEgS3VtYXJhCiAgIAoyMDAyLTA2LTI1IDE0OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgQVBQVE9QUyAoLUNxKSBmb3Igc3VwcHJlc3Npbmcgb3V0cHV0IG9mIHNldCByZXN1bHRzIG9uIHN1Y2Nlc3MKICAgCjIwMDItMDYtMjUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFwcGx5IHBhdGNoICM1NTk4NDggdG8gdXNlIHRoZSAvcHJvYyBwc2V1ZG8tZmlsZXN5c3RlbSB1bmRlciBMaW51eAogICAocmF0aGVyIHRoYW4gcGFyc2luZyB0aGUgb3V0cHV0IG9mIHBzKQogICAKMjAwMi0wNi0yNSAwODo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDaGVjayBmb3IgJ2FpeDQnICh3aGljaCBpcyB0aGUgdG9rZW4gZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlciBmaWxlKQogICByYXRoZXIgdGhhbiAnYWl4Jy4gICBTZWUgYnVnICM1NjU3NjkKICAgCjIwMDItMDYtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFRyZWF0ICcwJyBhcyBhbiBpbnZhbGlkIGluZGV4IGZvciBhICJzaW1wbGUgdGFibGUiLgogICAKMjAwMi0wNi0yNSAwNzozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzeXNDb250YWN0LjAgYW5kIHN5c0xvY2F0aW9uLjAKICAgY29uZmlndXJhdGlvbiB0b2tlbnMuCiAgIAoyMDAyLTA2LTI1IDA2OjQwICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICBkZWZhdWx0X3N0b3JlLjMudG9wOgoKICAgICAtIGFkZCBuZXRzbm1wXyBwcmVmaXggdG8gZGVmYXVsdF9zdG9yZSBmdW5jdGlvbnMKICAgCiAgICAgLSBjbGVhbiB1cCBtYW5wYWdlIGEgYml0CiAgIAogICAgIC0gZml4IGJyZWFrYWdlIGluIGdlbmVyYXRpb24gb2YgZGVmYXVsdF9zdG9yZS4zLmggZHVlIHRvIGF1dG8taW5kZW50YXRpb24KICAgICAgIG9mIGRlZmF1bHRfc3RvcmUuaAogICAKMjAwMi0wNi0yNSAwMjo1NSAgamJwbgoKICAgKiBFWEFNUExFLmNvbmYuZGVmIChWNC0yLXBhdGNoZXMuMyksIEVYQU1QTEUuY29uZi5kZWY6CgogICAgIC0gbWVudGlvbiB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24gZXQgYWwuIGluIHNubXBkLmNvbmYgbWFrZXMgdGhlbQogICAgICAgcmVhZC1vbmx5CiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugc3ludGF4IG9mIGFsbCBleGFtcGxlIGNvbW1hbmQgbGluZSB0b29scyB0byB1c2UgbmV3ZXIKICAgICAgIC1jIENPTU1VTklUWSBzeW50YXggbm90IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAoyMDAyLTA2LTI0IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG1ha2UgYnVmZmVyIHNpemUgaW5jcmVhc2Ugbm90ZSBhIGRlYnVnIHN0YXRlbWVudCByYXRoZXIgdGhhbiBhIGdlbmVyaWMKICAgbG9nIHN0YXRlbWVudC4KICAgCjIwMDItMDYtMjMgMTg6NDAgIGRyaWVodWlzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSGFuZGxlIENPVU5URVI2NCBpbiBfX3RyYW5zbGF0ZV9hc25fdHlwZS4KICAgCjIwMDItMDYtMjMgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNjcmlwdCBhbmQgdGhlIGxhbmd1YWdlIGl0IGhvdXNlcy4KICAgICAobWFuIHBhZ2UgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgY29udGFpbmVkIHBvZCBkb2N1bWVudGF0aW9uKQogICAKMjAwMi0wNi0yMyAxNTowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIHVwZGF0ZSB0byByZWZlcmVuY2UgdG9wIGxldmVsIE1ha2VmaWxlLlBMCiAgIAoyMDAyLTA2LTIzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNC0yLXBhdGNoZXMuMSksIFNOTVAueHM6CgogICBmaXggcmVwb3J0ZWQgYnkgV2lsbGVtIERla2tlciBmb3IgV2luZG93cy4gIEJ1ZyAjNTQzMTk0IGZpeGVkLgogICAKMjAwMi0wNi0yMiAwODozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG1ldGhvZG9sb2dpZXMKICAgCjIwMDItMDYtMjEgMTY6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZmluYWwgKGhvcGVmdWxseSEpIGZpeCBmb3IgcGFyc2luZyBpcCBhZGRyZXNzZXMgZnJvbQogICAiRmNvLiBKYXZpZXIgUmlkcnVlam8iIDxhY2JyaXBlZkBzaS5laHUuZXM+CiAgIAoyMDAyLTA2LTE5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZnJvbSBkb3h5Z2VuCiAgIAoyMDAyLTA2LTE5IDExOjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmludF93YXRjaC5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIHNjYWxhciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBnZW5lcmF0aW5nIHNjYWxhciBjb2RlLgogICAKMjAwMi0wNi0xOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgY2xlYW4gdXAgbXVsdGktbGluZSBjb21tZW5kIHdoaWNoIHdhcyBtZXNzZWQgdXAgYnkgaW5kZW50LgogICAKMjAwMi0wNi0xOSAxMTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIGFkZCBzdXBwb3J0IGZvciBwcm9tcHRpbmcgb2YgdW5rbm93biBwYXJhbWV0ZXJzIHRvIGFsaWFzZXMuCiAgIC0gbWlzYyBvdGhlciBpbXByb3ZlbWVudHMgKGxpa2UgInJlaGFzaCIpCiAgIAoyMDAyLTA2LTE5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggZm9yIG5ldyBkZWZhdWx0IHN0b3JlIEFQSQogICAKMjAwMi0wNi0xOSAxMToyOSAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBBUkdHR0dHRwogICBJIGxvdmUgcGVybC4KICAgSSBoYXRlIHBlcmwncyBtYWtlIHN5c3RlbS4KICAgSSBoYXRlIHRoZSBmYWN0IHRoYXQgcGVybCBzZWdmYXVsdHMgaWYgR2V0T3B0aW9ucygpIGlzIGNhbGxlZCBtb3JlCiAgIHRoYW4gb25jZS4KICAgc2lnaC4KICAgVGhpcyBob3BlZnVsbHkgd2lsbCBmaXggdGhlIHBlcmwgbW9kdWxlIGJ1aWxkIHJvdXRpbmVzIHNvIGl0IGF0IGxlYXN0CiAgIHdvcmtzIChidXQgaXQncyBzdGlsbCB1Z2x5IGFuZCBjb3VsZCB1c2UgbW9yZSBjbGVhbmluZykuCiAgIAoyMDAyLTA2LTE5IDA3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGluZmludGUgbG9vcCBhbmQgYWRkIGRlYnVnIGluIHJlbW92ZV9kZWxlZ2F0ZWQKICAgCjIwMDItMDYtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIE5VTEwgdGhlIHByaXYgcG9pbnRlciBvbiBzZXNzaW9uIGR1cGxpY2F0aW9uLiAgdGhhbmtzIHRvIHJleml0b3oKICAgCjIwMDItMDYtMTcgMDY6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZWQgS2F0c3VoaXNhJ3MgZW1haWwgYWRkcmVzcywgb24gcmVxdWVzdAogICAKMjAwMi0wNi0xNCAwNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzU2OTAyMTogZnJvbSBMYXVyaSBNeWxsYXJpCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gdGhlIHRhYmxlIGl0ZXJhdG9yIHN1cHBvcnQuCiAgIAoyMDAyLTA2LTE0IDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBsaWVkIHBhdGNoICM1NjkwMjAgZnJvbSByZXppdG96IG9uIElSQyB0byBmaXggbm9uLWluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAyLTA2LTE0IDAzOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBBZGQgKG51bGwpIGNvbnRleHQsIHRvIGJyaW5nIGludG8gbGluZSB3aXRoIHRoZSB2NSByZWdpc3RyeSBBUElzLgogICBGaXhlcyBidWcgNTY4NTgwLgogICAKMjAwMi0wNi0xNCAwMjoyNyAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgVXNlIG1hdGNoaW5nICcgYW5kICIgcXVvdGVzIGZvciBBSVggY29uZmlndXJlIHRlc3QuCiAgIE1lbnRpb25lZCBpbiBwYXNzaW5nIGluIGJ1ZyA1NjU3NjkuCiAgIAoyMDAyLTA2LTEzIDE0OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBmaXggZGVmYXVsdF9zdG9yZSByb3V0aW5lcwogICAKMjAwMi0wNi0xMiAwNjo0MyAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBCcmluZyBXaW5kb3dzIE9JRCB1c2FnZSBpbnRvIGxpbmUgd2l0aCB0aGUgbWFpbiBjb25maWcgZmlsZSBzZXR0aW5ncy4KICAgCjIwMDItMDYtMTIgMDY6MzcgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDb3JyZWN0IHRoZSBkZWZhdWx0IEVudGVycHJpc2UgT0lEIHVzZWQgaW4gdHJhcHMsIHRvIGF2b2lkIGEgcmVwZWF0ZWQgMAogICBzdWJpZGVudGlmaWVyLiAgKEZpeGVzIGJ1ZyAjNTY2OTE3KQogICAKMjAwMi0wNi0xMiAwNToxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lICdsZW5ndGgnIGFzIGEgc2lnbmVkIHZhcmlhYmxlLCBzbyBpdCBjYW4gaGFuZGxlIGFuIGVycm9yIHZhbHVlIG9mIC0xLgogICBSZXBvcnRlZCBieSBKb2FraW0gQWx0aGluaS4KICAgCjIwMDItMDYtMTIgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2Ugc3VyZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV4dCBsaW5rIGlzIHByb3Blcmx5IHNhdmVkLCBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIFByb2JsZW0gZGlzY292ZXJlZCBieSBIdWdvIENhY290ZS4KICAgCjIwMDItMDYtMTIgMDI6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9hZ2VudF9pbmRleC5oLCBhZ2VudC9hZ2VudF90cmFwLmgKLCBhZ2VudC9hbGxfaGVscGVycy5oLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2J1bGtfdG9fbmV4dC5oLCBhZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L211bHRpcGxleGVyLmgsIGFnZW50L251bGwuaAosIGFnZW50L29sZF9hcGkuaCwgYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGFnZW50L3NlcmlhbGl6ZS5oLCBhZ2VudC9zZXRfaGVscGVyLmgsCiAgIGxpYnJhcnkvY211X2NvbXBhdC5oLCBsaWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsIGxpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVRFBEb21haW4uaCwgbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIGxpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGxpYnJhcnkvc25tcF9zZWNtb2QuaCwgbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBsaWJyYXJ5L3VjZF9jb21wYXQuaDoKCiAgIFN1cHBseSBtaXNzaW5nICNpZm5kZWYvI2RlZmluZS8jZW5kaWYgYW5kIGV4dGVybiAiQyIge30gd3JhcHBlcnMKICAgCjIwMDItMDYtMTEgMTc6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVtb3ZlIHNwdXJpb3VzIHByaW50ZiB0byBzdGRlcnIKICAgCjIwMDItMDYtMTEgMTQ6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhZGQgZXh0ZXJuICJDIjsgYWRkIHZvaWRfYXJyYXkgc3RydWN0CiAgIAoyMDAyLTA2LTExIDE0OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHRzZWFyY2g7IHVzZSBuZXcgY29udGFpbmVyIGluc3RlYWQKICAgCjIwMDItMDYtMTEgMTQ6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgY29udGFpbmVyIGZvciBzZWNvbmRhcnkgaW5kZXgKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNvbnRhaW5lciB0byBoZWFkZXJzOyBhZGQgY29udGFpbmVyLmMKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgaW5pdCBmdW5jdGlvbnMgZm9yIGJhc2ljL3NvcnRlZCBjb250YWluZXIKICAgCjIwMDItMDYtMTEgMTQ6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBtb3JlIG1ldGhvZHMgZm9yIGJhc2ljIGNvbnRhaW5lcjsgYWRkIHNvcnRlZCAod2lsbCBwcm9iYWJseSByZW5hbWUpIGNvbmF0aW5lcgogICAKMjAwMi0wNi0xMSAxMjoyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdWRlczsgYWRkIGV4dGVybiAiQyIgZm9yIF9fY3BsdXNwbHVzCiAgIAoyMDAyLTA2LTExIDExOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBuZXRzaCwgc25tcHNoOgoKICAgcmVuYW1lZCBzbm1wc2ggdG8gbmV0c2gsIGFzIEkgbGlrZSB0aGUgbmFtZSBiZXR0ZXIgYW5kIGl0IGFwcGVhbHMgdG8gYQogICB3aWRlciBudW1iZXIgb2YgcGVvcGxlLgogICAKMjAwMi0wNi0xMCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gZGVsZXRpbmcgYW4gYXNwIHBvaW50ZXIsIG1ha2Ugc3VyZSBpdCBpc24ndCBpbiB0aGUgZGVsZWdhdGVkIGxpc3QKICAgCjIwMDItMDYtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHBhcnNlX29uZV9vaWRfaW5kZXggdG8gYWxsb3cgdG9vIHNob3J0IElQIGFkZHJlc3Mgd2hlbiBjb21wbGV0ZSBpcwogICBzcGVjaWZpZWQ7IGFkZCBuZXRzbm1wX29pZDJjaGFycyAmIG5ldHNubXBfb2lkMnN0cgogICAKMjAwMi0wNi0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgZGVmaW5lcwogICAKMjAwMi0wNi0xMCAwNzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9NYWtlZmlsZS5QTDoKCiAgIFRvcCBsZXZlbCBwZXJsIE1ha2VmaWxlLlBMIHRvIGluc3RhbGwgdGhlIHdob2xlIGJ1bmNoIHVuZGVybmVhdGguCiAgIFRoaXMgc2hvdWxkIG5vdyBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGxvd2VyIGxldmVsIG1ha2VmaWxlcyBmb3IKICAgc2ltcGxpY2l0eS4KICAgCjIwMDItMDYtMTAgMDc6MjcgIGR0czEyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgQWNrbm93bGVkZ2Uga25vd24gZmFpbGluZyB0ZXN0cy4KICAgVGhpcyBtZXNzYWdlIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhlIHByb2JsZW0gaGFzIGJlZW4gaXNvbGF0ZWQgYW5kIGZpeGVkLgogICAKMjAwMi0wNi0xMCAwNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgZm9yIGlwYWRkcmVzcyBidWlsZGluZy9wYXJzaW5nIG9mIE9JRCBpbmRleGVzLgogICAKMjAwMi0wNi0xMCAwMjowNyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIE1lbnRpb24gdGhlIG90aGVyIHBlcmwgbW9kdWxlcywgaW50cm9kdWNlZCB3aXRoIHY1IChwYXJ0aWN1bGFybHkgJ2RlZmF1bHRfc3RvcmUnKQogICAKMjAwMi0wNi0xMCAwMToyOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE5ldyBlbnRyeSBkZXNjcmliaW5nIHBvc3NpYmxlIHByb2JsZW1zIHdpdGggdHJhcCBoYW5kbGVycy4KICAgCjIwMDItMDYtMDggMjE6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA2LTA4IDIwOjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBicmVhayBwZXJsIG1ha2VmaWxlIGNyZWF0aW9uIGludG8gc2VwZXJhdGUgc3RlcDsgb25seSBjbGVhbiBwZXJsIGRpcmVjdG9yeQogICBpZiB0aGVyZSBpcyBhIG1ha2VmaWxlCiAgIAoyMDAyLTA2LTA4IDIwOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgcGVybHRlc3QgdGFyZ2V0IHRvIG1ha2UgdGVzdCBpbiBhbGwgcGVybCBkaXJlY3RvcmllcwogICAKMjAwMi0wNi0wOCAwOTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIGZpeCB0byBkZWFsIHdpdGggdXBkYXRlZCBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTA2LTA4IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIHRvIFNRTC1TdGF0ZW1lbnQgcmVxdWlyZW1lbnQgb2YgMS4wMDQKICAgCjIwMDItMDYtMDggMDY6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG1pYiBpbml0IGNvZGUgZnJvbSBDIHNubXBfdHJhbnNsYXRlX29iaiBjYWxsCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluaXRfc25tcCBpbnNpZGUgdHJhbnNsYXRlT2JqCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBjaGFuZ2UgdmVyc2lvbiB0byAwLjEKICAgCjIwMDItMDYtMDggMDY6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIEEgZmV3IGNsZWFudXBzIHRvIGlmY29uZmlnIGFuZCBuZXRzdGF0IGNvbW1hbmRzCiAgIAoyMDAyLTA2LTA4IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICAtIGJlZ2lubmluZyBzdXBwb3J0IGZvciBpbXBvcnQvZXhwb3J0IG9mIGRhdGEgKGN1cnJlbnRseSB0by9mcm9tIENTVikuCiAgIC0gc3VwcG9ydCBmb3IgImRpZmYiIHdoaWNoIGNvbXBhcmVzIG9sZCAocG9zc2libHkgaW1wb3J0ZWQgZGF0YSkgdG8gY3VycmVudC4KICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIHJlcXVpcmVkIFNOTVAgbW9kdWxlIHZlcnNpb24gZnJvbSA0IHRvIDUKICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIHR1dG9yaWFsIHBsYWNlIGhvbGRlciBjb21tZW50IE9JRC4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRrbWliIGZvciBuZXdlciBwZXJsIG1vZHVsZXMuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHR1cm4gb2ZmIGV4dHJhIGJvbGQvdW5kZXJsaW5lIGZvcm1hdHRpbmcgYnkgZGVmYXVsdC4KICAgCjIwMDItMDYtMDcgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBnZW5lcmljIGNvbnRhaW5lciBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgZGF0YQogICAKMjAwMi0wNi0wNyAxMzowMSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDYtMDcgMTA6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIHRvIGtlZXAgaW4gbGluZSB3aXRoIGNvbmZpZ3VyZS5pbiAod2h5PyBzaG91bGRuJ3QKICAgY29uZmlndXJlIG5vdCBiZSBpbiBDVlMgYW5kIGJlIGF1dG9nZW5lcmF0ZWQ/IE9uZSBvZiB0aGVzZSBkYXlzIEknbSBnb2luZwogICB0byBoYXZlIHRvIGxlYXJuIGF1dG9jb25mLi4uLikKICAgCjIwMDItMDYtMDcgMTA6MzUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBhbHdheXMgY2hlY2sgcmV0dXJuIHN0YXR1cyBvZiBtYWtlIHdoZW4gaW5zaWRlIGEgbG9vcCwgYW5kIGV4aXQgb24gZXJyb3JzCiAgIAoyMDAyLTA2LTA3IDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjMpLAogICBpbnRlcmZhY2VzLmM6CgogICBPbmx5IG51bGwtdGVybWluYXRlIHRoZSBpbnRlcmZhY2UgbmFtZSB3aGlsZSBpdCdzIGFjdHVhbGx5IGJlaW5nIGNvcGllZC4KICAgUmVzdG9yZSB0aGUgZGF0YSBsaW5lIGFmdGVyd2FyZHMsIHNvIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGlzIG1lYW5pbmdmdWwuCiAgIAoyMDAyLTA2LTA3IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggZm9yIGluZGV4aW5nIGVycm9yLCB0aGF0IGNhdXNlcyBhIGNyYXNoIGlmIG1vcmUgdGhhbiAxNiB2YXJiaW5kcwogICBhcmUgYWRkZWQgdG8gdGhlIGNhY2hlIGluIG9uZSBnby4gIFNwb3R0ZWQgYnkgU2hhbnRoIEt1bWFyYQogICAKMjAwMi0wNi0wNiAwMToxMiAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzcsNV0pLCBhY2xvY2FsLm00LAogICBjb25maWd1cmU6CgogICBEb24ndCBkaWZmZXJlbmNpYXRlIGJldHdlZW4gZWxmLSBhbmQgYS5vdXQtYmFzZWQgTmV0QlNEIHN5c3RlbXMuCiAgIChQcm9ibGVtIGhpZ2hsaWdodGVkIGJ5IEZlbGljaWEgTmVmZikKICAgCjIwMDItMDYtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcHV0IGRlZmluZXMgZm9yIHNvY2tsZW5fdCBhbmQgaW5fYWRkcl90IGluIG5ldC1zbm1wL3R5cGVzLmggaW5zdGVhZCBvZiBoYXZpbmcKICAgY29uZmlndXJlIGdlbmVyYXRlIHRoZW07IGNvbmZpZ3VyZSBpbnN0ZWFkIGdlbmVyYXRlcyBIQVZFX1NPQ0tMRU5fVCBhbmQKICAgSEFWRV9JTl9BRERSX1QgZm9yIHN5c3RlbXMgd2hpY2ggZG9uJ3QgbmVlZCB0aGUgZGVmaW5lczsgdGhpcyBpcyBwcmltYXJpbHkKICAgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBXaW4zMiBwbGF0Zm9ybSwgd2hpY2ggZG9lc24ndCBoYXZlIGNvbmZpZ3VyZS4KICAgCjIwMDItMDYtMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBkb24ndCBhZHZhbmNlIHJlcXVlc3QgcG9pbnRlciBpbnNpZGUgZm9yIGxvb3AsIHNpbmNlIGZvciBsb29wIGRvZXMgaXQgZm9yCiAgIHVzOyBvdGhlcndpc2UgZm9yIGxvb3AgbWF5IGVuZCB1cCBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlci4KICAgCjIwMDItMDYtMDUgMDY6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSB2YXJpb3VzIHVuaXggdXRpbGl0aWVzOgogICAgLSBjdXJyZW50bHk6IG5ldHN0YXQsIHBzLCBkZiwgaWZjb25maWcKICAgCjIwMDItMDYtMDUgMDY6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaToKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IGluIEp1ZXJnZW4ncwogICBzY2xpIGNvbW1hbmQuCiAgIAoyMDAyLTA2LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBuZXcgY29tbWFuZHM6CiAgICAgc291cmNlIGZpbGUgLS0gc291cmNlcyBhbiByYyBmaWxlCiAgICAgd2F0Y2ggZXhwcmVzc2lvbiAtLSByZXBlYXRlZGx5IHJ1bnMgYSBjb21tYW5kIGFuZCBjb2xvcml6ZXMKICAgICAgIGRpZmZlcmVuY2VzIGluIGRhdGEKICAgICBldmFsIGV4cHJlc3Npb24gLS0gZXZhbHVhdGVzIGFuIGV4cHJlc3Npb24gZGlyZWN0bHkgaW4gcGVybAogICAgICAgLSBiZWdpbm5pbmdzIG9mIG92ZXJsb2FkcyBpbiBwZXJsIHNvIHRoYXQgY2FsbGluZyBzeXNDb250YWN0KCkKICAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c0NvbnRhY3QgdmFsdWUuICB0YWJsZXMgbm90IHJldHVybmVkIHlldC4KICAgZml4ZXM6CiAgICAgdHVybnMgb2Ygb3JuYW1lbnRhbCBwcm9tcHQgc3VwcG9ydCAoaWNrKSBieSBkZWZhdWx0CiAgIAoyMDAyLTA2LTA1IDA0OjQzICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTItcGF0Y2hlcy44KSwgc25tcGNtZC4xLmRlZjoKCiAgIEJyaWVmIG1lbnRpb24gb2YgdGhlIG5lZWQgdG8gcXVvdGUgT0lEcyBjb250YWluaW5nIHN0cmluZyBpbmRleGVzLAogICB0byBwcm90ZWN0IHRoZSBkb3VibGUgcXVvdGVzIGZyb20gdGhlIHNoZWxsLgogICAKMjAwMi0wNi0wNCAxMDozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGEgbnVsbCB0cmVlY2FjaGUgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQKICAgCjIwMDItMDYtMDQgMTA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhc3AtPnBkdSA9PSBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0LgogICAKMjAwMi0wNi0wNCAwNTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCBmb3IgcHJpbnRmLCBzaW5nbGUgcXVlcnkvc2V0cyBvZiBzY2FsYXJzLCBtdWx0aS1saW5lIGFsaWFzZXMuCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIG1ha2UgbmV3KCkgb3BlcmF0b3IgYSBiaXQgc21hcnRlcgogICAKMjAwMi0wNS0yOSAxOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX2FsYXJtLmM6CgogICBzZXQgdGhlIHN0b3JhZ2UgcG9pbnRlciB0byBOVUxMLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIEhveS4KICAgCjIwMDItMDUtMjkgMDk6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gQVBJaWZ5IE1JQkRJUlMgc3VwcG9ydAogICAKMjAwMi0wNS0yOSAwNzo0MyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIEV4cGFuZCBvbiB3aGVuIE9wZW5TU0wgaXMgbmVjZXNzYXJ5LCBhbmQgaG93IHRvIGNvbXBpbGUgdXNpbmcgaXQuCiAgIAoyMDAyLTA1LTI5IDA2OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFNldCBSRVVTRUFERFIgc28gdGhhdCBzcGVjaWZ5aW5nIHRoZSBzYW1lIHBvcnQgdHdpY2UgZG9lc24ndCBraWxsIHRoZSBhZ2VudC4KICAgKFN1Z2dlc3RlZCBieSBSb2JlcnQgSGFzdGluZ3MpCiAgIAoyMDAyLTA1LTI5IDAyOjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgUmVmZXJlbmNlIGJvdGggdmVyc2lvbnMgb2YgdGhlIHR1dG9yaWFsIChzaW5jZSB0aGlzIGRvY3VtZW50IGlzIHVzZWQKICAgZm9yIGJ1aWxkaW5nIHRoZSBvbi1saW5lIHZlcnNpb24gb2YgdGhlIEZBUSkKICAgCjIwMDItMDUtMjkgMDI6MTYgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjQpLCBGQVE6CgogICBDbGFyaWZ5IHRoYXQgdHJhcCBmaWx0ZXJpbmcgaXMgbm90IHlldCBvcGVyYXRpb25hbC4KICAgCjIwMDItMDUtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgcmVtb3ZlIF5NIGNoYXJzCiAgIAoyMDAyLTA1LTI4IDE0OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZml4IGxvZ2ljIGluIGNhbl9kZWxldGU7IGNvbnNvbGlkYXRlIHVzZSBvZiBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3QgYnkgc2V0dGluZwogICByYyBmb3IgdXNlIGF0IGVuZCBvZiBsb29wOyBkb24ndCB1c2UgcmVtb3ZlZCBtYWNyb3MgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZSwKICAgdXNpbmcgbmV3IG5ldHNubXBfY2hlY2tfdmIqIHJvdXRpbmVzIGluc3RlYWQ7IGFkZCBhc3NlcnRzIGZvciBlcnJvciBjYXNlcyB0aGF0CiAgIHNob3VsZCBiZSBjYXVnaHQgYnkgZWFybGllciByb3V0aW5lcwogICAKMjAwMi0wNS0yOCAxNDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJvdyAoZGUpYWN0aXZhdGlvbgogICAKMjAwMi0wNS0yOCAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCAiI2luY2x1ZGUgPHNlYXJjaC5oPiIgd2l0aCB0aGUgSEFWRV9TRUFSQ0hfSCB0b2tlbi4gIChTdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yOCAwNjoyMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgRml4IHRoZSBkZWNsYXJhdGlvbiBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQuIChTcG90dGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjcgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAosIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEb24ndCBoYXJkd2lyZSBzeXNsb2cgZmFjaWxpdHkgdG8gTE9HX0RBRU1PTi4KICAgRml4IHByb3ZpZGVkIGJ5IEpvYWtpbSBGYWxsc2pvLgogICAKMjAwMi0wNS0yNyAwMTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwogICAoVjQtMi1wYXRjaGVzLlsyLDhdKSwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFR3ZWFrICd1c21Vc2VyJyBoZWxwIHN0cmluZyB0byBhY2N1cmF0ZWx5IHJlZmxlY3Qgd2hpY2ggYml0cyBhcmUgb3B0aW9uYWwuCiAgIFJlcG9ydGVkIGJ5IEFsaSBDaGFuYXVpLgogICAKMjAwMi0wNS0yNyAwMToyMiAgZHRzMTIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgImZpbGUiIGRpcmVjdGl2ZXMuCiAgIAoyMDAyLTA1LTI3IDAxOjE3ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaCwgdGhhdCBjb25mdXNlcyBzb21lICdtYWtlJ3MKICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBQcm9wZXIgY3JlYXRpb24gb2YgcmV0dXJuZWQgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBpbmNyZWFzZSByZWZlcmVuY2UgY291bnRzIG9uIHJldHVybmVkIG1pYiByZWdpc3RyYXRpb24gb2JqZWN0cyBzbwogICB0aGV5J3JlIG5vdCBhdXRvLWNsZWFuZWQgYnkgcGVybCAodGhlIGFnZW50IG5vdyBoYXMgYSBjb3B5IG9mIHRoZSBwb2ludGVyKQogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgZGVmYXVsdF9zdG9yZSBuZXRzbm1wXyBwcmVmaXhlcy4KICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3Igc2NhbGFycyAobWliMmMuc2NhbGFyLmNvbmYgZmlsZSBjb21pbmcgc2hvcnRseSkKICAgCjIwMDItMDUtMjQgMDk6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQSBuZXcgcnVsZSBjYWxsZWQgImNvbW1lbnRjaGVjayIgdG8gZ3JlcCBhbGwgc291cmNlcyBmb3IgLy8gY29tbWVudHMuCiAgIAoyMDAyLTA1LTI0IDA4OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRGVjbGFyZSAncmVnaXN0ZXJfbWliX2RldGFjaF9ub2RlJyBiZWZvcmUgaXQncyB1c2VkIGZvciB0aGUgZmlyc3QgdGltZS4KICAgKFNwb3R0ZWQgYnkgWGlhbmcgWmhhbmcpCiAgIAoyMDAyLTA1LTI0IDA3OjQ0ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLgogICAoVGhhdCAqbWlnaHQqIGJlIGNvbmZ1c2luZyBTdW4ncyBtYWtlLCBidXQgaXMgd3JvbmcgYW55d2F5KQogICAKMjAwMi0wNS0yMyAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2JzZGk0LmMsCiAgIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfZnJlZWJzZDIuYywgdm1zdGF0X2hwdXguYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBCcmluZyB0aGUgdmFyaW91cyAndmFyX2V4dGVuc2libGVfdm1zdGF0JyBkZWZpbml0aW9ucyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmaWxlIC0gaS5lLiBub24tc3RhdGljLgogICAKMjAwMi0wNS0yMSAxNToyNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1JJChzcmNkaXIpL2luY2x1ZGUgdG8gQ1BQIHBhdGggZm9yIHBlb3BsZSBidWlsZGluZyBvdXRzaWRlIG9mIHNyYyB0cmVlCiAgIAoyMDAyLTA1LTIxIDA4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgYXBwbHkgcGF0Y2ggWyA1NTgxMjkgXSBNYWtlIHRoZSB0dW5uZWwgbWliIGNvbXBpbGUgaW4gNS4wLjEsIHN1Ym1pdHRlZAogICBieSBMb3JlbnpvIENvbGl0dGkgKGxjb2xpdHRpKSwgd2hpY2ggYWRkcyBtaXNzaW5nIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA1LTIxIDA1OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGNvcmUgZHVtcCBpbiAtdSBvcHRpb24gcHJvY2Vzc2luZywgbm90ZWQgYnkgQW5kcmVhcyBNYXVzCiAgIAoyMDAyLTA1LTIxIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOSksIG1lbW9yeS5jCjoKCiAgIExhdGNoIG1lbW9yeSByZXBvcnRpbmcgYXQgMl4zMS0xLCByYXRoZXIgdGhhbiAyXjMyLTEgc2luY2UgdGhlc2UKICAgb2JqZWN0cyBhcmUgZGVmaW5lZCBhcyAoc2lnbmVkKSBJbnRlZ2VyMzIuCiAgIE9ubHkgbGF0Y2ggaWYgdGhlIHZhbHVlIGlzICpncmVhdGVyKiB0aGFuIHRoaXMgdGhyZXNob2xkLCBub3QgbGVzcyEKICAgCjIwMDItMDUtMjEgMDE6MjAgIGpicG4KCiAgICogaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jCjoKCiAgICAgLSBhZGQgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zIGZvciBuZXdseS1yZW5hbWVkCiAgICAgICBkZWZhdWx0IHN0b3JlIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyAoZGVmaW5lZCBpZmYKICAgICAgIC0tZW5hYmxlLXVjZC1jb21wYXRpYmlsaXR5IGlzIGdpdmVuIHRvIGF0IGNvbmZpZ3VyYXRpb24gdGltZSkKICAgCjIwMDItMDUtMjEgMDA6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAgIC0gbW92ZSBkZWZpbml0aW9uIG9mIG5ldHNubXBfZHNfcmVhZF9jb25maWcgdHlwZSBmcm9tIGRlZmF1bHRfc3RvcmUuaAogICAgICAgaW50byBkZWZhdWx0X3N0b3JlLmMgKHNpbmNlIGl0IGlzIG5vdCwgYW5kIHNob3VsZCBub3QsIGJlIHVzZWQKICAgICAgIGVsc2V3aGVyZSkuCiAgIAoyMDAyLTA1LTIwIDAzOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZWdpc3RlcnMgdG9rZW5zIGZvciBpcHY2IHJvL3J3IGNvbW11bml0eSwgYW5kIG1ha2Ugc3VyZSB0byBwYXJzZSB0aGVtCiAgIGFzIGlwdjYsIG5vdCB2NC4KICAgCjIwMDItMDUtMTkgMTE6MzggIGRyaWVodWlzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQnVnZml4IGZvciBGcmVlQlNEIHN1cHBvcnQgb2YgdGhlIGRpc2tJTyBtaWIuIFRoZSBvcmlnaW5hbCBjb2RlIG5lZ2xlY3RlZAogICB0aGUgZGV2aWNlIG51bWJlciwgd2hpY2ggbWFkZSBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuLCBzYXksIGFkMCBhbmQgYWQxCiAgIGltcG9zc2libGUuCiAgIAoyMDAyLTA1LTE3IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHNsaWdodGx5IHJlZHVjZSBtZW1vcnkgY29zdHMgb2YgcmVnaXN0YXJ0aW9ucwogICAKMjAwMi0wNS0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZGVmYXVsdCBzdG9yZSB0YWcgbmFtZXMuCiAgIGZpeCBpbml0X3NubXAoKSBkZWZpbml0aW9uIHRvIG1hdGNoIG5vcm1hbCBwZXJsIG5vbi1hbnNpIG1vZGUuCiAgIAoyMDAyLTA1LTE2IDE2OjM5ICBkcmllaHVpcwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBNYWtlIHN1cmUgLS1jZmxhZ3Mgc3BpdHMgb3V0IHRoZSByZXF1aXJlZCBpbmNsdWRlIHBhdGggd2hlbiBpbnN0YWxsaW5nCiAgIGluIGEgbm9uLWRlZmF1bHQgbG9jYXRpb24sIGFzIGRvY3VtZW50ZWQgaW4gdGhlIHVzYWdlIGluZm8gaW4gdGhlIHNjcmlwdC4KICAgCjIwMDItMDUtMTYgMTU6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGFkZCBhIGxpbmUgdG8gdGhlIHN5c1NlcnZpY2VzIHByb21wdCBzYXlpbmcgaWYgeW91IGRvbid0IGtub3csIHNheSBuby4KICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUueHM6CgogICB1cGRhdGUgdG8gbmV3IGRlZmluZSBsaXN0CiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHRlc3Qgc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgYXV0b2dlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZXMgdG8gbmV3IC5oIHRva2VucwogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIC5oIC0+IHBlcmxtb2R1bGUgcmVnZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAwNzowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgQ29uc29saWRhdGUgdGhlIHZhcmlvdXMgT0lEIG91dHB1dCBjb25maWd1cmF0aW9uIG1lY2hhbmlzbXMgaW50byBvbmUuCiAgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyAoeWV0ISkgLSBqdXN0IHRoZSBpbnRlcm5hbHMuCiAgIAoyMDAyLTA1LTE1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IGRlZmF1bHRfc3RvcmUKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNyZWF0ZSBhIGRlZmluZSBsb2NhdGlvbiBmb3IgSEFWRV9HRVRERVZTCiAgIAoyMDAyLTA1LTE1IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgZGVwZW5kIHVwZGF0ZSwgd2hpY2ggSSBtZWFudCB0byBjaGVjayBpbiBiZWZvcmUgdGhlIDUuMC4xIHJlbGVhc2UKICAgCjIwMDItMDUtMTUgMDU6NTMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfcGVybC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYwo6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzkgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzcgIGpicG4KCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYwosIHNubXBfYWxhcm0uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3NlY21vZC5jLCBzbm1wdXNtLmMsCiAgIHNubXB2My5jLCB1Y2RfY29tcGF0LmMsIHZhY20uYzoKCiAgICAgLSByZW5hbWUgZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgZnJvbSBkZWZhdWx0X3N0b3JlIGZyb20gZHNfYmxhaAogICAgICAgdG8gbmV0c25tcF9kc19ibGFoCiAgIAoyMDAyLTA1LTE1IDAyOjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy4wKSwgc211eC5jOgoKICAgICAtIGluaXRpYWxpc2Ugc211eF9saXN0ZW5fc2QgdG8gYXZvaWQgcHJvYmxlbXMgbm90ZWQgaW4gYnVnICM1NDU0NDgKICAgICAgIChhIGJpdCB1bnJlYXNvbmFibGUgaW4gbXkgdmlldyBidXQgaXQgY2FuJ3QgZG8gYW55IGhhcm0pLgogICAKMjAwMi0wNS0xNCAxMjo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHByZWNpc2lvbiBleHRyYWN0aW9uIG9mIHR1bW9yIGluc3RlYWQgb2YgYW1wdXRhdGlvbiwgb3IsIGlmZGVmIHNlYXJjaC5oCiAgIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBlc3NlbnRpYWwgdG8gdGFibGVfYXJyYXkgb3BlcmF0aW9uIGFuZCB3aWxsIHByb2JhYmx5CiAgIHZhbmlzaCBpbiB0aGUgbmVhciBmdXR1cmUgYW55d2F5LgogICAKMjAwMi0wNS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBmaXggdHlwZSBpbiBzaXplb2YKICAgCjIwMDItMDUtMTMgMTM6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIHNlYXJjaC5oIGJlZm9yZSBjb21waWxpbmcgdGhlIHRhYmxlX2FycmF5IGhlbHBlcgogICAKMjAwMi0wNS0xMyAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTA1LTEzIDAwOjM5ICBkcmllaHVpcwoKICAgKiBDaGFuZ2VMb2c6CgogICBOb3RlIGNoYW5nZXMgdG8gY29uZmlndXJlLmluLgogICAKMjAwMi0wNS0xMiAxMDozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgTWFrZSBzdXJlIHRoZSBjaGVja3MgZm9yIGt2bSByZWxhdGVkIHN0dWZmIGhhcHBlbnMgd2hlbiAtbGt2bSBpcyBpbiBzY29wZS4KICAgQWRkIGRldGVjdGlvbiBvZiB0aGUgLWxkZXZzdGF0IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgd2l0aCB1Y2Qtc25tcC9kaXNraW8uCiAgIAoKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wIC0+IFY1LjAuMQoKMjAwMjAtMDUtMTIgMTc6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRldGVjdCAtbGRldnN0YXQgd2hlbiBuZWVkZWQ7IGZpeCAtbGt2bSBkZXRlY3Rpb24KCjIwMDItMDUtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiB0dXRvcmlhbC01IGluc3RlYWQgb2YgdHV0b3JpYWwKICAgCjIwMDItMDUtMTAgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgcmVxdWVzdCBpbmZvIHBlcmwgY29kZSBtb3ZlZCB0byBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMi0wNS0xMCAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE9JRCBidWlsZGluZyBvdmVybG9hZHMuCiAgIAoyMDAyLTA1LTEwIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBBZGQgcHJvcGVyIGxlbmd0aCBzZWdtZW50IHRvIHRoZSBidWlsZCB2aWV3IE9JRC4KICAgCjIwMDItMDUtMTAgMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgZG9jIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnCiAgIAoyMDAyLTA1LTEwIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuMCksIHZhY21fdmFycy5jCjoKCiAgIGZpeCB2YWNtIHByb2JsZW0gb24gc2V0cyB3aXRoIE9JRHMgY29udGFpbmluZyBsYXJnZSBudW1iZXJzIGFzIG5vdGVkCiAgIGJ5IFZpbmF5IEdhb25rYXIgb24gdGhlIC1jb2RlcnMgbWFpbGluZyBsaXN0LgogICAKMjAwMi0wNS0xMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FsbGluZyBvbiBtdWx0aXBsZSB0YWJsZXMKICAgCjIwMDItMDUtMTAgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNZXJnZSAiU1RSSU5HOiBIZXg6IiB0eXBlIHRva2VucyBpbnRvIGEgc2luZ2xlIHRva2VuICJIZXgtU1RSSU5HOiIKICAgCjIwMDItMDUtMTAgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIFJlcG9ydCBub24tZXhpc3RlbnQgc3ViaW5zdGFuY2VzIGFzICdub1N1Y2hJbnN0YW5jZScgcmF0aGVyIHRoYW4gJ25vU3VjaE9iamVjdCcuCiAgICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4wLjk5IiBub3cgcmVzcG9uZHMgY29ycmVjdGx5LgogICAodGhvdWdoICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4xIiBzdGlsbCByZXR1cm5zICdub1N1Y2hPYmplY3QnKQogICAKICAgQWxzbyBndWVzcyB0aGF0IGZhaWxlZCBTRVQgcmVxdWVzdHMgYXJlICdub0NyZWF0aW9uJyBlcnJvcnMgKHdoaWNoIGlzCiAgIHByb2JhYmx5IHRoZSBtb3N0IGxpa2VseSBvcHRpb24pLgogICAKMjAwMi0wNS0wOSAxNTo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBleGl0IHByb3Blcmx5IHdoZW4gYSBzdWJkaXIgZmFpbHMgdG8gbWFrZSBwcm9wZXJseQogICAKMjAwMi0wNS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNyZWF0ZSBhIHRva2VuIGZvciB0aGUgLU92IGVxdWl2ZWxhbnQKICAgCjIwMDItMDUtMDkgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy41KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBwYXRjaCBmcm9tIFRha3VtaSBLYWRvZGUgdG8gZml4IG1lbW9yeSB1c2FnZSBvbiBzb2xhcmlzCiAgIAoyMDAyLTA1LTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHVwZGF0ZXMgZnJvbSBtYWxsb2NlZCB2bXN0YXQgZml4ZXMgZnJvbSBwYXRjaGVzIGJyYW5jaAogICAKMjAwMi0wNS0wOCAxNjozNCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbmV3IC0tY29tcGlsZS1zdWJhZ2VudCBmZWF0dXJlczoKICAgICAtLWNmbGFncwogICAgIC0tbm9ybQogICAgIC0tbGRmbGFncwogICAgIGluY2x1ZGVzIGhlYWRlciBmaWxlcwogICAgIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgogICAKMjAwMi0wNS0wOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtYWtlIHRoZSBzdWJhZ2VudCBwcm9wZXJseSBjYWxsIHRoZSByZXNlcnZlMiBzdGF0ZSBhZ2Fpbi4KICAgCjIwMDItMDUtMDggMTA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wOCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICB1bSwgdXNlIDMwIHNlY29uZHMgbGlrZSBhZHZlcnRpc2VkLgogICAKMjAwMi0wNS0wOCAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBkZWZpbmUgYSBiZXR0ZXIgbm90aWZpY2F0aW9uIGV4YW1wbGUgKG5vIHJlcXVlc3RzLiAganVzdCBhbGFybSAtPiBzZW5kKQogICAKMjAwMi0wNS0wNyAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICB1cGRhdGUgdG8gY3VycmVudCBpbmRlbnQgY29tbWFuZAogICAKMjAwMi0wNS0wNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIG1vdmUgdGV4dCBpbiBjb21tZW50IGxlZnQgc2xpZ2h0ICh3YXMgdG9vIGxvbmcpLgogICAKMjAwMi0wNS0wNyAyMjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBlbnVtIGZpeGVzLgogICAKMjAwMi0wNS0wNyAyMjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwKICAgbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIG1pYjJjLmNvbmY6CgogICBOZXcgbWliMmMgZmlsZXMgZm9yIGdlbmVyYXRpbmcgaGVhZGVycyBmdWxsIG9mIGNvbHVtbiBudW1iZXIgZGVmaW5lcwogICBhbmQgZW51bSBkZWZpbmVzLgogICAKMjAwMi0wNS0wNyAyMjo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgYWdlbnQgbGlicmFyeSByZW9yZGVyaW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBub3cgc3VwcG9ydHMgLm8gZmlsZXMgKHByZWNvbXBpbGVkIGNvZGUpLgogICAKMjAwMi0wNS0wNyAyMjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlOgoKICAgaG1tLiAgbWlzc2VkIHNvbWUgY2hlY2tpbiBmaWxlcy4KICAgCjIwMDItMDUtMDcgMTE6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogY29uZnRlc3QuY29uZiwgc3RhcnRhZ2VudC5wbCwgY29uZi50CjoKCiAgIHRlc3QgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZS9kZWZhdWx0X3N0b3JlIHN1cHBvcnQKICAgCjIwMDItMDUtMDcgMTE6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIGluaXRfc25tcCgpIHRha2UgYSBjaGFyICogYXJndW1lbnQgbGlrZSB0aGUgcmVhbCBBUEkKICAgCjIwMDItMDUtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIHR5cG9zLgogICAKMjAwMi0wNS0wNyAwOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggdGhlIC1nIGZsYWcuCiAgIAoyMDAyLTA1LTA3IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgbGlrZSBhIGdvb2QgYm95LgogICAKMjAwMi0wNS0wNiAyMDo0MyAgcnN0b3J5CgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZml4IG1pc3NpbmcgJCBub3RlZCBieSBKb2huIE1pbGxzIG9uIHRoZSBjb2RlcnMgbGlzdAogICAKMjAwMi0wNS0wNiAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bNCwyLDMsM10pLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlIChjb3JyZWN0bHkgZG9uZSB0aGlzIHRpbWUpCiAgIAoyMDAyLTA1LTA2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KICAgKFY0LTItcGF0Y2hlcy5bMyw3LDEsMl0pLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDYgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBQYXRjaGVzICM1NTE5MTQrIGZyb20gR2FyeSBFZHdhcmRzIHRvIHN1cHBvcnQgaHB1eDExIGZvciBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG5ldyBocHV4IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTQ6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG5ldyBjb250cmlidXRvcnMuCiAgIAoyMDAyLTA1LTA2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZgosIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTUxNDg5OiBGcm9tIEplZmZyZXkgV2F0c29uIHRvIGFkZCBhIC1RIG9wdGlvbiBmb3IgcXVpY2sgYnV0IHcvIGFuICc9JwogICAKMjAwMi0wNS0wNiAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgY2hhbmdlIC1EIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBjdXJyZW50IGNvZGUuCiAgIAoyMDAyLTA1LTA2IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBtaXNjIHNtYWxsIGJ1Z3MgYW5kIGVycm9yIG1lc3NhZ2Ugd29yZGluZyBmaXhlcy4KICAgCjIwMDItMDUtMDYgMDk6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy45KSwgc211eC5jOgoKICAgYnVnICM1NDcwMTA6IGZpeCBzbXV4IGF1dGggYnVnIGFzIHJlcG9ydGVkIGFuZCBmaXhlZCBieSBTdGVmYW4gUmFkbWFuCiAgIAoyMDAyLTA1LTAxIDIzOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzIGZvciB1cGRhdGUgdG8gdGFibGVfYXJyYXkKICAgCjIwMDItMDUtMDEgMjM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBvYmplY3RfbW9uaXRvciBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY2hlY2tfdmFyYmluZCBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW9uIHZhYnJpbmQgaW5mbwogICAKMjAwMi0wNS0wMSAyMjo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgZG8gSSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzPyBzaWdoLiBPaywgcmVuYW1lIGRlYnVnIHRva2VuOyByZXZhbXAgbG9naWMgdG8KICAgbW9kaWZ5IHJvd3MgaW4gcGxhY2UsIGtlZXBpbmcgdW5kbyBpbmZvICh2cyBhbHdheXMgY2hhbmdpbmcgYSBjb3B5IG9mIGEgcm93CiAgIGFuZCBzd2FwcGluZyByb3dzIHdoZW4gc2V0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpIHRvIGFsbG93IGV4dGVybmFsIGNvZGUKICAgdG8ga2VlcCBwb2ludGVycyB0aGF0IGRvbid0IGRpc2FwcGVhciBvbiB0aGVtOyBhZGQgYSBmZXcgY2FsbGJhY2tzLCBpbmNsdWRpbmcKICAgcm93X2NvbXBhcmUsIHNvIHRhYmxlX2FycmF5IGNhbiBtYWludGFpbiB0aGUgc2Vjb25kYXJ5IGluZGV4IHRyZWU7IGRvbid0IGNhbGwKICAgY2FuX2FjdGl2YXRlL2Nhbl9kZWxldGUgdW5sZXNzIHdlIGFyZSBhY3R1YWxseSB0cnlpbmcgdG8gYWN0aXZhdGUvZGVsZXRlIHJvdzsKICAgYWRkIHNrZWxldG9uIChpZmRlZidkIG91dCkgY29kZSBmb3IgY29vcGVyYXRpdmUgbm90aWZpY2F0aW9ucyBvZiByb3cgZXZlbnRzOwogICB1cGRhdGUgY2hhbmdpbmcgYXJyYXkgaW4gY29tbWl0ICYgdW5kbyBjYXNlcywgbm90IGp1c3QgY29tbWl0OyBjaGFuZ2UgdHlwZGVmcwogICBmb3IgYSBmZXcgY2FsbGJhY2sgcG9pbnRlcnM7IHVtbW1tLi4uIEkgKnRoaW5rKiB0aGF0J3MgaXQuLi4uOi0pCiAgIAoyMDAyLTA1LTAxIDE3OjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQWRkIGluZGV4IGJ1aWxkaW5nIHRvIHRoZSArIG9wZXJhdG9yLgogICAKMjAwMi0wNS0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIE9JRC9PSUQueHMsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsCiwgYWdlbnQvdHlwZW1hcDoKCiAgIE1ha2UgZ2V0T0lEIGZvciByZXF1ZXN0cyByZXR1cm5lZCBhIE5ldFNOTVA6Ok9JRCBibGVzc2VkIHJlZmVyZW5jZS4KICAgSSdtIG5vdCBoYXBweSBhYm91dCBob3cgdGhpcyBpcyBkb25lLCBidXQgYWxsIGF0dGVtcHRzIHRvIGRvIGl0CiAgIGNvcnJlY3RseSBvbmx5IGxlZnQgbWUgaW4gY29uZnVzaW9uLgogICAKMjAwMi0wNS0wMSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCjoKCiAgIENoYW5nZSB0aGUgZG9tYWluIE9JRHMgdG8gcG9pbnQgdG8gdGhlIG5ldC1zbm1wIGRvbWFpbnMgY3JlYXRlZCBieSBEYXZlLgogICBUaGlzIGZpeGVzIGJ1ZyAjNTQ0MjQ1IGFzIHdlbGwuCiAgIAoyMDAyLTA1LTAxIDA5OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgT0lEIHBlcmwgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIG1vZHVsZXMuCiAgIAoyMDAyLTA1LTAxIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjApLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgcmVtb3ZlIG9sZCAoYW5kIGNvbmZsaWN0aW5nIHdpdGggdHJhcHMpIHRyYW5zcG9ydCBkb21haW4gT0lEcwogICAKMjAwMi0wNS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMS5kZWYsCiAgIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wd2Fsay4xLmRlZjoKCiAgIEFkZCB0eXBlIHRhZ3MgIlNUUklORzogIiBhbmQgIklOVEVHRVI6ICIgdG8gZXhhbXBsZSBvdXRwdXQuCiAgIEFkZCBleHBsaWNpdCBzZXR0aW5nIG9mIHByb3RvY29sIHZlcnNpb24gdG8gZXhhbXBsZSBjb21tYW5kcy4KICAgCjIwMDItMDUtMDEgMDM6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhZ3V0aWwuaCwKICAgYWd1dGlsX2FwaS5oLCBhbGFybS5jLCBhbGFybS5oLCBldmVudC5jLAogICBldmVudC5oLCBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgcm93X2FwaS5oLAogICByb3dzLmMsIHJvd3MuaCwgc3RhdGlzdGljcy5jLCBzdGF0aXN0aWNzLmg6CgogICAgIC0gcmVtb3ZlIENWUyBMb2c6IGVudHJpZXMgd2hpY2ggYXJlIGNhdXNpbmcgcHJvYmxlbXMgc2luY2UgdGhleSBhcmUKICAgICAgIGVtYmVkZGVkIGluIGEgY29tbWVudCwgYnV0IHNvbWUgb2YgdGhlIGxvZyBlbnRyaWVzIGNvbnRhaW4gY29tbWVudAogICAgICAgZGVsaW1pdGVycy4KICAgCjIwMDItMDQtMzAgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlIG5ldHNubXBfcHJvY2Vzc2luZ19zZXQsIGl0IGxpdmVzIGluIHNubXBfYWdlbnQuYwogICAKMjAwMi0wNC0zMCAyMjoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyOyBhbGxvdyBOT05FIGFzIG9sZCB2YWx1ZSBmb3Igc3RvcmFnZSB0eXBlIHRyYW5zdGlvbnMKICAgCjIwMDItMDQtMzAgMjI6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgb3Zlcmx5IGNvbXBsZXggbWFjcm8gc3R1ZmYgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZQogICAKMjAwMi0wNC0zMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRQosIHRlc3QucGw6CgogICAtIGFsbG93IGNvbnZlcnNpb25zIHRvIGFuIGFycmF5IChuZWVkcyB0byBiZSB0aWVkIHN0aWxsKS4KICAgLSBkb2N1bWVudGF0aW9uLgogICAKMjAwMi0wNC0zMCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcGQuYzoKCiAgICAgLSBmaXggYnVnICM1NDU3NzUsIHJlcG9ydGVkIGJ5IERhdmUgRGVuc29uLCB3aGVyZWJ5IHRoZSBQSUQgb2YgYW4KICAgICAgIGFscmVhZHktcnVubmluZyBzbm1wZCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdGFydGluZyBhIG5ldyBzbm1wZAogICAgICAgKHdoaWNoIHdvdWxkIHRoZW4gZXhpdCwgbGVhdmluZyB0aGUgb3JpZ2luYWwgc25tcGQgcnVubmluZyBhbmQgdGhlCiAgICAgICB3cm9uZyBQSUQgaW4gdGhlIGZpbGUpLiAgU29sdXRpb24gaXMgbm90IHRvIHdyaXRlIHRoZSBQSUQgdW50aWwgd2UKICAgICAgIGhhdmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBhbGwgb3VyIHNvY2tldHMuCiAgIAoyMDAyLTA0LTMwIDA3OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNULAogICBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRSwKICAgdGVzdC5wbCwgdHlwZW1hcDoKCiAgIE9JRCBwZXJsIG1vZHVsZSBzbyB5b3UgY2FuIGRvIHNpbXBsZSBPSUQgbWFuaXB1bGF0aW9ucyB3aXRoaW4gcGVybCBlYXNpbHk6CiAgICAgLSBFeGFtcGxlOiAgbmV3IE5ldFNOTVA6Ok9JRCgnaW50ZXJmYWNlcycpID4gbmV3IE5ldFNOTVA6Ok9JRCgnc3lzdGVtJykKICAgCjIwMDItMDQtMjkgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZWdleHAgZml4IGZvciB3aGl0ZSBzcGFjZSBjaGVja3MgaW4gaW5kZW50IGZvcm1hdHRlZCBjb2RlCiAgIAoyMDAyLTA0LTI5IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlb3JkZXIgcGVybCBtb2R1bGUgbmFtZXMgdG8gcmVmbGVjdCAobmV3KSBkZXBlbmRlbmNpZXMuCiAgIAoyMDAyLTA0LTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGZpeCBhIGZldyB3YXJuaW5ncyBvbiBmYWlsZWQgdGVzdHMgKGp1c3Qgc2NyZWVuIGNsZWFudXBzKQogICAKMjAwMi0wNC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICBNYWtlIHRoZSBwZXJsIG1vZHVsZSByZXNwZWN0IHNubXAuY29uZiBzZXR0aW5ncyAoZmluYWxseSkuCiAgICAgLSBOb3cgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBOZXRTTk1QOjpkZWZhdWx0X3N0b3JlIG1vZHVsZSB0aG91Z2guCiAgIAoyMDAyLTA0LTI3IDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG9uJ3QgcHJvY2VzcyBzZXQgcmVxdWVzdCB0aWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBhcmUgY29tcGxldGUsIGFuZCBxdWV1ZQogICBhbnkgb3RoZXIgcmVjZWl2ZWQgcGFja2V0cyB1bnRpbCBhIHNldCBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcuCiAgIAoyMDAyLTA0LTI3IDA4OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYW4gdXAgY29tbWVudHMgbXVuZ2VkIGJ5IGluZGVudAogICAKMjAwMi0wNC0yNyAwODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA0LTI3IDA4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBvYmplY3RfbW9uaXRvci5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmZGVmIGd5bW5hc3RpY3MgdG8gbWFrZSBzdXJlIGFzc2VydHMgYXJlIG9ubHkgY29tcGlsZWQgaW4gb25seSBpZiBleHBsaWNpdHkKICAgcmVxdWVzdGVkCiAgIAoyMDAyLTA0LTI2IDIxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggdW5iYWxhbmNlZCBlbmRpZiBvbiBsaW51eC4gaG9wZSBJIGRpZG4ndCBicmVhayBhbnl0aGluZyBlbHNlLgogICAKMjAwMi0wNC0yNiAxOToxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggdW51c2VkIHZhciB3YXJuaW5nIGZvciAhd2luZG93cwogICAKMjAwMi0wNC0yNiAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgZml4IE9JRF9MRU5HVEggZGVmaW5pdGlvbnMKICAgCjIwMDItMDQtMjYgMTA6NTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMgaW4gbWFrZWZpbGVzLiAgTWFrZSBldmVyeXRoaW5nIHVzZQogICBuZXQtc25tcC1jb25maWcsIC4uLgogICAKMjAwMi0wNC0yNiAxMDoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbToKCiAgIC0gQ2xlYW51cC4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIENoYW5nZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgZm9yIHVjZC1zbm1wCiAgIC0gQ2hhbmdlIGNvbnRhY3QgbG9jYXRpb24gdG8gbmV0LXNubXAtdXNlcnMgKHBlciBKb2UncyBhZ3JlZW1lbnQpCiAgIAoyMDAyLTA0LTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFJFQURNRSwgCglkZWZhdWx0X3N0b3JlLnBtLCB0ZXN0LnBsOgoKICAgLSBjbGVhbnVwLgogICAtIFVzZSBuZXQtc25tcC1jb25maWcgdG8gZmluZCBsaWJyYXJ5LCBldGMuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBhIGZldyBtb3JlIHRlc3RzIGFkZGVkCiAgIC0gdXNlIGNvcnJlY3QgbGlicmFyaWVzCiAgIC0gYWRkIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDQtMjYgMDQ6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRXh0cmFjdGluZyB0aGUgdmVyc2lvbiBmcm9tICdzbm1wbGliL3NubXBfdmVyc2lvbi5jJyBuZWVkcyB0byB0YWtlIGFjY291bnQKICAgb2YgYmxhbmsgc3BhY2UuICBSZXBvcnRlZCBieSBTdGVmYW4gUmFkbWFuIChCdWcgIzU0NzM3OSkKICAgCjIwMDItMDQtMjYgMDQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy44KSwgbWVtb3J5LmMKOgoKICAgSGFuZGxlIG1lbW9yeSB2YWx1ZXMgPiAzMmJpdCAobGF0Y2hpbmcgYXQgMl4zMi0xKQogICBQYXRjaCAjNTQ4NjYzIGZyb20gUm9iIE15ZXJzCiAgIAoyMDAyLTA0LTI2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnSW52YWxpZCBvcHRpb24nIG1lc3NhZ2UsIHNpbmNlIHRoaXMgaXMgdHlwaWNhbGx5CiAgIHJlcG9ydGVkIGJ5IGdldG9wdCgpLiAgKFN1Z2dlc3RlZCBieSBBbmRyZXcgUnVja2VyIEpvbmVzIC0gcGF0Y2ggIzU0ODc0OCApCiAgIAoyMDAyLTA0LTI2IDAzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQWRkICd2JyB0byB0aGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zIChwYXRjaCAjNTQ4NzQ4KQogICBUaGFua3MgdG8gQW5kcmV3IFJ1Y2tlciBKb25lcy4KICAgCjIwMDItMDQtMjYgMDM6MzYgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIGltcHJvdmVkIEhQLVVYIDExIHBhdGNoCiAgICgjNTMwNzI0KSB0byB0aGUgbWFpbiB2NSBsaW5lLCBhcyB3ZWxsIGFzIHRoZSB2NC0yIGJyYW5jaC4KICAgVGhlIGNvZGUgbm93IGNvbXBpbGVzIGNsZWFubHkgdW5kZXIgSFAtVVggMTEgdXNpbmcgZ2NjLgogICAKMjAwMi0wNC0yNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnIHRvIGZpeCBwb3NzaWJsZSB2YXJpYWJsZSBuYW1lIGNsYXNoCiAgIAoyMDAyLTA0LTI0IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGhhbmRsZSBjYWxsYmFja3Mgc2VuZGluZyBuZXcgbm90aWZpY2F0aW9ucyAod2hpbGUgcHJvY2Vzc2luZyBub3RpZmljYXRpb25zKQogICAKMjAwMi0wNC0yNCAyMTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIGhlYWRlciBmb3IgbmV3IGZ1Y250aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3RzCiAgIAoyMDAyLTA0LTI0IDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIG5ldyBmdW5jdGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0IHZhbHVlcwogICAKMjAwMi0wNC0yNCAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAvcHJvYy9zdGF0IGNhbiBiZSBsYXJnZXIgdGhhbiAxMDI0CiAgIAoyMDAyLTA0LTI0IDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWlzc2luZyAnbWQ1LmgnIGhlYWRlciBmaWxlLgogICAKMjAwMi0wNC0yMyAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGxhc3Qgb2YgdGhlICN3YXJuaW5ncywgYWRkIHh4eC1ya3MgaWYgbmVjZXNzYXJ5CiAgIAoyMDAyLTA0LTIzIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgd2FybmluZ3MKICAgCjIwMDItMDQtMjIgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRToKCiAgIHVwZGF0ZSBVUkwgdG8gdXNlIGZyZWVubXAuY29tIG1pcnJvciAodW5sZXNzIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgcGxhY2U/KQogICAKMjAwMi0wNC0yMiAxNDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhcHBseSBkb2N1bWVudGF0aW4gcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmdlciA8QXhlbC5LaXR0ZW5iZXJnZXJAbWF4eGlvLmNvbT4KICAgCjIwMDItMDQtMjIgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgZXh0cmEgQGVuZEAgKHN1cmUgd291bGQgYmUgbmljZSBpZiBtaWIyYyB3b3VsZCBjaGVjayBmb3IgdW5iYWxhbmNlZAogICBAZW5kQHMpCiAgIAoyMDAyLTA0LTIyIDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCBoZWFkZXIgKG5vIG1peGVkIGNhc2UpCiAgIAoyMDAyLTA0LTIyIDA4OjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IGJ1ZyAjNTQ3MTEwOiBwcm9wZXJseSBzcGVsbCBkZWZpbmUKICAgCjIwMDItMDQtMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZCBzdGF0aWMgdG8gYSByZXR1cm5lZCB2YXJpYWJsZQogICAKMjAwMi0wNC0yMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcwogICAKMjAwMi0wNC0yMSAxMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICA1LjAucHJlMyAtPiA1LjA7IChJJ20gc3VyZSB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRoaXMgbmVlZHMgdG8gY2hhbmdlLAogICBidXQgSSB3YW50ZWQgdG8gZ2V0IHRoZSBmaXJzdCBwb3N0IDUuMCBjaGVja2luLi4uOi0pCiAgIAoyMDAyLTA0LTIwIDAwOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wICkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yIC0+IFY1LjAKCjIwMDItMDQtMjAgMDA6MjcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgogICBzZXQgYWxsIENWUy9SQ1MgcmV2aXNpb24gY29udHJvbCBudW1iZXJzIHRvIDUuMAoJCjIwMDItMDQtMjAgMDA6MDcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgkKICAgV2hpdGUgc3BhY2UsIG9oIGdsb3Jpb3VzIHdoaXRlIHNwYWNlLgogICBIb3cgZ3JlYXQgb3VyIHRob3VnaD8KICAgVGhlIGNvZGUgaXMgZmluZS4KICAgV2UgYWdyZWUgb24gZnVuY3Rpb25hbGl0eSBlYXNpbHkuCiAgIFdoYXQgcmVhbGx5IHRyb3VibGVzIHVzPwogICBTb21ldGhpbmcgd2UgY2FuJ3Qgc2VlLgogICBTb21ldGhpbmcgYmV0d2VlbiB0aGUgY29kZS4KICAgV2UgYm93IGRvd24gdG8geW91ciBtYWduaWZpY2VuY2UsCiAgIEZvciB5b3UgYXJlIGV2ZXJ5d2hlcmUsCiAgIEJldHdlZW4gZXZlcnl0aGluZy4KICAgUHJldHR5IG5vdGhpbmduZXNzIHlvdSBhcmUuCgkKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgdHVybiBvbiB1Y2QgY29tcGF0IGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA0LTIwIDAwOjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbGFzdCB1cGRhdGVzCiAgIAoyMDAyLTA0LTE5IDIzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgcmVtb3ZlIHRlc3RkZWxheWVkCiAgIAoyMDAyLTA0LTE5IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiAuY3ZzaWdub3JlICwgLmN2c2lnbm9yZToKCiAgIGN2cyBpZ25vcmUgZmlsZQogICAKMjAwMi0wNC0xOSAyMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBkb24ndCBkaWUgaWYgcGVybCBkb2Vzbid0IGluaXQuCiAgIAoyMDAyLTA0LTE5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBSRUFETUUgLCBTTk1QLnBtOgoKICAgY2hhbmdlIHdhcm5pbmcuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb3VibGUgY2hlY2sgdGhhdCBtdWx0aXBsZSBpbnNlcnRzIGludG8gdGhlIGRlbGVnYXRlZCBjaGFpbiBkb24ndAogICBoYXBwZW4gKHJlYWQ6IHRoZXkgc2hvdWxkbid0IGFueXdheSwgYnV0Li4uLi4pLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB0eXBlZGVmIHVwZGF0ZQogICAKMjAwMi0wNC0xOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIEZpeCB0aGUgY2FsbGJhY2sgYnVpbGQgaG9vayB0byB0dXJuIG9mZiB0aGUgZXhwZWN0IHJlc3BvbnNlIGZsYWcgd2hlbgogICBub3QgYXBwcm9wcmlhdGUuCiAgIAoyMDAyLTA0LTE5IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgc3BlbGxpbmcgbWlzdGVhazsgcmVtb3ZlIGNhcGl0YWwgbGV0dGVycyBpbiBmdW5jdGlvbiBuYW1lcwogICAKMjAwMi0wNC0xOSAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VkIGluIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA0LTE5IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1ha2UgdGhlIHBlcmxJbml0RmlsZSBhbmQgZGlzYWJsZVBlcmwgdG9rZW5zIHJlZ2lzdGVyIGFzIHByZW1pYiBzdWNoCiAgIHRoYXQgd2hlbiBwYXNzZWQgYXMgYSAtLUZMQUcgaXQnbGwgYWN0dWFsbHkgZG8gdGhlIHJpZ2h0IHRoaW5nIGFuZAogICBkaXNhYmxlIHRoZSBsYXRlciAicGVybCIgdG9rZW4gaGFuZGxlcnMuCiAgIAoyMDAyLTA0LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIG1hbi9NYWtlZmlsZS5pbiAsIG1hbi9uZXRzbm1wX2FnZW50LjMKICAgLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMyAsIG1hbi9uZXRzbm1wX2RlYnVnLjMgLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMyAsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwogICAsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMgLAogICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMgLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiAgICwgbWFuL25ldHNubXBfb2xkX2FwaS4zICwgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMgLAogICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMyAsIG1hbi9uZXRzbm1wX3RhYmxlLjMgLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zICwgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zICwKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zICwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwogICAsIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQgLCBUMTIxcHJveHlzZXQ6CgogICBDb3JyZWN0IGZvciBuZXcgU1RSSU5HIHByZWZpeC4KICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBLYXRzdWhpc2EgQUJFCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi54cyAsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIGZpeCBoZWFkZXIgZmlsZXMgZm9yIG5ldyBwYXRocy4KICAgCjIwMDItMDQtMTkgMTc6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggIzUzMjU1NTogaXB2NiBjb20yc2VjIHN1cHBvcnQsIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wNC0xOSAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBzeXNVcFRpbWUgKGFuZCByZWxhdGVkIGZ1bmN0aW9ucykgdG8gaGFuZGxlIG11Y2ggbGFyZ2VyIHVwVGltZQogICB2YWx1ZXMgKGllLCBmaXggc2lnbmVkIGludGVnZXIgd3JhcHBpbmcpLgogICAKMjAwMi0wNC0xOSAxMTozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTE5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFnZW50L3NubXBfcGVybC5jICwgYWdlbnQvc25tcF9wZXJsLnBsICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlICwgTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlLnBtICwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4gLCBkb3h5Z2VuLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBkb2N1bWVuYXRpb24gd2hlbiBzcmNkaXIgIT0gY29uZmlnZGlyCiAgIChQYXRjaCBzdXBwbGllZCBieSBBeGVsIEtpdHRlbmJlcmdlcikKICAgCjIwMDItMDQtMTggMTc6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZml4IHNubXBJUFhEb21haW4gKGFnYWluKQogICAKMjAwMi0wNC0xOCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogb25seSBvcGVuIHN1YmFnZW50IGNvbm5lY3Rpb25zIG9uY2UgYXQgc3RhcnR1cAogICAKMjAwMi0wNC0xOCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBmb3IgZG93biBzdWJhZ2VudCBjYXNlcywgbWFyayByZWdpc3RyYXRpb25zIGFzIGRldGFjaGVkCiAgIAoyMDAyLTA0LTE4IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWZpbmUgYSBtYXhpbXVtIHBhY2tldCBzaXplIHdlIGNhbiBhY2NlcHQgdG8gcHJvdGVjdCBjZXJ0YWluIGVycm9yCiAgIGNvbmRpdGlvbnMgKC0xIGFmdGVyIGNvbnZlcnNpb24gaXMgbm93IHRvbyBsYXJnZSkuCiAgIAoyMDAyLTA0LTE4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgY2hhbmdlIHRoZSBlbnRlcnByaXNlIE9JRHMgaW4gdGhlIHByb3BlciBwbGFjZSAobmV0LXNubXAtY29uZmlnLmguaW4KICAgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlKS4KICAgCjIwMDItMDQtMTggMTM6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gQWRkIHR3byBuZXcgb3B0aW9ucyB0byBuZXQtc25tcC1jb25maWcgYXMgcmVxdWVzdGVkIG9uIHRoZSBJUkMgY2hhbm5lbC4KICAgICAtLWNvbmZpZ3VyZS1vcHRpb25zCiAgICAgLS1zbm1wZC1tb2R1bGUtbGlzdAogICAKMjAwMi0wNC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTA0LTE4IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIE9oLCBqdXN0IGEgc21hbGwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBtYWtlIG1vZHVsZXMgcmVxdWVzdAogICB0aGF0IGFsbCBxdWVyaWVzIHRvIGEgc2V0IG9mIHJlZ2lzdHJhdGlvbnMgZ2V0IHBhc3NlZCBhbGwgYXQgb25jZQogICAod2hpY2ggYXBwYXJlbnRseSBpcyBpbXBvcnRhbnQgZm9yLCBvaCwgYWdlbnR4KQogICAKMjAwMi0wNC0xNyAxMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbWlzYyBub24tY2hhbmdlIGNsZWFuIHVwcwogICAKMjAwMi0wNC0xNyAxMDowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVuYW1lIHN0cnVjdHVyZXMgYmVnaW5uaW5nIHdpdGggXyB0byBlbmRpbmcgd2l0aCBfcwogICAKMjAwMi0wNC0xNyAxMDowMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIHNlc3Npb24gY3JlYXRvciB0byB1c2UgYXQgd2lsbCAoZGlmZmVyZW50CiAgIGZyb20gdGhlIGNhbGxiYWNrIG1hZ2ljKS4KICAgCjIwMDItMDQtMTcgMDk6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIHN5c09JRHMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTcgMDg6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZS4KICAgCjIwMDItMDQtMTcgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UKICAgCjIwMDItMDQtMTcgMDY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIG1vdmUgbnNNb2R1bGVUYWJsZSBpbnRvIERhdmUncyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA0LTE3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcFRDUElQdjZEb21haW4uaCAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICBmaXggZGVjbGFyYXRpb25zIG9mIERvbWFpbiBvYmplY3RzIChjb25zdCAtPiBleHRlcm4pCiAgIAoyMDAyLTA0LTE3IDA2OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnICwKICAgc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcgLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWc6CgogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGRhdGEKICAgCjIwMDItMDQtMTcgMDM6MDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCAtLXdpdGgtZW50ZXJwcmlzZS1zeXNvaWQgYW5kIC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQsCiAgIGFuZCB0cnkgdG8gY2xhcmlmeSB0aGF0IHRoZXNlIGFyZSBPSURzLCB3aGlsZSAtLXdpdGgtZW50ZXJwcmlzZS1vaWQKICAgaXMgYWN0dWFsbHkganVzdCB0aGUgZW50ZXJwcmlzZSAqbnVtYmVyKgogICAKICAgUW46ICBzaG91bGQgd2UgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHRvIHJlZmxlY3QgdGhpcz8KICAgCjIwMDItMDQtMTYgMTA6MDQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLCBGQVEgLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMyApCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBkZWxldGUgdG9wIGRpc2NsYWltZXJzCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTA0LTE2IDEwOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1pc2MgYnVnIGZpeGVzCiAgIAoyMDAyLTA0LTE2IDA4OjE5ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgY29uY2VybmluZyB0aGUgJ2xpYmNyeXB0bycgUlBNIGRlcGVuZGVuY3kuCiAgIAoyMDAyLTA0LTE2IDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDQtMTYgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBhIG5vIGxvbmdlciBhcHByb3ByaWF0ZSB0b2RvIGNvbW1lbnQKICAgCjIwMDItMDQtMTYgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEkgZ3Vlc3MgSSBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA0LTE1IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHNubXBjb25mICwgTWFrZWZpbGUuaW46CgogICBtb3ZlIHNubXBjb25mIGRhdGEgZGlyZWN0b3JpZXMgdG8gZGlmZmVyZW50IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAKMjAwMi0wNC0xNSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL2F1dGhvcHRzICwKICAgc25tcC1kYXRhL2RlYnVnZ2luZyAsIHNubXAtZGF0YS9taWJzICwgc25tcC1kYXRhL291dHB1dAogICAsIHNubXBkLWRhdGEvYWNsICwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCAsCiAgIHNubXBkLWRhdGEvZXh0ZW5kaW5nICwgc25tcGQtZGF0YS9tb25pdG9yICwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24gLCBzbm1wZC1kYXRhL3N5c3RlbSAsCiAgIHNubXBkLWRhdGEvdHJhcHNpbmtzICwgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZyAsCiAgIHNubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGU6CgogICBkYXRhIGZpbGUgbW92aW5nCiAgIAoyMDAyLTA0LTEyIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIE1hc3NpdmUgY2xlYW51cCBlZmZvcnQuICBJdCBzaG91bGQgbm93IHJlc3BlY3Qgb3JkZXJpbmcgaW4gdGhlCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXMgd2VsbC4KICAgCjIwMDItMDQtMTIgMTM6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBmaXggZm9yIG92ZXJ6ZWFsb3VzIHBlcmwgc2NyaXB0CiAgIAoyMDAyLTA0LTEyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCByc25tcDoKCiAgIHJlbW92ZSByc25tcCwgd2hpY2ggaXMgdmVyeSB2ZXJ5IG9sZCBhbmQgb3V0IG9mIGRhdGUKICAgCjIwMDItMDQtMTIgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUgLCBNYWtlZmlsZS5pbiAsIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWFpbiBsaWJyYXJ5IGFzICdsaWJzbm1wJyBpZiBjb25maWd1cmVkIHVzaW5nIFVDRCBjb21wYXRpYmlsaXR5LgogICBUaGlzIHNob3VsZCBoYW5kbGUgdGhlIHJlcXVpcmVtZW50cyBvZiBhcHBsaWNhdGlvbiBjb21wYXRpYmlsaXR5LgogICBBZ2VudCBsaWJyYXJ5IGNvbXBhdGliaWxpdHkgaXMgbGlrZWx5IHRvIHByb3ZlIGEgaGFyZGVyIHByb2JsZW0KICAgKHNpbmNlIHRoZXJlIGFyZSBub3cgdGhyZWUgbGlicmFyaWVzLCBub3QganVzdCB0d28uLi4pCiAgIAoyMDAyLTA0LTExIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgc2V0IFNOTVBDT05GUEFUSCBpZmYgW3NpY10gbm90IHNldAogICAKMjAwMi0wNC0xMSAyMjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZXR1cm4gZnJvbSBpbml0TWliIGJlZm9yZSBkb2luZyBhbnl0aGluZy4KICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR1cm4gb2ZmIGNvbXBsaWVyIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0ICJzaG93IGNvbHVtbnMgZnJvbSBUQUJMRSIKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIG5ldyBkZW1vIHNjYWxhcjogdGhlIHNsZWVwZXIuICAoZGFoIGRhaCBkYWggZHVtbW1tbSkKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGluZGVudC4KICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMuaCAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwogICAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaDoKCiAgIEFkZCBhIGRlbGF5ZWQgaW5zdGFuY2UgZXhhbXBsZSwgc2hvd2luZyBob3cgdG8gcmV0dXJuIG1pYiByZXF1ZXN0CiAgIHJlc3VsdHMgbGF0ZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkuCiAgIAoyMDAyLTA0LTExIDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgcmVtb3ZlIGxlZ2FjeSBleGFtcGxlLgogICAKMjAwMi0wNC0xMSAyMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGNvbW1lbnQgYWJvdXQgcG9zc2libHkgZml4aW5nIGluY2x1c2l2ZSByZXF1ZXN0cyBpbiB0aGUgZnV0dXJlLgogICAKMjAwMi0wNC0xMSAxNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgY2hhbmdlIG1vZHVrZXMtPiBtb2R1bGVzCiAgIAoyMDAyLTA0LTExIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdHVybiBvZmYgZGVidWdnaW5nIHdoZW4gY2FsbGluZyBsb2dnaW5nIGNhbGxiYWNrcwogICAKMjAwMi0wNC0xMCAxMjo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgIEV4cG9ydGluZyBmdW5jdGlvbnMgZ29vZC4gIEludGVybmFsaXppbmcgYmFkLgogICAKMjAwMi0wNC0xMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgc2lnaC4KICAgCjIwMDItMDQtMTAgMDk6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDQtMTAgMDk6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBNYWtlIHRoZSBwZXJsIG1vZHVsZSBjYWxsIGluaXRfc25tcCgpCiAgICAgLSB0aGlzIGlzIGEgZmFpcmx5IG1ham9yIGNoYW5nZSwgaXMgaXQgbm93IHdpbGwgcmVhZCAuY29uZiBmaWxlcy4KICAgICAtIG1hbnkgcGVvcGxlIGhhdmUgYXNrZWQgZm9yIHRoaXMuCiAgIC0gbWlzYyBjbGVhbiB1cHMuCiAgIAoyMDAyLTA0LTEwIDA5OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIERvbid0IHJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyBmb3IgdGhlIGNvbnNpdHVlbnQgc3VidGFyZ2V0cyBvZiAibWFrZSBpbnN0YWxsIgogICAKMjAwMi0wNC0xMCAwOTowOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIGEgZmV3IHRoaW5ncywgc2VwYXJhdGVkIHBlcmwgc3R1ZmYgaW50byBpdCdzIG93biBzZWN0aW9uLgogICAKMjAwMi0wNC0xMCAwODo0NiAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIGhlbHAgbWVzc2FnZSBmb3IgdGhlIFVDRCBjb21wYXRhYmlsaXR5IG9wdGlvbiBpbnRvIGxpbmUgd2l0aAogICB3aGF0J3MgYWN0dWFsbHkgcmVjb2duaXNlZC4KICAgCjIwMDItMDQtMTAgMDc6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNoYW5nZSBsaWJ0b29sIHZlcnNpb25pbmcgdG8gdGhlaXIgcmVjb21tZW5kZWQgbWV0aG9kIG9mIGRvaW5nIHRoaW5ncwogICAod2hpY2ggSSBoYXRlLCBidXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4gd2hhdCB3ZSB3ZXJlIGRvaW5nLCBJIGd1ZXNzKQogICAKMjAwMi0wNC0xMCAwNzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBCcmluZyB1c2Ugb2YgQlVJTFRTVUJESVIgd2l0aGluICdpbnN0YWxsbG9jYWxoZWFkZXJzJyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgcHJlY2VkaW5nIGNvbW1lbnQsIGFuZCBhY3R1YWwgdXNhZ2UuCiAgIChpLmUuIElOU1RBTExCVUlMVFNVQkRJUiByYXRoZXIgdGhhbiBJTkNMVURFQlVJTFRTVUJESVIpCiAgIAoyMDAyLTA0LTEwIDA1OjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHlwbyBpbiBzZWN1cml0eS1pbmNsdWRlIGhlYWRlciBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgdmFyaWFibGUKICAgCjIwMDItMDQtMTAgMDU6NTUgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIG1pYjJjIGNvbmYgZmlsZXMuCiAgIAoyMDAyLTA0LTEwIDAxOjU1ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwNHNubXB2MW5vc3VjaCAsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAsIHZhY21fdmFycy5oOgoKICAgZG9uJ3QgYWxsb3cgbm8tY29uZmlndXJhdGlvbiBhY2Nlc3MgYW55bW9yZS4KICAgCjIwMDItMDQtMDggMTc6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wdXNtLmM6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMgLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgZGVmaW5lIGxlbmd0aCBzaXplX3QncyBmb3Igb2lkIHZhcmlhYmxlcy4KICAgCjIwMDItMDQtMDggMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgc3VwcG9ydCAibnVsbCIgdHlwZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBub3RpZmljYXRpb24gbG9nIG1pYiBzdXBwb3J0IGJlZm9yZSAtSCB1c2FnZS4KICAgCjIwMDItMDQtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaXggYSBmZXcgdGhpbmdzIGFuZCBtYWtlIHN1YmhhbmRsZXJzIG5vdCBhYmxlIHRvIHRlbGwgdGhlcmUgd2VyZSBtb3JlIHJlcXVlc3RzLgogICAKMjAwMi0wNC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIEEgY28td29ya2VyIHBvaW50ZWQgb3V0IHRoYXQgdGhlIElOU1RBTEwgc2NyaXB0IHN0aWxsIHNhaWQgdG8gZWRpdCBjb25maWcuaAogICAKMjAwMi0wNC0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLAogICBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wX2FwaS5jICwgc25tcF90cmFuc3BvcnQuYwogICAsIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmICwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgTk9USUZJQ0FUSU9OLUxPRy1NSUIgc3VwcG9ydC4KICAgCjIwMDItMDQtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgY29udGV4dCBuYW1lIHN1cHBvcnQgaW4gcHJveHkgY29kZS4KICAgCjIwMDItMDQtMDUgMTM6NTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGRpc21hbiBldmVudCBtaWIgc3VwcG9ydCBmb3Igc2VuZGluZyB0cmFwcyB2aWEgbW9uaXRvcmVkIE9JRHMuCiAgIAoyMDAyLTA0LTA1IDEwOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHB1dCB0cmFwIGNvbmZpZyBpbnRvIGl0cyBvd24gc2VjdGlvbi4KICAgZG9jdW1lbnQgdGhlICJvdmVycmlkZSIgdG9rZW4uCiAgIAoyMDAyLTA0LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgY2hhbmdlIGRlZmF1bHQgY29udGV4dCB0byBhbiBlbXB0eSBzdHJpbmcKICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjUpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMuY29uZjoKCiAgIHJlbW92ZSBkZWxldGVkIGFycmF5LWF1dG8gZnJvbSAuY29uZiBpbnN0YWxsL3JlZmVyZW5jZSBsaXN0cwogICAKMjAwMi0wNC0wMiAxNTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oICwgdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNC0yLXBhdGNoZXMuOCksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDIgMDc6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGNoYXIgZm9yIE5VTEwgYmVmb3JlIHNldHRpbmcgdG86CiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjkpLCBjbXVfY29tcGF0LmMgLAogICBzbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjkgMTU6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgJiB1cGRhdGVzCiAgIAoyMDAyLTAzLTI5IDEwOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFkZCBjb21tZW50CiAgIAoyMDAyLTAzLTI5IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIGEgYWxsb3dfY3JlYXRpb24gZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMjkgMDg6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBuZXQtc25tcC1jb25maWcgZXhlY3V0YWJsZSBhZnRlciBpdCdzIGJ1aWx0CiAgIAoyMDAyLTAzLTI5IDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNldFNlcmlhbE5vLmMgLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jICwgbWliSUkvaW50ZXJmYWNlcy5jCiAgICwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMgLAogICBzbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjI1ICBkdHMxMgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wICwgcmVhZF9jb25maWcuMy5kZWYgLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmggLAogICBzbm1wdHJhcGQuYzoKCiAgIGFkZCAiZG9udFJldGFpbkxvZ3MiIHRva2VuIHRvIHNubXB0cmFwZC5jb25mIHRvIG5vdCBlbmFibGUgdGhlCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliLgogICAKMjAwMi0wMy0yNyAwMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bMSwxXSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo1OCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmb3Igb3RoZXItZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaW5mbyBpbiBzcGxpdF9zdWJ0cmVlCiAgIAoyMDAyLTAzLTI2IDA3OjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLlswLDBdKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBsaXN0IG9mIGFnZW50IGxpYnJhcmllcywgd2hlbiBydW5uaW5nIG9uIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNC0yLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMy0yNSAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICB1c2UgZW1hY3MgdG8gZml4IHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0ICwgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAogICAsIHNubXBkL3NubXBkLmRzcCAsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwKICAgc25tcGRmL3NubXBkZi5kc3AgLCBzbm1wZ2V0L3NubXBnZXQuZHNwICwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiAgICwgc25tcHNldC9zbm1wc2V0LmRzcCAsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKICAgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAogICAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIub3B0ICwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBHb3RjaGEhICBFdmVyeXRoaW5nIG5vdyBidWlsZHMgKG1vcmUtb3ItbGVzcykgY2xlYW5seSB1bmRlciBWaXN1YWwgQysrLgogICBZb3Ugc3RpbGwgaGF2ZSB0byB1c2UgdGhlICJCYXRjaCBCdWlsZCIgbWVjaGFuaXNtIChvciBlbHNlIGJlIGNhcmVmdWwgd2hpY2gKICAgb2YgbGlic25tcC9saWJzbm1wX2RsbCB5b3UgYnVpbGQgaW4gZWFjaCBvZiB0aGUgRGVidWcgJiBSZWxlYXNlIG1vZGVzKSwKICAgYW5kIHlvdSBuZWVkIHRvIGJ1aWxkIHR3aWNlIGluIG9yZGVyIHRvIGdldCBlbmNvZGVfa2V5Y2hhbmdlIGxpbmtpbmcuCiAgIEJ1dCB0aGluZ3MgKmRvKiBmaW5hbGx5IGJ1aWxkLgogICAKMjAwMi0wMy0yNCAwNToyMSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIzIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgcmVhbGx5IGZpeCBzbm1waW5mb3JtIGluc3RhbGxzIHRoaXMgdGltZS4KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmluYWwgY2xlYW51cHMgb2Ygbm90aWZpY2F0aW9uIGxvZyBzdXBwb3J0CiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBvZiBzbm1waW5mb3JtCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUmVuYW1lIHN0dWZmLiAgRml4IHN0dWZmLiAgWW91IGtub3csIG5vcm1hbCByb3V0aW5lLgogICAKMjAwMi0wMy0yMiAyMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgZml4IHZlcnNpb24gZmlsZSBsb2NhdGlvbiBmb3Igbm9uLXNvdXJjZWRpciBidWlsZHMKICAgCjIwMDItMDMtMjIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZm9yZ290IHRvIGNvbW1pdCBhIHByb3RvdHlwZS4KICAgCjIwMDItMDMtMjIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICByZWdpc3Rlcl9taWJfY29udGV4dDIgLT4gbmV0c25tcF9yZWdpc3Rlcl9taWIgKGFuZCBtYXJrZWQgYXMgaW50ZXJuYWwpCiAgIAoyMDAyLTAzLTIyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBzdWJhZ2VudC5jOgoKICAgYmV0dGVyIGFnZW50eCBjb25uZWN0aW9uIHJlbGF0ZWQgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTIyIDA5OjM1ICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdyAsIHdpbjMyLm9wdCAsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AgLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsIHNubXBsaWIvb2lkX2FycmF5LmMKICAgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVmFyaW91cyBtaW5vciBpbmNvbnNpc3RlbmNpZXMgKG1vc3RseSB0byBkbyB3aXRoIHN1YnRsZSB2YXJpYXRpb25zIGluIHR5cGVzKQogICAKMjAwMi0wMy0yMiAwNzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggdHlwbwogICAKMjAwMi0wMy0yMiAwNzoyOSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmggLCBtaWJfbW9kdWxlX2luaXRzLmggLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIG5ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CgogICBCcmluZyBXaW5kb3dzIHZlcnNpb25zIG9mICJhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCIgaGVhZGVyIGZpbGVzIHVwIHRvIGRhdGUuCiAgIAoyMDAyLTAzLTIyIDAyOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkb24ndCB1c2UgInJlZyIgYXMgYSBwYXJhbWV0ZXIgbmFtZSBpbiBrZXJuZWxfc3Vub3M1X2NhY2hlX2FnZSgpCiAgICAgICBhcyAvdXNyL2luY2x1ZGUvaW5ldC9jb21tb24uaCBzYXlzOgogICAgICAgI2RlZmluZSByZWcgcmVnaXN0ZXIKICAgICAgICghKSB3aGljaCB0aGUgY29tcGlsZXIgdGhlbiBiYXJmcyBvbi4gIFJlcG9ydGVkIGFzIGJ1ZyAjNTMzMzM2IGJ5CiAgICAgICBBbm9ueW1vdXMuCiAgIAoyMDAyLTAzLTIxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYyAsIFJtb24vc3RhdGlzdGljcy5jICwKICAgbWliSUkvYXQuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjEgMDY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMCAyMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGEgbGlzdCBvZiByZWdpc3RlcmVkIHRleHQgZW51bXMgdG8gQVNOXyogdmFsdWVzLgogICAgIChJbiBwcm9iYWJseSB0aGUgd3JvbmcgcGxhY2UuKQogICAKMjAwMi0wMy0yMCAyMDoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmggLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIHNlcGFyYXRlIG91dCBkZWxldGUvcmVtb3ZlIHJvdyBmdW5jdGlvbmFsaXR5CiAgIAoyMDAyLTAzLTIwIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBzeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTIwIDA2OjI3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZSAsIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbWFueSBtYW55IC1UIGZsYWdzIGZvciBkZWZpbmluZyB0eXBlcy4KICAgCjIwMDItMDMtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmb3JjZSBzZXR0aW5nIG9mICchcm9vdCcgZmxhZyBzbyB0aGF0IGl0IHdpbGwgcnVuIGZvciBub24tcHJpdmlsZWdlZAogICB1c2VycyBvciB3aGVuIGFuIGFnZW50eCBtYXN0ZXIgc2ltcGx5IGhhcyBuZXZlciBleGlzdGVkLgogICAKMjAwMi0wMy0xOSAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYyAsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MjggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHBlcmwvYWdlbnQvYWdlbnQueHMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW5hbWVkIGEgZmV3IGJhZGx5IG5hbWVkIGZ1bmN0aW9ucyAobmV0c25tcF8gYXBwZWFyZWQgdHdpY2UpLgogICAtIGltcGxlbWVudGVkIHRoZSBiZWdpbm5pbmcgb2YgY3JlYXRpb24gc3VwcG9ydCBmb3IgZGF0YXNldHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBBcHBhcmVudGx5IEkgcmFuIGF1dG9jb25mIGVhcmxpZXIgYW5kIG1pc3NlZCBjaGVja2luZyBpbiB0aGUgcmVzdWx0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgYWRkIC1uZmNhCiAgIAoyMDAyLTAzLTE3IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBTZXQgZGVmYXVsdCBwb3J0IHRvIDE2Mi4KICAgCjIwMDItMDMtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICBpbXByb3ZlZCBmb3JtYXR0aW5nIHN0cmluZ3Mgc2hvd2luZyBib3RoIHRyYW5zcG9ydCB0eXBlIGFuZCBwb3J0IG51bWJlci4KICAgCjIwMDItMDMtMTMgMjM6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIG1pc3NpbmcgImluc3RhbGxzdWJkaXJzIiB0YXJnZXQgbWlzc2luZyAodGhhbmtzIHRvIEthdHN1aGlzYSBBQkUpCiAgIAoyMDAyLTAzLTEzIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4gLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmggLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCAsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQgLAogICBVQ0QtRElTS0lPLU1JQi50eHQgLCBVQ0QtRExNT0QtTUlCLnR4dCAsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0ICwgVUNELUlQRldBQ0MtTUlCLnR4dCAsCiAgIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEFkZGVkIGEgbnNNb2R1bGVUYWJsZSB0YWJsZSB3aGljaCByZXBsYWNlcyB0aGUgb2xkZXIgbXJUYWJsZS4KICAgRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBpdGVtcyB3aXRoaW4gdGhlIE1JQgogICB0cmVlIGp1c3QgbGlrZSB0aGUgbXJUYWJsZSB3YXMsIGJ1dCB3aXRoIHN1cHBvcnQgZm9yIGNvbnRleHRzIGFuZCBmb3IKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgd2l0aCBkaWZmZXJlbnQgcHJpb3JpdGllcy4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0b29scy5jIChWNC0yLXBhdGNoZXMuNCksIHRvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBkZWJ1ZyBzdGF0ZW1lbnQKICAgCjIwMDItMDMtMTMgMTQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgbG9jYWwgdmFyaWFibGUgbmFtZSBidWZmZXJzIGJ5IGRlZmF1bHQgd2hlbiBidWlsZGluZyBvaWQgc2VnbWVudHMuCiAgIAoyMDAyLTAzLTEzIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAvKiBzdG9wIHdhdGVyIGZyb20gZmxvd2luZyB0aHJvdWdoIGRhbSAqLwogICBmaW5nZXItPmluc2VydCgiaG9sZSIpCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZml4IGhlYWRlcnMuCiAgIAoyMDAyLTAzLTEyIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBkb24ndCBmb3JtYXQgY29tbWVudHMgb3B0aW9uCiAgIAoyMDAyLTAzLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgdGFibGVzIHdpdGggaG9sZXMuCiAgIAoyMDAyLTAzLTEyIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgbW92ZSBkZWZhdWx0IG1pYnMgdG8gdGhlaXIgb3duIHZhcmlhYmxlLgogICAKMjAwMi0wMy0xMiAyMTowNiAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvTWFrZWZpbGUuUEwgLCBhZ2VudC9NYWtlZmlsZS5QTCAsCiAgIGFnZW50L2FnZW50LnhzICwgYWdlbnQvdHlwZW1hcDoKCiAgIC0gdXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaWd1cmUgdGhpbmdzIG91dC4KICAgLSB1cGRhdGUgaGVhZGVycyBhbmQgdHlwZWluZm8gZm9yIHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBGQVEySFRNTCAsIFJFQURNRS5taWIyYyAsIG1pYjJjICwgdGttaWIKICAgLCBtaWIyYy5hcnJheS1hdXRvLmNvbmYgLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmggLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgQWRkIHNucHJpbnRfKiBmdW5jdGlvbnMgdGhhdCB3ZXJlIHNwcmludF8qIGluIHVjZC1zbm1wIDQKICAgCjIwMDItMDMtMTAgMTQ6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aGVuIElQWC10cmFuc3BvcnQgZW5hYmxlZAogICAKMjAwMi0wMy0xMCAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBGaXggY29tcGlsYXRpb24gb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAzLTA4IDIyOjI2ICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCBwZXJsL1NOTVAvU05NUC5wbSAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTIgKQogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWlzYyBjaGFuZ2VzLgogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMDggMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkIHRvIGRlYWwgd2l0aCBTZW5kbWFpbCA4LjEyIHF1ZXVlZ3JvdXBzLgogICAKMjAwMi0wMy0wOCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gY3NldGUgdG8gZml4IHdpbjMyIGJ1aWxkcwogICAKMjAwMi0wMy0wOCAxNjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKICAgLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcGJ1bGtnZXQuYyAsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYwogICAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwKICAgYXBwcy9zbm1wc2V0LmMgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMKICAgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oICwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMgLCBhZ2VudC9hZ2VudC5wbSAsIGFnZW50L2FnZW50LnhzCiAgICwgYWdlbnQvdGVzdC5wbDoKCiAgIG1pc3NlZCB1cGRhdGVzCiAgIAoyMDAyLTAzLTA4IDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkZWZhdWx0X3N0b3JlLmMgLCBtaWIuYwogICAsIG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCByZWFkX2NvbmZpZy5jCiAgICwgc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5jICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcF9hcGkuYyAsIHNubXBfZGVidWcuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wdjMuYzoKCiAgIG1pc3NpbmcgdXBkYXRlZCBjb2RlCiAgIAoyMDAyLTAzLTA4IDAyOjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc29tZSBzbm1wIC0+IG5ldHNubXAgZml4ZXMKICAgCjIwMDItMDMtMDcgMTM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDQpCiAgIAoyMDAyLTAzLTA3IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAzKQogICAKMjAwMi0wMy0wNyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDIpCiAgIAoyMDAyLTAzLTA3IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcHN0YXR1cy5jICwKICAgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMSkKICAgCjIwMDItMDMtMDcgMDY6MjEgIGpicG4KCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjQ3ICBqYnBuCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgICAtIG1pbm9yIHVwZGF0ZXMKICAgCjIwMDItMDMtMDcgMDU6MzkgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjAwICBqYnBuCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgICAgLSBtYWtlIHByb3RvdHlwZXMgbWF0Y2ggaGVhZGVyCiAgIAogICAgIC0gbWFrZSBzdHlsZSBjb25zaXN0ZW50IHdpdGggbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMzowNyAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBmaXggdXAgc25wcmludF8gZGVjbGFyYXRpb25zLCBmaXggc21hbGwgdHlwby4gIFBhdGNoIGJ5IEd1eQogICBIYXJyaXMuCiAgIAoyMDAyLTAzLTA3IDAyOjQ0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHNwcmludF9yZWFsbG9jX2J5X3R5cGUsIGFzIG5vdGVkCiAgICAgICBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUgLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlOgoKICAgbmV3IGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMy0wNiAxNzoxMyAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBkb2NzCiAgIAoyMDAyLTAzLTA2IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgZXhhbXBsZXMgbW9kdWxlIHdyYXBwZXIgdG8gaW5jbHVkZSBhbGwgKG5ldykgZXhhbXBsZXMuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudCBiZXR0ZXIuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBzZWFyY2ggZXhhbXBsZXMgZm9yIGRvY3MuCiAgIAoyMDAyLTAzLTA2IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBleGFtcGxlIE1JQiB0ZW1wbGF0ZSAoYW5kIG9uZSBub2RlKQogICAKMjAwMi0wMy0wNiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgaW5zdGFudGlhdGUgZXhhbXBsZXMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgTlMgbWlicwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBzY2FsYXJfaW50LmMgLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmM6CgogICBGaXggbWFzdGVyIGFnZW50IGdldGJ1bGsgc3VwcG9ydC4gIHRoaXMgaGFzIHRvIGJlIGluZGVwZW5kZW50bHkgb2YgdGhlCiAgIG5vcm1hbCBidWxrLT5uZXh0IGZpeGVzIGR1ZSB0byBkZWxlZ2F0aW9uLiAgTG9uZyBzdG9yeS4KICAgCjIwMDItMDMtMDYgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBtb3ZlIGJ1bGtfdG9fbmV4dCBmaXhpbmcgZnVuY3Rpb25hbGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlLgogICAKMjAwMi0wMy0wNiAxMDoyNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIHNwcmlua2xlIG1hZ2ljIGNvbnN0IGR1c3QKICAgCjIwMDItMDMtMDYgMTA6MTggIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZG9jdW1lbnQgY2hhbmdlZCBBUEksIGluY29ycG9yYXRpbmcgcGF0Y2hlcyBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwOTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTJhZ2VudHhzZXRmYWlsICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwICwgVDA1MnNubXB2MmNpbmZvcm0gLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIGZpeGVzIGZvciBuZXcgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMjAwMi0wMy0wNiAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW9yZSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyAobW9zdGx5KQogICAKMjAwMi0wMy0wNiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgYXV0b2NvbmYKICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCAsIFQwMDFzbm1wdjFnZXQgLAogICBUMDAyc25tcHYxZ2V0bmV4dCAsIFQwMDNzbm1wdjFnZXRmYWlsICwgVDAxNHNubXB2MmNnZXQKICAgLCBUMDE2c25tcHYyY2dldGZhaWwgLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsICwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCAsIFQxMDBhZ2VudGh1cDoKCiAgIGZpeGVzIGZvciBuZXcgZm9yY2VkIC1jIGZsYWdzCiAgIAoyMDAyLTAzLTA1IDE4OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgYXBwcm9wcmlhdGUgY29tbWVudC4KICAgCjIwMDItMDMtMDUgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IGR1cGxpY2F0ZSBmcmVlIGJ5IGNsb25pbmcgdGhlIHBkdSBiZWZvcmUgc2VuZGluZyBpdCBvdXQgYWdhaW4KICAgKHRob3VnaHQgSSBoYWQgZG9uZSB0aGlzIG9uY2UgaW4gdGhlIHBhc3QgYWxyZWFkeSwgYnV0IEkgZ290IDEvMiBmdW5jdGlvbnMpLgogICAKMjAwMi0wMy0wNSAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUZW1wb3JhcnkgZml4IHRvIGZpeCBmb3IgYWdlbnR4IFNFVCByZXF1ZXN0cy4gIFRoaXMgcmV2ZXJzZXMgYQogICBwcmV2aW91cyBKb2huIGNoYW5nZSB3aGVyZSByZXNwb25zZXMgdG8gY2xlYW51cHMgYXJlIG5vdyBleHBlY3RlZAogICBhZ2Fpbi4gIFRoaXMgdG9vayBtZSBhIGdvb2QgMiBkYXlzIHRvIHRyYWNrIGRvd24sIHNpZ2guLi4KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gYWRkIChhc2NpaSkgYWdlbnR4IHN0YXRlIGRpYWdyYW0KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gbXVsdGlwbGUgZnJlZSBidWcgZml4ZXMuCiAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAzLTA1IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jICwgbWFzdGVyX3JlcXVlc3QuaDoKCiAgIHJlbW92ZWQgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTAzLTA1IDEwOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIGZpeCBiYWQgY3V0IGFuZCBwYXN0ZQogICAKMjAwMi0wMy0wNSAxMDoyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZWludHJvZHVjZSBzY29wZSBwcm9jZXNzaW5nIChzZWUgUkZDIDI3NDEsIHAuIDY2LCBzZWN0aW9uIDcuMi4zLjIKICAgICAgIHBhcmFncmFwaCAyKTogIklmIHRoZSBzdWJhZ2VudCBjYW4ndCBsb2NhdGUgYW4gYXBwcm9wcmlhdGUKICAgICAgIHZhcmlhYmxlLCBfX3YubmFtZV9pc19zZXRfdG9fdGhlX3N0YXJ0aW5nX09JRF9fIFt0aGUgaW1wb3J0YW50CiAgICAgICBiaXRdIGFuZCB0aGUgVmFyQmluZCBpcyBzZXQgdG8gYGVuZE9mTWliVmlldyciCiAgIAoyMDAyLTAzLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIHNubXBfYWdlbnQuYyAsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBuZXcgREVCVUdNU0dWQVIgbWFjcm8gaW4gYSBmZXcgcGxhY2VzCiAgIAoyMDAyLTAzLTA1IDA4OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdNU0dWQVIgbWFjcm8gdG8gcHJpbnQgb3V0IGEgdmFyaWFibGUKICAgCjIwMDItMDMtMDUgMDg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBjYWxsYmFjayBzZXNzaW9uIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBnZW5lcmljIC0xCiAgIHZlcnNpb24gYWxsb3dpbmcgdGhlIHBkdSB0byBwYXNzZWQgd2l0aG91dCB2ZXJzaW9uIGNoZWNraW5nLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbW92ZSBOVUxMIGNoZWNrIHRvICpiZWZvcmUqIHlvdSBhY3R1YWxseSB1c2UgdGhlIHBvaW50ZXIuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBtYXJrIElOQ0xVU0lWRSByZXF1ZXN0cyBhcyBzdWNoCiAgIAoyMDAyLTAzLTA1IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gdXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHdoaWxlIGxvb3AsIGp1c3QgYSBwcmVjYXV0aW9uIGZvciBmdXR1cmUgcHJvYmxlbXMuCiAgIAoyMDAyLTAzLTA1IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2NoZWNrX3BhcnNlKSBhbGxvdyBpbnRlcm5hbCBzZXQgdHJhbnNhY3Rpb25zIHRvIGJlIHBhc3NlZCB0bwogICAgIHRoZSBhZ2VudCwgc2luY2UgYWdlbnR4IHNlbmRzIHRoZW0uCiAgIAoyMDAyLTAzLTA1IDA3OjIxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZG9uJ3QgYWRkIHRoZSAibW9kdWxlIElEIiB0byBPSURzIGlmIGl0IGlzIG51bWVyaWMgYmVjYXVzZSB3ZQogICAgICAgY291bGRuJ3QgbG9vayBpdCB1cCBwcm9wZXJseSAodG8gYXZvaWQgaG9ycmlibGUgbG9va2luZyBvdXRwdXQKICAgICAgIGxpa2UgdGhpczogIk9JRDogIy0xOjppc28uMi4zLjQuNS4iKQogICAKMjAwMi0wMy0wNSAwNzowNSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byAyYyBpbiBlcnJvciBtZXNzYWdlIGZyb20gdmVyc2lvbiBwcm9tcHQKICAgCjIwMDItMDMtMDUgMDc6MDEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgdGVzdHMKICAgCjIwMDItMDMtMDUgMDY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gcmUtZW1waGFzaXMgYSBzdWdnZXN0aW9uIHRvIHN3aXRjaCB0byBhIHNlY3VyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbC4KICAgLSBkZWxldGUgbm90aW9uIHRoYXQgdjMgd2l0aG91dCBhdXRoL3ByaXYgcHJvdmlkZXMgYmV0dGVyIHNlY3VyaXR5IChpdCBkb2Vzbid0KS4KICAgLSBEb24ndCBhY2NlcHQgdjJjIGFzIGFuIGFjY2VwdGVkIHZhbHVlLCBhcyBpdCdzIHVzZWQgYXMgYW4gaW50LgogICAgIC0gYnV0IGRvIGNoYW5nZSBoZWxwIG1lc3NhZ2VzLCBldGMsIHRvIHJlZmxlY3QgdGhhdCAyID0gdjJjLgogICAKMjAwMi0wMy0wNSAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjYWxsb2MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDUgMDY6MjAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbyBpbiBPQkpTIGRlZmluaXRpb24KICAgCjIwMDItMDMtMDUgMDY6MTggIGpicG4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAgIC0gY2xlYW4gdGFyZ2V0IGRlcGVuZHMgb24gJChPQkpTKSBhbmQgJChMT0JKUyksIHNvIGRlZmluZSB0aGVtCiAgIAoyMDAyLTAzLTA1IDAzOjUyICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggZGVmYXVsdCB2ZXJzaW9uIHRlc3RzIChzcGxpdHRpbmcgdGhlbSBvdmVyIHNldmVyYWwgbGluZXMKICAgICAgIGNvbmZ1c2VzIHNoIG9uIFNvbGFyaXMsIGF0IGxlYXN0KS4KICAgCiAgICAgLSBkaXNhbWJpZ3VhdGUgc29tZSBpbnN0YW5jZXMgb2YgInZlcnNpb24iIGluIGRlZmF1bHQgdmVyc2lvbgogICAgICAgcHJvbXB0IHRleHQuCiAgIAoyMDAyLTAzLTA1IDAyOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdXNlIGEgY29uZmlndXJlIGdlbmVyYXRlZCB3cmFwcGVyIGhlYWRlciBmb3IgdjMgc2VjdXJpdHkgbW9kdWxlcy4KICAgCjIwMDItMDMtMDQgMTE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBkbWFsbG9jLmggdG8gdGhlIHByb3BlciBwbGFjZS4KICAgCjIwMDItMDMtMDQgMTE6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN0cmluZyBjbGVhbiB1cHMuCiAgIAoyMDAyLTAzLTA0IDExOjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmICwgc25tcGJ1bGt3YWxrLjEuZGVmICwKICAgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEuZGVmICwgc25tcHN0YXR1cy4xLmRlZgogICAsIHNubXB0ZXN0LjEuZGVmICwgc25tcHRyYXAuMS5kZWY6CgogICAgIC0gcmVtb3ZlIGZ1cnRoZXIgaW5zdGFuY2VzIG9mIHBvc2l0aW9uYWwgY29tbXVuaXR5IHN0cmluZyBwYXJhbWV0ZXIsCiAgICAgICBhZnRlciBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwNToyNSAgamJwbgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmICwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBtYWtpbmcgdGhlIChzYW1lKSBkZWJ1Z2dpbmcgc3RhdGVtZW50IG1vcmUgdXNlZnVsLgogICAKMjAwMi0wMy0wMSAyMjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIHRvIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDItMDMtMDEgMTI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jICwgbWliLmMgLCBzbm1wX2FwaS5jICwKICAgc25tcF9jbGllbnQuYyAsIHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGEgZmV3IGJldHRlciBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDEgMTI6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBkb24ndCBpbnN0YWxsIGhlYWRlcnMgaGVyZS4KICAgCjIwMDItMDMtMDEgMDU6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBhZGQgc25wcmludF92YWx1ZSwgc25wcmludF92YXJpYWJsZSwgc25wcmludF9vYmppZAogICAKMjAwMi0wMi0yOCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jICwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCAsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQWRkIGJhY2sgdGhlICdzbm1wQ2FsbGJhY2snIGRvbWFpbiB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNyAxMDowNCAgamJwbgoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGdldC5jCiAgICwgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYyAsIHNubXBzdGF0dXMuYwogICAsIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsIHNubXB0cmFuc2xhdGUuYwogICAsIHNubXB0cmFwLmMgLCBzbm1wdXNtLmMgLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYgLCBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdHJhcC4xLmRlZgogICAsIHNubXB1c20uMS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHBhcnNlLmMgLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gZHJvcCBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBubyBzbnByaW50X2JsYWggeWV0CiAgIAoyMDAyLTAyLTI3IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jICwgaHJfc3dydW4uYzoKCiAgIFVzZSB0aGUgbW9yZSBpbmZvcm1hdGl2ZSAnb3V0cHV0X2FwaS5oJyBoZWFkZXIgZmlsZSBuYW1lCiAgICAgKEkgbXVzdCBoYXZlIG1pc3NlZCB0aGVzZSBlYXJsaWVyKQogICAKMjAwMi0wMi0yNyAwNTozNSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHllcywgZm9yIG9uY2UgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCAqYmVmb3JlKiB0aGUKICAgY29kZSEKICAgCjIwMDItMDItMjcgMDU6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1AgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDU6MTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9hcGkuaCAsIHNubXBfZGVidWcuaCAsCiAgIHN5c3RlbS5oOgoKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjEwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1BMIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA0OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwKICAgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wd2Fsay5jCiAgICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgLCBrZXJuZWxfc3Vub3M1LmggLAogICBtaWJJSS9hdC5jICwgbWliSUkvaWNtcC5jICwgbWliSUkvaW50ZXJmYWNlcy5jICwKICAgbWliSUkvaXAuYyAsIG1pYklJL3RjcC5jICwgbWliSUkvdWRwLmMgLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBjaGFuZ2UgY2FjaGUgaW1wbGVtZW50YXRpb24gYWZ0ZXIgc29tZSBpbnRlcmVzdGluZyBwcm9maWxpbmcgKHNlZQogICAgICAgbGVuZ3RoeSBuZXcgY29tbWVudCBpbiBrZXJuZWxfc3Vub3M1LmMpCiAgIAoyMDAyLTAyLTI2IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIHNubXBsaWIvc25tcC10Yy5jICwKICAgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBSZW1vdmUgYXNzb3J0ZWQgZXh0cmFuZW91cyBeTSdzCiAgIAoyMDAyLTAyLTI2IDA3OjE0ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBBIHF1aWNrIGd1aWRlIHRvIGluc3RhbGxpbmcgdGhlIENvcmUgUGxhdGZvcm0gU0RLLCBuZWVkZWQgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNiAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgTW9zdGx5IGJlY2F1c2UgVkMrKyBpcyBmdXNzeSBhYm91dCBzb3J0LW9mLWNvbXBhdGlibGUgZGF0YSB0eXBlcwogICAgIChlLmcuIHNpZ25lZCB2cyB1bnNpZ25lZCBpbnRlZ2VycykuCiAgIAoyMDAyLTAyLTI2IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyLmRzdyAsIHdpbjMyLm9wdAogICAsIGxpYmFnZW50L2xpYmFnZW50LmRzcCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwICwKICAgc25tcGQvc25tcGQuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLCB3aW4zMi93aW4zMi5kc3c6CgogICBDb250aW51aW5nIGltcHJvdmVtZW50cyB0byBjb21waWxhdGlvbiBvZiB0aGUgbGF0ZXN0IGNvZGUgdW5kZXIgVmlzdWFsIEMrKy4KICAgVGhlICdsaWJoZWxwZXJzJyBwcm9qZWN0IG5vdyBjb21waWxlcywgYW5kIHRoaXMgYWxzbyBhZGRyZXNzZXMgYSBudW1iZXIKICAgb2Ygd2FybmluZ3MgYW5kIGVycm9ycyBpbiB0aGUgbGliYWdlbnQgYW5kIGxpYnVjZG1pYnMgcHJvamVjdHMuCiAgICAgQnV0IHRoZXNlIHR3byBzdGlsbCBmYWlsIG9uICdPSURfTEVOR1RIJyBhbmQgJ2lwaGxwYXBpLmgnCiAgIAoyMDAyLTAyLTI1IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUHJvdmlkZSBhIHBsYXVzaWJsZSBtb2R1bGUgY29uZmlndXJhdGlvbiBsaXN0IGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjUgMDY6MDQgIGpicG4KCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgICAtIHJlc29sdmUgY29uZmxpY3RpbmcgU1lOVEFYZXMgZm9yIG5zVHJhbnNhY3Rpb25Nb2RlCiAgIAogICAgIC0gYWRkIHJhbmdlIGZvciBpbmRleCBuc1RyYW5zYWN0aW9uSUQKICAgCjIwMDItMDItMjUgMDM6MjMgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEVuc3VyZSB0aGUgbWFpbiBsaWJyYXJ5IGNvbXBpbGVzIGFuZCB3b3JrcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzoxOSAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuaCAsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCBzbm1wLXRjLmMgLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwgc25tcGxpYi90b29scy5jOgoKICAgZGVmaW5lIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsCiAgIAoyMDAyLTAyLTIyIDEwOjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHV0aWxpdGllcy4KICAgCjIwMDItMDItMjIgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gZG9uJ3QgbG9vcCBhZ2FpbiBmb3Igc2Vjb25kYXJ5IFNFVCBtb2RlcyBhbmQgY2FjaGUgaW5mb3JtYXRpb24gaW5zdGVhZC4KICAgLSB2YXJpb3VzIGZpeGVzLgogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsIGRpcmVjdG9yaWVzIGZvciBoZWFkZXJzCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jb21waWxlLXN1YmFnZW50IGZvciBhdXRvbWF0dGVkIHN1YmFnZW50IGNvbXBpbGF0aW9uIGZyb20KICAgbWlibW9kdWxlIC5jIGZpbGVzIDstKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAoVjQtMi1wYXRjaGVzLlsxLDFdKSwKICAgTVNHMDAwMDEuYmluICwgd2luc2VydmljZS5tYzoKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDg6NDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXB2My5jOgoKICAgVHdlYWtzIHJlcXVpcmVkIHRvIGdldCB0aGUgbGlicmFyeSBjb21waWxpbmcgdW5kZXIgV2luZG93cyBWQysrCiAgIAoyMDAyLTAyLTIyIDA4OjM3ICBkdHMxMgoKICAgKiB3aW4zMi86IHNubXBzbV9pbml0LmggLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwICwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AgLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKICAgLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCAsIHNubXBkL3NubXBkLmRzcCAsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwgc25tcGRmL3NubXBkZi5kc3AgLAogICBzbm1wZ2V0L3NubXBnZXQuZHNwICwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwICwgc25tcHNldC9zbm1wc2V0LmRzcCAsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKICAgLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAogICAsIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi4uLi4gLTN1IHtzZWNOYW1lfSAuLi4uIiBzeW50YXgKICAgKGluIHRoZSBub3JtYWwgZ2V0b3B0IHN0eWxlIC0gaS5lLiBubyBuZWVkIGZvciBzdXJyb3VuZGluZyBxdW90ZXMpCiAgIAogICBJdCBzaG91bGQgbm93IGJlIHBvc3NpYmxlIHRvIHN3aXRjaCB0byB0aGlzIGFzIHRoZSByZWNvbW1lbmRlZCBmb3JtCiAgIGZvciBTTk1QdjMgb3B0aW9ucyAtIGlmIHRoYXQncyB3aGF0IHdlIHdhbnQgdG8gZG8uCiAgICAgUW46ICBEbyB3ZSB3YW50IHRvPwogICAKMjAwMi0wMi0yMSAwODozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi0zdSB7c2VjTmFtZX0iIHN5bnRheCAoKndpdGgqIHRoZSBxdW90ZXMsIHVuZm9ydHVuYXRlbHkpLgogICBOb3cgY29tZXMgdGhlIGZ1biBiaXQuLi4uLgogICAKMjAwMi0wMi0yMSAwNzo1NCAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwNzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gZHJvcCBpbmxpbmUgKG1vcmUgdHJvdWJsZSB0aGFuIGl0IGlzIHdvcnRoKQogICAKMjAwMi0wMi0yMSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgLSBBZGQgYSAtLXF1aXQgb3B0aW9uIChhbmQgYSBjb25maWd1cmF0aW9uIHRva2VuKSBzbyB0aGF0IHlvdSBjYW4gbm93CiAgICAgY3JlYXRlIG5ldyB1c2VycyBieSBzaW1wbHkgY2FsbGluZyBzbm1wZCBhczoKICAgICAgIHNubXBkIC0tY3JlYXRlVXNlcj0ibXl1c2VyIE1ENSBteXBhc3N3b3JkIiAtLXF1aXQKICAgLSBDaGFuZ2UgUkVBRE1FLnNubXB2MyBkb2N1bWVudGF0aW9uIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KICAgCjIwMDItMDItMjAgMDY6MTYgIGpicG4KCiAgICogYXBwcy9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcHRyYXBkLmMgLCBjb25maWd1cmUKICAgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCB0byBzbm1wdHJhcGQgKHVudGVzdGVkKQogICAKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8gc25tcGQgbGlid3JhcCBzdXBwb3J0CiAgIAogICAgIC0gY29uZmlndXJlIGZpeGVzIGZvciBsaWJ3cmFwCiAgIAoyMDAyLTAyLTIwIDAzOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMjAgMDM6MDYgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMjAgMDM6MDMgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDbGVhbiB1cCB0aGUgb2JqZWN0IGZpbGVzIGFzIHdlbGwKICAgCjIwMDItMDItMjAgMDE6NDEgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIHRoZSBuZXcgY3JvcCBvZiBnZW5lcmF0ZWQgbWFuIHBhZ2VzLgogICAKMjAwMi0wMi0yMCAwMTozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgU3VwcGx5IG1pc3NpbmcgZG91YmxlLXF1b3RlICAob29wcykKICAgCjIwMDItMDItMTkgMDQ6MDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgSW5pdGlhbGlzZSB0aGUgbGlicmFyeSBpbnRlcm5hbHMgKmJlZm9yZSogcGFyc2luZyB0aGUgY29tbWFuZCBsaW5lLAogICBzbyB0aGF0IGRlZmF1bHRzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIFFuOiAgU2hvdWxkICdfaW5pdF9zbm1wJyBiZSBpbnZva2VkIGJ5ICdzbm1wX3BhcnNlX2FyZ3MnIGl0c2VsZj8KICAgCjIwMDItMDItMTkgMDM6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIHN1cmUgdGhhdCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0IGZsYWdzIHdvcmsgaW4gYSBjb25zaXN0ZW50IG1hbm5lci4KICAgKGkuZS4gdGhlIGxhc3Qgb25lIGlzIHVzZWQsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW50ZXJuYWwgb3JkZXJpbmcpLgogICAKMjAwMi0wMi0xOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jICwgdGVzdGhhbmRsZXIuYzoKCiAgIGluY2x1ZGUgc3RkbGliLmgKICAgCjIwMDItMDItMTggMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGluY2x1ZGVzCiAgIAoyMDAyLTAyLTE4IDIxOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR3ZWFrIHRoZSBsaXN0IG9mIGhlYWRlciBmaWxlcyB0byBiZSBpbnN0YWxsZWQgKHRoYW5rcyB0byBDaHJpc3RvcGggTWFtbWl0enNjaCkKICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgKFY0LTItcGF0Y2hlcy43KSwgaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQgLCBORVQtU05NUC1NT05JVE9SLU1JQi50eHQgLAogICBORVQtU05NUC1TWVNURU0tTUlCLnR4dCAsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBhZ2VudC9zbm1wZC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGZpbmlzaCBpbXBsZW1lbnRpbmcgc25tcF9jb25maWcoIm15IGNvbmZpZyBsaW5lIikKICAgICAtIHdhcyBkb25lIGJlZm9yZSwgYnV0IHByZXZpb3VzbHkgaGFkIHRvIGJlIGNhbGxlZCBvbmx5IGFmdGVyCiAgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGhhZCBiZWVuIHJlYWQuICBOb3cgY2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZS4KICAgLSBtYWtlIGFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGFzIC0tbG9uZ29wdHMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgLSAtLXNvbWV0aGluZz12YWx1ZSAtPiAic29tZXRoaW5nIHZhbHVlIgogICAgIC0gLS1zb21ldGhpbmcgICAgICAgLT4gInNvbWV0aGluZyAxIiAod29ya3MgZm9yIHNldHRpbmcgYm9vbGVhbnMgdG8gdHJ1ZSkKICAgCjIwMDItMDItMTYgMDA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgaW5zdGFsbC9jbGVhbi9ldGMuCiAgIAoyMDAyLTAyLTE1IDIyOjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzOgoKICAgaW5zdGFsbCBhbGwgc3lzdGVtIGFuZCBtYWNoaW5lIGZpbGVzLCBzaW5jZSB0aGV5IGluY2x1ZGUgZWFjaCBvdGhlcgogICAKMjAwMi0wMi0xNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQgLCBtaWJzL05FVC1TTk1QLU1JQi50eHQgLAogICBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCAsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKICAgLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFJlbW92ZSBzdXBwb3J0IGZvciBkZXByZWNhdGVkIGNvbW1hbmQtbGluZSBvcHRpb25zLgogICAKMjAwMi0wMi0xNSAwNzoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCAsIHNubXBsaWIvd2luc2VydmljZS5jCiAgICwgYWdlbnQvc25tcGQuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMgLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuaDoKCiAgIGZpbGUgd2luc2VydmljZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5yYzoKCiAgIGZpbGUgd2luc2VydmljZS5yYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0ICpiZWZvcmUqIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMsCiAgIHJhdGhlciB0aGFuIGFmdGVyLiAgVGhhdCdzIHByb2JhYmx5IGEgYml0IG1vcmUgZmxleGlibGU6LSkKICAgCjIwMDItMDItMTUgMDI6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgb3V0cHV0X2FwaS5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaAogICAsIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHtzeXN0ZW0sbWFjaGluZX0vKi5oIGhlYWRlciBmaWxlcyBhcyB3ZWxsLgogICAKICAgRG9pbmcgdGhpcyB2aWEgdGhlICdtYW4nICYgJ21pYnMnIE1ha2VmaWxlcyBpcyBhIGdyb3NzIGhhY2ssCiAgIGFuZCByZWFsbHkgbmVlZHMgdG8gYmUgaGFuZGxlZCBtb3JlIGNsZWFubHkuICBCdXQgaXQncyB0aGUKICAgYmVzdCBJIGNhbiBjb21lIHVwIHdpdGggYXQgdGhlIG1vbWVudC4gIFNvcnJ5IC0gRGF2ZS4KICAgCjIwMDItMDItMTUgMDE6NTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFVDRC1jb21wYXRhYmlsaXR5IGhlYWRlcnMgYXMgd2VsbC4KICAgCjIwMDItMDItMTUgMDE6NTcgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgT25seSBpbnN0YWxsIHN1YmRpcmVjdG9yeSBzdHVmZiAqb25jZSouICAoRG9uJ3QgYmUgc28gZW50aHVzaWFzdGljLCBEYXZlISkKICAgCjIwMDItMDItMTUgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBSZW1vdmUgcmVkdW5kZW50ICctQ04nIGFuZCAnLUNPJyBvcHRpb25zIGZyb20gdGhlIGV4YW1wbGUgc25tcHVzbSBjb21tYW5kLgogICAgIChhcyBtZW50aW9uZWQgYnkgV2VzIG9uIHRoZSB1c2VycyBtYWlsaW5nIGxpc3QgMjAwMi0wMi0xMykKICAgICBRbjogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZG9uZSBvbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaCBhcyB3ZWxsPwogICAKMjAwMi0wMi0xNSAwMToxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgTG9vayBmb3IgdHJhbnNwb3J0LXJlbGF0ZWQgaGVhZGVyIGZpbGVzIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgogICAKMjAwMi0wMi0xNSAwMTowOSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBFbnN1cmUgcGFydGlhbCBpbnN0YWxsIHRhcmdldHMgcmVjdXJzZSBwcm9wZXJseS4KICAgCjIwMDItMDItMTQgMDg6MTggIGR0czEyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIExvb2sgZm9yIG1pYl9tb2R1bGVfY29uZmlnLmggaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KICAgCjIwMDItMDItMTQgMDg6MDYgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYW44IGluc3RhbGwgZGVmaW5pdGlvbnMKICAgCjIwMDItMDItMTQgMDc6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3Vic3RpdHV0ZSB2YWx1ZXMgaW50byAnbmV0LXNubXAtY29uZmlnJyBwcm9wZXJseSwgYW5kIGRvbid0ICdtYWtlIGNsZWFuJyBpdCBhd2F5LgogICAKMjAwMi0wMi0xNCAwNzoyMiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzCiAgIAoyMDAyLTAyLTE0IDA3OjE0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYyAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wc3RhdHVzLmMKICAgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwgYWdlbnQvYWdlbnRfdHJhcC5jCiAgICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHNwYWNlIGZyb20gQ1BQRkxBR1MKICAgCjIwMDItMDItMTQgMDY6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgbmV0LXNubXAtaW5jbHVkZXMuaCAsIG91dHB1dF9hcGkuaCAsCiAgIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmggLCBzbm1wdjNfYXBpLmggLCB0eXBlcy5oCiAgICwgdXRpbGl0aWVzLmggLCB2YXJiaW5kX2FwaS5oOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA2OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaCAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCAsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oICwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAogICAsIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvb2lkX2FycmF5LmMgLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNDo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2NhbGxiYWNrLmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgbW92ZXMgdG93YXJkcyB1c2luZyB0aGUgInB1YmxpYyIgQVBJIGhlYWRlciBmaWxlcyBpbiB0aGUgbGlicmFyeQogICBjb2RlIGFzIHdlbGwgKGNvbmNlbnRyYXRpbmcgb24gb3V0cHV0L2NvbmZpZy91dGlsaXR5IGhlYWRlciBmaWxlcykuCiAgIAoyMDAyLTAyLTE0IDAzOjE3ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDbG9zZSBhIGRhbmdsaW5nICJpZiIgYmxvY2suICAgKG9vcHMhKQogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMgKFY0LTItcGF0Y2hlcy40KSwgaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgTGF0ZXN0IFJlZEhhdCBycG0tcmVsYXRlZCBwYXRjaAogICAKMjAwMi0wMi0xNCAwMTozOSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBtYW4vc25tcGNtZC4xLmRlZiAsCiAgIHNubXBsaWIvbWliLmM6CgogICBTd2l0Y2ggdG8gdXNpbmcgLU9TIHN0eWxlIG91dHB1dCBieSBkZWZhdWx0LCBhbmQgZHJvcCB0aGUgcmVxdWlyZW1lbnQKICAgZm9yIGZ1bGwgT0lEcyB0byBzdGFydCB3aXRoICcuJywgcGx1cyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byByZXN0b3JlCiAgIHRoZSBvcmlnaW5hbCBVQ0Qtc3R5bGUgYmVoYXZpb3VyLgogICAKMjAwMi0wMi0xMyAwNzozNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFwcGx5IEpvaG4ncyBmaXggZm9yIGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kCiAgIGNvbHVtbnMgaW4gd3Jvbmcgb3JkZXIpIHRvIHRoZSBtYWluIGJyYW5jaCBhcyB3ZWxsLgogICAKMjAwMi0wMi0xMiAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29uc3QgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvOiAuY3ZzaWdub3JlICwgQVNOLy5jdnNpZ25vcmUgLCBhZ2VudC8uY3ZzaWdub3JlCiAgICwgZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlOgoKICAgYWRkIC5jdnNpZ25vcmUgZmlsZS4KICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGFkZCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgKICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaDoKCiAgIGNvbnN0IGFkZGl0aW9ucy4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIEFkZCBzdHJpbmcuaAogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIGhlYWRlci4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeGVzIHRvIHJlZW5hYmxlIGRpc21hbiBldmVudCBzdHVmZiBmb3IgNS4wIGNvZGUuICBOb3QgZG9uZSB0aGUKICAgInJpZ2h0IiB3YXksIGJ1dCBpdCB3b3Jrcy4KICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSAtV2FsbCBmaXhlcwogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhZGQgc3RkbGliLmgKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIG5vIGxvbmdlciB1c2VkICJkdW1wX3ZhciIgcm91dGluZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgY29uc3Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBuZXcgcGVybCBzcGVjaWZpYyBmZWF0dXJlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLlBITk9ZIG1vZHMKICAgCjIwMDItMDItMTIgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kICwKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xvZ2dpbmdfYXBpLmggLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFJlbmFtZSB0aGUgbG9nZ2luZyAmIHJlbGF0ZWQgb3V0cHV0IEFQSSBoZWFkZXIgZmlsZSwgdG8gYmV0dGVyCiAgIHJlZmxlY3QgdGhlIHNjb3BlIG9mIHRoaXMgQVBJLiAgKEFzIHN1Z2dlc3RlZCBieSBXZXMgJiBKb2huKQogICAKMjAwMi0wMi0xMiAwNzoyMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MzkgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGxpYiBkZXBlbmRlbmN5IGZpeCBmb3Igc25tcGQgdGFyZ2V0CiAgIAoyMDAyLTAyLTExIDA4OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oICwgc25tcGxpYi9jbXVfY29tcGF0LmMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgRXh0cmFjdCBDTVVfQ09NUEFUQUJJTElUWSBjb2RlLCBhbmQgZXhwbGljaXRseSBkZXByZWNhdGVkIFVDRCBjb2RlIGludG8gc2VwYXJhdGUgZmlsZXMuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiAsIHNubXBfY29uZmlnLjUuZGVmICwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBzcGVsbGluZyB0d2Vha3MKICAgCjIwMDItMDItMTEgMDQ6MjcgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4gLCBkZWZhdWx0X3N0b3JlLjMudG9wICwgbWliX2FwaS4zCiAgICwgbWliX2FwaS4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMgLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiAsIHNubXBfYWxhcm0uMyAsIHNubXBfYWxhcm0uMy5kZWYKICAgLCBzbm1wX2FwaS4zICwgc25tcF9hcGkuMy5kZWYgLCBzbm1wX3Nlc3NfYXBpLjMKICAgLCBzbm1wX3Nlc3NfYXBpLjMuZGVmICwgc25tcF90cmFwX2FwaS4zICwKICAgc25tcF90cmFwX2FwaS4zLmRlZiAsIHZhcmlhYmxlcy41ICwgdmFyaWFibGVzLjUuZGVmOgoKICAgICAtIGdlbmVyYXRlIHRoZSByZXN0IG9mIHRoZSBtYW51YWwgcGFnZXMgKHRvIGdldCB2ZXJzaW9uIGluIGZvb3RlcikKICAgCjIwMDItMDItMDggMTU6NTYgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwKICAgbWliX21vZHVsZV9pbml0cy5oICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIHdpbjMyIHNwZWNpZmljIHBvcnRpb25zIG9mIHBhdGNoIDUwMzI1NgogICAKMjAwMi0wMi0wOCAxNTo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHBhdGNoIzUwMzI1NjogaGVscGVycyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIHdpbjMyCiAgIAoyMDAyLTAyLTA4IDA5OjA4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdCB0d2Vha2FnZQogICAKMjAwMi0wMi0wOCAwODoyMiAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zICwgc25tcF9hZ2VudF9hcGkuMyAsIHNubXBfYWxhcm0uMwogICAsIHNubXBfYXBpLjMgLCBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wX3RyYXBfYXBpLjM6CgogICBSZWZlcmVuY2UgdGhlIG5ldyBoZWFkZXItZmlsZXMgaW4gc2VjdGlvbiAzIG1hbiBwYWdlIHN5bm9wc2VzLgogICAKMjAwMi0wMi0wOCAwNzo1MCAgamJwbgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgLCByZWFkX2NvbmZpZy4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMKICAgLCBzbm1wX2NvbmZpZy41LmRlZiAsIHNubXBfdHJhcF9hcGkuMyAsCiAgIHNubXBjbWQuMS5kZWYgLCBzbm1wY29uZi4xLmRlZiAsIHNubXBkLmNvbmYuNS5kZWYgLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2luZGV4LmMgLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYwogICAsIGF1dG9fbmxpc3QuYyAsIGtlcm5lbC5jICwgbWliX21vZHVsZXMuYyAsCiAgIHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jICwgc25tcGQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYyAsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGhlbHBlcnMvbnVsbC5jICwgaGVscGVycy9vbGRfYXBpLmMgLCBoZWxwZXJzL3JlYWRfb25seS5jCiAgICwgaGVscGVycy9zZXJpYWxpemUuYyAsIGhlbHBlcnMvdGFibGUuYyAsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGhlbHBlcnMvdGFibGVfZGF0YS5jICwKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBtaWJncm91cC9oZWFkZXJfY29tcGxleC5jICwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMgLCBtaWJncm91cC9SbW9uL2FndXRpbC5jICwKICAgbWliZ3JvdXAvUm1vbi9hbGFybS5jICwgbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLCBtaWJncm91cC9SbW9uL3Jvd3MuYyAsCiAgIG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jICwKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIG1pYmdyb3VwL21pYklJL2ljbXAuYyAsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAsIG1pYmdyb3VwL21pYklJL2lwLmMgLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwdjYuYyAsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAsIG1pYmdyb3VwL21pc2MvZGxtb2QuYyAsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jICwgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jICwKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYwogICAsIG1pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgVXNlIHRoZSBuZXcgJ25ldC1zbm1wLWluY2x1ZGVzJyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMsCiAgIGluIHBsYWNlIG9mIHRoZSAodW5pbnN0YWxsZWQpICdtaWJpbmNsLmgnLgogICAgIFdoZWVlZWUuLi4uLi4KICAgCjIwMDItMDItMDggMDc6MTcgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMyAsCiAgIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZiAsCiAgIHNubXBfc2Vzc19hcGkuMyAsIHNubXBkLjEuZGVmICwgc25tcGQuY29uZi41LmRlZiAsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgICAtIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIGdlbmVyYXRlIG1hbiBwYWdlcyBhdCBjb21waWxlIHRpbWUKICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMSAsIHNubXBidWxrd2Fsay4xICwKICAgc25tcGJ1bGtnZXQuMS5kZWYgLCBzbm1wYnVsa3dhbGsuMS5kZWYgLCBzbm1wY21kLjEKICAgLCBzbm1wY21kLjEuZGVmICwgc25tcGNvbmYuMSAsIHNubXBjb25mLjEuZGVmCiAgICwgc25tcGdldC4xICwgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEgLAogICBzbm1wZ2V0bmV4dC4xLmRlZiAsIHNubXBzZXQuMSAsIHNubXBzZXQuMS5kZWYgLAogICBzbm1wc3RhdHVzLjEgLCBzbm1wc3RhdHVzLjEuZGVmICwgc25tcHRhYmxlLjEgLAogICBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdGVzdC4xICwgc25tcHRlc3QuMS5kZWYgLAogICBzbm1wdHJhbnNsYXRlLjEgLCBzbm1wdHJhbnNsYXRlLjEuZGVmICwgc25tcHRyYXAuMQogICAsIHNubXB0cmFwLjEuZGVmICwgc25tcHVzbS4xICwgc25tcHVzbS4xLmRlZiAsCiAgIHNubXB3YWxrLjEgLCBzbm1wd2Fsay4xLmRlZiAsIHNubXB0cmFwZC44ICwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSkouaCAsIG1pYkpKL2ljbXAuYyAsIG1pYkpKL2ljbXAuaAogICAsIG1pYkpKL2lmX2ZpZWxkcy5oICwgbWliSkovaW50ZXJmYWNlcy5jICwKICAgbWliSkovaW50ZXJmYWNlcy5oICwgbWliSkovaXAuYyAsIG1pYkpKL2lwLmggLAogICBtaWJKSi9pcEFkZHIuYyAsIG1pYkpKL2lwQWRkci5oICwgbWliSkovaXBNZWRpYS5jICwKICAgbWliSkovaXBNZWRpYS5oICwgbWliSkovaXBSb3V0ZS5jICwgbWliSkovaXBSb3V0ZS5oCiAgICwgbWliSkovaXB2Ni5jICwgbWliSkovaXB2Ni5oICwgbWliSkova2VybmVsX2hwdXguYwogICAsIG1pYkpKL2tlcm5lbF9ocHV4LmggLCBtaWJKSi9rZXJuZWxfbGludXguYyAsCiAgIG1pYkpKL2tlcm5lbF9saW51eC5oICwgbWliSkovc25tcF9taWIuYyAsCiAgIG1pYkpKL3NubXBfbWliLmggLCBtaWJKSi9zeXNPUlRhYmxlLmMgLAogICBtaWJKSi9zeXNPUlRhYmxlLmggLCBtaWJKSi9zeXN0ZW1fbWliLmMgLAogICBtaWJKSi9zeXN0ZW1fbWliLmggLCBtaWJKSi90Y3AuYyAsIG1pYkpKL3RjcC5oICwKICAgbWliSkovdGNwVGFibGUuYyAsIG1pYkpKL3RjcFRhYmxlLmggLCBtaWJKSi91ZHAuYyAsCiAgIG1pYkpKL3VkcC5oICwgbWliSkovdWRwVGFibGUuYyAsIG1pYkpKL3VkcFRhYmxlLmggLAogICBtaWJKSi92YWNtX3ZhcnMuYyAsIG1pYkpKL3ZhY21fdmFycy5oOgoKICAgUmVtb3ZlIHRoZSBhdHRlbXB0ZWQgJ21pYklJJyByZS13cml0ZS4KICAgSWYgd2Ugd2FudCB0byB0aWR5IHVwIG1pYklJLCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHVzZSB0aGUgbmV3IGFnZW50IEFQSXMuCiAgIAoyMDAyLTAyLTA4IDA2OjQ1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGFnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBCcmluZyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMgY2xvc2VyIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgIm1pYmluY2wuaCIgZmlsZQogICAKMjAwMi0wMi0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKICAgKFY0LTItcGF0Y2hlcy5bNiwzXSksIGhvc3QvaHJfc3RvcmFnZS5jICwgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBDb25zb2xpZGF0ZSBpZGVudGljYWwgTUlCIG9iamVjdCBlbnRyaWVzIChXSU4zMi9ub24tV0lOMzIpCiAgIAoyMDAyLTAyLTA4IDAwOjUwICBqYnBuCgogICAqIG1hbi9SRUFETUU6CgogICAgIC0gcmVtb3ZlIGNocm9uaWNhbGx5IGRhdGVkIHVuaGVscGZ1bCBSRUFETUUKICAgCjIwMDItMDItMDcgMTM6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXMgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBtYWtlZmlsZWluZGVwZW5kLnBsICwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL01ha2VmaWxlLmluICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwgbG9jYWwvTWFrZWZpbGUuaW4KICAgLCBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgLCBTTk1QLnhzICwgdC9zdGFydGFnZW50LnBsOgoKICAgYXR0ZW1wdCBhdCBwb3J0aW5nIEpvZSdzIFNOTVAgbW9kdWxlIHRvIG5ldC1zbm1wLgogICBJdCBjb21waWxlcywgYnV0IG9ubHkgc29tZSBvZiB0aGUgdGVzdHMgc3VjY2VlZC4KICAgCjIwMDItMDItMDcgMTA6MDkgIGpicG4KCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCAsIG1pYl9hcGkuMyAsCiAgIHJlYWRfY29uZmlnLjMuZGVmICwgc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMwogICAsIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZgogICAsIHNubXBfc2Vzc19hcGkuMyAsIHNubXBfdHJhcF9hcGkuMyAsIHNubXBidWxrZ2V0LjEKICAgLCBzbm1wYnVsa3dhbGsuMSAsIHNubXBjb25mLjEgLCBzbm1wZC5jb25mLjUuZGVmCiAgICwgc25tcGRlbHRhLjEgLCBzbm1wZGYuMSAsIHNubXBnZXQuMSAsCiAgIHNubXBnZXRuZXh0LjEgLCBzbm1wbmV0c3RhdC4xICwgc25tcHNldC4xICwKICAgc25tcHN0YXR1cy4xICwgc25tcHRhYmxlLjEgLCBzbm1wdGVzdC4xICwKICAgc25tcHRyYW5zbGF0ZS4xICwgc25tcHRyYXAuMSAsIHNubXB0cmFwZC5jb25mLjUuZGVmCiAgICwgc25tcHVzbS4xICwgc25tcHdhbGsuMSAsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEgLCBhY2NvbmZpZy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgLCBzbm1wdXNtLmM6CgogICAgIC0gbWlub3IgdHdlYWtzIGR1ZSB0byBjaGFuZ2UgaW4gZGVmaW5pdGlvbiBvZiBVU00gT0lEcy4KICAgCjIwMDItMDItMDYgMDk6MTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBtb3ZlIFVTTSBPSUQgZGVmaW5pdGlvbnMgaW50byBzbm1wdXNtLmMsIG1ha2UgdGhlbSBjb25zdAogICAKICAgICAtIGNvbnNlcXVlbnQgaW5jcmVhc2UgaW4gY29uc3QtbmVzcyBpbiBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZSBpbnRlcm5hbCBub3RlIGFib3V0IHYzIGFwaSwgd2hpY2ggc2hvdWxkIGJlIHB1YmxpYwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaDoKCiAgIHJlbW92ZWQgdW5uZWVkZWQgZmlsZQogICAKMjAwMi0wMi0wNiAwOTowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBzbm1wbGliL2tleXRvb2xzLmMgLCBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkIGNvbnN0LW5lc3MgZm9yIHRyYW5zZm9ybSB0eXBlIGFyZ3MKICAgCjIwMDItMDItMDYgMDk6MDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oCiAgICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIGZpcnN0IGFyZ3VtZW50IG9mIHNubXBfZHVwX29iamlkKCkgY29uc3QuCiAgIAogICAgIC0gYmV0dGVyIGhhbmRsZSBOVUxMIHZhbHVlcyBpbiBzbm1wX2R1cF9vYmppZCgpLgogICAKMjAwMi0wMi0wNiAwNzowOSAgZHRzMTIKCiAgICogRkFRICwgbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIENsYXJpZnkgdGhlIGFwcGxpY2FiaWxpdHkgb2YgJ3NubXBfdHJhcF9hcGkoMyknIHJvdXRpbmVzIHRvIEFnZW50WCBzdWJhZ2VudHMuCiAgIAoyMDAyLTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jICwgbm90aWZpY2F0aW9uX2xvZy5jICwKICAgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGRlbHRhLmMgLAogICBzbm1wZGYuYyAsIHNubXBnZXQuYyAsIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMKICAgLCBzbm1wc3RhdHVzLmMgLCBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLAogICBzbm1wdHJhbnNsYXRlLmMgLCBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYyAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYwogICAsIHNubXB2YWNtLmMgLCBzbm1wd2Fsay5jICwgc25tcG5ldHN0YXQvaWYuYwogICAsIHNubXBuZXRzdGF0L2luZXQuYyAsIHNubXBuZXRzdGF0L2luZXQ2LmMgLAogICBzbm1wbmV0c3RhdC9tYWluLmMgLCBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQXBwbGljYXRpb25zIGFtZW5kZWQgdG8gdXNlIHRoZSBuZXctc3R5bGUgbGlicmFyeSBoZWFkZXIgc3RydWN0dXJlLgogICAoSW4gbW9zdCBjYXNlcywgc2ltcGx5IGluY2x1ZGluZyB0aGUgc2luZ2xlICJmdWxsIEFQSSIgaGVhZGVyIGZpbGUpCiAgIAoyMDAyLTAyLTA2IDA1OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYXNuMS5oICwgY29uZmlnX2FwaS5oICwKICAgZGVmaW5pdGlvbnMuaCAsIGxvZ2dpbmdfYXBpLmggLCBtaWJfYXBpLmggLAogICBuZXQtc25tcC1pbmNsdWRlcy5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaCAsCiAgIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsIHZhcmJpbmRfYXBpLmg6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3RlY3QgdGhlIHByb2plY3QgY29uZmlnIGZpbGUgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24uCiAgIAoyMDAyLTAyLTA2IDAzOjA3ICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMgYW5kCiAgICAgICBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cwogICAgICAgYW5kIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNSAxMTo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjcpLCBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBlcmwgZml4ZXMKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbW92ZSB0aGUgb2lkdHJlZV9jb21wYXJlIGZ1bmN0aW9uIHRvCiAgIHRoZSBtYWluIGxpYnJhcnkuCiAgIAoyMDAyLTAyLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHBlcmwgYnVpbGQgZml4ZXMuCiAgIAoyMDAyLTAyLTA1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG9wcHMuICBSZW1vdmVkIGZvcmNlZCBwZXJsIGVtYmVkZGluZwogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBzaG91bGRuJ3QgYmUgY2hlY2tlZCBpbgogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhY2NvbmZpZy5oICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9zbm1wX3BlcmwuYwogICAsIGFnZW50L3NubXBfcGVybC5wbCAsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBTdXBwb3J0IGZvciBlbWJlZGRpbmcgcGVybCBzdWJyb3V0aW5lcyBpbnRvIHRoZSBhZ2VudCB0byBiZSBjYWxsZWQKICAgICBhcyBoYW5kbGVycy4KICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS13aXRoLXBlcmwtbW9kdWxlcyBhdHRlbXB0cyB0byBidWlsZCBjb250YWluZWQgbW9kdWxlcyAocG9vcmx5IGN1cnJlbnRseSkuCiAgICAgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhY3R1YWxseSBzcGVjaWZpZXMgdG8gZG8gcGVybCBlbWJlZGRpbmcKICAgICB3aXRoaW4gdGhlIGFnZW50LgogICAKMjAwMi0wMi0wNCAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0gLCBBU04vQVNOLnhzICwgQVNOL0NoYW5nZXMgLAogICBBU04vTUFOSUZFU1QgLCBBU04vTWFrZWZpbGUuUEwgLCBBU04vdGVzdC5wbCAsCiAgIGFnZW50L0NoYW5nZXMgLCBhZ2VudC9NQU5JRkVTVCAsIGFnZW50L01ha2VmaWxlLlBMICwKICAgYWdlbnQvYWdlbnQucG0gLCBhZ2VudC9hZ2VudC54cyAsIGFnZW50L3Rlc3QucGwgLAogICBhZ2VudC90eXBlbWFwICwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzICwKICAgZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCAsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0gLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMgLCBkZWZhdWx0X3N0b3JlL3Rlc3QucGwgLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZSBjbGVhbiBhcyByZXBvcnRlZCBieSBCcmFkbGV5IEJvemFydGguCiAgIAoyMDAyLTAxLTMwIDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgQnJpbmcgTUlCIHZhcmlhYmxlIHZlcnNpb25UYWcgaW50byBsaW5lIHdpdGggdGhlIG5ldyA8bmV0LXNubXAvdmVyc2lvbi5oPiB1c2FnZQogICAKMjAwMi0wMS0yOSAxNzo1MyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBNb3ZlZCB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGZyb20gdmVyc2lvbi5oIHRvOgogICAgIC0gc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgIC0gZGVmaW5lIG5ldHNubXBfZ2V0X3ZlcnNpb24oKTsKICAgICAgIC0gY3JlYXRlIGEgY29uc3QgY2hhciAqTmV0U25tcFZlcnNpb25JbmZvCiAgICAgLSBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gZXh0ZXJuIHRoZSBhYm92ZSBjaGFyICoKICAgICAgIC0gcHJvdG90eXBlIHRoZSBmdW5jdGlvbgogICAgIC0gaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGNyZWF0ZSBhIHN0YXRpYyB2YXJpYWJsZSAodGhlIG9sZCB3YXkpIGFuZCBzZXQgaXQgdG8gTmV0U25tcFZlcnNpb25JbmZvCiAgIAoyMDAyLTAxLTI5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCAsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0gLAogICB0ZXN0cy9UMDUwc25tcHYzdHJhcCAsIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtICwgdGVzdHMvVDA1M2FnZW50djF0cmFwICwKICAgdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsCiAgIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLCB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmggLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgd2hvb3BzLiAgTWlzc2VkIHNvbWUgLmggZmlsZSBjaGVja3MgaW4gY29uZmlndXJlLiAgVGhhbmtzIFJvYmVydC4KICAgCjIwMDItMDEtMjggMjE6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgbWlub3IgZml4LgogICAKMjAwMi0wMS0yOCAyMTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBhZGRlZCBjb2RlIGNvbnZlcnQgc2NyaXB0IGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBoZWFkZXIgY29udmVyc2lvbgogICAKMjAwMi0wMS0yOCAyMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgYXBwcy9zbm1wYnVsa2dldC5jICwgYXBwcy9zbm1wYnVsa3dhbGsuYyAsCiAgIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jICwgYXBwcy9zbm1wZ2V0LmMKICAgLCBhcHBzL3NubXBnZXRuZXh0LmMgLCBhcHBzL3NubXBzZXQuYyAsCiAgIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRlc3QuYwogICAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLCBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmggLCBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAgICwgbWFuL01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9hc24xLmggLCBzbm1wbGliL2NhbGxiYWNrLmMKICAgLCBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RhdGFfbGlzdC5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuaCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL2dldG9wdC5oICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9pbnQ2NC5oICwgc25tcGxpYi9rZXl0b29scy5jCiAgICwgc25tcGxpYi9rZXl0b29scy5oICwgc25tcGxpYi9sY2RfdGltZS5jICwKICAgc25tcGxpYi9sY2RfdGltZS5oICwgc25tcGxpYi9saWJzbm1wLmggLCBzbm1wbGliL21kNS5jCiAgICwgc25tcGxpYi9tZDUuaCAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL210X3N1cHBvcnQuaCAsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMgLCBzbm1wbGliL29pZF9hcnJheS5oICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvb2lkX3N0YXNoLmggLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3BhcnNlLmggLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXAtdGMuYwogICAsIHNubXBsaWIvc25tcC10Yy5oICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXAuaCAsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaCAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uaCAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmggLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmggLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5oICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5oICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oICwgc25tcGxpYi9zbm1wX2FsYXJtLmMKICAgLCBzbm1wbGliL3NubXBfYWxhcm0uaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5oICwKICAgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcF9lbnVtLmggLAogICBzbm1wbGliL3NubXBfaW1wbC5oICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmggLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuaCAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmggLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHVzbS5oICwgc25tcGxpYi9zbm1wdjMuYyAsIHNubXBsaWIvc25tcHYzLmgKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi9zeXN0ZW0uaCAsCiAgIHNubXBsaWIvdG9vbHMuYyAsIHNubXBsaWIvdG9vbHMuaCAsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCAsIHNubXBsaWIvdmFjbS5jICwKICAgc25tcGxpYi92YWNtLmggLCB0ZXN0aW5nL1JVTlRFU1RTICwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9pbmRleC5jICwKICAgYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMKICAgLCBhdXRvX25saXN0LmMgLCBrZXJuZWwuYyAsIG1pYl9tb2R1bGVzLmMgLAogICBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYyAsIHNubXBkLmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBoZWxwZXJzL2luc3RhbmNlLmMgLCBoZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBoZWxwZXJzL251bGwuYyAsIGhlbHBlcnMvb2xkX2FwaS5jICwgaGVscGVycy9yZWFkX29ubHkuYwogICAsIGhlbHBlcnMvc2VyaWFsaXplLmMgLCBoZWxwZXJzL3RhYmxlLmMgLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIG1pYmdyb3VwL2hvc3RfcmVzLmggLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLCBtaWJncm91cC9taWJpbmNsLmggLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jICwgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIG1pYmdyb3VwL1Jtb24vYWxhcm0uYyAsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYyAsIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwKICAgbWliZ3JvdXAvUm1vbi9yb3dzLmMgLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgLCBtaWJncm91cC9taWJJSS9hdC5jICwgbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSUkvaXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAogICAsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgbWliZ3JvdXAvbWliSkovaWNtcC5jCiAgICwgbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSkovaXAuYwogICAsIG1pYmdyb3VwL21pYkpKL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jCiAgICwgbWliZ3JvdXAvbWliSkovaXB2Ni5jICwgbWliZ3JvdXAvbWliSkova2VybmVsX2xpbnV4LmMKICAgLCBtaWJncm91cC9taWJKSi9zbm1wX21pYi5jICwgbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBtaWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdWRwLmMgLAogICBtaWJncm91cC9taWJKSi91ZHBUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBtaWJncm91cC9taXNjL2RsbW9kLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvc211eC9zbXV4LmMgLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMgLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAxOTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIERFRklORSBJVCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgZGVmaW5lIGl0IGluc3RlYWQKICAgCjIwMDItMDEtMjUgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlX29uZV9vaWRfaW5kZXg6CiAgICAgLSB1c2UgYW4gdW5zaWduZWQgaW50IGZvciBsZW5ndGgncyBwdWxsZWQgZnJvbSB0aGUgb2lkLgogICAgIC0gTWFrZSBzdXJlIHRoZXkncmUgYWx3YXlzIDwgMTI4CiAgIAoyMDAyLTAxLTI1IDA5OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2xvc2VyIGFkaGVyZW5jZSB0byBzdGF0ZSBtYWNoaW5lcyBkZXNjcmliZWQgaW4gUkZDIDI1NzQKICAgCjIwMDItMDEtMjUgMDk6MTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgdXNtRGVjcnlwdGlvbkVycm9yIHJlcG9ydHMgdG8gYmUgc2VudCBpbiBhIGNvdXBsZSBvZiBleHRyYQogICAgICAgY2FzZXM6IGJhZCBzYWx0IChsZW5ndGggIT0gOCkgYW5kIGxlbmd0aCBvZiBlbmNyeXB0ZWQgZGF0YSBub3QgYQogICAgICAgbXVsdGlwbGUgb2YgOCBvY3RldHMgKHBlciBSRkMgMjU3NCkuCiAgIAoyMDAyLTAxLTI1IDA5OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmb3IgdW5rbm93biBtZXNzYWdlIHR5cGVzLCBpbmNyZW1lbnQgc25tcEluQVNOUGFyc2VFcnJzIGFuZCBmYWlsCiAgICAgICBhdCB0aGUgcG9zdC1wYXJzZSBzdGFnZS4KICAgCiAgICAgLSBmb3Igbm90aWZpY2F0aW9uIHR5cGVzLCBpbmNyZW1lbnQgc25tcFVua25vd25QRFVIYW5kbGVycyBhbmQgYmFpbAogICAgICAgb3V0IGVhcmx5LgogICAKMjAwMi0wMS0yNSAwOTowMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZm9yIHVuaGFuZGxlZCBtZXNzYWdlcyAoZS5nLiBSRVNQT05TRSBtZXNzYWdlcyBzZW50IHRvIGFnZW50cyksCiAgICAgICBpbmNyZW1lbnQgdGhlIHNubXBVbmtub3duUERVSGFuZGxlcnMgY291bnRlci4KICAgCiAgICAgLSB0cnkgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmcyB3aGVuIHBvc3QtcGFyc2UgZmFpbHMuCiAgIAoyMDAyLTAxLTI1IDA2OjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy42KSwgdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFJWCBzdXBwb3J0IGZvciB0aGUgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzZWNNb2RlbCBvZiAwIGlzIGEgcGFyc2UgZXJyb3IgaW4gSGVhZGVyRGF0YQogICAKMjAwMi0wMS0yMyAwNzoyMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmUgY2FyZWZ1bCB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWYgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXMgaW4KICAgICAgIHNubXB2M19wYXJzZSAtLSBmaXhlcyBtZW1vcnkgbGVha3Mgd2hlbiBtYWxmb3JtZWQgUERVcyBhcmUKICAgICAgIHJlY2VpdmVkLgogICAKMjAwMi0wMS0yMiAxOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgIGNoZyBhcGkgZm9yIHNubXBfb2lkX25jb21wYXJlLCBkb24ndCBpbXBsZW1lbnQgaXQgdmkgc25tcF9vaWRfY29tcGFyZQogICAKMjAwMi0wMS0yMiAxOTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgIGFkZCBuZXRzbm1wX3N0cjJvaWQoKQogICAKMjAwMi0wMS0yMiAxOTo0MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb24KICAgCjIwMDItMDEtMjIgMTk6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uOyBhZGQgcHJlbGltaW5hcnkgbG9ja2luZyBjb2RlOyBhZGQgdGFfY2hlY2tfcm93X3N0YXR1cwogICAKMjAwMi0wMS0yMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNCksIHZhY21fdmFycy5jOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAyLTAxLTIxIDIzOjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gdGlkeSB0aGluZ3MgdXAgYSBiaXQgKGhhZCBsZWZ0IHNvbWUgb2xkIGNvZGUgc2l0dGluZyBpZiAjaWYgMAogICAgICAgYnJhbmNoKS4KICAgCiAgICAgLSByZW1lbWJlciB0byBjbG9zZSAodGFyZ2V0LT5zZXNzKSB3aGVuIHdlIG1vdmUgYSB0YXJnZXQgdG8KICAgICAgIG5vdEluU2VydmljZSgyKS4KICAgCjIwMDItMDEtMjEgMTE6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCiAgIAoyMDAyLTAxLTIxIDA2OjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuNC4wLjEgLS0gNS40LjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwODo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogdmFjbS5jICwgdmFjbS5oOgoKICAgICAtIGFkZCBhIHN3aXRjaCB0byB2YWNtX2dldFZpZXdFbnRyeSgpIHRvIGFsbG93IHRoZSBtYXNrIGVudHJpZXMKICAgICAgIHRvIGJlIGlnbm9yZSAod2hpY2ggaXMgd2hhdCB5b3Ugd2FudCB3aGVuIHlvdSBhcmUganVzdCB1c2luZyB0aGlzCiAgICAgICBmdW5jdGlvbiB0byBsb29rIHVwIGFuIGVudHJ5IGluIHRoZSB0YWJsZSBpbiBvcmRlciB0byB3cml0ZSBzb21lIG5ldwogICAgICAgdmFsdWUgdG8gb25lIG9mIHRoZSBjb2x1bW5hciBvYmplY3RzKS4KICAgCjIwMDItMDEtMTggMDY6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtQWNjZXNzVGFibGUuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS4zLjAgLS0gNS4zLjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSAoaS5lLiBkb24ndAogICAgICAganVzdCBkbyBldmVyeXRoaW5nIGluIHRoZSBDT01NSVQgcGhhc2UpLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuMi4wIC0tIDUuMi45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmggLCBhZ2VudF9yZWFkX2NvbmZpZy5oCiAgICwgYWdlbnRfcmVnaXN0cnkuaCAsIGFnZW50X3RyYXAuaCAsIGFzbjEuaCAsCiAgIGF1dG9fbmxpc3QuaCAsIGNhbGxiYWNrLmggLCBkZWZhdWx0X3N0b3JlLmggLAogICBkc19hZ2VudC5oICwgaGVhZGVyX2NvbXBsZXguaCAsIGludDY0LmggLCBrZXl0b29scy5oCiAgICwgbWliLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwgbWliaW5jbC5oICwKICAgcGFyc2UuaCAsIHJlYWRfY29uZmlnLmggLCBzY2FwaS5oICwgc25tcC10Yy5oICwKICAgc25tcC5oICwgc25tcF9hZ2VudC5oICwgc25tcF9hbGFybS5oICwgc25tcF9hcGkuaAogICAsIHNubXBfY2xpZW50LmggLCBzbm1wX2RlYnVnLmggLCBzbm1wX2ltcGwuaCAsCiAgIHNubXBfbG9nZ2luZy5oICwgc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wX3ZhcnMuaCAsCiAgIHNubXB1c20uaCAsIHNubXB2My5oICwgc3RydWN0LmggLCBzeXN0ZW0uaCAsCiAgIHRvb2xzLmggLCB0cmFuc2Zvcm1fb2lkcy5oICwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAsIHVjZC1zbm1wLWNvbmZpZy5oICwgdWNkLXNubXAtaW5jbHVkZXMuaCAsCiAgIHV0aWxfZnVuY3MuaCAsIHZhcl9zdHJ1Y3QuaCAsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLCBNYWtlZmlsZS5pbjoKCiAgIC0+IG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgCjIwMDItMDEtMTQgMTM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZWQKICAgCjIwMDItMDEtMTQgMTM6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBjb3B5IHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggYW5kIHVwZGF0ZSB0byBuZXQtc25tcCB1c2UgbmV3IGFnZW50IGRpcgogICAKMjAwMi0wMS0xNCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9pbmRleC5oICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L2F1dG9fbmxpc3QuYyAsIGFnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGFnZW50L2RzX2FnZW50LmggLCBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMKICAgLCBhZ2VudC9taWJfbW9kdWxlcy5oICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBSb3V0ZS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXB2Ni5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgbW92ZWQgdGhlIC9hZ2VudCBpbnN0YWxsZWQgaGVhZGVycyB0byAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50CiAgIAoyMDAyLTAxLTEzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBhIGNvdXBsZSBtb3JlIGluc3RhbGwgaGVhZGVycy4KICAgCjIwMDItMDEtMTEgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiAsIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oICwKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuaAogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAogICAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYXBwcy9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIEFkZCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSB0byBpbmNsdWRlIHBhdGguCiAgIC0gUmVuYW1lIDMgYWdlbnQgbGlicmFyaWVzIGZyb20gbGlidWNkKiAtPiBsaWJuZXRzbm1wKgogICAKMjAwMi0wMS0xMSAwNzo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBkb24ndCB1c2Ugd2hpbGUoeC0tID49IDApIGxvb3BzIGZvciBuZXcgdW5zaWduZWQgaW5kZXggY29tcG9uZW50cwogICAKMjAwMi0wMS0xMSAwNToyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBiZSBjYXJlZnVsIGFib3V0IHNpZ25lZGVzcyBvZiBpbmRleCBjb21wb25lbnRzIGluIHRhYmxlcwogICAKMjAwMi0wMS0xMCAxMzoxMiAgbmJhCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAgIC0gR0VUQlVMSyBmaXggdG8gaWdub3JlIHZhcmJpbmRzIGZvciB3aGljaCB6ZXJvIHJlcGV0aXRpb25zIGFyZQogICAgICAgY2FsbGVkIGZvcgogICAKICAgICAtIGRyb3AgYXNwLT5zdGFydCBhbmQgYXNwLT5lbmQgd2hpY2ggYXJlIGhhcmRseSB1c2VkIGFuZCB3aGljaCBnZXQKICAgICAgIGluIHRoZSB3YXkgb2YgdGhpcyB0eXBlIG9mIHByb2Nlc3NpbmcKICAgCiAgICAgLSBpZ25vcmUgbmVnYXRpdmUgcmVwZXRpdGlvbnMgaW4gYnVsa190b19uZXh0IGhhbmRsZXIKICAgCjIwMDItMDEtMDcgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDEtMDcgMDg6MzggIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9JTlNUQUxMOgoKICAgUE5HR3JhcGggLT4gR0Q6OkdyYXBoCiAgIAoyMDAyLTAxLTA0IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDEtMDQgMTM6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbW9yZSB1Y2Qtc25tcCAtPiBuZXQtc25tcCB0cmFuc2xhdGlvbnMuICB3YXJuaW5nOiBpbmNsdWRlcyB0aGUgZGVmYXVsdCBwZXJzaXN0ZW50IHN0b3JlLgogICAKMjAwMi0wMS0wNCAxMzowNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS86IG5ldC1zbm1wLy5jdnNpZ25vcmUgLCB1Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAxLTA0IDEzOjAyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGJ1aWx0IG5ldC1zbm1wLWNvbmZpZwogICAKMjAwMi0wMS0wNCAxMzowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluICwgZW5jb2RlX2tleWNoYW5nZS5jICwKICAgbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jCiAgICwgc25tcGRlbHRhLmMgLCBzbm1wZGYuYyAsIHNubXBnZXQuYyAsCiAgIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMgLCBzbm1wc3RhdHVzLmMgLAogICBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLCBzbm1wdHJhbnNsYXRlLmMgLAogICBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLCBzbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYyAsIHNubXB2YWNtLmMKICAgLCBzbm1wd2Fsay5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJKSi9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcE1lZGlhLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcFJvdXRlLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcHY2LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3AuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9vaWRfYXJyYXkuYyAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF9hbGFybS5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2F1dGguYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wX2VudW0uYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3NucHJpbnRmLmMgLCBzbm1wbGliL3N0cnRvbC5jICwKICAgc25tcGxpYi9zdHJ0b3VsLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi92YWNtLmMgLCB0ZXN0aW5nL1QuYyAsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMgLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYyAsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYyAsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUudG9wICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hdXRvX25saXN0LmMgLAogICBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCiAgICwgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwogICAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbjoKCiAgIHJlbW92ZWQgdW5lZWRlZCBvbGRlciBmaWxlcwogICAKMjAwMi0wMS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCAjNDkyMDcyIHRvIG1haW4gYnJhbmNoCiAgIAoyMDAyLTAxLTAzIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBjaGVjayByZXN1bHRzIG9mIHNldG1udGVudCBiZWZvcmUgdXNpbmcgdGhlbS4KICAgCjIwMDItMDEtMDMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMi0wMS0wMyAxMTo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbToKCiAgIFBOR0dyYXBoIC0+IEdER3JhcGgKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGFuZ2UgZXhwb3J0IG5hbWUgdG8gIm5ldC1zbm1wIiBmcm9tICJ1Y2Qtc25tcCIKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFrZSB1c2Ugb2YgdGhlIG5ldyBtdWx0aS1hZGQgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGFzZXQuYyAsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMgLCB0YWJsZS5oOgoKICAgYWRkIG11bHRpcGxlIGluZGV4ZXMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucyAoZ2V0U3RhdFB0ciBubyBsZXNzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluICwgb2lkX3N0YXNoLmMgLCBvaWRfc3Rhc2guaDoKCiAgIGRhdGEgc3Rhc2hpbmcgYmFzZWQgb24gYW4gb2lkIGNhY2hpbmcgdHJlZS4KICAgCjIwMDEtMTItMjYgMTU6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwgLCBNYWtlZmlsZS5QTCAsIG1hbmFnZXIucG06CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCAsIGRpc3BsYXl0YWJsZS5wbSAsIGdldFZhbHVlcy5wbQogICAsIGdyZWVuLmdpZiAsIG1hbmFnZXIucG0gLCByZWQuZ2lmICwgc2V0dXBhdXRoCiAgICwgc2V0dXBkYiAsIHNldHVwdXNlciAsIHNubXB0b3NxbDoKCiAgIG1vdmluZyBtYW5hZ2VyIHRvIHBlcmwvbWFuYWdlcgogICAKMjAwMS0xMi0yNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMSApCiAgIAoyMDAxLTEyLTI0IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMgLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEgLCBSRUFETUU6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZG94eWdlbiBjb21tZW50cwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogTkVXUyAsIFJFQURNRToKCiAgIDUuMCBjb21tZW50IHVwZGF0ZXMuCiAgIAoyMDAxLTEyLTI0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzIG9uIGEgZmV3IGZ1bmN0aW9ucy4KICAgCjIwMDEtMTItMjQgMTU6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTItMjQgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3Igbm9uLWV4aXN0ZW50IG1vZHVsZXMKICAgCjIwMDEtMTItMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZzoKCiAgIG9wcHMuICBEb24ndCBjaGVjayBpbiBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoyMDAxLTEyLTIzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggcnBtIHVzYWdlIChJIGhvcGUpLgogICAKMjAwMS0xMi0yMyAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZGVkIC5jdnNpZ25vcmUgZmlsZQogICAKMjAwMS0xMi0yMyAxNDo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy4KICAgCjIwMDEtMTItMjMgMTQ6NDcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBuZXQtc25tcC1jb25maWcgLCBuZXQtc25tcC1jb25maWcuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGNyZWF0ZWQgYSBuZXQtc25tcC1jb25maWcgc2NyaXB0IHRvIHJlcG9ydCBjb21waWxlZCBsaWJzLgogICAtIHNlcGFyYXRlZCBsaWJzIG5lZWRlZCBieSBhZ2VudCBmcm9tIHRob3NlIG5lZWRlZCBieSB0aGUgcmVzdCBvZiB0aGUKICAgICBhcHBsaWNhdGlvbnMuCiAgIAoyMDAxLTEyLTIxIDE2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBob3cgdG8gaW5zdGFsbCBEQkkKICAgCjIwMDEtMTItMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgcmVtb3ZlIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIEFueURhdGEKICAgCjIwMDEtMTItMjEgMTY6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjIwMDEtMTItMjEgMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCAsIElOU1RBTEwgLCBJTlNUQUxMICwKICAgSU5TVEFMTDoKCiAgIGJldHRlciBkZXNjcgogICAKMjAwMS0xMi0yMSAxNjowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoyMDAxLTEyLTIxIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpdCdzIHZlcnkgYWxwaGEgY29kZS4KICAgCjIwMDEtMTItMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBuZXcgaW5zdHJ1Y3Rpb25zCiAgIAoyMDAxLTEyLTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkb3h5Z2VuLgogICAKMjAwMS0xMi0yMSAxMDoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsCiAgIGFwcHMvTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGdldGJ1bGsgdXBkYXRlcyB0byBtYWtlIGl0IHRoZSBtb2R1bGVzIHJlc3BvbnNpYmlsaXR5IHRvIHVwZGF0ZSB0aGUKICAgdmFyYmluZCBjaGFpbiBhbiB0aGUgcmVwZWF0IGNvdW50ZXIuCiAgIAoyMDAxLTEyLTE5IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaAogICAsIGhlbHBlcnMvTWFrZWZpbGUuaW4gLCBoZWxwZXJzL2FsbF9oZWxwZXJzLmMgLAogICBoZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuaDoKCiAgIEdFVEJVTEsgc3VwcG9ydCBmb3IgdGhlIG5ldyBBUEkuCiAgICAgLSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgc2xpZ2h0IG1vZGlmaWNhdGlvbnMuCiAgICAgLSBkZWZhdWx0cyB0byBHRVRORVhUIGZvciBhbnkgaGFuZGxlciB0aGF0IGRvZXNuJ3Qgc2V0IEhBTkRMRVJfQ0FOX0dFVEJVTEsuCiAgICAgLSBkb2Vzbid0IGRlYWwgcHJvcGVybHkgeWV0IHdpdGggZW5kLW9mLW1pYiBjb25kaXRpb24gcmVtb3ZhbC4KICAgCjIwMDEtMTItMTkgMDY6MDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIC1wIG9wdGlvbi4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMgb3B0aW9uYWwKICAgICAgIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gZHJvcCAobG9uZy1kZXByZWNhdGVkKSAtcSBvcHRpb24uCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBhbmQKICAgICAgIGNoYW5nZWQgZGVzY3JpcHRpb24gb2Ygc29tZSBvcHRpb25zIHRvIGJlIG1vcmUgc2ltaWxhciB0byBzbm1wZAogICAgICAgb3B0aW9ucyAod2hlcmUgYXBwcm9wcmlhdGUpLgogICAKMjAwMS0xMi0xOSAwNDozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMuICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzCiAgICAgICBvcHRpb25hbCBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgcGx1cwogICAgICAgbWlub3IgZm9ybWF0dGluZyB0d2Vha3MuCiAgIAogICAgIC0gcmUtd3JpdHRlbiBvcHRpb25zIHByb2Nlc3NpbmcgbG9vcCB0byB1c2Ugb3B0YXJnKCkuCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuNSksIFVDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlICwgSU5TVEFMTCAsIE1BTklGRVNUCiAgICwgUkVBRE1FICwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2hhbmRsZXIuaDoKCiAgICAgLSBhZGQgZnVuY3Rpb25zIHNubXBfaGFuZGxlcl9mcmVlKCksIHNubXBfaGFuZGxlcl9kdXAoKSwKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZHVwKCkgYW5kCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKS4KICAgCjIwMDEtMTItMTEgMTg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IGJ1ZyB3aGVyZSBwZHUtPmNvbnRleHROYW1lIGlzIE5VTEwuCiAgIAoyMDAxLTEyLTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEJJVFM6IGlwYWRkciAtPiBvY3RldF9zdHIKICAgCjIwMDEtMTItMTEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMgLCBEQkRfQW55RGF0YS5wYXRjaCAsCiAgIEZvcm1hdC5wbSAsIElOU1RBTEwgLCBNQU5JRkVTVCAsIE1ha2VmaWxlLlBMICwKICAgU3RvcmFnZS5wbSAsIHNubXBzaDoKCiAgIEZpcnN0IHZlcnNpb24KICAgCjIwMDEtMTItMTAgMDM6MjAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAgYXJnIHRvIGRzX3NldF9zdHJpbmcKICAgCjIwMDEtMTItMTAgMDM6MTkgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRpdHRvIGluIHNldF9wZXJzaXN0ZW50X2RpcmVjdG9yeSgpCiAgIAoyMDAxLTEyLTEwIDAzOjE4ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBpbiBzZXRfY29uZmlndXJhdGlvbl9kaXJlY3RvcnkoKSBiZWNhdXNlCiAgICAgICBkc19zZXRfc3RyaW5nKCkgYWxyZWFkeSBkb2VzIHRoYXQgZm9yIHlvdS4KICAgCjIwMDEtMTItMDcgMDk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgaGVscGVycy90YWJsZV9pdGVyYXRvci5oCiAgICwgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwODoyMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nICwgRkFRICwgTkVXUyAsIFJFQURNRSAsCiAgIFJFQURNRS53aW4zMiAsIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsCiAgIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLCBsb2NhbC9taWIyYyAsIGxvY2FsL3RrbWliCiAgICwgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLAogICBwZXJsL1NOTVAvU05NUC5wbSAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AgLCB3aW4zMi9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmggLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi93aW4zMi5kc3cgLAogICB3aW4zMi93aW4zMi5vcHQgLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiAgICwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwICwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAogICAsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwICwgd2luMzIvc25tcGQvc25tcGQuZHNwCiAgICwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcAogICAsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AgLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AgLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiAgICwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCAsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwICwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDc6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGZpeCBidWcgaW4gYWRkcmVzcyBwYXJzZXIKICAgCjIwMDEtMTItMDUgMDc6NDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW46CgogICAgIC0gbWVudGlvbiB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGluIGNvbmZpZywgYW5kIGFkZCBhICNkZWZpbmUgZm9yIGl0CiAgICAgICBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gY2FsbCBzbm1wX3RjcDZfY3RvcigpIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uaDoKCiAgICAgLSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgVW50ZXN0ZWQuCiAgIAoyMDAxLTEyLTA1IDA3OjE5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtYWtlIGVuY29kZWQgYWRkcmVzc2VzIGF0IHRyYW5zcG9ydCBvcGVuIHRpbWUKICAgCjIwMDEtMTItMDUgMDc6MTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICByZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMgbGlrZSwgb2gsIEkgZG9uJ3Qga25vdywgZ2V0U3RhdFB0cigpLgogICAKMjAwMS0xMi0wNSAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMTItMDUgMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGNoYW5nZWQgdGV4dHVhbCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTItMDQgMjI6NTIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXggYmluZCBwYXJhbWV0ZXJzLCBzbyB0aGF0IHRoZSBhZ2VudCB3b3JrcwogICAKMjAwMS0xMi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIC0gbW92ZSBmb3Jnb3R0ZW4gZnVuY3Rpb24gdHlwZWRlZnMgdG8gaXRlcmF0b3Igc3BlY2lmaWMgaGVhZGVyIGZpbGUuCiAgIC0gYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBjYWxsYmFja3MgdG8gbWFrZSBmdW5jdGlvbnMgbW9yZSByZXVzYWJsZS4KICAgCjIwMDEtMTItMDQgMTM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtb3ZlIGl0ZXJhdG9yIHNwZWNpZmljIHRhYmxlIGluZm9ybWF0aW9uIGludG8gaXRzIG93biBzdHJ1Y3R1cmUuCiAgIAoyMDAxLTEyLTA0IDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBGaXggcHJvdG90eXBlIGFzIHBvaW50ZWQgb3V0IGJ5IEplcm9tZSBQZWR1Y2Fzc2UKICAgCjIwMDEtMTItMDQgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtZW50aW9uIHRoYXQgbm90IGFsbCB0cmFuc3BvcnQgZG9tYWlucyBhcmUgYWx3YXlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMTItMDQgMDk6NTUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSByZW1vdmUgLXAgYW5kIC1UIG9wdGlvbnMgZnJvbSBkb2N1bWVudGF0aW9uLgogICAKICAgICAtIGFkZCBsZW5ndGh5IG5ldyBzZWN0aW9uIGRlc2NyaWJpbmcgbmV3IHRyYW5zcG9ydCBhZGRyZXNzCiAgICAgICBzcGVjaWZpY2F0aW9uIGZvcm1hdCwgd2l0aCBleGFtcGxlcyBhbmQgZXZlcnl0aGluZyEKICAgCjIwMDEtMTItMDQgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zIGZvciBhcHBzLgogICAKMjAwMS0xMi0wNCAwMzoxMCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gYWRkIGNyZWF0ZV9vc3RyaW5nIG1ldGhvZCwgZXhwb3J0IHVjZFNubXBVRFBJUHY2RG9tYWluW10KICAgCjIwMDEtMTItMDQgMDI6MTkgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIG1lbnRpb24gSVB2NiB0cmFuc3BvcnQgZG9tYWluIE9JRHMgaW4gcmVsZXZhbnQgY29tbWVudC4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFF1ZWxsIGEgY29uc3QgY2FzdCB3YXJuaW5nLgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkZWJ1ZyBvdXRwdXQgZnJvbSByZXRyaWVzLgogICAKMjAwMS0xMi0wMyAxNTowNiAgbmJhCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXhlcyB0byBtYWtlIFVEUElQdjYgdHJhbnNwb3J0IHdvcmsgZm9yIFNvbGFyaXMsIExpbnV4IGFuZCBGcmVlQlNELgogICBJdCBjb21waWxlcywgYW5kIHRoZSBhcHBzIHNlbmQgdjYgcGFja2V0cy4gQWdlbnQgbm90IHlldCB0ZXN0ZWQuCiAgIAoyMDAxLTEyLTAzIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiAsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBjb3B5IHJvYmVydHMgc3BpZmZ5IGhlYWRlciB0ZXh0CiAgIAoyMDAxLTEyLTAzIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGRhdGVudGltZSBjb2x1bW4uCiAgIAoyMDAxLTEyLTAzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggcHJvYmxlbSB3aXRoIGRvdWJsZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgYWZ0ZXIgZ2V0bmV4dCBsb29wLgogICAKMjAwMS0xMi0wMyAwODowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQ6CgogICBub3RpZmljYXRpb24gbG9nIG1pYiBhZGRlZCB0byBkZWZhdWx0IGxpc3QuCiAgIAoyMDAxLTEyLTAzIDA1OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBkZWJ1Z2dpbmcgb3V0cHV0ICgiYmxhaCIpCiAgIAoyMDAxLTExLTMwIDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIENoYW5nZSBob3cgcmVxdWVzdCBwcm9jZXNzaW5nIGdldHMgZG9uZSBzdWNoIHRoYXQgcmVxdWVzdCBvYmplY3RzIGFyZQogICBhbGwgY2FsbG9jZWQgYXQgb25jZSBhbmQgZ2V0IHJldXNlZCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGVkLiAgQmlnIHNwZWVkCiAgIGltcHJvdmVtZW50cy4KICAgCjIwMDEtMTEtMzAgMTU6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMgLCBtdWx0aXBsZXhlci5oOgoKICAgZG94eWdlbiBmaXhlcwogICAKMjAwMS0xMS0zMCAwOToyNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UgaW4gcmVnaXN0ZXJfaGFuZGxlcigpIGlmIGFwcHJvcHJpYXRlLgogICAKMjAwMS0xMS0zMCAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkgd2hlbiBzdWJhZ2VudCB0cmllcyB0bwogICAgICAgcmVnaXN0ZXIgYSBNSUIgcmVnaW9uIHRoYXQgZmFpbHMgZWl0aGVyIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUKICAgICAgIG9yIGJlY2F1c2Ugb2Ygc29tZSBvdGhlciByZWFzb24uCiAgIAoyMDAxLTExLTMwIDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBvZiBvbGRfaW5mbyAodGhhdCBuZXZlciBzZWVtcyB0byBnZXQgdXNlZCBmb3IKICAgICAgIGFueXRoaW5nIGFueXdheT8pCiAgIAogICAgIC0gZml4IG1lbW9yeSBsZWFrIHRoYXQgYXJpc2VzIGR1cmluZyByb3cgcmVnaXN0cmF0aW9uIChpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cykgYmVjYXVzZSBzdWNjZXNzaXZlIHZhcnMgY2F1c2UgYXBwYXJlbnQgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zICh0aGlzIGlzIGEgZGVmaWNpZW5jeSkgLS0gYnV0IGl0IHdvdWxkIGFwcGVhciB0aGlzCiAgICAgICBjb3VsZCBhcmlzZSBpbiBvdGhlciBzaXR1YXRpb25zIHRvbyAoZ2VudWluZSBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMpLgogICAKMjAwMS0xMS0zMCAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gZml4IGJyb2tlbiBwYXJzaW5nIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2VzcygpIC0tIGxvb3Agd2FzCiAgICAgICBjb3B5aW5nIHRoZSBzYW1lIChmaXJzdCkgdG9rZW4gTUFYX0FSR1MgdGltZXMuCiAgIAogICAgIC0gZWxpbWluYXRlIG1lbW9yeSBsZWFrIGluIGRpdHRvLgogICAKICAgICAtIGZpeCB0eXBvICgiUGF1c2libGUgY2F1c2UiIC0+ICJQb3NzaWJsZSBjYXVzZSkgaW4gZGl0dG8uCiAgIAoyMDAxLTExLTMwIDA2OjI5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwcmludCBmZCBpbiBzZXNzX3Byb2Nlc3NfcGFja2V0KCkgLS0gdXNlZnVsIGZvciBkZWJ1Z2dpbmcKICAgCjIwMDEtMTEtMzAgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICAgIC0gcmVtb3ZlIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcyBmcm9tIHNubXBDYWxsYmFja0RvbWFpbi5oCiAgIAogICAgIC0gc2V0ICpvcGFxdWUgdG8gTlVMTCBhZnRlciB3ZSBmcmVlIGl0IC0tIGl0IG1pZ2h0IG1hdHRlci4KICAgCjIwMDEtMTEtMzAgMDM6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gY2xvbmUgUERVIGluIGhhbmRsZV9hZ2VudHhfc3ViYWdlbnQoKSBiZWZvcmUgc2VuZGluZyBpdCBvbiBjYWxsYmFjawogICAgICAgc2Vzc2lvbiB0byBhdm9pZCBkb3VibGUgZnJlZSgpIGFuZCBmcmVlKClkIG1lbW9yeSByZWFkcy4KICAgCiAgICAgLSBtb3JlIGNvbmNpc2UgKGFoZW0pIGRlY2xhcmF0aW9uIG9mIG15Y2FsbGJhY2sgaW4gaGFuZGxlX2FnZW50eF9wYWNrZXQoKS4KICAgCjIwMDEtMTEtMjkgMDU6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHB1dCBzZXNzaW9uIGFuZCBzdWJzZXNzaW9uIGluIHN1YmFnZW50IGRlc2NyaXB0aW9uIChoZWxwZnVsIGZvcgogICAgICAgZGVidWdnaW5nKQogICAKMjAwMS0xMS0yOSAwNTo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCBJTlNUQUxMSEVBREVSUwogICAKMjAwMS0xMS0yOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgc29tZSBkZWJ1Z2dpbmcgdG8gaW5pdF9zdWJhZ2VudCgpICh3aGljaCBzaG93ZWQgdGhhdCBpdCB3YXNuJ3QKICAgICAgIGJlaW5nIGNhbGxlZCwgc28uLi4pLgogICAKICAgICAtIGZpeCBjYXN0IGluIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoKQogICAKMjAwMS0xMS0yOSAwNTo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtYWtlIHN1cmUgaW5pdF9zdWJhZ2VudCgpIGdldHMgY2FsbGVkCiAgIAoyMDAxLTExLTI4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2hlY2sgZm9yIHNlc3Npb24gcmVnaXN0cmF0aW9ucyBpbiBhbGwgY29udGV4dHMuCiAgIAoyMDAxLTExLTI4IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBpbnN0YWxsIHNubXBfdHJhbnNwb3J0LmggYW5kIHNubXAqRG9tYWluLmggKGZvciB0aGUgY29uZmlndXJlZAogICAgICAgdHJhbnNwb3J0IGRvbWFpbnMpCiAgIAoyMDAxLTExLTI4IDAzOjI5ICBqYnBuCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgICAgLSByZXZlcnNlIG15c3RlcnkgcmVtb3ZhbCBvZiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiBhbmQgI2luY2x1ZGUKICAgPHN5cy90aW1lLmg+CiAgIAoyMDAxLTExLTI3IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIG1vcmUgaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSB0cmVlIHNwYWNlIGJhc2VkIG9uIG51bWJlciBvZiB2YXJiaW5kcyBpbiByZXF1ZXN0LgogICAKMjAwMS0xMS0yNyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluICwgYWxsX2hlbHBlcnMuYyAsCiAgIGFsbF9oZWxwZXJzLmggLCBkZWJ1Z19oYW5kbGVyLmMgLCBkZWJ1Z19oYW5kbGVyLmg6CgogICBkZWJ1ZyBoYW5kbGVyIGNyZWF0ZWQgZm9yIGluc2VydGluZyBkZWJ1Z2dpbmcgb3V0cHV0IGludG8gdGhlIGNhbGxpbmcgY2hhaW4uCiAgIAoyMDAxLTExLTI3IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBlbnVtIGRlZmluaXRpb25zIGZvciBtb2RlcyBhbmQgY2FuX21vZGVzLgogICAKMjAwMS0xMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IFBEVSB2YXJpYWJsZSB0byBOVUxMIHRvIGF2b2lkIGZyZWVpbmcgaXQgdHdpY2UuCiAgIAoyMDAxLTExLTI2IDExOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgcGx1ZyBhbm90aGVyIG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwOTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQgLCBUMDIxc25tcHYzZ2V0bmV4dCAsCiAgIFQwMjJzbm1wdjNnZXRNRDUgLCBUMDIzc25tcHYzZ2V0TUQ1REVTICwKICAgVDAyNHNubXB2M2dldFNIQTEgLCBUMDI1c25tcHYzZ2V0U0hBREVTICwKICAgVDAyOHNubXB2M2dldGZhaWwgLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uICwKICAgVDA1M2FnZW50djF0cmFwICwgVDA1NGFnZW50djJjdHJhcCAsIFQwNTVhZ2VudHYxbWludHJhcAogICAsIFQwNTZhZ2VudHYyY21pbnRyYXAgLCBUMTEwYWdlbnR4Z2V0ICwKICAgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsICwgVDExM2FnZW50eHRyYXAgLAogICBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYyAsIGFnZW50eC9tYXN0ZXIuYyAsCiAgIHVjZC1zbm1wL3Byb3h5LmM6CgogICB1c2UgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSB0byBwbHVnIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTEtMjYgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgdHJhbnNwb3J0IGZyb20gYQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIuCiAgIAoyMDAxLTExLTI2IDAzOjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3N1cHBvcnQoKSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zcG9ydCBkb21haW4KICAgICAgIGlzIHN1cHBvcnRlZC4KICAgCjIwMDEtMTEtMjMgMTA6MjQgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbXVsdGlwbGUgdHJhbnNwb3J0IGRvbWFpbiBzdXBwb3J0IGZvciB0cmFwZCAtLSB0aGlzIHdhcyByZWFsbHkKICAgICAgIFJFQUxMWSBlYXN5IQogICAKMjAwMS0xMS0yMyAwOToyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBmdW5jdGlvbiBzbm1wX3RyYW5zcG9ydF9zdXBwb3J0KCkgKHJlcGxhY2VkIHdpdGgKICAgICAgIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkpLgogICAKMjAwMS0xMS0yMyAwODo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmM6CgogICAgIC0gdXNlIG5ldHdvcmsgb3JkZXIgZm9yIEFBTDVQVkMgdHJhbnNwb3J0IGFkZHJlc3MgZW5jb2RpbmcKICAgCjIwMDEtMTEtMjMgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBtYWtlIHRyYXBzIHdvcmsgd2l0aCBuZXctc3R5bGUgYWRkcmVzc2VzLCB1c2UgZG9tYWluLWJhc2VkIGFkZHJlc3MKICAgICAgIGVuY29kaW5ncyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLiAgTm90ZSB5b3UgY2FuIG5vdyBzZW5kIHRyYXBzL2luZm9ybXMKICAgICAgIG92ZXIgYW55IHN1cHBvcnRlZCB0cmFuc3BvcnQgdHlwZSBieSB1c2luZyB0aGUgdHJhcHNlc3MgZGlyZWN0aXZlIGFuZAogICAgICAgYSB0cmFuc3BvcnQ6YWRkcmVzcyB0eXBlIHNwZWNpZmljYXRpb24uCiAgIAoyMDAxLTExLTIzIDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBjcmVhdGUgYXBwcm9wcmlhdGVseS1lbmNvZGVkIGxvY2FsIG9yIHJlbW90ZSBlbmRwb2ludCBhZGRyZXNzZXMgYXQKICAgICAgIHRyYW5zcG9ydCBvcGVuIHRpbWUuCiAgIAoyMDAxLTExLTIzIDA2OjUwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyBmb3IgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0yMiAwOTowOCAgamJwbgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2ggLCBldmFsX3Rvb2xzLnNoICwKICAgdGVzdHMvVDAwMXNubXB2MWdldCAsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0ICwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwgLCB0ZXN0cy9UMDE0c25tcHYyY2dldCAsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCAsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCAsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwgLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiAgICwgdGVzdHMvVDAyMHNubXB2M2dldCAsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0ICwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSAsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMgLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSAsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMgLAogICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCAsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24gLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtICwgdGVzdHMvVDA1MHNubXB2M3RyYXAgLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAgLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSAsCiAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0cy9UMTAwYWdlbnRodXAgLAogICB0ZXN0cy9UMTEwYWdlbnR4Z2V0ICwgdGVzdHMvVDExMWFnZW50eHNldCAsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsICwgdGVzdHMvVDExM2FnZW50eHRyYXAgLAogICB0ZXN0cy9UMTIwcHJveHlnZXQgLCB0ZXN0cy9UMTIxcHJveHlzZXQgLAogICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgICAtIHVzZSB1ZHA6PGhvc3RuYW1lPjo8cG9ydD4gaW5zdGVhZCBvZiAtcCB0byBtYWtlIHRlc3RzIHdvcmsgYWdhaW4KICAgCjIwMDEtMTEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBtb3JrIHdvcmUgb24gdGhlIG5vdGlmaWNhdGlvbiBsb2cgbWliLiAgSXQgbm93IHN1cHBvcnRzIHZhcmlhYmxlCiAgIHN0b3JhZ2UsIGJ1dCBzZWdmYXVsdHMgb24gYWNjZXNzIGR1ZSB0byBwZHUgY2xvbmluZyBwcm9ibGVtcyBJJ20gbm90CiAgIGdvaW5nIHRvIHdvcmsgb3V0IHJpZ2h0IG5vdy4KICAgCjIwMDEtMTEtMjEgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggc25tcHRyYXBkIGxpbmtpbmcuCiAgIAoyMDAxLTExLTIxIDIyOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmg6CgogICByZW1vdmUgZHVwbGljYXRlIE9JRF9MRU5HVEg7IHVzZSBhY3R1YWwgb2lkIHR5cGUgaW4gY2FsY3VsYXRpb24KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBhZGQgTlVMTCBwb2ludGVyIGZvciByYnVpbGQgaW4gc2Vzc2lvbiBjcmVhdGlvbi4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG5ldGluZXQvaW4uaCBuZWVkZWQuCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHZhcmlhYmxlIGNsZWFuIHVwcy4KICAgCjIwMDEtMTEtMjEgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLCBsb2NhbC9taWIyYyAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbiAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLXRjLmggLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmggLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXBpLmggLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3Rvb2xzLmMgLCBzbm1wbGliL3Rvb2xzLmggLCBzbm1wbGliL3ZhY20uYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMjowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiB2YWNtLmggLCBhc24xLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX2FycmF5Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkYXRhX2xpc3QuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAxODo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHZlcnNpb24uaCAsIGFnZW50L01ha2VmaWxlLmluICwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMKICAgLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oCiAgICwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaCAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC90YXJnZXQuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmggLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsIGFwcHMvTWFrZWZpbGUuaW4gLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAwNjo0MyAgamJwbgoKICAgKiBjb25maWcuaC5pbjoKCiAgICAgLSBJUHY2IGNvbmZpZyBkZWZzCiAgIAoyMDAxLTExLTIxIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgbm93LWV4dHJhbmVvdXMgI2luY2x1ZGUgInNubXBCbGFoRG9tYWluLmgiIGxpbmVzCiAgIAoyMDAxLTExLTIxIDAzOjM5ICBqYnBuCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMTEtMjAgMDk6MzggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5oCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5oICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmggLCBzbm1wX2FwaS5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTEtMjAgMDk6MTYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBOb3RlOiBpbmNvbXBsZXRlIQogICAKMjAwMS0xMS0yMCAwODoyOSAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfdHJhcC5jICwKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA2OjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGxldCBWQUNNIGNoZWNrcyBzdWNjZWVkIGZvciBub24tSVB2NCB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTE1IDA1OjE5ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0ICwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTUgMDQ6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSAic25tcGQuaCIgKGZvciAjZGVmaW5pdGlvbiBvZiBNQVNURVJfQUdFTlQpCiAgICAgLSBkb24ndCBzdHJkdXAoKSBhZ2VudHhzb2NrZXQgdmFsdWUgLS0gZHNfc2V0X3N0cmluZyBkb2VzIGl0IGZvciB5b3UKICAgICAtIGNoYW5nZSBkZWJ1Z2dpbmcgdG8gZml0IGluIGJldHRlciB3aXRoIHJlc3Qgb2YgbW9kdWxlCiAgIAoyMDAxLTExLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls3LDddKSwgY29uZmlnLmguaW4KICAgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMgLCBhZ2VudHhfY29uZmlnLmgKICAgLCBtYXN0ZXIuYyAsIG1hc3Rlci5oICwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZmlsZSBORVQtU05NUC1BR0VOVC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgbWFzdGVyX2FkbWluLmMgLAogICBwcm90b2NvbC5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFKCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGZvciBtb3JlIGNvbXByZWhlbnNpdmUKICAgICAgIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAogICAgIC0gcGFyc2UgdW5yZWdpc3RlciByYW5nZXMgcHJvcGVybHksIGFuZCB1c2UgdGhlIHJhbmdlIHByb3Blcmx5IGZvcgogICAgICAgcGFzc2luZyB0byB1bnJlZ2lzdGVyX21pYl9jb250ZXh0KCkuCiAgIAoyMDAxLTExLTA3IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2RlYnVnLmMgLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYyAsCiAgIHByb3RvY29sLmggLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICAgIC0gc3VwcG9ydCBmb3IgcmVsb2NhdGFibGUgYnVmZmVyIGJ1aWxkIGNhbGxiYWNrcyB2aWEgb3Blbl9leCBjYWxscwogICAKMjAwMS0xMC0zMCAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0zMCAwMzoyNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB0aGUgaW5pdGlhbCBidWZmZXIgc2l6ZSAyMDQ4IGluIHNubXBfcmVzZW5kX3JlcXVlc3QgKGFzIGluCiAgICAgICBfc2Vzc19hc3luY19zZW5kKSB0byBtYWtlIHN1Y2Nlc3MvZmFpbCBiZWhhdmlvdXIgZm9yIEFnZW50WCBtb3JlCiAgICAgICBwcmVkaWN0YWJsZSAoc2luY2UgQWdlbnRYIFNUSUxMIGRvZXNuJ3QgdXNlIHJlbG9jYXRpbmcgYnVmZmVycywKICAgICAgIGJvbyBoaXNzKS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LWF1dG8uY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZmlsZSB0YWJsZV9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oOgoKICAgZmlsZSB0YWJsZV9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuaDoKCiAgIGZpbGUgb2lkX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZmlsZSBvaWRfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yNiAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGZ1bmN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwNjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAsIGludGVyZmFjZXMuaDoKCiAgICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ4IGFuZCB0eCBkcm9wIGNvdW50cyAoaWZJbkRpc2NhcmRzIGFuZAogICAgICAgIGlmT3V0RGlzY2FyZHMpIGZvciBMaW51eCAoMi4yKykKICAgCjIwMDEtMTAtMjYgMDU6NTcgIGpicG4KCiAgICogYWNsb2NhbC5tNDoKCiAgICAgLSBhZGQgaWZfaXFkcm9wcyBtZW1iZXIgdG8gc3RydWN0IGlmbmV0CiAgIAoyMDAxLTEwLTI2IDA0OjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBhZGQgdHJhbnNsYXRpb24gZm9yIGF0bSgzNykgdHlwZSBpbnRlcmZhY2VzIGZvciBMaW51eAogICAKMjAwMS0xMC0yNiAwMzo0MyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNCksCiAgIHN5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDg6NDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0yNCAwMzozOCAgamJwbgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICAgIC0gemVybyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmVzLiAgSG9wZWZ1bGx5IGZpeGVzIHByb2JsZW1zIG9uIE5ldEJTRAogICAgICAgbm90ZWQgYnkgSm9ha2ltIEFsdGhpbmkgKHJlbGF0ZWQgdG8gc2FfbGVuIG1lbWJlciBwcm9iYWJseT8/KS4KICAgCjIwMDEtMTAtMTEgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT3Bwc2VzLgogICAKMjAwMS0xMC0xMSAxNDoxNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zICwKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmICwgbWFuL3NubXBfZXJyb3IuMyAsCiAgIG1hbi9zbm1wX3BlcnJvci4zICwgbWFuL3NubXBfc2Vzc19wZXJyb3IuMyAsCiAgIG1hbi9zbm1wY21kLjEgLCBtYW4vc25tcGQuMS5kZWYgLCBtYW4vc25tcGQuY29uZi41LmRlZgogICAsIG1hbi9zbm1wc2V0LjEgLCBtYW4vc25tcHRyYW5zbGF0ZS4xICwKICAgbWFuL3NubXB0cmFwZC44ICwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmICwKICAgbWFuL3NubXB3YWxrLjEgLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCAsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0ICwgbWlicy9NYWtlZmlsZS5taWIgLAogICBtaWJzL1JFQURNRS5taWJzICwgbWlicy9TTVVYLU1JQi50eHQgLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLCBtaWJzL21pYmZldGNoICwgbWlicy9yZmNsaXN0CiAgICwgbWlicy9zbWlzdHJpcCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL2ludDY0LmMgLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaCAsIHNubXBsaWIvbXRfc3VwcG9ydC5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmggLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXV0aC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oICwgdGVzdGluZy9NYWtlZmlsZS5pbgogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMTEgMTQ6MDEgIGhhcmRha2VyCgogICAqIENPUFlJTkcgLCBDaGFuZ2VMb2cgLCBGQVEgLCBNYWtlZmlsZS5pbiAsCiAgIE5FV1MgLCBSRUFETUUgLCBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsCiAgIGNvbmZpZy5ndWVzcyAsIGNvbmZpZy5oLmluICwgY29uZmlnLnN1YiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGx0Y29uZmlnICwgbHRtYWluLnNoCiAgICwgbWFrZWZpbGVpbmRlcGVuZC5wbCAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3RyYXAuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcF92YXJzLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsIGFwcHMvTWFrZWZpbGUuaW4KICAgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYyAsCiAgIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwgYXBwcy9zbm1wc2V0LmMKICAgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMgLAogICBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXAuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGxvY2FsL21pYjJjLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCAsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMgLCBjYWxsYmFjay5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBzbm1wX2NhbGxiYWNrX2xpc3QoKSB0byByZXR1cm4gbGlzdCBvZiBjYWxsYmFja3MgZm9yIGEKICAgICAgIGdpdmVuIDxtYWpvciwgbWlub3I+IHBhaXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgZmlsZSBwYXNzX3BlcnNpc3R0ZXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDMgMDU6NDIgIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAzIDAzOjExICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gZG8gU05NUERfQ0FMTEJBQ0tfVU5SRUdJU1RFUl9PSUQgY2FsbGJhY2tzIGluCiAgICAgICB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpIC0tIGNhbGxlZCB3aGVuIEFnZW50WCBzdWJhZ2VudHMKICAgICAgIGRpc2FwcGVhci4KICAgCjIwMDEtMTAtMDIgMDY6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCBBU05fUFJJVl9FWENMX1JBTkdFIG9uLXRoZS13aXJlCiAgIAoyMDAxLTA5LTI2IDA4OjAzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYWxsb3cgc3BsaXRfc3VidHJlZSgpIHRvIGRvIGEgc3BsaXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbHVtbiwKICAgICAgIGtlZXBpbmcgdGhlIHJlbGV2YW50IHZhcmlhYmxlIGluIGJvdGggdGhlIG9sZCB0cmVlIGFuZCB0aGUgbmV3CiAgICAgICB0cmVlIChhcmlzZXMgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSBwYXRjaCBmcm9tIERhbWlhbiBHaWxtdXJyYXkgZm9yIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaAogICAgICAgYWxsb3dzIGl0IHRvIGNvcGUgd2l0aCBub24temVybyBsZW5ndGggdmFyaWFibGVzIGFuZCBhbHNvCiAgICAgICBub24tY29udGlndW91cyBPSURzIGZvciBhZGphY2VudCBjb2x1bW5zLgogICAKICAgICAtIHJld3JpdHRlbiBkdW1wX3JlZ2lzdHJ5KCkgdGhhdCB1c2VzIHJlYWxsb2NhdGluZyBwcmludCBmdW5jdGlvbnMKICAgICAgIGFuZCBhbHNvIHByaW50cyBvdXQgdmFyaWFibGUgbGlzdHMuCiAgIAoyMDAxLTA5LTI2IDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgb2Ygc3VidHJlZSBuYW1lIGJlaW5nIGxvbmdlciB0aGFuCiAgICAgICByZXF1ZXN0ZWQgbmFtZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBzdWZmaXggZm9yIHZhcmlhYmxlIG1hdGNoaW5nLgogICAKICAgICAtIGJlIHN0cmljdCBhYm91dCBzdWJ0cmVlIGNodW5rcyBiZWluZyBpbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IE9JRAogICAgICAgYW5kIGV4Y2x1c2l2ZSBvZiB0aGUgZW5kIE9JRCAoc2hvd3MgdXAgYmlnIHRpbWUgaW4gQWdlbnRYKS4KICAgCjIwMDEtMDktMjYgMDc6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZG9uJ3QgZG8gZ2V0TmV4dCByZXF1ZXN0cyBvbiBleGNsdXNpdmUgc2VhcmNoUmFuZ2VzIHRoYXQgYmVnaW4gaW4KICAgICAgIGEgdHJlZSBtYXJrZWQgYXMgYSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgKHRoZXkgYXJlIGRvb21lZCB0bwogICAgICAgZmFpbCkuICBTa2lwIHRvIHRoZSBuZXh0IHBhcnQgb2YgdGhlIHRyZWUgc3RyYWlnaHQgYXdheS4KICAgCjIwMDEtMDktMjYgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGJyaW5nIGRlYnVnZ2luZyB0b2tlbnMgaW50byBsaW5lIHdpdGggcmVzdCBvZiBBZ2VudFggY29kZQogICAKMjAwMS0wOS0yNSAwODoxNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlIGNoYXJhY3RlcgogICAKMjAwMS0wOS0yNSAwMzo1OCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgY2FzdAogICAKMjAwMS0wOS0yNSAwMzo0NSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBpbmZlbGljaXR5IHdoZW4gcHJpbnRpbmcgYW5kIHN5c2xvZ2dpbmcgKG5vdCBzdXJlIHRoaXMgaXMKICAgICAgIGFjdHVhbGx5IHBvc3NpYmxlIGJ1dCkKICAgCjIwMDEtMDktMjUgMDM6MDkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBpbnRlZ3JhdGUgc29tZSBjaGFuZ2VzIGZyb20gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2g6IEhhcnJpZSdzCiAgICAgICBwcm90b3R5cGVzIGFuZCBXZXMncyBmaXggZm9yIGJ1ZyAgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjUgMDM6MDEgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gZml4IHNpZ25lZG5lc3Mgb2YgdGltZSBzdHVmZgogICAKMjAwMS0wOS0yNSAwMjo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgLCBzbm1wX2xvZ2dpbmcuaDoKCiAgICAgLSBtYWtlIGFyZ3VtZW50IG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudCBjb25zdAogICAKICAgICAtIGRvbid0IHN0cmR1cCBERUZBVUxUX0xPR19JRCBpZiBhIE5VTEwgYXJnIGlzIGdpdmVuCiAgIAoyMDAxLTA5LTI0IDA5OjM5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgaW4gc25tcHRyYXBkX2xvZy5jIHdoaWNoCiAgICAgICBhdm9pZCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCiAgICAgLSBmaXggYnVnIG5vdGVkIGluIHN1cHBvcnQgcmVxdWVzdCAjNDU2NjQ2IChjdXN0b20gdHJhcCBmb3JtYXQgd2FzCiAgICAgICBiZWluZyBpZ25vcmVkIGZvciB2MiB0cmFwcyBhbmQgaW5mb3JtcykuICBUaGFua3MgdG8KICAgICAgIEcuUHJpbmNpcGF0b0Btb3Rvcm9sYS5jb20gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgogICAKICAgICAtIGNvcnJlY3QgdXNhZ2UgZm9yIC1QIG9wdGlvbiB0byByZWZsZWN0IHRoYXQgaXQgY2F1c2VzIG91dHB1dCBvbgogICAgICAgc3RkZXJyIG5vdCBzdGRvdXQuCiAgIAoyMDAxLTA5LTI0IDA5OjM2ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBuZXcgbG9nbWF0Y2ggbWliIGZyb20gU3RlcGhhbiBXZW56ZWwuCiAgIAoyMDAxLTA5LTE1IDA4OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG92ZXJyaWRlIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0IG9wZXJhdGlvbnMgd2hlbiByZXRyeWluZwogICAgICAgb3BlcmF0aW9ucwogICAKMjAwMS0wOS0xNSAwODozOSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIFBhdGNoICM0NDAzMjAgZnJvbSBNYXJrIEZlcmxhdHRlOgogICAKICAgMSkgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byB0aGUgc25tcF9sb2dnaW5nIEFQSQogICAgICAoc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGNoYXIgKmlkZW50KSkKICAgCiAgIDIpIFBvcnRzIHNubXB0cmFwZCB0byB1c2UgdGhlIGV4aXN0aW5nIHNubXBfbG9nZ2luZyBBUEkgaW5zdGVhZCBvZgogICAgICB1c2luZyBzeXNsb2cgZGlyZWN0bHkuCiAgIAogICAzKSBQb3J0cyBzbm1wX2xvZ2dpbmcuW2NoXSB0byB1c2UgdGhlIFdpbjMyIEV2ZW50IExvZyB3aGVuIGNvbXBpbGVkIG9uCiAgICAgIFdpbjMyLiBJIGRpZG4ndCB1cGRhdGUgdGhlIFZpc3VhbCBDIHByb2plY3QgZmlsZXMsIGJlY2F1c2UgSSBvbmx5CiAgICAgIGhhdmUgYWNjZXNzIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBWQywgYW5kIEkgZGlkbid0IGtub3cgaWYgeW91CiAgICAgIHdhbnRlZCB0aGVtIHVwZGF0ZWQuIFRoZSBhZHZhcGkzMiBsaWJyYXJ5IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZQogICAgICBwcm9qZWN0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgb24gV2luMzIgKHRoYXQncyB3aGVyZSB0aGUgZXZlbnQKICAgICAgbG9nIEFQSSBpcykuCiAgIAoyMDAxLTA5LTE0IDE0OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgUGF0Y2ggIzQyODg4NDogQWRkIC1QUiBsaWtlIG9wdGlvbiB0byBwZXJsIG1vZHVsZSAoZnJvbSBKb2UgQ2xhcmtlKS4KICAgCjIwMDEtMDktMTQgMTQ6MDggIGhhcmRha2VyCgogICAqIFJFQURNRSAsIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9hc24xLmg6CgogICBBcHBsaWVkIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjNDI3MzQzIGZyb20gSGFycmllOgogICAgIG1ha2UgZW50ZXJwcmlzZSBJRCByZWxvY2F0YWJsZSB3aGVyZSBsZWdhbCB0byBkbyBzbwogICAKMjAwMS0wOS0xNCAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiAsIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jICwgaHJfdXRpbHMuaDoKCiAgIHJlbW92ZWQuICBGdW5jdGlvbmFsaXR5IG1vdmVkIHRvIHNubXBsaWIvc25tcC10Yy5bY2hdCiAgIAoyMDAxLTA5LTE0IDEyOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LmggLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC10Yy5oOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBmaWxlIGNvbmZpZy5oLmJvcmxhbmQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOS0xNCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLAogICBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgICAtIHVzZSBpbmNsdXNpdmUgc2VhcmNoIHJhbmdlIG9ubHkgd2hlbiBhcHByb3ByaWF0ZSBmb3IgZ2V0TmV4dAogICAgICAgcXVlcmllcwogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTA2IDA3OjQwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICAgIC0gaWYgaW5jbHVkZSBiaXQgaXMgc2V0IGluIGFuIEFnZW50WCBTZWFyY2hSYW5nZSAoaGVuY2UgdHlwZSBvZiB2YXJiaW5kCiAgICAgICBpcyBBU05fUFJJVl9JTkNMX1JBTkdFKSwgdHJ5IGFuIGV4YWN0IHF1ZXJ5IGZpcnN0IGJlY2F1c2UgYW4gb2JqZWN0CiAgICAgICB3aG9zZSBuYW1lIGlzIGxleGktZXF1YWwgaXMgYSB2YWxpZCByZXNwb25zZTsgaWYgZXhhY3QgcXVlcnkgZmFpbHMKICAgICAgIHRoZW4gZmFsbCBiYWNrIHRvIGFuIGluZXhhY3QgcXVlcnkuCiAgIAoyMDAxLTA5LTA2IDA3OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX3JlcXVlc3QuYyAsCiAgIHByb3RvY29sLmMgLCBzdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIHVzZWQgSU5DTC9FWENMIHdyb25nIHdheSByb3VuZCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKICAgCiAgICAgLSBiZXR0ZXIgdGVzdCBmb3Igc2NvcGluZyByZXF1aXJlbWVudHMgaW4gc3ViYWdlbnQKICAgCjIwMDEtMDktMDQgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMjggMDM6MDQgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0Lmg6CgogICBmaWxlIGRhdGFfbGlzdC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIGZpbGUgZGF0YV9saXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjIgMDg6NDUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgY2hlY2tpbmcgdGhhdCByZXN1bHRzIHRvIGJlIHJldHVybmVkIHRvIG1hc3RlciBhZ2VudCBhcmUgaW4KICAgICAgIHJlcXVlc3RlZCBzY29wZSAoaWYgYW55KSAoZ2V0QnVsayBub3QgeWV0IGRvbmUpCiAgIAoyMDAxLTA4LTE1IDA5OjMxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBpbiBkZWJ1Z21zZ19vaWQgdG8gcHJpbnQgbG9uZyBPSURzLgogICAKMjAwMS0wOC0xNSAwODozNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mIHNubXBJbkJhZENvbW11bml0eVVzZXMgd2hlbiBhdHRlbXB0aW5nIGFuCiAgICAgICBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBieSB0aGUgZ2l2ZW4gY29tbXVuaXR5LCBwZXIgUkZDIDE5MDcuCiAgIAoyMDAxLTA4LTE1IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB3aGVuIHRyYW5zbGF0aW5nIHRoZSB2MisgZXJyb3Itc3RhdHVzIHZhbHVlIGF1dGhvcml6YXRpb25FcnJvcgogICAgICAgaW50byBub1N1Y2hOYW1lIGZvciBhIHYxIHNlc3Npb24sIGluY3JlbWVudCB0aGUgdmFsdWUgb2YKICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMsIHBlciBSRkMgMjU3Ni4KICAgCjIwMDEtMDgtMTQgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIGluIHNubXBfc2V0X3Zhcl9vYmppZCgpLCB0cnkgdG8gZGV0ZWN0IGEgcHJldmlvdXNseS1tYWxsb2MoKWVkCiAgICAgICBidWZmZXIgZm9yIHRoZSB2YXJpYWJsZSBuYW1lLCBhbmQgZnJlZSgpIGl0LCB0byBhdm9pZCBtZW1vcnkKICAgbGVha3MuCiAgIAoyMDAxLTA4LTEzIDAzOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHVzZSBXaW4zMiBjYWxscyB0byBjaGFuZ2UgYmxvY2tpbmcgc3RhdGUgb2Ygc29ja2V0cyBpZgogICAgICAgYXBwcm9wcmlhdGUuICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0xMyAwMzozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhbiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uIGlmCiAgICAgICB3ZSBnZXQgYW4gZXJyb3Igb24gYSBzdHJlYW0gcmVjZWl2ZSwgYXMgd2VsbCBhcyBpZiBpdCBpcyBjbG9zZWQgaW4KICAgICAgIGFuIG9yZGVybHkgZmFzaGlvbi4gIFRoaXMgbWFrZXMgbGlmZSBlYXNpZXIgb24gV2luMzIgaW5wYXJ0aWN1bGFyLgogICAgICAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Lmg6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmg6CgogICBmaWxlIHRhYmxlX2RhdGEuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBmaWxlIHRhYmxlX2RhdGEuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2Vycm9yLjM6CgogICBmaWxlIHNubXBfZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA2IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMzAgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jICwgaW50ZXJmYWNlcy5oOgoKICAgICAtIG1ha2UgSW50ZXJmYWNlX1NjYW5fR2V0X0NvdW50IG5vbi1zdGF0aWMgYXMgaXQncyB2ZXJ5IHVzZWZ1bAogICAKMjAwMS0wNy0wNSAwMzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBmcmVlIHRoZSBjYWNoZWQgc2VjdXJpdHkgcGFyYW1ldGVycyB3aGVuIHdlIGhhdmUgYSBwYXJzZSBlcnJvcgogICAgICAgb24gaW5wdXQsIG90aGVyd2lzZSB3ZSBsZWFrIG1lbW9yeSAodHJpZ2dlcmVkIGJ5IFNDIDMuMC4xMy57MiwzfSkuCiAgIAoyMDAxLTA3LTA0IDA5OjUxICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2F0Y2ggc29tZSBtYWxmb3JtZWQgU05NUHYzIHBhY2tldHMKICAgCjIwMDEtMDctMDQgMDc6NDIgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYmFkIG1pc3Rha2UgaW4gc25tcHYzX3Njb3BlZFBEVV9oZWFkZXJfcmVhbGxvY19yYnVpbGQgd2hpY2gKICAgICAgIHdhcyBlbmNvZGluZyB0aGUgd3JvbmcgbGVuZ3RoIGludG8gdGhlIFNjb3BlZFBEVSBTRVFVRU5DRSBoZWFkZXIKICAgICAgICh3YXNuJ3QgaW5jbHVkaW5nIGxlbmd0aCBvZiBhY3R1YWwgZGF0YSwgaS5lLiBQRFUhKS4gIFRvdGFsbHkgbXkKICAgICAgIGZhdWx0IC0tIGludHJvZHVjZWQgd2hlbiBjaGFuZ2luZyBvdmVyIHRvIHJlYWxsb2NhdGluZyBidWZmZXIKICAgICAgIHR5cGUgZnVuY3Rpb25zLiAgQW1hemluZyB0aGlzIGhhc24ndCBjYXVzZWQgYWxsIHNvcnRzIG9mIHRyb3VibGUKICAgICAgIGZvciBwZW9wbGUhCiAgIAoyMDAxLTA3LTAyIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBmaWxlIHNubXAtdGMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wMiAwOTozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMS0wNy0wMiAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAgIC0gZml4IGJhZCBiZWhhdmlvdXIgaW4gaGVhZGVyX3NpbXBsZV90YWJsZSB3aGVuIHRoZSBpbmRleCBpcwogICAgICAgZXF1YWwgdG8gVUxPTkdfTUFYCiAgIAoyMDAxLTA2LTI4IDEwOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2hhbmdlIHNlbnNlIG9mIHNubXBfb2lkX2NvbXBhcmUoKSByZXN1bHQgY2hlY2sgaW4gdmFyX3VzbVVzZXIKICAgICAgIHRvIGRvIGxleGktb3JkZXJpbmcgY29ycmVjdGx5CiAgIAoyMDAxLTA2LTI4IDA3OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjb3VudCBtb3JlIHYxL3YyYyBwYXJzZSBlcnJvcnMgKFNDIDEuMS4xMi4xMCkKICAgCjIwMDEtMDYtMjggMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoZWNrIHRoYXQgdmVyc2lvbiBmaWVsZCBvZiBQRFUgaXMgb2YgaW50ZWdlciB0eXBlIHJhdGhlciB0aGFuIGp1c3QKICAgICAgIGFzc3VtaW5nIGl0IGlzIChTQyAxLjEuMTIuMi4xKQogICAKMjAwMS0wNi0yOCAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgd2hlbiB3ZSBzZWUgdW5rbm93biBjb21tdW5pdHkKICAgICAgIG5hbWVzLCBwZXIgUkZDMTkwNwogICAKMjAwMS0wNi0yNyAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiBuZXcgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHRvIG1hcmsgYWxsIG91cgogICAgICAgbm9kZXMgYXMgZGV0YWNoZWQgd2hlbiB3ZSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdCBpbmRpY2F0aW9uLgogICAKMjAwMS0wNi0yNyAwODowNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgYWdlbnRfaW5kZXguaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gY291bnRfaW5kZXhlcyB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgaW5kZXhlcwogICAgICAgYWxsb2NhdGVkIGZvciBhIGdpdmVuIE9JRC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nCiAgICAgICAicm93IGNvdW50IiBvYmplY3RzLCBlLmcuIGlmTnVtYmVyLgogICAKMjAwMS0wNi0yMCAwNTozNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUQVJUIGFuZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVE9QCiAgICAgICBjYWxsYmFja3Mgd2hpY2ggbWF5IGJlIHVzZWQgdG8gbWFuYWdlIGluZGV4IGFsbG9jYXRpb25zLgogICAKICAgICAgIE1hc3RlciBhZ2VudCBzaG91bGQgcHJvYmFibHkgY2FsbCB0aGVzZSBjYWxsYmFja3MgdG9vLCBhbHRob3VnaAogICAgICAgaXQncyBhIGJpdCBvZiBhIGRlZ2VuZXJhdGUgY2FzZS4KICAgCjIwMDEtMDYtMTkgMDk6NDQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSB1c2UgYW4gZXhwbGljaXQgZmllbGVkICJhbGxvY2F0ZWQiIGluIHNubXBfaW5kZXggc3RydWN0dXJlIHRvCiAgICAgICBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGN1cnJlbnRseSBhbGxvY2F0ZWQsIHJhdGhlcgogICAgICAgdGhhbiBvdmVybG9hZGluZyBhIE5VTEwgc2Vzc2lvbiB0byBtZWFuIHRoYXQgaXQgaXMgbm90LgogICAKICAgICAgIFRoaXMgYWxsb3dzIHN0YXJ0dXAgY29kZSBpbiBhIG1hc3RlciBhZ2VudCB0byBwcmUtcmVnaXN0ZXIgaW5kaWNlcwogICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gc2Vzc2lvbnMgb3Blbi4KICAgCjIwMDEtMDYtMTkgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtICBrZWVwIHRoZSB2YWx1ZSBvZiBORVRXT1JLX0JZVEVfT1JERVIgZnJvbSBoLmZsYWdzIGluIHRoZQogICAgICAgIGFnZW50eC1PcGVuLVBEVSBhbmQgdXNlIGl0IGZvciBzdWJzZXF1ZW50IG1hc3Rlci1pbml0aWF0ZWQKICAgICAgICBBZ2VudFggcHJvdG9jb2wgb3BlcmF0aW9ucywgcGVyIFJGQyAyNzQxIChzZWN0aW9uIDcuMS4xLAogICAgICAgIHBhcmFncmFwaCA0KS4KICAgCiAgICAgICAgRm9yIG5vdywgd2UgYXJlIHN0b3JpbmcgdGhpcyBpbiB0aGUgZmxhZ3MgZmllbGQgb2YgYQogICAgICAgIHN1YnNlc3Npb24uICBUaGlzIGlzIGxpa2VseSB0byBzdG9wIHdvcmtpbmcgaWYgdGhlIGZsYWdzCiAgICAgICAgZGVmaW5pdGlvbnMgY2hhbmdlIChpLmUuIGl0J3Mgbm90IGEgZ3JlYXQgc29sdXRpb24pCiAgIAogICAgIC0gIFRoYW5rcyB0byBQZXRlciBLb3JzdGVuIChzZXZlcml0eW9uZSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQpCiAgICAgICAgZm9yIGlkZW50aWZ5aW5nIHRoaXMgYnVnLCBhbmQgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMgZml4LgogICAKMjAwMS0wNi0xOSAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHJlaW5zdGF0ZSBzcGFjZSBiZXR3ZWVuIG51bWJlcnMgYW5kIHVuaXRzLgogICAKICAgICAtIHJlc3BlY3QgRElTUExBWS1ISU5UcyBmb3IgVW5zaWduZWQzMiwgR2F1Z2UsIEdhdWdlMzIgdHlwZXMuCiAgIAoyMDAxLTA2LTEzIDAzOjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBkZWJ1Z2dpbmcgdG8gcmVkdWNlICJub2lzZSBsZXZlbCIgZnJvbSBQdXJpZnkKICAgCjIwMDEtMDYtMTIgMTA6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZXRpdGlvbnMgZmllbGQgdmFsdWVzIG9mIDwgMCAoYnkKICAgICAgIHNldHRpbmcgdGhlbSB0byAwLCBwZXIgUkZDIDE5MDUpCiAgIAoyMDAxLTA2LTEyIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggYnVnIHRoYXQgY2F1c2VkIGEgbnVsbCBwb2ludGVyIHRvIGJlIGZvbGxvd2VkIHdoZW4gcHJvY2Vzc2luZyBhCiAgICAgICBHRVRCVUxLIHJlcXVlc3Qgd2l0aCBub24tcmVwZWF0ZXJzID4gMCwgbWF4LXJlcGV0aXRpb25zID09IDAgYW5kIG5vCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgcmVxdWVzdC4KICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMSksIHJlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTA2IDA3OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlKCkgcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKSBjYWxscwogICAKMjAwMS0wNi0wNiAwNzozNyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIG1vcmUgdW5pZm9ybSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpOiBtYWtlIGl0IGFsd2F5cyBhCiAgICAgICB2YXJiaW5kIHdoaWNoIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWUoKWluZywgb3IgZWxzZSBOVUxMLgogICAKMjAwMS0wNi0wNSAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGZpeCBmb3IgaW5kZXggYWxsb2NhdGlvbiwgc3VjaCB0aGF0IHJlcXVlc3RzIGZvciBzcGVjaWZpYyBpbmRpY2VzIHdoaWNoCiAgICAgICBoYXZlIHByZXZpb3VzbHkgYmVlbiBhbGxvY2F0ZWQsIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHN1Y2NlZWQuCiAgIAogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaDoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZmlsZSB0YWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZmlsZSBvbGRfYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5oOgoKICAgZmlsZSBudWxsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmg6CgogICBmaWxlIHNldF9oZWxwZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpbGUgc2VyaWFsaXplLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oOgoKICAgZmlsZSBvbGRfYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaDoKCiAgIGZpbGUgaW5zdGFuY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDc6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWlzYyBmaXhlcyBmb3Igb2lkIGZvcm1hdHRpbmcgcHJvYmxlbXMuCiAgIAoyMDAxLTA2LTAxIDA3OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgTWFydGluIE9sZGZpZWxkLgogICAKMjAwMS0wNi0wMSAwMjo1MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIGNsaWVudC5oICwKICAgbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwgc3ViYWdlbnQuYzoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gdHdlYWsgdG8gZ2V0U3RhdFB0ciB0byBoYW5kbGUgZ2V0TmV4dCBvcGVyYXRpb25zIGluIGNvbWJpbmF0aW9uIHdpdGgKICAgICAgIEZVTExZX1FVQUxJRklFRF9JTlNUQU5DRSBub2RlcyAod2hpY2ggYXJpc2UgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pLgogICAKMjAwMS0wNS0yOCAwODo0NiAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYwogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBtc2dNYXhTaXplIGZpZWxkIHRvIHNubXBfdHJhbnNwb3J0IHN0cnVjdHVyZSB0byBzdXBwb3J0CiAgICAgICBtc2dNYXhTaXplIG5lZ290aWF0aW9uIGZvciB2MwogICAKMjAwMS0wNS0yMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX2hleHN0cmluZyBpbnN0ZWFkIG9mIHNwcmludF9oZXhzdHJpbmcgZm9yCiAgICAgICBTTk1QX1RFU1RJTkdfQ09ERSBkZWJ1Z2dpbmcgb3V0cHV0IG9mIElWLCBrZXkgYW5kIHBsYWludGV4dAogICAKMjAwMS0wNS0yMyAwNToyNSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBvcHRpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwNDoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgYW5kIC1FIG9wdGlvbnMsIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwMzo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeSBmdW5jdGlvbnMgZm9yIGlucHV0IHN0cmluZwogICAgICAgdG8gT0NURVQgU1RSSU5HIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgYXNjaWlfdG9fYmluYXJ5CiAgICAgICBhbmQgaGV4X3RvX2JpbmFyeQogICAKICAgICAtIG9taXQgdHJhaWxpbmcgbmV3bGluZSBmcm9tIHN0cmluZyAoaGVscGZ1bCBmb3Igb2JqZWN0cyB0aGF0IGRvbid0CiAgICAgICBhbGxvdyBub24tcHJpbnRpbmcgY2hhcmFjdGVycywgZS5nLiBzeXNMb2NhdGlvbi4wKQogICAKMjAwMS0wNS0yMCAwODoxMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmV3cml0dGVuIF9zZXNzX3JlYWQoKSBmdW5jdGlvbjoKICAgCiAgICAgICAtIGJldHRlciBoYW5kbGluZyBvZiBsb25nIHBhY2tldHMKICAgICAgIC0gemVyby1jb3B5IHJlY2VwdGlvbiBvZiBwYWNrZXRzIG9uIHN0cmVhbSB0cmFuc3BvcnRzCiAgICAgICAtIGxvd2VyIG1lbW9yeSBvdmVyaGVhZHMgZm9yIHBhY2tldCBmcmFnbWVudCBoYW5kbGluZyBmb3Igc3RyZWFtCiAgICAgICAgIHRyYW5zcG9ydHMKICAgCiAgICAgLSBhbGxvdyBwYXJzaW5nIG9mIGxhcmdlIG9iamVjdHMgKD44MTkyIG9jdGV0cykKICAgCjIwMDEtMDUtMjAgMDU6NDggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBjb250ZXh0TmFtZSwgc2VjdXJpdHlOYW1lIC0tIGNhdXNlcyBtaW5vciBtZW1vcnkKICAgICAgIGxlYWsuCiAgIAoyMDAxLTA1LTIwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHRlc3QgcmV0dXJuIG9mIGZjbnRsKEZfR0VURkwpLCBzbyBhcyBub3QgdG8gc2V0IGZsYWdzIHRvIGdhcmJhZ2UKICAgCiAgICAgLSBjb3JyZWN0aW9uIHRvIGNvbW1lbnQgLS0gc2V0IHNvY2tldCB0byAqYmxvY2tpbmcqIQogICAKICAgICAtIGNoZWNrIG9wYXF1ZSBiZWZvcmUgd3JpdGluZyB0byBpdCBpbiByZWN2CiAgIAoyMDAxLTA1LTIwIDA1OjAyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBwcm9wZXIgaGFuZGxpbmcgb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGluIHNubXBfc3luY2hfaW5wdXQ6CiAgICAgICBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLCB3aXRoIGVycm5vIFNOTVBFUlJfQUJPUlQgKCJTZXNzaW9uIGFib3J0CiAgICAgICBmYWlsdXJlIiksIHdoaWNoIHNlZW1zIGxpa2UgYSBnb29kIGVub3VnaCBtYXRjaC4KICAgCjIwMDEtMDUtMTggMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBuZXdseS1hY2NlcHQoKWVkIHNvY2tldHMgYmxvY2tpbmc7IG90aGVyd2lzZSBwcm9ibGVtcyBhcmlzZQogICAgICAgbGF0ZXIgd2hlbiBzZW5kKClpbmcgbGFyZ2UgUERVcyAoc2luY2Ugb25seSBhIHNpbmdsZSBzb2NrZXQgYnVmZmVyJ3MKICAgICAgIHdvcnRoIG9mIGRhdGEgYXQgbW9zdCBjYW4gYmUgc2VudCB3aXRob3V0IGJsb2NraW5nKS4KICAgCjIwMDEtMDUtMTggMDc6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgaW5zdGVhZCBvZgogICAgICAgc3ByaW50X29iamlkIGFuZCBzcHJpbnRfdmFyaWFibGUgcmVzcGVjdGl2ZWx5LCB0byBhbGxvdyBsYXJnZSBQRFVzCiAgICAgICB0byBiZSBwcmludGVkIHdoZW4gZGVidWdnaW5nCiAgIAoyMDAxLTA1LTE4IDA3OjE2ICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gc25tcF9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTggMDc6MTUgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gYWRkZWQgc3ByaW50X3JlYWxsb2NfPHR5cGU+IGZhbWlseSBvZiBmdW5jdGlvbnMgd2hpY2ggdGFrZSBleHRyYQogICAgICAgcGFyYW1ldGVycyBhbmQgdXNlIHJlbG9jYXRpbmcgYnVmZmVycyB0byByZW1vdmUgbGltaXRhdGlvbnMgZHVlIHRvCiAgICAgICBmaXhlZC1zaXplIGJ1ZmZlcnMgKGUuZy4gc2VlIGJ1ZyAjNDA5MTgxKS4KICAgCiAgICAgLSBhbHNvIGZpeGVzIHBvdGVudGlhbCBwcm9ibGVtIG5vdGVkIGFzIGJ1ZyAjNDE0ODAzCiAgIAogICAgIC0gZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgYW5kIGZwcmludF92YWx1ZSB1c2UgbmV3IGZ1bmN0aW9ucwogICAgICAgc3VjaCB0aGF0IHNubXBnZXQgZXRjLiBhcmUgaW1wcm92ZWQgaW1tZWRpYXRlbHkKICAgCiAgICAgLSBvbGQgZnVuY3Rpb25zIHJlbWFpbiAqRk9SIE5PVyogLS0gYnV0IHJlYWxseSB0aGV5IHNob3VsZCBiZQogICAgICAgY29uc2lkZXJlZCB0byBiZSBkZXByZWNhdGVkIChuZXcgZnVuY3Rpb25zIHByb3ZpZGUgYSBzdXBlcnNldCBvZgogICAgICAgdGhlaXIgZnVuY3Rpb25hbGl0eSkuCiAgIAoyMDAxLTA1LTExIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgICAgLSBhZGRlZCBhZGRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIgdG8gc3RydWN0IHRyZWUgdG8gcG9pbnQgYXQKICAgICAgIHJlbG9jYXRpbmcgYnVmZmVyIGNvbXBhdGlibGUgb3V0cHV0IGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTExIDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jICwgdG9vbHMuaDoKCiAgICAgLSBhZGRlZCB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfc3RyY2F0LCB3aGljaCBhcHBlbmRzIGEgc3RyaW5nIHRvIGEKICAgICAgIHJlbG9jYXRhYmxlIGJ1ZmZlcgogICAKMjAwMS0wNS0xMCAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICM0MjMxMDkgaW5jb3JyZWN0IGluZGV4IHBhcnNpbmcKICAgCjIwMDEtMDUtMDkgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggc25tcF9jbGllbnQuYzo1Njk6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMDkgMTI6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uLmggLCBSbW9uL1JFQURNRSAsIFJtb24vYWd1dGlsLmMKICAgLCBSbW9uL2FndXRpbC5oICwgUm1vbi9hZ3V0aWxfYXBpLmggLCBSbW9uL2FsYXJtLmMKICAgLCBSbW9uL2FsYXJtLmggLCBSbW9uL2V2ZW50LmMgLCBSbW9uL2V2ZW50LmggLAogICBSbW9uL2hpc3RvcnkuYyAsIFJtb24vaGlzdG9yeS5oICwgUm1vbi9yb3dfYXBpLmggLAogICBSbW9uL3Jvd3MuYyAsIFJtb24vcm93cy5oICwgUm1vbi9zdGF0aXN0aWNzLmMgLAogICBSbW9uL3N0YXRpc3RpY3MuaCAsIFJtb24vdGVzdF9hbGFybS5zaCAsCiAgIFJtb24vdGVzdF9oaXN0LnNoOgoKICAgSW5jbHVkZSBBbGV4IFJvemluJ3MgUm1vbi4KICAgCjIwMDEtMDUtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jICwgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQgLCBjb25maWcuZ3Vlc3MgLCBjb25maWcuc3ViICwKICAgY29uZmlndXJlICwgbHRtYWluLnNoOgoKICAgdXBkYXRlZCB0byBsaWJ0b29sIDEuNAogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICB1c2UgcmVhbGxvYyByb3V0aW5lcy4KICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMDUtMDEgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBwcmludCBoZXggZm9yIHN0cmluZyBsZW5ndGhzIGxlc3MgdGhhbiA0LiAgU2hvdWxkIGhhdmUgZGllZCBhZ2VzIGFnby4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oOgoKICAgRml4IHByb3RvdHlwZSBzbyBpdHMgbm90IHN0YXRpYyAoaXQgc2hvdWxkbid0IGJlKS4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBtYWtlIFJPTkxZIHZhcmlhYmxlcyB3cml0YWJsZSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yay4gIEknbSBiZXR0aW5nIG5vdC4pCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmggLCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dAogICAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZGVkIExNLVNFTlNPUlMtTUlCIHN1cHBvcnQgKGRpc2tpbyBleHRlbnNpb24pIGZyb20gTWFydGluIE9sZGZpZWxkCiAgIAoyMDAxLTA0LTE4IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYWNraW5nIG9uIHNubXBfYWRkX3ZhciB0byBoYW5kbGUgbG9uZyB2YWx1ZXMKICAgCiAgICAgICAtIHVzZSBzbm1wX3toZXgsZGVjaW1hbH1fdG9fYmluYXJ5IGluc3RlYWQgb2YgaGV4X3RvX2JpbmFyeQogICAgICAgICBhbmQgYXNjaWlfdG9fYmluYXJ5OyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZAogICAKICAgICAgIC0gZG9uJ3QgdXNlIHN0cnRvayBpbiBwcm9jZXNzaW5nIGJpdHN0cmluZ3MKICAgCjIwMDEtMDQtMTggMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gdXNlIHRoZSBnZW5lcmljIHNubXBfcmVhbGxvYyBmdW5jdGlvbiBpbiBhc25fcmVhbGxvYwogICAKMjAwMS0wNC0xOCAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMgLCBzbm1wLmg6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkX3Zhcl9vcCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMTEgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDIgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gYXNuX3JlYWxsb2MoKSBmdW5jdGlvbiBjaGVja3Mgd2hldGhlciBpdCBoYXMgYmVlbiBwYXNzZWQgYSBOVUxMCiAgICAgICBwb2ludGVyIGFuZCB1c2VzIG1hbGxvYygpIGluIHRoYXQgY2FzZSAodGhhbmtzIHRvIE1pY2hhZWwgU2xpZmNhawogICAgICAgZm9yIHBvaW50aW5nIG91dCB0aGUgZGFuZ2VyIGhlcmUpLgogICAKMjAwMS0wNC0xMSAwNjoxMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA0OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHNldCBTT19TTkRCVUYgYW5kIFNPX1JDVkJVRiB0byAxMjhLYiBmb3IgbmV3bHktb3BlbmVkIFVEUCBzb2NrZXRzLAogICAgICAgdG8gZW5hYmxlIGxhcmdlIFBEVXMgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQuICBTb21lCiAgICAgICBpbXBsZW1lbnRhdGlvbnMgZGVmYXVsdCB2ZXJ5IGxvdyAoU29sYXJpcyAyLjcgOEtiLCBMaW51eCAyLjQKICAgICAgIDY0S2IpLgogICAKMjAwMS0wNC0wOSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBtb2RpZmllZCB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBtYWtlIHVzZSBvZiByZWFsbG9jYXRpbmcKICAgICAgIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmg6CgogICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5oOgoKICAgICAtIGFsbG93IGFkZGl0aW9uYWwgcGFyYW1ldGVyIGZvciBvdXRnb2luZyBwYXJhbXMgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHByb3RvdHlwZXMgZm9yIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMKICAgCjIwMDEtMDQtMDkgMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIHRvIHVzZSByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyBpZgogICAgICAgdXNpbmcgcmV2ZXJzZSBlbmNvZGluZyBhdCBhbGwuCiAgIAoyMDAxLTA0LTA5IDA5OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgICAtIGFkZCBuZXcgZnVuY3Rpb24gc25tcF9yZWFsbG9jX3JidWlsZF92YXJfb3AoKSB3aGljaCB1c2VzCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyB0byBlbmNvZGUgdmFyYmluZHMuCiAgIAoyMDAxLTA0LTA5IDA5OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHByb3RvdHlwZSBmb3IgbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwKICAgICAgIHdoaWNoIHBlcmZvcm0gcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlCiAgICAgICBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAogICAgIC0gY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIGFib3ZlLgogICAKMjAwMS0wNC0wOSAwOTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LCB3aGljaCBwZXJmb3JtCiAgICAgICByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUgaXMgbm90IGVub3VnaAogICAgICAgc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCjIwMDEtMDQtMDYgMTI6MTIgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCAsIENPUFlJTkcgLCBDaGFuZ2VMb2cgLAogICBFWEFNUExFLmNvbmYuZGVmICwgRkFRICwgTkVXUyAsIFBPUlRJTkcgLAogICBSRUFETUUgLCBSRUFETUUuYWdlbnR4ICwgUkVBRE1FLnNubXB2MyAsIGNvbmZpZ3VyZQogICAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2RzX2FnZW50LmggLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4ICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLCBhcHBzL3NubXBkZWx0YS5jCiAgICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvbWliMmMgLCBsb2NhbC9zbm1wY29uZgogICAsIGxvY2FsL3RrbWliICwgbG9jYWwvd2VzcmVzdGFydCAsIG1hbi9zbm1wY21kLjEKICAgLCBtYW4vc25tcGQuY29uZi41LmRlZiAsIG1hbi9zbm1wZGVsdGEuMSAsCiAgIG1pYnMvcmZjbGlzdCAsIG1pYnMvcmZjbWlicy5kaWZmICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIG1lcmdlMyAtPiBtZXJnZTQuICBJIGRvbid0ICp0aGluayogSSBicm9rZSBhbnl0aGluZy4KICAgICAtIFRoZSBtYWluIGxpbmUgc2hvdWxkIG5vdyBjb250YWluIGFsbCB0aGUgNC4yLjEgcGF0Y2hlcy4KICAgICAtIEkgbWF5IGRvdWJsZSBjaGVjayB0aGlzIGF0IGEgbGF0ZXIgZGF0ZS4KICAgCjIwMDEtMDQtMDUgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAsIHBhc3NfcGVyc2lzdC5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICBBbHNvIGFwcGxpZWQgdG8gJ3Bhc3NfcGVyc2lzdCcuCiAgIAoyMDAxLTA0LTA1IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMgLCBrZXJuZWwuYwogICAsIG1pYl9tb2R1bGVzLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmgKICAgLCBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wNSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNSAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIChBIGNsZWFuZXIgYXBwcm9hY2ggdGhhbiB0aGUgcHJldmlvdXMgcGF0Y2gpCiAgIAoyMDAxLTA0LTA1IDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYyAsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAsIHNubXB0cmFwZF9sb2cuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToxNSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgcmVhZF9jb25maWcuYyAsIHNubXBUQ1BEb21haW4uaAogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5oICwgc25tcF9hcGkuYyAsIHNubXBfbG9nZ2luZy5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0LmggLCBzeXN0ZW0uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMTA6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gY2hlY2sgZm9yIGxpbWl0cy5oIHByb3Blcmx5CiAgIAoyMDAxLTA0LTAyIDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gbWlub3IgdHlwZWZhY2UgY2hhbmdlcwogICAKMjAwMS0wMy0zMSAwNjoyNyAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjI1ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAgLSBkb2N1bWVudCB0aGUgc25tcF9hbGFybV9yZWdpc3Rlcl9ociBmdW5jdGlvbgogICAKICAgIC0gZXhwYW5kIHRoZSBOT1RFUyBzZWN0aW9uIGRpc2N1c3NpbmcgdXNlIG9mIFNJR0FMUk0gKG9yIG5vdCkKICAgCjIwMDEtMDMtMzEgMDY6MTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkgYW5kIGNhbmNlbCBhbGwKICAgICAgY2FsbGJhY2tzIHdoaWNoIG1ha2UgcmVmZXJuY2UgdG8gdGhlIEFnZW50WCBzZXNzaW9uLgogICAKMjAwMS0wMy0zMSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgLSBGaXggbXVsdGlwbGUgZnJlZSgpIG9mIHBhcnRzIG9mIHRoZSBzdWJzZXNzaW9uIGJ5IHplcm9pbmcgb3V0CiAgICAgIGZpZWxkcyB0aGF0IHdlIGRvbid0IHVzZS4KICAgCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBDaGFuZ2VkIHBhY2tldCBoYW5kbGluZyBvbiBzdHJlYW0tbGlrZSB0cmFuc3BvcnRzIHNvIHRoYXQgYWxsCiAgICAgIGNvbXBsZXRlIHJlY2VpdmVkIHBhY2tldHMgYXJlIHByb2Nlc3NlZDoKICAgCiAgICAgIF9zZXNzX3JlYWQgaXMgcmVmYWN0b3JlZCBpbnRvIHR3byBmdW5jdGlvbnM6IF9zZXNzX3JlYWQgcmVtYWlucwogICAgICByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllciwgYnV0IHRoZW4KICAgICAgY2FsbHMgKHBlcmhhcHMgbW9yZSB0aGFuIG9uY2UpIF9zZXNzX3Byb2Nlc3NfcGFja2V0IHRvIGRpc3BhdGNoCiAgICAgIGVhY2ggcGFja2V0IHJlYWQuCiAgIAogICAgLSBUaGUgcHJlc2VuY2Ugb2YgYSBzZXNzaW9uIHdpdGggYSBidWZmZXJlZCBwYXJ0aWFsIHBhY2tldCBubyBsb25nZXIKICAgICAgY2F1c2VzIHNubXBfc2VsZWN0X2luZm8gdG8gcmV0dXJuIHdpdGggYSB0aW1lb3V0IG9mIHplcm8uCiAgIAogICAgLSBGcmVlIHRoZSBzdWJzZXNzaW9ucyBvZiBhIHNlc3Npb24gd2hlbiBkb2luZyBhbiBzbm1wX3Nlc3NfY2xvc2U7CiAgICAgIHRoaXMgZml4ZXMgYW4gQWdlbnRYIG1lbW9yeSBsZWFrIHdoZW4gc3ViYWdlbnRzIGNvbWUgYW5kIGdvLgogICAKICAgIC0gUGVyZm9ybSBjYWxsYmFja3Mgd2l0aCBhbiBvcGVyYXRpb24gYXJndW1lbnQgb2YKICAgICAgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHdoZW4geW91IGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24uCiAgIAoyMDAxLTAzLTMxIDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIE1hZGUgdHJhbnNwb3J0IGRvbWFpbiBjb25zdAogICAKMjAwMS0wMy0zMSAwNTo1NSAgamJwbgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBGaXggbWVtb3J5IGxlYWsgdGhhdCBjYW4gb2NjdXIgd2hlbiBkZXJlZ2lzdGVyaW5nIGNhbGxiYWNrcwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGZpbGUgUkVBRE1FLmFnZW50eCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVMgKFY0LTItcGF0Y2hlcy4xKSwgSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsLzogbGlic25tcC5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA2OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjM2ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMgLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGNoYW5nZSBmcHJpbnRmIC0+IHNubXBfbG9nLgogICBEb24ndCBhbGxvdyBtb2RpZmljYXRpb25zIG9mIHJlYWQtb25seSByb3dzIGluIG10ZU9iamVjdHNUYWJsZS4KICAgCjIwMDEtMDMtMjcgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwogICAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIFN1cHBvcnQgZm9yIG5ldyBmZWF0dXJlcyBpbiB0aGUgRElTTUFOLUVWRU5ULU1JQiBjb2RlOgogICAgIE5ldyBzbm1wZC5jb25mIHRva2VuczoKICAgICAgLSBtb25pdG9yIFstbyBvaWQuLi5dIFstdSB1c2VyXSBvaWQgWyg9fCE9fDw9fC4uLikgVkFMVUVdLgogICAgICAtIGRlZmF1bHRNb25pdG9ycyB5ZXMKICAgCjIwMDEtMDMtMjcgMTA6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNb3ZlZCAqIGZyb20gYmVnaW5uaW5nIG9mIHJvdXRpbmUgdG8gdGhlIHNhbWUgbGluZSBhcyB0aGUgcmV0dXJuCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uLiAgV2FzIGNhdXNpbmcgZXRhZ3MgZ3JpZWYgdGhlIG90aGVyIHdheS4KICAgCjIwMDEtMDMtMjcgMTA6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluOiB1c2UgJXMgaW5zdGVhZCBvZiBAcyBmb3Igc2VhcmNoL3JlcGxhY2UgZGVsaW1pdGVycy4KICAgCjIwMDEtMDMtMjcgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICB0cmFwX2ZtdF9mcmVlIG5lZWRzICgpcy4KICAgCjIwMDEtMDMtMjcgMDg6MTMgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEF2b2lkIGRvdWJsZS1mcmVlaW5nIG9mIGNhY2hlZCBhZGRyZXNzIHN0cmluZ3MuCiAgICAgIChKb2huJ3MgaW1wcm92ZW1lbnQgdG8gbXkgc3VnZ2VzdGVkIGZpeCkuCiAgIAoyMDAxLTAzLTI3IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAogICAoVjQtMi1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIHNubXBsaWIvdmFjbS5jICwgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBpcGYtbW9kLnBsIChWNC0yLXBhdGNoZXMuMSksIGlwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMDc6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBBU05fT0NURVRfU1RSIHJhdGhlciB0aGFuIHRoZSBoaXN0b3JpYyBBU05fQklUX1NUUiBmb3IgJ2InIG9iamVjdCB2YWx1ZXMKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgKFY0LTItcGF0Y2hlcy4zKSwgYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjMwICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXZvaWQgY3Jhc2ggaW4gc25tcF9zaHV0ZG93biBvbiBwbGF0Zm9ybXMgdGhhdCBjaGVjayBwb2ludGVyIHZhbGlkaXR5CiAgIGluIGZyZWUoMyksIGUuZy4gRnJlZUJTRC4KICAgCjIwMDEtMDMtMjEgMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgY29weV9ud29yZCBjcmVhdGVkIHRoYXQgY2hlY2tzIGJ1ZmZlciBsZW5ndGhzLgogICBNYWRlIGV2ZXJ5dGhpbmcgdXNlIGl0LgogICAKMjAwMS0wMy0yMSAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTIwIDA5OjEzICBqYnBuCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgUHVyaWZ5IGFuZCBORlMgc3R1ZmYKICAgCjIwMDEtMDMtMTYgMTA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYWRkZWQgTUlUX05FV19DUllQVE8gKGZvciBrc20pIGRlZmluaXRpb24gd2hpY2ggd2FzIG1pc3NpbmcKICAgCjIwMDEtMDMtMTYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHJpZGljdWxvdXMgbWVtb3J5IGxlYWsgaW4gZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICB3aG9vcHMuICBNaXNzZWQgYSBtZXJnZSBjb25mbGljdCBsaW5lCiAgIAoyMDAxLTAzLTE1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBSRUFETUUud2luMzIgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYgLCBtYW4vc25tcGNtZC4xICwgbWFuL3NubXB0cmFwZC44CiAgICwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQgLCBtaWJzL01UQS1NSUIudHh0ICwKICAgbWlicy9NYWtlZmlsZS5taWIgLCBtaWJzL1JFQURNRS5taWJzICwKICAgbWlicy9UVU5ORUwtTUlCLnR4dCAsIG1pYnMvaWFuYWxpc3QgLCBtaWJzL21pYmZldGNoCiAgICwgbWlicy9yZmNsaXN0ICwgbWlicy9yZmNtaWJzLmRpZmYgLCBtaWJzL3NtaXN0cmlwCiAgICwgcGVybC9TTk1QL1NOTVAueHMgLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvbWliLmggLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9zeXN0ZW0uaCAsIHRlc3RpbmcvZXZhbF90b29scy5zaCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCAsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCAsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4gLCBSVU5URVNUUyAsIFRFU1RDT05GLnNoCiAgICwgZXZhbF9vbmVzY3JpcHQuc2ggLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICwgYXBwcy9zbm1wdmFjbS5jICwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwgdG8gcXVpZXQgc29tZSB3YXJuaW5ncy4KICAgCjIwMDEtMDMtMTQgMTA6MTkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteepq2dlcikKICAgCjIwMDEtMDMtMTQgMDU6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTAzLTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZVRyaWdnZXJUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmg6CgogICAgLSBzYXZlIG9yaWdpbmFsIFBEVSdzIHRyYW5zcG9ydCBkb21haW4gLS0gbmVjZXNzYXJ5IGZvcgogICAgICBjb21tdW5pdHkgc3RyaW5nIHByb2Nlc3NpbmcKICAgCiAgICAgIENBVVRJT046IGluY29tcGF0aWJsZSBjaGFuZ2UgaW4gZm9ybWF0IG9mIG10ZVRyaWdnZXJUYWJsZQogICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGVudHJ5CiAgIAogICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbXRlX3J1bl90cmlnZ2VyIGJ5IHJlbGVhc2luZyBQRFVzCiAgIAogICAgLSBzZW5kICJiYWQgdHlwZSIgbm90aWZpY2F0aW9ucyBpbiBzb21lIGNhc2VzCiAgIAogICAgLSBvdGhlciBtaW5vciBtZW1vcnkgbGVha3MKICAgCiAgICAtICJkZWx0YSIgc2FtcGxlVHlwZSBoYW5kbGVkIGZvciBib29sZWFuIHRyaWdnZXJzCiAgIAogICAgLSBtb3JlICJYWFg6IiBjb21tZW50cyEKICAgCjIwMDEtMDMtMTMgMTM6NTIgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc3VwcG9ydCBmb3IgSW50ZWdlcjMyCiAgIAoyMDAxLTAzLTExIDA4OjQzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEFkZGVkIGEga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kdWxlIChrc20pLgogICAgIEhvd2V2ZXIsIE5lZWRzIGxpYnJhcmllcyAoLWxrcmI1IC1sY29tX2Vycikgbm90IGJlaW5nIGNoZWNrZWQgZm9yIGN1cnJlbnRseS4KICAgCjIwMDEtMDMtMDggMTQ6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFdob29wcy4gIFNob3VsZG50IGhhdmUgYSBuZWdhdGlvbiBzaWduIG9uIHRoZSBtb3N0IHJlY2VudCBjaGVja2luLgogICAKMjAwMS0wMy0wOCAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSWYgTk9fUFJPQkUgaXMgc2V0LCBkb24ndCBkbyBhbnkgcG9zdCBwcm9iaW5nIGFjdGl2aXRpZXMgZWl0aGVyIGxpa2UKICAgdGltZSB1cGRhdGluZyBhbmQgdXNlciBjcmVhdGlvbi4KICAgCjIwMDEtMDMtMDggMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgUmVtb3ZlIHN0cmR1cCgpcyBvbiBzb21lIHNlc3Npb24gcGFyYW1ldGVycyB3aGljaCBjYXVzZSBtZW1vcnkgbGVha3MKICAgKHNpbmNlIHNubXBfb3BlbiBkZWVwIGNvcGllcyB0aGUgaW5wdXQgc2Vzc2lvbiBhbnl3YXkpCiAgIAoyMDAxLTAzLTA4IDA4OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBNYWtlIHN1cmUgc2VzcyBmaWVsZCBvZiBuZXcgZW50cmllcyBpcyBpbml0aWFsaXNlZCB0byBOVUxMLgogICAKMjAwMS0wMy0wOCAwNzo0OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBNYWtlIGNvbmZpZyB0b2tlbiBwYXJzZXIgdXBkYXRlIHRpbWVzdGFtcCBvbiBlbnRyeSBpdCBjcmVhdGVzOwogICBtb3ZlIHVwZGF0ZV90aW1lc3RhbXAgZnVuY3Rpb24uCiAgIAoyMDAxLTAzLTA3IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBTTk1QLnBtICwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2NsaWVudC5jICwgc25tcF9zZWNtb2QuYwogICAsIHNubXBfc2VjbW9kLmggLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2NsaWVudC5jOgoKICAgLSBzZXQgdGhlIGRlZmF1bHQgcGR1IHNlY3VyaXR5IG1vZGVsIHRvIFNOTVBfREVGQVVMVF9TRUNNT0RFTCAobm90IDApLgogICAtIGRvbid0IGZvcmNlIHRoZSBzZWN1cml0eSBtb2RlbCBvZiB0aGUgc2Vzc2lvbiBvbiB0aGUgcGR1IGlmIGFscmVhZHkgc2V0LgogICAKMjAwMS0wMy0wNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBob3BlZnVsbHkgZml4IHRvIGFsbG93IG90aGVyIChyZWdpc3RlcmVkKSBzZWN1cml0eSBtb2RlbHMgdG8gYmUgdXNlZC4KICAgCjIwMDEtMDMtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjIwMDEtMDMtMDYgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIENyZWF0ZSBhIG5ldyBzZWNtb2QgY2FsbGJhY2sgd2hlbiBhIHRpbWVvdXQgb24gYSBwZHUgb2NjdXJzLgogICAKMjAwMS0wMy0wNiAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICAtIGJ1ZyBmaXhlcyBmb3Igc2VjbW9kIHJlbGF0ZWQgc3R1ZmYgKGl0IGNvbXBpbGVzIG5vdyAob3BwcykpLgogICAKMjAwMS0wMy0wNiAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgLSB0d28gbmV3IHNlY21vZCBjYWxsYmFja3MgZm9yIGZyZWVpbmcgYSBwZHUgYW5kIGEgc2Vzc2lvbi4KICAgLSBtb3ZlIHRyYW5zcG9ydCBjbG9zaW5nIGluIHNubXBfc2Vzc19jbG9zZSgpIHRvIGFmdGVyIHBlbmRpbmcKICAgICByZXF1ZXN0cyBhcmUgZnJlZWQvY2xvc2VkIGluIGNhc2Ugc29tZXRoaW5nIG5lZWRzIHRvIG1ha2UgdXNlIG9mIHRoZQogICAgIHRyYW5zcG9ydCBiZWZvcmUgaXQgY2xvc2VzLgogICAKMjAwMS0wMy0wNiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIG1pbm9yIEFQSSBjaGFuZ2VzIHRvIHRoZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWwgaGFuZGxpbmcuCiAgIAoyMDAxLTAzLTA1IDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm9wZXJseSByZXNwZWN0IHRoZSBET05UX1BST0JFX0ZMQUcuCiAgIAoyMDAxLTAzLTA1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmggLCBzbm1wX3NlY21vZC5oOgoKICAgYWRkIGEgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSB2MyBidWlsZCByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDUgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHByb3Blcmx5IGhhbmRsZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kdWxlcwogICAKMjAwMS0wMy0wNSAxNDo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgbWtkaXIgc25tcGxpYiBiZWZvcmUgY3JlYXRpbmcgYSBmaWxlIGluIGl0CiAgIAoyMDAxLTAzLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLCBhcHBzL3NubXB0cmFwZC5jCiAgICwgc25tcGxpYi8uY3ZzaWdub3JlICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2FwaS5oICwKICAgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB1c20uaCAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIGF1dGhvcnMgbGlzdC4KICAgCjIwMDEtMDMtMDUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmg6CgogICBDb21tZW50IHJlLWFycmFuZ2luZyB0byBhY3R1YWxseSBiZSBuZWFyIHRoZSBmdW5jdGlvbnMgdGhleSdyZSBkZXNjcmliaW5nLgogICAKMjAwMS0wMy0wNSAwNjoxMCAgamJwbgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgZ2V0X215YWRkcigpIGZ1bmN0aW9uIHRvIGNvcGUgbW9yZSBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycwogICBvZiBpbnRlcmZhY2VzLCBhbmQgd2l0aCB0aGUgcG9zc2liaWxpdHkgb2Ygbm9uLUlQdjQgYWRkcmVzc2VzIG9uIHNvbWUKICAgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZAogICBtZW1vcnkgcmVhZHMuICBVc2UgIm9mZmljaWFsIiBkZWZpbml0aW9uIG9mIElOQUREUl9MT09QQkFDSy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL1JFQURNRS5taWJzOgoKICAgZmlsZSBSRUFETUUubWlicyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBmaWxlIHJmY21pYnMuZGlmZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAxIDE5OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jICwgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTI4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAsIHJlYWRfY29uZmlnLmggLAogICBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWcoY2hhciAqbGluZSkgdG8gcGFyc2UgYSAuY29uZiBjb25maWd1cmF0aW9uCiAgICAgbGluZSBhdCBhbnkgdGltZSBpbiB0aGUgY29kZSAoaGFuZGxlcnMgbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBoYW5kKS4KICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZ19yZW1lbWJlcihjaGFyICpsaW5lKSB0byBtZW1vcml6ZSBpdCBmb3IKICAgICBsYXRlciB1c2UuCiAgIC0gcmVhZF9jb25maWdzLCBldCBhbCwgd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgdGhlbSBhZnRlciByZWFkaW5nCiAgICAgZXZlcnl0aGluZyBlbHNlLgogICAtIEFkZGVkIGEgLVkgZmxhZyB0byBzbm1wX3BhcnNlX2FyZ3MgdG8gc3RvcmUgcmVhZCBjb25maWcgZGlyZWN0aXZlcwogICAgIGZvciBsYXRlciB1c2UsIHRodXMgYWxsb3dpbmcgeW91IHRvIHNwZWNpZnkgLmNvbmYgZGlyZWN0aXZlcyBvbiB0aGUKICAgICBjb21tYW5kIGxpbmUuCiAgIAoyMDAxLTAyLTI3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEF2b2lkIGluZmluaXRlIGxvb3Agd2l0aCBBZ2VudFggc3ViYWdlbnRzIGFuZCBWQUNNIGNoZWNraW5nIGludGVyYWN0aW9uLgogICAoRml4IHByb3ZpZGVkIGJ5IEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAxLTAyLTIxIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdWNkLXNubXAtaW5jbHVkZXMuaCAoVjQtMi1wYXRjaGVzLjEpLAogICB1Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzODA1IGZyb20gYmNvbGxhcjogYWRkIHN5cy90aW1lLmggdG8gdWNkLXNubXAtaW5jbHVkZXMuaAogICAKMjAwMS0wMi0yMSAxNToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogdmFyX3N0cnVjdC5oIChWNC0yLXBhdGNoZXMuMSksIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gaW5jcmVhc2UgVUNEX1JFR0lTVFJZX09JRF9NQVhfTEVOIHRvIDEyOCBhdCBGcmFuaydzIHJlcXVlc3QKICAgCjIwMDEtMDItMTYgMDQ6MTYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgQ2hhbmdlIGJlaGF2aW91ciBvbiBjeWd3aW4gdG8gZXhjbHVkZSBVbml4IGRvbWFpbiB0cmFuc3BvcnRzIGJ5IGRlZmF1bHQKICAgb24gY3lnd2luLCBhbmQgYWxzbyBmaXggYSBtaW5vciBidWcsIHRoYW5rcyB0byBzdWdnZXN0aW9ucyBieSBQZXRlciBGb2xrLgogICAKMjAwMS0wMi0xNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTIgMTQ6MTEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhZGRlZCBLYXJsJ3MgcGF0Y2ggZm9yIHVzZW51bWVyaWMKICAgCjIwMDEtMDItMTIgMTM6NTQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QgLCBTTk1QLnBtICwgU05NUC54cyAsCiAgIGV4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbDoKCiAgIGFkZGVkIHRyYXAgcmVjZXB0aW9uIEFQSSBmcm9tIFBoaWxpcCBQcmluZGV2aWxsZSA8cGhpbGlwcEBjaXNjby5jb20+CiAgIAoyMDAxLTAyLTExIDA4OjIzICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9hZGQgbm90IHNubXBfc2Vzc19hZGQgKHRoZSBsYXR0ZXIgZG9lc24ndCBhZGQgYSBzZXNzaW9uIHRvCiAgIHRoZSBTZXNzaW9uIGxpc3QsIGFuZCBpdCB0aGVyZWZvcmUgd29uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBzZWxlY3QoKQogICBmZHNldCwgaGVuY2Ugc25tcHRyYXBkIHdpbGwgbmV2ZXIgcmVjZWl2ZSB2ZXJ5IG11Y2gpLgogICAKMjAwMS0wMi0xMSAwODoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBpbXByb3Blcmx5LXRlcm1pbmF0ZWQgbGlzdCBpbiBjb20yc2VjIGhhbmRsaW5nLgogICAKMjAwMS0wMi0xMSAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ2xlYW4gdXAgbWVyZ2UgKD4+Pj4+PiwgPT09PT09IGV0Yy4gbGVmdCBiZWhpbmQpLgogICAKMjAwMS0wMi0xMCAwOToyNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwby4KICAgCjIwMDEtMDItMTAgMDk6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfYWRtaW4uYyAsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcElQWERvbWFpbi5oICwgc25tcFRDUERvbWFpbi5jCiAgICwgc25tcFRDUERvbWFpbi5oICwgc25tcFVEUERvbWFpbi5jICwKICAgc25tcFVEUERvbWFpbi5oICwgc25tcFVuaXhEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmgKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oICwgbXRlT2JqZWN0c1RhYmxlLmMKICAgLCBtdGVPYmplY3RzVGFibGUuaCAsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwgbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuaCAsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYwogICAoVjQtMi1wYXRjaGVzLlsxLDRdKSwgbWVtb3J5X2ZyZWVic2QyLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wOSAxMDoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jCiAgICwgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXAuYwogICAsIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FsYXJtLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIEFwcGxpZWQgcGF0Y2ggMTAzNTEwOiBkb21haW4gdHJhbnNwb3J0IGluZGVwZW5kZW5jZS4gIE5vdGU6IFRyYXBzL1ZBQ00gYnJva2VuLgogICAKMjAwMS0wMi0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQgLCBUMDAyc25tcHYxZ2V0bmV4dCAsCiAgIFQwMDNzbm1wdjFnZXRmYWlsICwgVDAxNHNubXB2MmNnZXQgLCBUMDE1c25tcHYyY2dldG5leHQKICAgLCBUMDE2c25tcHYyY2dldGZhaWwgLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsICwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCAsIFQwMjBzbm1wdjNnZXQgLAogICBUMDIxc25tcHYzZ2V0bmV4dCAsIFQwMjJzbm1wdjNnZXRNRDUgLAogICBUMDIzc25tcHYzZ2V0TUQ1REVTICwgVDAyNHNubXB2M2dldFNIQTEgLAogICBUMDI1c25tcHYzZ2V0U0hBREVTICwgVDAyOHNubXB2M2dldGZhaWwgLAogICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uICwgVDA1M2FnZW50djF0cmFwICwKICAgVDA1NGFnZW50djJjdHJhcCAsIFQwNTVhZ2VudHYxbWludHJhcCAsCiAgIFQwNTZhZ2VudHYyY21pbnRyYXAgLCBUMDU4YWdlbnRhdXRodHJhcCAsIFQxMDBhZ2VudGh1cAogICAsIFQxMTBhZ2VudHhnZXQgLCBUMTExYWdlbnR4c2V0ICwgVDExMmFnZW50eHNldGZhaWwKICAgLCBUMTEzYWdlbnR4dHJhcCAsIFQxMjBwcm94eWdldCAsIFQxMjFwcm94eXNldAogICAsIFQxMjJwcm94eXNldGZhaWw6CgogICB1cGRhdGVkIG1vc3QgdGVzdHMgdG8gdXNlIG51bWVyaWMgT0lEcyBzbyBhcyB0byBub3QgcmVseSBvbiBtaWIgcGFyc2luZwogICAKMjAwMS0wMi0wOSAwNzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgcmVtb3ZlIHVudXNlZCBwcm90b3R5cGU6IGdldF9hZ2VudHhfdHJhbnNJRAogICAKMjAwMS0wMi0wOCAxNDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4gLCBsb2NhbC90cmFwdG9lbWFpbCAsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIHRyYXB0b2VtYWlsIHBlcmwgc2NyaXB0IGNyZWF0ZWQgYXMgYW4gZXhhbXBsZSB0cmFwaGFuZGxlIHNjcmlwdAogICAKMjAwMS0wMi0wOCAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLAogICBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X3RyYXAuYyAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oICwgYXBwcy9zbm1wZGVsdGEuYwogICAsIGFwcHMvc25tcHNldC5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdmFjbS5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsCiAgIGxvY2FsL21pYjJjICwgbWFuL3NubXBjbWQuMSAsIG1pYnMvUk1PTi1NSUIudHh0ICwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwgcGVybC9TTk1QL1NOTVAucG0gLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNZXJnZSBmcm9tIFY0LTItcGF0Y2hlczogbWVyZ2UgMS0+MgogICAKMjAwMS0wMS0zMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMgKFY0LTItcGF0Y2hlcy4xKSwgZGlzay5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNDE0OiBmaXggZGlzayBpbmZvIGZvciBibG9jayBzaXplcyBvdGhlciB0aGFuIDEwMjQuCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICB1c2Ugc25tcF9lbnVtJ3MgcHJvcGVybHkgKHN0cmR1cCgpIHRoZSBzdHJpbmdzIGZpcnN0KQogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jICwgc25tcF9lbnVtLmg6CgogICBwcm9wZXIgY29uc3RuZXNzIGZvciBzb21lIG9mIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAxLTMwIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYnVnIEkganVzdCBpbnRyb2R1Y2VkIChyZXR1cm5pbmcgcHJvcGVyIHNhdmV0byBwb2ludGVyKQogICAKMjAwMS0wMS0zMCAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtIHNubXBzZXRzIGFyZSBzdXBwb3J0ZWQKICAgICAtIEEgbmV3ICJzZXQiIGJ1dHRvbiBoYXMgYmVlbiBhZGRlZCB0byBwZXJmb3JtIHNldHMgb24gYW4gb2lkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gYSB0YWJsZSBhcmUgbm93IGJ1dHRvbnMgdGhhdCBicmluZyB1cCB0aGUKICAgICAgIHNldCB3aW5kb3cgd2l0aCB0aGUgY3VycmVudCB2YWx1ZSBpbnN0YXRlZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIHRoZSBvdXRwdXQgb2Ygc25tcHtnZXQsd2FsayxnZXRuZXh0fQogICAgICAgYnV0dG9ucyBhcmUgZGlzcGxheWVkIGFzIGJsdWUgYW5kIGFyZSBjbGlja2FibGUgdG8gY2hhbmdlIHRoZWlyCiAgICAgICB2YWx1ZXMuCiAgIC0gc2V0dGluZ3MgY29uZmlndXJlZCB2aWEgdGhlIG9wdGlvbnMgbWVudSBjYW4gbm93IGJlIHNhdmVkLgogICAtIHVzZSBHZXRvcHQ6OlN0ZCBub3cuCiAgIC0gc3VwcG9ydHMgbW9zdCBvZiB0aGUgaW1wb3J0YW50IHNubXBjbWQoMSkgZmxhZ3MgZm9yIHNlc3Npb24gc2V0dXAuCiAgIAoyMDAxLTAxLTMwIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCAsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oICwKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLCBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJUYWJsZS5jICwgbXRlVHJpZ2dlclRhYmxlLmggLAogICBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgSW1wbGVtZW50ZWQgZ2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpIGFuZCBzZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCk6CiAgICAgLSBUaGVzZSBhbGxvdyBhIG1pYiBtb2R1bGUgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQKICAgICAgIGFnZW50X3NubXBfc2Vzc2lvbiBwb2ludGVyIGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KICAgICAtIFRoaXMgc2hvdWxkIHByb2JhYmx5IGRvbmUgZGlmZmVyZW50bHkgbGF0ZXIgd2hlbiB3ZSBjaGFuZ2UgdGhlIG1pYgogICAgICAgbW9kdWxlIGFwaS4KICAgICAtIFRoaXMgd2lsbCBjb21wbGV0ZWx5IGZhaWwgdG8gd29yayBwcm9wZXJseSBpbiBhIG11bHRpLXRocmVhZGVkCiAgICAgICBhZ2VudCAod2hpY2ggd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW55d2F5KS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYXQgaW5pdGlhbGl6YXRpb24gdGltZS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHByb3Blcmx5IG1hbGxvYyBhIDEgYnl0ZSwgTlVMTCBjaGFyYWN0ZXIgc3RyaW5nIGZvciAiIiByZWFkIHN0cmluZ3MuCiAgIAoyMDAxLTAxLTI5IDExOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMgLCBoZWFkZXJfY29tcGxleC5oOgoKICAgZGF0YSBzZXBlcmF0aW9uIGFuZCBuZXcgZnVuY3Rpb25zOgogICAgIGhlYWRlcl9jb21wbGV4X2dldF9mcm9tX29pZCgpCiAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGFfYnlfb2lkKCkKICAgCjIwMDEtMDEtMTIgMDg6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQ6CgogICAtIERJU01BTi1FVkVOVC1NSUIgYWRkZWQgdG8gbWliIHJlcG9zaXRvcnkuIChPciwgZ3Vlc3Mgd2hhdCBJIGRpZCBkdXJpbmcgYSA2IGhvdXIgcGxhbmUgZmxpZ2h0PykKICAgCjIwMDEtMDEtMTIgMDg6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBiaXQgc3RyaW5ncwogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gbmV3IGRhdGEgdHlwZXMgc3VwcG9ydGVkIGZvciByZWFkX2NvbmZpZyByb3V0aW5lczogdW5zaWduZWQsIGJpdF9zdHIuCiAgIAoyMDAxLTAxLTEyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtb3ZlIGNvbmZpZyBzdHJpbmcgaW5pdGlhbGl6ZXIgYWJvdmUgc3ViYWdlbnQgY2hlY2sgc28gaXRzIGtub3duIGV2ZW4KICAgaWYgbm90IHVzZWQuCiAgIAoyMDAxLTAxLTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgbWliMmMuc3RvcmFnZS5jb25mICwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGRzX2FnZW50LmggLCB2YXJfc3RydWN0LmggLCBtaWJncm91cC9taWJpbmNsLmggLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICBTdWJBZ2VudCBwaW5nIHN1cHBvcnQ6CiAgICAgLSBhZ2VudHhQaW5nSW50ZXJ2YWwgc3BlY2lmaWVzIFNFQ09ORFMgYmV0d2VlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgICAgdHJpZXMgdG8gcGluZyB0aGUgbWFzdGVyIGFnZW50LgogICAgIC0gaWYgbm8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIGl0IHRyaWVzIHRvIHJlY29ubmVjdC4KICAgICAtIGZhaWxpbmcgdGhhdCBpdCB0cmllcyBldmVyeSBTRUNPTkRTIGFnYWluIHRpbGwgaXQgc3VjY2VlZHMuCiAgICAgLSByZS1yZWdpc3RlcnMgaXRzIG9pZCdzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN1YnRyZWUgbGlzdC4KICAgICAgIC0gbWF5IG5lZWQgc29tZSB0aG91Z2h0LiAgQXNzdW1lcyAqYWxsKiBuZWVkIHRvIGJlIHJlLXJlZ2lzdGVyZWQuCiAgICAgICAtIG5lZWRzIHRvIHJlLXJlZ2lzdGVyIHN5c29ydGFibGUgZW50cmllcyB0b28sIGJ1dCBkb2Vzbid0LgogICAgIC0gY3VycmVudGx5IHNlZy1mYXVsdHMgb24gYWJvdXQgdGhlIDItNHRoIHRpbWUgb3Igc28uICBOb3Qgc3VyZSB3aHkuCiAgICAgLSBTaG91bGQgbWFrZSBEYXZlIHNtaWxlIG9yIGNyaW5nZSBvciBnaWdnbGUsIG5vdCBzdXJlIHdoaWNoLgogICAKMjAwMS0wMS0wOSAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMgLCBjYWxsYmFjay5oOgoKICAgQWxsb3cgZGVyZWdpc3RlcmluZyBvZiBjYWxsYmFja3MKICAgCjIwMDEtMDEtMDkgMDY6MjAgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0Lzogc25tcG5ldHN0YXQuZHNwIChWNC0yLXBhdGNoZXMuMSksCiAgIHNubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDQgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYyAsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAgICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwICwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiAgICwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSBtZXJnZWQgcGF0Y2hlcyBmcm9tIFY0LTItcGF0Y2hlcyBicmFuY2ggdG8gbWFpbiBicmFuY2guCiAgIAoyMDAxLTAxLTA0IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmICwgbWFuL3NubXBjbWQuMSAsIHNubXBsaWIvbWliLmM6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCAsIG1pYi5jOgoKICAgUGF0Y2ggIzEwMzA5MSBhcHBsaWVkOgogICAgIC0gQWRkZWQgLU9UIG9wdGlvbiB0byB2aWV3IGhleCBzdHJpbmdzIHdpdGggdGV4dCBpbiB0aGVtLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZmlsZSBUMDU2YWdlbnR2MmNtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwOgoKICAgZmlsZSBUMDU1YWdlbnR2MW1pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yMiAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggdmlldyBwcm9jZXNzaW5nIHRvIHdhdGNoIGZvciBsZW5ndGggcHJlZml4LiAgVGhlIGxlbmd0aCBwcmVmaXgKICAgcmVhbGx5IHJlYWxseSBzaG91bGRuJ3QgYmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvaWQuICBOaWVscz8KICAgCjIwMDAtMTItMTkgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtYWtlIGluaXRfc25tcHYzKCkgZGVhbCB3aXRoIGEgTlVMTCBhcmd1bWVudCBwcm9wZXJseS4KICAgCjIwMDAtMTItMTggMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogcmVtb3ZlIHBhc3N0ZXN0IGZyb20gdGhlIC5jdnNpZ25vcmUgZmlsZSAoYnVnICMxMjY5NCkKICAgCjIwMDAtMTItMTggMTA6NDUgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgU05NUC5wbToKCiAgIG1pbm9yIGRvYyBmaXgKICAgCjIwMDAtMTItMTQgMTM6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogZml4IHVwdGltZSBmb3IgNjQtYml0IFNvbGFyaXMKICAgCjIwMDAtMTItMTQgMTM6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggc3R1cGlkIHNwZWxsaW5nIGVycm9yCiAgIAoyMDAwLTEyLTEzIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IGNvbmZ1c2lvbiBiZXR3ZWVuIGludCwgc2l6ZV90LCBsb25nIGZvciA2NC1iaXQgY29tcGlsZXMuCiAgIAoyMDAwLTEyLTEzIDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBzbm1wY29uZi4xCiAgIAoyMDAwLTEyLTA4IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAsIGhyX3BhcnRpdGlvbi5jOgoKICAgLSBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jOiBmaXggc29tZSB6ZXJvIGluZGV4IHZhbHVlcy4KICAgCjIwMDAtMTItMDggMTQ6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IGZpeCByZXR1cm5zIG9mIHplcm9Eb3RaZXJvIChzdWNoIGFzIGlmU3BlY2lmaWMpCiAgIAoyMDAwLTEyLTA4IDE0OjM4ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwZC5jOiBzZWN1cml0eSBtb2RlbCB2YWx1ZXMgYXJlIG5vdCB0aGUgc2FtZSBpcyBzbm1wIHZlcnNpb24gdmFsdWVzCiAgIAoyMDAwLTEyLTA2IDE0OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IExpbnV4IGtlcm5lbCAyLjAueCBoYXMgbm8gQVJQSFJEX0hJUFBJCiAgIAoyMDAwLTEyLTA1IDA3OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRml4IHJzbm1wJ3MgL3Vzci9sb2NhbCBoYXJkY29kZWQgcGF0aC4KICAgCjIwMDAtMTItMDQgMTc6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWw6CgogICAtIChUMTEyYWdlbnR4c2V0ZmFpbCk6IGZpeAogICAKMjAwMC0xMi0wNCAxNjozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMyAtPiBWNC4yLjQKCQoyMDAyLTA0LTA0IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIHBhdGNoIGZyb20gUGV0dGVyIExhcnNlbiB0byBhZGQgYSBmdW5jdGlvbiBmb3IgZXh0cmFjdGluZyB0aGUgZmQgYXNzb2NpYXRlZCB3aXRoIGEgc2Vzc2lvbgogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRlYWwgd2l0aCBmZCB1bnJlZ2lzdHJhdGlvbnMgcHJvcGVybHkuCiAgIAoyMDAyLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMyApCiAgIAoyMDAyLTA0LTAyIDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgQXBwbHkgcGF0Y2ggIzUxNTU3NyB0byBmaXggb25lIGNhc2Ugb2YgYSByZWdpc3RyeSBwcm9ibGVtLgogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBzL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI4IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIGZvciBwYXNzIG1vZHVsZXMuICBQYXRjaCAjNDgyMDA1CiAgIAoyMDAyLTAzLTI4IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNTE3MzQwOiBmcmVlYnNkNSBzdXBwb3J0CiAgIAoyMDAyLTAzLTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGJ1ZyAjNTI1ODQ0LiAgcGVybCBTTk1QIHdhcyB1c2luZyBhIHRyYXAgYWRkcmVzcyBvZiAwLjAuMC4wLgogICAKMjAwMi0wMy0yOCAyMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYSBmZXcgbmV3IGVudHJpZXMgKG1vc3RseSByZWxhdGluZyB0byB0cmFwcykKICAgCjIwMDItMDMtMjcgMDE6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGVuYWJsZSBkaXNraW8gb24gZnJlZWJzZDUuICBJbXBsZW1lbnRzIHBhdGNoIDUxNzMyOCBpbiBhIGRpZmZlcmVudCB3YXkuCiAgIAoyMDAyLTAzLTI2IDA3OjQ0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAvZXRjL2ZpbGVzeXN0ZW1zIHRvIGxpc3Qgb2YgbW91bnQgdGFibGUgZmlsZXMgKGZvciBBSVgpCiAgIFNob3VsZCBmaXggYnVncyAyMzI1ODggYW5kICg/KTUxNzExMwogICAKMjAwMi0wMy0yNiAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo1MCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgYWdlbnQgbGlicmFyaWVzIHdoZW4gY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBETExJQlMgaXMgbm90IGFzIHN1aXRhYmxlIGFzIEFHRU5UX0xJQlMgZm9yIHRoaXMKICAgKHNlZSB0aGUgZXF1aXZhbGVudCBwYXRjaCBvbiB0aGUgbWFpbiBicmFuY2gpLCBidXQgaXQgc2hvdWxkIGRvLgogICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGZpeCBidWcjNTIwNDc4IHNob3dNaWJFcnJvcnMgdG9rZW4gaXMgaW52ZXJ0ZWQKICAgCjIwMDItMDMtMjUgMTg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGZpeCBidWcjNTAyMTIzIGFnZW50eCBpbmZpbml0ZSBsb29wLgogICAKMjAwMi0wMy0yNCAwNToxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFJlc3RyaWN0IGhyU1dSdW5QYXJhbXMgcmV0dXJucyB2YWx1ZXMgdG8gMTI4IG9jdGV0cwogICAKMjAwMi0wMy0yNCAwNTowNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIxIDA3OjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgIzUzMjY5NiBmaXhpbmcgcnBtIGZvciBuZXdlciBycG0gdmVyc2lvbnMKICAgCjIwMDItMDMtMjAgMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMTkgMDI6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICAgIC0gcGF0Y2ggZnJvbSBKb3NodWEgR2lsZXMgdG8gaW5jcmVhc2UgdGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aAogICAgICAgKCM1Mjc2NTApLgogICAKMjAwMi0wMy0xOCAxNDozOCAgbmJhCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIG1pc3NpbmcgZXhwb3J0cyBmb3IgVkMrKyBidWlsZAogICAKMjAwMi0wMy0xOCAxMzoyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFByb3BlciB0ZXN0IGZvciBzdWNjZXNzZnVsIG9wZW4gb2YgRVRDX01OVFRBQgogICAKMjAwMi0wMy0xOCAxMzowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBGaXggaW50ZXJjaGFuZ2VkIHBhcmFtZXRlcnMgZm9yIHN0cm5jcHkKICAgCjIwMDItMDMtMTggMDg6NTEgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIEFwcGx5IERPUy10eXBlIGxpbmUgZW5kaW5ncyB0byB0aGUgRFNXL0RTUCBmaWxlcy4KICAgCjIwMDItMDMtMTggMDg6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgVXNlIHRoZSBzYW1lIHZhcmlhYmxlIG5hbWUgZm9yIG91dHB1dCBidWZmZXIgYW5kIHNpemUgY2FsY3VsYXRpb24uCiAgIAoyMDAyLTAzLTE4IDA1OjM5ICBqYnBuCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIHMvaHB1eC5oOgoKICAgICAtIGNvbW1pdCBKb2hhbm5lcydzIHVwZGF0ZSB0byB0aGUgSFBVWC0xMSBwYXRjaAogICAKMjAwMi0wMy0xOCAwMjozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZXh0ZW5kIHRjcF93cmFwcGVycyBzdXBwb3J0IHRvIEFnZW50WC4gIFRoaXMgbWFrZXMgaXQgbW9yZQogICAgICAgcmVhc29uYWJsZSB0byBpbXBsZW1lbnQgYSBkaXN0cmlidXRlZCBzdWJhZ2VudCBhcmNoaXRlY3R1cmUKICAgICAgIHdpdGhvdXQgbWFzc2l2ZSBzZWN1cml0eSB3b3JyaWVzLgogICAKMjAwMi0wMy0xNCAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGRvbnRfcHJvYmUgYnVnIHBvaW50ZWQgb3V0IGJ5IFN0ZWZhbiBBZXNjaGJhY2hlci4KICAgCjIwMDItMDMtMTMgMTg6NTggIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDbGFyaWZ5IHVuc2lnbmVkIGNoYXIgYXJndW1lbnQgZm9yIHRoZSBub2lzeSBvciBjb25mdXNlZCBjb21waWxlci4KICAgCjIwMDItMDMtMTMgMTg6NDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgcXVlbGwgc2V2ZXJhbCB3YXJuaW5ncyBhYm91dCBzaWduZWQgdnMgdW5zaWduZWQgY29tcGFyaXNvbnMuCiAgIAoyMDAyLTAzLTEzIDE4OjQ0ICBzbGlmCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgdG8gcmVzdG9yZSBidWlsZGluZyBlaXRoZXIgRGVidWcgb3IgUmVsZWFzZSB0YXJnZXRzLgogICAKMjAwMi0wMy0xMyAxODo0MyAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHRyYWNrIGNoYW5nZSBzZXRlbnYgLS0+IHNubXBfc2V0ZW52CiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYSBkZXNjcmlwdGlvbiBvZiAidW5saW5rZWQgT0lEcyIuCiAgIAoyMDAyLTAzLTEyIDIwOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIFBhdGNoIGZyb20gZGFuaWVsIFN1bGx5IHRvIGltcHJvdmUgc29sYXJpcyBzd2FwIGluZm8KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0aW5nIG9mIHRoZSBGQVEgcmVhZHkgZm9yIHRoZSBuZXh0IHJlbGVhc2UuCiAgIChNb3N0bHkgcmVwaHJhc2luZyBvZiBleGlzdGluZyBlbnRyaWVzLCBidXQgYSBmZXcgbmV3IHF1ZXN0aW9ucykKICAgCjIwMDItMDMtMTEgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYywKICAgc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBiZXR0ZXIgcHJpbnRpbmcgYXBpcwogICAKMjAwMi0wMy0xMSAxMDowNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IGFwaSBpbiBhIGNvbW1lbnQgKGhvdyBwaWNreSBhbSBJPykKICAgCjIwMDItMDMtMTEgMDc6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA1OjE2ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMCAxNDowNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmg6CgogICBPb3BzIC0gZm9yZ290IHRvIHJlbW92ZSB0aGUgI2lmZGVmIGZvciB1bnNhZmUgc3ByaW50XyogZnVuY3Rpb25zIGRlY2xhcmF0aW9ucwogICAKMjAwMi0wMy0xMCAxMzo1NCAgbmJhCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIEZpeCB1cCBvdXQtb2Ytb3JkZXIgZXJyb3IgbWVzc2FnZQogICAKMjAwMi0wMy0xMCAxMzo0NCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBEb24ndCBkaWUgb24gdjIgZXhjZXB0aW9ucwogICAKMjAwMi0wMy0xMCAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfZGVidWcuYzoKCiAgIFJlbW92ZSBzb21lIGNhbGxzIHRvIG9sZCBzcHJpbnRfKiBmdW5jdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgQWRkIHNucHJpbnRfKiByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGFsbCBzcHJpbnRfKiBmdW5jdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6MzggIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgRG9jdW1lbnQgc25wcmludF97b2JqaWQsdmFyaWFibGUsdmFsdWV9CiAgIAoyMDAyLTAzLTEwIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgaW5jbHVkZSB0aGUgc25wcmludGYgY291bnRlcnBhcnRzIGZyb20gdGhlIDUuMCBjb2RlLgogICAKMjAwMi0wMy0wOCAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZWRlZmluZSBhIHZhcmlhYmxlIG9uIGZyZWVic2QgZm9yIDIuMi41CiAgIAoyMDAyLTAzLTA4IDE3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgYSBicm9rZW4gZml4IEkgYWNjaWRlbnRpY2FsbHkgY29tbWl0dGVkCiAgIAoyMDAyLTAzLTA4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCBmcm9tIE1paGFpbCBCYWxpa292IHRvIHN1cHBvcnQgdXAgYnV0IG5vIGlwIGludGVyZmFjZXMuCiAgIAoyMDAyLTAzLTA4IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgYWNsb2NhbC5tNDoKCiAgIHBhdGNoIGZyb20gUGF1bCBSYXNtdXNzZW4gdG8gZml4IC0tZW5hYmxlLXNoYXJlZAogICAKMjAwMi0wMy0wOCAxNjo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvbGQgcGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzIHRvIGZpeCBjNjRzIGluIHBlcmwKICAgCjIwMDItMDMtMDggMTQ6NTMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIDEwMDAgbGluZXMgb2YgZHVwbGljYXRlIGNvZGUgYnkgdXNpbmcgdGhlIHNwcmludF9yZWFsbG9jXyogZnVuY3Rpb25zCiAgIGluIHRoZSBpbXBsZW1lbnRhaW9uIG9mIHRoZSBub24tcmVhbGxvYyBjb3VudGVycGFydHMuCiAgIAoyMDAyLTAzLTA4IDE0OjUxICBuYmEKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgUmVtb3ZlIGxhc3Qgc3ByaW50X25vbnJlYWxsb2MgY2FsbHMKICAgCjIwMDItMDMtMDcgMDM6MjAgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMzoKCiAgICAgLSBwYXRjaCBmcm9tIEd1eSBIYXJyaXMgdG8gZGVzY3JpYmUgbmV3IG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDI6NTggIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBkZWNsYXJlIHRoZSBzcHJpbnRfcmVhbGxvY19ibGFoIGZ1bmN0aW9ucy4gIFRoYW5rcyB0byBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDAzOjE5ICBqYnBuCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAgIC0gaWdub3JlIGVycm9ycyBkb2luZyBybSAtcmYgL3RtcC9zbm1wLXRlc3QqIHdoZW4gbWFraW5nIGNsZWFuICh0aGlzCiAgICAgICBoYXBwZW5zIGFsbCB0aGUgdGltZSBvbiB0aGUgY29tcGlsZSBmYXJtIGJlY2F1c2UgZS5nLiBJIGNhbid0CiAgICAgICBkZWxldGUgV2VzJ3MgdGVzdCBkaXJlY3RvcmllcyBhbmQgaXQncyBhIG51aXNhbmNlIGJlY2F1c2UgdGhlbiB0aGUKICAgICAgIHJlc3Qgb2YgdGhlIGRpcmVjdG9yaWVzIGRvbid0IGdldCBjbGVhbmVkIHVwIHByb3Blcmx5KS4KICAgCjIwMDItMDMtMDYgMDI6MjQgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYW5vdGhlciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHByb2JsZW0gYXMgcmVwb3J0ZWQgaW4gYnVnCiAgICAgICAjNTI2MjYyLgogICAKMjAwMi0wMy0wNSAxMDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgbWlzc2VkIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBwYXRjaC4KICAgCjIwMDItMDMtMDUgMDk6NTEgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEEgbW9kaWZpZWQgcGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIgZm9yIGxvbmdlciBjb25maWd1cmUgc3RyaW5ncy4KICAgCjIwMDItMDMtMDUgMDg6MjMgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgUmV2ZXJzZSBteSBlYXJsaWVyIChib2d1cykgZml4LgogICBUaGluZ3Mgd2VyZSBmaW5lIGFzIHRoZXkgd2VyZSAtIEkgbXVzdCBiZSBjcmFja2luZyB1cC4uLi4uCiAgIAoyMDAyLTAzLTA1IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBBZGQgbWlzc2luZyAic3RhbmRhcmQiIGhlYWRlcnMsIGFuZCB0d2VhayBhIHR5cGUgc2xpZ2h0bHkuCiAgIChCYXNlZCBvbiByZXF1ZXN0cyBmcm9tIEdyZWdvcnkgVG90aCkuCiAgIAoyMDAyLTAzLTA1IDA2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIEJyaW5nIGRlY2xhcmF0aW9uIG9mICdpbml0X2FnZW50JyBpbnRvIGxpbmUgd2l0aCBjb2RlIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTA1IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjb3VwbGUgb2YgbWFsbG9jcyBhcHByb3ByaWF0ZWx5IChyZXF1ZXN0ZWQgYnkgR3JlZ29yeSBUb3RoKQogICAKMjAwMi0wMy0wNCAyMTozOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTIgKQogICAKMjAwMi0wMy0wNCAwMTo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDYXRjaCBhbmQgcmVwb3J0IGludmFsaWQgbm9kZSBzcGVjaWZpY2F0aW9ucy4KICAgKFRoaXMgb3VnaHQgdG8gYmUgaGFuZGxlZCBieSB0aGF0IHRlc3QgdGhhdCBmb2xsb3dzIGltbWVkaWF0ZWx5LCBidXQKICAgICIkU05NUDo6TUlCeyRvaWR9IiBhcHBlYXJzIHRvIHJldHVybiB0aGUgY29yZSBtaWItMiBvYmplY3QgcmVnYXJkbGVzcykKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYnVnICM1MjQ1MjkKICAgCjIwMDItMDMtMDEgMDc6MTcgIG5iYQoKICAgKiBsdG1haW4uc2gsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFB1bGwgaW4gdXAtdG8tZGF0ZSBsaWJ0b29sLCB3aGljaCBzaG91bGQgaGVscCBEYXJ3aW4KICAgCjIwMDItMDMtMDEgMDc6MTUgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBQdWxsIGluIHVwLXRvLWRhdGUgY29uZmlnIHNjcmlwdHMKICAgCjIwMDItMDItMjcgMDk6NDcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgSGFuZGxlIHZpZXdzIHRoYXQgc3BlY2lmeSBhIGZ1bGwgaW5zdGFuY2UgT0lELgogICAoU2luY2UgdGhlIGludGVybmFsbHkgc3RvcmVkIE9JRCBwcmVwZW5kcyB0aGUgbGVuZ3RoIGFzIHdlbGwsCiAgICB0aGUgYXBwYXJlbnQgbGVuZ3RoIGlzIG9uZSBncmVhdGVyIHRoYW4gaXQgcmVhbGx5IGlzKQogICAKMjAwMi0wMi0yNiAxNDoxOCAgbmJhCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgU2F2ZSBGaWxlL2xpbmUgZm9yIG1lc3NhZ2VzIGFib3V0IHVubGlua2VkIE9JRHMKICAgCjIwMDItMDItMjUgMTU6NDYgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaDoKCiAgIE1ha2Ugc3VyZSB0aGF0IHdlIGZldGNoIElBTkFpZlR5cGUtTUlCIGZyb20gdGhlIG1haW50YWluZWQgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTI1IDE1OjQ1ICBuYmEKCiAgICogbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBmb3IgUkZDIDMyMzEKICAgCjIwMDItMDItMjUgMDg6NTkgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgUkZDJ3MgaXNzdWVkIHdpdGggbWliczoKICAgMzIwMSAgIENJUkNVSVQtSUYtTUlCCiAgIDMyMDIgICBGUlNMRC1NSUIKICAgMzIzMSAgIERJU01BTi1TQ0hFRFVMRS1NSUIKICAgCjIwMDItMDItMjUgMDg6NTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIEZyZWVCU0Q0IGhhcyBuZXcgZGlzayBuYW1lcwogICAKMjAwMi0wMi0yNSAwODo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFByb3Blcmx5IGJyYWNrZXQgcnVuX2xwc3RhdCBwcm90b3R5cGUKICAgCjIwMDItMDItMjUgMDI6NDggIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIG9ubHkgY29weSB0aGUgZmlyc3QgREVTQ1JJUFRJT04gY2xhdXNlIG9mIE1PRFVMRS1DT01QTElBTkNFCiAgICAgICBzdGF0ZW1lbnRzIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsgKHNlZSBidWcgIzUyMjM2MykuCiAgIAoyMDAyLTAyLTI1IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgLAogICBNU0cwMDAwMS5iaW4gKDEuMSksIHdpbnNlcnZpY2UubWMgKDEuMSk6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NDIgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDAxOjQ5ICBqYnBuCgogICAqIEZBUSwgUkVBRE1FLndpbjMyOgoKICAgICAtIHVwZGF0ZSBjb21tZW50cyBvbiBXaW4zMiBwb3J0IGluIEZBUQogICAKICAgICAtIGRpc2N1c3Mgd2hhdCBJUEhMUEFQSS57TElCLERMTH0gaXMgYW5kIHdoZXJlIGl0IGNhbiBiZSBvYnRhaW5lZAogICAgICAgZnJvbSBpbiBSRUFETUUud2luMzIKICAgCjIwMDItMDItMjEgMDc6MDIgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDM6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAgIC0gZW1pdCBlcnJvciBvbiBvdmVyLWxlbmd0aCBwYXNzd29yZCBpbnN0ZWFkIG9mIHdyaXRpbmcgb2ZmIGVuZCBvZgogICAgICAgYnVmZmVyIChidWcgIzUyMDY0OSwgbm90ZWQgYnkgSm9obiBTZWxsZW5zKS4KICAgCjIwMDItMDItMjAgMDk6MjcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAgIC0gY2hhbmdlcyB0byBhdm9pZCBuYW1lc3BhY2UgY2xhc2ggcHJvYmxlbXMgd2l0aCBzZXRlbnYoKSB3aGljaCBhcmUKICAgICAgIGNhdXNlZCBieSBsaWJ3cmFwIHN1cHBseWluZyBhIGZ1bmN0aW9uIG9mIHRoYXQgbmFtZSBhcyB3ZWxsIGFzIHVzLgogICAKICAgICAtIGFsbCBjYWxscyBpbiB0aGUgY29kZSB0byBzZXRlbnYoKSBhcmUgcmVwbGFjZWQgd2l0aCBhIGNhbGwgdG8KICAgICAgIHNubXBfc2V0ZW52KCkuCiAgIAogICAgIC0gc25tcF9zZXRlbnYoKSBjYWxscyBzZXRlbnYoKSBpZiBzdWNoIGEgZnVuY3Rpb24gZXhpc3RzLCBvdGhlcndpc2UKICAgICAgIGl0IHNpbXVsYXRlcyB0aGUgZWZmZWN0IGJ5IGNhbGxpbmcgcHV0ZW52KCkuCiAgIAoyMDAyLTAyLTIwIDA1OjQzICBqYnBuCgogICAqIE5FV1M6CgogICAgIC0gbWVudGlvbiB0Y3Bfd3JhcHBlcnMgc3VwcG9ydCBmb3Igc25tcHRyYXBkCiAgIAoyMDAyLTAyLTIwIDA1OjQxICBqYnBuCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCBmb3Igc25tcHRyYXBkCiAgIAoyMDAyLTAyLTIwIDA1OjIwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGV4aXQgd2l0aCBhbiBlcnJvciBpZiAtLXdpdGgtbGlid3JhcCBpcyBnaXZlbiBhbmQgd2UgY2FuJ3QgZmluZCBpdAogICAKMjAwMi0wMi0yMCAwMzowMCAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0xOSAwNjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBQYXRjaCBmcm9tIEplcm9lbiBSdWlncm9rIHRvIG1lcmdlIGEgZmV3IGlmZGVmcwogICAKMjAwMi0wMi0xOSAwMTo1MSAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0Lmg6CgogICAgIC0gYWRkIGZvcndhcmQgZGVjbGFyYXRpb24gb2Ygc3RydWN0IG5saXN0IHRvIGF2b2lkIGNvbXBpbGVyCiAgICAgICBjb21wbGFpbnRzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZC4KICAgCjIwMDItMDItMTggMDg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgcGF0Y2ggZnJvbSBKZXJvZW4gUnVpZ3JvayBmb3IgbWlub3IgaWZkZWYgY2xlYW4gdXBzCiAgIAoyMDAyLTAyLTE4IDAyOjM2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDI6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gcmVtb3ZlIHRyb3VibGVzb21lIGlubGluZSBxdWFsaWZpZXJzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZCBmb3IKICAgICAgIG5vdGluZyB0aGF0IHRoZXNlIGNhdXNlIHByb2JsZW1zIG9uIEFJWC4KICAgCjIwMDItMDItMTggMDI6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgICAgLSByZW1vdmUgLy8tc3R5bGUgY29tbWVudHMuICBUaGFua3MgdG8gQW5keSBIb29kIGZvciBwb2ludGluZyB0aGlzCiAgIG91dC4KICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNSAyMjowNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTEgKQogICAKMjAwMi0wMi0xNSAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGZpeCBidWcjNTA4MTI2IHdoaWNoIGFjdHVhbGx5IGxlZCBtZSB0byBhbm90aGVyLgogICAgIC0gb2lkIHBhcnNpbmcgYW5kIHNlYXJjaGluZyBpbiBnZXRuZXh0cyBjb3VsZCBzb21ldGltZXMgbG9vcC4KICAgCjIwMDItMDItMTUgMTc6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzdXBwb3J0IC0tZGlzYWJsZS1zaGFyZWQtdmVyc2lvbiBjb25jZXB0IGZyb20gUGF1bCBSYXNtdXNzZW4uCiAgIAoyMDAyLTAyLTE1IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBkeW5peCBicm9rZSBsaW51eC4gIEJhZCBkeW5peC4gIE5vIGJvbmUuICBHbyB0byB5b3VyIHJvb20uCiAgIAoyMDAyLTAyLTE1IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgYmFjayBpbiBuZXRpbmV0L2luLmggYW5kIHN5cy90aW1lLmggKGluIHByb3BlciBwcm90ZWN0ZWQgZm9ybSkKICAgd2hpY2ggd2FzIGRlbGV0ZWQgZnJvbSA0LjIuMyBmb3Igc29tZSByZWFzb24gd2UgbmV2ZXIgZmlndXJlZCBvdXQuCiAgIAoyMDAyLTAyLTE1IDE2OjIxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUkVBRE1FOgoKICAgdXBkYXRlcyBmb3Igd2hhdCB3aWxsIGJlIDQuMi40CiAgIAoyMDAyLTAyLTE1IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgY2hlY2sgZW5kIG9mIG1pYnZpZXcgY29uZGl0aW9ucwogICAKMjAwMi0wMi0xNSAwODowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBQb3B1bGF0ZSBhbiBlbXB0eSBjYXNlIHN0YXRlbWVudCAoc3BvdHRlZCBieSBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTUgMDc6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICByZW1vdmUgdW5uZWVkZWQgLUNOIGFuZCAtQ08gZXhhbXBsZSBvcHRpb25zCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYywgc25tcGxpYi93aW5zZXJ2aWNlLmgsCiAgIHNubXBsaWIvd2luc2VydmljZS5yYywgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgU3VwcG9ydCBmb3IgcnVubmluZyBhcyBhIFdpbmRvd3Mgc2VydmljZS4KICAgKFN1cHBsaWVkIGJ5IFJhanUgS3Jpc2huYXBwYSAmIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMTQgMTE6MTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIE1ha2UgYnVmZmVyIHBvaW50ZXIgc3RhdGljIHNvIGl0IGRvZXNuJ3QgbGVhawogICAKMjAwMi0wMi0xNCAxMToxMCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIEZpeCBiYWQgcGFyYW50aGVzaXMKICAgCjIwMDItMDItMTQgMDc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggZW1haWwgYWRkcmVzcyBidWcgIzUxNzE3OAogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgQ2hlY2sgZm9yIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2YgSS9GIHRhYmxlIChwYXRjaCBmcm9tIFJlZEhhdCkKICAgCjIwMDItMDItMTQgMDE6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBJbmNsdWRlIFJlZEhhdCBwYXRjaGVzIGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQKICAgCjIwMDItMDItMTQgMDE6MzggIGR0czEyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkb3B0IFJlZEhhdCdzIGNvbmZpZ3VyZSB0ZXN0aW5nIGZvciBycG0gbGlicmFyeSByZXF1aXJlbWVudHMKICAgCjIwMDItMDItMTMgMTY6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZW5hYmxlIHNoYXJlZCBieSBkZWZhdWx0IGV4Y2VwdCBmb3IgZGV2ZWxvcGVycwogICAKMjAwMi0wMi0xMyAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIHJlbW92ZSBpbmxpbmUgZnVuY3Rpb24gZnJvbSBiZWluZyBkZWNsYXJlZCBpbiBhbm90aGVyIGZ1bmN0aW9uLgogICAKMjAwMi0wMi0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgcmVtb3ZlIGlubGluZSBmdW5jdGlvbiBmcm9tIGJlaW5nIGRlY2xhcmVkIGluIGFub3RoZXIgZnVuY3Rpb24uCiAgIAoyMDAyLTAyLTEzIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBzZXRzIG9mIHVuc2lnbmVkMzIncy4KICAgCjIwMDItMDItMTMgMDc6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEU19MSUJfUFJJTlRfU1VGRklYX09OTFkgaXMgYW4gaW50ZWdlciBvcHRpb24sIG5vdCBhIGJvb2xlYW4gZmxhZy4KICAgKEF0dGVtcHRpbmcgdG8gc2V0IHRoaXMgdmlhIHRoZSBTVUZGSVggZW52aXJvbm1lbnRhbCB2YXJpYWJsZSB3aWxsCiAgIHR1cm4gb24gcGFja2V0IGR1bXBpbmcgaW5zdGVhZCEpCiAgIAoyMDAyLTAyLTEzIDA0OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgICAgLSBmaXggYnVnICM1MTY5MDQgKHNubXBkIGRpZXMgaWYgbm8gcHJpbnRjYXAgd2l0aCBjZ2V0ZW50KSwgbm90ZWQgYnkKICAgICAgIEFub255bW91cyAtLSBjaGVjayByZXR1cm4gdmFsdWUgb2YgY2dldG5leHQoKSBwcm9wZXJseSBpbgogICAgICAgSW5pdF9IUl9QcmludCgpLgogICAKMjAwMi0wMi0xMiAwNzoxMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgICAgLSBhbWVuZCBmaXggdG8gYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIHRvCiAgICAgICBhY3R1YWxseSBhZGQgLWxuc2wgdG8gbGluayBwYXJhbWV0ZXJzIQogICAKMjAwMi0wMi0xMiAwNToyOSAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMiAwMTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBJbXBsZW1lbnQgdGhlIEJhZENvbW11bml0eXtOYW1lcyxVc2VzfSBjb3VudGVycy4KICAgCjIwMDItMDItMTEgMTA6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggYnVncyAjNDg5MzM2IGFuZCAjNTA4MTQ2IChkdXBsaWNhdGUgY29sdW1ucyBhbmQgY29sdW1ucyBpbgogICAgICAgd3Jvbmcgb3JkZXIpLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDU6MzAgIGpicG4KCiAgICogRkFROgoKICAgICAtIG1lbnRpb24gSFBVWC0xMSBhbmQgRHluaXgvUFRYIDQuNCBzdXBwb3J0LCBhbmQgc29tZSBzcGVsbGluZyBmaXhlcwogICAKMjAwMi0wMi0wOCAwNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6NDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvY2VzcyB0aGUgZnVsbCBsaXN0IG9iamVjdHMgaW4gZWFjaCBwYXNzIG9mIGEgU0VULCBldmVuIGlmIG9uZSBlbnRyeSBmYWlscwogICBtaWR3YXkgdGhyb3VnaC4gIFRoaXMgaXMgbGVzcyBlZmZpY2llbnQgdGhhbiBmYWlsaW5nIGltbWVkaWF0ZWx5LCBidXQgYnJpbmdzCiAgIHRoZSBiZWhhdmlvdXIgaW4gbGluZSB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLCBhbmQgZW5zdXJlcyB0aGF0IGFsbCByZXNvdXJjZXMKICAgd2lsbCBiZSByZWxlYXNlZC4KICAgCjIwMDItMDItMDggMDI6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJldHVybiB0aGUgY29ycmVjdCBlcnJvciBpbmRleCBmb3IgcHJvYmxlbXMgaW4gU0VUIGhhbmRsaW5nLgogICAocGF0Y2ggIzQ2NzE1NSwgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG1lbW9yeSBhbmQgc3dhcCBlbnRyaWVzIGluIGhyU3RvcmFnZVRhYmxlIGZvciBTb2xhcmlzCiAgIChmcm9tIHBhdGNoICM1MDU0OTggLSB0aGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQogICAKMjAwMi0wMi0wOCAwMjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIFJlZ2lzdGVyIElQIFJvdXRpbmcgdGFibGUgb2JqZWN0cyBhcyB3cml0YWJsZS4KICAgCjIwMDItMDItMDcgMDc6MzkgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzL2hwdXguaDoKCiAgIFN1cHBvcnQgZm9yIEhQLVVYIDExLCBjb3VydGVzeSBvZiBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAyLTAyLTA1IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNCAwMzoxNyAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3QgcHJvY2Vzc2luZyBmb3IgdGltZXRpY2tzIHdoZW4gRFNfTElCX05VTUVSSUNfVElNRVRJQ0tTIGlzCiAgICAgICBzZXQgKGNvcnJlY3RzIGJ1ZyAjNTExNzkzLCByZXBvcnRlZCBieSBBbm9ueW1vdXMpLgogICAKMjAwMi0wMS0yOCAxMjo1MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWlycm9yIHNlY3Rpb24gdXBkYXRlCiAgIAoyMDAyLTAxLTI4IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICB3YXJuaW5nIGFkZGVkIGFib3V0IHNlbmRfdHJhcF92YXJzIGFuZCBlbnRlcnByaXNlIG9pZCB1c2VkLgogICAKMjAwMi0wMS0yNSAwNjoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjQgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgcy9haXguaDoKCiAgIEFJWCBzdXBwb3J0IGZvciBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIyIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gYmFja3BvcnQgb2YgcmVjZW50IGltcHJvdmVtZW50cyB0byBzbm1wVGFyZ2V0UGFyYW1zVGFibGUsCiAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlIGFuZCBzbm1wTm90aWZ5VGFibGUuCiAgIAoyMDAyLTAxLTIxIDA0OjIyICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHNldCBub1N1Y2hPYmplY3QgdG8gRkFMU0UgaWYgd2UgaGF2ZSBhIHZhbGlkIHdyaXRlX21ldGhvZCAodGhpcwogICAgICAgY2F1c2VzIHRoZSBjb3JyZWN0IGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSB0byBiZSBnZW5lcmF0ZWQgaWYgdGhlCiAgICAgICByZXF1ZXN0ZWQgb2JqZWN0IGRvZXNuJ3QgZXhpc3QpLgogICAKMjAwMi0wMS0yMSAwNDoyMCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMi0wMS0yMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgICAtIGJhY2twb3J0IG9mIHJlY2VudCB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUsIHZhY21BY2Nlc3NUYWJsZSBhbmQKICAgICAgIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlIGNoYW5nZXMgKGNvcnJlY3RlZCBzdGF0ZSBtYWNoaW5lcykuCiAgICAgICBCZWZvcmU6IHBhc3NlZCAyMCwgIGZhaWxlZCA4MCwgdW50ZXN0ZWQgMTEKICAgICAgIEFmdGVyOiAgcGFzc2VkIDEwNywgZmFpbGVkIDEsICB1bnRlc3RlZCAzCiAgIAogICAgICAgVGhlIHN0aWxsLWV4dGFudCBmYWlsdXJlcyBhcmUgZHVlIHRvIHRoZSBub24taW1wbGVtZW50ZWQKICAgICAgIHZhY21Db250ZXh0VGFibGUuCiAgIAoyMDAyLTAxLTE1IDEyOjQ0ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBGaXggc3R1cGlkIG1pc3Npbmcgc2l6ZW9mKG9pZCkgZmFjdG9yIGluIG1lbWNweQogICAKMjAwMi0wMS0xNSAxMjo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRG9udCB1c2Ugc3RhdGljIGJ1ZmZlciB3aGVuIHJlYWRpbmcgL3Byb2Mvc3RhdAogICAKMjAwMi0wMS0xNSAxMjo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIHMvc29sYXJpczIuNi5oLCBzL3NvbGFyaXMyLjcuaCwKICAgcy9zb2xhcmlzMi44Lmg6CgogICBGaXggaHJNYXhQcm9jZXNzZXMgZm9yIFNvbGFyaXMKICAgCjIwMDItMDEtMTUgMTI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTb21lIGFkZGl0aW9uYWwgZGVidWcgc3RhdGVtZW50cwogICAKMjAwMi0wMS0wOSAwODoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1Lmg6CgogICBBZGQgZnVuY3Rpb24gdG8gYWNjZXMgcmF3IGtzdGF0IGRhdGEKICAgCjIwMDItMDEtMDkgMDg6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFVzZSB0aGF0IHN5c2NvbmYgcmV0dXJucyBhIGxvbmcsIHRvIHNhdmUgbGFyZ2UgcGh5cyBtZW0KICAgCjIwMDItMDEtMDkgMDg6MjQgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgogICAKMjAwMi0wMS0wOSAwODoyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENhcmUgZm9yIExpbnV4IGRyaXZlcnMgdGhhdCBtYWludGFpbiBvY3RldCBjb3V0ZXJzIGFzIGxvZyBsb25nIHZhbHVlcwogICAKMjAwMi0wMS0wOSAwMjoyMCAgamJwbgoKICAgKiBGQVE6CgogICAgIC0gYWRkIE9TIFggdG8gbGlzdCBvZiBzdXBwb3J0ZWQgT1NlcywgdG8gZml4IGJ1ZyAjNTAxMTc5ICghKQogICAKMjAwMi0wMS0wMyAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgZml4IGJ1ZyAjNDk4ODA5IChJIHRoaW5rKSBieSBjaGVja2luZyBzZXRtbnRlbnQgcmV0dXJuIHZhbHVlLgogICAKMjAwMi0wMS0wMyAxMzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAxLTEyLTE4IDA4OjQ5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgICAtIGFkZCBPU1RZUEUgZGVmaW5lIGZvciB3aW4zMgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwNjo1MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBMYXRoYSBQcmFiaHUgdG8gcHJvZHVjZSBtb3JlIG1lYW5pbmdmdWwgc3lzRGVzY3IuMAogICAgICAgc3RyaW5ncyBmb3IgTWljcm9zb2Z0IHBsYXRmb3Jtcy4KICAgCjIwMDEtMTItMDUgMDc6NDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggZnJvbSBKYXNvbiBHbG91ZG9uIHRvIGZpeCBsZWFraW5nIHNlc3Npb24gc3RydWN0dXJlcyBmcm9tIHNubXBfdGltZW91dCgpLgogICAKMjAwMS0xMi0wMyAxNDo1MiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENvbXBsZXRlIHRoZSBCU0QgSVBTVEFUUyBjb25maWd1cmUgdGVzdHMsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgTW9yYWVzCiAgIChidWcjIDQ4NzcwOCkKICAgCjIwMDEtMTEtMjkgMTY6NTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIDQuMi4zIGNoYW5nZXMKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMiAtPiBWNC4yLjMKCQoyMDAxLTExLTI5IDE0OjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjMgKQogICAKMjAwMS0xMS0yOSAxMzoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNvbGFyaXMgOCByZW5hbWVkIHRoZSBrc3RhdCBpZnNwZWVkIGF0dHJpYnV0ZSB0byBpZlNwZWVkIGFuZCBzb21ld2hlcmUKICAgYWxvbmcgdGhlIGxpbmUgY2hhbmdlZCBpdHMgdmFsdWUgZnJvbSBNYnBzIHRwIGJwcwogICAKMjAwMS0xMS0yOCAxNDo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gaW1wcm92ZWQgaXJpeCBzdXBwb3J0LgogICAKMjAwMS0xMS0yOCAxNDozMSAgaGFyZGFrZXIKCiAgICogcy9pcml4Lmg6CgogICBsYXN0IGZpeGVzIGZvciBpcml4IEkgdGhpbmsKICAgCjIwMDEtMTEtMjggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNyZWF0ZSBpc2xhbmRzIGluIHRoZSBzdHJlYW0KICAgCjIwMDEtMTEtMjggMTQ6MDkgIGhhcmRha2VyCgogICAqIHMvaXJpeC5oOgoKICAgaXJpeCBmaXhlcyBmb3IgYnJva2VuIGlyaXggaGVhZGVycwogICAKMjAwMS0xMS0yNyAxNzowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICB2ZXJzaW9uIHN0YW1wICg0LjIuMy5wcmUxIChvcHBzKSkKICAgCjIwMDEtMTEtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBmaXggZm9yIHZlcnNpb24gc3RhbXBpbmcgdGhlIHBlcmwgbW9kdWxlLgogICAKMjAwMS0xMS0yNyAxNzowMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNC4yLjMKICAgCjIwMDEtMTEtMjcgMTE6MDkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIHVzZSBhdCBvd24gcmlzayBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZGVwZW5kYW5jaWVzCiAgIAoyMDAxLTExLTI3IDA2OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAgIC0gdHJ5IGhhcmRlciB0byBnZXQgaHJTeXN0ZW1NYXhQcm9jZXNzZXMuMCByaWdodCwgZHJhd2luZyBvbiBwYXRjaAogICAgICAgIzQ4NTc2NSwgc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciwgZm9yIExpbnV4LCBhbmQKICAgICAgIGFsc28gdXNpbmcgc3lzY3RsKCkgbW9yZSB3aWRlbHkuCiAgIAoyMDAxLTExLTI3IDA2OjUxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiwgcy9saW51eC5oOgoKICAgICAtIExvb2sgZm9yIDxsaW51eC90YXNrcy5oPiwgaW4gb3JkZXIgdG8gZ2l2ZSBhIGJldHRlciB2YWx1ZSBmb3IKICAgICAgIGhyU3lzdGVtTWF4UHJvY2Vzc2VzLjAuICBGcm9tIHBhdGNoICM0ODU3NjUsIHN1Ym1pdHRlZCBieQogICAgICAgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMS0xMS0yNyAwMzo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaCwgdGNwLmM6CgogICAgIC0gZ2l2ZSBjb3JyZWN0IHZhbHVlcyBmb3IgdGNwSW5FcnJzLjAgYW5kIHRjcE91dFJzdHMuMCB1bmRlciBMaW51eAogICAgICAgaWYgdGhlIGtlcm5lbCBtYWtlcyB0aGUgZGF0YSBhdmFpbGFibGUuICBGcm9tIHBhdGNoICM0ODU3NjUsCiAgICAgICBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMS0xMS0yNiAwOTo1MSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQ6CgogICAgIC0gbG9uZ2VyIHRpbWVvdXQgZm9yIGluaXRpYWwgR0VUIChmaXggc3B1cmlvdXMgdGVzdCBmYWlsdXJlcykKICAgCjIwMDEtMTEtMjEgMTA6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGhlbHAgdXBkYXRlIHRvIHJlbW92ZSB0aGUgc3VwcG9ydCBkYXRhYmFzZQogICAKMjAwMS0xMS0yMSAwNDo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAgIC0gZml4IGNvbXBpbGF0aW9uIGZvciBVbHRyaXggNC41IChidWcgIyA0MTUxOTcpIC0tIG1ha2Ugc3VyZQogICAgICAgdmZzLmZfYnNpemUgZXhpc3RzIGluIHZhcl9leHRlbnNpYmxlX2Rpc2soKSwgYW5kIGRlZmF1bHQgaXQgdG8KICAgICAgIDEwMjQuCiAgIAoyMDAxLTExLTIwIDAyOjI3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YgU05NUF9NQVhfU0VDX05BTUVfU0laRSwgbm90ZWQgYnkKICAgICAgIEthcmwgTS4gSGVnYmxvb20uCiAgIAoyMDAxLTExLTE5IDA1OjQ4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50YXRpb24gb2YgaWdub3JlZGlzayBkaXJlY3RpdmUuCiAgIAoyMDAxLTExLTE5IDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX2Rpc2suaCwgaHJfcGFydGl0aW9uLmMsCiAgIGhyX3BhcnRpdGlvbi5oOgoKICAgICAtIHBhdGNoIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIHRvIGFkZCBkaXJlY3RpdmUgImlnbm9yZWRpc2siIHRvCiAgICAgICBza2lwIGNlcnRhaW4gZGV2aWNlcyAoYW5kIGhlbmNlIGF2b2lkIHRoZSBgc25tcHdhbGsgdGltZXMgb3V0JyB0eXBlCiAgICAgICBwcm9ibGVtcyBmcmVxdWVudGx5IHJlcG9ydGVkKS4gIEFsc28gZXh0ZW5kcyBzZWFyY2ggcmFuZ2VzIHRvIGNvcGUgd2l0aAogICAgICAgbGFyZ2VyIG51bWJlcnMgb2YgZGlza3MgZXRjLgogICAKMjAwMS0xMS0xNiAwNTozMSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNiAwMzoyMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBtb3JlIGNvbnN0LW5lc3MgaW4gcXNvcnRfY29tcGFyZSA9PiBmZXdlciB3YXJuaW5ncwogICAKMjAwMS0xMS0xNiAwMjo1NCAgamJwbgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBhZGQgcHJvdG90eXBlcyBmb3IgdGltZXJTZXQoKSBhbmQKICAgICAgIHRpbWVyUGF1c2UoKS4KICAgCjIwMDEtMTEtMTYgMDI6NTIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvICNpbmNsdWRlIDxncnAuaD4gaWYgd2UgaGF2ZSBpdAogICAKMjAwMS0xMS0xNiAwMjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZXR1cm4gYSB2YWx1ZSBmcm9tCiAgICAgICBub3RpZnlUYWJsZV91bnJlZ2lzdGVyX25vdGlmaWNhdGlvbnMoKSB0byBhdm9pZCB3YXJuaW5ncwogICAKMjAwMS0xMS0xNiAwMjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1ha2Ugc2lnbmF0dXJlIG9mIHFzb3J0X2NvbXBhcmUKICAgICAgIGZ1bmN0aW9uIG1hdGNoIHRoYXQgZXhwZWN0ZWQgYnkgcXNvcnQoMykgLS0gYWRkcyBjb25zdCB0byBhcmdzLgogICAKMjAwMS0xMS0xNiAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbWFrZSBkZWZpbml0aW9uIG9mIHByaW50X3RyZWVfbm9kZQogICAgICAgc3RhdGljIHRvIG1hdGNoIGZvcndhcmQgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTExLTE1IDEwOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZml4IGJhZC1sb29raW5nIGV4cHJlc3Npb24gd2hpY2ggd2FzIGNhdXNpbmcgcHJvYmxlbXMgZGVzY3JpYmVkIGluCiAgICAgICBlbWFpbCB0aXRsZWQgIkRlZmVjdCByZXBvcnQgb24gVUNEIFNOTVAgdG9vbGtpdCAoY3Jhc2ggaW4KICAgICAgIGtlcm5lbF9zdW5vczUuYykiIHNlbnQgdG8gbmV0LXNubXAtdXNlcnMgb24gMjAwMS0wNy0xNy4KICAgCjIwMDEtMTEtMTUgMDg6MzMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjI4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDU6MTYgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTQgMTc6NTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4zLnByZTEgKQogICAKMjAwMS0xMS0xNCAxNzo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBudW1lcmljIGNvbW1lbnRzIGluIGJvdGggaGV4IGFuZCBkZWNpbWFsCiAgIAoyMDAxLTExLTE0IDE3OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY2x1ZGUgSU5URUdFUjMyIGluIElOVEVHRVIgY2FzZSBjaGVja2luZy4KICAgCjIwMDEtMTEtMTQgMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB2ZXJzaW9uIHRhZyBwZXJsL1NOTVAvU05NUC5wbSB3aXRoIHRoZSB1Y2Qtc25tcCB2ZXJzaW9uIG51bWJlci4KICAgCjIwMDEtMTEtMTQgMTY6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiBzbm1wY29uZi4KICAgCjIwMDEtMTEtMTQgMTY6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGluaXQgZnVuY3Rpb24gY2hlY2tpbmcgaW4gbW9kdWxlcwogICAKMjAwMS0xMS0xNCAxMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSBtYWtlIGEgbmV3IGNhbGxiYWNrIGZvciBwcmUtdXBkYXRlLWNvbmZpZyBjb25kaXRpb25zLgogICAtIG1ha2UgdGhlIHNubXBOb3RpZnlUYWJsZSBtYWtlIHVzZSBvZiBpdCB0byByZW1vdmUgInJlYWRPbmx5IiBlbnRyaWVzCiAgICAgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBnZW5lcmF0ZWQgdmlhIGNvbmZpZ3VyYXRpb24gcGFyc2luZy4KICAgICAtIG5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgcmVtb3ZlIHRoZSBnZW5lcmF0ZWQgdGFyZ2V0IGVudHJpZXMsIHdoaWNoCiAgICAgICBpcyBub3QgaWRlYWwsIGJ1dCBhdCBsZWFzdCBkdXBsaWNhdGUgdHJhcHMgYXJlbid0IHNlbnQuCiAgIAoyMDAxLTExLTEzIDExOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBsb29rIGZvciBlcmkgaW50ZXJmYWNlcy4KICAgCjIwMDEtMTEtMTMgMDU6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTIgMjM6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jOgoKICAgTVMgQysrIHdhcm5pbmcgZml4ZXMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbAogICAKMjAwMS0xMS0xMSAyMTo0OCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVzdG9yZSB0aGUgb2xkIHZhbHVlIG9kIFRJTUVfV0lUSF9TWVNfVElNRQogICAKMjAwMS0xMS0wOSAxMjoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgQWRkZWQgYSBnZXJtYW55IGJhc2VkIG1pcnJvcgogICAKMjAwMS0xMS0wOSAxMToyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWVudGlvbiBuZXcgbWlycm9yCiAgIAoyMDAxLTExLTA5IDExOjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICBhcHBsaWVkIGVuZ2xpc2gvdHlwby9jaGFuZ2VzIG5vdGVkIGluIGJ1ZyAjNDcxMTc5CiAgIAoyMDAxLTExLTA5IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnIDQ3OTM2NTogdXNlIHN0cm5jcHkgaW4gc25tcF9hZGRfdmFyKCkuCiAgIAoyMDAxLTExLTA5IDA3OjUzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGZpeCBidWcgIzQ3NDQ4ODogYWRkIGV4dGVybiBDIHdyYXBwZXJzCiAgIAoyMDAxLTExLTA5IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBPSURzIHRvIGluY2x1ZGUgZW50cnkgbm9kZQogICAKMjAwMS0xMS0wOCAwOTo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgVU5JVCBzcGVjcyBmb3IgdGhlIGZpbGVUYWJsZSB0byBzYXkga0IgZXhwbGljaXRseQogICAKMjAwMS0xMS0wOCAwOTo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHRoYXQgdGhlIGZpbGVUYWJsZSBpcyBpbiBrQi4KICAgCjIwMDEtMTEtMDYgMDg6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIHRrbWliOgoKICAgYWRkIGZpeGVzIHRvIGNoZWNrIGZvciB0aGUgU05NUCBhbmQgVGsgcGVybCBtb2R1bGVzIGFuZCBwcmludCBhIGJldHRlcgogICBlcnJvciBtZXNzYWdlIGlmIHRoZXkncmUgbm90IGF2YWlsYWJsZSB0ZWxsaW5nIHVzZXJzIGhvdyB0byBnZXQgdGhlbS4KICAgCjIwMDEtMTEtMDYgMDg6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGFzbl9idWlsZF9iaXRzdHJpbmcgdG8gY2hlY2sgZm9yIE5VTEwgdmFsdWVzIChwb2ludGVkIG91dCBieSBUYXRhIEthbHlhbikuCiAgIAoyMDAxLTExLTA2IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGxlbmd0aCBjaGVjayBmaXhlZCBmb3Igd3JhcHBlZCBhZGRpdGlvbi4gIEJ1ZyBwb2ludGVkIG91dCBieSBUYXRhIEthbHlhbgogICAKMjAwMS0xMC0zMCAyMTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIG1ha2UgcGF0aHMgbW9yZSBjb25maWd1cmFibGUgZnJvbSB3aXRoaW4gQyBjb2RlLgogICAKMjAwMS0xMC0zMCAwNzoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0yNiAwOTowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggYWdlbnR4L2NsaWVudCAtPiBhZ2VudHgvc3ViYWdlbnQgaGVscCBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDAzOjM0ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHRoZSBmYWN0IHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbi4wIChldCBhbC4pIHZpYSBhCiAgICAgICBzeXNsb2NhdGlvbiAob3IgZXF1aXZhbGVudCkgdG9rZW4gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHksCiAgICAgICByZXR1cm5pbmcgYSBub3RXcml0YWJsZSBlcnJvciByZXNwb25zZSBpZiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8KICAgICAgIFNFVCBpdC4KICAgCjIwMDEtMTAtMjQgMTA6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIGZpeCB0eXBvIG5vdGVkIGJ5IFRpbSBEaWV0egogICAKMjAwMS0xMC0yNCAwOTo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYywgc3lzdGVtX21pYi5oOgoKICAgICAtIGltcGxlbWVudCBwZXJzaXN0ZW5jZSBmb3Igc3lzTG9jYXRpb24uMCwgc3lzQ29udGFjdC4wIGFuZCBzeXNOYW1lLjAKICAgCiAgICAgLSBwcmVzZW5jZSBvZiBhIHN5c2xvY2F0aW9uIHRva2VuIGluIHNubXBkLmNvbmYgbWFrZXMgc3lzTG9jYXRpb24uMAogICAgICAgbm9uLXdyaXRhYmxlIChyZXR1cm5zIG5vdFdyaXRhYmxlIG9uIFNFVCBhdHRlbXB0cykKICAgCjIwMDEtMTAtMjQgMDU6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsganVzdCBpbnRyb2R1Y2VkCiAgIAoyMDAxLTEwLTI0IDAzOjMzICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhdXRvY29uZiBzdXBwb3J0IGZvciBkZXRlY3RpbmcgcGtnaW5mbyBpbnRlcmZhY2UgaW4gbGliYWRtLiAgVGhhbmtzCiAgICAgICB0byBTdGVmYW4gUmFkbWFuIChwYXRjaCAjNDczNjY5KS4KICAgCjIwMDEtMTAtMjQgMDM6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMDggMTA6NTYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMSAtPiBWNC4yLjIKCQoyMDAxLTEwLTA4IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIEFwcGx5IHBhdGNoZXMgc3VnZ2VzdGVkIGluIGJ1ZyAjNDY5MDgyIHRvIGZpeCBpbGxlZ2FsIHJvdyBjcmVhdGlvbnMKICAgd2hlbiByb3dzdGF0dXMgaXMgc2V0IHRvIGRlc3Ryb3kuCiAgIAoyMDAxLTEwLTA2IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtaW5vciB0d2Vha3MgdG8gdGhlIGRvd25sb2FkIGxpc3QuCiAgIAoyMDAxLTEwLTA2IDA3OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgRGF2aWQgTGF3cmVuY2UncyB0ZXh0IGFib3V0IGNvbnRyaWJ1dGluZyBwYXRjaGVzLgogICAKMjAwMS0xMC0wNSAxODowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNiApCiAgIAoyMDAxLTEwLTA1IDE4OjAxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIENoYW5nZSBfUkVFTlRSQU5UIGRlZmluZSB0byBOU19SRUVOVFJBTlQgdG8gbm90IGNvbmZsaWN0IHdpdGggQlNEL09TIDQuMy4KICAgCjIwMDEtMTAtMDUgMTc6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzL2lyaXguaDoKCiAgIGlyaXggc3BlY2lmaWMgZml4ZXMgbWVudGlvbmVkIGluIGJ1ZyAjNDA1NDU0CiAgIAoyMDAxLTEwLTA1IDE3OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCAjNDQwODA4IHBvc3NpYmx5IG92ZXJ3cml0aW5nIGEgb2lkIGJ1ZmZlci4KICAgCjIwMDEtMTAtMDUgMTY6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICBmaXggdW5zaWduZWQzMiByZXR1cm4gdmFyaWFibGUgdXNhZ2UKICAgCjIwMDEtMTAtMDUgMTY6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBtb3ZlIGFycHRhYl9jdXJyZW50IGFuZCBhcnB0YWJfc2l6ZSBkZWZpbml0aW9ucyB1cCBvdXQgb2YgaWZkZWYgbWVzcy4KICAgCjIwMDEtMTAtMDUgMTY6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgZG9uJ3QgY3JlYXRlIHJvd3N0YXR1cyBlbnRyaWVzIHdpdGggJ2Rlc3Ryb3knIGFzIGluaXRpYWwgdmFsdWUuCiAgIAoyMDAxLTEwLTA1IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIGZpeGVkIFVORE8gY2xhdXNlcy4KICAgCjIwMDEtMTAtMDUgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIGZvciBwaWNreSBjb21waWxlcnMuCiAgIAoyMDAxLTEwLTA1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24gZm9yIHRyYXBzZXNzCiAgIAoyMDAxLTEwLTA1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBBZGRlZCBtaXJyb3Igc2l0ZXMuCiAgIAoyMDAxLTEwLTA1IDA3OjEwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogU01VWC1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgTUlCIHByb2JsZW1zIHBvaW50ZWQgb3V0IGJ5IE1hcmVrIE1hbG93aWR6aWtpCiAgIAoyMDAxLTEwLTA0IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRG9uJ3Qgd3JpdGUgYSBudWxsIHBhc3QgdGhlIGVuZCBvZiB0aGUgY29tbXVuaXR5IHN0cmluZyBidWZmZXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2V4dGVuZGluZywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaCBmcm9tIFQuIEouIE1hdGhlcjogRG9jdW1lbnRhdGlvbiBvZiB0aGUgcGFzc19wZXJzaXN0IHNubXBkLmNvbmYgdG9rZW4uCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgUGF0Y2ggZnJvbSBULiBKLiBNYXRoZXI6IEFuIGV4YW1wbGUgKHBlcmwpIHBhc3NfcGVyc2lzdCBzY3JpcHQuCiAgIAoyMDAxLTEwLTA0IDAyOjIxICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKICAgICAgIEFsc28gbm90ZWQgd2l0aCBleHRlbnNpdmUgYW5hbHlzaXMgYnkgVGVkIFJ1bGUgaW4gYnVnICM0Njc1NTEuCiAgIAoyMDAxLTEwLTAzIDExOjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU1ICkKICAgCjIwMDEtMTAtMDMgMTE6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3Rvb2xzLmM6CgogICBwcm9wZXIgY29uc3QgY2FzdGluZyBpbiBmcm9udCBvZiBNYXJra3UncyBjYXN0aW5nIHBhdGNoLgogICAKMjAwMS0xMC0wMyAxMToxMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBQYXRjaDogcHJvcGVyIGNhc3RzIGZvciBwaWNreSBjb21waWxlcnMgZnJvbSBNYXJra3UgTGF1a2thbmVuLgogICAKMjAwMS0xMC0wMyAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgcmJ1aWxkIGJleW9uZCB0aGUgZW5kIG9mIGEgYnVmZmVyIChuZWVkZWQgYnVmZmVyICsgbGVuZ3RoICItIDEiKS4KICAgCjIwMDEtMTAtMDMgMDU6MzggIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDaGFuZ2Ugb2lkIGxlbmd0aHMgdG8gc2l6ZV90IGZyb20gaW50IChzZWdmYXVsdHMgb24gYW4gYWxwaGEvbGludXgpLgogICAKMjAwMS0xMC0wMiAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBBZGQgcHJvdG90eXBlIGZvciBnZXRUb3RhbFN3YXAoKS4KICAgCjIwMDEtMTAtMDIgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICByZXR1cm4gTk9UX1dSSVRBQkxFIGluc3RlYWQgb2YgUkVBRE9OTFkgYXMgcG9pbnRlZCBvdXQgYnkKICAgYXJhamVzaEBpbmRpYS5hZHZlbnRuZXQuY29tLgogICAKMjAwMS0xMC0wMiAxNzowMyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBQYXRjaCBmcm9tIE1hcmMgTW9lbGxlciB0byBkZWZpbmUgc25wcmludGYgYXMgX3NucHJpbnRmCiAgIAoyMDAxLTEwLTAyIDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQYXRjaCBmcm9tIE1hcmMgTW9lbGxlciB0byBjaGVjayBmb3IgSEFWRV9MUFNUQVQgYmVmb3JlIGNhbGxpbmcgaXQuCiAgIAoyMDAxLTEwLTAyIDE3OjAwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgUm9uLgogICAKMjAwMS0xMC0wMiAxNzowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGdldF91cHRpbWUoKSBpbXBsZW1lbnRhdGlvbiBmb3Igd2luZG93cyBmcm9tIFJvbiBNZXZpc3Nlbi4KICAgCjIwMDEtMTAtMDEgMTc6MzggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTQgKQogICAKMjAwMS0xMC0wMSAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBtYWtlZmlsZWluZGVwZW5kCiAgIAoyMDAxLTEwLTAxIDE3OjM3ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsOgoKICAgdHJhbnNsYXRlIC5vIC0+IC5sbyBieSBoYW5kLgogICAKMjAwMS0xMC0wMSAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfcHJpbnQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzQ2NTU0NSB0byBmaXggZGVsYXlzIGluIGhvc3QgcmVzb3VyY2VzIG1pYiB3aGVuIGxvb2tpbmcKICAgYXQgZGV2aWNlcyBhbmQgcHJpbnRlcnMuCiAgIAoyMDAxLTEwLTAxIDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICBOZXcgc3R1ZmYgaW4gNC4yLjIKICAgCjIwMDEtMTAtMDEgMTY6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjE6CgogICBtYWtlIHNubXB3YWxrIGRlZmF1bHQgdG8gZGV0ZWN0aW5nIGlsbGVnYWwgT0lEIGluY3JlYXNlcy4gIC1DYyB0dXJucwogICBpdCBvZmYgaW5zdGVhZCBvZiBvbi4KICAgCjIwMDEtMTAtMDEgMTA6MzYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBlZGl0aW5nIHR3ZWFrcyBieSBKb2huIHRvIGNvdW50IHRoaW5ncyBwcm9wZXJseS4gIFdlcyBsb29zZXMgdGhlCiAgIGFiaWxpdHkgdG8gY291bnQgYmV5b25kIHRoZSBudW1iZXIgMi4KICAgCjIwMDEtMTAtMDEgMTA6MjYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBkaXR0by4KICAgCjIwMDEtMTAtMDEgMTA6MjIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBWYXJpb3VzIGNvcHlyaWdodCB1cGRhdGVzLgogICAKMjAwMS0xMC0wMSAwMjo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkICNpbmNsdWRlICJzbm1wX2xvZ2dpbmcuaCIgdG8gYXZvaWQgY29tcGlsYXRpb24gcHJvYmxlbXMgb24KICAgICAgIHNvbWUgcGxhdGZvcm1zIGludHJvZHVjZWQgYnkgbmV3IGVycm9yIG1lc3NhZ2VzLiBTZWU6CiAgICAgICA8VVJMOmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYWlkPTQ2NTgwNyZncm91cF9pZD0xMjY5NCZhdGlkPTExMjY5ND4KICAgCjIwMDEtMDktMjkgMDY6MDYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgQWRkIGEgbWlzc2luZyBwcm90b3R5cGUgZm9yIHNubXBfcmVhbGxvY19ieV90eXBlCiAgIAoyMDAxLTA5LTI5IDA2OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmg6CgogICBGaXggYSBiYWQgI2lmZGVmIHBhcmFudGhlc2VzCiAgIAoyMDAxLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHNtdXggaXMgKm5vdCogYSBwcm9wZXIgZGVsZWdhdGlvbiBzdWJhZ2VudC4KICAgCjIwMDEtMDktMjUgMTI6NDYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTMgKQogICAKMjAwMS0wOS0yNSAxMTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNjYXBpLmMsIHNjYXBpLmg6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZXMgd2hlbiBlbmNyeXB0aW9uIHN1cHBvcnQgaXNuJ3QgYXZhaWxhYmxlLgogICAKMjAwMS0wOS0yNSAwNzo1OSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYW5vdGhlciBzcGFjZSB0aGF0IHdvdWxkIG1ha2UgdGhlIHRlc3Qgc3VpdGUgZmFpbAogICAKMjAwMS0wOS0yNSAwNzo1MyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlCiAgIAoyMDAxLTA5LTI1IDA1OjQzICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gaW5jb3Jwb3JhdGUgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgZnJvbSBtYWluIGJyYW5jaCB0byBhdm9pZAogICAgICAgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMKICAgCjIwMDEtMDktMjUgMDU6NDEgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIHNwcmludCBmdW5jdGlvbnMKICAgCjIwMDEtMDktMjUgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcGFyc2UuaDoKCiAgICAgLSBhZGQgcmVsb2NhdGluZyBidWZmZXIgY29kZSBmcm9tIG1haW4gYnJhbmNoCiAgIAoyMDAxLTA5LTI1IDA1OjM5ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgICAtIGFkZCBzbm1wX3JlYWxsb2MoKSBhbmQgc25tcF9zdHJjYXQgZnVuY3Rpb25zIHdoaWNoIHRoZSByZWxvY2F0aW5nCiAgICAgICBidWZmZXIgY29kZSB1c2VzCiAgIAoyMDAxLTA5LTIxIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIEdsZW5uIE1hbnNmaWVsZCB0byBmaXggaW50ZXJmYWNlIGNvdW50aW5nIG9uIGludGVyZmFjZXMKICAgd2l0aG91dCBpcCBhZGRyZXNzZXMuCiAgIAoyMDAxLTA5LTIwIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBjaGVjayBza2lwX3doaXRlKCkgcmV0dXJuIChhcyBtZW50aW9uZWQgaW4gcGF0Y2ggIzQ2MjIwMSkuCiAgIAoyMDAxLTA5LTIwIDExOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4ZWQgYSBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgYnVnIGluIHNwcmludF9hc2NpaXN0cmluZyBhcyBwb2ludGVkCiAgIG91dCBieSBidWcgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjAgMDk6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3Qgd2FybiBhYm91dCBtaXNzaW5nIG9wZW5zc2wgdW5sZXNzIGV4cGxpY2l0bHkgYXNrZWQgKGFuZCB0aGVuIGVycm9yKS4KICAgCjIwMDEtMDktMjAgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIG1vdmUgaGVhZGVycyBhcm91bmQgdG8gZml4IGNvbXBpbGF0aW9uIG9uIFNvbGFyaXMgMi43OyBzeXMvc3RyZWFtLmgKICAgICAgIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGJlZm9yZSBzeXMvc29ja2V0dmFyLmggZm9yIHRoaXMgcGxhdGZvcm0uCiAgIAoyMDAxLTA5LTIwIDA5OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAic3lzdGVtLmgiIHdoaWNoIHVzZXMgdGhlIHR5cGUgaW5fYWRkcl90IHRoZXJlYnkKICAgICAgIGNhdXNpbmcgcHJvYmxlbXMsIGFuZCBzZWVtcyB0byBiZSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAxLTA5LTIwIDA2OjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBNYWtlIHN1cmUgSGFycmllJ3MgbmFtZSBpcyBpbiB0aGUgcGF0Y2hlcyBSRUFETUUgYXMgd2VsbCBhcyB0aGUgbWFpbmxpbmUuCiAgIAoyMDAxLTA5LTIwIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYywgc25tcF9kZWJ1Zy5jLCBzbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gcHJvcGVyIHByb3RvdHlwZXMgZm9yIHNvbWUgZnVuY3Rpb25zLgogICAKMjAwMS0wOS0xOSAxNzoxOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMiApCiAgIAoyMDAxLTA5LTE5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUxICkKICAgCjIwMDEtMDktMTkgMTY6NTkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yICkKICAgCjIwMDEtMDktMTggMTc6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVuZG8gTmllbHMnIGNoYW5nZSB0byBhbGxvdyBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBvdmVycmlkZSAuY29uZgogICBmaWxlcy4gIFJpZ2h0IGdvYWwsIHdyb25nIGJyYW5jaCB0byBkbyBpdCBpbiBhcyBpdCBicm9rZSBTTk1QdjMgYW1vbmcKICAgb3RoZXIgdGhpbmdzLiAgVGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgaXMgcmF0aGVyIHNlbnNpdGl2ZSB0bwogICBvcmRlcmluZy4KICAgCjIwMDEtMDktMTggMTU6MDggIG5iYQoKICAgKiBzL2Rhcndpbi5oOgoKICAgRml4IGFuIG92ZXJzaWdodCBpbiB0aGUgRGFyd2luIHBhdGNoCiAgIAoyMDAxLTA5LTE4IDE1OjA4ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggYW4gb3ZlcnNpZ2h0IGluIHRoZSBEYXJ3aW4gcGF0Y2hlcwogICAKMjAwMS0wOS0xNyAwOTowMCAgbmJhCgogICAqIHMvZGFyd2luLmg6CgogICBUaGUgZGFyd2luIHN5c3RlbSBmaWxlLCB3aGljaCBJIGZvcmdvdCB3aGVuIGNvbW1pdHRpbmcgdGhlIHJlc3Qgb2YKICAgdGhlIGRhcndpbiBwYXRjaC4KICAgCjIwMDEtMDktMTcgMDc6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlciBydW4KICAgCjIwMDEtMDktMTcgMDQ6MTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IG5ld2xpbmVzIGluc2lkZSB1c2FnZSBzdHJpbmcuCiAgIAoyMDAxLTA5LTE2IDE0OjU2ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9zbXV4L3NtdXguYzoKCiAgIE1vdmUgdGhlIHNtdXhfbGlzdGVuX3NkIHZhcmlhYmxlIHRvIHNtdXguYy4gVGhpcyB3YXkgaXQgd2lsbCBiZSBpbiB0aGUKICAgbGlicmFyeSBzbyB0aGUgbGlua2VyIHdvbnQgYmUgdXBzZXQgd2hlbiB5b3UgbGluayB3aXRoIHRoZSBhZ2VudCBsaWJyYXJ5LgogICAKMjAwMS0wOS0xNiAxNDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIHMvb3BlbmJzZC5oOgoKICAgUGF0Y2hlcyBmb3IgT3BlbkJTRCAyLjkKICAgCjIwMDEtMDktMTYgMTQ6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGRpc2tpbyBzdXBwb3J0IGZvciBGcmVlQlNENC4gVGhhbmtzIHRvIFlpbWluIEdlCiAgIAoyMDAxLTA5LTE2IDE0OjE2ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBQYXRjaGVzIHRvIHN1cHBvcnQgRGFyd2luIChNYWMgT1MvWCkKICAgVGhhbmtzIHRvIFRleCBDbGF5dG9uIDx0ZXhAZGFydHdhcmUuY29tPgogICAKMjAwMS0wOS0xNiAxNDowMyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIZWFkZXIgcmVhcnJhbmdlbWVudHMgdG8gbWFrZSBCU0QncyBoYXBweSBhZnRlciB0aGUgV0lOMzIgcGF0Y2gKICAgCjIwMDEtMDktMTUgMDY6MDggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYXJndW1lbnQgdG8gc25wcmludGYgKGVycnByZSBjb3JyZXNwb25kaW5nIHRvICVzKSAtLQogICAgICAgaXQgd2FzIG1pc3NpbmcgZnJvbSB0aGUgcGF0Y2ggKCM0NTIwMjcpCiAgIAoyMDAxLTA5LTE0IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gZGVidWdnaW5nIGNvbXBpbGF0aW9uIGZpeGVzCiAgIAoyMDAxLTA5LTE0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1hbnkgbmVlZGVkIGNoYW5nZXMgZnJvbSBtYWlubGluZSBtZXJnZWQgaW50byBwYXRjaGVzIGJyYW5jaAogICAKMjAwMS0wOS0xNCAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBQYXRjaCAjNDUyMDI3IGZyb20gTWFyY3VzIE1laXNzbmVyOgogICAgIHNlY3VyaXR5IGZpeCB0byBtYWtlIHN1cmUgdGhhdCBsb25nIGFzbiBsZW5ndGhzIGNhbid0IGJlIHVzZWQgYW5kCiAgICAgYXJlbid0IGltcHJvcGVybHkgY2FzZWQgdG8gYSBzaWduZWQgdmFsdWUuCiAgIAoyMDAxLTA5LTE0IDE0OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM0MzI5ODIgZnJvbSBIb2xsaXM6IGZpeCAtLXdpdGgtbGlid3JhcCB3aXRob3V0IGEgcGF0aCBvcHRpb24KICAgCjIwMDEtMDktMTQgMTM6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgbWliSUkvdWRwVGFibGUuYzoKCiAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgdWRwVGFibGUuCiAgIFRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgPGpzZkBJbnRlckZhY2UtQUcuY29tPgogICAKMjAwMS0wOS0xNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgZnJvbSBwYXRjaCAjNDIzNDY2OiBhZGQgYWJpbGl0eSB0byB1c2UgdGhpcyBmaWxlIHdpdGhpbiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBBZGRlZCBjb25maWcuaCBmaWxlIGZvciBib3JsYW5kIGNvbXBpbGVycyAod2hpY2ggZGlmZmVycyBzbGlnaHRseSkuCiAgICAgRnJvbSBwYXRjaCAjNDIzNDY2CiAgIAoyMDAxLTA5LTE0IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBpcEFkZHIuYywgdGNwLmMsIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jLCB2YXJfcm91dGUuYzoKCiAgIE1pYi0yIHN1cHBvcnQgZm9yIFdpbmRvd3Mgc3lzdGVtcy4KICAgKk1hbnkqIHRoYW5rcyB0byBMYXRoYSBTLCBmb3IgZmlsbGluZyB0aGlzIGxvbmctYXdhaXRlZCBuZWVkLgogICAKMjAwMS0wOS0xNCAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIGlwQWRkci5jLCB0Y3AuYywgdGNwVGFibGUuYywKICAgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBNb3ZlIHBhY2thZ2UtcHJvdmlkZWQgaGVhZGVyIGluY2x1ZGVzICgnbWliaW5jbCcgYW5kICd1dGlsX2Z1bmNzJykKICAgdG8gYWZ0ZXIgdGhlIHN5c3RlbSBpbmNsdWRlcy4gIFRoaXMgc2hvdWxkbid0IGFmZmVjdCBtb3N0IHN5c3RlbXMsCiAgIGJ1dCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBXaW5kb3dzIHBvcnQuCiAgIAoyMDAxLTA5LTE0IDA4OjI4ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBQcm9wb2dhdGUgdGVzdCBmb3IgPG5ldGluZXQvaXBfaWNtcC5oPiB0aHJvdWdoIHRvIHRoZSBiaXQgdGhhdCBkb2VzIHRoZSB3b3JrLgogICAKICAgICAoT3VyIGlsbHVzdHJpb3VzIGxlYWRlciBjbGVhcmx5IGhhcyBubyBjb25maWRlbmNlIGluIHRoZSBjb21wZXRhbmNlCiAgICAgIG9mIGhpcyBtaW5pb25zLiAgSSdkIHRha2UgdW1icmFnZSwgaWYgaGUgd2Fzbid0IHJpZ2h0ISkKICAgCjIwMDEtMDktMTQgMDg6MDEgIGR0czEyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICBBZGQgdGVzdCBmb3IgPG5ldGluZXQvaXBfaWNtcC5oPgogICAKMjAwMS0wOS0xNCAwNzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgaXBBZGRyLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYywKICAgdmFyX3JvdXRlLmM6CgogICBXcmFwIHZhcmlvdXMgI2luY2x1ZGVzIHdpdGggYXBwcm9wcmlhdGUgI2lmIEhBVkVfWFhYX0ggZGVjbGFyYXRpb25zCiAgICh3aGVyZSB0aGlzIGhhcyBub3QgYWxyZWFkeSBiZWVuIGRvbmUpLgogICAKMjAwMS0wOS0xMSAxNDo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywKICAgbWVtb3J5X2ZyZWVic2QyLmgsIG1lbW9yeV9uZXRic2QxLmMsIG1lbW9yeV9uZXRic2QxLmgsCiAgIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCwgdm1zdGF0LmMsIHZtc3RhdC5oLAogICB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgsIHZtc3RhdF9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IHRoZSBPSUQgZGVmaW5lcyBhcmUgb25seSBpbiBvbmUgcGxhY2UuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgogICAKMjAwMS0wOS0xMSAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYzoKCiAgIEhlYWRlciByZW9yZGVyaW5nIHRvIGFsbG93IGRtYWxsb2MgdG8gd29yay4KICAgCjIwMDEtMDktMTEgMTQ6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgRml4IGEgbWlzcGxhY2VzIDsgaW4gYSBsb29wLgogICBUaGFua3MgdG8gTWFsYSBSYW1ha3Jpc2huYW4gPG1hbGFAcm91dGVzY2llbmNlLmNvbT4KICAgYW5kIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciA8anNmQEludGVyRmFjZS1BRy5jb20+CiAgIAoyMDAxLTA5LTEwIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjaGFuZ2UgaW50ZXJmYWNlIGNvdW50aW5nIHRvIGhhcHBlbiBtb3JlIGZyZXF1ZW50bHkgdG8gZGV0ZWN0IG5ldyBjYXJkcy4KICAgICAtIHNlZSBidWcgIzQ1NzI5MAogICAKMjAwMS0wOS0xMCAxMToxMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1QIHRvIHVzYWdlIGl0IHByaW50cyB0byBzdGRlcnIgKGJ1ZyAjNDU5MzcyKQogICAKMjAwMS0wOS0xMCAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgZml4IHdoaXRlc3BhY2UgcGFyc2luZyBidWcgcmVwb3J0ZWQgaXQgYnVnICM0NTcyNjcuCiAgIAoyMDAxLTA5LTEwIDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGFwcGx5IGZyZWVic2Qgc3BlY2lmaWMgcGF0Y2ggZnJvbSBidWcjNDU1OTI0IHRvIGZpeCB2bXN0YXQncyBzd2FwIHJlcG9ydC4KICAgCjIwMDEtMDktMTAgMTA6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgVXNlIGEgbW9yZSBwb3J0YWJsZSBEQlBSVCBtYWNyby4KICAgCjIwMDEtMDktMTAgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBSb3dTdGF0dXMgdmFsdWUgY2hlY2tzIG1lbnRpb25lZCBpbiBidWcjNDQ5NTAyCiAgIAoyMDAxLTA5LTA0IDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTMxIDEzOjE5ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgTWFrZWZpbGUubWliLCBSRUFETUUubWlicywgcmZjbGlzdCwKICAgc21pc3RyaXA6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIG9mIERJU01BTi1TQ1JJUFQtTUlCLCBhbmQgYSBmZXcgY29zZXRpYyBjaGFuZ2VzCiAgIHRvIHNtaXN0cmlwIGV0IGFsLgogICAKMjAwMS0wOC0zMSAxMzoxOCAgbmJhCgogICAqIGx0Y29uZmlnOgoKICAgVXBkYXRlIHRvIGxpYnRvb2wgMS40LiBUaGlzIGVuc3VyZXMgdGhhdCBtYWtlIGluc3RhbGwgd2lsbCB3b3JrIGZvciBOZXRCU0QKICAgCjIwMDEtMDgtMzEgMTM6MTcgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sIDEuNC4gVGhpcyB3aWwgZW5zdXJlIHRoYXQgbWFrZSBpbnN0YWxsIHdvcmsgb24gTmV0QlNECiAgIAoyMDAxLTA4LTI4IDE1OjA0ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBhIGJhZCBmaXgKICAgCjIwMDEtMDgtMjggMTU6MDMgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmg6CgogICBDKysgYnJhY2tldCB0aGUgaW5zdGFsbGVkIHNnZW50IGhlYWRlcnMKICAgCjIwMDEtMDgtMjggMDc6MzUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGEgbWFsZm9ybWVkIG11bHRpLWxpbmUgc3RyaW5nCiAgIAoyMDAxLTA4LTI4IDAzOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNyAyMjoxNSAgbmJhCgogICAqIG1hbi86IHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzb21lIHBsYWNlcyB3aGVyZSBhY3R1YWwgbGluZXMgc3RhcnRlZCB3aXRoIGEgcGVyaW9kLgogICAKMjAwMS0wOC0xNyAxNToxMiAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEZpeCBtaXNzcGVsbGVkIG1hbiBwYWdlIG5hbWUgKHNubXBlcnJvciA9PiBzbm1wX3BlcnJvcikKICAgCjIwMDEtMDgtMTcgMTU6MDkgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaDoKCiAgIElBTkEgaGFzIG1vdmVkIHRoZWlyIG1pYnMgaW50byBhbiBpYW5hLm1pYiBkaXJlY3RvcnkuCiAgIEZpeCBSRkMgbnVtYmVyIGZvciBSTU9OLU1JQi4KICAgTWFrZSAibWFrZSBhbGxtYWlicyIgZXh0cmFjdCBtaWJzIHRvIGFub3RoZXIgZGlyZWN0b3J5LgogICAKMjAwMS0wOC0xNyAxNTowMyAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFlldCBhbm90aGVyIHVwZGF0ZSBmcm9tIGZ0cC5nbnUub3JnCiAgIAoyMDAxLTA4LTE3IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jOgoKICAgQWRkIHNvbWUgbmVlZGVkIGVycm9yIGNoZWNraW5nIHRvIHRoZSB1aWQvZ2lkIHBhcnNpbmcgY29kZS4KICAgQWxsb3cgc3ltYm9saWMgdWlkL2dpZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAxLTA4LTE3IDE0OjA3ICBuYmEKCiAgICogRkFROgoKICAgQWRkIGEgbWlzc2luZyBhcmd1bWVudCB0byB0aGUgc25tcHRyYXAgZXhhbXBsZXMuCiAgIAoyMDAxLTA4LTA3IDE0OjU1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvbWliLmM6CgogICBUaW1ldGlja3MgYXJlIHVuc2lnZWQhIFRoYW5rcyB0byBKb3NoIFdpbG1lcyA8am9zaC11Y2RAaGl0Y2hoaWtlci5vcmc+CiAgIAoyMDAxLTA4LTA3IDE0OjQyICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hhbmdlcyB0byBhbGxvdyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIG92ZXJyaWRlIHNubXAuY29uZiBzZXR0aW5ncy4KICAgCjIwMDEtMDgtMDcgMTQ6MDIgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBvZiBJQU5BaWZUeXBlLU1JQi4KICAgQWRkIHJmYyAzMTQ0IElOVEVSRkFDRVRPUE4tTUlCIHRvIHJmY2xpc3QuCiAgIAoyMDAxLTA4LTA3IDE0OjAwICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBmcm9tIGZ0cC5nbnUub3JnCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfZXJyb3IuMywKICAgbWFuL3NubXBfcGVycm9yLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wY21kLjEsCiAgIG1hbi9zbm1wdHJhcGQuODoKCiAgIEEgYnVuY2ggb2YgbWlub3IgZml4ZXMgdG8gdXNhZ2UgbWVzc2FnZXMgYW5kIG1hbnVhbCBwYWdlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTYgIG5iYQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBGaXggcGFyc2luZyBvZiBvaWQgdmFsdWVzIGZvciBzZXQKICAgCjIwMDEtMDgtMDcgMDc6MDkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggZm9yIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gbG9nZmlsZSBhcmd1bWVudCBoYW5kbGluZywKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyAoYnVnICM0NDgyNDMpLiAgQWxzbyB1c2UgYSBsYXJnZSBlbm91Z2ggYnVmZmVyCiAgICAgICB0byBoYW5kbGUgZmlsZW5hbWVzIG9mIGxlbmd0aCBQQVRIX01BWCAoaWYgcG9zc2libGUpLgogICAKMjAwMS0wNy0yNiAwMTo0MCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCjIwMDEtMDctMjMgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGNhcmVmdWxseSBjb25zdHJ1Y3QgdG1wIGZpbGUgbmFtZXMuCiAgIAoyMDAxLTA3LTIzIDEwOjUzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICB1c2Ugc2V0Z3JvdXBzIHdoZW4gYXZhaWxhYmxlLgogICAKMjAwMS0wNy0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBhZGQgTkVUV09SSy1TRVJWSUNFUy1NSUIgdG8gbWliIHJlcXVpcmUgbGlzdAogICAKMjAwMS0wNy0wOSAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgZml4IHRyYXBzZXNzIHBhcnNpbmcgc28gYXMgdG86CiAgICAgLSBzZXQgdGhlIGRlZmF1bHQgcG9ydCB0byAxNjIKICAgICAtIGRvbid0IGZyZWUgbWVtb3J5IHBhc3NlZCB0byBzbm1wX3BhcnNlX2FyZ3MoKSBzaW5jZQogICAgICAgc25tcF9wYXJzZV9hcmdzIGlzIGJyb2tlbiBhbmQgbmVlZHMgdG8gY29weSBtZW1vcnkgcmF0aGVyIHRoYW4KICAgICAgIGp1c3QgbWFrZSB1c2Ugb2YgaXQuCiAgIAoyMDAxLTA2LTI3IDE1OjQ4ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBTaW1wbGUgZml4IHRvIHRyYXBzZXNzIGFyZ3VtZW50IGxpc3QKICAgCjIwMDEtMDYtMjUgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0ICdtaWJzICIiJy4KICAgCjIwMDEtMDYtMjIgMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFsbG93IGludGVyZmFjZSBzbm1wZC5jb25mIHRva2VucyB0byBjb21wbGV0ZWx5IG92ZXJyaWRlIHN5c3RlbQogICB2YWx1ZXMuICBbYnVnIzQyNjk3NV0KICAgCjIwMDEtMDYtMjIgMTE6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBkZWZpbmUgdWxvbmdfcmV0CiAgIAoyMDAxLTA2LTIyIDAxOjQ0ICBkdHMxMgoKICAgKiBGQVEsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgSW5jbHVkZSBhIHdhcm5pbmcgb2YgdGhlIGV4cGVyaW1lbnRhbCBuYXR1cmUgb2YgQWdlbnRYIGluIHRoZSBtYW4gcGFnZSwKICAgYW5kIHVwZGF0ZSB0aGUgRkFRIHRvIHJlZmxlY3QgdGhlIGZ1bGxlciBpbnRlZ3JhdGlvbiBvZiB0aGlzIHN1cHBvcnQuCiAgIAoyMDAxLTA2LTIxIDE1OjIyICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEVsaW1pbmF0ZSBsb25nIGxvbmcgdmFyaWFibGVzCiAgIAoyMDAxLTA2LTIxIDE1OjIyICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFdhcm4gYWJvdXQgZGVwcmVjYXRlZCAtYiAtdyBhbmQgLWkgb3B0aW9ucy4KICAgCjIwMDEtMDYtMjEgMTU6MTUgIG5iYQoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHNldC4xLCBzbm1wd2Fsay4xOgoKICAgVXBkYXRlIHRpbWUgc3RhbXBzCiAgIAoyMDAxLTA2LTIxIDE1OjA5ICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIEFkZCAtbSBhbmQgLU0gb3B0aW9ucyB0byBoZWFkZXIuIFVwZGF0ZSBTRUUgQUxTTyB0byByZWZlcmVuY2Ugc25tcGNtZAogICBhbmQgUkZDIDI1NzgtODAgaW4gcGxhY2Ugb2YgMTE1NQogICAKMjAwMS0wNi0yMSAxNTowMSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIHh4IC4uLjo6PSB7IHl5IH0KICAgCjIwMDEtMDYtMjEgMTA6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIHR5cG9zIChJT0QgLT4gT0lEKQogICAKMjAwMS0wNi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1lbnRpb24gIm1hc3RlciBhZ2VudHgiCiAgIC0gZml4IGNvbmZpZyBmaWxlIHJlLXJlYWRpbmcgb2lkLgogICAKMjAwMS0wNi0yMSAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgbWFrZSBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbiBhY2NlcHQgIiIgc3RyaW5ncy4KICAgCjIwMDEtMDYtMjEgMDk6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBBcHBsaWVkIGFyZyBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gRGF2aWQgRWlzbmVyCiAgIAoyMDAxLTA2LTE0IDIzOjE5ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgRG9jdW1lbnQgLW4gb3B0aW9uCiAgIAoyMDAxLTA2LTEyIDE1OjE0ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYW5kIGRpYWdub3NlIGJhZCBib29sZWFuIGFuZCBpbnRlZ2VyIGNvbmZpZ3VyYXRpb24gdmFsdWVzCiAgIAoyMDAxLTA2LTEyIDE1OjEyICBuYmEKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYzoKCiAgIFByb3Blcmx5IGRpYWdub3NlIGJhZCAtQyBvcHRpb25zCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTExIDE1OjQ0ICBuYmEKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMToKCiAgIEFkZCBhbiBvcHRpb25zICgtQ2MpIHRvIHNubXB3YWxrIHRoYXQgd2lsbCB2YWxpZGF0ZSB0aGF0IHRoZSByZXR1cm5lZCBvYmplY3RzCiAgIGFyZSBpbmRlZWQgbGV4aWNvZ3JhcGhpY2FsbHkgaW5jcmVhc2luZy4KICAgCjIwMDEtMDYtMTEgMTU6NDMgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYywgbWFuL3NubXBzZXQuMSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWxsb3cgYSBzaW1wbGVyIHNubXBzZXQgbm90YXRpb24gd2hlbiBNSUIgZGF0YSBhcmUgbG9hZGVkOiBVc2luZyAnPScgZm9yCiAgIHR5cGUgdHlwZSB3aWxsIGluZmVyIGl0IGZyb20gdGhlIE1JQi4KICAgCjIwMDEtMDYtMTEgMTU6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBGaXggc29tZSBsb25nIHN0YW5kaW5nIGJ1Z3Mgd2hlbiBzZXZlcmFsIE1JQiBmaWxlcyBkZWZpbmUgdGhlIHNhbWUgb2JqZWN0cwogICB3aXRoIGRpZmZlcmVudCBuYW1lcy4gSG9wZWZ1bGx5IHRoZSByZXN1bHRzIHdpbGwgYmUgY29uc2lzdGVudCBub3cuCiAgIAoyMDAxLTA2LTExIDEyOjEyICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgQW5vdGhlciB0cnkgYXQgQ291bnRlcjY0IHByb2JsZW1zLCB0aGFua3MgdG8gSmFzb24gR2xvdWRvbiA8c25tcEBnbG91ZG9uLmNvbT4KICAgCjIwMDEtMDYtMTEgMTE6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBmb3IgYSBtaXNzaW5nIDAtYnl0ZSB0byB0ZXJtaW5hdGUgY29tbXVuaXR5IHN0cmluZy4KICAgVGhhbmtzIHRvICJLVUJPVEEsVGFrYXlhIiA8dGFrYXlhQHBvLm50dHMuY28uanA+LgogICAKMjAwMS0wNi0wNiAyMTozOCAgbmJhCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFVzZSA8dXRtcHguaD4gaWYgYXZhaWxhYmxlICh0byBmaXggY291bnRpbmcgdXNlcnMgZm9yIFNvbGFyaXMpCiAgIAoyMDAxLTA2LTA2IDIxOjMzICBuYmEKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgTWVudGlvbiAtcyBhbmQgLVAgcGlkZmlsZSBhcmd1bWVudHMKICAgCjIwMDEtMDYtMDYgMjE6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzZW5kaW5nIG9mIHRyYXBzIHdpdGhvdXQgdmFyYmluZHMKICAgCjIwMDEtMDYtMDYgMjE6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNb3JlIG1lYW5pbmdmdWwgYXJndW1lbnRzIHRvIHNldFBlcnJvcnN0YXR1cyAodHJ1ZSBmaWxlIG5hbWVzKQogICAKMjAwMS0wNS0xNyAxMjozNiAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggYSBUcnVseSBTdHVwaWQgQnVnIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFIDxhYmVrYXRzdUBjeXNvbHMuY29tPgogICAKMjAwMS0wNS0wNCAwOTo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgbCBmcm9tICVsbGQgcHJpbnRmIHN5bnRheAogICAKMjAwMS0wNS0wNCAwNzowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnNhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMS0wNS0wMyAxMDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBzbm1wLXRjLmggdG8gaW5zdGFsbCBsaXN0CiAgIAoyMDAxLTA1LTAyIDA3OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQWRkIC1UIGZsYWcgdG8gdXNhZ2Ugb3V0cHV0LgogICAKMjAwMS0wNS0wMSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEZpeCB1c2Ugb2YgYSAtMSBhc3NpZ25lZCB0byBhIHVfbG9uZyBhcyBhIGZhaWx1cmUgY2hlY2tpbmcgY2FzZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0xNyAxMjoyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEdldCBkYXRhIGZvciBoclNXUnVuUGVyZlRhYmxlIGZvciBjeWd3aW4gdW5kZXIgTlQgKG9yIGJldHRlcikKICAgCjIwMDEtMDQtMTcgMTE6MzMgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXBkYXRlIHRvIGEgcmVjZW50IHZlcnNpb24gb2YgY29uZmlnLmd1ZXNzL2NvbmZpZy5zdWIuIFVwZGF0ZSBjb25maWd1cmUKICAgdG8gaGFuZGxlIHRoZSBuZXcgTmV0QlNEIHZhcmlhbnQgdGhhdCBpbmNsdWRlIHRoZSBvYmplY3QgZm9ybWF0LgogICAKMjAwMS0wNC0xMiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQmV0dGVyIGZpeCBmb3IgYnVnICM0MTQ4NTUgZnJvbSBhcmFqZXNoCiAgIEhhbmRsZXMgbm9uLXJlcGVhdGVycz0wIGFzIHdlbGwsIGFuZCBhdm9pZHMgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0wNC0xMSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA5OjMzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgZml4ZWQgc2VnZmF1bHQgd2hlbiByb3cgaGFzIGhvbGVzLgogICAKMjAwMS0wNC0wNiAxNjoyMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gQWRkZWQgZG9jdW1lbnRvdGlvbiBmb3IgLU90CiAgIAoyMDAxLTA0LTA2IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICB0cmFwcy9pbmZvcm1zIHJldmVyc2VkCiAgIAoyMDAxLTA0LTA1IDA5OjM0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBzbm1wX29pZF9taW5fY29tcGFyZS4KICAgCjIwMDEtMDQtMDUgMDk6MTMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDQtMDUgMDg6MjEgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIG1hbGxvYyB0byBkZWNyZWFzZSBzdGFjayBzaXplIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2Vzcy4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRXh0ZW5kIHJlY2VudCAncGFzcycgY2hhbmdlcyB0byAncGFzc19wZXJzaXN0Jy4gIChUaGFua3MsIE1pa2UhKQogICAKMjAwMS0wNC0wNSAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICAKMjAwMS0wNC0wNCAxNDo1NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEgKQogICAKMjAwMS0wNC0wNCAxNDo1NSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICBDaGFuZ2Ugd29yZGluZyB0byBzYXkgNC4yIGxpbmUgaXMgdGhlIGxhc3QgdG8gdXNlIHRoZSB1Y2Qtc25tcCBuYW1lLgogICAKMjAwMS0wNC0wNCAxNDo1MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yIC0+IFY0LjIuMQoKMjAwMS0wNC0wNCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgZml4IG1pc3NpbmcgdmFyaWFibGUgb24gc29sYXJpcyAyLjYKICAgCjIwMDEtMDQtMDQgMTQ6MDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHVzZSBraWxsIC1URVJNIGluc3RlYWQgb2Yga2lsbCAtU0lHVEVSTSBmb3IgcG9ydGFiaWxpdHkgKGJyZWFrcyBvbiBzb2xhcmlzKS4KICAgCjIwMDEtMDQtMDQgMTI6MzkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ2xlYW51cCBkZWJ1ZyBtZXNzYWdlcywgYnVpbGQuCiAgIAoyMDAxLTA0LTA0IDA5OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIEZpeCBuZXR3b3JrIGJ5dGUgb3JkZXIgZm9yIElwQWRkcmVzcyBkaXNwbGF5ZWQuCiAgIAoyMDAxLTA0LTA0IDA4OjUwICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBxdWlldCBleGl0IG9uIFNJR1RFUk0vU0lHSU5ULCBzYW1lIGFzIHNubXBkLgogICAKMjAwMS0wNC0wNCAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDQgMDg6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgdG8gd2hlbiBhZ2VudCByZW1vdmVzICJjcmVhdGVVc2VyIiBkaXJlY3RpdmVzLgogICAKMjAwMS0wNC0wNCAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzQxMjA4MDogYWRkIGZyZWVic2Q1IHRvIG1vZHVsZSBpbmNsdWRlIGxpc3QuCiAgIAoyMDAxLTA0LTA0IDA4OjEyICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgRG9jdW1lbnQgaG93IHRvIGVuYWJsZSB0aGUgQWdlbnRYIGZhY2lsaXR5IGluIHRoZSBtYXN0ZXIgYWdlbnQuCiAgIAoyMDAxLTA0LTA0IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCBidWcgIzQxMTkxNzogY2hhbmdlIHdhbGsgZW5kIGNvbmRpdGlvbiBhcyBzdWdnZXN0ZWQgYnkgc3VibWl0dGVyLgogICAKMjAwMS0wNC0wNCAwNzo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDQgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBGaXggdHlwbyBpbiBjYXN0IChtaXNzaW5nICdzdHJ1Y3QnKQogICAKMjAwMS0wNC0wNCAwNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIGEgbGFyZ2VyIG1hbGxvY2VkIGJ1ZmZlciB3aGVuIGRlY29kaW5nIGEgbGFyZ2UgaW5jb21pbmcgZW5jcnlwdGVkIG1lc3NhZ2UuCiAgIAoyMDAxLTA0LTA0IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIExpbWl0IHNpemUgb2YgaGV4IG1lc3NhZ2VzIHRvIDEvNXRoIGJ1ZmZlciBzaXplICh0byBiZSBzYWZlKS4KICAgCjIwMDEtMDQtMDQgMDc6MjQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDQgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAKMjAwMS0wNC0wNCAwNjo0NSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAyMjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggbWF4aW11bSBlbmNyeXB0ZWQgcGFja2V0IGxlbmd0aCBzdXBwb3J0IGZvciByZXZlcnNlIGVuY29kZWQgcGFja2V0cy4KICAgCjIwMDEtMDQtMDMgMTg6MDcgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBmaXggcndjb21tdW5pdHkKICAgCjIwMDEtMDQtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3dlc3Jlc3RhcnQ6CgogICByZW1vdmUgb2xkIHVudXNlZCBzY3JpcHQKICAgCjIwMDEtMDQtMDMgMTY6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL29wZXJhdGlvbjoKCiAgIEFkZCBzbm1wY29uZiBkaXJlY3RpdmUgc3VwcG9ydCBmb3IgdGhlIG5ldyAibWFzdGVyIiB0b2tlbi4KICAgCjIwMDEtMDQtMDMgMTY6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgRml4IGJ1ZyBpbiBtZW51cyBmb3IgY29uZmlndXJhdGlvbiBmaWxlcyBjb250YWluaW5nIG9ubHkgImdyb3VwcyIuCiAgIAoyMDAxLTA0LTAzIDE2OjQwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2UgbXkgbmFtZSAtPiBuZXQtc25tcCBkZXZlbG9wZXJzLgogICAKMjAwMS0wNC0wMyAxNTozNiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIG1lbnRpb24gc25tcGNvbmYKICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHVybCBjaGFuZ2VzIG1vc3RseS4KICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICA0LjIuMSB1cGRhdGUgKHBsZWFzZSBjaGVjaykuCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBmdHAgc2l0ZSB1cGRhdGUuCiAgIAoyMDAxLTA0LTAzIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZGVkIGFnZW50eCB0byBkZWZhdWx0IG1vZHVsZXMgdG8gY29tcGlsZSBpbgogICAKMjAwMS0wNC0wMyAxMDoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgYSBjb21tZW50IGF0IHRoZSBlbmQgb2YgdGhlIG1pYjJjIG91dHB1dCBleHBsYWluaW5nIHRoYXQgaXRzCiAgIG1lcmVseSBhIHRlbXBsYXRlLgogICAKMjAwMS0wNC0wMyAwODoyNyAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIFdlYiBwYWdlL2Z0cCBzaXRlIHVwZGF0ZXMuICBVc2VzIHd3dy5uZXQtc25tcC5vcmcgZXZlcnl3aGVyZSBub3cuCiAgIAoyMDAxLTA0LTAzIDA2OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBzaWduZWQvdW5zaWduZWQgY29tcGFyZS4KICAgCjIwMDEtMDQtMDMgMDY6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDIzOjIyICBuYmEKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgRml4IGFuIGluY29tcGxldGVseSBpbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMS0wNC0wMiAyMzoyMSAgbmJhCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgVGhlIGFuc3dlcnMgZm9yIHRoZSAibG9hZCB3aGljaCBmaWxlcyIgbWVudSBhcmUga2VwdCBzZWNyZXQgZnJvbSB0aGUgY29kZQogICB0aGF0IGxvYWRzIHRoZSBmaWxlcyAuLi4uIGZpeGVkLgogICAKMjAwMS0wNC0wMiAyMDowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmYuZGlyL3NubXB0cmFwZC5jb25mL2Zvcm1hdHRpbmcsCiAgIHNubXBjb25mLmRpci9zbm1wdHJhcGQuY29uZi90cmFwaGFuZGxlOgoKICAgQWRkZWQgc25tcHRyYXBkIGNvbmZpZ3VyYXRpb24gZmlsZSBkaXJlY3RpdmVzIHRvIHNubXBjb25mLgogICAKMjAwMS0wNC0wMiAxMDowOCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCjIwMDEtMDQtMDIgMDk6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCjIwMDEtMDQtMDIgMDg6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgJ3N0YW5kYXJkJyBjb25maWcgaGFuZGxlciByZWdpc3RyYXRpb24gcm91dGluZSwKICAgYW5kIHJlY29nbmlzZSB0aGUgY29uZmlnIHNldHRpbmcgJ21hc3RlciBhbGwnCiAgIAoyMDAxLTA0LTAyIDA2OjUzICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggc29tZSBtaXNzaW5nIHF1b3Rpbmcgb24gLklQIHBhcmFtZXRlcnMKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLmFnZW50eCwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICBtb3ZlZCBhZ2VudHggUkVBRE1FIHRvIHRvcAogICAKMjAwMS0wMy0zMCAwNzoyMiAgZHRzMTIKCiAgICogRkFROgoKICAgVHlwbyBpbiBBZ2VudFggUkVBRE1FIGZpbGVuYW1lCiAgIAoyMDAxLTAzLTMwIDA3OjIwICBkdHMxMgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgUHJvdmlkZSAnbWFzdGVyJyBjb25maWcgZGlyZWN0aXZlIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgdG8KICAgYWN0aXZhdGUgZXh0ZW5zaWJsZSBzdWJhZ2VudCBzdXBwb3J0LgogICAgIEluaXRpYWxseSByZXN0cmljdGVkIHRvIEFnZW50WCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAxLTAzLTMwIDAzOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIFVwZGF0ZSB0byByZWZsZWN0IHRoZSBpbmNyZWFzZWQgbWF0dXJpdHkgb2YgdGhlIEFnZW50WCBpbXBsZW1lbnRhdGlvbi4KICAgCjIwMDEtMDMtMzAgMDM6MzQgIGR0czEyCgogICAqIEZBUToKCiAgIFR3ZWFrZWQgdmFyaW91cyBlbnRyaWVzLCBhbmQgYWRkZWQgYSBmZXcgbmV3IG9uZXMuICBHZW5lcmFsIFNoaWVsZCBtZWRkbGluZy4KICAgCjIwMDEtMDMtMzAgMDE6MDAgIGR0czEyCgogICAqIFJFQURNRToKCiAgIEFkZCBwcm9taW5lbnQgd2FybmluZyByZWdhcmRpbmcgdWNkLXNubXAgPT4gbmV0LXNubXAgc3dpdGNoLgogICAKMjAwMS0wMy0zMCAwMDo0NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGludGVycHJldGF0aW9uIG9mICJwdXJlIG51bWVyaWMiIHBlZXJuYW1lIHN0cmluZ3MgKGkuZS4gbGlzdGVuIG9uIHRoZQogICAgIHNwZWNpZmllZCBwb3J0IG9uIGFsbCBpbnRlcmZhY2VzKSAtIHByb2JsZW0gaWRlbnRpZmllZCBieSBNYWxhIFJhbWFrcmlzaG5hbi4KICAgCjIwMDEtMDMtMzAgMDA6MDQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBsYWNlIGF0b2kvYXRvbCB3aXRoIHN0cnRvKHUpbCB3aGljaCBoYXMgYmV0dGVyIG91dC1vZi1yYW5nZSByZXR1cm5zLgogICBUaGlzIGlzIG5vdCBhIHBlcmZlY3Qgc29sdXRpb24sIGJ1dCBpdCBpcyBiZXR0ZXIgLi4uCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMTQ6MzQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBtaW5vciBmb3JtYXR0aW5nLgogICAKMjAwMS0wMy0yOSAxNDozMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFVtLCBnb3QgdGhlIHllYXIgcmlnaHQgdGhpcyB0aW1lLgogICAKMjAwMS0wMy0yOSAxNDozMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBmb3IgMjAwMTogYWRkZWQgbXkgcmVxdWlyZWQgTkFJIEJTRCBjb3B5cmlnaHQuCiAgIAoyMDAxLTAzLTI5IDA4OjIzICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1lcmdlIGNoYW5nZSBmcm9tIG1haW4gYnJhbmNoIChyZXR1cm5fdmFsdWU9MSBzdGF0ZW1lbnQpLgogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDIyOjEyICBuYmEKCiAgICogbWlicy86IHJmY2xpc3QsIHJmY21pYnMuZGlmZjoKCiAgIEFkZCBQcmludGVyLU1JQiB0byB0aGUgcmZjbGlzdCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHBhdGNoLgogICAKMjAwMS0wMy0yOCAxMzowNiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFByb3Blcmx5IGlnbm9yZSBub24tcmVzcG9uc2UgUERVJ3Mgd2hlbiBkb2luZyBhc3luYyB0cmFuc2FjdGlvbi4KICAgCjIwMDEtMDMtMjggMTM6MDQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jOgoKICAgRml4IGluZGV4IGhhbmRsaW5nIHRvIHByb3Blcmx5IGFjY2VwdCBpbmRleGluZyB3aXRoIFRpbWVUaWNrcy4KICAgSW1wbGVtZW50IC1JciB0byBkaXNhYmxlIGluZGV4IGNoZWNrcy4KICAgCjIwMDEtMDMtMjggMDY6MjAgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xLnByZTIgKQogICAKMjAwMS0wMy0yNyAxMDoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2xvZyB3aXRoICVzIHRvIHByZXZlbnQgJSBleHBhbnNpb24gaW4gb2N0ZXQgc3RyaW5ncyBjb250YWluaW5nIGEgJXMuCiAgIAoyMDAxLTAzLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVzZXQgY291bnQgb2YgYXV0aG9yaXplZCBwZWVycyBvbiBjbG9zZWRvd24uICAoVGhhbmtzIHRvIFZsYWQgVHVuaWspCiAgIAoyMDAxLTAzLTI2IDE4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsL2lwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgTUlCIGluIFJGQyAzMDgzOiBET0NTLUJQSS1NSUIKICAgCjIwMDEtMDMtMjIgMTQ6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgcy9jeWd3aW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jOgoKICAgTWFrZSBtb3N0IG9mIHRoZSBob3N0IHJlc291cmNlcyBtaWIgY29tcGlsZSB1bmRlciBDeWd3aW4uIFdlIGNhbiBub3cgZG8KICAgLS13aXRoLW1pYi1tb2R1bGVzPWhvc3QgLS13aXRoLW91dC1taWItbW9kdWxlcz1ob3N0L2hyX25ldHdvcmsKICAgCjIwMDEtMDMtMjIgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGZpeCBoZWFkZXJfc2ltcGxlX3RhYmxlKCkgZm9yIHRvbyBsb25nIHJlcXVlc3RzCiAgIAoyMDAxLTAzLTIyIDA4OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmFkIFdlczogZmluZCBhbGwgaW5zdGFuY2VzIG9mIGN1dC1uLXBhc3RlIGVycm9ycyBiZWZvcmUgY29tbWl0dGluZy4KICAgCjIwMDEtMDMtMjIgMDg6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCYWQgV2VzOiBkb24ndCBjYWxsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlICgpcy4gIChhdCBsZWFzdCBpbiBDKS4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzoyMiAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJ1Z2ZpeCBmb3IgY3Jhc2ggYXQgc25tcF9zaHV0ZG93biB0aW1lIHdpdGggT1MncyB0aGF0IGNoZWNrIHBvaW50ZXIKICAgdmFsaWRpdHkgKGUuZy4sIEZyZWVCU0QpCiAgIAoyMDAxLTAzLTIxIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBqb2luIGJyb2tlbiBzbm1wX2xvZyBsaW5lcwogICAKMjAwMS0wMy0yMSAwODoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtRiAoSSB0aGluaykKICAgCjIwMDEtMDMtMjEgMDc6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCB2YXJpYWJsZSB0eXBlcyAoaW50IC0+IHNpemVfdCkKICAgCjIwMDEtMDMtMjAgMDg6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHMvbGludXguaDoKCiAgIEZpeCB0aGUgYXRUYWJsZSBhbmQgaXBOZXRUb3BNZWRpYVRhYmxlIGZvciBMaW51eCB0byByZXR1cm4gdGhlIGlmSW5kZXgKICAgCjIwMDEtMDMtMTkgMTM6MTQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBtYW4vc25tcGRlbHRhLjE6CgogICBNYWpvciBvcHRpb24gcGFyc2luZyBzdXJnZXJ5IHRvIGNhdGhlciBmb3IgdGhlIGdldG9wdCB1c2luZyB2ZXJzaW9uIG9mCiAgIHNubXBfcGFyc2VfYXJncy4gU2VlbXMgdG8gaGF2ZSBiZWVuIGZvcmdvdHRlbiB3aGVuIHRoZSByZXN0IG9mIHRoZSBhcHBzCiAgIHdlcmUgdXBkYXRlZC4KICAgCjIwMDEtMDMtMTkgMTM6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZS1vcmRlciBzeXMvY29uZi5oIGFuZCBzeXMvcGFyYW0uaCB0byBtYWtlIEZyZWVCU0QtNSBoYXBweQogICAKMjAwMS0wMy0xNSAxMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIGZpeGVkIGJ1ZyAjNDA1MDAwOiBkcm9wcGVkIHN1cHBvcnQgZm9yIElQT1VUTk9ST1VURVMsIHNpbmNlIG5vCiAgIGNhbGN1bGF0aW9uIG9mIGl0IHNlZW1zIGNsb3NlIHRvIGNvcnJlY3QuCiAgIAoyMDAxLTAzLTE1IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIGZpeCBwYXJ0IDIgb2YgYnVnIDQwNTUxOSBhZGRpbmcgZnVsbHNvY2sgdG8gdWRwaW5lcnJvcnMKICAgCjIwMDEtMDMtMTUgMTM6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgZml4IGJ1ZyAjNDA4Mzg4IHdoZXJlIG1lbW1vdmUgaXMgY2FsbGVkIHdpdGggdG9vIHNob3J0IGEgbGVuZ3RoLgogICAKMjAwMS0wMy0xNSAxMToyMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEucHJlMSApCiAgIAoyMDAxLTAzLTE1IDAzOjM0ICBqYnBuCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGtpbGwgLVNJR0tJTEwgaXNuJ3QgbGVnYWwgc3ludGF4IG9uIFNvbGFyaXMgb3IgTGludXg7IGNoYW5nZWQgdG8ga2lsbCAtOQogICB3aGljaCBpcyBsaWtlbHkgc2FmZXIKICAgCiAgIGRvbid0IHNldCByZXR1cm5fdmFsdWUgdG8gMSBhZnRlciBraWxsaW5nIHNubXBkLCB3aGljaCBjYXVzZXMgc3B1cmlvdXMKICAgdGVzdCBmYWlsdXJlcwogICAKMjAwMS0wMy0xNCAxNDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBpcG5ldHRvbWVkaWEgaW5kZXhpbmcgb24gc29sYXJpcy4KICAgCjIwMDEtMDMtMTQgMTA6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMDoxOCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcXVpZXQgIndoaWNoIiBvdXRwdXQuICBuZXZlciBlbmRpbmcgc2FnYS4uLgogICAKMjAwMS0wMy0xNCAxMDowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIHF1aWV0IHVuc2lnbmVkIGxvbmcgY29tcGFyZS4KICAgCjIwMDEtMDMtMTQgMTA6MDAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgR2V0IGEgZGVjbCBvZiBpbl9hZGRyX3QgZnJvbSBuZXRpbmV0L2luLmgsIHdoZXJlIG5lY2Vzc2FyeS4KICAgCjIwMDEtMDMtMTQgMTA6MDAgIHNsaWYKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQXZvaWQgd2FybmluZ3Mgb2Ygc3RydWN0IHRpbWV2YWwgZGVjbCBpbiBzeXN0ZW0uaCBieSBpbmNsdWRpbmcgKnRpbWUuaCouCiAgIAoyMDAxLTAzLTE0IDA5OjQ3ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbAogICAKMjAwMS0wMy0xNCAwOTo0MCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgZG9uJ3QgcnVuIHRlc3RzIHdpdGhvdXQgbmVlZGVkIHByb2dyYW1zOiBzbm1wZCwgc25tcGdldCwgc25tcGdldG5leHQuCiAgIAoyMDAxLTAzLTE0IDA4OjI0ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUHJvdmlkZSBhbiBlbXB0eSBETExJQlMgdmFsdWUgZm9yIG5vbi1kbG1vZCB1c2VzLgogICAKMjAwMS0wMy0xNCAwNzozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGNhc3QgdV9sb25nIHRvIHVfY2hhciB3aGVuIHN0b3JpbmcgOC1iaXQgdmFsdWVzLgogICAKMjAwMS0wMy0xNCAwNzozMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHVuc2lnbmVkIGxlbmd0aCBjb21wYXJlcy4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy156mrZ2VyKQogICAKMjAwMS0wMy0xMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIGNoZWNrIGZvciBOVUxMcyBpbiBERUJVRyBtc2cKICAgCjIwMDEtMDMtMTIgMTQ6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIEZpeCBzb21lIG1pbm9yIGxlYWtzLgogICAKMjAwMS0wMy0xMiAxNDowNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTb21lIG1pbm9yIGZpeGVzIHRvIGFyZ3VtZW50IHByb2Nlc3NpbmcsIGluY2x1ZGluZyB0ZXJtaW5hdGluZyBzbm1wZCBvbgogICBleHRyYW5lb3VzIG5vbi1vcHRpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMy0xMCAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEJ1ZyAjNDA0OTg4OiBkb24ndCB1c2UgaXBzdGF0Lmlwc19mcmFndGltb3V0IGFzIGEgbnVtYmVyIG9mIHNlY29uZHMuCiAgIAoyMDAxLTAzLTA3IDEwOjI2ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIAogICBuZXcgREVMQVkgZnVuY3Rpb247IHN0YXJ0L3N0b3AgZGFlbW9ucyB1c2luZyBuZXcgU1RBUlRQUk9HL1NUT1BQUk9HIHdpdGggREVMQVk7CiAgIGxvZyBjb21tYW5kcyBpc3N1ZWQgYW5kIGZpbmFsIHJlc3VsdCB0byBTTk1QX1RNUERJUi9pbnZva2VkOwogICBzdXBwcmVzcyAia2lsbCIgb3V0cHV0IHRvIGhlbHAgQ3lnd2luIHVzZXJzIGhhcHB5LgogICAKMjAwMS0wMy0wNyAxMDoyMyAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgCiAgIGFkZCAtUyBwYXJhbWV0ZXIgZm9yIERFTEFZIHNlY29uZHM7IGFkZCB0cmFwIGZvciBpbnRlcnJ1cHQgY29udHJvbDsKICAgcGFzcyB0ZXN0IG51bWJlciBhbmQgZGlzcGxheS1oZWFkZXItb25seSB0byBldmFsX29uZXNjcmlwdC5zaDsKICAgYWRkIHdoaWNoIHRlc3QgdG8gdmVyYm9zZSBsb2NhdGluZyBtZXNzYWdlcyAoQ3lnd2luIHVzZXMgdHlwZSwgbm90IHdoaWNoKS4KICAgCjIwMDEtMDMtMDcgMTA6MjAgIHNsaWYKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaDoKCiAgIAogICAKICAgSW5jb3Jwb3JhdGUgdGVzdCBudW1iZXIgaW50byB0ZXN0IHJlc3VsdHMgZGlyIG5hbWUuCiAgIFByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRlc3QgbnVtYmVyIGFuZCBkaXNwbGF5LWhlYWRlci1vbmx5IGZsYWcuCiAgIAoyMDAxLTAzLTA3IDEwOjE5ICBzbGlmCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAKICAgCiAgICJtYWtlIGNsZWFuIiByZW1vdmVzIGFueSB0ZXN0IHJlc3VsdCBkaXJzICIvdG1wL3NubXAtdGVzdC0qIi4KICAgCjIwMDEtMDMtMDcgMTA6MTUgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgCiAgIFJlcGxhY2Ugc2xlZXAgd2l0aCBjb21tZW50ZWQgb3V0IERFTEFZIDsgZWFjaCBzdGFydC9zdG9wIGFjdGlvbiBub3cKICAgaW52b2tlcyBERUxBWS4KICAgCjIwMDEtMDMtMDcgMTA6MTQgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICAKICAgUmVwbGFjZSBzbGVlcCB3aXRoIERFTEFZLgogICAKMjAwMS0wMy0wNyAxMDoxMyAgc2xpZgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIAogICAKICAgQ2hhbmdlIGVsZW1lbnQgc2VwYXJhdG9yIHRvIFdpbjMyICc7JyBpbiBERUZBVUxUX01JQlMKICAgRGVjbGFyZSBXaW4zMiBoYXMgZ2V0cGlkIS4KICAgCjIwMDEtMDMtMDcgMTA6MTAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICBXaW4zMiBpbmNsdWRlIGlvLmggdG8gZGVjbGFyZSBta3RlbXAuCiAgIEV4cGFuZCB0aGUgY29tbWVudCBuZWFyIG1rdGVtcCB1c2FnZSB0byBleHBsYWluIHdoeSBpdCBpcyBuZWVkZWQuCiAgIAoyMDAxLTAzLTA3IDEwOjA5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgCiAgIAogICByZW1vdmUgdW5uZWNlc3NhcnkgaWZuZGVmIFdJTjMyLiAgaWZkZWYgU0lHQUxSTSBpcyBzdWZmaWNpZW50LgogICAKMjAwMS0wMy0wNyAxMDowNyAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgCiAgIAogICBXaW4zMiBpbmNsdWRlIHByb2Nlc3MuaCB0byBkZWNsYXJlIGdldHBpZC4KICAgCjIwMDEtMDMtMDcgMTA6MDYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIAogICAKICAgVXNlIHByb3BlciBkZWZpbmUgdG8gcXVhbGlmeSBpbmNsdWRlLWluZyBhIGhlYWRlci4KICAgCjIwMDEtMDMtMDcgMTA6MDQgIHNsaWYKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgCiAgIAogICBBcHBseSB0aGUgdGltZSBnb28gY29uc2lzdGVudGx5OiBtb3ZlIGhlYWRlciBpbmNsdWRlcyBvdXQgb2Ygc3lzdGVtLmguCiAgIAoyMDAxLTAzLTA2IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGZvcmNlIGluY2x1c2lvbiBvZiAtbGRsLgogICAKMjAwMS0wMy0wNSAwNjozMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgCiAgIAogICBGb2xsb3cgbWV0aG9kIHVzYWdlLCBkb24ndCBkZWNsYXJlIGdldEh3QWRkcmVzcyB1bmxlc3MgdXNlZC4KICAgCjIwMDEtMDMtMDUgMDY6MzAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICBSZW1vdmUgbmVzdGVkIHZhcmlhYmxlIGVwIC0gb25lIGFscmVhZHkgZXhpc3RzLgogICAKMjAwMS0wMy0wNSAwNjoyOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAKICAgCiAgIENvbW1lbnQgb3V0IGV4YW1wbGUgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCB1c2VkLgogICAKMjAwMS0wMy0wNCAxNzo0MSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICAKICAgCiAgIHBhdGNoIHRvIGJ1aWxkIG1vcmUgbW9kdWxlcywgaW5jbHVkaW5nIGFnZW50WCwgb24gV2luMzIgdXNpbmcgTVMtVkMuCiAgIAoyMDAxLTAzLTA0IDE3OjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIAogICAKICAgcGF0Y2ggdG8gYnVpbGQgbW9yZSBvZiB0aGUgYWdlbnQgdXNpbmcgTVMtVkMgb24gV2luMzIgcGxhdGZvcm0uCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgTVRBLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwKICAgUkVBRE1FLm1pYnMsIFRVTk5FTC1NSUIudHh0LCBpYW5hbGlzdCwgbWliZmV0Y2gsIHJmY2xpc3QsCiAgIHJmY21pYnMuZGlmZiwgc21pc3RyaXA6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BaWZUeXBlLU1JQiwgcGx1cyBhZGRpdGlvbiBvZiBSRUFETUUgYW5kIHRvb2xzIHRvIGdldAogICBhIGNvbXBsZXRlIHNldCBvZiBJRVRGIE1JQiBmaWxlcy4KICAgCjIwMDEtMDMtMDMgMDc6MTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICBSZW1vdmUgYW4gdW51c2VkIHByb3RvdHlwZQogICAKMjAwMS0wMy0wMyAwNjozNiAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBBZGQgYSBuZXcgJVAgZm9ybWF0dGluZyBzZXF1ZW5jZSB0byB1c2VyIHNwZWNpZmllZCBsb2cgZm9ybWF0cy4gSXQgcHJpbnQKICAgdGhlIHNlY3VyaXR5IGluZm9ybWF0aW9uIGZyb20gdGhlIFBEVSAoY29tbXVuaXR5LCB1c2VyLCBjb250ZXh0IGFzIGF2YWlsYWJsZSkKICAgQWxzbyBtb2RpZnkgdGhlIGRlZmF1bHQgdHJhcCBvdXRwdXQgdG8gdXNlIGl0LgogICAKMjAwMS0wMy0wMyAwNjoyMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IHNwZWNpZmllcnMgbGlrZSAlLjNzCiAgIAoyMDAxLTAzLTAzIDA2OjEwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHRoZSBwYXJzZXIgdG8gZGlhZ25vc2Ugb2lkIHNwZWNzIGxpa2U6Oj0geyBzaW5nbGUgfQogICBCZSBzaWxlbnQgZm9yIGludGVybmFsIGxpbmtzIHdoZW4gbW92aW5nIG5vZGVzIHRvIHRoZSBhZG9wdGlvbiBsaXN0LiBUaGlzCiAgIHNob3VsZCBoZWxwIGdpdmluZyBvbmx5IGEgc2luZ2xlIG1lc3NhZ2UgZm9yIG1pc3NpbmcgaW1wb3J0cyBvZiBlbnRlcnByaXNlcy4KICAgCjIwMDEtMDMtMDIgMTM6MjQgIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAKICAgCiAgIGNsZWFudXAgZm9yIE1TLVZDIFdpbjMyIGJ1aWxkCiAgIAoyMDAxLTAzLTAyIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBzb3VyY2VyZm9yZ2UgLT4gc291cmNlZm9yZ2UKICAgCjIwMDEtMDMtMDIgMDc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gZml4IHRpbWVzdGFtcHMgaW4gc3luY2hvbm91cyBjYXNlcwogICAKMjAwMS0wMy0wMiAwNjozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIHNubXBfb2lkX2NvbXBhcmUoKS4KICAgCjIwMDEtMDMtMDEgMTk6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yMSAxNTozMSAgbmJhCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zCiAgIAoyMDAxLTAyLTIxIDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTIxIDE0OjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBUcnkgZml4aW5nIGluY29uc2lzdGVudCBpbmRleGluZyBvbiBCU0QKICAgCjIwMDEtMDItMTkgMDg6NDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIAogICAKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNCAxODoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnICMxMzA3NDAgdXNpbmcgc3VnZ2VzdGVkIGNsb3NlKCkgd3JhcHBlciBhcm91bmQgbWtzdGVtcCgpCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MDQ6IEFkZCBzdXBwb3J0IGZvciBWMSB0cmFwcyBhbmQgaW50L2ludDMyIGRpZmZlcmVuY2VzCiAgIAoyMDAxLTAyLTA5IDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCBwcm94eS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDYgMTQ6MjYgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQWRkIGEgZGVwZW5kZW5jeSBmb3IgbGlic25tcAogICAKMjAwMS0wMi0wNiAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgSW1wbGVtZW50IHJhdyBpbnRlcnJ1cHQgYW5kIGNvbnRleHQgc3dpdGNoIGNvdW50ZXJzCiAgIAoyMDAxLTAyLTA2IDE0OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgTWFrZSBkbWFsbG9jIGhhcHB5IGJ5IGZpeGluZyBhIG1hbGxvYyByZWFkIG92ZXJydW4KICAgCjIwMDEtMDItMDYgMTQ6MTYgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYzoKCiAgIEJhY2twb3J0IC1PVCBvdXRwdXQgdG8gNC0yLXBhdGNoZXMgYnJhbmNoCiAgIAoyMDAxLTAyLTA2IDA2OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW50YXRpb24gZml4CiAgIAoyMDAxLTAxLTMxIDIzOjAyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IHZhbHVlIHZhbGlkYXRpb24gZm9yIHNubXBzZXQvc25tcHRyYXAKICAgCjIwMDEtMDEtMzEgMjM6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRml4IGJhZCByZXR1cm4gb2YgYSBwb2ludGVyIHRvIG5vbi1zdGF0aWMgc3RvcmFnZQogICAKMjAwMS0wMS0zMSAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBCYXJ0ZWxzIGZvciBmcmVlYnNkIGZpeGVzCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMjkgMTM6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgZml4IGJ1ZyAjMTMwNDEwOiAgc2V0IHRoZSB3cml0ZV9tZXRob2QgaW4gdmFyX3NtdXggYmVmb3JlIHJldHVybmluZwogICBOVUxMIHRvIG1ha2Ugc3VyZSB0aGF0IHNldHMgaGFwcGVuIG9uIE9JRHMgdGhhdCBkb24ndCBleGlzdCBmaXJzdC4KICAgCjIwMDEtMDEtMjkgMTM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IHN1Z2dlc3RlZCBpbiBidWcgIzEyOTk0ODogY2hlY2sgZm9yIC0gYXJndW1lbnRzIGF0IHRoZSBiZWdnaW5uaW5nCiAgIG9mIHRoZSBjb21tYW5kIGxpbmUgdG9rZW4gKGRvbid0IG1hdGNoIG1pYi0yLCBlZykuCiAgIAoyMDAxLTAxLTI5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBmaXggc3VnZ2VzdGVkIGluIGJ1ZyAjMTI5ODc2OiBjaGVjayBmb3IgaGludCAhPSBOVUxMIGJlZm9yZSBmcmVlaW5nLgogICAKMjAwMS0wMS0yNiAwNTo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIEZpeCBidWcgb24gRnJlZUJTRCB3aGVuIC9ldGMvcHJpbnRjYXAgaXMgZW1wdHkKICAgCjIwMDEtMDEtMjUgMTQ6MzggIG5iYQoKICAgKiBtaWJzL1JNT04tTUlCLnR4dDoKCiAgIFVwZGF0ZWQgdG8gUkZDIDI4MTkKICAgCjIwMDEtMDEtMjQgMjE6MzcgIG5iYQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgbGlicmFyaWVzIGJlZm9yZSBhZ2VudCBzbyB0aGF0IGxpYnRvb2wgY2FuIHJlbGluay4KICAgCjIwMDEtMDEtMjAgMDU6NTQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmM6CgogICBUd28gQ291bnRlcjY0IGdsaXRjaGVzIGRldGVjdGVkIGJ5IEphc29uIEdsb3Vkb24gPHNubXBAZ2xvdWRvbi5jb20+CiAgIAoyMDAxLTAxLTIwIDA1OjQ0ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIERvbnQgc2V0IHVwIHRoZSBzZWxlY3QgcGFyYW1ldGVycyBiZWZvcmUgY2FsbGluZyBpbnRlcnJ1cHQgaGFuZGxlcnMhCiAgIFRoYW5rcyB0byBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMS0yMCAwNTo0MiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBlbmNvZGluZyBvZiBCSVRTIHZhcmlhYmxlLCB0aGFua3MgdG8gRnJhbmsgU3RyYXVzcwogICAKMjAwMS0wMS0yMCAwNTozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgUmF3IElPIGNvdW50ZXJzIGZyb20gSm9jaGVuIEttaWV0c2NoCiAgIAoyMDAxLTAxLTIwIDA1OjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFByZXBhcmUgZm9yIG1vcmUgcmF3IGNvdW50ZXJzCiAgIAoyMDAxLTAxLTE1IDE1OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHVuZG8gYSBjaGFuZ2UgdGhhdCBzbmVha2VkIGluIGJ5IG1pc3Rha2UKICAgCjIwMDEtMDEtMTUgMTQ6MDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oOgoKICAgRXh0ZW5kIHRoZSBzeXN0ZW1TdGF0cy5jcHVSYXcgc2VjdGlvbiB0byBpbmNsdWRlIG1vcmUgcmF3IGNvdW50ZXJzIGZvciB2YXJpb3VzCiAgIG9wZXJhdGluZyBzeXN0ZW1zLiAgQmFzaWMgdGVzdGluZyBwZXJmb3JtZWQgZm9yIFNvbGFyaXMgYW5kIEZyZWVCU0QuIENvZGUKICAgZ3Vlc3N0aW1hdGUgZm9yIE5ldEJTRCBhbmQgQlNEaS4KICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY29tbWVudCBvdXQgcmVhbGx5IG9kZCAoYW5kIGJyb2tlbikgY2hlY2sgZnJvbSBhc25fYml0c3RyaW5nX2NoZWNrPz8/CiAgIAoyMDAxLTAxLTEyIDA3OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0xMCAyMTo1NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBjYWxsaW5nIG9mIGluaXRfY2FsbGJhY2tzIGV2ZW4gaWYgaW5pdF9zbm1wIGNhbGxlZCB3aXRoIE5VTEwgcGFyYW1ldGVyCiAgIAoyMDAxLTAxLTEwIDIxOjUzICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGJhZGx5IGFwcGxpZWQgcHJldmlvdXMgcGF0Y2gKICAgCjIwMDEtMDEtMTAgMjE6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBGaXggdXNhZ2UgbWVzc2FnZSAoLWUgaXMgbm93IC1DZSkKICAgCjIwMDEtMDEtMTAgMjE6NTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeCBhIGJhZCBpcFJvdXRlUHJvdG9jb2wgcmV0dXJuCiAgIAoyMDAxLTAxLTEwIDIxOjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgRml4IHByb2JsZW0gd2hlbiBydW5uaW5nIC0td2l0aG91dC1yb290LWFjY2VzcyBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvCiAgIEJlcnQgRHJpZWh1aXMuCiAgIAoyMDAxLTAxLTEwIDIxOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgVXNlIHRoZSBpZnNwZWVkIGF0dHJpYnV0ZSBmcm9tIGRyaXZlciB3aGVuIGF2YWlsYWJsZQogICAKMjAwMS0wMS0wOSAwNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQXBwbHlpbmcgcGF0Y2ggZm91bmQgaW4gYnVnICMxMjcyOTk6CiAgICAgLSBzd2l0Y2ggaWZBZG1pbiBhbmQgaWZPcGVyU3RhdHVzIG1lYW5pbmdzIHRvIG1hdGNoIGtlcm5lbCBwYXJhbWV0ZXJzIGJldHRlci4KICAgCjIwMDEtMDEtMDkgMDY6MjEgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDggMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFBhdGNoIGZyb20gQW5kZXJzIEVsbGVmc3J1ZAogICAgIC0gZml4IGhyX3N3cnVuIHdoZW4gcHJvZ3JhbXMgaGF2ZSBleGl0ZWQgc28gd2UgZG9uJ3QgdHJ1bmNhdGUKICAgICAgIGdldG5leHQgcXVlcmllcy4KICAgCjIwMDEtMDEtMDggMDg6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGZpeCBCSVRTIGVuY29kaW5nIGxlbmd0aCB3aGVuIG1pYiBrbm93bGVkZ2UgaXMgYXZhaWxhYmxlLgogICAKMjAwMS0wMS0wNCAyMzoxOCAgbmJhCgogICAqIGFwcHMvOiBzbm1wc2V0LmMsIHNubXB0cmFwLmM6CgogICBUcnkgZml4aW5nIHByb2JsZW1zIHdpdGggc25tcHNldCBvZiBuZWdhdGl2ZSB2YWx1ZXMKICAgCjIwMDEtMDEtMDQgMjM6MTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYzoKCiAgIEFkZCB0aGUgcmF3IGNwdSBjb3V0ZXJzIGZvciBCU0RpLiBDb3VydGVzeSBCZXJ0IERyaWVodWlzLgogICAKMjAwMS0wMS0wNCAyMzoxMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBTYXZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwogICAKMjAwMS0wMS0wNCAyMzowOSAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEFkZCBtaXNzaW5nIGRtYWxsb2Mgc3VwcG9ydCBmb3Igc29tZSBmaWxlcwogICAKMjAwMS0wMS0wNCAyMzowNCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgRW5zdXJlIHNvcnQgb3JkZXIgZm9yIGNvbmZpZy5oLmluCiAgIAoyMDAxLTAxLTA0IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBzZW1pLWNvbG9uIHByb2JsZW0uICBQYXRjaCAjMTAzMTAxLgogICAKMjAwMS0wMS0wMyAwNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgL3Byb2MvJWQvY21kbGluZSBtYXkgYmUgYW4gZW1wdHkgZmlsZSBmb3Igc29tZSBwcm9jZXNzZXMuICBSZXR1cm4gIiIgaWYgc28uCiAgIAoyMDAxLTAxLTAyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgYWRkIGEgIiVzIiBmb3JtYXR0aW5nIHN0cmluZyB0byB0aGUgc3lzbG9nKCkgY2FsbCAocmVkaGF0IGJ1ZyAjMTgxNTMpLgogICAKMjAwMC0xMi0yOSAxMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAtIGJldHRlciBjaGVja2luZyBmb3IgZm9ybWF0dGluZyBvZiB0aGUgL3Byb2MvbmV0L2RldiBmaWxlIHRvIGF2b2lkCiAgICAgICBsaW51eCBjb3JlIGR1bXBzIHdoZW4gdGhlIGtlcm5lbCBtaXMtYmVoYXZlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgIFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwgVDExM2FnZW50eHRyYXA6CgogICAtIHRyYXAgQVBJIHRlc3Rpbmcgc3VpdGUgZW5oYW5jZWQgdG8gdGVzdCBtb3JlIGNhc2VzLgogICAKMjAwMC0xMi0yNyAxNjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmg6CgogICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgd29yayBtb3JlIHZpYSBjYWxsYmFja3MgYW5kIHJlbW92ZSBpZmRlZnMgaW4KICAgICBhZ2VudF90cmFwLmMKICAgLSBNYWtlIHRoZSBhZ2VudF90cmFwLmMgZmlsZSBjaGVjayBmb3IgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBhbmQKICAgICBoYW5kbGUgaXQgaW50ZXJuYWxseSB1c2luZyB0aGUgb2xkIHRyYXBzaW5rIHN1cHBvcnQgaWYgbm8gY2FsbGJhY2sKICAgICBpcyBmb3VuZC4KICAgLSBUaGlzIGZpeGVzIHRoZSBwcm9ibGVtIHdoZW4gaW5pdF9taWJfbW9kdWxlcygpIGlzbid0IGNhbGxlZCBpbiBzdWJhZ2VudHMuCiAgIAoyMDAwLTEyLTI3IDE2OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBtYWtlIHRoZSBleGFtcGxlIHRyYXBzIGJlIHNlbnQgdXNpbmcgYSBlbnRlcnByaXNlIHNwZWNpZmljIHRyYXAgb2YgOTkKICAgcmF0aGVyIHRoYW4gMy4gIFdlIG5lZWQgdG8gZGVmaW5lIGl0IGluIHRoZSBtaWIgc3RpbGwuCiAgIAoyMDAwLTEyLTI3IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBicm9rZW4gY29tcGlsZXIgcHJlY2VkZW5jZSBhcyByZXBvcnRlZCBpbiBzdXBwb3J0ICMxMTA0NzMuCiAgIAoyMDAwLTEyLTIyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb3VudGVyNjQgcmV2ZXJzZSBlbmNvZGluZ3MuCiAgIAoyMDAwLTEyLTIyIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0yMSAxNDo0MyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGZpeCBwcm9ibGVtIHdpdGggcG9zaXRpb25hbCBjb21tdW5pdHkgYXJndW1lbnQgdG8gc25tcG5ldHN0YXQKICAgCjIwMDAtMTItMjEgMTQ6MzcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogbWFrZSBzdXJlIGluaXRfbWliX2ludGVybmFscyBpcyBjYWxsZWQgYmVmb3JlIGRvaW5nIGFueXRoaW5nCiAgIAlzZXJpb3VzIGluIGluaXRfbWliCiAgIAoyMDAwLTEyLTIxIDA4OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHN1cHBvcnQgZm9yIEJJVFMKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjEuMiAtPiBWNC4yCgoyMDAwLTEyLTA0IDE1OjMwICBoYXJkYWtlcgoKCS0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCgkKMjAwMC0xMi0wNCAxNDo0OCAgbWFyegoKCWVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwoJCjIwMDAtMTItMDQgMTE6MDUgIGhhcmRha2VyCgoJLSAoQUdFTlQudHh0LCBGQVEsIFJFQURNRSk6IGNvbnZlcnQgdXJsJ3MgdG8gd3d3Lm5ldHNubXAub3JnLgoJCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgoJLSAoTkVXUyk6IGFnZW50eCBub3RlIGNoYW5nZXMuCgkKMjAwMC0xMi0wMyAwNzoyOSAgbmJhCgoJLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KCQlBZGQgYW4gYWx0ZXJuYXRlIGZvcm1hdCBmb3IgdXAtdGltZSBkaXNwbGF5cy4KCQoyMDAwLTEyLTAyIDE4OjIyICBtYXJ6CgoJZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKCQoyMDAwLTEyLTAxIDE2OjM2ICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCgktIChBR0VOVC50eHQpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCgktIChUT0RPKTogcmVmZXJlbmNlIG5ldC1zbm1wLWNvZGVycy4KCQoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE2OjMzICBoYXJkYWtlcgoKCS0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgoJCjIwMDAtMTItMDEgMTY6MzEgIGhhcmRha2VyCgoJLSAoUE9SVElORyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKCS0gKG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZik6IG1lbnRpb24gdGhlIGZhY3QgdGhhdCBzbm1wdjMgdHJhcHMgYXJlCgkgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KCQoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKCS0gKE5FV1MpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCgktIChSRUFETUUpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCgktIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgoJCjIwMDAtMTItMDEgMTQ6MzYgIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KCQoyMDAwLTEyLTAxIDE0OjI4ICBuYmEKCgktIG1pYi5jOiBkaWFnbm9zZSB3cm9uZyBxdW90aW5nIGluIGluZGljZXMKCQoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCgktIHBhcnNlLmM6IGFkZCBSRkMtMTIxMyBhcyBhbiBhbGlhc2UgZm9yIFJGQzEyMTMtTUlCICh1c2VkIGluIG1hbnkgbWlicykKCQoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCgktIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKCQoyMDAwLTEyLTAxIDE0OjE3ICBuYmEKCgktIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CgkKMjAwMC0xMi0wMSAxNDoxNCAgbmJhCgoJLSBzdWJhZ2VudC5jOiBzdXBwbHkgYSBtaXNzaW5nIHJldHVybiB2YWx1ZQoJCjIwMDAtMTItMDEgMTA6MDQgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBxdW90ZSB0aGluZ3Mgd2l0aCBzcGFjZXMgaW4gdGhlbS4KCQoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCgkKMjAwMC0xMi0wMSAwOToxNSAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9tb25pdG9yKTogY2xlYW51cHMuCgkKMjAwMC0xMi0wMSAwOToxNCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgoJCjIwMDAtMTItMDEgMDk6MTEgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgpOiB1cGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTItMDEgMDk6MTAgIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTEyLTAxIDA3OjU5ICBoYXJkYWtlcgoKCS0gKGFnZW50L2FnZW50X3RyYXAuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CgkgIC0gc3VwcG9ydCB2Mi0+djEgdHJhcCBjb252ZXJzaW9uLgoJCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgoJCjIwMDAtMTItMDEgMDc6NDIgIG1hcnoKCglhZGRpdGlvbmFsIGZpeGVzIHRvIHN1cHBvcnQgdGFyZ2V0dGVkIGJ1aWxkcyBvZiBwZXJsL1NOTVAgdXNpbmcgLU5FVC1TTk1QLVBBVEggKGFuZCB3aGl0ZSBzcGFjZSByZW1vdmFsIGFzIG15IGVtYWNzIGtpbmRseSBkb2VzIHRoYXQgZm9yIG1lPykKCQoyMDAwLTExLTMwIDE0OjA2ICBuYmEKCgktIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCgkKMjAwMC0xMS0zMCAxNDowNCAgbmJhCgoJLSBzbm1wZC5jb25mLjUuZGVmOiBmaXggZm9ybWF0dGluZyBvZiBzbXV4cGVlciB0b2tlbgoJCjIwMDAtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgoJLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTExLTMwIDEwOjE4ICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBiYWQgc2V0cyBmb3IgYWdlbnR4LgoJCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgoJLSAob3YvUkVBRE1FKTogbWlub3IgY29ycmVjdGlvbnMsIHByb2JhYmx5IHN0aWxsIGluY29ycmVjdC4KCQoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAoJICBzeXN0ZW0sIHRyYXBzaW5rcyk6CgkgIC0gZ3JvdXBpbmcgc3VwcG9ydC4KCSAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgoJICAtIG9wZXJhdGlvbiBtb2RlIHN1cHBvcnQgKHNldHRpbmcgdXNlciwgZ3JvdXAsIHBvcnRzLi4uKQoJCjIwMDAtMTEtMzAgMDk6MTMgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2F2ZSBhIHdhcm5pbmcgaGVhZGVyIGF0IHRoZSB0b3Agb2YgdGhlCgkgIHBlcnNpc3RlbnQgZGF0YSBmaWxlLgoJCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jKTogQ2xlYW51cCBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCgkKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogc2V0IERTX0FHRU5UX05PX1JPT1RfQUNDRVNTIGluIC1IIGhlbHAgb3V0cHV0LgoJCjIwMDAtMTEtMzAgMDk6MDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtZW50aW9uIHRoZSBUVU5ORUwtTUlCIHN1cHBvcnQuCgkKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKCVVwZGF0ZSBlLW1haWwgYWRkcmVzcyBmb3IgU2xpZmNhawoJCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCglmaXhlZCBvcmRlciBvZiBmdW5jdGlvbiBjaGVja2luZyBzbyB0aGF0IHZzbnByaW50ZiBpcyBub3QgZm91bmQgaW4gbGliZGIgKEJTRCBkYikgYnkgbWlzdGFrZQoJCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCglwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgoJCjIwMDAtMTEtMjggMTg6MDAgIG1hcnoKCglwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgoJCjIwMDAtMTEtMjcgMTQ6MzcgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvYmFzaWNfc2V0dXApOiBiYXNpYyBzZXR1cCBzZXJpZXMgb2YgcXVlc3Rpb25zLgoJCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvYWNsKTogdHlwb3MuCgkKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZik6CgkgIC0gYWRkIHN1cHBvcnQgZm9yICJncm91cHMiIG9mIGl0ZW1zLgoJICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgoJCjIwMDAtMTEtMjcgMTQ6MzQgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCk6IHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZSByZWZlcmVuY2UuCgkKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgoJCjIwMDAtMTEtMjcgMTM6NDIgIG5iYQoKCS0gc25tcC5jb25mLjUuZGVmOiBkb2N1bWVudCB0b2tlbnMgZXh0ZW5kZWRJbmRleCBhbmQgbm9SYW5nZUNoZWNrCgkKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgoJLaBwYXJzZS5jOiBmaXggYSBDKysgc3R5bGUgY29tbWVudAoJCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKCS0gbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9uZXRic2QxLmM6IG1pbm9yIGZpeGVzIGZvciBOZXRCU0QgMS41LCBPUGVuQlNEIDIuNgoJCjIwMDAtMTEtMjIgMTM6NDggIGhhcmRha2VyCgoJLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgoJICAtIGRvbid0IGV4cG9ydCBhbiBpbnRlcm5hbCB2YXJpYWJsZS4KCQoyMDAwLTExLTIxIDE1OjE3ICBuYmEKCgktIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAoJCjIwMDAtMTEtMTkgMTM6MDMgIG5iYQoKCS0gU05NUC54cywgbWliMmMudmFydHlwZXMuY29uZjogVGhlIHJlY2VudCBzcGVjaWFsaXNhdGlvbiBvZiB0aGUgSW50ZWdlcgoJCXR5cGVzIGluIHRoZSBwYXJzZXIgY3JlYXRlZCBwcm9ibGVtcyBmb3IgdGhlIHBlcmwgbW9kdWxlIGFuZCBpbiB0dXJuCgkJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTIgOi0oCgkKMjAwMC0xMS0xOSAxMjo1OCAgbmJhCgoJLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCgkJYW5kIHJ1biB0aGUgdG9vbHMgdW5kZXIgY3lnd2luLiBIYXZlbid0IHRyaWVkIHRoZSBhZ2VudCB5ZXQgOi0pCgkKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUyICkKCQoyMDAwLTExLTE4IDA3OjEyICBoYXJkYWtlcgoKCS0gKFQwNDlzbm1wdjNpbmZvcm0pOiB2MyBpbmZvcm0gdGVzdCBhZGRlZC4KCQoyMDAwLTExLTE3IDExOjAxICBuYmEKCgktIG1pYi5jLCBzbm1wX2FwaS5jOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIGJhZCBzbm1wc2V0IGNhbGxzIGFuZCBiYWQKCQlpbmRpY2VzLiBBbHNvIGZpeCBhIGJ1ZyB3aXRoIHF1b3RlZCBpbmRpY2VzLgoJCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgoJLSAodGVzdHMvVDA1MHNubXB2M3RyYXApOiB0ZXN0IGZvciBzbm1wdjMgdHJhcHMuCgkKMjAwMC0xMS0xNyAxMDozMCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KCQoyMDAwLTExLTE3IDEwOjI2ICBuYmEKCgktIElBTkFpZlR5cGUtTUlCLnR4dDogdXBkYXRlIGZyb20gSUFOQQoJCjIwMDAtMTEtMTcgMDg6MzIgIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CgkgIC0gZml4IG1lbW9yeSBsZWFrcy4KCSAgLSBmaXggYWdlbnR4IHByb2JsZW1zIHdpdGggYmFkIHNldHMuCgkKMjAwMC0xMS0xNiAxNzo1NSAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgoJCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCgkKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KCQoyMDAwLTExLTE2IDE3OjUyICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KCQoyMDAwLTExLTE2IDE3OjUwICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCgkgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCk6CgkgIC0gc3VwcG9ydCAtSXIgZm9yICJkb250IGNoZWNrIHJhbmdlL3R5cGUgdmFsdWVzIiAobGV0dGVyIHIgc3ViamVjdCB0byBkZWJhdGUpLgoJCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgoJLSAoY2FsbGJhY2suYyk6IGJldHRlciBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGRpc3BsYXkgYSBjYWxsYmFjayBjb3VudCB3aGVuIGRvbmUuCgkKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCgktIChUMTEzYWdlbnR4dHJhcCk6IEEgbmV3IHRlc3QgdG8gdGVzdCB0cmFwIHN1cHBvcnQgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgoJCjIwMDAtMTEtMTYgMTY6NTAgIGhhcmRha2VyCgoJLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTY6NDkgIGhhcmRha2VyCgoJLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxNTo0NyAgbmJhCgoJLSBnZXRvcHQuYzogcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCQoyMDAwLTExLTE2IDE1OjMxICBuYmEKCgktIHBhcnNlLltjaF0sIG1pYi5jLCBzbm1wX2FwaS5jOiByZW5hbWUgVFlQRV9VSU5URUdFUjMyIGJhY2sgdG8gVFlQRV9VSU5URUdFUgoJCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKCS0gc25tcHRyYXBkLmMsIHNubXB0cmFwZC5jb25mOiBuZXcgY29uZmlnIGRpcmVjdGl2ZXMgZm9ybWF0MSBhbmQgZm9ybWF0MiB0bwoJCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCgkKMjAwMC0xMS0xNiAxMzo1MCAgbmJhCgoJLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKCQlmb3Igc25tcHNldCBhbmQgc25tcHRyYXAuCgkKMjAwMC0xMS0xNiAxMzo0NyAgbmJhCgoJLSBwYXJzZS5jOiBGaXggREVGVkFMIHBhcnNpbmcgZm9yICBPQkpFQ1QgSURFTlRJRklFUiBvciBCSVRTIHZhbHVlcwoJCShpLmUuIERFRlZBTCB7IHsgMCAwIH0gfSBldGMpCgkKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCgktIChUMDU4YWdlbnRhdXRodHJhcCk6IGFkZCBhIGdyZWF0ZXIgdGltZW91dCB0byB0aGUgZ2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxMTozNSAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMpOgoJICAtIHNlbmQgYSB2MmMgdHJhcCB1c2luZyBpdHMgb3duIGRhdGEsIG5vdCB0aGUgc3lzdGVtX21pYidzLgoJICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCgkKMjAwMC0xMS0xNiAxMTozNCAgaGFyZGFrZXIKCgktIChUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsIFQwNThhZ2VudGF1dGh0cmFwKToKCSAgLSBuZXcgdGVzdHMgZm9yIHRyYXBzIHNlbnQgYnkgdGhlIGFnZW50LgoJCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBEb24ndCBkZWxldGUgUkVBRE9OTFkgdHJhcCBzZXNzaW9ucy4KCQoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0pOiB0ZXN0IGluZm9ybSBzZW5kaW5nL3JlY2VpdmluZy4KCQoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgoJCjIwMDAtMTEtMTUgMTU6NDggIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkX2xvZy5jKTogdXNlIFNOTVBfTUFYQlVGIGluc3RlYWQgb2YgYSBsb2NhbCBsZW5ndGggZGVmaW5pdGlvbi4KCQoyMDAwLTExLTE1IDE0OjE4ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggbWFrZSdpbmcgaW4gcmVtb3RlIGRpcmVjdG9yeQoJCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKCS0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KCQoyMDAwLTExLTE1IDE0OjEwICBuYmEKCgktIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgoJCjIwMDAtMTEtMTUgMTQ6MDkgIG5iYQoKCS0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKCQoyMDAwLTExLTE1IDE0OjAzICBuYmEKCgktIHNubXB0cmFwZF9sb2c6IGZpeCBhIGJ1ZmZlciB0aGF0IGlzIHdheSB0b28gc2hvcnQgZm9yIGEgdHJhcCB3aXRoIGp1c3QgYQoJCXNpbmdsZSBwYXJhbWV0ZXIuIEZpeCBhIGJhZCBsaW1pdCB0ZXN0IGluIHN0cl9hcHBlbmQuCgkKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCgkKMjAwMC0xMS0xNSAxMzo1OCAgbmJhCgoJLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKCQlVbnNpZ25lZDMyLCBVSW50ZWdlcjMyLgoJCjIwMDAtMTEtMTUgMTM6NTUgIG5iYQoKCXNubXBfYXBpLmM6IHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKCQoyMDAwLTExLTE1IDA3OjQ5ICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5jLCBzdWJhZ2VudC5jKTogUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkOgoJICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCgkgICAgZXJyb3IgY29uZGl0aW9uIGluc3RlYWQuCgkKMjAwMC0xMS0xMiAwODowOCAgaGFyZGFrZXIKCgktICh1Y2REZW1vUHVibGljLmMpOiBhZGQgTlVMTCB0byBlbmQgb2YgZGVtbyBzdHJpbmcgYW5kIGNoZWNrIGZvciBsZW49MC4KCQoyMDAwLTExLTEyIDA0OjQ1ICBuYmEKCglzbm1wX2FwaS5jOiBNYWtlIHN1cmUgdGhlIG5vUmFuZ2VDaGVjayB0b2tlbiBpcyBhIGJvb2xlYW4KCQoyMDAwLTExLTEyIDA0OjQxICBuYmEKCgktIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCgkKMjAwMC0xMS0xMiAwNDozNiAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLmM6IHVzZSBjb25maWdfcGVycm9yIGZvciBhIGJldHRlciBlcnJvciBtZXNzYWdlCgkKMjAwMC0xMS0xMiAwNDozNCAgbmJhCgoJLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTEtMTIgMDQ6MzMgIG5iYQoKCS1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCgkKMjAwMC0xMS0xMiAwNDozMiAgbmJhCgoJRml4IGEgYm9ndXMgI2lmZGVmCgkKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCgkKMjAwMC0xMS0xMCAwODo1NiAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwKToKCSAtIGZpcnN0IHBhc3MgYXQgYSB0ZXN0aW5nIHNjcmlwdCB0byB0ZXN0IHRyYXAgZnVuY3Rpb25hbGl0eS4KCSAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCgkKMjAwMC0xMS0xMCAwODo1NSAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZC5jKToKCSAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgoJICAtIGRvbid0IGNsb3NlIG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4gIFRoZXJlIHNob3VsZG4ndCBiZSBhbnkuCgkKMjAwMC0xMS0xMCAwODo1MyAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZF9sb2cuYyk6IHByb3Blcmx5IG51bGwgdGVybWluYXRlIGxvZyBzdHJpbmdzLgoJCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogYXR0ZW1wdCB0byBpbXBsZW1lbnQgYSAtLXdpdGgtcnNhcmVmIGZsYWcuCgkKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCgktIChSRUFETUUsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCgkKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCgktIChORVdTLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgoJCjIwMDAtMTEtMDkgMTQ6NTYgIGhhcmRha2VyCgoJLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KCQoyMDAwLTExLTA5IDE0OjUzICBoYXJkYWtlcgoKCS0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCgkKMjAwMC0xMS0wOCAyMzozMyAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZml4IC1IIG91dHB1dC4KCQoyMDAwLTExLTA4IDIzOjAyICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IG1ha2UgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBjYWxsIHJ1bl9hbGFybXMoKS4KCQoyMDAwLTExLTA4IDIyOjQ1ICBoYXJkYWtlcgoKCS0gKGRpc2tpby5jKTogZml4IE9JRC4KCQoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKCS0gKFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIE1hcmsgQ2F2YWdlIGZvciBkZWZhdWx0IHZhbHVlIHN1cHBvcnQuCgkKMjAwMC0xMS0wOCAxNzowMyAgaGFyZGFrZXIKCgktIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IG1pbmltYWwgREVGVkFMIHBhcnNpbmcgc3VwcG9ydC4KCQoyMDAwLTExLTA4IDE2OjIwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KCQoyMDAwLTExLTA3IDE1OjE1ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKCSAgYWdlbnQvc25tcGQuYyk6CgkgIC0gdWlkL2dpZCBjaGFuZ2VzLgoJCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgoJLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgoJCjIwMDAtMTEtMDcgMTE6MzAgIGhhcmRha2VyCgoJLSAoU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMpOiBQYXRjaCBmcm9tIEpvZSBDbGFya2U6CgkgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KCSAgLSBhY2Nlc3MgdG8gdHJhcCB2YXJiaW5kcy4KCSAgLSByYW5nZSBhY2Nlc3MuCgkKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCgkKMjAwMC0xMS0wNyAxMDo1OCAgaGFyZGFrZXIKCgktIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBpbXBsZW1lbnQgYSBmaW5pc2goKSBjYWxsLgoJCjIwMDAtMTEtMDcgMTA6NTQgIGhhcmRha2VyCgoJLSAoU05NUC9TTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgoJCjIwMDAtMTEtMDcgMTA6NDggIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCgkKMjAwMC0xMS0wNyAxMDo0MSAgaGFyZGFrZXIKCgktIChTTk1QLnBtKTogZml4IGlpZCBwYXJzaW5nIHdpdGggcmVzcGVjdCB0byBtaWIgbm9kZXMgd2l0aCBhIC0gaW4gaXQuCgkKMjAwMC0xMS0wNyAxMDoyOSAgaGFyZGFrZXIKCgktIChpZl9maWVsZHMuaCwgaW50ZXJmYWNlcy5jLCBpcE1lZGlhLmMsIGlwUm91dGUuYywgdGNwLmMsIHRjcFRhYmxlLmMsCgkgIHVkcC5jLCB1ZHBUYWJsZS5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIG1pYkpKIGZpeGVzIFtGcmVlQlNEL290aGVyIEJTRCdzXS4KCQoyMDAwLTExLTA3IDEwOjEzICBoYXJkYWtlcgoKCS0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsCgkgIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgoJCjIwMDAtMTEtMDcgMDg6MzMgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCgkKMjAwMC0xMS0wNyAwNzoyNCAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCgkKMjAwMC0xMS0wNiAxMTowMCAgaGFyZGFrZXIKCgktIChtZDUuYyk6IGNoZWNrIHRvIHNlZSB0aGF0IE1Ec2lnbigpIGRhdGEgbGllcyBvbiBhIDMyIGJ5dGUgYm91bmRyeS4KCSAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCgkgIC0gZml4ZXMgYnVnICMxMjE3NS4KCQoyMDAwLTExLTAzIDE3OjU0ICBoYXJkYWtlcgoKCS0gKG1pYjJjKTogc29ydCBPSURzIHByb3Blcmx5LgoJCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgoJCjIwMDAtMTEtMDMgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgoJICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCgkKMjAwMC0xMS0wMyAxNToyOSAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCgkKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgoJQ2xlYW4gdXAgc29tZSB1bnVzZWQgdmFyaWFibGVzIGV0Yy4KCQoyMDAwLTExLTAyIDIyOjE2ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggc29tZSAkKHNyY2RpcikgcmVmZXJlbmNlcyB3aGVuIHJ1bm5pbmcgb3V0c2lkZSBzb3VyY2UKCQoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCgktIHNubXB0cmFwZC5jOiBmaXggdGhlIGZvcm1hdCBzdHJpbmcgZm9yIGZvcm1hdF90cmFwCgkKMjAwMC0xMS0wMiAyMjoxNCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogcmVtb3ZlIHNvbWUgZHVwbGljYXRlcyBmcm9tIGZpbGUgbGlzdHMKCQoyMDAwLTExLTAyIDIyOjEyICBuYmEKCglEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KCQoyMDAwLTExLTAyIDIyOjExICBuYmEKCglEb2N1bWVudCB0aGUgc3lzc2VydmljZXMgdG9rZW4KCQoyMDAwLTExLTAyIDE2OjE3ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCgkKMjAwMC0xMS0wMiAxNjoxNiAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogY2hhbmdlIGN2cyBhcmNoaXZlIHNpdGUgYW5kIHBhY2thZ2UgbmFtZS4KCQoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KCQoyMDAwLTExLTAxIDE2OjM2ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTEgKQoJCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgoJLSAoVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWwpOiBwcm94eSB0ZXN0IHN1aXRlLgoJCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCk6CgkgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCgkKMjAwMC0xMS0wMSAxMDoyMiAgaGFyZGFrZXIKCgktIChUMTEyYWdlbnR4c2V0ZmFpbCk6IHRlc3QgZm9yIGFnZW50eCBzZXRzIHRoYXQgc2hvdWxkIGZhaWwgcHJvcGVybHkuCgkKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgoJLSB0Y3BUYWJsZS5jOiByZW1vdmUgYW4gdW5uZXNjZXNzYXJ5ICNpbmNsdWRlCgkKMjAwMC0xMC0zMSAxNDoyOCAgbmJhCgoJLSBzbXV4LmM6IGZpeCB3cm9uZyB2YXJpYWJsZSBsZW5ndGgKCQoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCgktIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCgkKMjAwMC0xMC0zMSAxNDoyMSAgbmJhCgoJLSBtYW4vc25tcGQuY29uZjogZml4IGEgdHlwbwoJCjIwMDAtMTAtMzEgMTI6NDEgIG5iYQoKCS0gbWliLmM6IGFkZCAtT1ggb3V0cHV0IGZvcm1hdCwgZm9yIGp1c3QgYW5vdGhlciB3YXkgb2YgcHJpbnRpbmcgaW5kaWNlcwoJCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKCS0gaW50ZXJmYWNlLmM6IGFkZCAiaW50ZXJmYWNlIiBjb25maWcgZm9yIHVuZ3Vlc3NhYmxlIGludGVyZmFjZSB0eXBlL3NwZWVkCgkKMjAwMC0xMC0zMSAxMjoyNSAgbmJhCgoJLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCgkKMjAwMC0xMC0zMSAxMjowNCAgbmJhCgoJLSBwcm90b2NvbC5jOiBjbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMzEgMTA6MTMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogcGF0Y2ggIzEgZnJvbSBidWcgIzExNzI3MyBhcHBsaWVkIHRvIGZpeCBzbXV4IHNvY2tldCBwcm9ibGVtcy4KCQoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKCS0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KCQoyMDAwLTEwLTMxIDA3OjU0ICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgc25tcE5vdGlmeVRhYmxlLmgpOiBQYXRjaCBmcm9tIERhdmU6CgkgIC0gZml4IG5vdGlmaWNhdGlvbnMgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgoJCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCgkKMjAwMC0xMC0zMCAyMTo0MiAgaGFyZGFrZXIKCgktIChldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0KToKCSAgLSBmaXggYnVnICMzODIKCSAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KCQoyMDAwLTEwLTMwIDEzOjQ1ICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCgkKMjAwMC0xMC0zMCAxMTo0NiAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KCQoyMDAwLTEwLTMwIDExOjQzICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KCQoyMDAwLTEwLTMwIDExOjEzICBuYmEKCgktIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAoJCWFuZCBhZGQgc3VwcG9ydCBmb3IgKkJTRCAoaW5jbHVkaW5nIE9wZW5CU0QpCgkKMjAwMC0xMC0zMCAxMTowNyAgbmJhCgoJLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMzAgMTE6MDQgIGhhcmRha2VyCgoJLSAodGVzdGluZy90ZXN0cy9UMTAxYWdlbnR4LCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQpOgoJICAtIHJlbmFtZWQgdGhlIGFnZW50eCB0ZXN0IHNjcmlwdC4KCQoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGRvbid0IGFkZCAtYyBDT05GSUdGSUxFIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCgkKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogZXJyb3Igd2hlbiBwYXJzaW5nIC1YIGZvciBub24tYWdlbnR4IGJ1aWxkcy4KCQoyMDAwLTEwLTI3IDExOjI5ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCgkKMjAwMC0xMC0yNyAxMDo0MSAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCgkKMjAwMC0xMC0yNyAxMDo0MCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KCQoyMDAwLTEwLTI3IDEwOjA4ICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KCQoyMDAwLTEwLTI2IDE3OjUxICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KCQoyMDAwLTEwLTI2IDE3OjQ4ICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCgkKMjAwMC0xMC0yNSAxNzo0NCAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogQWRkIC1YIG9wdGlvbiB0byBzbm1wZCB0byBydW4gYXMgYSBzdWJhZ2VudC4KCQoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBmaXggZm9yIGNhc2VzIHdoZW5lIGRlYnVnZ2luZyBpcyBhbHdheXMgb2ZmLgoJCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgoJCjIwMDAtMTAtMTYgMDM6MTMgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgoJCVRoaXMgYWxsb3dzIGl0IHRvIGJlIGNhY2hlZCBjb3JyZWN0bHkgZm9yIG11bHRpLXBhc3MgU0VUIGhhbmRsaW5nLgoJCjIwMDAtMTAtMTYgMDM6MTEgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgbW9kZSBpbmZvcm1hdGlvbgoJCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KCQoyMDAwLTEwLTE2IDAxOjU2ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRG9uJ3QgZnJlZSBjYWxsYmFjayBkYXRhIHN0cnVjdHVyZS4KCQlUaGlzIGhvbGRzIGluZm9ybWF0aW9uIHRoYXQgbmVlZHMgdG8gcGVyc2lzdCBhY3Jvc3MgbXVsdGktcGFzcyByZXF1ZXN0cy4KCQlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCgkJY29ycmVjdCBwbGFjZSB0byBoYW5kbGUgdGhpcy4KCQoyMDAwLTEwLTEyIDE0OjUyICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgoJCjIwMDAtMTAtMTIgMTQ6MjQgIGhhcmRha2VyCgoJLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKCQoyMDAwLTEwLTEyIDE0OjA4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KCQoyMDAwLTEwLTEyIDE0OjAxICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE1hdHQgQnJhaXRod2FpdGU6CgkgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCgkKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCgktIChUVU5ORUwtTUlCLnR4dCk6IFRVTk5FTC1NSUIgZGVmaW5pdGlvbi4KCQoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCgkKMjAwMC0xMC0xMiAxMzo0NyAgaGFyZGFrZXIKCgktICh0dW5uZWwuaCwgdHVubmVsLmMsIHR1bm5lbC5oKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGltcGxlbWVudCB0aGUgVFVOTkVMLU1JQi4KCQoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKCUZpeCB1bmxpbmtfdHJlZSBmb3IgInRvcCBsZXZlbCIgdHJlZSBub2Rlcy4KCQoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KCQoyMDAwLTEwLTEwIDA5OjAzICBtc2xpZmNhawoKCVJlbW92ZSByZWxhdGl2ZSBwYXRoIHRvIGluY2x1ZGUgc3lzdGVtLmguCgkKMjAwMC0xMC0xMCAwNjo1MyAgbXNsaWZjYWsKCglSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCgkKMjAwMC0xMC0xMCAwNToxNSAgbXNsaWZjYWsKCglBcHBseSBwYXRjaCBmb3IgREVDIEFscGhhIEVWNiwgc3VwcGxpZWQgYnkgU2h1bW9uIEh1cXVlPHNodXF1ZUBpc2MudXBlbm4uZWR1PgoJCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgoJcGF0Y2ggdG8gZml4IGxlYWRpbmcgemVybyBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNoYW5nZXMgZm9yIHNodXRkb3duX21pYi4KCQoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKCS0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KCQoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogbW92ZSBhdXRvX25saXN0IHRvIGxpYnVjZG1pYnMuCgkKMjAwMC0xMC0wOSAxMTo0MyAgaGFyZGFrZXIKCgktIChGQVEsIFJFQURNRSk6IGFkZCBuZXcgbWlycm9yLgoJCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgoJTW92ZSBjb25maWctIGFuZCBzdG9yZS1yZWxhdGVkIGNsZWFudXAgZnJvbSBzaHV0ZG93bl9taWIgdG8gc25tcF9zaHV0ZG93bi4KCQoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFF1YWxpZnkgYW4gaW5kaXZpZHVhbCBpbnRlcmZhY2UgdHlwZSB0ZXN0IHN5bWJvbAoJCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCgkKMjAwMC0xMC0wNiAwODo1NiAgbXNsaWZjYWsKCglTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCgkKMjAwMC0xMC0wNiAwNTozMyAgbXNsaWZjYWsKCglQbHVnIG1lbW9yeSBsZWFrIGZvciB1Y2Qtc3VwcGxpZWQgc2V0ZW52IG9uIFdpbjMyIHBsYXRmb3JtLgoJCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgoJLSBtaWIuYzogZml4IHNpbGx5IGJ1ZyBpbiBuZXcgb2lkIHBhcnNlciwgd2hlbiBsZWF2aW5nIHRoZSB0cmVlIGFuZCBnb2luZwoJCWludG8gc3ViLWlkcyB3ZSBrbm93IG5vdGhpbmcgYWJvdXQKCQoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmN5IG9yZGVyLgoJCjIwMDAtMTAtMDQgMTc6NTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsICJleHRlbmRpbmciIHNubXBjb25mIGZpbGUuCgkKMjAwMC0xMC0wNCAxNzo1OCAgaGFyZGFrZXIKCgktIChleHRlbmRpbmcpOiBhZGQgc25tcGNvbmYgc3VwcG9ydCBmb3IgZXh0ZW5kaW5nIHRoZSBhZ2VudCAocGFzcywgZXhlYywgLi4uKQoJCjIwMDAtMTAtMDQgMTc6NTggIGhhcmRha2VyCgoJLSAobW9uaXRvcik6IG1pc2MgdXBkYXRlcyBhbmQgYWRkICJmaWxlIiB3YXRjaGluZy4KCQoyMDAwLTEwLTA0IDE3OjU3ICBoYXJkYWtlcgoKCS0gKGFjbCk6IGRvbid0IHNwZWNpZnkgbGluZSBzcGVjaWZpY2F0aW9ucyBmb3IgZGVmYXVsdCBzbm1wY29uZiB1c2FnZS4KCQoyMDAwLTEwLTA0IDE0OjUwICBuYmEKCgktIEZBUTogZml4IGEgY29uZnVzaW9uIGJldHdlZW4gIm9taXQiIGFuZCAiaW5jbHVkZSIKCQoyMDAwLTEwLTA0IDEzOjI1ICBoYXJkYWtlcgoKCS0gKHBhc3NfcGVyc2lzdC5jKTogb3BhcXVlcyBpbiBwYXNzX3BlcnNpc3QuCgkKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCgktIChwYXNzLmMpOiBzdXBwb3J0IG9wYXF1ZSByZXR1cm4gdHlwZXMuCgkKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCglGaXggcGFyc2luZyBwcm9ibGVtIGZvciAtUGMgb3B0aW9uOyByZXBvcnRlZCBieSBDaHJpc3RpYW4gTWF1dG5lci4KCQoyMDAwLTEwLTA0IDA3OjAyICBtc2xpZmNhawoKCXF1YWxpZnkgbmV3IGkvZiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKCXF1YWxpZnkgc3ltYm9scyBmb3IgbmV3IGkvZiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKCVRlcm1pbmF0ZSBsaXN0IHRvIGNvbXBpbGUgKGFkZCBhIGNvbW1hKS4KCQoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCgktIHNubXB0YWJsZS5jOiBpbmRleCBjb2x1bW50ICgtQ2kpIHdpZHRoIG5vdCBwcm9wZXJseSBjb21wdXRlZCB3aGVuIHVzaW5nCgkJR0VUQlVMSwoJCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gYWRkIGEgcGFzc2JhY2sgYXJndW1lbnQgdG8gcmVnaXN0ZXJfcmVhZGZkKCkgY2FsbGJhY2tzLgoJCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIG1vdmUgYXV0b19ubGlzdC5vL2xvIHRvIGxpYnVjZGFnZW50IHNpbmNlIHNvbWUgbWliLW1vZHVsZXMgbmVlZCBpdC4KCQoyMDAwLTEwLTAzIDE4OjA3ICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9jaGVuIEZyaWVkcmljaDoKCSAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgkKMjAwMC0xMC0wMyAxNzoyNiAgaGFyZGFrZXIKCgktIChtaWJKSi9pbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gYmV0dGVyIGlmdHlwZSBndWVzc2luZy4KCQoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgoJCjIwMDAtMTAtMDMgMTY6NTIgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggZnJvbSBEb3VnIFdhcnplY2hhOgoJICAtIGZpeCBvaWQgcGFyc2luZyBpbiB0cmFwcy4KCQoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYywgZXhhbXBsZS5oKTogZXhhbXBsZSBvZiBjb2RpbmcgYSB2MiB0cmFwIGZyb20gc29tZW9uZSB3aG8KCSAgSSBoYXZlIHZlcnkgc2FkbHkgZm9yZ290dGVuLiAgSSd2ZSBiZWVuIGxvb2tpbmcgZm9yIHRoYXQgbWVzc2FnZSBmb3IKCSAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCgkKMjAwMC0xMC0wMyAxNjoyMSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CgkgIC0gc25tcGQgcmV0dXJucyB3cm9uZyBlcnJvciBpbmRleCBvbiBTTk1QdjEgcmVxdWVzdCAoQlVHIzM3NSkuCgkKMjAwMC0xMC0wMyAwOToxMiAgbXNsaWZjYWsKCglGaXggbnVsbCBkZXJlZiBvZiBzcy0+Y29tbXVuaXR5LCByZXBvcnRlZCBieSBKaW0gUGlja2VyaW5nLgoJCjIwMDAtMTAtMDMgMDg6MDMgIG1zbGlmY2FrCgoJQ2FzdGluZyB0byBmaXggcHJvYmxlbXMgYnVpbGRpbmcgd2l0aCBhQ0MKCVRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KCQoyMDAwLTEwLTAzIDA1OjU5ICBtc2xpZmNhawoKCVJlbW92ZSBjaGRpciB0byB1bmRvIGZpeCBmb3IgKEJVRyMyOTgpCgkKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgoJLSBtaWIuYzogRXNjYXBlICIgYW5kIFwgaW4gdGV4dCBzdHJpbmdzLgoJCjIwMDAtMTAtMDIgMjE6MzkgIG5iYQoKCS0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CgkKMjAwMC0xMC0wMiAyMTozOCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IGEgbWlzc2luZyAkKHNyY2RpcikgZHVyaW5nIG1ha2UgaW5zdGFsbCBvZiBtaWIyYwoJCWNvbmZpZ3VyYXRpb24gZmlsZXMKCQoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCgktIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgoJCjIwMDAtMTAtMDIgMjE6MzYgIG5iYQoKCS0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCgkKMjAwMC0xMC0wMiAyMTozNCAgbmJhCgoJLSBocl9kaXNrLmM6IEFkZCBhIG5hbWUgcGF0dGVybiB0aGF0IG1hdGNoZXMgeDg2IElERSBkaXNrcyBmb3IgU29sYXJpcy4KCQoyMDAwLTEwLTAyIDIxOjMzICBuYmEKCgktIGtlcm5lbF9zdW5vczUuYzogbWFrZSB0aGUgYnVmZmVyIGZvciBTSU9DR0lGQ09ORiBkeW5hbWljLgoJCjIwMDAtMTAtMDIgMTE6NDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KCQoyMDAwLTEwLTAyIDEwOjQ4ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKToKCSAgLSBuZXcgb3B0aW9ucyBmb3IgaW5zdGFsbGluZyBjcmVhdGVkIGZpbGVzLgoJICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCgkgIC0gYWxsb3cgcmVhZGluZyBhIC5jb25mIGRpcmVjdGx5IHRvIHdyaXRpbmcgZm9yIGF1dG8tY29tbWVudGluZyAuY29uZiBmaWxlcy4KCSAgLSBtaXNjLgoJCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KCQoyMDAwLTEwLTAyIDA5OjM1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KCQoyMDAwLTEwLTAyIDA5OjE0ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CgkgIC0gZml4IGludGVyZmFjZXMuYyBmb3IgdmFyaWFibGUgbGVuZ3RoIG51bWJlciBmb3JtYXR0aW5nIGluIC9wcm9jL25ldC9kZXYuCgkKMjAwMC0xMC0wMSAxNjo0MCAgbXNsaWZjYWsKCglQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCgkKMjAwMC0wOS0zMCAwODo1NyAgbXNsaWZjYWsKCglGaXggREVCVUdNU0dUTCBub3QgZm91bmQgZXJyb3IgZm9yIGJ1aWxkcyB3aXRob3V0IGRsbW9kIHN1cHBvcnQuCglUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAoJCjIwMDAtMDktMzAgMDg6NTAgIG1zbGlmY2FrCgoJRml4IHNvbWUga2VybmVsIHN5bWJvbHMgLSB0aGFua3MgdG8gc2ltb25AemlkLnR1d2llbi5hYy5hdAoJCjIwMDAtMDktMjkgMTQ6MzUgIGhhcmRha2VyCgoJLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgoJCjIwMDAtMDktMjkgMTQ6MjcgIGhhcmRha2VyCgoJLSAobWFrZWZpbGVpbmRlcGVuZC5wbCk6IHNraXAgZW1wdHkgZGVwZW5kIGxpbmVzLgoJCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KCQoyMDAwLTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc29ydCB1bmtub3duIGRpcmVjdGl2ZXMgYnkgZmlsZXR5cGUgKHdob29wcykuCgkKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCgktIChtb25pdG9yKTogbWlub3Igd29yZGluZyBhZGp1c3RtZW50cy4KCQoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcHJpbnQgbW9yZSBpbmZvcm1hdGlvbi9jb21tZW50cyB0byB0aGUgc2NyZWVuLgoJCjIwMDAtMDktMjkgMTE6MzEgIGhhcmRha2VyCgoJLSAodmFyX3N0cnVjdC5oKTogaW5jcmVhc2UgcmVnaXN0cmF0aW9uIG5hbWUgbGVuZ3RoIHRvIDMyIGZyb20gMTYgKEJ1ZyAjMTcyKQoJCjIwMDAtMDktMjkgMTE6MTIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IGluY29ycmVjdCB2YWwgbGVuZ3RoIHBhc3NlZCB0byBwYXJzZV91bnNpZ25lZF9pbnQgKEJ1ZyAjMzM5KS4KCQoyMDAwLTA5LTI5IDExOjAxICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBmaXggQnVnIzM1MyBmb3IgaG9zdG5hbWVzIHRoYXQgbG9vayBsaWtlICI1dyIuCgkgIC0gZG9uJ3QgaW50ZXJwcmV0ZSB0aGVtIGFzIGFuIGlwLXBvcnQuCgkKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCgktIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKCSAgLSBUaGVyZSBpcyBhIHBlY3VsaWFyaXR5IGluIHRoZSBzbm1wX2FsYXJtX3VucmVnaXN0ZXIgZnVuY3Rpb24gaW4KCSAgICBzbm1wbGliL3NubXBfYWxhcm0uYyB3aGljaCBjYW4gY2F1c2UgYSBzZWdtZW50YXRpb24gZmF1bHQuIChCdWcgIzM2NykKCQoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCgkKMjAwMC0wOS0yOCAxNDozOCAgbmJhCgoJLSBtaWJfYXBpLjM6IGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGhlYWRlcgoJCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKCS0gc25tcHRyYXAuYzogcmVtb3ZlIGFuIGV4dHJhbmVvdXMgc25tcF9mcmVlX3BkdQoJCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKCS0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQoJCjIwMDAtMDktMjggMTE6MDkgIG1zbGlmY2FrCgoJcmVtb3ZlIHNlY29uZCBjb3B5IG9mIHN5cy9zb2NrZXQuaAoJCjIwMDAtMDktMjggMTE6MDggIG1zbGlmY2FrCgoJRm9yIGJ1aWxkaW5nIG9uIFVsdHJpeCBWNC54CgkKMjAwMC0wOS0yNyAxMjo1OSAgaGFyZGFrZXIKCgktIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KCQoyMDAwLTA5LTI3IDEyOjU1ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdWNkX3NubXAuaCwgZGxtb2QuYyk6CgkgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgoJICAtIGJ1aWxkIGNvZGUgb25seSBpZiBkbG9wZW4gaXMgZm91bmQuCgkKMjAwMC0wOS0yNyAwODozMSAgaGFyZGFrZXIKCgktIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGRvbid0IHByaW50IGtlcm5lbCBiYXNlZCB3YXJuaW5nIG1lc3NhZ2VzIHdoZW4gLXIsIGV0YywgaXMgc3BlY2lmaWVkLgoJCjIwMDAtMDktMjYgMTY6MDcgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogbWlub3IgYnVnIGZpeGVzLgoJCjIwMDAtMDktMjYgMTQ6MjEgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtLCBtYW5hZ2VyLnBtKToKCSAgLSBkaXNwbGF0YWJsZSBzdXBwb3J0cyAtbWFyay8tb25tYXJrZWQuCgkgIC0gdXNlcidzIG9uY2FsbCBzY2hlZHVsZSBpcyBtb2RpZmlhYmxlIHZpYSB0aGUgd2ViLgoJCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgoJRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KCQoyMDAwLTA5LTI2IDEzOjE1ICBtc2xpZmNhawoKCUluY2x1ZGUgc3lzdGVtLmggKHZzbnByaW50ZiBkZWNsKQoJCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgoJRml4IHVuc2lnbmVkIGNvbXBhcmlzb24uCgkKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCglGaXggdW5zaWduZWQgY29tcGFyaXNvbnMuCgkKMjAwMC0wOS0yNiAxMzoxMyAgbXNsaWZjYWsKCglGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgoJCjIwMDAtMDktMjYgMTM6MTIgIG1zbGlmY2FrCgoJSW5jbHVkZSBnZXRvcHQuaCAob3B0YXJnIGRlY2wpOyBSZW1vdmUgdW51c2VkIHZhci4KCQoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKCU1hdGNoIEluaXRpYWxpc2VfVGFibGUgYXJncyAzLDQgZGVjbGFyYXRpb25zIHdpdGggZGVmaW5pdGlvbnMuCgkKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBtYWtlIHRoZSBhZG1pbnN0YXR1cyBST05MWS4KCQoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKCS0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCgkKMjAwMC0wOS0yNiAwMzowNCAgbXNsaWZjYWsKCglFeHBsaWNpdGx5IGJ1aWxkIHBhdGggdG8gQ0FDSEVGSUxFLCBhcyBub3QgYWxsIEMgY29tcGlsZXJzIHN1cHBvcnQgIiMjIi4KCQoyMDAwLTA5LTI1IDE3OjQ5ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IFdlcyBhY3R1YWxseSBkb2N1bWVudGVkIHNvbWV0aGluZz8gIHlvdSBtdXN0IGJlIGtpZGRpbmchCgkKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCgljaGRpciBqdXN0IGJlZm9yZSBzZW5kaW5nIGNvbGRzdGFydCB0cmFwLCB0byBhbGxvdyBmb3IgcGF0aHMgdG8gYmUKCXJlc29sdmVkLgoJCjIwMDAtMDktMjUgMTU6MDggIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogbWlub3IgZ3JhcGhpbmcgY2hhbmdlcwoJCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgoJY2FzZSBpbnNlbnNpdGl2ZSB0b2tlbiBzZWFyY2ggKHVzZSBzdHJjYXNlY21wKS4KCQoyMDAwLTA5LTIyIDA2OjAzICBuYmEKCgkgLW1pYnMvOiBNSUIgdXBkYXRlcwoJCjIwMDAtMDktMjIgMDU6NTUgIG5iYQoKCS0gbWlicy86IE1JQiB1cGRhdGVzCgkKMjAwMC0wOS0yMiAwNTo1MiAgbmJhCgoJLSBzbm1wX2FwaS5jOiBzdXBwb3J0IHNldHRpbmcgb2YgQklUUyB2YXJpYWJsZXMKCQoyMDAwLTA5LTIyIDA1OjUwICBuYmEKCgktIHNubXBzdGF0dXMuYzogc2hvdyBlcnJvciBvYmplY3QKCQoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCgktIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAoJCjIwMDAtMDktMjIgMDQ6MjggIG5iYQoKCS0gc3lzdGVtLmg6IHByb3ZpZGUgcHJvdG90eXBlcyBmb3Igc3RydG9sLCBzdHJ0b3VsLCBzbnByaW50ZiwgdnNucHJpbnRmCgkKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgoJLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwoJCjIwMDAtMDktMjEgMTY6MTcgIG5iYQoKCS0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKCQoyMDAwLTA5LTIxIDE1OjU5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KCQoyMDAwLTA5LTIxIDE1OjUwICBuYmEKCgktIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKCQktQ0Igb3B0aW9ucyB0byBmYWxsIGJhY2sgdG8gR0VUTkVYVC4KCQoyMDAwLTA5LTIxIDE1OjM4ICBuYmEKCgktIG1pYi5jOiByZXdyaXRlIGluZGV4IGhhbmRsaW5nIGluIG9iamVjdCBpZHMsIHRvIGFsbG93IHN5bWJvbGljIGVudW1zLgoJCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwoJCWRlc3Rpbmd1aXNoIE9CSkVDVC1UWVBFIGZyb20gVFJBUC1UWVBFLCBNT0RVTEUtSURFTlRJVFkgZXRjLgoJCjIwMDAtMDktMjEgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQoJICBIT1NULVJFU09VUkNFUy1NSUIgaXMgZW1wdHkgb3IgaWYgLUN1IGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgoJCjIwMDAtMDktMjEgMTU6MjggIG5iYQoKCS0gcGFyc2UuYzogYWRkIGFiaWxpdHkgdG8gY29sbGVjdCBWQVJJQUJMRVMvT0JKRUNUUyBmb3IgVFJBUC1UWVBFCgkJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCgkJYXMgdGhlaXIgc2Vjb25kIHRva2VuLiBFbmhhbmNlIC1UZCBvdXRwdXQgYWNjb3JkaW5nbHkuCgkKMjAwMC0wOS0yMSAxNToyMiAgbmJhCgoJLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQoJCjIwMDAtMDktMjEgMTU6MTAgIGhhcmRha2VyCgoJLSAobWliLmgpOiBhZGQgZmFrZSBzdHJ1Y3QgZGVmaW5pdGlvbiBmb3IgZW51bXMKCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHN0cnRvbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc25wcmludGYuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKCS0gKG1pYi5jLCBtaWIuaCk6IG1ha2Ugc3ByaW50KiBub24tc3RhdGljIChidWcgIzEzMikuCgkKMjAwMC0wOS0yMSAwMDoyNSAgaGFyZGFrZXIKCgktIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KCSAgICBkdXJpbmcgYSBjYWxsIHRvIHRoZSBhbGFybSBmdW5jdGlvbiBhbmQgaW52YWxpZGF0ZSB0aGUgcG9pbnRlcgoJICAgIGJlaW5nIHVzZWQgYnkgdGhlIGNhbGxpbmcgZnVuY3Rpb24uCgkKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgoJCjIwMDAtMDktMjAgMTc6MzEgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzcGFjZSBpbmRlbnQgdG9rZW5zIGlmICMgcHJlcGVuZGVkLgoJCjIwMDAtMDktMjAgMTc6MzAgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KCQoyMDAwLTA5LTIwIDE3OjI5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBtb25pdG9yKTogZGlzaywgcHJvYywgYW5kIGxvYWQgY2hlY2tzLgoJCjIwMDAtMDktMjAgMTc6MjggIGhhcmRha2VyCgoJLSAoYXV0aG9wdHMpOiBmaXggdmFsaWQgYW5zd2VycyBmb3IgYXV0aCBhbmQgcHJpdiB0eXBlcy4KCQoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKCSAgdG9rZW5zIHRoYXQgYXJlIGVpdGhlciBpbnRlcm5hbCBvciBubyBsb25nZXIgdGhlIHN0YW5kYXJkIHdheSBvZgoJICBkb2luZyB0aGluZ3MuCgkKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCgkKMjAwMC0wOS0yMCAxNzoyNSAgaGFyZGFrZXIKCgktIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgY29ycmVjdGlvbiBvZiB0YWJsZSBuYW1lLiAgTW9yZSBlcnJvcnMgZXhpc3QuCgkKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCgkKMjAwMC0wOS0yMCAxNToxNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgYXV0aG9wdHMpOiBzbm1wLmNvbmYgc3VwcG9ydCBmb3IgYmFzaWMgYXV0aGVudGljYXRpb24gb3B0aW9ucy4KCQoyMDAwLTA5LTIwIDE0OjU1ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKToKCSAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgoJIC0gZG9uJ3QgcHJpbnQgdW5rbm93biBkaXJlY3RpdmUgY29tbWVudCBoZWFkZXJzIGlmIHRoZXJlIGFyZW4ndCBhbnkuCgkKMjAwMC0wOS0yMCAxNDo0NSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNwYWNlIHRoaW5ncyBvdXQgb24gdGhlIHNjcmVlbiBhIGJpdCBiZXR0ZXIuCgkKMjAwMC0wOS0yMCAxNDo0NCAgaGFyZGFrZXIKCgktICh0cmFwc2lua3MpOiBhZGQgcG9ydCBudW1iZXIgb3B0aW9uIHRvIHRyYXBzaW5rIGRpcmVjdGl2ZXMuCgkKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgoJCjIwMDAtMDktMjAgMTQ6MjAgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGRvIHJldmVyc2UgdjMgaGVhZGVyIGVuY29kaW5nIHdpdGggYSBzdGF0aWMgYnVmZmVyLgoJCjIwMDAtMDktMjAgMTE6MzcgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBtaXNjIHVwZGF0ZXMgYW5kIGltcHJvdmVtZW50cy4KCQoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBGaXggZHluYW1pYyBhcnJheSAgcHJvYmxlbSBwb2ludGVkIG91dCBieSBKb2NoZW4gS21pZXRzY2guCgkKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCgkJKFRoYW5rcyB0byBQZWRybyBQZXJlaXJhIGZvciBpZGVudGlmeWluZyB0aGlzKQoJCjIwMDAtMDktMTkgMTc6MDcgIGhhcmRha2VyCgoJLSAoYWNsLCBzeXN0ZW0sIHRyYXBzaW5rcyk6IGluaXRpYWwgc25tcGNvbmYgZGVzY3JpcHRpb24gZmlsZXMuCgkKMjAwMC0wOS0xOSAxNzowNiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHJlYWQgb2xkZXIgY29uZmlndXJhdGlvbiBmaWxlcyBpbiBhbmQgbWVyZ2Ugd2l0aCBuZXcgcmVzdWx0cy4KCQoyMDAwLTA5LTE5IDE0OjQwICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBwcmludCBwZHUgdHlwZSBvbiBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCgkKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCgktIChhc24xLmMsIHNubXAuYyk6IHJldmVyc2UgZW5jb2Rpbmcgc3VwcG9ydCBmb3Igc3BlY2lhbGl6ZWQgb3BhcXVlCgkgIGRhdGF0eXBlcyAoZmxvYXQsIGRvdWJsZSwgZXRjKS4KCQoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKCS0gKGFjbG9jYWwubTQpOiBkb2N1bWVudCBtYWNyb3MgYSBiaXQgbW9yZSBmb3Igc3VibWlzc2lvbiB0byB0aGUKCSAgYXV0b2NvbmYgbWFjcm8gbGlicmFyeS4KCQoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKCUZpeCBidWcgIzI5NSByZXBvcnRlZCBieSBKb2huIFdoaXRuZXkgam9obndAYWlpbmV0LmNvbQoJCjIwMDAtMDktMTggMTQ6NTkgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIG1vdmUgZ2V0U3RhdFB0ciBkZWZpbml0aW9uIHRvIHByb3BlciAuaCBmaWxlLgoJCjIwMDAtMDktMTggMTQ6NTUgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgoJCjIwMDAtMDktMTQgMDk6MDUgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gYWRkIGEgcG9ydCBzcGVjaWZpY2F0aW9uIHNubXBkLmNvbmYgdG9rZW4uCgkKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMpOiBpZ25vcmUgb3V0cHV0IG9mIGdldGhvc3RieW5hbWUgZm9yIHRyYXAgc2Vzc2lvbiBhZGRpbmcuCgkKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKCSAgdXNlciB3aXRoIHF1ZXN0aW9ucy4KCQoyMDAwLTA5LTA4IDEzOjA3ICBoYXJkYWtlcgoKCS0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKCSAgLSBmaXggcHJveHkgc3VwcG9ydCBmb3IgbnVsbCBsZW5ndGggc3RyaW5ncy4KCQoyMDAwLTA5LTA3IDEwOjEyICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgLSBmaXggb3BlbnNzbCBjaGVja3MuCgkgLSBydW4gYXV0b2hlYWRlci4KCQoyMDAwLTA5LTA1IDEzOjM1ICBtc2xpZmNhawoKCU1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgoJCjIwMDAtMDktMDUgMTM6MzQgIG1zbGlmY2FrCgoJV2VsY29tZSB0aGUgbmV3ZXN0IHVjZC1zbm1wIGFwcGxpY2F0aW9ucyB0byB0aGUgV2luMzIgYnVpbGRzLgoJCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogcmVzdGFydCBlcnJvcmNvdW50IHdoZW4gcmVsb2FkaW5nIGNvbmZpZwoJCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKCS0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCgkKMjAwMC0wOS0wNCAxNToxMCAgbmJhCgoJLSBpcEFkZHIuYzogcmVtb3ZlIGEgYmFkIG50b2hsIGZvciBPcGVuQlNECgkKMjAwMC0wOS0wNCAxNTowOSAgbmJhCgoJLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKCQl0byBtYWtlIHVucHJvdGVjdGVkIGluY2x1ZGUgZmlsZSBpbiBVbHRyaXggaGFwcHkKCQoyMDAwLTA5LTA0IDE1OjA1ICBuYmEKCgktIGNvbmZpZ3VyZS5pbjogbWFrZSAtLXdpdGhvdXQtbGlid3JhcCB3b3JrCgkKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKCSAgLSB1cGRhdGVkIGNvZGUuCgkKMjAwMC0wOS0wMSAxMTo1NCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCgkKMjAwMC0wOC0zMCAxMzoyOCAgbmJhCgoJLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwoJCW9mIC5pbmRleCBmaWxlIHdpdGggZmlsZW5hbWVzIGNvbnRhaW5pbmcgYmxhbmtzLgoJCjIwMDAtMDgtMjggMTM6NDMgIG1hcnoKCgltaW5vciBzeW50YXggZ2xpdGNoIGluIFBPRCBkb2NzCgkKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCgktIChhcHBzL3NubXB0YWJsZS5jKTogRml4IGJ1ZyB3aXRoIGRpc3BsYXlpbmcgaGVhZGVyLWxlc3MgaW5kZXhlZCB0YWJsZXMKCQkoVGhhbmtzIHRvIEVybmllIE1pbGxlcikKCQoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKCUFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KCXRvIGZpeCBzaWduIGluIGFzbl9yYnVpbGRfdW5zaWduZWRfaW50IC4KCQoyMDAwLTA4LTE4IDA0OjE4ICBtc2xpZmNhawoKCXJlc3RvcmUgcHJldmlvdXMgdmVyc2lvbjsgb3BlbmJzZCwgc29sYXJpcywgbGludXggYnVpbGQgb2suCgkKMjAwMC0wOC0xOCAwMzo0NCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHByaW50ZiBhcmd1bWVudCBwYXNzZWQgdG8gc25tcF9sb2cuCgkKMjAwMC0wOC0xOCAwMzoyMCAgbXNsaWZjYWsKCglmaXggYnVnIDI1MyB3aXRoIHBhdGNoIHN1cHBsaWVkIGJ5IEplZmZyZXkgSG9uaWcgPGpjaEBic2RpLmNvbT4KCQoyMDAwLTA4LTE4IDAyOjUyICBtc2xpZmNhawoKCWZpeCBidWcgMzE4IC0gdGVzdCA5IGFuZCAxMCBleHBsaWNpdGx5IGNyZWF0ZSB0aGUgdGVzdCB1c2VyLgoJCjIwMDAtMDgtMTcgMTM6NDIgIG1zbGlmY2FrCgoJVGhlIGJhdHRsZSB0byB0cmltIG5ld2xpbmVzIGNvcnJlY3RseSBjb250aW51ZXMuLi5yZWR1Y2UgbGVuZ3RoIGJ5IG9uZS4KCQoyMDAwLTA4LTE2IDE1OjA0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KCQoyMDAwLTA4LTE2IDE1OjAzICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCgkKMjAwMC0wOC0xNiAxNDo0OCAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgoJCjIwMDAtMDgtMTUgMDU6MDggIG1zbGlmY2FrCgoJRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KCQoyMDAwLTA4LTE1IDAzOjAwICBtc2xpZmNhawoKCUZpeCBidWcgMjgzIC0gdW1hc2sgMDIyLCBtYWtlIGluc3RhbGwuIFRoYW5rcyB0byBjc2FiYS50b3RoQHN6ay5ia2UuaHUKCQoyMDAwLTA4LTE1IDAwOjA5ICBuYmEKCgktIHNubXB0ZXN0LmM6IG92ZXJoYXVsIGlucHV0X3ZhcmlhYmxlLCBraWxsIG5ld2xpbmUKCQoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCgktIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbjogZml4ZXMgZm9yIGNvbmZpZ3VyZSAtLXNpbGVudAoJCjIwMDAtMDgtMTQgMTc6MjcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgIC0gLS1lbmFibGUtc2lsZW50LWxpYnRvb2wgdG8gbWFrZSBOaWVscyBzbWlsZS4KCQoyMDAwLTA4LTE0IDE3OjE3ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAoJICBvbiBhIHJhbmRvbSBudW1iZXIsIGFuZCBhIHRpbWVzdGFtcC4KCSAgLSBJIHRoaW5rIGl0IHdvbid0IGludmFsaWRhdGUgZXhpc3RpbmcgaW5zdGFsbGF0aW9ucyAoaGVoKS4KCQoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOgoJICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KCQoyMDAwLTA4LTE0IDE0OjUxICBuYmEKCgktIChtYW55KTogcG9ydGFiaWxpdHkgZml4ZXMgZm9yIE9wZW5CU0QgMi42LCBGcmVlQlNEIDQuMSwgVWx0cml4IDQuNQoJCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgoJLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CgkgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KCQoyMDAwLTA4LTE0IDExOjI5ICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgoJICAtIHJlbW92ZSBkdXBsaWNhdGUga2V5bGVuZ3RoIGNoZWNrLgoJCjIwMDAtMDgtMTEgMTM6MDkgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IG9wdGltaXplIHJldmVyc2UgZW5jb2Rpbmcgb2YgdmFyYmluZGxpc3RzLgoJCjIwMDAtMDgtMTEgMDg6NTUgIGhhcmRha2VyCgoJLSAoUkVBRE1FLm1pYjJjKTogUGF0Y2ggZnJvbSBKYW4gQWxmcmVkIFNhbmR2ZW46CgkgIC0gdHlwb3MuCgkKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgoJLSBhcHBzLyo6IHNubXBhcHAgLVYgc2hvdWxkIG5vdCBnaXZlIHRoZSB1c2FnZSBtZXNzYWdlIHRvby4KCQoyMDAwLTA4LTExIDAwOjQ0ICBuYmEKCgktIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KCQoyMDAwLTA4LTEwIDIzOjIzICBuYmEKCgktIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCgkJT2JqZWN0TmFtZQoJCjIwMDAtMDgtMTAgMTY6MjAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIG1pYjJjKToKCSAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCgkgIC0gaW5zdGFsbCBtaWIyYyBhbmQgLmNvbmYgZmlsZXMuCgkKMjAwMC0wOC0xMCAxNDozMyAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KCQoyMDAwLTA4LTEwIDE0OjMxICBoYXJkYWtlcgoKCS0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KCQoyMDAwLTA4LTEwIDE0OjI1ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIHJldmVyc2UgZW5jb2Rpbmcgb24gYnkgZGVmYXVsdC4KCQoyMDAwLTA4LTEwIDEzOjAyICBtc2xpZmNhawoKCWZpeCBidWcgMjUyIGZvciBjb25maWd1cmUgYW5kIHN5cy9zb2NrZXQuaCBvbiBCU0QvT1MgNC4yCgkKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCgktIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKCSAgc25tcHVzbS5oLCBzbm1wdjMuYyk6CgkgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KCSAgICAtIFRPRE86IGNsZWFuIHVwLCBydW4tdGltZSBkZXRlcm1pbmF0aW9uIG9mIHdlYXRoZXIgdG8gdXNlIGl0IG9yIG5vdC4KCQoyMDAwLTA4LTA5IDE1OjQwICBtc2xpZmNhawoKCUZpeCBidWcgMzMxIHdpdGggcGF0Y2ggaW4gcGFydCBwcm92aWRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDkgMTU6MjcgIG1zbGlmY2FrCgoJbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgoJCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKCS0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCgkKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgoJLSBocl9wcmludC5jOiBmaXggYSBkZWJ1ZyB0b2tlbgoJCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKCS0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgoJCjIwMDAtMDgtMDkgMDE6MTMgIGRhdmVzCgoJLSAobWliSkovaXBSb3V0ZS5oKTogT21pdCByb3V0ZV93cml0ZSBmb3Igbm93CgkKMjAwMC0wOC0wOSAwMDo1OCAgZGF2ZXMKCgktIChtaWJKSi8qKTogRXhwZXJpbWVudGFsIHJlLXdyaXRlIG9mIG1pYklJCgkJKFBpbG90IGVycm9yIHdoZW4gdHJ5aW5nIHRvIGNvbW1pdCB0aGUgY2hhbmdlcyBlYXJsaWVyIC0gc29ycnkhKQoJCjIwMDAtMDgtMDggMTA6MDYgIGhhcmRha2VyCgoJLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCgkKMjAwMC0wOC0wOCAwODo1MSAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOiBzdGFydCBvcHRpbmQgYXQgMSBub3QgMC4KCSAgLQoJCjIwMDAtMDgtMDggMDY6MzYgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjk1IChmcmVlICpzZWNTdGF0ZVJlZiBiZWZvcmUgYWxsb2NhdGluZyBhbm90aGVyIG9uZSkuCgkKMjAwMC0wOC0wOCAwNjowNSAgbXNsaWZjYWsKCglmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CgkKMjAwMC0wOC0wOCAwNDo1OSAgbmJhCgoJLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKCQlvdXRzdGFuZGluZyByZXF1ZXN0cwoJCjIwMDAtMDgtMDggMDQ6NDcgIG5iYQoKCS0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCgkKMjAwMC0wOC0wOCAwNDo0MiAgbXNsaWZjYWsKCglGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CglBbHNvIGNvbnNvbGlkYXRlZCBjb21tZW50cyBhYm91dCB0aGUgZm91ciBzZW5kIFBEVSBmdW5jdGlvbnMuCgkKMjAwMC0wOC0wNyAwNjo1OSAgbXNsaWZjYWsKCglGaXggbGVhayBpbiByZXBvcnRhYmxlIGVycm9ycyBmb3VuZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKCWZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKCWZpbGUgcmVhZF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfYWxsX21pYnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF92YXJpYWJsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfdmFsdWUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9kZXNjcmlwdGlvbi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBpbml0X21pYl9pbnRlcm5hbHMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGluaXRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBnZXRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGFkZF9taWJkaXIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA0IDE3OjEzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWRkIGluIHRoZSBub3RpZmljYXRpb24gZ3JvdXAgYnkgZGVmYXVsdC4KCQoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKCS0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgoJCjIwMDAtMDgtMDQgMTc6MDYgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOgoJIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgoJIC0gZGVidWdnaW5nIG91dHB1dC4KCQoyMDAwLTA4LTA0IDE2OjU2ICBoYXJkYWtlcgoKCS0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgoJCjIwMDAtMDgtMDQgMTY6NTMgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBzbm1wTm90aWZ5VGFibGUuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAoJICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgoJICAtIGlmIHVzaW5nIHRoZSBzbm1wTm90aWZpY2F0aW9uVGFibGUsIGluc2VydCBub24tdjEgdHJhcCBzaW5rcyBpbnRvIGl0LgoJCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgoJLSAobWliZ3JvdXAvbWliSkouaCBtaWJncm91cC9taWJKSi8qKTogRXhwZXJpbWVudGFsIHJlLXdyaXRlIG9mIG1pYklJCgkKMjAwMC0wOC0wNCAwNToyMSAgZGF2ZXMKCgktIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKCQoyMDAwLTA4LTAzIDA4OjM3ICBtc2xpZmNhawoKCUZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJUC1GT1JXQVJELU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBIQ05VTS1UQy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMiAwNzowNiAgbXNsaWZjYWsKCglTaWxlbnQgcnVubmluZyBncmVwIHJlc3VsdHMuCgkKMjAwMC0wOC0wMiAwNjoxMCAgbXNsaWZjYWsKCglGaXggQlVHICMyOTEgOiBhbGxvdyAiMjU1LjI1NS4yNTUuMjU1IiBmb3IgdGV4dCBpbnB1dCB0byBBU05fSVBBRERSRVNTCgkKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCglGaXggKEJVRyMzMjMpIDogZnJlZSBQRFUgd2hlbiBzbm1wX3NlbmQgZmFpbHMuCgkKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCglBZGQgLXAgb3B0aW9uIG9uY2UgdG8gc25tcGQgYXJncy4KCUZpbmQgTUlCRElSUyBpbiBzb3VyY2UgdHJlZS4KCUZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCgkKMjAwMC0wOC0wMSAyMzozMCAgbmJhCgoJLSBpcC5jOiBPbmUgbW9yZSAjaWYgc29sYXJpcwoJCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKCS0gaXAuYzogQSBiYWQgI2lmIC4uLiB0aGUgcHJvcGVyIGRlZmluZSB0byB0ZXN0IGZvciBTb2xhcmlzIGlzIHNvbGFyaXMyCgkKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgoJCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgoJLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCgkKMjAwMC0wOC0wMSAxNjozOSAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCgkKMjAwMC0wOC0wMSAxNjozNyAgaGFyZGFrZXIKCgktIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiByZXZlcnQgdG8gbm9uLWNvbmZpZ2VkIFRFU1RDT05GLgoJCjIwMDAtMDgtMDEgMTY6MzEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wKTogbWFrZSB1bi1xdWlldC4KCQoyMDAwLTA4LTAxIDEwOjIzICBoYXJkYWtlcgoKCS0gKHNubXAtdWNkLnNoKTogZml4IGJ1ZyAjMjk3IChkb24ndCBraWxsIGdyZXAgYW5kIGluaXQgc2NyaXB0IGludm9jYXRpb25zKS4KCQoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKCUZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KCQoyMDAwLTA4LTAxIDAzOjMwICBkYXZlcwoKCS0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGJ1aWxkaW5nIG9mIGNvbXBsZXRlIE9JRAoJCSh3b3JrIHdpdGggdGhlIG5hbWUgb3JpZ2luYWxseSByZWdpc3RlcmVkLAoJCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKCQoyMDAwLTA3LTMxIDIwOjA5ICBtc2xpZmNhawoKCVJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgoJCjIwMDAtMDctMzEgMTg6NTggIG1zbGlmY2FrCgoJKFRFU1RDT05GLnNoLmluKSAtIHNldCBNSUJESVJTIHRvIHNpYmxpbmcgb2YgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgoJKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCgkKMjAwMC0wNy0zMSAxNToyNSAgbXNsaWZjYWsKCglEb250IGFkanVzdCBQQVRIIGlmIFNOTVBfUEFUSCBpcyBzZXQuCglEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCgkKMjAwMC0wNy0zMSAxMzo0OSAgbXNsaWZjYWsKCglSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KCUtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgZmFpbGVkIHRlc3RzLgoJS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBwYXNzZWQgdGVzdHMgd2hlbiAiUlVOVEVTVFMgLXMiIGlzIHNwZWNpZmllZC4KCVNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KCQoyMDAwLTA3LTMxIDExOjMyICBtc2xpZmNhawoKCU1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQoJCjIwMDAtMDctMzEgMTE6MzEgIG1zbGlmY2FrCgoJTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwCgkKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CgkgIC0gaW1wbGVtZW50IHVudGVzdGVkIGZpbHRlcmluZyBmdW5jdGlvbiBjYWxsYmFjayBmb3IgdGFyZ2V0IHNlYXJjaGVzLgoJICAtIGRlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCgkgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgoJCjIwMDAtMDctMzAgMTc6MDcgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCgkgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCk6CgkgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCgkgICAgLSBGcmFtZXdvcmsgY29tcGxldGUsIGZ1bmN0aW9uYWxpdHkgaXMgbm90LgoJCjIwMDAtMDctMzAgMTc6MDUgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CgkgIC0gaGFuZGxlIGltcGxpZWQgb2JqZWN0cy4KCSAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCgkKMjAwMC0wNy0yOCAwNjoxNSAgbXNsaWZjYWsKCglDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCgkKMjAwMC0wNy0yNyAxNToxOSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gVmluYXkgTW9odGE6CgkgIC0gYWNjZXNzX2hvc3RzKCkgcmVxdWlyZXMgYW4gYXJndW1lbnQgc28gZmFrZSBvbmUuCgkKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hdHRpYXMgQmFydGhlbDoKCSAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgoJCjIwMDAtMDctMjcgMTQ6NTUgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CgkgIC0gc3VwcG9ydCByYXcgdmFsdWVzLgoJCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KCQoyMDAwLTA3LTI3IDA2OjIwICBuYmEKCgktIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCgkJZm9yIGFub3RoZXIKCQoyMDAwLTA3LTI3IDAxOjM1ICBuYmEKCgktIHNubXBfYXBpLmM6IEZpeCBwZHUtPmNvbW11bml0eSBiZWluZyBvdmVyd3JpdHRlbiB3aXRoIHNlc3Npb24tPmNvbW11bml0eQoJCVRoYW5rcyB0byBEYW5hIFAuIENvb2sgPGRjb29rQGNhYmxldHJvbi5jb20+CgkKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCglVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgoJCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgoJLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCgktICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSB0cmFuc2xhdGVPYmogaGFjay4KCQoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKCS0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHJlbW92ZSBiZWdpbm5pbmcgbmV3bGluZSBpbiBkZXNjcmlwdGlvbiBjbGF1c2VzLgoJCjIwMDAtMDctMjEgMTQ6MDAgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc25tcHRvc3FsKTogb25seSBkZWxldGUgaGlzdG9yeSByb3dzIG9uY2UgZXZlcnkgaG91ciBvciBzby4KCSAgLSB0b28gQ1BVIGludGVuc2l2ZSBmb3IgbGFyZ2UgdGFibGVzLgoJCjIwMDAtMDctMjEgMTI6NTkgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc25tcHRvc3FsKTogcmVjb3JkIGFuZCBkaXNwbGF5IHN5c1VwVGltZSBhbmQgb3RoZXJzLgoJCjIwMDAtMDctMjEgMTI6NTcgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGdyYXBoaW5nIHdvcmtzIGFnYWluLgoJCjIwMDAtMDctMjEgMTI6NTcgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogY29tbWVudHMsIGxlZ2VuZHMsIGFuZCBtYXgvbWluIHdvcmsgYWdhaW4uCgkKMjAwMC0wNy0xNyAxMTowMCAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuaCk6IGNvbmZpZ19yZXF1aXJlIGtlcm5lbF9zdW5vczUuCgkKMjAwMC0wNy0xMiAwOToyOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQoJICBwcml2YWN5IGtleSBhcyB0aGUgYXV0aCBrZXkuCgkKMjAwMC0wNy0xMSAxMzozNCAgbWFyegoKCWFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAoJCjIwMDAtMDctMTEgMTA6MDUgIGhhcmRha2VyCgoJLSAobWliLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KCQoyMDAwLTA3LTExIDA5OjIyICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKCSAgLSBtYWtlIHRoZSBzZXNzaW9uIHBvaW50ZXJzIGluZGljYXRlIHdlYXRoZXIgb3Igbm90IHRoZXkgYXJlCgkgICAgImF1dGhvcml0YXRpdmUiLCBtZWFuaW5nIHdlYXRoZXIgdGhleSBzaG91bGQgYmUgbGVhcm5pbmcgZW5naW5lSURzCgkgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCgkgIC0gcGFzcyB0aGUgcmVjZWl2ZWQtcGFja2V0IHNlc3Npb24gcG9pbnRlciBpbnRvIHNubXB2M19wYXJzZSBhbmQKCSAgICB1c21fcHJvY2Nlc3NfaW5fbXNnKCkgdG8gdXNlIHRoaXMgZmxhZy4KCSAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCgkKMjAwMC0wNy0xMSAwODozMiAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IG1ha2UgdGhlIGNyZWF0ZVVzZXIgdG9rZW4gYWNjZXB0IGFuIGVuZ2luZWlkICgtZSBBUkcpIHRvIHVzZS4KCQoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFJlY29nbmlzZSBUb2tlbiBSaW5nIGludGVyZmFjZXMgdW5kZXIgTGludXgKCQoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBwcmludCBnZW5lcmljIHN0cmluZ3Mgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCgkgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCgkKMjAwMC0wNy0wNiAxNzowNSAgaGFyZGFrZXIKCgktIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiBtb3ZlZCBURVNUQ09ORi5zaCB0byBURVNUQ09ORi5zaC5pbgoJICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwoJICB3aGVyZSB0aGUgcm9vdCBsZXZlbCBzb3VyY2UgZGlyZWN0b3J5IGlzLgoJCjIwMDAtMDctMDYgMTc6MDQgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhlYWRlcl9jb21wbGV4LmMsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBhc24xLmgsIHNubXBfYXBpLmMpOgoJICAtIGltcGxlbWVudCBJTVBMSUVEIGluZGV4IGhhbmRsaW5nLgoJICAtIG1ha2UgdGhlIGNyZWF0ZWQgVVNNIGVudHJpZXMgc2V0IHRoZSBzdG9yYWdlVHlwZSBhbmQgUm93U3RhdHVzCgkgICAgYXBwcm9wcmlhdGVseS4KCQoyMDAwLTA3LTA2IDE3OjAyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCgkKMjAwMC0wNy0wNSAwNzo1MCAgbXNsaWZjYWsKCglmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgoJCjIwMDAtMDctMDUgMDY6NDYgIG1zbGlmY2FrCgoJW25vIGxvZyBtZXNzYWdlXQoJCjIwMDAtMDctMDQgMTA6MjEgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CgkgIC0gcmVtb3ZlIGxhc3QgcmVtbmFudHMgb2YgdGhlICJpbml0aWFsIiB1c2VyLgoJICAtIG1ha2UgZW5naW5laWQgcmVwb3J0cyBmcm9tIHRoZSB1c20gaGFwcGVuIGJhc2VkIG9uIHRoZSByZXBvcnQgZmxhZwoJICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCgkgICAgLSBOb3RlOiB0aGlzIGlzIGEgYmlnIGlzc3VlIHdpdGggdGhlIFNOTVB2MyBwcm90b2NvbCBzcGVjcy4gIFRoZQoJICAgICAgc3BlY2lmaWNhdGlvbnMgbm90ZSB0aGF0IHlvdSBzZW5kIGEgcmVwb3J0IGlmIHlvdSBhcmUKCSAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKCSAgICAgIGF1dGhvcml0YXRpdmUgb3Igbm90LiAgRm9yIHNpdHVhdGlvbnMgbGlrZSBwcm94aWVzIGFuZAoJICAgICAgbm90aWZpY2F0aW9uIHJlY2VpdmVycywgd2hlcmUgeW91IGFyZSBzb21ldGltZXMgYXV0aG9yaXRhdGl2ZQoJICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCgkgICAgICBBU0lzIGRvIG5vdCBwYXNzIGluIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgdGhpcyBhbmQgdGhlCgkgICAgICBXRyBoYXMgcHJvY2xhaW1lZCB0aGF0IHRoZSBBU0lzIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBhcyBhbgoJICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KCSAgICAgIGltcGxlbWVudCB0aGUgVVNNIHN1Y2ggdGhhdCBpdCB3b3VsZCBiZSBhICJyZWZlcmVuY2UiIHJlbGVhc2UKCSAgICAgIGFuZCBoZW5jZSB3ZSBmb2xsb3dlZCB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlciBhbmQgdXNlZAoJICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKCSAgICAgIG9ubHkgYmVjYXVzZSB3ZSB3ZXJlIGFsd2F5cyBlaXRoZXIgYXV0aG9yaXRhdGl2ZSBvcgoJICAgICAgbm9uLWF1dGhvcml0YXRpdmUuICBTaW5jZSBiZWdpbm5pbmcgdG8gd29yayBvbiBwcm94eSBhbmQgdGhlCgkgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCgkgICAgICBhbSBoZXJlYnkgY2hhbmdpbmcgdGhlIGluaXRpYWwgcmVmZXJlbmNlIHJlbGVhc2UgaW4gc3VjaCBhCgkgICAgICBtYW5uZXIgYXMgaXQgbm8gbG9uZ2VyIGNvbmZvcm1zIGV4YWN0bHkgdG8gdGhlIFNOTVB2MyBBU0lzLiAgU28KCSAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQoJICAgICAgd2l0aCByZXNwZWN0IHRvIHRoZSBTTk1QdjMgc3BlY2lmaWNhdGlvbiBhbmQgaXMgcGVyZmVjdGx5IGxlZ2FsCgkgICAgICB0byBkby4gIFRob3VnaCBJIGNvdWxkIGVhc2lseSBnbyBvbiwgSSdsbCBzdGVwIG9mZiBteSBzb2FwIGJveCBub3cuCgkKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CgkgIC0gQWRkIGEgbmV3IGNhbGxiYWNrIGZvciBzZW5kaW5nIHRyYXBzLgoJICAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB1c2UgaXQuCgkgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCgkgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiBhbHdheXMgYXNrIHRoZSB0YXJnZXQgbWliIGZvciBhIHNlc3Npb24KCSAgICBsaXN0LCB3aGljaCBpcyBub3cgY2FjaGVkIGRpcmVjdGx5IGJ5IHRoZSB0YXJnZXQgbWliLgoJCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgoJZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCgkKMjAwMC0wNy0wMyAwNzo1NSAgbXNsaWZjYWsKCglmaXggKEJVRyMyODcpCgkKMjAwMC0wNy0wMyAwNjoxMSAgbXNsaWZjYWsKCglmaXggYnVnICMgMjg5CgkKMjAwMC0wNi0zMCAwNDo0NSAgbXNsaWZjYWsKCglzaW1wbGlmeSBtZW1vcnkgYWxsb2NhdGlvbiBpbiByZWFkX2NvbmZpZ19yZWFkX3tvY3RldF9zdHJpbmcsIG9iamlkfQoJCjIwMDAtMDYtMzAgMDA6NDcgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBmb3Iga2V5d29yZHMgd2l0aG91dCBoZWxwCgkKMjAwMC0wNi0yOCAyMzozNyAgbmJhCgoJLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCgkKMjAwMC0wNi0yOCAwMDo1OCAgbmJhCgoJLSBpbnRlcmZhY2VzLmMsIGNvbmZpZ3VyZTogSXJpeCA2LjUgaGFzIGlmaV9iYXVkcmF0ZS5pZnNfdmFsdWUKCQoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCgktIG1haW4uYzogYmV0dGVyIG9wdGlvbiBwYXJzaW5nLgoJCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKCS0gc25tcHYzLmM6IGRvIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2Ygb3B0aW9uIHZhbHVlcy4KCQoyMDAwLTA2LTI3IDAwOjMzICBuYmEKCgktIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKCQoyMDAwLTA2LTI3IDAwOjMwICBuYmEKCgktIHZhcmlvdXMgbWFuIHBhZ2Ugbml0LXBpY2tpbmcKCQoyMDAwLTA2LTI3IDAwOjI4ICBuYmEKCgktIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKCQoyMDAwLTA2LTI2IDIzOjQzICBuYmEKCgktIE1ha2VmaWxlLmluLCAqTUlCLnR4dDogdXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb24KCQoyMDAwLTA2LTI2IDIzOjQyICBuYmEKCgktIE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOiB0b29scyB0byBleHRyYWN0IE1JQnMgZnJvbSBSRkMKCQlkb2N1bWVudHMuCgkKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgoJLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKCQlPQkpFQ1QtR1JPVVAgYW5kIEFHRU5ULUNBUEFCSUxJVElFUy4gVGhpcyBhbGxvd3MgdXMgdG8gcGFyc2UKCQljb21wbGV0ZSBNSUIgZXh0cmFjdHMgZnJvbSBSRkMgZG9jdW1lbnRzLgoJCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKCS0gTWFrZWZpbGUudG9wOiBtYWtlIGxpYnRvb2wgc2lsZW50LCBzbyB3ZSBjYW4gc2VlIHRob3NlIHdhcm5pbmdzCgkKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgoJLSBzbm1wVGFyZ2V0QWRkckVudHJ5LmM6IGRvIGEgY2FzdCB0byBraWxsIGEgd2FybmluZwoJCjIwMDAtMDYtMjYgMjM6MzIgIG5iYQoKCS0gYWdlbnRfdHJhcC5jOiBGaXggYSBsZWFrIHdoZW4gcmVxdWVzdCBpcyBibG9ja2VkIGJ5IFZBQ00gYW5kIG5vIHRyYXAKCQlpcyBzZW50LgoJCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgoJZml4IChCVUcjMjMzKQoJCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgoJcmVwbGFjZSBtYWxsb2MvbWVtc2V0IDAgd2l0aCBjYWxsb2MuCgkKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCgktIChtaWJJSS9rZXJuZWxfbGludXguW2NoXSwgbWliSUkvaXAuYyk6IEFkZGVkIHN1cHBvcnQgZm9yIGlwUm91dGluZ0Rpc2NhcmRzCgkJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKCQoyMDAwLTA2LTIyIDE3OjA5ICBtc2xpZmNhawoKCXJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKCQoyMDAwLTA2LTIyIDE2OjUwICBtc2xpZmNhawoKCUZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KCQoyMDAwLTA2LTIyIDE1OjU5ICBtc2xpZmNhawoKCWZnZXRzOiB1c2Ugc2l6ZW9mKGJ1ZikgaW4gbGlldSBvZiBjb21waWxlciBjb25zdGFudCBTVFJNQVguCgkKMjAwMC0wNi0yMiAxNTo1MyAgbXNsaWZjYWsKCglVc2UgZmV3ZXIgbGFyZ2Ugc3RhdGljIGJ1ZmZlcnMuICBwYXNzX3BlcnNpc3QgdXNlcyBiaWdnZXIgYnVmZmVycyBub3cuCgkKMjAwMC0wNi0yMSAxNDo1OSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCBzbm1wdG9zcWwpOiByZWNvcmQgYW5kIHJlcG9ydCBzeXNVcFRpbWUuCgkKMjAwMC0wNi0yMSAxNDozMSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBtaW5vciBzcWwgY2FjaGluZyBzcGVlZCBvcHRpbWl6YXRpb25zLgoJCjIwMDAtMDYtMjEgMTM6MzMgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogQWNrLiAgRG9uJ3QgZGVsZXRlIHN0dWZmIGZyb20gdGhlIGhpc3RvcnkgdGFibGUgdGhhdCBmcmVxdWVudGx5LgoJCjIwMDAtMDYtMjEgMTI6NTEgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogYmV0dGVyIGVycm9yIGRlc2NyaXB0aW9uIHN1cHBvcnQuCgkKMjAwMC0wNi0yMSAxMjo0NiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCBzbm1wdG9zcWwpOiBjb2xsZWN0IHN5c0Rlc2NyLCBzeXNPYmplY3RJZCwgJiB2ZXJzaW9uVGFnLgoJCjIwMDAtMDYtMjEgMTI6NDYgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogYWRkIC1zZWxlY3RvcmRlci4KCQoyMDAwLTA2LTIxIDEyOjI1ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCgkKMjAwMC0wNi0yMSAxMjoyMyAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgoJCjIwMDAtMDYtMjAgMjA6MDEgIG1zbGlmY2FrCgoJRGVjbGFyZSB0b3BfYnVpbGRkaXIgdG8gYXZvaWQgYW5ub3lpbmcgL2xpYnRvb2wgbm90IGZvdW5kIG1lc3NhZ2UuCgkKMjAwMC0wNi0yMCAxNzozMCAgbXNsaWZjYWsKCglEb250IGFzc3VtZSBBTlNJIEMtcHJlcHJvY2Vzc29yIChyZXBsYWNlICIjIyIgY29uY2F0ZW5hdGlvbiB3aXRoIHNwcmludGYpLgoJCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgoJV2luMzIgTVMtVkMrKyBidWlsZCBmaXh1cHMuCgkKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCglFbmNhcHN1bGF0ZSBsb2NhbCB2YXJpYWJsZSAieCIgdG8gdGhlIHNjb3BlIHdoZXJlIG5lZWRlZC4KCQoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyICJuZXd2YXIiLgoJCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgoJVXNlIGludCB2cyB1bG9uZyBmb3IgYXJyYXkgaW5kZXhpbmcgdmFyaWFibGVzIHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4KCQoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFycyBzdHJ1Y3QgdG0sIHRpbWVfdC4KCQoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCgkKMjAwMC0wNi0yMCAxNTozMyAgbXNsaWZjYWsKCglEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCgkKMjAwMC0wNi0yMCAxNTozMSAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcnMuCgkKMjAwMC0wNi0yMCAxNTozMCAgbXNsaWZjYWsKCglEZWNsYXJlIG9wdGFyZyBpbiBnZXRvcHQuaC4KCQoyMDAwLTA2LTIwIDE0OjAwICBoYXJkYWtlcgoKCS0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgbWlub3IgY2hhbmdlcy4KCQoyMDAwLTA2LTIwIDEzOjU5ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CgkgIC0gU05NUC1OT1RJRklDQVRJT04tTUlCJ3Mgc25tcE5vdGlmeVRhYmxlIGltcGxlbWVudGVkOgoJICAgIC0gdXNlcyB0aGUgU05NUC1UQVJHRVQtTUlCIHRvIGdldCBpdHMgYWRkcmVzc2VzIGZyb20uCgkgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KCSAgICAtIG11Y2ggdG9kbzoKCSAgICAgIC0gZHluYW1pYyB0YXJnZXQvbm90aWZpY2F0aW9uIG1pYiB1cGRhdGluZyB3aXRob3V0IGtpbGwgLUhVUCBuZWVkZWQuCgkgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgoJICAgICAgLSBmaXggdjMgcmVsYXRlZCB0cmFwcyBzdGlsbCAoc2FtZSB1c20gYnVnIEkndmUgYmVlbiBtZWFuaW5nIHRvIGZpeCkuCgkgICAgICAtIHRoZSByZXN0IG9mIHRoZSBTTk1QLU5PVElGSUNBVElPTi1NSUIgdGFibGVzLgoJCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CgktIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KCS0gbWlzYyBvdGhlciBtaW5vciBmaXhlcy4KCQoyMDAwLTA2LTIwIDEzOjUxICBoYXJkYWtlcgoKCS0gKHRhcmdldC5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOiBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCgkgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KCQoyMDAwLTA2LTIwIDEzOjUwICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMpOiByZW1vdmUgTWljaGFlbCdzIGhvcnJpYmxlbHkgd3JvbmcgImZpeGVzIi4KCQoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKTogYWRkIHJlbW92ZV90cmFwX3Nlc3Npb24oKS4KCQoyMDAwLTA2LTIwIDEzOjQ2ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBkZWFsIHdpdGggMC1sZW5ndGggcGVyc2lzdGVudCBzdHJpbmdzIGJldHRlci4KCQoyMDAwLTA2LTE5IDEyOjMyICBtc2xpZmNhawoKCUNoZWNrIG1vcmUgYWxsb2MgZmFpbHVyZXMuCgkKMjAwMC0wNi0xOSAxMjoxNSAgbXNsaWZjYWsKCgkocHJvdG9jb2wuYykgVXNlIHNpemVvZihvaWQpLCBub3QgNCEKCShjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KCQoyMDAwLTA2LTE5IDExOjQxICBtc2xpZmNhawoKCSBSZW1vdmVkIHNpemVvZih1X2NoYXIpIGFuZCB1bm5lY2Vzc2FyeSAodW5zaWduZWQpIGNhc3RzIHRvIG1hbGxvYyBwYXJhbXMuCgkKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgoJUHJvdG90eXBlIGZpeHVwLgoJCjIwMDAtMDYtMTkgMDM6MDEgIG5iYQoKCXMvY29uaWZnL2NvbmZpZy8gLi4uLiBIcnJybW1tcGYKCQoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCgktIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgoJCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oKTogYWRkIHRoZSBTTk1QdjItVE0gbWliIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgkKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogZml4IGluY29ycmVjdCBPSURzLgoJCjIwMDAtMDYtMTUgMDY6NDUgIG1hcnoKCglmYXQgZmluZ2VycwoJCjIwMDAtMDYtMTUgMDY6NDIgIG1hcnoKCglhZGQgZGVmYXVsdHMgdG8gZGFlbW9uIHNlYXJjaCBwYXRoLi4ucmVjYWxjIHQvc25tcHRlc3QuY21kIGV2ZXJ5dGltZSBwZXIgbWFrZWZpbGUuUEwgaXMgcnVuCgkKMjAwMC0wNi0xNCAxNjoxNSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogZml4IHVzZXIgcHJlZmVyZW5jZXMuICBDb2x1bW5zIGFyZSBvcHRpb25hbGx5CgkgIGRpc3BsYXlhYmxlIGFnYWluLgoJCjIwMDAtMDYtMTQgMTY6MTUgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IGhpc3RvcnkgZGVsZXRpb24uCgkKMjAwMC0wNi0xMiAxNjo0MyAgaGFyZGFrZXIKCgktIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdHJhcHNlc3MuCgkKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6CgkgIC0gbmV3IHNubXBkLmNvbmYgdG9rZW4gZm9yIHRyYXAgc2Vzc2lvbnM6ICJ0cmFwc2VzcyIuCgkgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKCSAgICAgIG1vZGlmaWVkIGJ5IGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGFyZSBkb2N1bWVudGVkIGluIHNubXBjbWQoMSkuCgkgICAgLSB2MyB0cmFwcyBkb24ndCB3b3JrIGR1ZSB0byB0aGUgc2FtZSBVU00gcHJvYmxlbXMgZm91bmQgaW4gdGhlCgkgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KCSAgICAtIC1DaSBpbiB0aGUgYXJndW1lbnQgc3BlY2lmaWVzIGluZm9ybXMgc2hvdWxkIGJlIHVzZWQuCgkKMjAwMC0wNi0xMiAxNjoxOCAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogcmUtZW5hYmxlIGZyZWVpbmcgb2YgbWFzdGVyIHJlcXVlc3QuCgkKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCgkgIC0gY291bGQgY2F1c2UgcHJvYmxlbXMgZm9yIG5vbi1yb290IHJ1bnMuICBVbnRlc3RlZC4KCQoyMDAwLTA2LTEyIDE0OjEyICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZF9sb2cuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKCSAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCgkKMjAwMC0wNi0xMiAxMDozNiAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzZXR1cHVzZXIsIHNubXB0b3NxbCk6IHVzZSAiVGFibGUicyBpbnN0ZWFkIG9mICJFbnRyeSJzLgoJCjIwMDAtMDYtMTIgMTA6MzMgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3IgZGlzcGxheSBwdXJwb3NlcyAoYWdhaW4pLgoJCjIwMDAtMDYtMTIgMTA6MjkgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCQoyMDAwLTA2LTEyIDEwOjI3ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBwcm9wZXJseSBzb3J0IGRpc3BsYXllZCB0YWJsZSBjb2x1bW5zIGFnYWluLgoJCjIwMDAtMDYtMDcgMTM6MjMgIGhhcmRha2VyCgoJLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgoJICAtIHRoZSBUWVBFLmNvbmYgcGFyc2VyIG5vdyBhY2NlcHRzIHRva2VucyBmcm9tIGEgZGlmZmVyZW50IC5jb25mCgkgICAgZmlsZSBUWVBFIGlmIGEgc3BlY2lhbCAiW1RZUEVdIiBrZXl3b3JkIGlzIGluc2VydGVkIGludG8gdGhlCgkgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCgkKMjAwMC0wNi0wNyAxMzoyMiAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJICAtIG1hcCBzdHJ0b3VsIHRvIGF0b2kgaWYgdGhlIGZ1bmN0aW9uIGlzbid0IGZvdW5kLgoJCjIwMDAtMDYtMDYgMTQ6MjYgIGhhcmRha2VyCgoJLSAoSU5TVEFMTCwgZ3JlZW4uZ2lmLCBtYW5hZ2VyLnBtLCByZWQuZ2lmLCBzZXR1cGF1dGgsIHNldHVwZGIsCgkgIHNldHVwbmV3aG9zdCwgc2V0dXB1c2VyLCBzbm1wdG9zcWwsIHNubXB0b3NxbHRhYmxlLCBzcWx0b2h0bWwpOgoJICAtIG1hbmFnZW1lbnQgY2xlYW51cCBhbmQgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyB3cml0dGVuLgoJICAtIHNob3VsZCBiZSBtb3N0bHkgY29tcGxldGUgKGllLCBiYXJlbHkgZnVuY3Rpb25hbCkgZm9yIHRoZSBhbHBoYSB0ZXN0ZXJzLgoJCjIwMDAtMDYtMDYgMDg6MDMgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogaG9zdCBuYW1lIGNoYW5nZXMgLT4gdmFyY2hhcig2NCkKCQoyMDAwLTA2LTA2IDA4OjAyICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBtYW55IG1pbm9yIGZpeGVzIGFuZCBjaGFuZ2VzLgoJCjIwMDAtMDYtMDYgMDg6MDIgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogYWxsb3cgdGFibGUgdGl0bGUgc2V0dGluZy4KCQoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBhZGQgKi5tYWRlLgoJCjIwMDAtMDYtMDIgMTE6NDAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGZpeHByb2MsIGlwZi1tb2QucGwsIG1pYjJjLCB0a21pYik6CgkgIC0gbWFrZSAoYW5kIGluc3RhbGwpIHBlcmwgc2NyaXB0cyBkaWZmZXJlbnRseSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIG9yaWcuCgkKMjAwMC0wNi0wMSAxNjo0NyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiB0eXBvcy4KCQoyMDAwLTA2LTAxIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6CgkgIC0gZGVidWdnaW5nIHRvIFNUREVSUi4KCSAgLSBhdXRvIGRlbGV0aW9uIG9mIG9sZCBoaXN0b3JpY2FsIGRhdGEuCgkKMjAwMC0wNi0wMSAxNjo0NCAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogYmVnaW5uaW5ncyBvZiBhIG5pY2VyIHJlYWwgaW50ZXJmYWNlLgoJCjIwMDAtMDYtMDEgMTY6NDMgIGhhcmRha2VyCgoJLSAoZ2V0VmFsdWVzLnBtKTogc29tZSB2YXJpYWJsZXMgd2VyZSBnbG9iYWwgYW5kIGhlbmNlIHBlcnNpc3RlbnQgYW5kCgkgIHdlcmUgbWVzc2luZyB0aGluZ3MgdXAuCgkKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc3RvcmUgcGVyc2lzdGVudCBkYXRhIGltbWVkaWF0ZWx5IGFmdGVyIGluaXQnaW5nIHRvCgkgIGVuc3VyZSB3ZSB1cGRhdGUgY291bnRlcnMgYW5kIHN0dWZmIHRoYXQgbXVzdCBjaGFuZ2UgKGVnLCBlbmdpbmVCb290cykuCgkKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGRlc2NyaWJlIC1JLgoJCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBkLmMpOgoJICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCgkgICAgbW9kdWxlcyB0byBpbml0aWFsaXplIChhbmQgaGVuY2Ugd2hpY2ggbWliIHRyZWUgc2VjdGlvbnMgdG8gc3VwcG9ydCkuCgkKMjAwMC0wNS0zMSAxNTo1MCAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6IGRlZmF1bHQgc3RvcmUgcm91dGluZXMgZm9yIHZvaWQgcG9pbnRlcnMuCgkgLSB3aGljaCBJIGltbWVkaWF0ZWx5IGRlY2lkZWQgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCBmb3Igd2hhdCBJCgkgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KCQoyMDAwLTA1LTMxIDA1OjU5ICBkYXZlcwoKCS0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKCQoyMDAwLTA1LTMwIDE3OjExICBoYXJkYWtlcgoKCS0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KCSAgLSBtYXBzIG9uZSBvaWQgaW5zaWRlIHRoZSBhZ2VudCB0byBhIHBvc3NpYmx5LWRpZmZlcmVudCBvaWQgb24gYSB0YXJnZXQuCgkgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3MoKSBzbyBpdCB0YWtlcyBzdGFuZGFyZCBjb21tYW5kIGxpbmUgY29uZmlnIG9wdGlvbnMuCgkgIC0gbm8gc2V0IHN1cHBvcnQuCgkgIC0gbm8ga2lsbCAtSFVQIHN1cHBvcnQuCgkgIC0gbm8gU05NUHYzIHN1cHBvcnQgKHNpZ2gpLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDc6NDcgIG1zbGlmY2FrCgoJRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQgOiBuZXcgbWV0aG9kIHNubXBfb2lkX21pbl9jb21wYXJlCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIHNtaXN0cmlwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMjYgMDk6MjQgIGRhdmVzCgoJLSAobWliSUkvc3lzT1JUYWJsZS5jIG1pYklJL3N5c3RlbV9taWIuYyk6CgkgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwoJICAtIFVwZGF0ZSBzeXNPUkxhc3RDaGFuZ2Ugd2hlbiBhZGRpbmcvcmVtb3ZpbmcgZW50cmllcwoJCjIwMDAtMDUtMjYgMDk6MjMgIGRhdmVzCgoJLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCgkKMjAwMC0wNS0yNiAwODo0NiAgZGF2ZXMKCgktIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKCQoyMDAwLTA1LTI2IDA3OjQ4ICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdCgkgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CgkgICAtIFN1cHBvcnQgZm9yIE1JQiByZWdpb24gdGltZW91dHMKCQoyMDAwLTA1LTI2IDA3OjQ2ICBkYXZlcwoKCS0gKHNubXAuaCBzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBTdXBwb3J0IGZvciBwZXItcmVxdWVzdCB0aW1lb3V0IGhhbmRsaW5nCgkKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAoJCjIwMDAtMDUtMjUgMTA6MDcgIGhhcmRha2VyCgoJLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgoJICAtIGZpeGVkIGxpbnV4IHByb2JsZW06IHdyb25nIHBhcmFtcyBnZXR0aW5nIHJldHVybmVkLgoJCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgoJRml4IHVzZSBvZiBiaW4yYXNjIHRvIG5vdCBhbHdheXMgc2hvdyAic3RyaW5nIjsgdXNlIHNubXBfb2lkX2NvbXBhcmUsIHRvby4KCVNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KCQoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KCQoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKCQoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKCQoyMDAwLTA1LTI1IDAxOjMwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSk6CgkgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQoJCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgoJLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgoJCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKCSAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCgkgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAoJICBzbm1wX3BhcnNlX2FyZ3MuaCk6CgkgIC0gbW92ZWQgc25tcF9wYXJzZV9hcmdzIHRvIHRoZSBsaWJyYXJ5LCBhcyBJIHByb21pc2VkIHRvIGRvIGFnZXMgYWdvLgoJICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCgkKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCgktIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCgkKMjAwMC0wNS0yMiAwNTo0MiAgZGF2ZXMKCgktIChsb2NhbC9taWIyYyk6IEdlbmVyYXRlIG11bHRpcGxlIHRhYmxlcyBpbiBvbmUgY29kZSBmaWxlCgkKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCgkgIC0gb3RoZXIgbWlzYyB2YWNtIGZpeGVzLgoJCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgoJCjIwMDAtMDUtMTcgMTA6MjUgIGhhcmRha2VyCgoJLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBhZGRlZCBhIG5ldyBjb21tYW5kOiBzbm1wdmFjbS4KCQoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgoJCjIwMDAtMDUtMTcgMDk6MjAgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwoJCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbQoJICBKZWZmIENvdXJzOgoJICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KCQoyMDAwLTA1LTE3IDA5OjExICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgoJCjIwMDAtMDUtMTcgMDg6MTUgIGhhcmRha2VyCgoJLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KCQoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKCS0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGVzY2FwZVF1b3Rlcy4KCQoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKCS0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgoJICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwoJICAgIG9udG8gYW5vdGhlciBzbm1wIGNvbW1hbmQgbGluZS4KCQoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKCS0gKG1pYklJL3tpcCxpY21wLHRjcCx1ZHAsa2VybmVsX2xpbnV4fS5bY2hdKToKCSAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgoJICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KCQoyMDAwLTA1LTE1IDA4OjUzICBoYXJkYWtlcgoKCS0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSB2bXN0YXQgc3VwcG9ydCBmb3IgYnNkaTQuCgkKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZS1yZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCgkKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IEltcGxlbWVudCBtaXNzaW5nIHJvdXRpbmUgJ3VucmVnaXN0ZXJfbWliX2NvbnRleHQnCgkKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CgkKCS0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwoJCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgoJCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSB2YXJfc3RydWN0LmggYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAoJCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwoJCVRoYW5rcyB0byBKYXkgWW91bmcKCQoyMDAwLTA1LTEyIDA4OjEzICBkYXZlcwoKCS0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCgkKMjAwMC0wNS0xMiAwNzowMiAgZGF2ZXMKCgktIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKCQoyMDAwLTA1LTEyIDA2OjU3ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCgkJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCgkKMjAwMC0wNS0xMiAwNDowMiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCUknbSBzdXJlIHRoaXMgd2FzIHB1dCBpbiBmb3IgYSByZWFzb24sIGJ1dCBJIGNhbid0IHJlbWVtYmVyIHdoYXQuCgkJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KCQlIZXJlJ3MgaG9waW5nLi4uLi4KCQoyMDAwLTA1LTEyIDAzOjExICBkYXZlcwoKCS0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgoJCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKCQoyMDAwLTA1LTEyIDAyOjI0ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKToKCSAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKCSAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQoJICAtIEFkZCBwYWNrZXQgZHVtcCBjYXBhYmlsaXR5IGZvciBvdXRnb2luZyBQRFVzCgkKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1wLgoJCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWx3YXlzIHVzZSB0aGUgZGVmYXVsdCB0cmFuc3BvcnQgbWFwcGluZywgbm90IHRoZSBsYXN0IG9uZS4KCQoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKCS0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKCSAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgoJCjIwMDAtMDUtMTAgMTE6MDggIG1zbGlmY2FrCgoJZml4IHVkcHN0YXQgLS0+IHRjcHN0YXQKCQoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwoJCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CgkgIC0gUHJvdmlkZSBhIG1lY2hhbmlzbSB0byBoYW5kbGUgYXN5bmNocm9ub3VzIHNlbmQgZmFpbHVyZXMuCgkKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogTG9naWNhbCBOT1Q/IEJpdHdpc2UgTk9UPyBXaG8nbGwgbm90aWNlIHRoZSBkaWZmZXJlbmNlIGFueXdheSEKCQoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwoJCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCgkKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCgkKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCglhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KCQoyMDAwLTA1LTA5IDE0OjM0ICBtc2xpZmNhawoKCXRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCgkKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCgl1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCgkKMjAwMC0wNS0wOSAxMTozMSAgbXNsaWZjYWsKCglmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQoJCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgoJUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgoJCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKCSAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KCQoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCgkJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQoJCjIwMDAtMDUtMDkgMDc6NDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgZXJyb3IgcmVzcG9uc2UgZ2VuZXJhdGlvbgoJCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQoJCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgoJCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKCQkgYnV0IHdvcmtzIGZvciBub3cuICBXZSBjYW4gdGlkeSB1cCBsYXRlcikuCgkKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCgktIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKCQkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKCQlUaGlzIGhhbmRsZXMgc3Vic2VxdWVudCBwYXJ0IG9mICdzcGxpdCcgcmFuZ2VzIHByb3Blcmx5LgoJCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KCQoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KCQoyMDAwLTA1LTA1IDA5OjU2ICBoYXJkYWtlcgoKCS0gKGRpc2tpby5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgoJCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgoJLSAoYXQuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCgkKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wNS0wNSAwOTowMCAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6CgkgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA1IDA4OjU4ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSBzbm1wbGliL3NubXBfY2xpZW50LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdKToKCSAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAoJCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQoJCjIwMDAtMDUtMDQgMTY6MjEgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtaW5vciB1bmltcG9ydGFudCAtLXdpdGhvdXQtb3BlbnNzbCBmaXguCgkKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCgkKMjAwMC0wNS0wNCAxNjoxNSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGFkZCB0aGUgRElTTUFOLVNDUklQVC1NSUIudHh0CgkKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSBpbnN0YWxsIFVDRC1ESVNLSU8tTUlCLnR4dC4KCQoyMDAwLTA1LTA0IDE1OjIxICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSwgbWFuYWdlci5wbSk6IG1ha2UgcHVyZHkgZ3JhcGhzIHdpdGggaGlzdG9yeSB0YWJsZXMuCgkKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCgkJCShGcm9tIGEgc3VnZ2VzdGlvbiBieSBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFZhcmlvdXMgbWlub3IgZml4ZXMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogSGFuZGxlIGluZGV4L3N0YXR1cyBpbmZvcm1hdGlvbiBzZXBhcmF0ZWx5IGZyb20gUERVLgoJCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwoJCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwMTowMCAgZGF2ZXMKCgktICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQoJCShUaGFua3MgdG8gSmVmZiBXaWxzb24gLSBzZWUgQlVHICMyMzEpCgkKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgoJICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogV2hlbiByZXR1cm5pbmcgYW4gZXJyb3IgcmVzcG9uc2UsCgkJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCgkKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0pOiBSb3V0aW5lIHRvIGhhbmRsZSB2YXJpYWJsZXMgaW5kaXZpZHVhbGx5CgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKCQkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKCQoyMDAwLTA1LTAyIDA5OjU2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBsb3RzIG9mIHNtYWxsIGNoYW5nZXMuCgkKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgoJLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCgkKMjAwMC0wNS0wMSAwNjo1NSAgbWFyegoKCSBhcHBsaWVkIHBhdGNoIGZyb20gU3RldmUgUGhlcmFuIFNub2RncmFzcyB0byBmaXggaW5jb21wYXRpYmlsaXR5IHdpdGggcGVybDUuNiByZWYgc3RyaW5naWZpY2F0aW9uCgkKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCgkKMjAwMC0wNC0yOCAxNjoyMiAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggLW0vLU0gdGhlIHdyb25nIHdheS4KCQoyMDAwLTA0LTI4IDE2OjE1ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6CgkgLSBkbyBoaXN0b3J5IHNhdmluZyBiZXR0ZXIgKGRpZmZlcmVudCB0YWJsZSkuCgkgLSAtbS8tTSBtaWIgbG9hZGluZyBvcHRpb25zICh3aGljaCBkb24ndCBhcHBlYXIgdG8gYmUgd29ya2luZyByaWdodCB5ZXQpLgoJCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgoJCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi5jKTogaW1wbGVtZW50IGEgcmVtb3RlIGRmIGNvbW1hbmQgdmlhIHNubXAKCSAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KCQoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwoJICByZXF1aXJpbmcgeWV0IGFub3RoZXIgbGlicmFyeTogbGlicG9wdC4KCQoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCk6IHJ1biBsaWJ0b29sIC0tZmluaXNoIHdpdGhvdXQgLW4gKGdvIGFoZWFkIGFuZCBkbyB0aGUgY21kcykKCQoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKCSAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQoJCjIwMDAtMDQtMjYgMTQ6MTggIGhhcmRha2VyCgoJLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKCSAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKCSAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCgkgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKCQoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCgktIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KCQoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IEF0dGVtcHQgdG8gcGFyc2UgdGhlIFBEVSB3aGVuIGEgcmVwb3J0IGlzCgkgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCgkgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwoJICBkb2luZyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzIGJhc2VkIG9uIHRoZSByZXF1ZXN0X2lkICh3aGljaCBpcyBhCgkgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKCSAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCgkgIHRoZSByZXBvcnQgaXMgZW5jcnlwdGVkKS4KCQoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gdGhhdCB0aGUgcGVybCBtb2R1bGUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgc291cmNlLgoJCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IG1pc2MgLURkdW1wIGZpeGVzLgoJCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgoJLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgoJCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CgkgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCgkKMjAwMC0wNC0yNCAxMDozNiAgaGFyZGFrZXIKCgktIChhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCgkgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgoJICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgoJICAtIG1vcmUgY29uZmlndXJhYmxlIHBhY2tldCBkdW1waW5nIGNvZGUgZm9yIGJvdGggc2VuZCBhbmQgcmVjZWl2ZS4KCSAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKCSAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQoJICAgICAgKGFuZCBuZXdsaW5lKSBiZWZvcmUgdGhlIHNlZ21lbnQgaW4gcXVlc3Rpb24uICBUcnkgLURkdW1wIHRoZW4KCSAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KCSAgICAtIHRvZG86CgkgICAgICAtIGJldHRlciBob3Jpem9udGFsbHkgZm9ybWF0ZWQgaW5mb3JtYXRpb24gKHByb2JhYmx5IHVzaW5nICIlTlVNcyIpLgoJICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwoJICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCgkgICAgICAtIG9wdGlvbiB0byBzdHJpcCBkYXRhdHlwZSB0b2tlbiAoaWUgSW50ZWdlcjopLgoJCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMCApCgkKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCgkKMjAwMC0wNC0yMSAxNDoxMyAgaGFyZGFrZXIKCgktIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgoJCjIwMDAtMDQtMjEgMTA6NDEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KCQoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KCQoyMDAwLTA0LTIxIDA4OjE3ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCgkKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKCWNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCgkKMjAwMC0wNC0xOSAxMDo1OSAgbWFyegoKCWFkZGVkIE1hcmMgTGVobWFuIHBhdGNoIHRvIGVuc3VyZSBhbGxvYy9kZWFsbG9jIHVzZSBzYW1lIG1lY2hhbmlzbSAocGVybCB2cy4gc3lzdGVtIGRlZmF1bHQpCgkKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGFsd2F5cyBibG9jayBpZiBjYWxsZXIgcmVxdWVzdGVkIGl0LgoJCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgoJbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCgkKMjAwMC0wNC0xOCAxMToxMSAgbXNsaWZjYWsKCglTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKCURlZmluZSBvcHRhcmcgZm9yIGFwcHMgdXNlOyBEZWZpbmUgdmFjbV9pc19jb25maWd1cmVkIGZvciBhZ2VudCB1c2UuCgkKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCgktICh2bXN0YXQuYywgdm1zdGF0LmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1penVraSBIb25kYToKCSAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgoJCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgoJLSAobWFuL3NubXB0YWJsZS4xIGFwcHMvc25tcHRhYmxlLmMpOgoJICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKCQoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAoJCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmaXggLVogaWYgYXJncyBhcmUgd3JvbmcuCgkKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KCQoyMDAwLTA0LTE3IDE1OjA2ICBoYXJkYWtlcgoKCS0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gdXBkYXRlIG9uIHRoZSBzZW5kbWFpbCBtb2R1bGUuCgkKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCgktICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGZpeCBzc0NwdVN5c3RlbSwgc3NDcHVVc2VyLCBzc0NwdUlkbGUuCgkKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluKTogcHJvcGVybHkgdXNlIExOX1MgZm9yIGxpbmtpbmcgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oKTogZW5naW5lSUQgY2hhbmdlcyBmb3IgYmV0dGVyIGFDQyBzdXBwb3J0LgoJCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBzbm1waW5mb3JtLgoJCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogZml4IHJvdyBjcmVhdGlvbi4KCQoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKCS0gKGF1dG9fbmxpc3QuYyBzbm1wZC5jIGFnZW50eC9tYXN0ZXIuYyk6IERvbid0IGV4aXQgb24gZmFpbHVyZSB3aXRoICctcicKCQoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc3RhdHVzLmMsIHNubXBjbWQuMSwgc25tcGdldC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCgkKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KCQoyMDAwLTA0LTE0IDA5OjAzICBoYXJkYWtlcgoKCS0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KCQoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuMTogZGVjdW1lbnQgdGhlIC13IHdpZHRoIG9wdGlvbgoJCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgoJaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCgkKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCglmaXggJWYoJXMpCgkKMjAwMC0wNC0xMiAwOToyOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCgkKMjAwMC0wNC0xMiAwOToxNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCgkKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCgktIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgoJCjIwMDAtMDQtMTIgMDk6MTIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCgkgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgoJICAgIC0gQW55b25lIGtub3cgYSBiZXR0ZXIgcGxhY2UgdG8gcHV0IHRoaXMgb3B0aW9uPwoJICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgoJCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY20uYywgdmFjbS5oKTogZml4IHRvIGFsbG93IG5vIHYxL3YyYyByZXF1ZXN0cyB3aGVuCgkgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCgkKMjAwMC0wNC0xMiAwNjo1MCAgbXNsaWZjYWsKCglmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCgkKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgoJLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKCQlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwoJCjIwMDAtMDQtMTIgMDU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAoJCjIwMDAtMDQtMTIgMDU6MzAgIG5iYQoKCS0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0OiBhbGlnbiB3aXRoIHB1Ymxpc2hlZAoJCVJGQyAyNzkwCgkKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgoJICB0aGUgbWliIGluICRzcmNkaXIvbWlicy9ibGFoIGFuZCBpbnN0YWxsIGl0IGlmIGZvdW5kLgoJCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAoJICBzcGVjaWZpYywgYnV0ICNkZWZpbmVzIGFyZSBjaGVja2VkIGluc3RlYWQuCgkKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCgktIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgoJCjIwMDAtMDQtMTEgMTQ6MzggIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CgkgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCgkKMjAwMC0wNC0xMSAwOTo1MSAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gaW1wbGVtZW50cyB0aGUgTVRBLU1JQiBmb3IgbW9uaXRvcmluZyBzZW5kbWFpbC4KCQoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKCS0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCgkKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KCQoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgoJCjIwMDAtMDQtMTEgMDE6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEeW5hbWljYWxseSByZXNpemUgc3ViYWdlbnQgcmVxdWVzdHMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwLmMsIHNubXB1c20uYyk6CgkgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCgkgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKCSAgICBjb21tYW5kIGxpbmUgYXBwcyB0aGlzIGRvZXNuJ3QgbWFrZSBhIHdob2xlIGxvdCBvZiBzZW5zZSBidXQgaXMKCSAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCgkgICAgc29tZXdoYXQgb2YgYSBoYWNrLgoJCjIwMDAtMDQtMDcgMDc6NTAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSGFuZGxlIHYyIGV4Y2VwdGlvbiB0eXBlcyBpbiB2MSBxdWVyaWVzCgkKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYywgcmVhZF9jb25maWcuYywgc25tcHYzLmMpOgoJICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCgkgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCgkKMjAwMC0wNC0wNiAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKCSAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCgkgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgoJICAtIGNyZWF0ZSBhIGZsYWcgdG8gbm90IHByb2JlIGZvciBlbmdpbmVJRHMgZHVybmluZyBzZXNzX29wZW4oKS4KCQoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEZpeCBtaXNoYW5kbGVkIENvdW50ZXI2NCBwYXJzaW5nCgkKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgoJCjIwMDAtMDQtMDYgMDM6MzEgIGRhdmVzCgoJLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgoJCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgoJLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgoJCjIwMDAtMDQtMDUgMDg6MzggIGhhcmRha2VyCgoJLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAoJICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgoJICAtIG1ha2Ugc25tcHRyYXBkIGhhbmRsZSB2MyB1c2VycyBwcm9wZXJseSwgKGFuZCBzaHV0ZG93biBwcm9wZXJseSBhcyB3ZWxsKS4KCSAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KCSAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCgkKMjAwMC0wNC0wNSAwODoyNyAgaGFyZGFrZXIKCgktIChyc25tcCk6IC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCgkKMjAwMC0wNC0wNCAxMTowMyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgdW5pbXBsZW1lbnRlZCBvYmplY3RzIHJldHVybiAnbm9TdWNoT2JqZWN0JwoJCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgoJSW5pdGlhbGl6ZSBzdGF0UC4KCQoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgoJCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgoJCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgoJCjIwMDAtMDMtMzEgMDc6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwoJCjIwMDAtMDMtMzEgMDc6MTMgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKCQoyMDAwLTAzLTMxIDA3OjA0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCgkKMjAwMC0wMy0zMCAwMDoxNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBJbml0aWFsaXNlIHRpbWVvdXQgc3RydWN0dXJlIHByb3Blcmx5CgkJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCglyZW1vdmUgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGhyU1dSdW5OYW1lIHZhbHVlcy4KCQoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKCXRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTAzLTI0IDA1OjA3ICBuYmEKCgktIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCgkKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCgl4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCgkKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgoJLSBzbm1wY21kLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwLmMsIE1ha2VmaWxlLmluOiBJbnN0YWxsIGFuZCBkb2N1bWVudAoJCXNubXBpbmZvcm0uCgkKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCglFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgoJCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKCWZpbGUgc25tcGluZm9ybS4xIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgoJcHJpbnRmID8KCQoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKCW1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCgkKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCgltb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KCQoyMDAwLTAzLTIxIDA5OjA3ICBtc2xpZmNhawoKCXdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgoJCjIwMDAtMDMtMjEgMDg6NDcgIGRhdmVzCgoJLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKCSAgLSAgQ29tbWFuZC1saW5lIG9wdGlvbiBmb3Igc3BlY2lmeWluZyBBZ2VudFggcG9ydAoJICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQoJCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCgkKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAoJCjIwMDAtMDMtMjEgMDI6NTIgIGRhdmVzCgoJLSAobWliSUkve3RjcCx1ZHAsaXAsaWNtcH0qKSBDb250aW51aW5nIG1pYklJIGNvZGUgY2xlYW51cAoJCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgoJQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KCQoyMDAwLTAzLTE3IDE1OjMyICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCgkKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgoJLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAoJCUxpbnV4L3ByaW50Y2FwKQoJCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgoJU2Vjb25kIHBhcnQgOiBhbGwgbWVtYmVycyBvZiBzdHJ1Y3Qgc25tcF9pbmRleCBhcmUgcG9pbnRlcnMuCgkKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCglGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xlYW5pbmcgdXAgdHJhcCB2YXJpYWJsZXMuCgkKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCgktIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgoJCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KCQoyMDAwLTAzLTE1IDA2OjA5ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgoJCU4uQjogIFRoaXMgaGFzbid0IGJlZW4gdGVzdGVkIHdpdGggQWdlbnRYIHN1YmFnZW50cyB5ZXQKCQoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKCQoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKCS0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCgkKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCgktIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgoJCShGaXggcHJvdmlkZWQgYnkgUm9uIE1ldmlzc2VuKQoJCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KCQoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KCQoyMDAwLTAzLTEzIDE1OjMyICBuYmEKCgktIGlwZndhY2MuaDogZml4IHRoZSBNSUIgbmFtZQoJCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogYXV0b2NvbmYgcnVuCgkKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgoJCjIwMDAtMDMtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKCQoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKCS0gKFVDRC1ETE1PRC1NSUIudHh0KTogdHlwbyBmb3VuZCBieSBNaWNoYWVsIFNsaWZjYWsuCgkKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCgktIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KCSAgRnJhbmsgU3RyYXVzczoKCSAgLSBSZWltcGxlbWVudGF0aW9uIG9mIHRoZSBkbG1vZCBtaWIgbW9kdWxlOgoJICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKCSAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQoJICAgIG8gYWRkZWQgY29uZmlndXJlIHN0dWZmIGZvciBIQVZFX1NOUFJJTlRGLCB3aGljaCB3YXMgdXNlZCBieSBkbG1vZC5jCgkgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCgkgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQoJICAgIG8gcmVtb3ZlZCB0aGUgYXNuX3BhcnNlX1hYWCBzdHVmZgoJICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKCSAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCgkgICAgbyBhZGRlZCBzaW1wbGUgY29uZmlnX3BhcnNlIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIHdvbWJhdCBleGFtcGxlCgkKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHNpZ25hbCByZWdpc3RyeSBzeXN0ZW0gaW1wbGVtZW50ZWQgKG5lZWRzIHRvIGJlIHJlZG9uZSBhbGxvd2luZwoJICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KCSAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCgkgICAgLSB0aGlzIGlzIG5vdCB0aGUgd2F5IGl0IHNob3VsZCBiZSBkb25lICh1c2Ugc2Vzc2lvbnMgaW5zdGVhZCkuCgkKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAoJICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgoJICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCgkKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KCQoyMDAwLTAzLTA3IDExOjU4ICBtc2xpZmNhawoKCW1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCgkKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCgkKMjAwMC0wMy0wNyAxMDoxMyAgbXNsaWZjYWsKCglJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCgkKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCglhc3N1bWUgInNubXBhcHAiIGlmIG5vIGFyZyBwYXNzZWQgdG8gaW5pdF9zbm1wdjMuCgkKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCglyZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCgkKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCglMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KCQoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKCXRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KCQoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKCWNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgoJCjIwMDAtMDMtMDYgMTY6NDAgIG1zbGlmY2FrCgoJc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KCQoyMDAwLTAzLTA2IDEwOjU2ICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgoJCjIwMDAtMDMtMDYgMTA6NTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KCQoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCgkKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgoJICAtIGNhbGxiYWNrIGZ1bmN0aW9uICh1c2luZyBjYWxsYmFjay5oKSBhZGRlZCBmb3IgZXh0ZXJuYWwgbG9nZ2luZy4KCQoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgoJZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKCXN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KCQoyMDAwLTAzLTA0IDExOjM0ICBuYmEKCgktIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOiBzdXBwb3J0IC0td2l0aG91dC1vcGVuc3NsLCBldmVuIGlmIE9wZW5TU0wKCQlpcyBhdmFpbGFibGUKCQoyMDAwLTAzLTA0IDExOjMwICBuYmEKCgktIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKCQoyMDAwLTAzLTA0IDExOjI2ICBuYmEKCgktIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gaW5ldC5jLCBpbmV0Ni5jOiBzdXJ2aXZlIC12IDJjIGV4Y2VwdGlvbiByZXBsaWVzCgkKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgoJLSBzbm1wX2FwaS5jOiByZW1vdmUgYSBzdXBlcmZsdW91cyAmIGluIGZyb250IG9mIGFuIGFycmF5CgkKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgoJLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCgktIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MTAgIG5iYQoKCS0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCgkKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKCS0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKCQoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCgktIHNubXB0YWJsZS5jOiBmaXggcHJvYmxlbXMgcHJpbnRpbmcgdGFibGUgbmFtZSBhbmQgaGVhZGVycyB3aGVuIHVzaW5nCgkJLU9TIGZvcm1hdAoJCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKCS0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CgkKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgoJLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKCQoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKCS0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KCQoyMDAwLTAzLTAxIDEzOjIzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCBkeW5hbWljIHRhYmxlIHRlc3RpbmcgZm9yIGNyZWF0aW9uIG5lZWRlZC4KCQoyMDAwLTAzLTAxIDEzOjIyICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHVjZC1zbm1wLnBtKTogT3Bwcy4gIFdyb25nIG5hbWUuICB1Y2Qtc25tcC5wbSAtPiBtYW5hZ2VyLnBtLgoJCjIwMDAtMDMtMDEgMTM6MjEgIGhhcmRha2VyCgoJLSAodWNkLXNubXAucG0pOiB0dXJuZWQgc3FsdG9odG1sIGludG8gYW4gYXBhY2hlIG1vZHVsZS4gMnggc3BlZWQgaW1wcm92ZW1lbnQuCgkKMjAwMC0wMy0wMSAwODozMiAgbXNsaWZjYWsKCglmaXggYnVnIDE4MCBmb3IgY3lnd2luIGJ1aWxkIHdpdGggX1JFRU5UUkFOVDsgcGVyIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbQoJCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgoJSW52b2tlIHNubXBfc2Vzc19zZW5kIGZyb20gd2l0aGluIHNubXBfcmVhZCB0byBhdm9pZCBtdXRleCBkZWFkbG9ja3MuCgkKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgoJLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CgkKMjAwMC0wMi0yOCAxNDoxNiAgbmJhCgoJLSBzbm1wX3ZhcnMuYzogdXNlIFNVQl9BR0VOVCBzeW1ib2wKCQoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCgktIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCgkKMjAwMC0wMi0yOCAxNDoxMCAgbmJhCgoJLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwoJCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKCQoyMDAwLTAyLTI0IDE3OjE3ICBtc2xpZmNhawoKCWFwcGx5IHBhdGNoIHRvIGZpeCBidWcgbm8uIDE3Ny4KCQoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAoJICB0byBmb3JjZSB0aGUgcGFyc2VyIHRvIGlnbm9yZSB1bmtub3duIHRva2Vucy4KCQoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKCWRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMi0yNCAwMzo1NiAgbXNsaWZjYWsKCglhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCgkoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjMgMjM6MDYgIG5iYQoKCS0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIG10X3N1cHBvcnQuaDogYSBiYWQgOyBpbiB0aGUgQysrIGJyYWNrZXRpbmcKCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAoJCjIwMDAtMDItMjMgMDI6MDcgIG5iYQoKCS0gdm1zdGF0X3NvbGFyaXMuYzogbWFrZSBzdXJlIHdlIGFncmVlIHdpdGggdGhlIHByb3RvdHlwZSBvZiBnZXRwYWdlc2l6ZSEKCQoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCgktIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CgkKMjAwMC0wMi0yMiAwOTo1NyAgbXNsaWZjYWsKCglwcnVuZSB0d28gbW9yZSBzeW1ib2xzIG5vdCB1c2VkIGJ5IGF1dG9fbmxpc3QgZm9yIFNvbGFyaXMtYnVpbHQgTUlCIG1vZHVsZXMuCgkKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCglBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCgkKMjAwMC0wMi0yMSAwNzozOSAgbXNsaWZjYWsKCglmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KCQoyMDAwLTAyLTIxIDA1OjU2ICBtc2xpZmNhawoKCXJlbW92ZSBmcmVlIGFmdGVyIHNubXBfY2xvc2UgKGRvbid0IGZyZWUgdHdpY2UhKQoJCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgoJQWRkZWQgZGVzY3JpcHRpb24gaW4gU0hfTkFNRSBmb3Igc2V2ZXJhbCBtYW4tcGFnZXMgKGMvbyByYWduYXJrKQoJCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgoJcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCgkKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCglpbmNsdWRlIHBhc3NfcGVyc2lzdCBpbiB0aGUgcmVxdWlyZWQgbGlzdC4KCQoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgoJICAtIFByb3ZpZGUgbWlzc2luZyAnZ2V0cGFnZXNpemUnIHJvdXRpbmUgZm9yIFNvbGFyaXMgMi40CgkgICAgKFRoYW5rcyB0byBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZCkKCQoyMDAwLTAyLTE2IDIwOjE3ICBtc2xpZmNhawoKCWluY2x1ZGUgbWliaW5jbC5oIGluIGhyX3N5c3RlbS5jIHRvIGZpeCBidWcgIzE1OS4KCQoyMDAwLTAyLTE2IDE2OjM1ICBtc2xpZmNhawoKCXJlbW92ZSBhdXRvX25saXN0IG9mIHVudXNlZCAic3dhcGxpc3QiIHN5bWJvbC4KCQoyMDAwLTAyLTE2IDE1OjE3ICBtc2xpZmNhawoKCXBhdGNoIHN1Z2dlc3RlZCBieSBSaWNrIEJlYW1hbiA8YmVhbWFuQG1lZGlhb25lLm5ldD4KCQoyMDAwLTAyLTE2IDE0OjU4ICBtc2xpZmNhawoKCXJlbW92ZSB1bnVzZWQgdmFycwoJCjIwMDAtMDItMTYgMTQ6NTcgIG1zbGlmY2FrCgoJdGVzdCBsZW5ndGhzIGJlZm9yZSBhbGxvY2F0aW5nIG1lbW9yeTsgdXNlIG5ldyBWQUNNU1RSSU5HTEVOIGNvbnN0YW50LgoJCjIwMDAtMDItMTYgMDg6MTggIG1zbGlmY2FrCgoJaW5jbHVkZSB0aW1lLmggb25jZQoJCjIwMDAtMDItMTYgMDg6MDIgIG1zbGlmY2FrCgoJcmVzdG9yZSAjaWYgSEFWRS4uLklOX1BDQl9ICgkKMjAwMC0wMi0xNSAyMzo0NyAgbmJhCgoJLSBjb25maWd1cmUuaW4sIGlwY2guW2NoXTogaW5pdGlhbCBzdGFicyBhdCBMaW51eCBpcHY2IHN1cHBvcnQuIEEgbG90IGlzCgkJbGFja2luZyBpbiB0aGUga2VybmVsIHN0YXRpc3RpY3MgdGhvdWdoLgoJCjIwMDAtMDItMTUgMjM6NDAgIG5iYQoKCS0gKG1hbnkpOiBjb25maWd1cmUgY2hlY2sgZm9yIG5ldGluZXQvaXA2LmgKCQoyMDAwLTAyLTE1IDIzOjM0ICBuYmEKCgktIGhyX2ZpbGVzeXMuYzogTU5UVFlQRSBkZWZpbmVzIGZvciBGcmVlQlNELTMgYW5kIEJTREktNCwgYW5kIG1vdmluZyB0aGUKCQlyZXR1cm4gdmFsdWUgZm9yIEV4dDJGUyB0byB0aGUgbmV3bHkgZGVmaW5lZCBPSUQuCgkKMjAwMC0wMi0xNSAyMzoyNCAgbmJhCgoJLSBmcmVlYnNkMy5oOiBzb21lIGtlcm5lbCBzeW1ib2xzIG5vdCB0byBiZSB1c2VkIGZvciBGcmVlQlNEIDMKCQoyMDAwLTAyLTE1IDIzOjIzICBuYmEKCgktIHNubXB0YWJsZS5jOiBnaXZlIGEgc2Vuc2libGUgb3V0cHV0IGZvciBhbiBlbXB0eSB0YWJsZS4KCQoyMDAwLTAyLTE1IDIzOjIyICBuYmEKCgktIHZhY20qOiBidWZmZXIgbGVuZ3RoIGNoZWNraW5nIQoJCjIwMDAtMDItMTUgMjM6MjAgIG5iYQoKCS0gaHJfc3RvcmFnZS5jOiByZXR1cm4gbWVtb3J5IHNpemUgaW4gcGFnZXMuCgkKMjAwMC0wMi0xNSAyMzoxNyAgbmJhCgoJLSB1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuaDogbWFrZSBpdCB3b3JrIGZvciBGcmVlQlNELTMgdG9vCgkKMjAwMC0wMi0xNSAyMzoxNiAgbmJhCgoJLSBzbm1wX2FnZW50LmM6IG9uZSBtb3JlIHBsYWNlIHRvIHNlbmQgYSBBVVRIRkFJTCB0cmFwCgkKMjAwMC0wMi0xNSAyMzoxNSAgbmJhCgoJLSBhZ2VudF9yZWdpc3RyeS5jOiBmaXggYSByZXR1cm4gZm9yIFNOTVB2MS9Db3VudGVyNjQgY2FzZQoJCjIwMDAtMDItMTUgMDI6MTIgIGRhdmVzCgoJLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6IE9taXQgZGVwcmVjYXRlZCBvcHRpb25zIGZyb20gb3B0YXJnIGhhbmRsaW5nLgoJCjIwMDAtMDItMTEgMTU6NDggIGhhcmRha2VyCgoJLSAobWFuYWdlci8qKTogL3Vzci9sb2NhbC9iaW4vcGVybCAtPiAvdXNyL2Jpbi9wZXJsCgkKMjAwMC0wMi0xMSAxNTo0NyAgaGFyZGFrZXIKCgktIChtYWtlZGVwZW5kLmluKTogL3Vzci9sb2NhbC9iaW4vcGVybCAtPiAvdXNyL2Jpbi9wZXJsCgkKMjAwMC0wMi0xMSAxNTozOCAgaGFyZGFrZXIKCgktIChyc25tcCk6IHBlcmw1IC0+IHBlcmwKCQoyMDAwLTAyLTExIDE1OjE3ICBoYXJkYWtlcgoKCS0gKG1hbi9NYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF90cmFwX2FwaS4zCgkKMjAwMC0wMi0xMSAxNDoyMCAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbik6IGxhc3QgbWludXRlIG1ha2VmaWxlIHRvdWNodXAKCQoyMDAwLTAyLTExIDE0OjAzICBoYXJkYWtlcgoKCS0gKE5FV1MpOiB1cGRhdGUgZm9yIDQuMS4xCgkKMjAwMC0wMi0xMSAxMzo0NyAgaGFyZGFrZXIKCgktIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDQuMS4xCgkKMjAwMC0wMi0xMSAxMzoyOSAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKCQoyMDAwLTAyLTExIDEyOjUzICBoYXJkYWtlcgoKCS0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgoJCjIwMDAtMDItMTEgMTI6NDkgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCgkKMjAwMC0wMi0xMSAxMjo0NCAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbik6IGZpeCBmb3Igc2VwZXJhdGUgYnVpbGQgcGF0aAoJCjIwMDAtMDItMTEgMTI6MzAgIGhhcmRha2VyCgoJLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKCSAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KCQoyMDAwLTAyLTExIDEyOjI5ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IHBhdGNoIGZyb20gTmllbHM6CgkgIC0gZG9uJ3Qgc2VuZCBhdXRoZXJyb3IgcmVzcG9uc2VzIGZvciB2MmMuCgkgIC0gc2VuZCBhdXRoRmFpbHVyZSB0cmFwLgoJCjIwMDAtMDItMTEgMTI6MjIgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgoJCjIwMDAtMDItMTEgMDY6NTggIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb250IGRlZmluZSBQUk9DRklYQ01EIGFuZCBFWEVDRklYQ01EIGJ5IGRlZmF1bHQuCgkKMjAwMC0wMi0xMCAxMToxNCAgbXNsaWZjYWsKCglmaXggZm9yIG9sZGVyIHBsYXRmb3JtcyB0byB1c2UgcGFzc19wZXJzaXN0OyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC4KCQoyMDAwLTAyLTEwIDEwOjMzICBtc2xpZmNhawoKCVtubyBsb2cgbWVzc2FnZV0KCQoyMDAwLTAyLTEwIDEwOjMyICBoYXJkYWtlcgoKCS0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KCQoyMDAwLTAyLTEwIDEwOjI4ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogZml4IHNldHVwIGVuZ2luZUlEIGJ1ZmZlciBvdmVyZmxvdyBmb3VuZCBieSBNaWtlIEJhZXIuCgkKMjAwMC0wMi0xMCAwODozOSAgbmJhCgoJLSBtYW4vKjogc2V0IHRoZSBkYXRlcyBvbiB0aGUgcGFnZXMgdG8gcmVmbGVjdCB0aGUgcmV2aXNpb24gZGF0ZQoJCjIwMDAtMDItMTAgMDg6MTMgIG1zbGlmY2FrCgoJZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCgkKMjAwMC0wMi0xMCAwODowMCAgbXNsaWZjYWsKCgl0eXBlZGVmIGludCBzc2l6ZV90IChvbmUgbGluZSBhZGRlZCkgZm9yIGJ1aWxkIG9uIFN1bk9TIDQuCgkKMjAwMC0wMi0xMCAwNzo1NCAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KCQoyMDAwLTAyLTEwIDA3OjE0ICBkYXZlcwoKCS0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAoJCjIwMDAtMDItMTAgMDQ6NDEgIGRhdmVzCgoJLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKCSAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCgkKMjAwMC0wMi0wOSAxMzo1MyAgaGFyZGFrZXIKCgktIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CgkgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KCQoyMDAwLTAyLTA5IDEzOjUxICBtc2xpZmNhawoKCWluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZ2V0IFBBVEhfTUFYIG9uIEZyZWVCU0QuCgkKMjAwMC0wMi0wOSAxMzozOCAgaGFyZGFrZXIKCgktIChTdjNTSEFERVNjb25maWcsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKCSAgLSBtYWtlIFNIQSB0ZXN0cyBhY3R1YWxseSB3b3JrLgoJCjIwMDAtMDItMDkgMTM6MzIgIGhhcmRha2VyCgoJLSAoU3YzY29uZmlnc2hhKTogc2hhIGNvbmZpZyBzdXBwb3J0CgkKMjAwMC0wMi0wOSAxMzozMSAgaGFyZGFrZXIKCgktIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAoJICBUMDE4c25tcHYxdG92MmNnZXRmYWlsKTogZml4IGZvciBwcm9wZXIgQUNNIGVycm9yIG91dHB1dHMuCgkKMjAwMC0wMi0wOSAxMzozMCAgbXNsaWZjYWsKCglEZWZpbmUgU05NUF9NQVhQQVRILCBhbmQgdXNlIGl0LgoJCjIwMDAtMDItMDkgMTM6MzAgIGhhcmRha2VyCgoJLSAoVDAyNHNubXB2M2dldFNIQTEgVDAyNXNubXB2M2dldFNIQURFUyk6IG5ldyB0ZXN0cwoJCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgoJLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KCQoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKCS0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAoJICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKCSAgLSBmaXggcG9zaWJsZSBhY20gRG9TIHByb2JsZW1zIGJ5IGNoZWNraW5nIGFjY2VzcyB0YWJsZXMgZWFybHkgb24uCgkKMjAwMC0wMi0wOSAxMTozOCAgaGFyZGFrZXIKCgktIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCgkKMjAwMC0wMi0wOSAxMDo0MyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUuaW4pOiBjaGFuZ2UgbW9kZSB0byBhdXRvY29uZi4KCQoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogZml4IHJzbm1wIGJ1aWxkLiAgUmVhbGx5LiAgSSBtZWFuIGl0LgoJCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgoJLSAoaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKCSAgLSBTb2xhcmlzIHBhdGNoZXMuCgkKMjAwMC0wMi0wOSAxMDozNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6CgkgIC0gZml4IHJzbm1wLm1hZGUuCgkgIC0gdXNlICQoTUFLRSkuCgkKMjAwMC0wMi0wOSAwODo0MSAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKCQoyMDAwLTAyLTA3IDExOjQ5ICBtYXJ6CgoJb29wcyBtaXNzaW5nIGltcG9ydGFudCBmaXggZm9yIHdpbjMyIGJ1aWxkIC0gZmRfc2V0IG11c3QgYmUgc2FtZSBzaXplIGFzIGluIHdpbnNvY2sKCQoyMDAwLTAyLTA3IDExOjE4ICBtc2xpZmNhawoKCVVuZG8gbGFzdCBjaGFuZ2U7IG9uIFN1biwgYWRkaXRpb25hbCBwbGF0Zm9ybSBpbmZvIHdhcyBub3Qgb2J0YWluZWQ7Cgl0aGUgcHJvcGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHJlbW92ZSB0aGUgc2Vjb25kIHRva2VuIChob3N0bmFtZSkuCgkKMjAwMC0wMi0wNyAxMDo0MyAgbXNsaWZjYWsKCglLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KCQoyMDAwLTAyLTA3IDA3OjIwICBoYXJkYWtlcgoKCS0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCgkKMjAwMC0wMi0wNiAwNjoxMSAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiBGaXggb25lIGZpbmFsICc6JyB0byBFTlZfU0VQQVJBVE9SX0NIQVIKCQoyMDAwLTAyLTA1IDE3OjM5ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogY29ycmVjdCBzb21lIGF3ZnVsIHRleHQgLT4gZW5naW5lSUQgY3JlYXRpb24gbWlzdGFrZXMuCgkKMjAwMC0wMi0wNSAwODozNyAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCgkKMjAwMC0wMi0wNSAwNjo1NiAgbWFyegoKCWZpeCB2ZXJzaW9uICBudW1iZXIKCQoyMDAwLTAyLTA0IDE4OjU1ICBtYXJ6CgoJd2VpcmQgZGVsYXkgaW4gY3JlYXRpb24gb2YgcGlkIGZpbGVzCgkKMjAwMC0wMi0wNCAxODoyMSAgbWFyegoKCWJyYWluLW8KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4xIC0+IFY0LjEuMQoKbWFyeiAgNSBGZWIgMDAgMDY6NTY6NDMKICAgIGZpeCB2ZXJzaW9uICBudW1iZXIKCmhhcmRha2VyICA1IEZlYiAwMCAwODozNzoyNwogICAgLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgoKaGFyZGFrZXIgIDUgRmViIDAwIDE3OjM5OjU0CiAgICAtIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgoKbmJhICA2IEZlYiAwMCAwNjoxMTo1OQogICAgLSByZWFkX2NvbmZpZy5jOiBGaXggb25lIGZpbmFsICc6JyB0byBFTlZfU0VQQVJBVE9SX0NIQVIKCmhhcmRha2VyICA3IEZlYiAwMCAwNzoyMDoyNAogICAgLSAoUE9SVElORyk6IE1pY2hhZWwgbGlrZXMgZGlmZiAtdS4KCm1zbGlmY2FrICA3IEZlYiAwMCAxMDo0MzoyOQogICAgS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCgptc2xpZmNhayAgNyBGZWIgMDAgMTE6MTg6MjYKICAgIFVuZG8gbGFzdCBjaGFuZ2U7IG9uIFN1biwgYWRkaXRpb25hbCBwbGF0Zm9ybSBpbmZvIHdhcyBub3Qgb2J0YWluZWQ7CiAgICB0aGUgcHJvcGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHJlbW92ZSB0aGUgc2Vjb25kIHRva2VuIChob3N0bmFtZSkuCgptYXJ6ICA3IEZlYiAwMCAxMTo0OTowMQogICAgb29wcyBtaXNzaW5nIGltcG9ydGFudCBmaXggZm9yIHdpbjMyIGJ1aWxkIC0gZmRfc2V0IG11c3QgYmUgc2FtZSBzaXplIGFzIGluIHdpbnNvY2sKCmhhcmRha2VyICA5IEZlYiAwMCAwODo0MToxMQogICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6Mzc6MDAKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBmaXggcnNubXAubWFkZS4KICAgICAgLSB1c2UgJChNQUtFKS4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MToxNAogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAgLSBTb2xhcmlzIHBhdGNoZXMuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDE6NDQKICAgIC0gKE1ha2VmaWxlLmluKTogZml4IHJzbm1wIGJ1aWxkLiAgUmVhbGx5LiAgSSBtZWFuIGl0LgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQzOjA1CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2UgbW9kZSB0byBhdXRvY29uZi4KCmhhcmRha2VyICA5IEZlYiAwMCAxMTozODo0MgogICAgLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjE2OjE3CiAgICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgICAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CiAgICAgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjE2OjU4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbiBhIG5ldyB1Y2RFeHBlcmltZW50YWwgcmVnaXN0cmF0aW9uICh3YXZsYW4pLgoKbXNsaWZjYWsgIDkgRmViIDAwIDEzOjMxOjAxCiAgICBEZWZpbmUgU05NUF9NQVhQQVRILCBhbmQgdXNlIGl0LgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjMxOjI0CiAgICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsKTogZml4IGZvciBwcm9wZXIgQUNNIGVycm9yIG91dHB1dHMuCgptc2xpZmNhayAgOSBGZWIgMDAgMTM6NTE6MTIKICAgIGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZ2V0IFBBVEhfTUFYIG9uIEZyZWVCU0QuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6NTM6MzcKICAgIC0gKGV2YWxfdG9vbHMuc2gsIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKICAgICAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgoKZGF2ZXMgMTAgRmViIDAwIDA0OjQxOjEwCiAgICAtIChzbm1wbGliL3tzbm1wX2FwaSxzbm1wX2NsaWVudH0uYyBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMpOgogICAgICAtICBDb21tZW50IHVudXNlZCBjb2RlIG1vcmUgaW5mb3JtYXRpdmVseSBhcyB0byB3aHkgaXQgaXMgb21pdHRlZC4KCmRhdmVzIDEwIEZlYiAwMCAwNzoxNDo1MQogICAgLSAoRkFRKTogRXhwbGljaXQgZXhhbXBsZXMgb2Ygc2VuZGluZyB0cmFwcyBieSBoYW5kCgpoYXJkYWtlciAxMCBGZWIgMDAgMDc6NTQ6NDYKICAgIC0gKEZBUSk6IG1lbnRpb24gdGhlIHR1dG9yaWFsLgoKbXNsaWZjYWsgMTAgRmViIDAwIDA4OjAwOjI2CiAgICB0eXBlZGVmIGludCBzc2l6ZV90IChvbmUgbGluZSBhZGRlZCkgZm9yIGJ1aWxkIG9uIFN1bk9TIDQuCgptc2xpZmNhayAxMCBGZWIgMDAgMDg6MTM6MTQKICAgIGZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwoKbmJhIDEwIEZlYiAwMCAwODo0MDowNAogICAgLSBtYW4vKjogc2V0IHRoZSBkYXRlcyBvbiB0aGUgcGFnZXMgdG8gcmVmbGVjdCB0aGUgcmV2aXNpb24gZGF0ZQoKaGFyZGFrZXIgMTAgRmViIDAwIDEwOjI4OjIxCiAgICAtIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgoKaGFyZGFrZXIgMTAgRmViIDAwIDEwOjMyOjA4CiAgICAtIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCgptc2xpZmNhayAxMCBGZWIgMDAgMTA6MzM6NDcKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1zbGlmY2FrIDEwIEZlYiAwMCAxMToxNDo1OAogICAgZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAxMSBGZWIgMDAgMDY6NTg6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjIyOjEwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6Mjk6MzcKICAgIC0gKHNubXBfYWdlbnQuYyk6IHBhdGNoIGZyb20gTmllbHM6CiAgICAgIC0gZG9uJ3Qgc2VuZCBhdXRoZXJyb3IgcmVzcG9uc2VzIGZvciB2MmMuCiAgICAgIC0gc2VuZCBhdXRoRmFpbHVyZSB0cmFwLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjMwOjAyCiAgICAtIChzeXNPUlRhYmxlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjQ0OjIzCiAgICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGZpeCBmb3Igc2VwZXJhdGUgYnVpbGQgcGF0aAoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjQ5OjAzCiAgICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGRvbid0IGNwIGZvciBzbm1wY2hlY2sKCmhhcmRha2VyIDExIEZlYiAwMCAxMjo1MzoxNQogICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCgpoYXJkYWtlciAxMSBGZWIgMDAgMTM6Mjk6MjkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLjEgKQoKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4wLjEgLT4gVjQuMQoKbXNsaWZjYWsgMjQgQXVnIDk5IDA0OjQ0OjQ3CiAgICBDbGVhbiBDUnMgZnJvbSByZWFkX2NvbmZpZyxzbm1wX2xvZ2dpbmc7IGNvbW1lbnQgZGVmaW5lIFVTRV9BU05fU0hPUlRfTEVOLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDA1OjExOjEzCiAgICBSZW1vdmUgQVNOX1NIT1JUX0xFTiBoYWNrIC0ga25vd24gdG8gZHVtcCBjb3JlIGluIGFnZW50LgoKbXNsaWZjYWsgMjQgQXVnIDk5IDA2OjE5OjQ5CiAgICBBZGQgIi4iIHRvIFBBVEggZm9yIFJVTlRFU1RTOyBEcm9wIG9wdHJlc2V0IHRvIGJ1aWxkIG1vc3QgcGxhdGZvcm1zCgptc2xpZmNhayAyNCBBdWcgOTkgMTA6MjU6NTMKICAgIC0odGVzdGluZy9ldmFsX3Rvb2xzKSAtIGxldCBzb21lIChBSVgpIGFnZW50cyBzZXR0bGUgYmVmb3JlIGZpcmluZyByZXF1ZXN0cy4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMjo0ODoyMQogICAgLSAodmFjbV92YXJzLmMpOiBjb3JyZWN0IHN5c09SVGFibGUgZW50cnkuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6MzY6MzUKICAgIC0gKHNubXB1c20uYyk6IGNoZWNrIGZvciBudWxsIHJlc3BvbnNlIHBvaW50ZXIuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6Mzc6MzEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXB2My5jKToKICAgICAgLSBwcm92aWRlIGRlZlZlcnNpb24gdG9rZW4gc3VwcG9ydCBpbiBzbm1wLmNvbmYgKHNvcnQgb2YgaGFja2lzaCkuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6NDE6MTgKICAgIC0gKFRPRE8pOiByZW1vdmUgc25tcHYzIHN1cHBvcnQgOi0pCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MDU6MzkKICAgIC0odG9wL01ha2VmaWxlLmluKSAtIHJlbW92ZSBtb3JlIGdlbmVyYXRlZCBmaWxlcyB3aXRoIGRpc3RjbGVhbiBydWxlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE0OjE1OjQwCiAgICAtIChhbGxfc3lzdGVtLmgpOiByZW1vdmUuICBhZ2Fpbi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDoxNzozMwogICAgLShob3N0L2hyX3N3cnVuO21pYklJL2ljbXAsaXA7dWNkLXNubXAvZGlzayxwcm9jKSBsb2dfcGVycm9yIC0tPiBzbm1wX2xvZ19wZXJyb3IKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNToxNDoxOAogICAgLShzbXV4LmMpIGFwcGx5IE5pY2sgQW1hdG8ncyBwYXRjaDogcHJldmVudCBTTVVYIGNsb3NlIG9uIHBhcnNlIG9yIGVycm9yLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE1OjU5OjQyCiAgICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHZlcnNpb24gc2V0dGluZyBpbiBzbm1wX2FwaS5jLiAgTm90IG5lZWRlZCB0aGVyZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNjowMTo1NQogICAgLSAoTkVXUyk6IDQuMC4xIHVwZGF0ZQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjA1OjE1CiAgICAtKGNvbmZpZ3VyZS4qKSBtb3ZlIHN0YXRlbWVudCBhYm91dCB1Y2REZW1vUHVibGljIGludG8gY29tbWVudCBmaWVsZC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjo0OToyMgogICAgLSh0ZXN0aW5nLyopIHJ1biB0ZXN0cyB3aGVuIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZCwgYW5kIHdoZW4KICAgIHRoZSBidWlsZCB0cmVlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgc291cmNlIHRyZWUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTc6MTM6MjUKICAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgNC4wLjEKCmhhcmRha2VyIDI0IEF1ZyA5OSAxNzoxNDo1MAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAuMSApCgptc2xpZmNhayAyNCBBdWcgOTkgMTc6Mzk6NTQKICAgIC0oUlVOVEVTVFMpIGV4cG9ydCBQQVRIIGJlZm9yZSB1c2UKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNzo0MzowNAogICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBubyBuZWVkIHRvIGJ1aWxkIHRhcmdldHMgaW4gdGVzdCBydWxlLgoKbXNsaWZjYWsgMjYgQXVnIDk5IDEzOjE4OjMxCiAgICAtKHRlc3RpbmcvUlVOVEVTVFMpIGltcHJvdmVkIFBBVEggc2V0Cgptc2xpZmNhayAyNiBBdWcgOTkgMTM6NDA6MTMKICAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgZG9uJ3QgYnVpbHQgdGFyZ2V0cyB0aGF0IGFyZSBubyBsb25nZXIgdXNlZAoKbXNsaWZjYWsgMjcgQXVnIDk5IDA3OjM1OjEwCiAgICAtKGNvbmZpZ3VyZSosIHNlZHNjcmlwdCopIGNoYW5nZSAuLi5FWFRFTklTLi4uICB0byAuLi5FWFRFTlNJLi4uCgptc2xpZmNhayAyNyBBdWcgOTkgMDg6MDM6NDYKICAgIEhvd2FyZCBTcGluZGVsIHN1Z2dlc3RzIGFuIEFQSSBmb3IgdHJhcHMgd2l0aCBwYXNzX3BlcnNpc3QuCgpoYXJkYWtlciAyNyBBdWcgOTkgMDk6MTc6MDgKICAgIC0gKGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgLSBTdXNhbm5lIE9zdGVkIHBvaW50ZWQgb3V0IGEgbGFjayBvZiAjaWYgSEFWRV9TWVNfUEFSQU1fSC4KCmhhcmRha2VyIDI4IEF1ZyA5OSAwNzoxOToxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfYWxhcm0uMy4KCmhhcmRha2VyIDI4IEF1ZyA5OSAwNzoyOTo0OAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBhZGQgL2V0Yy9zbm1wIHRvIGRlZmF1bHQgY29uZiBmaWxlIHBhdGggdG8gbWFrZSBSZWRIYXQgaGFwcHkuCgpoYXJkYWtlciAzMCBBdWcgOTkgMDk6MzM6NDEKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgICAgIGFnZW50X3RyYXAuaCwgZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLAogICAgICBzbm1wZC5jLCB1dGlsX2Z1bmNzLmMsIHN5c09SVGFibGUuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSByZXN0cnVjdHVyZSB0aGUgYWdlbnQgaW50byB0d28gcGllY2VzOiBhIGxpYnJhcnkgYW5kIGEgYXBwbGljYXRpb24uCiAgICAgICAgLSBuZWVkcyBtdWNoIG1vcmUgd29yay4KICAgICAgICAtIG1hbnkgcGFyYW1ldGVycyBhcmUgbm93IGNvbnRyb2xsZWQgYnkgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MKICAgICAgICAgIHRvIGhlbHAgcmVsaWV2ZSBjb21waWxlIHRpbWUgYmluZGluZ3MuCiAgICAgIC0gbWVyZ2UgaW5pdF9zbm1wIGFuZCB0aGUgY3VzdG9tIHZlcnNpb24gY2FsbGVkIGluc2lkZSB0aGUgYWdlbnQuCiAgICAgIC0gYWRkIGEgbmV3IHBsYWNlIGZvciB0cmFwIHNwZWNpZmljIGFnZW50IGNvZGUgKGFnZW50X3RyYXAuW2NoXSkuCiAgICAgIC0gcHJvYmFibHkgb3RoZXIgdGhpbmdzIEkndmUgZm9yZ290dGVuIHRoYXQgSSBkaWQuCgpoYXJkYWtlciAzMCBBdWcgOTkgMDk6Mzg6MTgKICAgIC0gKGNsaWVudC5jLCBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywgc3ViYWdlbnQuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgICAgIC0gdXNlIG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzIGluc3RlYWQgb2YgZXh0ZXJuYWwgdmFyaWFibGVzLgoKaGFyZGFrZXIgMzAgQXVnIDk5IDEwOjMwOjU2CiAgICAtIChtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYyk6IHlldCBtb3JlIGRlYnVnZ2luZy4KCm5iYSAzMCBBdWcgOTkgMTM6MDI6MTgKICAgIC0gbWFuL3NubXBkLmNvbmYuNS5kZWY6IGRvY3VtZW50IHNtdXhwZWVyIGRpcmVjdGl2ZQoKbmJhIDMwIEF1ZyA5OSAxMzowMzo0MAogICAgLSBhcHBzL3NubXBfcGFyc2VfYXJncy5jOiBwcm9wZXJseSBoYW5kbGUgTUlCOm9pZCBjb25zdHJ1Y3QKCm5iYSAzMCBBdWcgOTkgMTM6MDU6MDIKICAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHBhcnNlcgoKbmJhIDMxIEF1ZyA5OSAwMDowODo0NQogICAgLSBhZ2VudC9zbm1wZC5jOiBkb24ndCB0cnkgdG8gcGFyc2UgYSBwYWNrZXQgd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBpbgogICAgCXJlY3Zmcm9tCgptc2xpZmNhayAzMSBBdWcgOTkgMDg6MTc6MjQKICAgIC0oYWdlbnRfdHJhcC5jKSBmaXggcmVjZW50IG1lbW9yeSBsZWFrLCBhbmQgc2l6ZW9mKG9iamlkX3NubXB0cmFwKSBidWcuCgptc2xpZmNhayAzMSBBdWcgOTkgMDk6MjY6MTQKICAgIC0oYWdlbnRfdHJhcC5jKSBhbHdheXMgZnJlZSBQRFUgYWZ0ZXIgc25tcF9zZW5kLgoKZGF2ZXMgIDIgU2VwIDk5IDA2OjM4OjE2CiAgICAtIChhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCk6IEZpeCBNSUIgbG9jYXRpb24gb2YgaXBmd2FjYyBtb2R1bGUKCmRhdmVzICAyIFNlcCA5OSAwNjozODo1MwogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCgpoYXJkYWtlciAgMiBTZXAgOTkgMDc6MDc6MDQKICAgIC0gKHN1YmFnZW50LmMpOiBzaHV0ZG93bl9zdWJhZ2VudCAtPiBzdWJhZ2VudF9zaHV0ZG93biBzbyBjb25maWd1cmUKICAgICAgZG9lc24ndCBmaW5kIGl0LgoKaGFyZGFrZXIgIDIgU2VwIDk5IDA4OjUyOjQ4CiAgICAtIChzdWJhZ2VudC5jKTogb3Bwcy4gIEZvcmdvdCBhIHNodXRkb3duIG5hbWUgY2hhbmdlIGluc3RhbmNlLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDEzOjE1OjE1CiAgICAtIChoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgpOiByZW1vdmVkLiBObyBsb25nZXIgbmVlZGVkLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDEzOjE1OjMzCiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgYWdlbnQgaGVhZGVyIGZpbGVzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDEzOjI3OjEzCiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gaW5zdGFsbCBsaWJhZ2VudC5hLgogICAgICAtIG1rZGlyaGVpciBvbiBuZWVkZWQgbmV3IGluc3RhbGxhdGlvbiBkaXJlY3Rvcmllcy4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzozMDozNgogICAgLSAoc25tcGxpYi9NYWtlZmlsZS5pbik6IGluc3RhbGwgbW9yZSBsaWJyYXJ5IGhlYWRlcnMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTQ6Mjg6NDYKICAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgZmFsbCBvZmYgdGhlIGVuZCBvZiB0aGUgc2VhcmNoIHRyZWUuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTU6MDE6MzkKICAgIC0gKEZBUSk6IG1vcmUgQlNESSBzeXN0ZW0gdmVyc2lvbnMgbGlzdGVkLgoKbmJhICA2IFNlcCA5OSAyMzo1MzowNwogICAgLSAobWFuL3NubXBfYXBpLjMgc25tcGxpYi9zbm1wX2FwaS5jIGFnZW50L3NubXBkLmMgYXBwcy9zbm1wdHJhcC5jKToKICAgIAlmaXggbWVtb3J5IGxlYWsgd2hlbiBhZ2VudCBzZW5kcyB0cmFwcyBieSBpbXBsZW1lbnRpbmcgdGhlIG1pc3NpbmcKICAgIAlmcmVlIG9mIFRSQVAgcGR1IGluIHNubXBfc2VuZC4KCm5iYSAgNiBTZXAgOTkgMjM6NTU6MzgKICAgIC0gaWYuYzogY29ycmVjdCBjYWxscyBvZiBzbm1wX2ZpeF9wZHUgdG8gdXNlIEdFVE5FWFQKCm1zbGlmY2FrICA3IFNlcCA5OSAxNDo0NzoxOAogICAgLShwYXJzZS4qKSBmaXggc21hbGwgbWVtb3J5IGxlYWtzOyBhbGxvdyBJTkRFWHtJTlRFR0VSLi4ufSBjbGF1c2VzOwogICAgICAgICAgICAgICBhbGxvdyBsYXJnZXIgREVTQ1JJUFRJT04gY2xhdXNlcyBbbWF4IDgxOTJdLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIyOjE0CiAgICBzbm1wdjMuYyAtIHNpbGVuY2UgdHlwZSB3YXJuaW5nIGZyb20gTVNWQysrLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIzOjAyCiAgICAoZGVmYXVsdF9zdG9yZS4qKSAtIG1ha2UgM3JkIHBhcmFtIHRvIGRzX3NldF9zdHJpbmcgdHlwZSBvZiBjb25zdCBjaGFyICouCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MjM6NTEKICAgICh3aW4zMi9jb25maWcuaCkgLSBzZXQgU05NUENPTkZQQVRIIHRvIHN1Y2NlZWQgY29tcGlsZTsKICAgICh3aW4zMipsaWJzbm1wLmRlZikgLSBhZGQgbmV3IHNubXBfZ2V0X3Rva2VuIHRvIGxpc3QuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MzI6MDAKICAgIC0oc25tcF9hcGkuaCkgc3RydWN0IHBkdSBhbmQgc25tcF9zZXNzaW9uIGFncmVlOiBsb25nIHR5cGUgZm9yIHZlcnNpb24gbWVtYmVyLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjMyOjU5CiAgICAtKHBhcnNlLmMpIHJlbW92ZSB1bm5lZWRlZCBzdHJkdXAgdG8gRmlsZSB2YXJpYWJsZSBmcm9tIGluaXRfbWliX2ludGVybmFscy4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTo1NzoxMwogICAgLShwYXJzZS5jKSBmaXggVW5saW5rZWQgT0lEIHByaW50IHdoZW4gb2JqZWN0IGlkZW50aWZpZXIgaGFzIG5vIHBhcmVudC4KCm1zbGlmY2FrICA3IFNlcCA5OSAyMDoxMjo1NwogICAgLShhZ2VudF90cmFwLmMsc25tcHRyYXAuYyxzbm1wX2FwaS5bM2NdKSAtIHNubXBfZnJlZV9wZHUgZml4IEJ1ZyAjNTQgcGVyIE5pZWxzIEIuCiAgICAtKHNubXBuZXRzdGF0L2lmLmMpIC0gZml4IGZvciBHRVRORVhUIHBlciBOaWVscyBCLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDIwOjE5OjUyCiAgICBzbm1wdHJhcC5jIC0gcmV3b3JrIGZpeCBidWcgIzU0IChtaXNzZWQgZWxzZSkuCgptc2xpZmNhayAgOCBTZXAgOTkgMDU6MTY6MzQKICAgIGluY2x1ZGUgcmVhZF9jb25maWcuaAoKbmJhICA4IFNlcCA5OSAwNzo0NTo1NAogICAgLSAoY29uZmlndXJlLmluLCBsb2FkYXZlLmMpOiBTb2xhcmlzIDIuNyBoYXMgZ2V0bG9hZGF2ZyBwcm90b3R5cGUKCm5iYSAgOCBTZXAgOTkgMDc6NDY6NTEKICAgIC0gc25tcF9hcGkuaDogbW92ZSBpbmNsdXNpb24gcHJvdGVjdGlvbiB0byB0aGUgcmVhbCBiZWdpbm5pbmcvZW5kIG9mIHRoZSBmaWxlCgpuYmEgIDggU2VwIDk5IDA3OjQ4OjAzCiAgICAtIHZhcl9zdHJ1Y3QuaDogdGhlIEFnZW50eCBjb2RlIHVzZXMgdW5zaWduZWQgdmFsdWVzIGZvciB0aGUgdmFyaWFibGUgdHlwZS4KCm5iYSAgOCBTZXAgOTkgMDc6NTA6MzcKICAgIC0gKHZhcmlvdXMpOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCm5iYSAgOCBTZXAgOTkgMDc6NTE6MjYKICAgIC0gc25tcGQuMS5kZWY6IGZpeCBhIGZvcm1hdHRpbmcgcHJvYmxlbQoKbmJhICA4IFNlcCA5OSAwNzo1MjoyMwogICAgLSBhcHBzL3NubXB0cmFwZC5jOiBmaXggYXJndW1lbnQgcHJvY2Vzc2luZyAoLWxkIGFuZCBzaW1pbGFyKQoKbXNsaWZjYWsgIDggU2VwIDk5IDEzOjAwOjQwCiAgICAtKHRlc3RpbmcvUlVOVEVTVFMpIHByZWZpeCBQQVRIIHdpdGggLiBhbmQgLi4gLCBhcyB0aGUgc2NyaXB0IGNoYW5nZXMgZGlyLgoKbXNsaWZjYWsgIDggU2VwIDk5IDEzOjA0OjU1CiAgICAtKHNubXBsaWIvc25tcF9jbGllbnQuKikgYWRkIHNubXBfc3BsaXRfcGR1LCBzbm1wX3ZhcmJpbmRfbGVuIG1ldGhvZHMuCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6MDI6MzcKICAgIG1pYmluY2wuaCwgbWliZ3JvdXAvbWliSUkvKiAtIGZpeHVwIGZvciBDeWdXaW4zMiBidWlsZAoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjQ5OjEzCiAgICAtKGNvbmZpZyosd2luMzIvKixzbm1wbGliLyopIHJlc291cmNlIGxvY2tpbmcgb3JpZ2luYWxseSBmcm9tIE1hcmtrdSBMYXVra2FuZW4KCm1zbGlmY2FrICA4IFNlcCA5OSAxNzo1Mjo0NwogICAgLShtdF9zdXBwb3J0LiopIE9yaWdpbmFsIGJ5IE1hcmtrdSBMYXVra2FuZW4sIGNoYW5nZXMgYnkgTS4gU2xpZmNhawoKbXNsaWZjYWsgIDggU2VwIDk5IDIyOjMwOjI5CiAgICAtKHNtdXguYykgdmFyX3NtdXhfd3JpdGUgZml4ZWQgcGVyIE1pa2UgTWljaGF1ZCBhbmQgTmljayBBbWF0bwoKbXNsaWZjYWsgIDggU2VwIDk5IDIyOjM0OjM3CiAgICAtKG1pYmluY2wuaCkgY29tbWVudCBvdXQgZHVwbGljYXRlICNpbmNsdWRlIGhlYWRlciBsaW5lcy4KCmRhdmVzICA5IFNlcCA5OSAwMTozMjoxNQogICAgLSAobWlicy9TTk1QdjItQ09ORi50eHQpOiBPbWl0IHVubmVjZXNzYXJ5IGltcG9ydCBjbGF1c2UKCm1zbGlmY2FrICA5IFNlcCA5OSAwMjoyMTo1MAogICAgLSh3aW5zdHViLmMpIEhhY2sgdG8gYWxsb3cgc25tcG5ldHN0YXQgLWEgdG8gd29yayBvbiBBSVg0IChzaWMpLgoKbXNsaWZjYWsgIDkgU2VwIDk5IDAyOjMxOjI2CiAgICAtKCpjb25maWcqKSB0dXJuIG9uIHJlc291cmNlIGxvY2tpbmcgd2l0aCAtLWVuYWJsZS1yZWVudHJhbnQuCgptc2xpZmNhayAgOSBTZXAgOTkgMTM6NTk6MjYKICAgIC0obWliLmMsIHBhcnNlLmMpIG1pYi5jIHByaW50X3RyZWVfbm9kZSB0ZXN0IGRpc3BsYXkgbnVsbCB0eXBlIHdpdGggcmFuZ2UKICAgICAgICAgICAgICAgICAgICAgIHBhcnNlLmMgd29yayBhcm91bmQgY29yZSBkdW1wIGZyZWVpbmcgVENzIHRoYXQgc3BlY2lmeSByYW5nZXMuCgpuYmEgMTIgU2VwIDk5IDIxOjUwOjIzCiAgICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKCm5iYSAxMiBTZXAgOTkgMjE6NTc6MTgKICAgIC0gYWdlbnQvKiwgc25tcGxpYi8qOiBtYWxsb2MgZml4ZXMsIHNvbWUgcHJvdm9rZWQgYnkgdGhlIGNvcnJlY3RlZAogICAgCXNubXBfc2VuZCBzZW1hbnRpY3MuCgpuYmEgMTIgU2VwIDk5IDIxOjU4OjE3CiAgICAtIFRFU1RDT05GLnNoOiBmaXggc29tZSBleHBvcnRzIHRvIGV4cG9ydCB0aGUgcmlnaHQgdmFyaWFibGUuCgpuYmEgMTIgU2VwIDk5IDIxOjU5OjM0CiAgICAtIHByb3RvY29sLmM6IGFkZCBhIG1pc3NpbmcgaW5jbHVkZSBmaWxlLgoKbmJhIDEyIFNlcCA5OSAyMjowMDozMwogICAgLSBzbm1wX2ltcGwuaDogcmVtb3ZlZCBzb21lIHVudXNlZC91bm5lZWRlZCBkZWZpbmVzL3N0cnVjdHMKCm5iYSAxMyBTZXAgOTkgMDQ6MzU6MTgKICAgIC0gdmFyX3JvdXRlLmM6IExpbnV4IGNsZWFudXAuIFJlcXVpcmVkIGZvciBMaW51eC9TUEFSQwoKbmJhIDEzIFNlcCA5OSAxMzozMjowNwogICAgLSBzbm1wZC5jOiBmaXggYSBidWZmZXIgb3ZlcmZsb3cKCmhhcmRha2VyIDEzIFNlcCA5OSAxNTowMTo1NAogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgICAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIHN1YmFnZW50LmMsCiAgICAgIHN1YmFnZW50LmgsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBmdXJ0aGVyIHNlcGFyYXRpb24gb2YgYWdlbnQgY2h1cmNoIGFuZCBzdGF0ZToKICAgICAgICAtIHVzZSBjYWxsYmFja3MgZXZlcnl3aGVyZSBuZWVkZWQgdG8gbm90IGNhbGwgbWliIG1vZHVsZSBjb2RlIGRpcmVjdGx5LgogICAgICAgIC0gZ2V0IHJpZCBvZiBhbGwgaW5zdGFuY2VzIG9mIFVTSU5HXyBpbiBsaWJhZ2VudCBjb2RlLgoKbXNsaWZjYWsgMTMgU2VwIDk5IDIwOjIwOjU0CiAgICAtKHNubXBfYXBpLmMpIHJlLWFzc2VydCBOaWVscycgcGF0Y2ggdG8gc25tcF9zZW5kIHRvIGZyZWUgdjIvdjEgVHJhcC1QRFVzCgptc2xpZmNhayAxNCBTZXAgOTkgMDk6NTQ6MDUKICAgIC0oRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL3BhcnNlLiopIGFkZCByZXBsYWNlIE1JQiBjYXBhYmlsaXR5KGV4cGVyaW1lbnRhbCkKCm1hcnogMTQgU2VwIDk5IDEzOjAwOjEyCiAgICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLltjaF0pOiBmaXggc3B1cmlvdXMgZXJyb3IgbWVzc2FnZSB3aGVuIHNubXBfcGFyc2Vfb2lkIGZhaWxzCgptc2xpZmNhayAxNCBTZXAgOTkgMTM6MjI6MzkKICAgIHBhcnNlLmMgLSBhbm90aGVyIGZpeCBmb3Igbm9kZTogY29uc2lkZXIgTlVMTCBuYW1lIG9yIE5VTEwgcGFyZW50Cgptc2xpZmNhayAxNSBTZXAgOTkgMDY6MDg6MzIKICAgIGluY2x1ZGUgbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oIGZvciBiZW5lZml0IG9mIG1pYl9tb2R1bGVfZG90X2NvbmYuaAoKaGFyZGFrZXIgMTUgU2VwIDk5IDA5OjQ1OjM1CiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMsIHNubXBfb3Blbi4zLAogICAgICBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zLCBzbm1wX3NlbmQuMywKICAgICAgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLAogICAgICBzbm1wX3Nlc3NfaW5pdC4zLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICAgICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLAogICAgICBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLCBzbm1wX3RpbWVvdXQuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgICAtIGNyZWF0ZSBzb21lIGZha2Ugc291cmNpbmcgbWFuIHBhZ2VzIGZvciBmdW5jdGlvbnMuCgptc2xpZmNhayAxNSBTZXAgOTkgMTE6MzA6NTgKICAgIGZpbmUgdHVuaW5nIG10IHN1cHBvcnQKCm1zbGlmY2FrIDE2IFNlcCA5OSAxNDoxNjozOAogICAgLXBlciBhZ3JlZW1lbnQgd2l0aCBNYXJra3UsIG5vIHN1cHBvcnQgbmVlZGVkIGZvciBTb2xhcmlzLXNwZWNpZmljIHRocmVhZHMuCgpoYXJkYWtlciAxNyBTZXAgOTkgMDc6MTc6MjEKICAgIC0gKHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAgLSBmaXggY29tbWVudHMuCgptc2xpZmNhayAxNyBTZXAgOTkgMTE6MTk6NDIKICAgIC0ocGFyc2UuYykgLSByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIHN0YXRpYyB2YXIgImxhc3QiCgptc2xpZmNhayAxNyBTZXAgOTkgMTE6MjQ6NDgKICAgIC1yZW1vdmUgb2xkLXN0eWxlIGluaXQgZm9yIHJlcGxhY2UgbWliIGZlYXR1cmUuCgptc2xpZmNhayAxNyBTZXAgOTkgMTE6NDI6MTcKICAgIG1ha2UgbW9kdWxlX21hcCogYW5kIHRva2VucyBzdHJ1Y3R1cmVzIHN0YXRpYyAob25seSB1c2VkIGluIHBhcnNlLmMgPykKCmhhcmRha2VyIDE3IFNlcCA5OSAxNTozNzo0MQogICAgLSAoY29uZmlndXJlKTogdXBkYXRlIHRvIDIuMTMuCgpkYXZlcyAyMSBTZXAgOTkgMDk6MjE6NTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGhhbmRsZSBhZGRpbmcgJ2Vycm9yJyB0eXBlIHZhcmlhYmxlcyB0byBhIFBEVQoKZGF2ZXMgMjEgU2VwIDk5IDA5OjI1OjI1CiAgICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyk6IEhhbmRsZSBwYXJzaW5nIG51bGwtbGVuZ3RoIHZhcmlhYmxlcwoKZGF2ZXMgMjEgU2VwIDk5IDA5OjMyOjI3CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBkLmMpOiBTaW1wbGUgcnVuLXRpbWUgZHVtcCBvZiByZWdpc3RlcmVkIE1JQnMKCm1zbGlmY2FrIDIxIFNlcCA5OSAxMDo0MDo0MwogICAgLShtaWIuYykgdW5kbyBlcnJvbmVvdXMgY2hhbmdlIHRvIGluaXRfbWliICh0aGFua3MgTkIhKQoKZGF2ZXMgMjIgU2VwIDk5IDA5OjI3OjM3CiAgICAtIChhZ2VudC9zbm1wZC5jKTogc3R1cGlkIHR5cG8KCmRhdmVzIDIyIFNlcCA5OSAwOTozMTowOAogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyk6IHN0dXBpZCB0eXBvCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzM6NTEKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aWRlIG1ldGhvZCBmb3IgcHJpb3JpdGlzZWQgcmVnaXN0cmF0aW9uCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzU6MDkKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgIC0gRW5zdXJlIGxvY2FsIHN5c09SVGFibGUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHN1YmFnZW50IHZlcnNpb25zCgpkYXZlcyAyMiBTZXAgOTkgMDk6NTQ6MDIKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgdmFyX3N0cnVjdC5oKToKICAgICAgQ2hhbmdlIHRoZSB3YXkgdGhlIE1JQiByZWdpc3RyeSBoYW5kbGVzIHJlZ2lzdGVyZWQgcmFuZ2VzLgogICAgICBUaGlzIHNob3VsZCB3b3JrIG1vcmUgcmVsaWFibHkgKGFzIHdlbGwgYXMgYmVpbmcgcmF0aGVyIHNpbXBsZXIsIElNSE8pCgpkYXZlcyAyMiBTZXAgOTkgMDk6NTg6MTIKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiByZW1vdmUgcmVkdW5kYW50IHJvdXRpbmVzCgpkYXZlcyAyMiBTZXAgOTkgMTA6MDA6NTYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBFbnN1cmUgcmVnaXN0cnkgaXMgaW5pdGlhbGlzZWQgY29ycmVjdGx5IG9uIHN1YmFnZW50cwoKZGF2ZXMgMjIgU2VwIDk5IDEwOjAxOjQ1CiAgICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEltcHJvdmVkIEFnZW50WCByZXNwb25zZSBoYW5kbGluZwoKbXNsaWZjYWsgMjIgU2VwIDk5IDEyOjUxOjAwCiAgICAtKHNubXBfYXBpLmMpIC0gSW1wcm92ZWQgZXJyb3Igc3RhdHVzIGFnZ3JlZ2F0aW9uLgoKaGFyZGFrZXIgMjcgU2VwIDk5IDE2OjIyOjIwCiAgICAtIChyZWFkX2NvbmZpZy5jKTogT3BwczogRFNfTElCX0RPTlRfUkVBRF9DT05GSUdTIG5lZWRlZCBhbiAhLgoKaGFyZGFrZXIgMjggU2VwIDk5IDE2OjUyOjA0CiAgICAtIChNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgICAtIG1ha2UgbGlidWNkYWdlbnQgYW5kIGxpYnVjZG1pYnMgYXMgc2VwZXJhdGUgbGlicmFyaWVzLiAgSW4gdGhlb3J5LAogICAgICAgIHlvdSBzaG91bGRuJ3QgbmVlZCBsaWJ1Y2RtaWJzIHRvIHVzZSBsaWJ1Y2RhZ2VudC4KCmRhdmVzIDI5IFNlcCA5OSAxMToxNDo0MgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogcHJvdGVjdCBzbm1wX2Nsb3NlKCkgYWdhaW5zdCBhIG51bGwgU2Vzc2lvbnMgbGlzdAoKZGF2ZXMgMjkgU2VwIDk5IDExOjE3OjAxCiAgICAtIChtdF9zdXBwb3J0Lmggc25tcF9hcGkuW2NoXSk6IFN1cHBvcnQgZm9yIHNlc3Npb24gYW5kIGluY29taW5nIHRyYW5zYWN0aW9uIElEcwoKZGF2ZXMgMjkgU2VwIDk5IDExOjIzOjQwCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogQ29ycmVjdCB2YWx1ZSBvZiBkZWZhdWx0IHJlZ2lzdHJhdGlvbiBwcmlvcml0eQoKZGF2ZXMgMjkgU2VwIDk5IDExOjM2OjQzCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAgLSBJbXByb3ZlIHJlZ2lzdHJ5IGVycm9yIGhhbmRsaW5nCiAgICAgIC0gQ29ycmVjdGx5IGhhbmRsZSB1bnJlZ2lzdGVyaW5nIE1JQiByZWdpb25zCgpkYXZlcyAyOSBTZXAgOTkgMTE6Mzg6MjIKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgICAtICdDaGlsZHJlbicgbm9kZXMgbm93IGhhdmUgYSBkaWZmZXJlbnQgc3RhdHVzLCBhbmQgc2hvdWxkbid0IGJlIGZyZWVkLiBPb3BzIQoKZGF2ZXMgMjkgU2VwIDk5IDExOjQzOjAwCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlzaW9uIHRvIHVucmVnaXN0ZXIgTUlCcyBieSBzZXNzaW9uCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDY6MDIKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKToKICAgICAgLSBNb3ZlIHNldHRpbmcgYWdlbnQgc3RhcnQgdGltZSB0byBlYXJsaWVyIGluIHRoZSBpbml0aWFsaXNhdGlvbiBzZXF1ZW5jZQogICAgICAgIChzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHN1YmFnZW50cyB3aXRoIHRoZSBtYXN0ZXIncyB2YWx1ZSkKCmRhdmVzIDI5IFNlcCA5OSAxMTo0ODo1NQogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKTogQ2hhbmdlIGluIE1JQiByZWdpc3RyYXRpb24gaW50ZXJmYWNlCgpkYXZlcyAyOSBTZXAgOTkgMTI6MTk6NTYKICAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC8qKTogIEFzc29ydGVkIGltcHJvdmVtZW50cyEKCm1zbGlmY2FrIDI5IFNlcCA5OSAxNDozMTo0OAogICAgUm9idXN0IGNvcHkgb2YgaW5mb3JtYXRpb24gdG8gdHJlZSwgaW1wb3J0X2xpc3QsIGRpc3BsYXkgaGludHMuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6MzU6NDMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gZml4IFJBTkxJQiB0ZXN0aW5nIGZvciAtLWVuYWJsZS1zaGFyZWQuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6MzY6MDcKICAgIC0gKFJFQURNRSk6IGFkZGVkIE1pa2UgTWljaGF1ZCB0byB0aGUgdGhhbmsgeW91IGxpc3QuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzg6MzQKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgICAtIG5ldyBleHRyYWN0aW9uIGFuZCBmcmVlaW5nIGZ1bmN0aW9ucy4KICAgICAgLSBidWcgZml4LCBtaXNzaW5nIGEgbWFsbG9jIHNpemUgYnkgb25lIChlbGVjdHJpYyBmZW5jZSBpcyB2ZXJ5IGNvb2wpLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM4OjU5CiAgICAtIChjbGllbnQuYyk6IHRoYXRzICJ0aW1ldmFsIiBub3QgInRpbWV2YWxlIiBEYXZlIChoZWhlKS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozOToyMQogICAgLSAoY2xpZW50LmgpOiBkZWZpbmUgREVGQVVMVF9NSUJfUFJJT1JJVFkgdG8gMjU1LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM5OjQyCiAgICAtIChtYXN0ZXJfYWRtaW4uYyk6IC1XYWxsIGZpeGVzIGFuZCBmb3VuZCBhIG1pc3NpbmcgfS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjo0MDowOAogICAgLSAocGFzcy5jKTogcnVuIG50b2hsIG9uIGlwIGFkZHJlc3NlcyBzdG9yZWQgaW4gYSBsb25nLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjQwOjMwCiAgICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlZCBleHRyYSBcbi4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNzowMToyOAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCk6IGZpeCBidWdzLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE3OjAxOjUwCiAgICAtIChtaWJfbW9kdWxlcy5jKTogaW5jbHVkZSBuZXRpbmV0L2luLmgKCm1zbGlmY2FrIDI5IFNlcCA5OSAyMzo0Mjo0OQogICAgUmVtb3ZlIHVudXNlZCBmaWxlLi4gc25tcGxpYi9ocHV4LmMKCmRhdmVzIDMwIFNlcCA5OSAwMTowOToyNQogICAgLSAobWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyk6CiAgICAgIC0gcHJvdGVjdCBhZ2FpbnN0IE5VTEwgdXRtcCBmaWxlIChmcm9tIEZhYnJpY2UgRHVwcmUpCgpkYXZlcyAgMSBPY3QgOTkgMDk6NDg6MjAKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogRml4IGluY29tcGF0YWJpbGl0eSBpbiBhZ2VudCBsaWJyYXJ5IG5hbWVzCgpkYXZlcyAgMiBPY3QgOTkgMTQ6Mjg6MjAKICAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gRml4IGEgcHJvYmxlbSB3aXRoIHJlLXVzZWQgUERVIHN0cnVjdHVyZXMgYmVpbmcgZnJlZWQgdHdpY2UuCgpkYXZlcyAgNCBPY3QgOTkgMDM6NTg6MjIKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oKToKICAgICAgLSBjb25zb2xpZGF0ZSBkZWZpbml0aW9ucyBvZiBkZWZhdWx0IE1JQiByZWdpc3RyYXRpb24gcHJpb3JpdHkKCmRhdmVzICA0IE9jdCA5OSAwOTo1Mzo0OAogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBzbm1wX3ZhcnMuaCBtaWJJSS9zeXNPUlRhYmxlLmMKICAgICAgIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgICAgLSBIYW5kbGUgTUlCIHJhbmdlIHJlZ2lzdHJhdGlvbiwgYW5kIGNsZWFuIHVwIHdyYXBwZXIgaW50ZXJmYWNlcwoKZGF2ZXMgIDQgT2N0IDk5IDA5OjU4OjI2CiAgICAtIChtaWJfbW9kdWxlcy5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5bY2hdKToKICAgICAgLSBFbnN1cmUgc3ViYWdlbnQgaXMgaW5pdGlhbGlzZWQgZWFybHkgKHByaW9yIHRvIE1JQiByZWdpc3RyYXRpb24sIGV0YykKCmRhdmVzICA0IE9jdCA5OSAxMDoxNTozOAogICAgLSAoc25tcGxpYi9jYWxsYmFjay5oKTogSW5jcmVhc2UgbnVtYmVyIG9mIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBzdXBwb3J0ZWQKCmRhdmVzICA0IE9jdCA5OSAxMDoxNzo1MwogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmggIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuW2NoXQogICAgICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAgIC0gQ29tcGxldGUgc3ViYWdlbnQgaGFuZGxpbmcgb2YgQWdlbnQgQ2FwYWJpbGl0aWVzIC8gc3lzT1JUYWJsZQoKZGF2ZXMgIDQgT2N0IDk5IDEwOjIyOjI1CiAgICAtIChhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogVHJpdmlhbCAncGluZycgaW1wbGVtZW50YXRpb24KCm5iYSAgNCBPY3QgOTkgMTE6NDg6NTEKICAgIC0gKHNubXBfYXBpPywgaW50NjQuPyBzbm1wdHJhcC5jKTogYWRkIHNvbWUgZXJyb3IgY2hlY2tpbmcgZm9yIHZhcmlhYmxlcwoKbmJhICA0IE9jdCA5OSAxMTo1MDo1MAogICAgLSBNYWtlZmlsZS5pbjoJYWx3YXlzIHVzZSAkKE1BS0UpIGZvciBtYWtlIGluIE1ha2VmaWxlcwoKbmJhICA0IE9jdCA5OSAxMTo1MjoyNQogICAgLSBjb25maWd1cmUuaW46CXJlbW92ZSAtcGVkYW50aWMgZnJvbSAtLXdpdGgtZGV2ZWxvcGVyLCBhbmQgdGhlIHN5c3RlbSBoZWFkZXJzCiAgICAJYXJlIG5vdCBwcmVwYXJlZCBmb3IgaXQgKGF0IGxlYXN0IG9uIExpbnV4IGFuZCBOZXRCU0QpCgpuYmEgIDQgT2N0IDk5IDEzOjM4OjE5CiAgICAtIHZhcmlvdXM6IGluY2x1ZGUgYWRkaXRpb25zIGFuZCBmaXhlcyB0byBraWxsIHdhcm5pbmdzCgpoYXJkYWtlciAgNCBPY3QgOTkgMTM6NTE6NTEKICAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzU2VydmljZXMgY29uZmlndXJhYmxlLgoKbmJhICA0IE9jdCA5OSAxMzo1MjoyMAogICAgLSBzdWJhZ2VudC5oLCBzdWJhZ2VudC5jLCBtaWJfbW9kdWxlcy5jOiBwcmVfaW5pdF9zdWJhZ2VudCBjb25mdXNlcwogICAgCWNvbmZpZ3VyZSBpbnRvIGJlbGlldmluZyB0aGVyZSBpcyBhIGluaXRfc3ViYWdlbnQgZnVuY3Rpb24uCiAgICAJUmVuYW1lIHRvIHN1YmFnZW50X3ByZV9pbml0CgpoYXJkYWtlciAgNCBPY3QgOTkgMTY6MzI6MTkKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBhZGRlZCBoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KCkuCgpkYXZlcyAgNSBPY3QgOTkgMDc6MjM6NDUKICAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKTogV29ya2luZyBTRVQgc3VwcG9ydAoKbmJhICA1IE9jdCA5OSAyMTo0OToyMgogICAgLSBzbm1wX2RlYnVnLmg6IG1ha2UgdGhlIERFQlVHKiBtYWNyb3Mgc2FmZSBmb3IgdXNlIGluIGNvbXBvdW5kIHN0YXRlbWVudHMKCm5iYSAgNSBPY3QgOTkgMjI6MTg6NDYKICAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZpeGVzIHRvIHJlcG9ydCBpbnZhbGlkIGVuZ2luZUlkCgpuYmEgIDUgT2N0IDk5IDIyOjIyOjU0CiAgICAtIHN1YmFnZW50LmM6IGluY2x1ZGUgc3lzdGVtLmggZm9yIHByb3RvdHlwZSBmb3IgY2FsY3VsYXRlX3RpbWVfZGlmZgoKaGFyZGFrZXIgIDYgT2N0IDk5IDA4OjU3OjQyCiAgICAtIChmaXhwcm9jKTogbmV3IGNvbW1lbnRlZCB2ZXJzaW9uLgoKaGFyZGFrZXIgIDYgT2N0IDk5IDE2OjMxOjUzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgIC0gU2F2ZSBhbmQgcGFyc2Ugb2xkZXIgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzIHRvIG1ha2Ugc3VyZSBkYXRhIGlzCiAgICAgICAgbm90IGxvc3QgZHVyaW5nIHN0b3JhZ2UgY3Jhc2hlcy4KICAgICAgLSBGaXggU05NUHYzIGVuZ2luZUlEIHByb2JlczogUERVJ3MgYXJlIGFsbG93ZWQgdG8gaGF2ZSBhIE5VTEwgdmFyYmluZGxpc3QuCgpkYXZlcyAgNyBPY3QgOTkgMDc6MjY6MjAKICAgIC0gKGFnZW50X3RyYXAuYyBhZ2VudF90cmFwLmggYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wZC5oKToKICAgICAgLSAgUmUtd3JpdGUgb2YgYWdlbnQgdHJhcCBoYW5kbGluZzoKICAgIAlQcm92aXNpb24gZm9yIHYxIHRyYXBzIHdpdGggdmFyYmluZHMKICAgIAlDb25zb2xpZGF0ZSB2MSBhbmQgdjIgdHJhcCBzaW5rIGxpc3RzCiAgICAJUHJlbGltaW5hcnkgSU5GT1JNIHN1cHBvcnQKCmRhdmVzICA3IE9jdCA5OSAwODo0MjoxNQogICAgLSAoYWdlbnRfdHJhcC5bY2hdKTogSW1wcm92ZSBhY2Nlc3NpYmlsaXR5IGZvciBzdWJhZ2VudHMKCmRhdmVzICA3IE9jdCA5OSAwOTowMToyNQogICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogTm90aWZpY2F0aW9uIHN1cHBvcnQKCm1zbGlmY2FrIDEyIE9jdCA5OSAwNTo1ODoyOAogICAgbWliLmMgOiBxdWlja19wcmludCBpcyBleHBvc2VkIGZvciBDTVVfQ09NUEFUSUJMRSBidWlsZHMuCiAgICBsY2RfdGltZS5jIDogY29tbWVudGVkIHVudXNlZCBkdW1wX2V0aW1lbGlzdF9lbnRyeSB1bmRlciBTTk1QX1RFU1RJTkdfQ09ERS4KCm1zbGlmY2FrIDEyIE9jdCA5OSAwNjowNzo0NAogICAgRGVmaW5lIGFkZHJlc3MgbGVuZ3RoIGZvciBGcmVlQlNEIHBsYXRmb3JtLgoKbXNsaWZjYWsgMTMgT2N0IDk5IDAzOjU0OjAyCiAgICBhZGQgbWlzc2luZyBwcm90byBmb3Igc2F2ZV9wZXJzaXN0ZW50LgoKbmJhIDEzIE9jdCA5OSAwNzowOTozNgogICAgLSBtYXN0ZXJfYWRtaW4uYywgc3lzdGVtX21pYi5oOiBpbmNsdWRlcyBmb3IgcHJvdG90eXBlcwoKbXNsaWZjYWsgMTUgT2N0IDk5IDA3OjA5OjE0CiAgICAtKGRlZmF1bHRfc3RvcmUuYywgY2FsbGJhY2suYykgZml4CiAgICBidWcgaW4gYXJyYXktYm91bmRhcnkgY2hlY2sgaW4gc25tcGxpYi9jYWxsYmFjay5jCiAgICByZXBvcnRlZCBieSBCZXJ0IEhvbHN0ZWluIDE1IE9jdCAxOTk5LgoKaGFyZGFrZXIgMjAgT2N0IDk5IDE3OjI2OjU5CiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogcGFyc2VkIHN0cmluZ3MgZnJvbSBvaWQncyBpbmNsdWRlIG51bGwgdGVybWluYXRvcnMuCgpoYXJkYWtlciAyMCBPY3QgOTkgMTg6MDg6MzkKICAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZCBwYXJzZXIgdG8gaGFuZGxlIHNpbXBsZSBlbWJlZGRlZCBzdHJpbmdzIGluIG9pZHMKICAgICAgYW5kIHRvIHRyYW5zbGF0ZSB0aGVtIGludG8gb2lkIHNlZ21lbnRzLgogICAgICBFRzogLjEuMy5cImhlbGxvXCIuXCdoaVwnIC0+IC4xLjMuNS4xMDQuMTAxLjEwOC4xMDguMTExLjEwNC4xMDUKCmhhcmRha2VyIDIxIE9jdCA5OSAxMDowNzowMAogICAgLSAobWliLmMpOiBlbmFibGUgb2lkbmFtZS4iaGkiLid0aGVyZScgaW4gZ2V0X21vZHVsZV9ub2RlKCkgYXMgd2VsbC4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDoyMDoxNQogICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIHdpdGhvdXQgc3BlY2lmeWluZyBzbm1wX2Vycm5vIF9vdXRzaWRlXyB0aGUgbGlicmFyeS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDoyNjoyOQogICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIGZyb20gd2l0aGluIHRoZSBsaWJyYXJ5LgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjM3OjQ5CiAgICBtaWIuYyAtIHJlc3RvcmUgbGluZSBzdG9tcGVkIGluIG15IGxhc3QgdXBkYXRlLgogICAgcmVhZF9jb25maWcuYyAtIGRyb3AgdW51c2VkIHZhcmlhYmxlLgogICAgc25tcF9hcGkuYyAtIG5ldyBtZXRob2Qgc25tcF9vcGVuX2V4IHJlcGxhY2VzIHNldCBpbnRlcm5hbCBob29rIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDozOTowOQogICAgRml4dXBzIGZvciBidWlsZGluZyB3aXRoIE1TVkMrKy4gKG5vIGhwdXguYywgc3VwcGx5IE1BWF9QRVJTSVNURU5UX0JBQ0tVUFMpLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjQxOjM4CiAgICByZW1pbmRlcnMgZm9yIHNubXBfc2Vzc19wZXJyb3IgdXNhZ2UgYWZ0ZXIgb3Blbi4KICAgIHNubXB0YWJsZS5jIC0gb3Blbi9jbG9zZSBzZXNzaW9uIGZyb20gbWFpbigpLgogICAgbmV0c3RhdC9tYWluLmMgLSB1c2Ugc25tcF9zZXNzX3BlcnJvci4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDo0MjoyOAogICAgdXNlIHNubXBfb3Blbl9leC4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMjowOTo1MQogICAgRml4IEJVRyM3OAoKbXNsaWZjYWsgMjEgT2N0IDk5IDEyOjMxOjI4CiAgICBzbWFsbCBwYXRjaCBmcm9tIE0uIExhdWtrYW5lbiB0byBmaXggSFAgYUNDIGJ1aWxkLgoKbmJhIDIxIE9jdCA5OSAxMjo1MjoyNgogICAgLSBtZW1vcnlfc29sYXJpcy5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KCm5iYSAyMSBPY3QgOTkgMTI6NTQ6NDEKICAgIC0gbWVtb3J5X3NvbGFyaXMyLmM6IHJlb3JkZXIgY29tcHV0YXRpb25zIHRvIGF2b2lkIG92ZXJmbG93LgoKbXNsaWZjYWsgMjIgT2N0IDk5IDA2OjI5OjE2CiAgICBJbiBmaXhpbmcgYnVnICM4MyBvbiA0LjAgYnJhbmNoLCBkaXNjb3ZlcmVkIHRoYXQgMy42IGJyYW5jaAogICAgZGlkIG5vdCBoYXZlICJvY3RldCIgdG9rZW4gc3VwcG9ydC4gIEFkZGVkLgoKbXNsaWZjYWsgMjIgT2N0IDk5IDA2OjI5OjUyCiAgICBGaXggQlVHICM4My4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNzozOTowMQogICAgUmVtb3ZlZCBkdXBsaWNhdGVkIHZhcmlhYmxlIGluIGEgbmVzdGVkIGJsb2NrLiBBUmchCgpoYXJkYWtlciAyMiBPY3QgOTkgMDk6NTk6MzkKICAgIC0gKG1pYi5jKTogZW5hYmxlIGhleCBzdHJpbmdzIGluc2lkZSBvaWRzLgoKbXNsaWZjYWsgMjIgT2N0IDk5IDEwOjEyOjI2CiAgICBEaXNwbGF5IF9zb21lXyBvY3RldCBzdHJpbmcgaW5kaWNlcyBvZiBvYmplY3QgaWRlbnRpZmllcnMgYXMgcXVvdGVkIHByaW50YWJsZS4KICAgIFNob3VsZCBiZSBleHBhbmRlZCB0byBoYW5kbGUgb3RoZXIgSU5ERVggdHlwZXMuCgpoYXJkYWtlciAyMiBPY3QgOTkgMTU6Mjg6NTkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwga2V5dG9vbHMuYywKICAgICAga2V5dG9vbHMuaCwgc2NhcGkuYyk6CiAgICAgIC0gdXNlIG9wZW5zc2wgZm9yIG1kNS9zaGEgc3VwcG9ydCAoZnJvbSBPbGFmdXIgR3VkbXVuZHNzb24pLgoKaGFyZGFrZXIgMjIgT2N0IDk5IDE1OjI5OjM4CiAgICAtIChtaWIuYyk6IHByaW50IHN0cmluZyBiYXNlZCBPSURzIGJldHRlci4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNDowMgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTTk1QQ09ORlBBVEggdXNlcyBzeXNjb25mZGlyIG5vdCBkYXRhZGlyLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI0OjIxCiAgICAtIChSRUFETUUuc25tcHYzKTogdHlwby4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNTozNQogICAgLSAobWliLmMpOiBmaXggIm1pYnMiIGFuZCAibWliZGlycyIgLmNvbmYgZGlyZWN0aXZlcyB0byBwcm9wZXJseQogICAgICBoYW5kbGUgbXVsdGlwbGUgY2FsbHMgKGFkZGl0aXZlKSBhbmQgJysncyBhbmQgdGhpbmdzLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI3OjI4CiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBwcmVtaWIgZGlyZWN0aXZlcyB3ZXJlbid0IGdldHRpbmcgcmVhZCBkdWUgdG8gYSBtaXNzaW5nIG5lZ2F0aW9uICghKS4KICAgICAgLSBtb3JlIHBhcnNpbmcgZGVidWdnaW5nIHN0YXRlbWVudHMgYWRkZWQuCgptc2xpZmNhayAyNSBPY3QgOTkgMDg6MDY6MzIKICAgIG1pbm9yIHJld29yayB0byBjbGFyaWZ5IHNpZ25lZCBjb21wYXJlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgpuYmEgMjUgT2N0IDk5IDEzOjM5OjI3CiAgICAtIGludGVyZmFjZXMuYzogZml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIExpbnV4IHBhcnQKCm5iYSAyNSBPY3QgOTkgMTM6NDE6MDEKICAgIC0gY29uZmlndXJlLmluLCBwcm9jLmM6IHN1cHBvcnQgZm9yIEZyZWVCU0QgMi4xIHdoZXJlIHBzIGRvZXNuJ3QgaGF2ZSBjIGZsYWcKCm5iYSAyNSBPY3QgOTkgMTM6NTE6MjIKICAgIC0gaHJfc3lzdGVtLmM6IHBsYXkgaXQgc2FmZSB3aGVuIG5vIHV0bXAgZmlsZSBleGlzdHMKCm5iYSAyNSBPY3QgOTkgMTM6NTM6MjYKICAgIC0gc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOiBzdXBwb3J0IGZvciB0cmFwaGFuZGxlIERFRkFVTFQKCm5iYSAyNSBPY3QgOTkgMTM6NTY6MjYKICAgIC0gUlVOVEVTVFMsIFRFU1RDT05GLnNoIGV2YWxfb25lc2NyaXB0LnNoIGV2YWxfdG9vbHMuc2g6IHN1cHBvcnQgbm9uLWJhc2gKICAgIAlzaGVsbHMgKGVjaG8gLW4gdnMgZWNobyBcXGMpLiBEb24ndCByZXF1aXJlIC4gaW4gUEFUSAoKbmJhIDI1IE9jdCA5OSAxMzo1ODowMwogICAgLSBzbm1wdHJhbnNsYXRlLmM6IGxldCAnOicgaW4gT0lEIGRvICJ0aGUgcmlnaHQgdGhpbmciCgpuYmEgMjUgT2N0IDk5IDEzOjU5OjA1CiAgICAtIHBhc3MuYzogZG8gYW4gaHRvbmwgd2hlbiBwYXNzaW5nIGlwIGFkZHJlc3MKCm5iYSAyNSBPY3QgOTkgMTQ6MDc6MTEKICAgIC0gc25tcGRlbHRhLmM6IENPVU5URVI2NCB3aWxsIGRlcmVmZXJlbmNlIGZyZWVkIHBvaW50ZXIKCm5iYSAyNSBPY3QgOTkgMTQ6MDg6MjUKICAgIC0gc25tcGQuY29uZi41LmRlZjogbWlub3IgcXVpcmsKCm5iYSAyNSBPY3QgOTkgMTQ6MTM6NTcKICAgIC0gKjogY29uZmlndXJlIHN1cHBvcnQgZm9yIGRtYWxsb2MgbWFsbG9jIGRlYnVnZ2VyICh3d3cuZG1hbGxvYy5jb20pCgpoYXJkYWtlciAyNSBPY3QgOTkgMTQ6MzU6NTEKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGVuYWJsZSAtcCBwcmludGluZyBvZiBvbmx5IGEgc2VjdGlvbiBvZiB0aGUgbWliIHRyZWUuCgpoYXJkYWtlciAyNSBPY3QgOTkgMTY6MDU6MDMKICAgIC0gKHNubXB0cmFuc2xhdGUuYywgcGFyc2UuYyk6IGhhY2sgdG8gZG8gd2lsZCBjYXJkIHNlYXJjaGVzIGZvciBhIG1pYiBub2RlLgoKbXNsaWZjYWsgMjYgT2N0IDk5IDEwOjM0OjQwCiAgICBBbGxvdyB1bnNpZ25lZCByYW5nZSBmb3IgY291bnRlci9nYXVnZS90aW1ldGlja3MgKGZpeCBCVUcjODQgcGVyIFNhbmRlciBTdGVmZmFubikuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzM6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogZml4IHVwIHVjZC1zbm1wLWNvbmZpZy5oIGJ1aWxkaW5nLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM0OjEwCiAgICAtIChzbm1wX2FnZW50LmgpOiBwcm90b3R5cGUgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNDo1NQogICAgLSAoTWFrZWZpbGUuaW4sIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCBhIGhlYWRlciBmaWxlIHRvCiAgICAgIHdyYXAgYXJvdW5kIHRoZSB2YXJpb3VzIGFnZW50IGluY2x1ZGUgZmlsZXMuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzU6MjcKICAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogc2ltcGxlIGRlYnVnZ2luZyBzbyB5b3UgY2FuIHdhdGNoIHN0dWZmIHJlZ2lzdGVyLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM2OjIxCiAgICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICAgICBkZWZhdWx0X3N0b3JlLjMuaCwgZGVmYXVsdF9zdG9yZS4zLnRvcCwgc25tcF9hZ2VudF9hcGkuMyk6CiAgICAgIC0gbmV3IG1hbnVhbCBwYWdlczogZGVmYXVsdF9zdG9yZS4zLCBzbm1wX2FnZW50X2FwaS4zLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM2OjU1CiAgICAtIChkZWZhdWx0X3N0b3JlLmgpOgogICAgICAtIG1hcmsgcmVnaW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGVmYXVsdF9zdG9yZS4zIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM3OjQ5CiAgICAtIChsY2RfdGltZS5oKTogZGVmaW5lIGFuZCBjb21tZW50IExDRF9USU1FX1NZTkNfT1BUIGJldHRlci4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozODowNgogICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZCBkZWZhdWx0X3N0b3JlLmggYW5kIHNubXBfbG9nZ2luZy5oCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MTI6MDEKICAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGRlZCBtb3JlIGluY2x1ZGUgZmlsZXMuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MTI6NTkKICAgIC0gKG1pYi5jKTogYmFpbCBpZiB3ZSBjYW4ndCBmaW5kIGFuIGluZGV4IGluIHRoZSBtaWIgdHJlZSB0byB1c2UgZm9yCiAgICAgIGJyZWFraW5nIGFuIG9pZCBhcGFydC4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNzozMDoyNQogICAgLSAodmFjbV92YXJzLmMpOiB3YXRjaCBmb3IgbnVsbCBjb21tdW5pdGllcyB3aGVuIHByaW50aW5nIGRlYnVnIHN0YXRlbWVudHMuCgptc2xpZmNhayAyOCBPY3QgOTkgMDQ6NTU6NTIKICAgIERhdmUncyBjb21tZW50IGFib3V0IHByZV9wYXJzZSBldGMuIHdhcyB0b28gZ29vZCB0byBsb3NlIGluIGUtbWFpbC4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNToyMzowNQogICAgdV9pbnQ4LzE2LzMyX3QgdHlwZXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgV0lOMzIgYnVpbGRzLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA1OjI1OjAyCiAgICBPb3BzISByZXN0b3JlIHZlcnNpb24gcjEuMTMxLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA2OjQ5OjAzCiAgICByZXBocmFzZSBzdWJ0cmVlIG5vdCBmb3VuZCBjb2RlIGluIF9nZXRfc3ltYm9sLgoKaGFyZGFrZXIgMjggT2N0IDk5IDEzOjQ3OjU3CiAgICAtIChzbm1wdG9zcWwpOiBkZWJ1Z2dpbmcgYW5kIGVycm9yIGNoZWNraW5nLgoKaGFyZGFrZXIgMjkgT2N0IDk5IDA4OjU4OjE3CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogUGF0Y2ggZnJvbSBLZWl0aCBUdXNvbjoKICAgICAgLSBtaXNjIGZpeGVzLgoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjI4OjExCiAgICAtIChGQVEpOiBhZGRlZCByZWZlcmVuY2UgdG8gYW4gYWJvdmUgcXVlc3Rpb24gZm9yIHBlcmwgaW5zdGFsbGF0aW9uLgoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjI4OjQzCiAgICAtICh1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgdmFyX3N0cnVjdC5oIGFuZCBhZ2VudF9yZWFkX2NvbmZpZy5oCgpoYXJkYWtlciAyOSBPY3QgOTkgMDk6NTI6MTgKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiB0d28gbmV3IHByaW50aW5nIG9wdGlvbnM6CiAgICAgIC0gcHJpbnROdW1lcmljT2lkcwogICAgICAtIHByaW50TnVtZXJpY0VudW1zCgpoYXJkYWtlciAyOSBPY3QgOTkgMTA6MDY6MDMKICAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIHNubXAgb3ZlciBUQ1Agb3B0aW9uczogLVQgVENQLgogICAgICAtIG5ldyBxdWljayBwcmludCBvcHRpb25zOiAtcW8gLXFlIGZvciBudW1lcmljIG9pZHMgYW5kIGVudW1zLgoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjEzOjQ0CiAgICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtVCBhbmQgLXFbb2VdCgpoYXJkYWtlciAyOSBPY3QgOTkgMTA6MTU6MDEKICAgIC0oZGVmYXVsdF9zdG9yZS4zeywuaH0pOiByZW1vdmVkIGZyb20gQ1ZTIHNpbmNlIHRoZXkgYXJlIGJ1aWx0CgpoYXJkYWtlciAyOSBPY3QgOTkgMTA6MTU6NDMKICAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgZGVmYXVsdF9zdG9yZS4zeywuaH0KCmhhcmRha2VyIDI5IE9jdCA5OSAxNjo1ODowNwogICAgLSAodGttaWIpOiBtYWtlIGl0IGRvIHNubXB2My4gIEFkZGVkIG1hbnkgdGhpbmdzIHRvIHRoZSBvcHRpb25zIG1lbnUuCgptYXJ6IDI5IE9jdCA5OSAxOTo1NDoxMAogICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jKTogbWFrZSBlbmdpbmVJRCBzZXR1cCBjb25kaXRpb25hbCBvbiBhcHAgdHlwZSB0byBwcmV2ZW50IGFwcHMgZnJvbSBlYXNpbHkgZW5kaW5nIHVwIHdpdGggdGhlIHNhbWUgZW5naW5lSUQgYXMgYWdlbnQgb24gc2FtZSBob3N0CgpoYXJkYWtlciAgMSBOb3YgOTkgMTM6MTg6MDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wX2FsYXJtLmMpOgogICAgICAtIGRvbid0IGJyZWFrIG9pZHMgaW50byBwaWVjZXMgaWYgcXVpY2tfcHJpbnQgaXMgdHVybmVkIG9uLgogICAgICAtIGRpdHRvIGlmIHRoZSBuZXcgZGVmYXVsdF9zdG9yZSBvcHRpb24gaXMgdHVybmVkIG9uLgogICAgICAtIG1hZGUgYSBkZWZhdWx0X3N0b3JlIG9wdGlvbiB0byBub3QgdXNlIHNpZ2Fscm0gZm9yIHNubXBfYWxhcm1zLgoKaGFyZGFrZXIgIDIgTm92IDk5IDA5OjU3OjMxCiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgb3RoZXIgaGVhZGVyIGZpbGVzIG5lZWRlZCBieSBTTk1QLnBtLgoKbXNsaWZjYWsgIDIgTm92IDk5IDE1OjM3OjA1CiAgICBVc2UgSEFWRV9TVERBUkdfSCB3aGVuIGRlY2lkaW5nIHRvIHVzZSB2YXJhcmdzIHZzIEFOU0ktQyBwcm90b3R5cGVzLgoKbXNsaWZjYWsgIDIgTm92IDk5IDE1OjQ2OjA4CiAgICBJbnN0YWxsIHNubXBfYWdlbnRfYXBpLjMKCm1zbGlmY2FrICAzIE5vdiA5OSAwNjoxMTowMwogICAgZGVjbGFyZSBmaW5kX2Jlc3RfdHJlZV9ub2RlIGZvciBNU1ZDIGJ1aWxkLgoKbXNsaWZjYWsgIDMgTm92IDk5IDA2OjQ5OjMwCiAgICBOZWFyIGxpbmUgNjYzIDogY2xvc2UoZmQpIGJlZm9yZSBpbnZva2luZyB3YWl0X29uX2V4ZWMKCm1zbGlmY2FrICAzIE5vdiA5OSAxMzoxODo1OQogICAgRm9sbG93aW5nIGNhbGwgdG8gZmRvcGVuIChuZWFyIGdldF9leGVjX291dHB1dCksIGRvIG5vdCBjbG9zZShmZCkuCgptc2xpZmNhayAgMyBOb3YgOTkgMTM6MjA6MTYKICAgIEZpeCBidWlsZCBwcm9ibGVtIG9uIExpbnV4IFJlZEhhdCA2LjAgOiBrZXkgb2ZmIEdOVV9MSUJSQVJZIHZhbHVlLgoKbXNsaWZjYWsgIDQgTm92IDk5IDAyOjQyOjE1CiAgICBQYXRjaCB0byBidWlsZCBCU0QvT1MgNC4wLjE7IGZyb20gQmVydCBEcmllaHVpcyAtLSBkcmllaHVpc0BwbGF5YmVpbmcub3JnCgptc2xpZmNhayAgNCBOb3YgOTkgMDQ6MTQ6MjgKICAgIE1vcmUgU1REQ19IRUFERVJTIGNsZWFudXA6IHVzZSBIQVZFX1NUUklOR19ILCBIQVZFX1NURExJQl9IIGluc3RlYWQuCgptc2xpZmNhayAgNCBOb3YgOTkgMDQ6MzM6MzIKICAgIENoYW5nZSBleGFtcGxlIGF3YXkgZnJvbSBTVERDX0hFQURFUlMuCgptc2xpZmNhayAgNCBOb3YgOTkgMDU6MDg6MzEKICAgIEV2ZXJ5ICNkZWZpbmUgaXMgZ2l2ZW4gYSB2YWx1ZTsgc2V0IHRvIDEgaWYgbm8gdmFsdWUgd2FzIHNwZWNpZmllZC4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNToxMzowNQogICAgRmlyc3QgcGFzcyBzdXBwb3J0IGZvciBGcmVlQlNEIDQuMCBbcHJvYmxlbXMgd2l0aCBwcm9jIHRhYmxlIGxvb2t1cHNdLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA2OjExOjQ4CiAgICBVc2Ugc3lzY3RsKENUTF9WTS4uKSB0byBnZXQgdmlydHVhbCBtZW1vcnkgc3RhdHMuCgpoYXJkYWtlciAgNCBOb3YgOTkgMTA6MDM6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jKToKICAgICAgLSBkZWZpbmUgSU5fVUNEX1NOTVBfU09VUkNFIGluIGNvbmZpZy5oIGJ1dCBub3QgaW4gdWNkLXNubXAtY29uZmlnLmguCiAgICAgIC0gbW92ZSB1Y2Qtc25tcC1jb25maWcuaCB1cCBpbiB0aGUgYnVpbGQgb3JkZXIgYmVmb3JlIHN1YmRpcnMuCiAgICAgIC0gTWFrZSBkZWZhdWx0IE1JQkRJUlMgc2VhcmNoIHBhdGggaW5jbHVkZSAkSE9NRS8uc25tcC9taWJzLgogICAgICAtIE1ha2UgTUlCRElSUyBwYXJzaW5nIGhhbmRsZSAkSE9NRSB2YXJpYWJsZXMgaW4gaXQuCgpoYXJkYWtlciAgNCBOb3YgOTkgMTA6MDQ6NDIKICAgIC0gKG1pYjJjLmNvbmYpOiBpbmNsdWRlIGhlYWRlcnMgZm9yIGNvbXBpbGF0aW9uIGZvciBib3RoIGludGVybmFsIGFuZAogICAgICBleHRlcm5hbCB0byB0aGUgdWNkLXNubXAgc291cmNlLgoKbXNsaWZjYWsgIDQgTm92IDk5IDEwOjE5OjM1CiAgICBSZWRvIEZyZWVCU0QgNC4wOiBkZWZpbmUgZnJlZWJzZDMgaW4gcy9mcmVlYnNkNC5oOyByZWR1Y2UgImRlZmluZSIgdGhyYXNoaW5nLgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjI4OjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogbW92ZSAtcSBmbGFncyB0byAtTy4KCm1zbGlmY2FrICA0IE5vdiA5OSAxMzo0Mzo0MAogICAgU3BlZWQgdXAgc3ByaW50X3ZhcmlhYmxlOiBoYWx2ZSB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGdldF9zeW1ib2wuCgptc2xpZmNhayAgNSBOb3YgOTkgMDY6MjI6NTIKICAgIFNheSBnb29kYnllIHRvIFNOTVBfTUFMTE9DLCBtYWxsb2NfemVybywgeGNhbGxvYywgeG1hbGxvYywgYW5kIHhzdHJkdXAuCiAgICBSZXNwZWN0aXZlbHkgcmVwbGFjZWQgd2l0aCBjYWxsb2MsIGNhbGxvYywgY2FsbG9jLCBtYWxsb2MsIGFuZCBzdHJkdXAuCgpuYmEgIDkgTm92IDk5IDAxOjUwOjA5CiAgICAtIG1pYi5jLHBhcnNlLmM6IG1ha2UgZXJyb3IgcmVwb3J0aW5nIGluIHBhcnNlciB3b3JrIGFjY29yZGluZyB0byBzcGVjICgtUGUpCiAgICAJc2hvdyBkZWZpbmluZyBtb2R1bGVzIGluIHNubXB0cmFuc2xhdGUgLWQKICAgIAl1c2UgZHNfdG9nZ2xlX2Jvb2xlYW4KCm5iYSAgOSBOb3YgOTkgMTI6NTk6NTIKICAgIC0gc25tcHRyYXBkLmMsc25tcHRyYXBkX2hhbmRsZXJzLmM6IG1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysgNS4wCiAgICAJKGJ1dCBubyBoYW5kbGVycyAoeWV0KSkKCmhhcmRha2VyICA5IE5vdiA5OSAxMzowMjoxNwogICAgLSAoc25tcGQuYyk6IGZpeCAtSC4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowMjo0MQogICAgLSAodWNkX3NubXAuaCk6IHJlcXVpcmUgdGhlIERFTU8tTUlCIChqdXN0IGZvciB0dXRvcmlhbCBwdXJwb3NlcykuCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDk6MjEKICAgIC0gKHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6IHNpbXBsZSBuZXcgLmNvbmYgdG9rZW5zOiByb2NvbW11bml0eSwgcndjb21taXR5LgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjA5OjQwCiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIERFTU8tTUlCLgoKbmJhICA5IE5vdiA5OSAxNToxNjowMwogICAgLSB2YXJpb3VzOiBhZGFwdCB0b29scyB0byB1c2UgZ2V0b3B0IChhbmQgcHV0IG9uZSBpbiBmb3IgV2luMzIpCgpuYmEgIDkgTm92IDk5IDIyOjIwOjUyCiAgICAuIHNubXBfcGFyc2VfYXJncy5jOiBhIGdsaXRjaCBpbiB0aGUgY29udmVyc2lvbiB0byBnZXRvcHQgKHRoYW5rcyB0bwogICAgCWRyaWVodWlzQHBsYXliZWluZy5vcmcpCgpuYmEgIDkgTm92IDk5IDIzOjMwOjAzCiAgICAtIGdldG9wdC5oOiBhcmd1bWVudHMgdG8gZ2V0b3B0IGRpZCBub3QgbWF0Y2ggdGhvc2UgaW4gZ2V0b3B0LmMKCm5iYSAxMCBOb3YgOTkgMDg6MzA6MTMKICAgIC0gd2luMzIvKjogZml4ZXMgdG8gdGhlIFZDKysgYnVpbGQgcHJvamVjdHMKCm5iYSAxMCBOb3YgOTkgMDg6MzI6MDAKICAgIC0gd2luMzIvKjogVkMrKyBwcm9qZWN0IHVwZGF0ZXMKCmRhdmVzIDEwIE5vdiA5OSAwODo1NzowMAogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyk6IE9ubHkgc2V0IHVwIHRyYXAgc2lua3Mgb24gdGhlIG1hc3RlciBhZ2VudAoKZGF2ZXMgMTAgTm92IDk5IDA4OjU4OjM4CiAgICAtIChhZ2VudC9hZ2VudF90cmFwLltjaF0pOiBtaW5vciByZS1zdHJ1Y3R1cmUgdG8gYWxsb3cgc3ViYWdlbnQgdHJhcCAic2lua3MiCgpkYXZlcyAxMCBOb3YgOTkgMDg6NTk6NDUKICAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IEFnZW50WCBub3RpZnkgc3VwcG9ydAoKbmJhIDEwIE5vdiA5OSAxMjoyMDo0NwogICAgLSB3aW4zMi8qLmRzcDogeWV0IGFub3RoZXIgcm91bmQgb2YgbWFraW5nIHRoaXMgY3JhcCB3b3JrCgpuYmEgMTAgTm92IDk5IDE1OjI5OjE4CiAgICAtIGFwcHMvKjogY2hhbmdlcyBmb3IgZ2V0b3B0IHVzYWdlLCBhbmQgcmV3b3JraW5nIG9mIHNubXBfcGFyc2VfYXJncwoKbmJhIDEwIE5vdiA5OSAyMjoxMjowOAogICAgLSB3aW4zMi8qOiBjbGVhbiB1cCByZXBvc2l0b3J5IGZpbGVzLCBhbmQgYWRkIHByb3BlciAuY3ZzaWdub3JlIGZpbGVzCgpkYXZlcyAxMSBOb3YgOTkgMDM6Mzc6NTkKICAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFNpbGx5IHR5cG8gaW4gc3RhcnQgdGltZSBzeW5jaHJvbmlzYXRpb24KCm5iYSAxMSBOb3YgOTkgMjI6MTQ6MjcKICAgIC0gc25tcGNtZC4xOiB1cGRhdGUgbWFuIHBhZ2UgdG8gY29ycmVzcG9uZCB0byB0aGUgbmV3IGdldG9wdCBzaXR1YXRpb24KICAgIAlOb3RlOiBldmVuIHRob3VnaCBzb21lIG9wdGlvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGlzCiAgICAJcGFnZSwgdGhleSBzdGlsbCB3b3JrIQoKbmJhIDExIE5vdiA5OSAyMjo1MDowMAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmM6IGFsaWdubWVudCBvZiBvcHRpb24gY29kZS4KICAgIAlTb21lIGVuaGFuY2VtZW50cyB0byB0aGUgc25tcHRyYW5zbGF0ZSAtZCBvdXRwdXQuCgpkYXZlcyAxMiBOb3YgOTkgMDg6NDY6MzMKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFByb3ZpZGUgYSB1bmlxdWUgSUQgZm9yIGFsbCBpbmNvbWluZyBQRFVzCgptYXJ6IDEyIE5vdiA5OSAxMzowMTowOAogICAgIChsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBmaXggZW5naW5ldGltZSB1cGRhdGUgYWxnb3JpdGhtIHRvIGNvbmZvcm0gdG8gc3BlYyByZmMyNTc0IDMuMi43LmIuMQoKbmJhIDE0IE5vdiA5OSAwMTo0ODo1MQogICAgLSBzbm1wdGFibGUsIHNubXBfcGFyc2VfYXJnczogYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIG9wdGlvbnMgdG8KCm5iYSAxNCBOb3YgOTkgMDE6NTE6NTcKICAgIC0gc25tcHRhYmxlOiBhZGQgaW4gdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIHNubXB0YWJsZSBvcHRpb25zIGJldHdlZW4KICAgIAl0aGUgbm9ybWFsIG9wdGlvbnMuCgpuYmEgMTQgTm92IDk5IDAxOjUzOjE2CiAgICAtIHNubXBidWxrZ2V0OiBuZXcgdG9vbCB0byBpc3N1ZSBhIHNpbmdsZSBHRVRCVUxLIHJlcXVlc3QKCm5iYSAxNCBOb3YgOTkgMDE6NTQ6MTcKICAgIC0gc25tcF9wYXJzZV9hcmdzOiBjaGFuZ2VzIHRvIHN1cHBvcnQgbXVsdGktdmFsdWVkIG9wdGlvbnMKCm5iYSAxNCBOb3YgOTkgMDE6NTk6MjAKICAgIC0gbWlicy8qLCB2YWNtX3ZhcnMuaDogdXBkYXRlIHRoZSBtaWIgZmlsZXMgdG8gcmZjIDI1NzEtMjU3NS4gQWxzbyBhZGQKICAgIAlTTk1QX0NPTU1VTklUWV9NSUIgZnJvbSB0aGUgY29leCBkcmFmdC4KCm5iYSAxNCBOb3YgOTkgMDI6MDA6MDAKICAgIC0gdmFjbV92YXJzLmM6IGtpbGwgYSB3YXJuaW5nCgpuYmEgMTQgTm92IDk5IDAyOjAxOjM3CiAgICAtIHBhc3MuYywgc25tcGQuY29uZi41LmRlZjogYWRkIGFuIFVOU0lHTkVEIHJldHVybiB0eXBlCgpuYmEgMTQgTm92IDk5IDAyOjA0OjQ2CiAgICAtIG1pYi5jLCBzbm1wdHJhbnNsYXRlLmM6IG1vdmUgdGhlIE1JQjppZCBoYW5kbGluZyBpbnNpZGUgcmVhZF9vYmppZCBmb3IKICAgIAljb25zaXN0ZW5jeS4gQWxzbyBmaXhlcyBhIGJ1ZmZlciBvdmVycnVuIGluIG1pYi5jCgpuYmEgMTQgTm92IDk5IDAyOjQyOjM4CiAgICAtIFNOTVB2Mi1DT05GLnR4dDogY29tbWVudCBvdXQgdGhlIElNUE9SVCBjbGF1c2UKCm5iYSAxNCBOb3YgOTkgMDY6MTI6MDMKICAgIC0gc25tcHRyYXBkLmM6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CgpuYmEgMTQgTm92IDk5IDA2OjE1OjAxCiAgICAtIHNubXB0cmFwZC44OiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAoKbmJhIDE0IE5vdiA5OSAwNjozMjoyNQogICAgLSBpcGM2OiBBZGQgdGhlIElQdjYgY29kZSBmcm9tIHRoZSBLYW1lIHByb2plY3QuIEkgaGF2ZSBvbmx5IG1hc3NhZ2VkCiAgICAJaXQgc28gbXVjaCBhcyB0byBzdGlsbCBjb21waWxlIG9uIG5vbi1JUHY2IHN5c3RlbXMsIGFuZCBkZXRlY3QKICAgIAlMaW51eCwgSU5SSUEsIFNvbGFyaXMgSVB2Ni4gTm8gY29kZSBmb3IgdGhlbSB5ZXQuIE9yaWdpbmFsCiAgICAJYXV0aG9yOiBpdG9qdW5AaWlqbGFiLm5ldAoKZGF2ZXMgMTUgTm92IDk5IDA3OjU2OjA2CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBoYW5kbGluZyBvZiBmYWlsZWQgR0VUL1NFVCByZXF1ZXN0cwoKbXNsaWZjYWsgMTUgTm92IDk5IDA4OjI5OjA2CiAgICBGaXggZGVzY3JpcHRpb24gb2YgcmVhZF9vYmppZCByZXR1cm4gdmFsdWUuCgpuYmEgMTUgTm92IDk5IDE0OjAwOjIwCiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiBmdXJ0aGVyIGVycm9yIGNoZWNraW5nLCBjb3VydGVzeSBtc2xpZmNhawogICAgICBzbm1wYnVsa2dldC5jOiBuZWVkcyAjaW5jbHVkZSA8Z2V0b3B0Lmg+IChUaGFua3MgdG8gUm9iZXJ0IFN0b3J5KQoKbmJhIDE1IE5vdiA5OSAxNDowMzozNgogICAgLSBtaWJzLzogcmVwbGFjZSBSRkMxMjcxLU1JTi50eHQgd2l0aCBSTU9OLU1JQi50eHQgKFJGQyAxNzU3IHZlcnNpb24pCgpuYmEgMTUgTm92IDk5IDE0OjA1OjU3CiAgICAtIHBhcnNlLmM6IGZpeCBhIHNwZWxsaW5nIGVycm9yIGluIHRoZSBNSUIgcmVwbGFjZW1lbnQgdGFibGUuCgpuYmEgMTUgTm92IDk5IDE0OjA5OjI5CiAgICAtIC5jdnNpZ25vcmU6IHVwZGF0ZXMgdG8ga2VlcCBjdnMgc2lsZW50IGFib3V0IGdlbmVyYXRlZCBmaWxlcy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxODo0NgogICAgLSAoRkFRLCBSRUFETUUpOiBuZXcgbWlycm9yIGluIEF1c3RyYWxpYS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxOToyMgogICAgLSAobWliX21vZHVsZXMuYywgc25tcF92YXJzLmMpOiBtb3ZlIHN1YmFnZW50X3ByZV9pbml0KCkgdG8gaW5pdF9hZ2VudCgpLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjE5OjQ3CiAgICAtIChUT0RPKTogbWVtb3J5IGludCAtPiB1aW50LgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIwOjEwCiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogc2V0IHRvICdcMCcgaW5zdGVhZCBvZiBOVUxMIGZvciAtV2FsbC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMTowNwogICAgLSAobWliMmMsIHRrbWliKTogcmVtb3ZlIC13LgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIxOjI4CiAgICAtIChzbm1wX2FnZW50X2FwaS4zKTogZG9uJ3QgY2FsbCBzdWJhZ2VudF9wcmVfaW5pdCgpLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIxOjU3CiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBpbnNlcnRlZC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMjoyNAogICAgLSAoYXNuMS5jLCBhc24xLmgpOiBuZXcgZnVuY3Rpb246IGFzbl9jaGVja19wYWNrZXQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNTozNjoyNgogICAgLSAoc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jKToKICAgICAgLSBhZGQgZGVmYXVsdF9zdG9yZS5oCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6Mzg6MjUKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNTo0MTozOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCiAgICAgIC0gaW1wbGVtZW50IHN1cHBvcnQgZm9yIFRDUCBicm9rZW4gU05NUCBwYWNrZXRzIGJ5IHN0b3JpbmcgYnVmZmVycwogICAgICAgIGFuZCBkZWFsaW5nIHdpdGggcGllY2VzIG9mIGluY29taW5nIGRhdGEgdGlsbCB3ZSBoYXZlIGEgZnVsbCBwYWNrZXQuCgptc2xpZmNhayAxNSBOb3YgOTkgMTY6NDM6MjUKICAgIERvbid0IGFkZCBOVUxMIHZhcmJpbmQgd2hlbiBFTkRPRk1JQlZJRVcgaXMgcmVhY2hlZC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNzo0MToxMAogICAgLSAoc25tcF9hZ2VudC5jLCBtYXN0ZXIuYywgcHJvdG9jb2wuYywgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYywKICAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbWFrZSBUQ1Agc3VwcG9ydCBiZXR0ZXIgZm9yIGFnZW50eC4gIFN0aWxsIGhhcyBhIHByb2JsZW0gKEkgYnJva2UgYWdlbnR4KS4KCm1zbGlmY2FrIDE1IE5vdiA5OSAyMTo1NzozNgogICAgRml4IGJ1ZyM3NTogYnVpbGQgLS13aXRob3V0LW9wYXF1ZS10eXBlcwoKbXNsaWZjYWsgMTYgTm92IDk5IDAzOjM2OjA5CiAgICBGaXggc3BlbGxpbmcgbWlzdGVhay4KCm5iYSAxNiBOb3YgOTkgMDY6MjE6MjUKICAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmM6IHJlZG8gdGhlIHNubXB0cmFuc2xhdGUgb3B0aW9ucwogICAgCXRvIGZvbGxvdyB0aGUgY29tbW9uIG9wdGlvbiBzZXQuIElzc3VlIHdhcm5pbmdzIHdoZW4gc29tZW9uZQogICAgCXVzZXMgdGhlIG9sZCBmb3JtLCBhZHZpc2luZyBhYm91dCB0aGUgbmV3LgoKbXNsaWZjYWsgMTYgTm92IDk5IDA4OjQ4OjMxCiAgICBFbWJyYWNlIGFsbCBIUC05MDAwLzZ4eCw3eHgsIDh4eCBzZXJpZXMgcGxhdGZvcm1zLCB3aXRob3V0IHJlZ3JldHMuCgpkYXZlcyAxNiBOb3YgOTkgMDk6MTM6NTkKICAgIC0gKHNubXBsaWIvYXNuMS5jKTogRml4IGVuY29kaW5nIG9mIHJvb3QgT0lEcy4KCmhhcmRha2VyIDE2IE5vdiA5OSAxMDoyNDo1OQogICAgLSAocHJvdG9jb2wuYyk6IGFkZCB0aGUgaGVhZGVyIGxlbmd0aCB0byB0aGUgcGFja2V0IGxlbmd0aCBlc3RpbWF0ZS4KCmhhcmRha2VyIDE2IE5vdiA5OSAxMDoyNjowMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgdGhlIFQ6IGZsYWcgZm9yIC1UIHRvIGdldG9wdAoKbXNsaWZjYWsgMTYgTm92IDk5IDE0OjQxOjUwCiAgICBNU1ZDIHRvdWNodXBzOgogICAgQWRkZWQgc25tcHRyYXBkIHByb2plY3QgLkRTUCBmaWxlOyBBbGwgLkRTW1BXXSBmaWxlcyBDUi1MRiBsaW5lIHRlcm1pbmF0ZWQ7CiAgICBGaXggd2FybmluZ3MgaW4gYXNuMS5jIGFuZCBzbm1wX2FwaS5jOyBSZW1vdmUgdW51c2VkIHZhciBpbiBzbm1wdHJhbnNsYXRlLmMuCgptc2xpZmNhayAxNiBOb3YgOTkgMTQ6NTY6NTkKICAgIEJ1aWxkIHdpdGggZ2V0b3B0LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA1OjU5OjE1CiAgICBSZXBsYWNlIHVfaW50MTZfdCB3aXRoIG1vcmUgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIHVfc2hvcnQuCgptc2xpZmNhayAxNyBOb3YgOTkgMDc6MzU6MDMKICAgIFByb2plY3QgZmlsZSBmb3IgYnVpbGRpbmcgc25tcGJ1bGtnZXQgdXNpbmcgTVNWQysrIGdyYXRpcyBSb2JlcnQgU3RvcnkuCgptc2xpZmNhayAxNyBOb3YgOTkgMDc6MzY6NTgKICAgIEFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcHMgdG8gYnVpbGQuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTE6NTU6NDEKICAgIC0gKGRzX2FnZW50LmgsIGtlcm5lbC5jLCBzbm1wZC5jLCBzbm1wZC4xLmRlZik6CiAgICAgIC0gcnVuIHRpbWUgcm9vdGxlc3MgcnVubmluZyBzdXBwb3J0IGZvciBzbm1wZCwgYnkgcmVxZXN0IG9mIEpvZS4gKC1yKQoKaGFyZGFrZXIgMTcgTm92IDk5IDEyOjIxOjI2CiAgICAtIChzbm1wdG9zcWwpOgogICAgICAtIG1vdmUgdG8gTmV0OjpTTVRQLgogICAgICAtIE1ha2UgbmV3IGF1dGhncm91cCBhbmQgYXV0aGhvc3QgdGFibGVzIHRvIGNvbnRhaW4gU05NUDo6U2Vzc2lvbiBkZWZhdWx0cy4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMzowNTowMAogICAgLSAoY29uZmlndXJlLmluKTogdXBkYXRlIHRoZSBzbyBMRCBmb3IgbGludXggdG8gJChDQykuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDg6MTcKICAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMzowOToxNAogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogdXBkYXRlLiAgRGVhbHMgd2l0aCBSb3dTdGF0dXMgb2JqZWN0cyBiZXR0ZXIuCgpuYmEgMTcgTm92IDk5IDIxOjUxOjE5CiAgICAtIGRlZmF1bHRfc3RvcmUuYzogZHNfdG9nZ2xlX2Jvb2xlYW4gbWlzc2VkIGEgbWFzawoKbXNsaWZjYWsgMTggTm92IDk5IDE3OjU4OjQ3CiAgICBDaGVjay1pbiBhZ2VudCBjaGFuZ2VzIHRvIHN1cHBvcnQgV2luMzIgYWdlbnQgYnVpbHQgd2l0aCBNU1ZDKysuCiAgICBUaGFua3MgdG8gUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMTggTm92IDk5IDE4OjE0OjU4CiAgICBNb3JlIHRvdWNodXAgcGVyIE1TVkMrKyBXaW4zMiBhZ2VudCB3b3JrLgoKbXNsaWZjYWsgMTggTm92IDk5IDE4OjIwOjQ1CiAgICBNb3JlIE1TVkMrKyBXaW4zMiBhZ2VudCBmaWxlcywgZ3JhdGlzIFJvYmVydCBTdG9yeS4KCmRhdmVzIDE5IE5vdiA5OSAxMTowNjoyNgogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IFByb3ZpZGUgbWlzc2luZyBpbmRleCBhbGxvY2F0aW9uIGRlZmluZXMuCgpoYXJkYWtlciAxOSBOb3YgOTkgMTM6NDc6MDEKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGZpeCBtaWIyYy5zdG9yYWdlLmNvbmYuCgpoYXJkYWtlciAxOSBOb3YgOTkgMTQ6MjA6MjUKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIG1ha2Ugc25tcF9zZWxlY3RfaW5mbyBwb3NzaWJseSBoYW5kbGUgYWxhcm0gdGltZXJzLgogICAgICAtIG1ha2Ugc25tcGQgdXNlIHRoZW0gYW5kIGNhbGwgc25tcF9ydW5fYWxhcm1zKCkuCgpoYXJkYWtlciAxOSBOb3YgOTkgMTU6MjQ6MTUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgICBkaXNrLmMsIGRpc2suaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgICAtIG1vbml0b3IgZGlzayBpbm9kZSBwZXJjZW50YWdlcy4KCm5iYSAyMiBOb3YgOTkgMDU6Mjc6MTUKICAgIC0gY29uZmlndXJlLmluOiBjb25maWd1cmUgdGVzdCBmb3IgbmV0aW5ldC9pcC5oCgpuYmEgMjIgTm92IDk5IDA1OjI4OjA5CiAgICAgc25tcF9sb2dnaW5nLmM6IG9ubHkgdGltZXN0YW1wIGVmdGVyIGEgbmV3bGluZQoKbmJhIDIyIE5vdiA5OSAwNToyODo0NQogICAgLSBzbm1wZC5jOiByZWluc3RhdGUgc25tcGQgLWEgZnVuY3Rpb25hbGl0eQoKbmJhIDIyIE5vdiA5OSAwNToyOTozNwogICAgLSBwYXNzLmM6IHJlbW92ZSBhIGNvbnN0IGNhc3Rpbmcgd2FybmluZwoKbmJhIDIyIE5vdiA5OSAwNTozMjowNQogICAgLSBJUFY2LVRDUC1NSUIsIElQVjYtVURQLU1JQiwgaXB2Ni5jLCB0Y3AuYzogbW92ZSB0aGUgSVB2NiB0Y3AgYW5kIHVkcAogICAgCXRhYmxlcyB0byB0aGVpciBwcm9wZXIgcG9zaXRpb24gaW4gdGhlIHRyZWUsIGFjY29yZGluZyB0byB0aGUgUkZDLgoKbmJhIDIyIE5vdiA5OSAwNjo1OTo0NgogICAgLSBpcHY2LmM6IHVwZ3JhZGUgdG8gdGhlIGN1cnJlbnQgS2FtZSBwYXRjaAoKbmJhIDIyIE5vdiA5OSAwNzoxNjo1OQogICAgLSBpcHY2LmM6IHNvbWUgbW9yZSBBTlNJIHByb3RvdHlwZXMKCmRhdmVzIDIyIE5vdiA5OSAwNzozMDowNgogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgSW5kZXggZGUtYWxsb2NhdGlvbiwgYW5kIEFnZW50WCBpbmRleCBzdXBwb3J0LgoKbXNsaWZjYWsgMjIgTm92IDk5IDA4OjIwOjI5CiAgICBSZXRyeSBhZGQgTVNWQysrIHByb2plY3QgZmlsZS4KCm1zbGlmY2FrIDIyIE5vdiA5OSAwODoyMTo1OAogICAgQWRkIENWUyBpZ25vcmUgbGlzdCBmb3Igd2luMzIvbGliYWdlbnQuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDg6Mjk6MzMKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgIC0gQWRkZWQgYWJpbGl0eSB0byB1c2UgTUlCIHRvIHF1ZXJ5IHRhYmxlcyB3aXRoIG5vbi1zZXF1ZW50aWFsIGNvbHVtbiBPSURzLgogICAgICAtIEFkZGVkIGNvZGUgdG8gaGFuZGxlIHNwYXJzZSB0YWJsZXMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MDA6NDUKICAgIC0gKHVzbVVzZXIuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucyBwb2ludGVkIG91dCBieSBNaWNoYWVsIFNsaWZjYWsuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MDc6MzQKICAgIC0gKFJFQURNRSk6IGFkZGVkIG1vcmUgcGVvcGxlIHRvIHRoZSB0aGFua3MgbGlzdC4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOToxODoxNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhvc3RfcmVzLmgsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAgLSBic2RpIHN1cHBvcnQgZm9yIHRoZSBob3N0IHJlc291cmNlcyBtaWIuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MjQ6NTEKICAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSB0ZXN0cyBmb3IgbmV3CiAgICAgIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDEyOjMwOjA1CiAgICAtICh2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiB1c2UgaGVhZGVyX2dlbmVyaWMgbm90IGhlYWRlcl9zaW1wbGVfdGFibGUKCmhhcmRha2VyIDIyIE5vdiA5OSAxMjo0OToyMQogICAgLSAodmFjbV92YXJzLmMsIHBhc3MuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucy4KCm5iYSAyMiBOb3YgOTkgMTI6NTQ6MDgKICAgIC0gKjogY2hhbmdlIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgY29uZmlnIHBhcnNlciBmdW5jdGlvbnMgdG8gYQogICAgCWNvbnN0IHN0cmluZwoKaGFyZGFrZXIgMjIgTm92IDk5IDEzOjA1OjA1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHRjcC5jKTogUGF0Y2gKICAgICAgZnJvbSBHYXJyZXR0IFdvbGxtYW46CiAgICAgIC0gRnJlZUJTRCA0LnggZml4ZXMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTY6NDg6NTQKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlIGNyZWF0aW9uIG9mIGluaXRpYWwgYW5kIHRlbXBsYXRlKiB1c2Vycy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNjo1MDoyNQogICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYyk6IG5ldyBjb25maWcgdG9rZW5zIGFsbG93aW5nIGVhc3kgdXNlciBhbmQKICAgICAgdmFjbS91c2VyIGNvbmZpZ3VyYXRpb24gYW5kIHNldHVwLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE3OjAyOjExCiAgICAtIChzY2FwaS5jKTogZml4IGxlbmd0aCBjaGVjayBvZiBrZXkgc3BhY2UuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTc6NTI6MzYKICAgIC0gKFJFQURNRS5zbm1wdjMpOiB1cGRhdGUgdG8gcmVmbGVjdCBuZXcgYW5kIGVhc2llciAuY29uZiBtZWNoYW5pc21zLgoKbmJhIDIzIE5vdiA5OSAwMToyMzoxNgogICAgLSBpcHY2Lmg6IHJlbW92ZSBhbiBfX1AgdGhhdCBoYWQgc25lYWtlZCBpbgoKbmJhIDIzIE5vdiA5OSAwMToyNDozNwogICAgLSBJUFNFQy1NSUIudHh0OiBjaGFuZ2Ugc29tZSB1bmRlcmxpbmVzIGludG8gZGFzaGVzLCBhbmQgcmVwYWlyIHRoZQogICAgCTo6PSAobWF5YmUgSSBzaG91bGQgaGF2ZSBsb29rZWQgYXQgdGhpcyBmaWxlIGJlZm9yZSBhZGRpbmcgaXQgOi0pKQoKbmJhIDIzIE5vdiA5OSAwMToyNjoyNgogICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYXJndW1lbnRzIChpbnQgPT4gc2l6ZV90KS4gVGhhbmtzIHRvCiAgICAJQW50aG9ueSBTaGlwbWFuIDxhc2hpcG1hbkBlcmdncm91cC5jb20+CgpkYXZlcyAyMyBOb3YgOTkgMDE6Mzc6MjkKICAgIC0gKGhvc3QvaHJfc3dydW4uYyk6IEZpeCBsaW51eCBwcm9jZXNzIG1lbW9yeSB1c2FnZSBmaWd1cmVzLgogICAgCShSZXBvcnRlZCBieSBNaXRjaCBTaGllbGRzKQoKZGF2ZXMgMjMgTm92IDk5IDAyOjExOjQzCiAgICAtIChob3N0L2hyX3N0b3JhZ2UuYyBob3N0L2hyX3N3cnVuLmMpOiBHdWFyZCBhZ2FpbnN0IGNhbGN1bGF0aW9uIG92ZXJmbG93CgpuYmEgMjMgTm92IDk5IDAyOjIwOjEzCiAgICAtIHNubXBfYWdlbnQuYzogI2luY2x1ZGUgPHVuaXN0ZC5oPiBmb3Igc2VsZWN0IHByb3RvdHlwZQoKZGF2ZXMgMjMgTm92IDk5IDA1OjIxOjU4CiAgICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAgTWFrZSBtYWluIHNlc3Npb24gc3RydWN0dXJlIHZpc2libGUgdGhyb3VnaG91dCB0aGUgYWdlbnQsCiAgICAgICBhbmQgdXNlIHRoaXMgZm9yIEFnZW50WCBzdWJhZ2VudCBhcyB3ZWxsLgoKZGF2ZXMgMjMgTm92IDk5IDA1OjQwOjA5CiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAgLSBNYWtlIGluZGV4IHJlZ2lzdHJhdGlvbiBBUEkgbW9yZSBpbW1lZGlhdGVseSBjb252ZW5pZW50CiAgICAgIC0gQXNzb2NpYXRlIHN1Y2ggcmVnaXN0cmF0aW9ucyB3aXRoIHRoZSBtYWluIHNlc3Npb24KICAgICAgLSBuZXcgcm91dGluZSB0byB1bnJlZ2lzdGVyIGFsbCBpbmRleGVzIGZvciBhIGdpdmVuIHNlc3Npb24KICAgICAgLSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gQU5ZIGluZGV4IGFuZCBORVcgaW5kZXgKICAgICAgLSBjbGVhbiB1cCBhc3NvcnRlZCBjb21waWxlciB3YXJuaW5ncwoKaGFyZGFrZXIgMjMgTm92IDk5IDE3OjUxOjQ0CiAgICAtIChzbm1wdG9zcWwpOiBmaXggZnJvbSBhZGRyZXNzIGxpbmUsIG90aGVyIG1pc2MgZml4ZXMuCgpkYXZlcyAyNCBOb3YgOTkgMDk6MDM6MDAKICAgIC0gKGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFJlbGVhc2UgYWxsb2NhdGVkIGluZGV4ZXMgb24gc3ViYWdlbnQgc2h1dGRvd24uCgpoYXJkYWtlciAyNCBOb3YgOTkgMDk6MDk6MDgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXNtVXNlci5jLAogICAgICBrZXl0b29scy5jLCBrZXl0b29scy5oLCBsY2RfdGltZS5jLCBzY2FwaS5oLCB0b29scy5jLAogICAgICBrZXltYW5hZ2V0ZXN0LmMsIHNjYXBpdGVzdC5jLCBjb25maWcuaCk6CiAgICAgIC0gZm9yY2UgLS1lbmFibGUtZGV2ZWxvcGVyIGZvciBDVlMgY2hlY2tvdXRzLgogICAgICAtIHJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBLTVQuCgpoYXJkYWtlciAyNCBOb3YgOTkgMDk6MTY6MDIKICAgIC0gKElOU1RBTEwpOiBjaGFuZ2UgZWRpdGluZyBvZiBjb25maWcuaCBub3RlLgoKaGFyZGFrZXIgMjQgTm92IDk5IDEwOjQzOjA4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAgLSBhbGxvdyBzZXBlcmF0aW9uIG9mIG1hc2sgd2l0aCBib3RoIC4gYW5kIDouCgptc2xpZmNhayAyNCBOb3YgOTkgMTE6MDc6MDUKICAgIEZpeCBCVUcjNTcgdXNpbmcgbW9kaWZpZWQgcGF0Y2ggc3VwcGxpZWQgYnkgemFueUB0cmlxLm5ldC4KCm1zbGlmY2FrIDI0IE5vdiA5OSAxMTowNzo0OQogICAgRml4IEJVRyM1NyB1c2luZyAyLzMgb2YgcGF0Y2ggc3VwcGxpZWQgYnkgemFueUB0cmlxLm5ldC4KCm5iYSAyNSBOb3YgOTkgMTQ6MzI6NDcKICAgIC0gc25tcF9hcGkuYywgYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsIHNubXBfbWliLmgsIHNubXBfbWliLmM6CiAgICAJZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCgpuYmEgMjUgTm92IDk5IDE0OjMzOjE1CiAgICAtIHNubXBfbWliLmg6IGZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwoKbmJhIDI1IE5vdiA5OSAxNDo1Mjo1NwogICAgLSB1c21Vc2VyLmM6IG5ldyB1c2VyIGlzIG5vdCBhZGRlZCB1bmxlc3MgYm90aCBhdXRoIGFuZCBwcml2IGlzIHNwZWNpZmllZAogICAgCW9uIGNyZWF0ZVVzZXIgZGlyZWN0aXZlCgpuYmEgMjUgTm92IDk5IDE0OjU2OjEyCiAgICAtIGRlZmF1bHRzX3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfcGFyc2VfYXJncy5jOiBhZGQgZGVmQ29tbXVuaXR5CiAgICAJZGlyZWN0aXZlCiAgICAtIHNubXBfYXBpLmgsIHNubXBfYXBpLmM6IGFkZCBlcnJvcmNvZGUgZm9yIG1hbGxvYyBmYWlsdXJlCgpuYmEgMjUgTm92IDk5IDE0OjU3OjU3CiAgICAtIG1pYi5jOiBraWxsIHlldCBhbm90aGVyIHNpbGx5IHdhcm5pbmcgZnJvbSBnY2MKCm5iYSAyNiBOb3YgOTkgMTE6MTg6MjMKICAgIC0gZGVmYXVsdF9zdG9yZS5jOiBhbHRob3VnaCByZWFkX2NvbmZpZyBpcyBjYXNlIGluc2Vuc2l0aXZlLCBkc19oYW5kbGVfY29uZmlnCiAgICAJd2FzIG5vdC4gQXQgdGhlIHNhbWUgdGltZSBpdCBmYWlsZWQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRoYXQKICAgIAlpdCB3YXMgY2FsbGVkIGJ1dCBkaWRuJ3Qga25vdyB3aGF0IHRvIGRvLgoKbWFyeiAyNyBOb3YgOTkgMDY6MzE6MTEKICAgICAoYWdlbnQva2VybmVsLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGZpeCAtciBzd2l0Y2ggdG8gc3VwcmVzcyBlcnJvciBtZXNzYWdlcyBhYm91dCBmYWlsZWQga2VybmVsIGFuZCBhZGQgLXIgdG8gZGVmYXVsdCB0ZXN0aW5nIGNvZGUgc28gJ21ha2UgdGVzdCBjYW4gYmUgcnVuIGJ5IHVzZXIKCmhhcmRha2VyIDI3IE5vdiA5OSAwOToxODoxNQogICAgLSAodmFjbV92YXJzLmMpOiByZWRvIHJ3dXNlci9yb3VzZXIgdG8gYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBhdXRoIHR5cGUuCgptc2xpZmNhayAyOSBOb3YgOTkgMDU6NTA6MjcKICAgIE1vcmUgSFAtVVggYUNDIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4uCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzA6NTEKICAgIFVzZSBudG9ocyBtYWNybyB0byBjYXJlZnVsbHkgb2J0YWluIHRoZSBkZWZhdWx0IHNlcnZpY2UgcG9ydC4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozMzo0NQogICAgRml4IHJlZmVyZW5jZSB0byBzbm1wbGliLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjM2OjQzCiAgICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBERUJVR19NQUxMT0NfSU5DIGZyYWdtZW50cy4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMTo1ODozNwogICAgRnJlZSBTVFJFQU0gcGFja2V0IGJ1ZmZlciB3aGVuIHNlc3Npb24gaXMgY2xvc2VkOwogICAgVGVzdCBmb3IgY2xvc2UgaW4gcHJvZ3Jlc3MgZm9yIHJlYWQsIHdyaXRlLCBzZWxlY3QsIGFuZCB0aW1lb3V0IGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMjo0MzozNAogICAgVXNlIHNpemVfdCBmb3IgbmFtZV9sZW4gbWVtYmVyLgoKaGFyZGFrZXIgMjkgTm92IDk5IDE0OjAyOjA4CiAgICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBpbXBsZW1lbnQgc3RyY2FzZXN0ciAoZnJvbSBNaWNoYWVsIFNsaWZjYWspLgoKaGFyZGFrZXIgMjkgTm92IDk5IDE0OjAyOjUwCiAgICAtIChwYXJzZS5jKTogbWFrZSBiZXN0IG1hdGNoaW5nICgtYikgdXNlIHJlZ2V4IHdoZW4gYXZhaWxhYmxlLgoKaGFyZGFrZXIgMjkgTm92IDk5IDE0OjAzOjQ5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIGZvciByZWdleC5oLCByZWdjb21wLCBzdHJjYXNlc3RyLgoKaGFyZGFrZXIgMjkgTm92IDk5IDE0OjA0OjA5CiAgICAtIChSRUFETUUpOiBhbm90aGVyIG5hbWUuCgpuYmEgMzAgTm92IDk5IDAzOjAxOjM0CiAgICAtIHNubXBfYXBpLmgsIHNubXBfbWliLltjaF06IEEgY291cGxlIGFkZGl0aW9uYWwgU05NUCBzdGF0aXN0aWNzIHBvaW50cwoKZGF2ZXMgMzAgTm92IDk5IDA3OjA3OjAxCiAgICAtIChhZ2VudHgvbWFzdGVyLmMpOiBSZW1vdmUgcmVkdW5kZW50IHJvdXRpbmUuCgpkYXZlcyAzMCBOb3YgOTkgMDc6MDg6NDMKICAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGhhbmRsaW5nIG9mIG11bHRpLXZhcmlhYmxlIHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxMzoxMDo0MAogICAgRml4IC1UZCB1c2FnZSBkZXNjcmlwdGlvbjsgdXNlIHN3aXRjaCB3aGVuIGN1cnJlbnRfbmFtZSBpcyBOVUxMLgoKbXNsaWZjYWsgMzAgTm92IDk5IDEzOjExOjE0CiAgICBJbmNsdWRlIGN0eXBlLmgKCmhhcmRha2VyIDMwIE5vdiA5OSAxNDozMDozMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYyk6IGltcGxlbWVudCByZWdleCBtYXRjaGluZwogICAgICBldmVyeXdoZXJlLgoKbXNsaWZjYWsgMzAgTm92IDk5IDE0OjQ3OjM2CiAgICBVc2UgV2VzJyBjb29sIG5ldyBnZXRfd2lsZF9ub2RlIG1hdGNoIG1ldGhvZC4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxNjo1MDo0MQogICAgQWRkIG11bHRpcGxlIG1hdGNoIGNhcGFiaWxpdHkgdG8gZmluZF9iZXN0X3RyZWVfbm9kZSwgYW5kIHVzZSBpdCBpbgogICAgc25tcHRyYW5zbGF0ZSAobmV3IC1CIG9wdGlvbikuCgptc2xpZmNhayAgMSBEZWMgOTkgMDY6NDA6MDcKICAgIEVycm9yIGNoZWNrIGFuZCBmcmVlIHJlc291cmNlcyBkdXJpbmcgcmVnZXggcHJvY2Vzc2luZy4KCm1zbGlmY2FrICAxIERlYyA5OSAxMDozODoxOAogICAgUHJldmVudCBvdmVyZmxvdyBvZiBvYmplY3QgSUQgaW4gZ2V0X21vZHVsZV9ub2RlLgogICAgSW4gZmluZF9iZXN0X3RyZWVfbm9kZSwgdHJlYXQgcmVzdWx0IGZyb20gcmVjdXJzZWQgY2FsbCBzYW1lIGZvciBtYXRjaCA9IDAuCgptc2xpZmNhayAgMSBEZWMgOTkgMTU6NTU6NTYKICAgIEZpeCBidWcgIzExMiBhbmQgZmluaXNoIHBhdGNoIHN1cHBsaWVkIGJ5IEFudGhvbnkgU2hpcG1hbi4KCm1zbGlmY2FrICAxIERlYyA5OSAxNjozMjoxNAogICAgVXNlIFNOTVBfTUFYQlVGIHdoZW4gZGVmaW5pbmcgbGFyZ2Ugc3RhdGljIGJ1ZmZlciBzdG9yYWdlLgoKbmJhICAyIERlYyA5OSAwNDo0MTo1NQogICAgLSBtaWIuYzogYWNjZXNzaW5nIGFuZCBmcmVlZWluZyBlbnZfdmFyIG1pc3BsYWNlcyBhcm91bmQgTlVMTCB0ZXN0CgpuYmEgIDIgRGVjIDk5IDA0OjQyOjU3CiAgICAtIHNubXB0cmFwZC5jOiBmaXggc25tcF9jbG9uZV9wZHUyIGJ5IHVzaW5nIHRoZSBzbm1wbGliIHZlcnNpb24KCm5iYSAgMiBEZWMgOTkgMDU6MDY6NTUKICAgIC0gdXNtVXNlci5jIHNubXB2My5bY2hdOiBtb3ZlIHVzbV9wYXJzZV9jcmVhdGVfdXNtVXNlciBmcm9tIHRoZSBhZ2VudAogICAgIAl0byB0aGUgbGlicmFyeSwgc28gdGhhdCBzbm1wdHJhcGQgY2FuIHVzZSBpdC4KCm1zbGlmY2FrICAyIERlYyA5OSAwOToyMTo0NQogICAgRml4IGJ1ZyAjODEgLSBjb250aW51ZSBpbnN0YWxsIGFmdGVyIGVycm9yIGNyZWF0aW5nIHBlcnNpc3RlbnQgZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDIgRGVjIDk5IDE2OjU5OjU1CiAgICAtIChwYXJzZS5jKTogdHVybiBvbiBSRUdFWF9FWFRFTkRFRC4KCm5iYSAgMyBEZWMgOTkgMTU6MDM6NDgKICAgIC0gc25tcHRyYXBkLmM6IGNvcnJlY3QgaGFuZGxpbmcgb2YgU0lHSFVQIHRwIHJlY29uZmlndXJlLgoKbmJhICAzIERlYyA5OSAxNTowNDoxNgogICAgLSBzbm1wdHJhcGRfaGFuZGxlcnMuYzogYSBsaXR0bGUgbmljZXIgZXJyb3IgbWVzc2FnZQoKbmJhICAzIERlYyA5OSAxNTowNToxMwogICAgLSBwYXJzZS5jOiByZW1lbWJlciB0byBOVUxMIGEgZnJlZWQgcG9pbnRlcgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUxOjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHN3aXRjaCB0byBQSUMgZnJvbSBwaWMuCgpoYXJkYWtlciAgMyBEZWMgOTkgMTY6NTI6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogdXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlLgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUyOjUxCiAgICAtICh2bXN0YXQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgbGltaXRzLmggaW5jbHVkZS4KCm5iYSAgNSBEZWMgOTkgMjE6NDk6NTAKICAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZW5zdXJlIHByb3BlciBieXRlIG9yZGVyaW5nIHdoZW4gcGFzcydpbmcKICAgIAlpcGFkZHJlc3MuCgptc2xpZmNhayAgNiBEZWMgOTkgMDk6MTk6MDgKICAgIFNob3cgYWxsIG5vbi1wcmludGFibGUgc3ViaWRzIGluIGR1bXBfb2lkX3RvX3N0cmluZy4KICAgIFJlY3Vyc2UgY2xlYXJfdHJlZV9mbGFncyBvbmx5IGlmIG5lY2Vzc2FyeS4KCmhhcmRha2VyICA2IERlYyA5OSAxMzo0Nzo0MQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBkZWZhdWx0IHNwZWNpZmljYXRpb25zIGZvciBhdXRoL3ByaXYgdHlwZXMuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTM6NTE6MzQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcHJpbnQgZXJyb3Igc3RyaW5ncyByZXR1cm5lZCBieSBnZW5lcmF0ZV9LdSgpLgoKbmJhICA2IERlYyA5OSAxNDozMjoyMgogICAgLSAuY3ZzaWdub3JlOiBNYWtlIENWUyBzaWxlbnQgYWJvdXQgaW5zdGFsbGF0aW9uIGZpbGVzCgpoYXJkYWtlciAgNiBEZWMgOTkgMTQ6NDg6MDgKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gbWFrZSBzbm1wdXNtIHVzYWJsZSBhZ2FpbiwgY2hhbmdpbmcgYXJndW1lbnRzIHNsaWdodGx5LgogICAgICAtIG1ha2UgaXQgYWxzbyB1c2UgZGVmYXVsdHMgZm9yIHBhc3NwaHJhc2VzLCB1c2VyLCBldGMuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTQ6NTY6MjEKICAgIC0gKFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6IG1ha2UgdjMgdGVzdGluZyB3b3JrIGFnYWluLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjU4OjI4CiAgICAtIChzbm1wdXNtLmMpOiBmaXggdXNhZ2UgZm9yIG5ldyBhcmdzLgoKbXNsaWZjYWsgIDYgRGVjIDk5IDE1OjA5OjUzCiAgICBDb252ZXJ0IFVTTV9FUlIqIHRvIFNOTVBFUlJfVVNNKi4KCm5iYSAgNiBEZWMgOTkgMTU6MTM6MjEKICAgIC0gc3lzdGVtLmMsIGNvbmZpZy5oLCB3aW4zMi5kc3csICouZHNwLCBsaWJzbm1wLmRlZjogY2xlYW5pbmcgdXAgZm9yIFZDIGJ1aWxkcwoKbXNsaWZjYWsgIDYgRGVjIDk5IDE2OjMxOjI2CiAgICBNb3JlIGZ1biB1cGRhdGluZyBNUyBWQyBidWlsZCBvZiBhcHBzIGFuZCBsaWJyYXJ5LgoKbXNsaWZjYWsgIDcgRGVjIDk5IDA4OjAzOjA2CiAgICBVc2UgYXJndlswXSBzaW5jZSB0aGUgYXBwIHdvbnQgYmUgc25tcGdldG5leHQsIHByb2JhYmx5LgoKZGF2ZXMgIDcgRGVjIDk5IDA4OjI5OjU1CiAgICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdIGFnZW50L3NubXBkLltjaF0KICAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuW2NoXSBzbm1wbGliL3NubXBfYXBpLmMpOgogICAgICAgLSAgVXNlIHRoZSBzYXZlZCBhcHBsaWNhdGlvbiBuYW1lIGZvciByZWdpc3RlcmluZyBjb25maWcgaGFuZGxlcnMKICAgIAkoTi5COiBUaGlzIGNoYW5nZSB3aWxsIG5lZWQgdG8gYmUgYXBwbGllZCB0byBNSUIgbW9kdWxlcyBhcyB3ZWxsKQoKaGFyZGFrZXIgIDcgRGVjIDk5IDA5OjE0OjMwCiAgICAtIChocl9vdGhlci5jKTogc2hvcnRlbiBjcHUgZGVzY3JpcHRpb24gbGVuZ3RoLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDA5OjE3OjQxCiAgICAtIChzeXNPUlRhYmxlLmMpOiBtYWtlIHN5c09ySW5kZXggbm90LWFjY2Vzc2libGUsIGFzIGl0IHNob3VsZCBiZS4KCmhhcmRha2VyICA3IERlYyA5OSAwOTozMjowMgogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIGNvbnZlcnQgdG8gU01JdjIgYW5kIGNsZWFudXAuCgpoYXJkYWtlciAgNyBEZWMgOTkgMTM6NDU6NTkKICAgIC0gKHNubXB3YWxrLmMpOgogICAgICAtIE5ldyBhYmlsaXR5IHRvIHBlZm9ybSBhIGdldCBvbiB0aGUgcmVxdWVzdGVkIE9JRCB3aGVuIGVpdGhlciBubwogICAgICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIG9yIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgYW4gaW5jbHVzaXZlIG9wdGlvbi4KICAgICAgLSBOZXcgYWJpbGl0eSB0byBwcmludCBudW1iZXIgb2YgdmFyaWFibGVzIGZvdW5kIGF0IHRoZSBlbmQuCgpoYXJkYWtlciAgNyBEZWMgOTkgMTM6NTQ6MTEKICAgIC0gKHNubXB3YWxrLjEpOiBkb2N1bWVudCAtQ2kgYW5kIC1DcCAoYmFkbHkpLgoKbXNsaWZjYWsgIDcgRGVjIDk5IDE1OjIzOjQ0CiAgICBFbGltaW5hdGUgbXVsdGlwbHlpbmcgYnkgc2l6ZW9mKGNoYXIpIG9yIHNpemVvZih1bnNpZ25lZCBjaGFyKTsKICAgIGFnZW50eC9jbGllbnQuYyAtIHNubXBfZnJlZV92YXJiaW5kIHJlcGxhY2VzIGZyZWUgaW4gZm91ciBwbGFjZXM7CiAgICBzbm1wdjMvdXNtVXNlci5jIC0gdXNtX2ZyZWVfdXNlciByZXBsYWNlcyBmcmVlIGluIG9uZSBwbGFjZS4KCmhhcmRha2VyICA4IERlYyA5OSAwOToxOTowOAogICAgLSAobWliLmMpOiByZWdpc3RlciBhIGNvbmZpZyB0b2tlbiBmb3Igc3VmZml4IHByaW50aW5nLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE0OjA4OjIwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWFrZSBtckluZGV4IElNUExJRUQgc2luY2UgaXQgaXMgaW4gdGhlIGNvZGUuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTQ6NDE6NTMKICAgIC0gKG1pYi5jKTogZml4IC1PcyBhbmQgaW5kZXggYmFzZWQgb2lkIHByaW50aW5nIHRvIHdvcmsgYWdhaW4uCgptc2xpZmNhayAgOCBEZWMgOTkgMTU6MDE6MjAKICAgIEluY2x1ZGUgZ2V0b3B0LmggdG8gZGVmaW5lIG9wdGFyZy4KCm1zbGlmY2FrICA4IERlYyA5OSAxNTowNDo1NAogICAgQWRkIG1pc3NpbmcgZHNrUGVyY2VudE5vZGUgdG8gRHNrRW50cnkgKHRoYW5rcyB0bwogICAgICAgICAgICAgTWljaGFlbCBLaXJraGFtIDxzdXBwb3J0QGl3bC5jb20+KS4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyMzowNwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICAtIHJlbWVtYmVyZWQgSU1QTElFRCBpbmRleGVzLgogICAgICAtIHByb3Blcmx5IHByaW50IE9JRHMgd2l0aCBsZW5ndGggcHJlZml4ZXMgb24gcGFyc2VkIE9JRHMgc28KICAgICAgICBjdXR0aW5nL3Bhc3Rpbmcgb2YgdGhlbSB3b3Jrcy4KICAgICAgLSBwcm9wZXJseSBwcmludCBzdHJpbmdzIGFuZCBvaWRzIHRoYXQgYXJlIElNUExJRUQuCiAgICAgIC0gcHJpbnQgc3RyaW5ncyBpbiBlaXRoZXIgJyBvciAiIHF1b3RlcyBkZXBlbmRpbmcgb24gaWYgdGhlaXIgSU1QTElFRC4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyNjo1MQogICAgLSAoUkVBRE1FKTogYWRkIEp1ZXJnZW4uCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6Mjg6NTQKICAgIC0gKCouLk1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6Mjk6NTIKICAgIC0gKHNubXBkLmMpOiBtb3ZlIHN5cy9wYXJhbSBvdXQgb2YgaWZkZWYgRkRfU0VULgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjQ3OjAyCiAgICAtICgqLi5NYWtlZmlsZS5pbik6IEEgcmVhbCBtYWtlIGRlcGVuZCB3aXRoIG5vIHNzbCBkZXBlbmRhbmNpZXMsIGV0Yy4KCmhhcmRha2VyICA4IERlYyA5OSAxNTo0OTozMgogICAgLSAobWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLCByZW1vdmUtZmlsZXMpOgogICAgICAtIG1vdmUgdGhlIG1ha2UgZGVwZW5kIHBlcmwgc2NyaXB0cyB0byB0aGUgdG9wIGxldmVsIHdoZXJlIHRoZXkgb25seQogICAgICAgIG5lZWQgdG8gYmUgZWRpdGVkIG9uY2UuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTc6MTM6MTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtYXN0ZXIuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAgLSBpbXBsZW1lbnQgbWtkaXJoaWVyKCkgYW5kIHVzZSBpdCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCBhZ2VudHgKICAgICAgICBzb2NrZXQgZmlsZSBjcmVhdGlvbi4KCmRhdmVzICA5IERlYyA5OSAwNzozNDowMwogICAgLSAobWFuL3NubXBfdHJhcF9hcGkuMyk6IEluaXRpYWwgZG9jdW1lbnRhdGlvbiBmb3IgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgoKbmJhICA5IERlYyA5OSAwNzozNDowOAogICAgLSBtaWIuYzogaW1wbGVtZW50IE1JQjo6bGFiZWwKCm5iYSAgOSBEZWMgOTkgMDc6NDk6MzQKICAgIC0gc25tcGNtZC4xOiBzdXBwb3J0IE1JQjo6bGFiZWwKCm1zbGlmY2FrICA5IERlYyA5OSAwODoxNDo1OQogICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIuCgpoYXJkYWtlciAgOSBEZWMgOTkgMTA6MDg6MjYKICAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6CiAgICAgIC0gZml4ZWQgLS1lbmFibGUtc2hhcmVkIChhdCBsZWFzdCBvbiBsaW51eCkuCgpoYXJkYWtlciAgOSBEZWMgOTkgMTU6MjY6MjMKICAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIExlb25hcmQgR29tZWxza3k6CiAgICAgIC0gZ2VuZXJhdGVfS3UoKSBzcGVlZCBpbXByb3ZlbWVudHMuCgpoYXJkYWtlciAgOSBEZWMgOTkgMTY6MTY6NDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIGFsbCBpbnN0YW5jZXMgb2Yga2IgdG8ga0IuCgpoYXJkYWtlciAgOSBEZWMgOTkgMTY6NTM6MTQKICAgIC0gKHNubXBuZXRzdGF0L01ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQKCmhhcmRha2VyICA5IERlYyA5OSAxNzowOToyMwogICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQgb24gaHB1eAoKbmJhIDEwIERlYyA5OSAwMzowNjoxOAogICAgLSBtYXN0ZXIuYzogYWRkIGEgbWlzc2luZyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiAoYXQgbGVhc3QgZm9yIFNvbGFyaXMpLgoKbmJhIDEwIERlYyA5OSAwMzowNzowNgogICAgLSBwYXNzLmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgoKbmJhIDEwIERlYyA5OSAwMzowOTozMwogICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCgpuYmEgMTAgRGVjIDk5IDAzOjEwOjMwCiAgICAtIHJlYWRfY29uZmlnLmM6IGFkZCBzb21lIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVycwoKbmJhIDEwIERlYyA5OSAwMzoyMDoxMAogICAgLSAodmFyaW91cyk6IGNoYW5nZXMgdG8gY29tcGlsZSBzbm1wZCB3aXRoIFZDKysgNS4wIChSZWxlYXNlIG1vZGUpCgptc2xpZmNhayAxMCBEZWMgOTkgMDc6Mjg6MzMKICAgIEZpeCB0byBidWlsZCBleGVjdXRhYmxlIGFnZW50IG9uIEhQLVVYLgoKbXNsaWZjYWsgMTAgRGVjIDk5IDEwOjIzOjM2CiAgICBBcHBseSBEYXZlJ3MgcGF0Y2ggdG8gZml4IG1heCB2YXJiaW5kcyB0ZXN0aW5nIG9uIEdFVEJVTEsuCgptYXJ6IDEwIERlYyA5OSAxMDo0NDoyOQogICAgIChzbm1saWIvc25tcF9hcGkuYyk6IGZpeCBidWcgaW4gX3Nlc3NfY29weSB3aGVyZSBwb2ludGVycyB0aGF0IHdlcmUgbm90IG93bmVkIGJ5IG5ld2x5IGNyZWF0ZWQgc2Vzc2lvbiBjb3VsZCBnZXQgbWlzdGFrZW5seSBmcmVlZCBpZiBlcnJvcnMgd2VyZSBlbmNvdW50ZXJlZCBkdXJpbmcgc2Vzc2lvbiBjb3B5IC0gYWxzbyBlbGltaW5hdGUgc29tZSByZWR1bmRhbnQgY29weWluZyBvZiBzZWN1cml0eXtBdXRofFByaXZ9S2V5IGRhdGEKCm1zbGlmY2FrIDEwIERlYyA5OSAxMzowMzo1OAogICAgRml4IEhQLVVYIHByb2JsZW0gd2l0aCBpcERlZmF1bHRUVEwuCgpkYXZlcyAxMyBEZWMgOTkgMDM6MTc6NDEKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBIYW5kbGUgZGVsZWdhdGVkIE1JQiByZWdpb25zIHByb3Blcmx5IHdoZW4gc3BsaXQuCgpkYXZlcyAxMyBEZWMgOTkgMDM6MTg6MzgKICAgIC0gKGFnZW50X3RyYXAuYyk6IGFsbG93IHNwZWNpZmljYXRpb24gb2YgZW50ZXJwcmlzZSBPSUQgd2hlbiBzZW5kaW5nIHRyYXBzCgpkYXZlcyAxMyBEZWMgOTkgMDQ6NDM6MTQKICAgIC0gKGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LltjaF0pOgogICAgICAtIFBhdGNoIHRvIGdldCBTTVVYIHN1cHBvcnQgd29ya2luZyB3aXRoIHRoZSBuZXcgYWdlbnQgYXJjaGl0ZWN0dXJlLgogICAgICAgIFRoaXMgaXMgcHJvYmFibHkgbm90IFRoZSBSaWdodCBXYXkgVG8gRG8gVGhpbmdzIE5vdywgYnV0IGl0IHdvcmtzLgogICAgICAgIFRoYW5rcyB0byBOaWNrIEFtYXRvIGFuZCBNaWtlIE1pY2hhdWQuCgptc2xpZmNhayAxMyBEZWMgOTkgMDk6NDk6MjgKICAgIEFkZGVkIHBhdGNoIGZyb20gTS5NaWNoYXVkIHRvIHVzZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzLgoKaGFyZGFrZXIgMTMgRGVjIDk5IDA5OjU3OjM3CiAgICAtIChETE1PRC1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLmluYywgVUNELURMTU9ELU1JQi50eHQpOgogICAgICAtIEp1ZXJnZW5zIHBhdGNoIHRvIG1vdmUgRExNT0QtTUlCIC0+IFVDRC1ETE1PRC1NSUIgYW5kIC0+IFNNSXYyLgogICAgICAtIG1vdmVkIHRvIHRoZSBleHBlcmltZW50YWwgdHJlZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxMjowNDoxNQogICAgQ2xlYW4gYWxzbyByZW1vdmVzIGdlbmVyYXRlZCBkZWZhdWx0X3N0b3JlLjMuaCAuCgptc2xpZmNhayAxMyBEZWMgOTkgMTM6NTQ6MjcKICAgIFNhbml0eSBjaGVja3MgYWRkZWQgdG8gX2dldF9zeW1ib2wuCgpoYXJkYWtlciAxMyBEZWMgOTkgMTQ6MjA6MTAKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0td2l0aC1lZmVuY2UgaW1wbGVtZW50ZWQuCiAgICAgIC0gKGZvcmNlZCBjaGVja2luZyBmb3IgLS1lbmFibGUtZGV2ZWxvcGVyIGFuZCBDVlMgY2hlY2tvdXRzKQoKbXNsaWZjYWsgMTMgRGVjIDk5IDE0OjU0OjMxCiAgICBGaXggcHJvYmxlbSBwcmludGluZyBJTVBMSUVEIGluZGljZXMgb2YgT0JKRUNUSUQgdHlwZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxNToxMjowMQogICAgRmluaXNoIHN5bWJvbCBjb252ZXJzaW9uIHdpdGggbnVtZXJpYyB3aGVuIHN1YnRyZWUgaXMgbGVhZiBub2RlLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDE2OjAzOjAwCiAgICBBbGxvdyBzcHJpbnRfdmFyaWFibGUgdG8gd29yayBldmVuIGlmIG5vIE1JQiBmaWxlcyB3ZXJlIHJlYWQuCgpoYXJkYWtlciAxNCBEZWMgOTkgMDg6MDg6MDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBkZWZhdWx0X3N0b3JlLmgsCiAgICAgIG1pYi5jLCBtaWIuaCk6CiAgICAgIC0gYXJndW1lbnQgc2h1ZmZsaW5nLi4uCiAgICAgICAgLUkgZm9yIGlucHV0IGFyZ3MgY3JlYXRlZCwgYW5kIC1PUiBtb3ZlZCB0aGVyZS4KICAgICAgICAtSWIgY3JlYXRlZC4KICAgICAgICAtVEIgY3JlYXRlZCBmb3Igc25tcHRyYW5zbGF0ZSAod2FzIC1CKS4KCmhhcmRha2VyIDE0IERlYyA5OSAwODo0MTo0MQogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gdXBkYXRlcy4KCmhhcmRha2VyIDE0IERlYyA5OSAxNDo1NDowOQogICAgLSAoa2V5dG9vbHMuYyk6IHJldmVyc2UgZ2VuZXJhdGVfS3Ugb3B0aW1pemF0aW9ucywgYXMgdGhleSBkb24ndCB3b3JrLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE1OjE5OjM1CiAgICAtIChNYWtlZmlsZS5pbik6IERMTU9EIC0+IFVDRC1ETE1PRAoKaGFyZGFrZXIgMTQgRGVjIDk5IDE2OjA1OjA4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1vdmUgLWxlZmVuY2UgY2hlY2sgdXAgdG8gZnJvbnQgKGxhc3QgaW4gbGluaykuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTY6MDU6MzcKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBnZXQgbmV4dCBpbiBsaW5rIGxpc3QgYmVmb3JlIGRlbGV0aW5nIHJvb3QuCgptc2xpZmNhayAxNSBEZWMgOTkgMDQ6MjE6MjcKICAgIElzb2xhdGUgYW5kIHJldG91Y2ggZGVwcmVjYXRlZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCm1zbGlmY2FrIDE1IERlYyA5OSAwNTo1MTowMAogICAgU2hhcmUga3N0YXQgZmQgaWZmIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMiBpcyBhbHNvIGNvbmZpZ3VyZWQuCgpoYXJkYWtlciAxNSBEZWMgOTkgMDk6MTc6MDMKICAgIC0gKEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsIFVDRC1JUEZJTFRFUi1NSUIuaW5jLAogICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIEV2ZW4gbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTUgRGVjIDk5IDA5OjE5OjE0CiAgICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCBTTk1QdjItTTJNLU1JQi50eHQgKTogcmVtb3ZlZC4KCm1zbGlmY2FrIDE1IERlYyA5OSAwOTo0Mjo0NAogICAgUmVtb3ZlIHNubXBfbG9nX3N5c2xvZywgc25tcF9sb2dfZmlsZWxvZywgc25tcF9sb2dfc3RkZXJybG9nOwogICAgU2ltcGxpZnkgc25tcF9sb2dfc3RyaW5nLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA5OjU2OjI0CiAgICBBZGQgdGltZSBtYXJrZXIgY3JlYXRlLCBzZXQsIGFuZCBkZWx0YSB0aW1lIGNoZWNrIG1ldGhvZHMuCgptc2xpZmNhayAxNSBEZWMgOTkgMTE6MDg6MTkKICAgIFJlcGxhY2Uga2MgZnJvbSBtZW1vcnlfc29sYXJpczIuYyB3aXRoIGtzdGF0X2ZkLCBkZWZpbmVkIGluIGtlcm5lbF9zdW5vczUuYy4KCm5iYSAxNiBEZWMgOTkgMjM6MDU6NDcKICAgIC0ga2VybmVsLmM6IG91dHB1dCBlcnJvciBzdHJpbmcsIG5vdCBudW1iZXIKCm5iYSAxNiBEZWMgOTkgMjM6MDY6NTgKICAgIC0gc25tcGQuYzogXG4gdGVybWluYXRlIHNvbWUgbG9nIG1lc3NhZ2VzCgpuYmEgMTYgRGVjIDk5IDIzOjA4OjAyCiAgICAtIHNtdXguW2NoXTogZml4IHNvbWUgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMuCgpuYmEgMTYgRGVjIDk5IDIzOjA4OjU0CiAgICAtIHNubXB0cmFuc2xhdGUuYzogYmUgZXhwbGljaXQgaW4gdGhlIC10IHdhcm5pbmcKCm5iYSAxNiBEZWMgOTkgMjM6MDk6NDIKICAgIC0gbWliLmM6IGZpeCBhIHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uIHByb2JsZW0gcHJpbnRpbmcgb2lkcwoKbmJhIDE2IERlYyA5OSAyMzoxMDozMQogICAgLSBzbm1wdjMuYzogYSBtb3JlIHNwZXZpZmljIGhlbHAgbWVzc2FnZSBmb3IgZGVmVmVyc2lvbgoKbmJhIDE3IERlYyA5OSAwMjowODoxNwogICAgLSBtaWIuYzoga2lsbCB0aGF0IHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uLCBpdCBqdXN0IGFkZHMgdG9vIG1hbnkKICAgIAljb25kaXRpb25hbHMuIFByb3Blcmx5IG91dHB1dCBhbiBlbXB0eSBzdHJpbmcgaW5kZXguCgpuYmEgMTcgRGVjIDk5IDAyOjA5OjE4CiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyB1c2FnZSgpIGNhbGxzLgoKbmJhIDE3IERlYyA5OSAwMjoxNDoxOAogICAgLSBzbm1wdGFibGUuYzogY2xlYW51cCBvZiB0aGUgIm5ldyIgbWliIHdhbGsgdG8gZGV0ZXJtaW5lIGZpZWxkcy4gTWFrZSBpdAogICAgCWRlZmF1bHQgKGRvbid0IGV2ZW4gZG9jdW1lbnQgdGhlIC1DIGNvbXBhdGliaWxpdHkgb3B0aW9uKS4gSWdub3JlCiAgICAJbm90LWFjY2Vzc2libGUgZmllbGRzIGluIHRoZSB3YWxrLgoKbmJhIDE3IERlYyA5OSAwMjoxODozMAogICAgLSBzbm1wdHJhcGQuYzogbWFrZSB0aGUgb2lkcyBnaXZlbiB0byB0cmFwZCBoYW5kbGVycyBwcm9wZXJseSAuMCB0ZXJtaW5hdGVkLgogICAgCUFkZCBhIFNOTVAtQ09NTVVOSVRZLU1JQjo6c25tcFRyYXBBZGRyZXNzLjAKICAgIAlBZGQgc3lzbG9nIG9mIHYyIHRyYXBzIGFuZCBpbmZvcm1zCgpuYmEgMTcgRGVjIDk5IDAzOjIyOjM5CiAgICAtIGxpYnNubXAuZGVmOiBhZGQgc29tZSBmdW5jdGlvbiBuYW1lcwoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjAzOjA5CiAgICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSSBhbmQgLU8gZmxhZ3MuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MDU6MDgKICAgIC0gKHNubXBjbWQuMSk6IG1lbnRpb24gdGhhdCAtSVIgYW5kIC1JYiBhcmUgYWN0dWFsbHkgdXNlZCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjEzOjAzCiAgICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBhIGJ1bmNoIG9mIG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MjY6MDUKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCByb2NvbW11bml0eSwgcndjb21tdW5pdHksIHJvdXNlciwgcnd1c2VyLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjI4OjM0CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdGhlIGZpbGUgZGlyZWN0aXZlLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjQwOjQzCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgY3JlYXRlVXNlci4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxMDo0MgogICAgLSAoTkVXUyk6IGZpcnN0IHBhc3MgYXQgY2hhbmdlcy4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxMTowMgogICAgLSAoc2Vkc2NyaXB0LmluKTogUEVSU0lTVEVOVF9ESVJFQ1RPUlkgdG9rZW4gYWRkZWQuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTE6MzQKICAgIC0gKHNubXBkLmMpOiByZW9yZGVyIGluaXQoKSByb3V0aW5lcyBmb3IgLUggdG8gcHJldmVudCBzZWdmYXVsdGluZy4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNjozMgogICAgLSAoTWFrZWZpbGUuaW4pOiBwdXQgc25tcGQubyBpbnRvIHRoZSBvYmplY3QgbGlzdCwgYW5kIHJlbW92ZSBpdCBmcm9tCiAgICAgIGRpcmVjdCBjb21waWxhdGlvbiBpbiB0aGUgQ0MgbGluayBsaW5lLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE3OjA1CiAgICAtICh1c21Vc2VyLmMpOiBjaGFuZ2VkIGhlbHAgbGluZSBvZiBjcmVhdGVVc2VyIHRvIHNlcGVyYXRlIERFUyB0b2tlbgogICAgICBmcm9tIHRoZSBwYXNzcGhyYXNlLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE3OjI4CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZWQgLVIgZnJvbSB0aGUgLWggb3V0cHV0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE4OjI0CiAgICAtIChORVdTKTogc2Vjb25kIHBhc3MuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTg6NDIKICAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiByZS1zdHJ1Y3R1cmUgYmFzZWQgb24gcmVjZW50IGNoYW5nZXMuCgptc2xpZmNhayAxNyBEZWMgOTkgMTQ6MjM6MjUKICAgIEZpeGVkIGEgZmV3IHNwZWxpbG5nIGVycm9ycy4KCm1zbGlmY2FrIDE3IERlYyA5OSAxNToyMTozOQogICAgQWRkIEJpbGwgRnVtZXJvbGEncyBwYXRjaCBmb3IgRnJlZUJTRCA0LnggdG8gdXNlIHN3YXBpbmZvLgogICAgSW5jbHVkZSBGcmVlQlNEIDQueCBzcGVjaWZpYyBtZW1vcnkgYW5kIHZtc3RhdCB3aGVuIGJ1aWxkaW5nIHRoYXQgYWdlbnQuCgptc2xpZmNhayAxNyBEZWMgOTkgMTU6NDE6MTQKICAgIE5vIGR1bW15IHZhbHVlcyBmb3IgRnJlZUJTRCwgcGxlYXNlLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjQ2OjA4CiAgICAtIChzbm1wX2FsYXJtLmMpOiBtaXNzaW5nICEgb3BlcmF0ZXIgb24gc2lnbmFsIHRlc3QuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NTU6NDgKICAgIC0gKE5FV1MpOiBtZW50aW9uIC1JLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU2OjI3CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gaW5jbHVkZSAic25tcF9hbGFybS5oIiBmb3IgbWliIG1vZHVsZXMgdGhhdCBuZWVkIHRoZSBjYWxsYmFjayBkZWYuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NTc6MTAKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBjb21wbGV0ZWx5IHJlc3RydWN0dXJlZC4KICAgICAgLSBkcmFzdGljbHkgcmVkdWNlcyBtZW1vcnkgdXNhZ2UgZm9yIGxhcmdlIGRhdGEgc2V0cyAoMS8zKS4KCmRhdmVzIDIwIERlYyA5OSAwMzowMTo0OQogICAgLSAoYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBVcGRhdGVkIHRvIGRlc2NyaWJlIGN1cnJlbnQgc3RhdHVzLgoKZGF2ZXMgMjAgRGVjIDk5IDA0OjE1OjU1CiAgICAtIChhZ2VudF90cmFwLmMgc25tcF92YXJzLmMgbWliSUkuW2NoXSBtaWJJSS8qLmMgbWliSUkvc3lzT1JUYWJsZS5oKToKICAgICAgLSBVc2UgU05NUF9PSUQgcHJlZml4IGRlZmluaXRpb25zIGluIE9JRCBzcGVjaWZpY2F0aW9ucy4KICAgICAgLSBSZWdpc3RlciB0aGUgdmFyaW91cyBNSUItMiBtb2R1bGVzIHNlcGFyYXRlbHkgaW4gc3lzT1JUYWJsZS4KCmhhcmRha2VyIDIwIERlYyA5OSAwNjo0Mzo0MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBGb3JjZSBzZXQgdG8gMSBmb3IgLUQgc28gbXVsdGlwbGUgc3dpdGNoZXMgY2FuCiAgICAgIGJlIGdpdmVuIChpZSwgZG9uJ3QgdG9nZ2xlIHRoZSB2YWx1ZSkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMDY6NDg6MjQKICAgIC0gKE1ha2VmaWxlLmluKTogbW92ZWQga2VybmVsLm8gaW50byB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyMzoyNQogICAgLSAoSVBTRUMtTUlCLnR4dCk6IHJlbW92ZWQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyNToxNQogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdG8gVUNELUlQRldBQ0MtTUlCLnR4dAoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjI2OjA5CiAgICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgYW5kIHVwZGF0ZWQgZnJvbSBJUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzozMDowNgogICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MzA6MzYKICAgIC0gKGlwZndhY2MuYyk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTU6Mzg6MzQKICAgIC0gKE1ha2VmaWxlLmluKTogSVBGV0FDQy1NSUIudHh0IC0+IFVDRC1JUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxNzoxOToxOAogICAgLSAoYWdlbnRfdHJhcC5jKTogbWFrZSB1cHRpbWUgYSBsb25nIGZvciA2NGJpdCBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjIwOjE1CiAgICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IG1ha2UgYSB0aGluZ3Mgc2l6ZV90IGluc3RlYWQgb2YgdV9pbnQgKGZvciA2NGJpdCBjb2RlKS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzoyMDo1NQogICAgLSAoc25tcF9hcGkuYyk6IERpZ2l0YWwgVW5peCBoYWNrIGZvciBiYWQgcmVjdmZyb20gaW1wbGVtZW50YXRpb24uCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzE6NDUKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBub3RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMyOjIzCiAgICAtIChORVdTKTogbWVudGlvbiBTTUl2MiB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMyOjM3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfdHJhcC5oCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzQ6MzEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTEgKQoKbmJhIDIxIERlYyA5OSAwMjozNzoxOQogICAgLSBzbm1wZC5jLCBzbXV4LmMsIHNubXBfYXBpLmM6IHRha2UgYXdheSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgpuYmEgMjIgRGVjIDk5IDAyOjQxOjQyCiAgICAtIG1lbW9yeV9mcmVlYnNkMi5jOiBtYWtlIGl0IHdvcmsgKGFnYWluKSBmb3IgRnJlZUJTRC0yIDotKQoKbmJhIDIyIERlYyA5OSAwMjo0MzoxNQogICAgLSBocl9zdG9yYWdlLmM6IGtpbGwgYSBkdW1teSB2YWx1ZQoKbmJhIDIyIERlYyA5OSAwNTo0NjoyMQogICAgLSBzeXN0ZW0uYzogbmF1Z2h0eSwgbmF1Z2h0eSBOaWVscywganVzdCByZWluZGVudGluZyAuLi4KCm5iYSAyMiBEZWMgOTkgMDU6NDc6MTEKICAgIC0gc3lzdGVtX21pYi5jOiB1c2Ugc29tZSAjZGVmaW5lcyBpIHBsYWNlIG9mIG51bWJlcnMKCm5iYSAyMiBEZWMgOTkgMDU6NTg6MTgKICAgIC0gdmFjbSByb3V0aW5lczogYWxpZ25tZW50IHdpdGggUkZDIG1pYnMsIHByZXBhcmluZyBmb3IgdHJhcCBnZW5lcmF0aW9uCiAgICAJYW5kIGEgYmV0dGVyIGludGVncmF0aW9uIHdpdGggdmFyaWFibGUgdHJlZSB3YWxraW5nCgpoYXJkYWtlciAyMiBEZWMgOTkgMTU6MTI6MjYKICAgIC0gKG1hc3Rlci5jKTogdXNlIHNubXBfc2Vzc19vcGVuIGZvciB0aGUgc2Vjb25kIHRyeSBhdCBvcGVuaW5nIHRoZQogICAgICBtYXN0ZXIgcG9ydC4KCmhhcmRha2VyIDIyIERlYyA5OSAxNToxMzowNQogICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IGluY3JlYXNlIG1heCB2YXJzIHRvIDY0ICh3YXMgMTYpLiAgSSBoYXZlIGEKICAgICAgdGFibGUgd2l0aCBtb3JlIHRoYW4gdGhhdCBudW1iZXIgaW4gY29sdW1ucywgd2hpY2ggYnJlYWtzIHNubXB0YWJsZS4KCmhhcmRha2VyIDIyIERlYyA5OSAxNjozMDowMQogICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgIC0gZmlyc3QgcGFzcyBhdCB2bXN0YXQgc3VwcG9ydCBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDIzIERlYyA5OSAwODoyMTozNwogICAgLSAodm1zdGF0X3NvbGFyaXMyLmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAgLSBub24gODAtY29sdW1uIHdyYXBwZWQgdmVyc2lvbi4KCmhhcmRha2VyIDI4IERlYyA5OSAxNTo0MjowOAogICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlbW92ZSB0aGUgISBpbiBmcm9udCBvZiBpbl9hX3ZpZXcsIHdoaWNoIGNoYW5nZWQuCgpoYXJkYWtlciAzMCBEZWMgOTkgMDc6NTE6MzYKICAgIC0gKHNubXBkLmMpOiB1c2FnZSBsaW5lIG9yZGVyIG1lc3NlZCB1cCwgYXMgcG9pbnRlZCBvdXQgYnkgUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMzAgRGVjIDk5IDEyOjAwOjU4CiAgICBGaXggY29tcGlsZSBlcnJvcnMuCgptc2xpZmNhayAzMSBEZWMgOTkgMDk6MzE6MTIKICAgIEZpeCBidWcgIyAxMjIKCm1zbGlmY2FrIDMxIERlYyA5OSAwOTozMjo1OAogICAgQXBwbHkgcGF0Y2ggcHJvdmlkZWQgYnkgU2VyZyBUcnVzaG5pa292IDxzYXRAem1haWwucnU+IGZvciBBSVggNC4yLjEga25saXN0Cgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MTE6MTIKICAgIEZpeCBidWcgIzEyNSAtIGluc2VydCB1bmRlcnNjb3JlIGludG8gc3RydWN0IHNubXBfaXBhZGRyIG1lbWJlciBuYW1lcy4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMDozMzoxNgogICAgQXV0b2NvbmYgcGF0Y2ggYy9vIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMDozNjo0NgogICAgRml4IHdhcm5pbmdzIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDEyOjQzOjUwCiAgICBGaXggYnVnICM0OCA6IG5vIHN0cmNhc2VjbXAvc3RybmNhc2VjbXAgZm9yIFNpbml4Cgptc2xpZmNhayAzMSBEZWMgOTkgMTM6Mjc6NDQKICAgIEFwcGx5IHNvbWUgTmV0QlNEIDEuMy54LCAxLjQgcGF0Y2hlcyBjL28gR3JlYSBBLiBXb29kcyA8d29vZHNAcGxhbml4LmNvbT4KCm5iYSAgMyBKYW4gMDAgMTU6MjM6MjEKICAgIC0gRVhBTVBMRS5jb25mLmRlZjogYWRhcHQgdG8gY2hhbmdlcyBpbiB2YWxpZCB2YWNtIHN5bnRheAoKbmJhICAzIEphbiAwMCAxNToyNjowNwogICAgLSBzbm1wX3ZhcnMuYzogaW5jbHVkZSBhZ2VudF9yZWdpc3RyeS5oIG9ubHkgb25jZQoKbmJhICAzIEphbiAwMCAxNToyNjo1MQogICAgLSBzbm1wZC5jOiBhZGQgYSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcgoKbmJhICAzIEphbiAwMCAxNToyNzoyOQogICAgLSBtaWJJSS5oOiBhZGQgcHJvdG90eXBlIGZvciBpbml0X21pYklJCgpuYmEgIDMgSmFuIDAwIDE1OjI4OjI0CiAgICAtIHdvbWJhdC5bY2hdOiBjb3JyZWN0IHByb3RvdHlwZSBmb3Igd29tYmF0X3BhcnNlX2NvbmZpZwoKbmJhICAzIEphbiAwMCAxNTozMDoyNgogICAgLSBzeXN0ZW0uaDogYWRkIHByb3RvdHlwZSBmb3Igc3RyY2FzZWNtcAoKbmJhICAzIEphbiAwMCAxNTozMjo1OQogICAgLSBwYXJzZS5jOiBmaXggRmlsZSB2YXJpYWJsZSBiZWluZyBsZWZ0IHBvaW50aW5nIGludG8gdGhlIHN0YWNrLgogICAgCUlnbm9yZSAuaW5kZXggZmlsZSBvbiBXSU4zMiBwbGF0Zm9ybQoKbmJhICAzIEphbiAwMCAxNTozNDoyMgogICAgLSBtaWIuYzogYWxzbyBub3RlIFRFWFRVQUwgQ09OVkVOVElPTiBpbiAtVGQgb3V0cHV0CgpuYmEgIDMgSmFuIDAwIDE1OjM5OjQwCiAgICAtIHNubXBjbWQuMTogYWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwbGljYXRpb25zCiAgICAtIHNubXB0cmFuc2xhdGUuMTogZXhwbGFpbiAtVCBvdXRwdXRzCiAgICAtIHNubXB0cmFwZC5jb25mLjUuZGVmOiBkZWZhbHQgdHJhcGhhbmRsZXIgaXMgaW1wbGVtZW50ZWQKCmhhcmRha2VyICA0IEphbiAwMCAwODo1ODoyNAogICAgLSAoUkVBRE1FLCBGQVEpOiBKYXBhbiBtaXJyb3IgbG9jYXRpb24gY2hhbmdlLgoKaGFyZGFrZXIgIDQgSmFuIDAwIDEwOjMzOjU0CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc3RydWN0LmgKCmhhcmRha2VyICA0IEphbiAwMCAxMDozNTowNgogICAgLSAoc25tcF9hZ2VudC5jKTogZGVhbCB3aXRoIGJsb2NraW5nIGJldHRlciBpbiBzbm1wX2FnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCgpoYXJkYWtlciAgNCBKYW4gMDAgMTY6Mjc6NDUKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2FuZGVyIFN0ZWZmYW5uOgogICAgICAtIEFkZCAtSS91c3IvaW5jbHVkZS9ycG0gYmVjYXVzZSBvZiBiYWRseSB3cml0dGVuIHJwbSBoZWFkZXIgZmlsZXMuCgpuYmEgIDQgSmFuIDAwIDIyOjEyOjEwCiAgICAtIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc25tcGQuY29uZi41LmRlZjogcmVtb3ZlIGFsbCB0cmFjZXMgb2Ygc2VjdXJpdHkKICAgIAltb2RlbCAiYW55IiBpbiAiZ3JvdXAiIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwoKbmJhICA0IEphbiAwMCAyMzo1MDoyNwogICAgLSBwYXJzZS5jOiAjaWZkZWYgc29tZSB2YXJpYWJsZXMgbm90IHVzZWQgdW5kZXIgd2luMzIKCm5iYSAgNCBKYW4gMDAgMjM6NTE6MTEKICAgIC0gc25tcHRyYXBkLmM6IGltcGxlbWVudCB0cmFuZCBoYW5kbGVycyBmb3Igd2luMzIKCmRhdmVzICA2IEphbiAwMCAwMTo1ODo1NgogICAgLSAobWliZ3JvdXAvbWliSUkuYyk6IFJlbW92ZSByZWR1bmRhbnQgZmlsZQoKaGFyZGFrZXIgIDYgSmFuIDAwIDA4OjU3OjMxCiAgICAtICh1dGlsX2Z1bmNzLmgpOiBwcm9wZXJseSB3cmFwIHN0cnVjdC5oIGluY2x1ZGUgZGlyZWN0aXZlIGZvcgogICAgICBub24tc291cmNlLWRpcmVjdG9yeSBpbmNsdWRlLgoKbWFyeiAgNiBKYW4gMDAgMTI6NTY6NTAKICAgIHVwZGF0ZSBzeW50YXggKGV4YWN0KQoKbWFyeiAgNiBKYW4gMDAgMTM6MDc6MDMKICAgIHdlIHNob3VsZCBub3QgcHJpbnQgdG8gc3RkZXJyIGlmIHN0ZGVyciBsb2dnaW5nIGlzIGRpYWJsZWQgLSB0aGlzIHRob3dzIG9mZiB0aGUgYWxpZ25tZW50IG9mIHRlc3Qgb3V0cHV0IGZvciAnbWFrZSB0ZXN0JyBpbiBib3RoIHVjZC1zbm1wIGFuZCBQZXJsL1NOTVAKCm1hcnogIDYgSmFuIDAwIDEzOjE0OjEwCiAgICB1cGRhdGUgY29uZmlnIGFjY2VzcyBzeW50YXggKGV4YWN0KQoKaGFyZGFrZXIgIDYgSmFuIDAwIDE1OjA4OjI4CiAgICAtIChDT1BZSU5HKTogeTJrIGJ1Zy4KCmhhcmRha2VyICA2IEphbiAwMCAxNTowODo0OAogICAgLSAobWliMmMpOiByZW1vdmVkIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KCmhhcmRha2VyICA2IEphbiAwMCAxNTowOToyMAogICAgLSAobWliMmMuY29uZik6IHVucXVvdGVkIHF1b3RlcyBxdW90ZWQuCgpoYXJkYWtlciAgNyBKYW4gMDAgMDk6Mjk6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGJldHRlciBoYW5kbGluZyBvZiB3cml0ZSBmYWlsdXJlcy4KCmhhcmRha2VyICA3IEphbiAwMCAxMDozODo0OAogICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IHVwZGF0ZSB0byB2NCBBUEkgc2V0IGNvZGUuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTE6MjI6NDAKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgICAtIGhhbmRsZSBtdWx0aXBsZSB0cmFuc2xhdGVkIE9JRHMuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTY6MjE6NTAKICAgIC0gKHZhY21fdmFycy5jKTogcHJvcGVybHkgZ3JvdXAgcncvcm91c2VycyBpbnRvIHVzbSBub3QgdjEvdjJjLgoKbmJhICA3IEphbiAwMCAyMzo0MzoxMAogICAgLSBjb25maWd1cmUuaW46IHNvbWUgbWlzc2luZyAieCIgaW4gdGVzdHMgZm9yIC0td2l0aC1vcGVuc3NsIGFuZAogICAgCS0tZGlzYWJsZS1kZXZlbG9wZXIKCm5iYSAgOCBKYW4gMDAgMDA6NTY6MzAKICAgIC0gY29uZmlndXJlLmluOiBidWdmaXggZm9yIGEgYnVnZml4IGJ1ZwoKbXNsaWZjYWsgIDggSmFuIDAwIDExOjQ0OjU4CiAgICBGaXggYnVpbGQgZm9yIExpbnV4IFJlZEhhdCA2LjEgKGNhbnQgbGluayBsaWJ3cmFwIHdpdGhvdXQgbGlibnNsKS4KCm1zbGlmY2FrICA4IEphbiAwMCAxMjowNzo0NAogICAgVXNlIGtubGlzdCBpZmYgYWl4NCBhbmQgSEFWRV9LTkxJU1QgW25vdCBjb21wbGV0ZSB3L28gY29uZmlndXJlIG1vZHNdCgpkYXZlcyAxMCBKYW4gMDAgMDE6Mzc6MzIKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJLmgpOiBSZS1yZW1vdmUgcmVkdW5kYW50IHByb3RvdHlwZS4KCmRhdmVzIDEwIEphbiAwMCAwMjozMTozOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRGlmZmVyZW50aWF0ZSBtYXgtcmVwZXRpdGlvbiBhbmQgbm9uLXJlcGVhdGVyIGVycm9ycy4KCmRhdmVzIDEwIEphbiAwMCAwMzowNjo0MgogICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQ291bnQgbnVtYmVycyBvZiB2YXJpYWJsZXMgcmVxdWVzdGVkL3NldAoKZGF2ZXMgMTAgSmFuIDAwIDA2OjEyOjQwCiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogUmUtc3RydWN0dXJlIGdldF91cHRpbWUoKSB0byBjYWNoZSBib290IHRpbWUuCgptc2xpZmNhayAxMCBKYW4gMDAgMTM6MTQ6MDMKICAgIEFsbG93IE1TVkMrKyA1LnggdXNlcnMgdG8gYnVpbGQgdXNpbmcgdGhpcyB3b3Jrc3BhY2UuCgptc2xpZmNhayAxMCBKYW4gMDAgMTM6MjE6MzAKICAgIFF1YWxpZnkgdXNlIG9mIHdpdGh2YWwgdG8gZGVmaW5lIGxpYnJhcnkgYW5kIGluY2x1ZGUgc2VhcmNoIHBhdGhzLgoKbWFyeiAxMCBKYW4gMDAgMTQ6MjE6MTQKICAgIENoZWNraW5nIGluIFNOTVAtMy4xLjBiMQoKbWFyeiAxMCBKYW4gMDAgMTQ6MzQ6NTAKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1hcnogMTAgSmFuIDAwIDE0OjQwOjA0CiAgICBhZGQgbWlibG9hZAoKaGFyZGFrZXIgMTAgSmFuIDAwIDE1OjM2OjE4CiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN0ZGxpYi5oIGFuZCBtYWxsb2MuaC4KCmhhcmRha2VyIDEwIEphbiAwMCAxNTozNjo0MAogICAgLSAoU3YzY29uZmlnKTogcmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZS4KCmhhcmRha2VyIDEwIEphbiAwMCAxNTozODo0NAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtYWtlIC0td2l0aG91dC1lZmVuY2Ugd29yay4KICAgICAgLSBjaGVjayBmb3IgLWxuc2wgbW9yZSBleHBsaWNpdGx5LgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMwOjUxCiAgICB1Y2REZW1vUHVibGljLmMgLSByZW1vdmUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgZnJvbSB3cml0ZSBtZXRob2QuCiAgICBzbm1wX3ZhcnMuYyAgICAgLSBwcm9wZXIgb2lkIGNvbXBhcmU7IG5vIGNvcHkgZnJvbSBzYXZlIGlmIG9pZHMgZXhhY3QgbWF0Y2gKICAgIHNubXBkLmMgICAgICAgICAtIHRlcm1pbmF0ZSBzdGF0ZW1lbnQuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzE6MTYKICAgIHNubXB0cmFuc2xhdGUuMSAgIC0gcmVtb3ZlIGp1bmsgbGluZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMTozOAogICAgc25tcHRyYW5zbGF0ZS5jICAtIHNpbXBsZSBkZWZhdWx0IGNhc2UuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzI6MDgKICAgIHNubXBfYXBpLmMgICAgLSBiZXR0ZXIgY29tbWVudCBmb3Igc25tcF9vaWRfY29tcGFyZS4KICAgIHJlYWRfY29uZmlnLmMgLSByZW1vdmUgc2l6ZW9mKHVfY2hhcikgZnJvbSBtYWxsb2Mgc2l6ZSBjYWxjLgogICAgc2NhcGkuaCAgICAgICAtIHNwZWxsIGNoZWNrLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDAxOjMzOjQ1CiAgICBUcm9sbGluZyBmb3IgbWFsbG9jIGVycm9yczsgbW9yZSBncmFjZWZ1bCBkZWdyYWRhdGlvbi4KCm1zbGlmY2FrIDExIEphbiAwMCAwMTo1MzowOAogICAgR2xlYW4gcmVmcyB0byBtaWJJSS5vIGZyb20gdGhpcyBtYWtlZmlsZS4KCm1zbGlmY2FrIDExIEphbiAwMCAwNzo0NDo1MAogICAgQWRkIElOX1VDRF9TTk1QX1NPVVJDRSB0byBub3QgYnJlYWsgV2luMzIgYnVpbGRzLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA3OjU5OjIzCiAgICBLZWVwIHdpbjMyIHJlbGVhc2UgYnVpbGQgZnJvbSBicmVha2luZy4KCm1zbGlmY2FrIDExIEphbiAwMCAwODoxMDoxMAogICAgSW5pdCBmaWxlIGNvdW50IGF0IHplcm8sIG5vdCBieSBpbmNyZW1lbnRpbmcgcmFuZG9tIHZhbHVlLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA5OjEzOjM4CiAgICBSZXN0b3JlIG1lbWR1cCB1c2FnZSB0byBpdHMgZm9ybWVyIGx1c3Rlci4KCm1hcnogMTEgSmFuIDAwIDEwOjM3OjIxCiAgICByZW1vdmUgYmFkIHNlc3Npb24gdGVzdCAtIHNlc3Npb24udCBoYXMgaXQgYWxyZWFkeSAtIG5vdGUgdGhlIGNhbGwgdG8gZ2V0aG9zdGJ5bmFtZSBjYW4gaGFuZyBmb3Igc29tZSB0aW1lIGlmIEROUyBpcyBub3Qgc2V0dXAgY29ycmVjdGx5IC0gYW55b25lIGtub3cgYSB3YXkgYXJyb3VuZCB0aGlzPwoKbXNsaWZjYWsgMTEgSmFuIDAwIDE1OjA1OjA5CiAgICBVc2UgQ0ZMQUdTIHdoZW4gbGlua2luZyAoY291bGQgaGF2ZSBwcm9maWxlIHN3aXRjaCwgZXRjKS4KCmhhcmRha2VyIDEyIEphbiAwMCAxMToxNjoyNwogICAgLSAoc25tcHYzLmMpOiBjYXN0IG1hbGxvYyByZXR1cm5zLgoKbXNsaWZjYWsgMTIgSmFuIDAwIDIxOjA5OjQ3CiAgICBVc2UgREVCVUdNU0dPSUQgbGliZXJhbGx5LCByZXBsYWNpbmcgc3ByaW50X29iamlkOyBzbWFsbCBzcGVlZHVwLgoKZGF2ZXMgMTMgSmFuIDAwIDAyOjQ2OjQ3CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IFJlbW92ZSBleHRyYW5lb3VzIGJyYWNrZXQuCgptc2xpZmNhayAxMyBKYW4gMDAgMDU6MzY6MjEKICAgIE5vIGdldF9ib290dGltZSBzdXBwb3J0IGZvciBjeWd3aW4gKHlldCkuIEhvcGVmdWxseSBhIHRlbXBvcmFyeSBjb25kaXRpb24uCgpkYXZlcyAxMyBKYW4gMDAgMDY6MzE6NDQKICAgIC0gKHNubXBsaWIvcGFyc2UuW2NoXSk6IFVubG9hZCBNSUIgbW9kdWxlCiAgICAJKE4uQjogU29tZXdoYXQgc2ltcGxpc3RpYyB3aXRoIHJlZ2FyZCB0byBtdWx0aXBseS1sb2FkZWQgbm9kZXMpCgpkYXZlcyAxMyBKYW4gMDAgMDY6MzM6NDAKICAgIC0gKHNubXBsaWIvcGFyc2UuYyk6IE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2YgdW5sb2FkaW5nIE1JQiBtb2R1bGVzLgoKbXNsaWZjYWsgMTQgSmFuIDAwIDA5OjMzOjM5CiAgICBTbWFsbCBjb21waWxlIGZpeCBhbmQgZGVidWcgbWVzc2FnZSByZXN0b3JhdGlvbi4KCmhhcmRha2VyIDE0IEphbiAwMCAxMTozNDoyNQogICAgLSAoYnVnLXJlcG9ydCk6IGdyZXAgZm9yIGNvbmZpZ3VyZSBmbGFncwoKaGFyZGFrZXIgMTQgSmFuIDAwIDE2OjA5OjA5CiAgICAtIChzY2FwaS5jKTogaW1wbGVtZW50IERFUyBlbmNyeXB0aW9uLgoKaGFyZGFrZXIgMTQgSmFuIDAwIDE2OjEwOjI5CiAgICAtIChORVdTKTogcmVtb3ZlIGV4cG9ydCBjb250cm9sIG5vdGUgYWJvdXQgREVTLgoKZGF2ZXMgMTcgSmFuIDAwIDA2OjEzOjM5CiAgICAtIChtYW4vc25tcHRyYXBkLjgpOiBEZXNjcmliZSBkZWZhdWx0IGxvZ2dpbmcgYmVoYXZpb3VyLgoKZGF2ZXMgMTcgSmFuIDAwIDA5OjAyOjMyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IERpc2NhcmQgInRvby1sYXRlIiByZXNwb25zZXMgZnJvbSBvdmVybGFwcGVkIHJlZ2lvbnMuCgptYXJ6IDE3IEphbiAwMCAxMjo0Nzo1OAogICAgYWRkZWQgdjIgdHJhcAoKbWFyeiAxOCBKYW4gMDAgMDc6MDA6MjYKICAgIG1vZGlmaWVkIGZvciB2Mi10cmFwLgoKbWFyeiAxOCBKYW4gMDAgMDc6NTQ6MTIKICAgIGZpeCBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIHZhbHMgZm9yIHRyYXAgZnVuY3MsIGNsZWFuIHVwIHBkdQoKbXNsaWZjYWsgMTggSmFuIDAwIDA4OjE0OjQyCiAgICBQcmV2ZW50IGFycmF5IGJvdW5kcyBlcnJvciB3aGVuIGNyZWF0aW5nIHNwZWNpZmljIHRyYXAgb2lkLgoKbXNsaWZjYWsgMTggSmFuIDAwIDE0OjIzOjQ0CiAgICBMYXRlc3Qgdm1zdGF0X3NvbGFyaXMyIGZyb20gdGhlIGF1dGhvciBKb2NoZW4gS21pZXRzY2guCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6MjI6MDYKICAgIENsZWFudXAgYXJvdW5kIGlwNl92YXJzLmggaW5jbHVkZSAobm8gI2lmIDApCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6MjU6NTMKICAgIFJlbW92ZSBjb21tZW50ZWQgb3V0IG9iamVjdHMgdGhhdCBhcmUgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZS4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMToyOTowMQogICAgMS5NYWtlIHNubXBfZ2V0X2RvX2xvZ2dpbmcgdmlzaWJsZSBmcm9tIERMTAogICAgMi5BcHBseSBXaW4zMiBwYXRjaCBmcm9tIFIuU3RvcnkgdG8gYWN0aXZhdGUgbWliIHN0YXRzIG1vZHVsZSAoc25tcF9taWIpLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjM3OjAyCiAgICBDb25zaXN0ZW50IGdldHBhZ2VzaXplIChmaXJzdCBkaXZpZGUgYnkgMTAyNCkuCgpkYXZlcyAyMCBKYW4gMDAgMDQ6MjU6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFN1cHBvcnQgc2VsZWN0aXZlIGJpbmRpbmcgb2Ygc2VydmVyIGFkZHJlc3Nlcy4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0NjowNAogICAgUmVtb3ZlIHBhcnR5IGNydWQ7IHNwZWxsIGNoZWNrLgoKbXNsaWZjYWsgMjEgSmFuIDAwIDAxOjQ2OjQxCiAgICBBZGQgY29uc3QgdG8gY2xlYW51cCBhIGZldyBzaWduYXR1cmVzLgoKbXNsaWZjYWsgMjEgSmFuIDAwIDAxOjQ5OjM1CiAgICBNaW5pbWl6ZSBkYXRhIGhhbmRsaW5nIGFuZCB1c2UgcmVnaXN0ZXIgdmFyaWFiaWVzIGluCiAgICBzbm1wX29pZF9jb21wYXJlIGFuZCBjb21wYXJlX3RyZWUuCgptYXJ6IDIxIEphbiAwMCAwNzoyNzoxMwogICAgYWRkZWQgdjMgaW5mb3JtCgptYXJ6IDIxIEphbiAwMCAwODowMDoyNwogICAgaW5mb3JtLgoKbWFyeiAyMSBKYW4gMDAgMDg6MTM6MjUKICAgIGluZm9ybQoKbWFyeiAyMSBKYW4gMDAgMTA6NDc6MjQKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1zbGlmY2FrIDIxIEphbiAwMCAxMToxOTowOQogICAgY29uZmlnX2FyY2hfcmVxdWlyZSBzb2xhcmlzMiB2ZXJzaW9uIG9mIHZtc3RhdC4KCm5iYSAyMyBKYW4gMDAgMDg6NTE6MzkKICAgIC0gcGFyc2UuYzogYWRkIHNvbWUgbW9yZSBlcnJvciBjaGVja2luZyB0byBnZXRvaWQKCm5iYSAyMyBKYW4gMDAgMTI6NDI6MTEKICAgIC0gcGFyc2UuYzogZml4IG1lcmdpbmcgb2YgYW5vbnltb3VzIG5vZGVzIHdoZW4gdGhleSBhcmUgbmFtZWQKCm5iYSAyMyBKYW4gMDAgMTI6NDM6NTQKICAgIC0gcGFyc2UuYzogZXJyZW5vdXMgPT4gZXJyb25lb3VzCgptYXJ6IDIzIEphbiAwMCAxNjo0MTowNgogICAgaGFuZGxlIGFkZGluZyBPUEFRVUUgdmFycyBmb3Igc2V0dGluZyBhbmQgdHJhcHMgZXRjLgoKZGF2ZXMgMjQgSmFuIDAwIDA3OjIxOjM0CiAgICAtIChleGFtcGxlcy97ZXhhbXBsZSx3b21iYXR9LltjaF0pOgogICAgICAtIENvbnNvbGlkYXRlZCBleGFtcGxlIG1vZHVsZXMgaW50byBvbmUsIGluY2x1ZGluZyBjb25maWcgYW5kIFNFVCBzdXBwb3J0LgoKbWFyeiAyNCBKYW4gMDAgMDg6NTk6MzIKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1zbGlmY2FrIDI0IEphbiAwMCAwOTo0NDo0NQogICAgTWFrZSBzdXJlIGtzdGF0X2ZkIGlzIGluaXRpYWxpemVkIGJlZm9yZSBiZWluZyB1c2VkLgoKbXNsaWZjYWsgMjQgSmFuIDAwIDA5OjU1OjMyCiAgICBGaXggQnVnICMxNDQgaXRlbXMgMSwzLDQgOiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAiYWxsIiBrZXl3b3JkLgoKbXNsaWZjYWsgMjQgSmFuIDAwIDEwOjA1OjEyCiAgICBJdG9qdW4ncyBuZXRic2QgRUxGIHBhdGNoICsgcmVtb3ZlIHdvbWJhdCBbRGF2ZSdzIGV4YW1wbGUgZml4XQoKbXNsaWZjYWsgMjQgSmFuIDAwIDEwOjE0OjU2CiAgICBGaXggcHJpbnRpbmcgSU1QTElFRCBpbmRleCAoZnJvbSBhc3NvY2lhdGUgb2YgSi4gS21pZXRzY2gpIG1vZGlmaWVkIGFuZCBhcHBsaWVkLgoKbWFyeiAyNCBKYW4gMDAgMTA6MzY6NDMKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1hcnogMjUgSmFuIDAwIDA2OjQ5OjQzCiAgICBzeW50YXggZm9yIHdpbjMyIGJ1aWxkCgptYXJ6IDI1IEphbiAwMCAxMTo0NzoxMgogICAgYWRkIG1pc3Npbmcgc3luYm9scyBmb3IgcGVybC9TTk1QIG1vZHVsZQoKbWFyeiAyNSBKYW4gMDAgMTI6MDU6NTkKICAgIGFkZGl0aW9uYWwgd2luMzIgaW5zdGFsbCBub3RlcwoKbmJhIDI1IEphbiAwMCAxMzo1Mjo0MgogICAgLSBwYXJzZS5jOiBmaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIHRjX2luZGV4CgpoYXJkYWtlciAyNSBKYW4gMDAgMTM6NTU6MzMKICAgIC0gKHZlc3RpbnRlcm5ldHQvZGlza2lvLltjaF0pOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCgpoYXJkYWtlciAyNSBKYW4gMDAgMTM6NTY6MDIKICAgIC0gKFZFU1QtSU5URVJORVRULU1JQi50eHQpOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCgpuYmEgMjUgSmFuIDAwIDE0OjEyOjU4CiAgICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwgTWFrZWZpbGUuaW46CiAgICAJVXBkYXRlIHRvIHRoZSBjdXJyZW50IGRyYWZ0IEhPU1QtUkVTT1VSQ0VTIChkcmFmdC1vcHMtaG9zdG1pYi0wMSkKCmhhcmRha2VyIDI1IEphbiAwMCAxNDo0Nzo1OQogICAgLSAoY29uZmlndXJlKTogaGVscCB1cGRhdGUKCmhhcmRha2VyIDI1IEphbiAwMCAxNDo1MDo1NgogICAgLSAoc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gZml4IHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiB0byBkbyB3aGF0IGl0IHNheXMgaXQgc2hvdWxkIGRvLgoKbXNsaWZjYWsgMjUgSmFuIDAwIDE5OjMwOjUxCiAgICBMYXJnZXIgYnVmZmVyIGZvciBwcmludF9tb2R1bGVfbmFtZTsgRml4IHBvc3NpYmxlIG51bGwgZGVyZWYgaW4gZ2V0X3RjLgoKbXNsaWZjYWsgMjUgSmFuIDAwIDIxOjQ2OjE0CiAgICBtaWIuYzpwcmludF90cmVlX25vZGUgLSBzaG93IG1vZHVsZSBuYW1lIG9uY2UgaW4gLS0gRlJPTTsKICAgIHBhcnNlLmM6IHNob3cgIkNhbm5vdCBmaW5kIG1vZHVsZSIgb25jZSBwZXIgbWlzc2luZyBtb2R1bGUuCgptc2xpZmNhayAyNiBKYW4gMDAgMDc6MTQ6NTAKICAgIGZpeCBjb21waWxlIGVycm9yIHdoZW4gLS13aXRob3V0LXJvb3QtYWNjZXNzIGlzIHVzZWQgKHN0cmF1c3NAaWJyLmNzLnR1LWJzLmRlKQoKbXNsaWZjYWsgMjYgSmFuIDAwIDA3OjI2OjIyCiAgICBBY2tub3dsZWRnZSBtb3JlIGNvbnRyaWJ1dG9ycy4KCmhhcmRha2VyIDI2IEphbiAwMCAxMDoyNDoyMQogICAgLSAoZ2V0VmFsdWVzLnBtKSBnZXRWYWx1ZXMucG0gd2FzIG5vdGVkIG1pc3NpbmcKCmhhcmRha2VyIDI2IEphbiAwMCAxNToyOTo1NAogICAgLSAoVUNELURJU0tJTy1NSUIuaW5jLCBVQ0QtRElTS0lPLU1JQi50eHQsIFZFU1QtSU5URVJORVRULU1JQi50eHQpOgogICAgICBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBmaXggdGhlIGRpc2tpbyBtaWIsIGNvbnZlcnQgdG8gU01JdjIsIGFuZCBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozMDo0MgogICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBwcmVmaXggb2lkIHdpdGggInVjZCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzE6MDAKICAgIC0gKFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gcHJlZml4IG9pZHMgd2l0aCAidWNkIi4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozMjoyNQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIGNsZWFuIHVwIGFuZCByZWZvcm1hdCBzdWItcmVnaXN0cmF0aW9uIGNvbW1lbnRzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjM0OjIwCiAgICAtIChVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY29ycmVjdCB1Y2Qtc25tcC1jb2RlcnMgZW1haWwgYWRkcmVzcyB0byByZXBsYWNlICJlY2UiIHdpdGggInVjZC1zbm1wIi4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjowNjozMQogICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gYWRkIGFiaWxpdHkgdG8gYWxsb3cgc2VuZGluZyB0cmFwcyB0byBwb3J0cyBvdGhlciB0aGFuIDE2Mi4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjoyODoyMgogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjUzOjQxCiAgICAtIChzbm1wdjMuYyk6IGZpeCBwcml2IGtleSBsZW5ndGggZXh0cmFwb2xhdGlvbi4gIFNob3VsZCBiZSBkb25lIGRpZmZlcmVudGx5Py4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjo1NDo0MwogICAgLSAoU3YzREVTY29uZmlnLCBUMDIzc25tcHYzZ2V0TUQ1REVTKTogZml4IERFUyB0ZXN0IHNvIGl0IHdvcmtzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE3OjE1OjA3CiAgICAtIChzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEpOgogICAgIC0gYmFkbHkgZG9uZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE3OjE4OjE3CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUyICkKCmhhcmRha2VyIDI2IEphbiAwMCAxNzozMjo0MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhbGxvdyAnLCcgc2VwZXJhdGVkIC0td2l0aC0qLW1vZHVsZXMgZmxhZyB2YWx1ZXMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTk6MjI6NTMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLWNoYW1lbGVvbi4KCmhhcmRha2VyIDI3IEphbiAwMCAwODozMzo0MwogICAgLSAoZGVmYXVsdF9zdG9yZS5jKTogbWFrZSBjb25maWcgcGFyc2VyIGhhbmRsZSAiIiAobnVsbCkgcGFyc2VkIHN0cmluZ3MuCgptYXJ6IDI3IEphbiAwMCAxMToxNDowOQogICAgcmVtb3ZlIG5vLW9wIHNubXBfc3luY2hfc2V0dXAKCm1zbGlmY2FrIDI3IEphbiAwMCAxNDo1MTozOQogICAgIDEuIEZpeCBtZW1vcnkgbGVhayB3aGVuIGFub255bW91c2x5IG5hbWVkIG5vZGVzIGFyZSB1c2VkLgogICAgIDIuIEhhY2sgYXJvdW5kIHNtaWNuZydzICJTTUkgIiBzdGF0ZW1lbnRzIHRvIHByZXZlbnQgb3RoZXIgbWVtb3J5IGxlYWtzLgoKbXNsaWZjYWsgMjcgSmFuIDAwIDE2OjEzOjU4CiAgICBSZW1vdmUgaGFjayBhcm91bmQgIlNNSSIgdG9rZW47IGtlZXAgdGhlIGdvb2QgcGFydCBvZiB0aGUgcHJldmlvdXMgcGF0Y2guCgptc2xpZmNhayAyOCBKYW4gMDAgMDc6MTg6MDkKICAgIFNvbWUgdmFyaWFibGUgcmVuYW1pbmcgZm9yIGNvbnNpc3RlbmN5LCBlcnJvciBjaGVja2luZwogICAgaW1wcm92ZWQsIG1pc3Npbmcgc3RyaW5nLmggaW5jbHVkZWQuICBQYXRjaCBzdXBwbGllZCBieSBhdXRob3IuCgptc2xpZmNhayAyOCBKYW4gMDAgMTI6MzA6MjAKICAgIEZpeCBzcGVsbCBMSVRUTEVfRU5ESUFOLiBUaGFua3MgdG8gdGFsbWFuQGhpdHQubmwuCgptc2xpZmNhayAyOCBKYW4gMDAgMTI6Mzg6MjIKICAgIENoYW5nZSBhZ2VudHhfe2J1aWxkLHBhcnNlfV9zaG9ydCAuIFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuQGhpdHQubmwuCgptc2xpZmNhayAyOCBKYW4gMDAgMTI6NTI6MjUKICAgIFRoaXMgd2l0aCBwcmV2aW91cyB0d28gY2hhbmdlcyBjb21wbGV0ZXMgYSBwYXRjaCBmb3IgaXRlbXMgMiwzLDQKICAgIGZvciBidWcgIzE0OS4KCm5iYSAzMCBKYW4gMDAgMDM6MDE6NTIKICAgIC0gaG9zdC5oOiBjb25maWdfcmVxdWlyZV9taWIoSE9TVC1SRVNPVVJDRVMtVFlQRVMpCgpuYmEgMzAgSmFuIDAwIDAzOjA0OjIyCiAgICAtIGhyX2Rpc2suYzogY29udmVydCB0byAxayBibG9ja3MKCm5iYSAzMCBKYW4gMDAgMDM6MDk6MzgKICAgIC0gaHJfc3RvcmFnZS5jOiBjb252ZXJ0IGZyb20gcGFnZXMgdG8gMWsgYmxvY2tzCgpuYmEgMzAgSmFuIDAwIDAzOjExOjI4CiAgICAtIGlmLmM6IGRlZmVuc2l2ZSB0ZXN0IGZvciBtaXNzaW5nIG9iamVjdHMgKGl0IG1pZ2h0IGZhaWwgdG8gc2hvdwogICAgCWRvd24gc3RhdHVzIHByb3Blcmx5KQoKbWFyeiAzMCBKYW4gMDAgMDg6MTk6MzQKICAgIGNyZWF0ZSBWMyB1c2VyIGVudHJ5LCBjbGVhbnVwCgptYXJ6IDMwIEphbiAwMCAxMDo0MjozNgogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAgCiAgICBOb3RlOiBLTk9XTiBCVUdTCiAgICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQoKbWFyeiAzMCBKYW4gMDAgMTA6NDQ6MzcKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgIAogICAgTm90ZTogS05PV04gQlVHUwogICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKICAgIAogICAgbm90IHN1cmUgdGhhdCB0aGlzIGV2ZXIgd29ya2VkIC0gd2lsbCBoYXZlIHRvIGxvb2sgYXQgb2xkIE9DVEVUU1RSCiAgICBiZWhhdmlvdXIgYW5kIHNlZSBob3cgdG8gcmVjcmVhdGUgaXQKCm1hcnogMzAgSmFuIDAwIDEwOjU4OjAyCiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzIGV0Yy4KCmRhdmVzIDMxIEphbiAwMCAwMTowNToxNgogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IExvZyBmYWlsZWQgTUlCIHJlZ2lzdHJhdGlvbnMuCgpkYXZlcyAzMSBKYW4gMDAgMDE6NDU6MTUKICAgIC0gKGFnZW50L2FnZW50X3RyYXAuYyk6IEluY2x1ZGUgaW5zdGFuY2Ugc3ViaWRlbnRpZmllciBpbiBzbm1wVHJhcE9JRCBhbmQKICAgIAlzbm1wVHJhcEVudGVycHJpc2UgT0lEIGRlZmluaXRpb25zLiAgKFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuKQoKZGF2ZXMgMzEgSmFuIDAwIDAyOjQwOjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBSZXN0b3JlIHRyYWRpdGlvbmFsIHNvY2tldCBmaWVsZCBuYW1lcy4KCmRhdmVzIDMxIEphbiAwMCAwMzowMDoxNgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQWx0ZXJuYXRpdmUgYXBwcm9hY2ggdG8gSXJpeCBzb2NrZXQgaGFuZGxpbmcuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MDM6MTUKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gQXR0ZW1wdCB0byBkZXRlY3Qgbm9uLXRyYWRpdGlvbmFsIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSAob24gSXJpeCA2LngpLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjE0OjUwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBJbml0aWFsaXplIGFkZHJsZW4gaW4gX3Nlc3NfcmVhZCgpLiAgKEZyYW5rIFN0cmF1c3MpCgpkYXZlcyAzMSBKYW4gMDAgMDM6NDE6MDgKICAgIC0gKEFHRU5ULnR4dCk6IFJldmlzZWQgYW5kIHVwZGF0ZWQgdmVyc2lvbi4KCmRhdmVzIDMxIEphbiAwMCAwNzo0OTo1MAogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBJbXByb3ZlZCBjaGVja2luZyBmb3IgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTE6NTQKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEF0dGVtcHQgdG8gbWltaWMgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTM6NTIKICAgIC0gKHNubXBsaWIvYXNuMS5jIHNubXBsaWIvc25tcC5jIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB1c20uYyk6CiAgICAgIC0gRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTU6MDYKICAgIC0gKHNubXBsaWIvc25tcHYzLltjaF0pOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgICAgLSBOLkI6IFRoaXMgY2hhbmdlcyB0aGUgaW50ZXJmYWNlIG9mIHNubXB2M19nZW5lcmF0ZV9lbmdpbmVJRCgpIHNsaWdodGx5LgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU2OjM4CiAgICAtIChhcHBzL3NubXB0ZXN0LmMpOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKCmRhdmVzIDMxIEphbiAwMCAwNzo1Nzo1NgogICAgLSAobWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5bY2hdKToKICAgICAgLSBQcm92aWRlIGFuIGV4YW1wbGUgZm9yIGhvdyB0byB0cmlnZ2VyIGEgdHJhcC4KCm1hcnogMzEgSmFuIDAwIDEwOjQxOjE2CiAgICBzZXQgRFNfTElCX0RPTlRfQlJFQUtET1dOX09JRFMgdG8gZ2V0IHByZXZpb3Vsc3kgcmVsZWFzZWQgYmVoYXZpb3VyIG9mIGdldF9zeW1ib2wgd3J0IG9jdGV0IGJhc2VkIGluc3RhbmNlIGlkcyAoaS5lLiwgbm8gZG91YmxlLXF1b3RpbmcpCgpkYXZlcyAgMSBGZWIgMDAgMDE6NDk6NTUKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSBzbm1wbGliL3NubXBfYXBpLmgpOgogICAgICAtIEZpeCBicm9rZW4gc2V0dGluZyBvZiBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgY2hvaWNlLgoKZGF2ZXMgIDEgRmViIDAwIDAzOjM3OjI1CiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBzZXNzaW9uIElEIGhhbmRsaW5nIHdoZW4gZGVsZWdhdGluZyByZXF1ZXN0cy4KCmRhdmVzICAxIEZlYiAwMCAwNDoxOToxNgogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENhdGNoIGNvbW1vbiBpbnZhbGlkIGNvbmZpZ3VyZSBvcHRpb25zLgoKZGF2ZXMgIDEgRmViIDAwIDA1OjI3OjAzCiAgICAtIChGQVEpOiBFeHBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIGdlbmVyYXRpbmcgdHJhcHMgZnJvbSB0aGUgYWdlbnQgc2xpZ2h0bHkuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzI6MDMKICAgIC0gKGRpc2tpby4qKTogbW92ZWQgdG8gdGhlIHVjZC1zbm1wIGRpcmVjdG9yeQoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjM0OjA5CiAgICAtIChkaXNraW8uaCk6IGxvYWQgdGhlIG1pYi4KCmhhcmRha2VyICAxIEZlYiAwMCAwODozNDoyNAogICAgLSAoZGlza2lvLmMpOiBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4xNS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0MzowMwogICAgLSAoTkVXUyk6IHVwZGF0ZSAoYWdhaW4pLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQ1OjQxCiAgICAtIChzbm1wY21kLjEpOiAuUFAgLT4gLklQIGZvciAtT2IuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDY6MDcKICAgIC0gKHNubXB1c20uMSk6IGNoYW5nZWQgY29udGV4dCBzdHJpbmcgaW4gZXhhbXBsZXMgdG8gIiIuCgptc2xpZmNhayAgMSBGZWIgMDAgMTE6MjY6MzYKICAgIEZpeHVwIG1vcmUgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zLgoKZGF2ZXMgIDIgRmViIDAwIDAxOjEyOjM3CiAgICAtIChob3N0L2hyX2Rpc2suYyk6IEZpeCBzb2xhcmlzIGluaXRpYWxpc2F0aW9uLCBwbHVzIGV4dHJhIGRlYnVnZ2luZyBpbmZvLgoKbXNsaWZjYWsgIDIgRmViIDAwIDA0OjQ0OjIzCiAgICBSZW1vdmUgZGVwZW5kZW5jaWVzIG9uIChtb3ZlZCkgdmVzdGludGVybmV0dC9kaXNraW8KCm5iYSAgMiBGZWIgMDAgMDY6NDQ6MzEKICAgIC0gc29sYXJpczIuOC5oOiBTb2xhcmlzIDggc2VlbXMgY2xvc2UgdG8gU29sYXJpcyA3CgpuYmEgIDIgRmViIDAwIDA2OjQ1OjI1CiAgICAtIGhyX2Rpc2suYzogYWRkIE5ldEJTRCBzdXBwb3J0CgpoYXJkYWtlciAgMiBGZWIgMDAgMDc6MTc6MjgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAKCmRhdmVzICAyIEZlYiAwMCAwODowMjo0NgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBDb3JyZWN0bHkgaGFuZGxlIGluZGl2aWR1YWxseSBleGNsdWRlZCBpbnN0YW5jZXMKCm1zbGlmY2FrICAyIEZlYiAwMCAwODo0MjoxNwogICAgQWxsb3cgLUNvIHRvIGFmZmVjdCB0aGUgb3V0Y29tZS4KCm1zbGlmY2FrICAyIEZlYiAwMCAwODo1Mjo0MwogICAgZml4IHRoZSBmYXQtZmluZ2VyaW5nIHBhdGNoIEkganVzdCBtYWRlLiBmZWguCgpoYXJkYWtlciAgMiBGZWIgMDAgMTA6NTI6MzMKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gUm9iZXJ0IE1pbGVzOgogICAgICAtIHZhcmlvdXMgZml4ZXM6CiAgICAgICAgMSkgVGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiByZXF1ZXN0IGNvdWxkIGJlIGxvc3QuCiAgICAgICAgMikgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyBuZXZlciByZWNlaXZlZCBhIHJlc3BvbnNlLgogICAgICAgIDMpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgd2VyZSBub3QgZmluZGluZyB0aGUgcmVnaXN0cmF0aW9uIHdoZW4gdGhlCiAgICAgICAgICAgZGVsZXRlJ3MgcHJpb3JpdHkgd2FzIHNldCB0byAtMS4KICAgICAgICA0KSBOb24temVybyB2YWx1ZXMgd2VyZSBub3QgYmVpbmcgZW5jb2RlZCBwcm9wZXJseSBpbiByZWdpc3RyYXRpb24KICAgICAgICAgICByZXNwb25zZXMuCgptYXJ6ICAyIEZlYiAwMCAxNDoxODowOQogICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCgptc2xpZmNhayAgMiBGZWIgMDAgMTQ6MTg6MjIKICAgIExldCBoclByb2Nlc3NvckxvYWQgb3V0IG9mIHRoZSBnZW5pZSdzIGJvdHRsZS4KCm1zbGlmY2FrICAyIEZlYiAwMCAxNjoyNDoxNQogICAgVG91Y2h1cCBmb3IgYnVpbGRpbmcgbW9yZSBNSUIgbW9kdWxlcyBpbiBXaW4zMiAoTVNWQykuCgptc2xpZmNhayAgMiBGZWIgMDAgMTY6MzY6MjEKICAgIFRvdWNodXAgdG8gYnVpbGQgbW9yZSBNSUIgbW9kdWxlcyBvbiBXaW4zMi4KCmRhdmVzICAzIEZlYiAwMCAwMTozNToxMgogICAgLSAoRkFRKTogRG9jdW1lbnQgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbCBzdHVmZi4KCm1zbGlmY2FrICAzIEZlYiAwMCAwNDoxMjo1NwogICAgVW5kbyB1bmluZm9ybWVkIGNoYW5nZSA6IGxvYWQgYXZlcmFnZSAhPSBhdmVyYWdlIHRpbWUgdGhhdCBDUFUgaXMgaWRsZS4KCm1zbGlmY2FrICAzIEZlYiAwMCAwNjo0MzoxMAogICAgaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIHRvIG1ha2UgdGhlIFVTSU5HXyBjb25zdGFudHMgdmlzaWJsZS4KCm1hcnogIDMgRmViIDAwIDA5OjQ0OjM3CiAgICB1cGRhdGUgbXkgZW1haWwKCm1zbGlmY2FrICAzIEZlYiAwMCAwOTo1Njo0OAogICAgSW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIGZyb20gbWliaW5jbC5oLCBub3QgdG9wIGxldmVsIGNvbmZpZy5oLgoKbWFyeiAgMyBGZWIgMDAgMTA6NDg6MzcKICAgIGFkZCAtdSBQSURGSUxFIHRvIHNubXB0cmFwZCwgbm93IHdlIG5lZWQgLWMgLUMgOiksIGJ0dyBpcyB0aGUgdmFsdWUgb2Ygb3B0YXJnIHJlbGlhYmxlIGFmdGVyIGdldG9wdCBoYXMgYmVlbiBjYWxsZWQgYWdhaW4uLi5pdCBzZWVtcyB0byB3b3JrCgptc2xpZmNhayAgMyBGZWIgMDAgMTI6NTc6MjAKICAgIFJlbW92ZSBET1Mtc3R5bGUgbGluZSB0ZXJtaW5hdGlvbiAoQ1ItTEYgLS0+IExGKS4KICAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQgYWJvdXQgb2Jzb2xldGUgdjJwYXJ0eS4KCm1zbGlmY2FrICAzIEZlYiAwMCAxMjo1ODoyNwogICAgTm90ZSB0aGUgd29tYmF0IGlzIHJlcGxhY2VkIGJ5IGV4YW1wbGUgaW4gbW9yZSBwbGFjZXMuCgptc2xpZmNhayAgMyBGZWIgMDAgMTM6Mjg6MzEKICAgIEZvbGxvdyBjb25kaXRpb24gSEFWRV9HRVRQSUQgZm9yIHBpZF9maWxlIG9iamVjdC4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDoyOToxOQogICAgLSAoZHVtbXkvKik6IHJlbW92ZWQsIHVzZSBleGFtcGxlIGluc3RlYWQuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NDQ6MzMKICAgIC0gKHN1YmFnZW50LmMpOiBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmguCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NDY6MTAKICAgIC0gKHN1YmFnZW50LmMpOiBwcm90ZWN0IHN5c09SVGFibGUgY2FsbGJhY2tzIHdpdGggI2lmZGVmcy4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDo1MTo0MAogICAgLSAoUkVBRE1FKTogcmVtb3ZlIGR1bW15IHJlZmVyZW5jZS4KCm5iYSAgMyBGZWIgMDAgMjM6NTc6NDkKICAgIC0gYWdlbnQvcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLCBjbGllbnQuYzogY2hhbmdlIHNvbWUgdHlwZSBjYXN0cyBmcm9tCiAgICAJKGNoYXIgKikgdG8gKHVfY2hhciAqKSB0b3Agc2lsZW5jZSBzb21lIHdhcm5pbmdzLgoKbmJhICAzIEZlYiAwMCAyMzo1OTo1NwogICAgLSBtdF9zdXBwb3J0Lmg6IGFub3RoZXIgd2F5IG9mIGRvaW5nIG5vdGhpbmcsIG5vdCBnaXZpbmcgYSAibnVsbCBlZmZlY3QiCiAgICAJd2FybmluZyBmcm9tIGdjYy4KCm5iYSAgNCBGZWIgMDAgMDA6MTY6MDEKICAgIC0gcmVhZF9jb25maWcuYywgbWliLmM6IGZpeCBzb21lIFBBVEggc2VwYXJhdG9ycyBmcm9tIGNvbnN0YW50IDogdG8KICAgIAlFTlZfU0VQQVJBVE9Se19DSEFSfQoKbmJhICA0IEZlYiAwMCAwMDoxNzo0OAogICAgLSBocl9kaXNrLmM6IEEgbGl0dGxlIGNsZWFudXAgb2YgdGhlIGRpc2sgZGV2aWNlIGRlZmluaXRpb25zLCBhbHNvIGFkZGluZwogICAgCVNDU0kgdG8gRnJlZUJTRCAzCgpuYmEgIDQgRmViIDAwIDAxOjIwOjU1CiAgICAtIHZhY21fdmFycy5jOiBzbGlnaHQgcmV3b3JkaW5nIG9mIHdhcm5pbmcgbWVzc2FnZQoKbmJhICA0IEZlYiAwMCAwNDowMDoyNwogICAgLSBocl9kaXNrLmM6IHJlYWxseSBkbyB0aGF0IEZyZUJTRCBzY3NpIHRoaW5nCgptYXJ6ICA0IEZlYiAwMCAwNjo0NDoyNAogICAgIGhhdmUgbWliIGxvYWRpbmcgYXBpIHJldHVybiByZXN1bHQgY29kZXMKCm1hcnogIDQgRmViIDAwIDA4OjU1OjQyCiAgICBhZGQgZGVmYXVsdHMgZm9yIHYyIHRyYXAgcGFyYW1zCgpoYXJkYWtlciAgNCBGZWIgMDAgMTI6MDE6MzIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IGZpbmQsIGxvY2F0ZSwgYW5kIHVzZSBwZXJsIGlmIGZvdW5kLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEyOjQ3OjI2CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYyk6IHByb3ZpZGUgdjMgZGVmYXVsdHMuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6MTI6MTgKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBkb24ndCBwcmludCBmYWlsZWQgYWNjZXNzIGVycm9ycyAoRUFDQ0VTKS4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzoxNTo1MQogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjUwOjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogZG9uJ3QgcmVhZCB0aGUgb3B0IGNvbmZpZyBmaWxlIG9yIGNhbGwKICAgICAgcG9zdF9jb25maWcgY2FsbGJhY2tzLCBzaW5jZSB0aGUgbGlicmFyeSB0YWtlcyBjYXJlIG9mIHRoYXQgbm93LgoKbWFyeiAgNCBGZWIgMDAgMTM6NTI6MDgKICAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjU2OjE5CiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gaW1wbGVtZW50IC1jIGFuZCAtQyBmbGFncyBmb3IgSm9lLgogICAgICAtIHJlZGlkIHRoZSBpbml0IHN0cnVjdHVyZSB0byBtYWtlIGl0IGxvb2sgbW9yZSBsaWtlIHRoZSBjdXJyZW50IGFnZW50LgoKaGFyZGFrZXIgIDQgRmViIDAwIDE0OjAxOjMwCiAgICAtIChzbm1wdHJhcGQuOCk6IGRvY3VtZW50IC1jIGFuZCAtQy4KCm1hcnogIDQgRmViIDAwIDE1OjIxOjQxCiAgICBidWlsZCBmaXhlcyBhbmQgdGVzdCBlbmhhbmNlbWVudHMKCm1hcnogIDQgRmViIDAwIDE1OjQ0OjQ0CiAgICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjAgLT4gVjQuMC4xCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6NDQ6MjcKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgc25tcHVzbS4xIG1hbnVhbCBwYWdlLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDA0OjQ0OjQ3CiAgICBDbGVhbiBDUnMgZnJvbSByZWFkX2NvbmZpZyxzbm1wX2xvZ2dpbmc7IGNvbW1lbnQgZGVmaW5lIFVTRV9BU05fU0hPUlRfTEVOLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDA1OjExOjEzCiAgICBSZW1vdmUgQVNOX1NIT1JUX0xFTiBoYWNrIC0ga25vd24gdG8gZHVtcCBjb3JlIGluIGFnZW50LgoKbXNsaWZjYWsgMjQgQXVnIDk5IDA2OjE5OjQ5CiAgICBBZGQgIi4iIHRvIFBBVEggZm9yIFJVTlRFU1RTOyBEcm9wIG9wdHJlc2V0IHRvIGJ1aWxkIG1vc3QgcGxhdGZvcm1zCgptc2xpZmNhayAyNCBBdWcgOTkgMTA6MjU6NTMKICAgIC0odGVzdGluZy9ldmFsX3Rvb2xzKSAtIGxldCBzb21lIChBSVgpIGFnZW50cyBzZXR0bGUgYmVmb3JlIGZpcmluZyByZXF1ZXN0cy4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMjo0ODoyMQogICAgLSAodmFjbV92YXJzLmMpOiBjb3JyZWN0IHN5c09SVGFibGUgZW50cnkuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6MzY6MzUKICAgIC0gKHNubXB1c20uYyk6IGNoZWNrIGZvciBudWxsIHJlc3BvbnNlIHBvaW50ZXIuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6Mzc6MzEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXB2My5jKToKICAgICAgLSBwcm92aWRlIGRlZlZlcnNpb24gdG9rZW4gc3VwcG9ydCBpbiBzbm1wLmNvbmYgKHNvcnQgb2YgaGFja2lzaCkuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTM6NDE6MTgKICAgIC0gKFRPRE8pOiByZW1vdmUgc25tcHYzIHN1cHBvcnQgOi0pCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MDU6MzkKICAgIC0odG9wL01ha2VmaWxlLmluKSAtIHJlbW92ZSBtb3JlIGdlbmVyYXRlZCBmaWxlcyB3aXRoIGRpc3RjbGVhbiBydWxlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE0OjE1OjQwCiAgICAtIChhbGxfc3lzdGVtLmgpOiByZW1vdmUuICBhZ2Fpbi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDoxNzozMwogICAgLShob3N0L2hyX3N3cnVuO21pYklJL2ljbXAsaXA7dWNkLXNubXAvZGlzayxwcm9jKSBsb2dfcGVycm9yIC0tPiBzbm1wX2xvZ19wZXJyb3IKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNToxNDoxOAogICAgLShzbXV4LmMpIGFwcGx5IE5pY2sgQW1hdG8ncyBwYXRjaDogcHJldmVudCBTTVVYIGNsb3NlIG9uIHBhcnNlIG9yIGVycm9yLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE1OjU5OjQyCiAgICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHZlcnNpb24gc2V0dGluZyBpbiBzbm1wX2FwaS5jLiAgTm90IG5lZWRlZCB0aGVyZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNjowMTo1NQogICAgLSAoTkVXUyk6IDQuMC4xIHVwZGF0ZQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjA1OjE1CiAgICAtKGNvbmZpZ3VyZS4qKSBtb3ZlIHN0YXRlbWVudCBhYm91dCB1Y2REZW1vUHVibGljIGludG8gY29tbWVudCBmaWVsZC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjo0OToyMgogICAgLSh0ZXN0aW5nLyopIHJ1biB0ZXN0cyB3aGVuIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZCwgYW5kIHdoZW4KICAgIHRoZSBidWlsZCB0cmVlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgc291cmNlIHRyZWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy42LjIgLT4gVjQuMAoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjExOjU3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoYW5nZSB0aGUgUEVSU0lTVEVOVEZJTEUgZGVmaW5lIHRvIFBFUlNJU1RFTlRESVIuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MTc6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXBkLmgsIHN5c3RlbS5jKToKICAgICAgLSBtb3ZlIHBlcnNpc3RlbnQgY2FjaGUgY2FwYWJpbGl0eSBpbnRvIHRoZSBsaWJyYXJ5IGZyb20gdGhlCiAgICAgICAgYWdlbnQuIChzbm1wdHJhcGQsIGFuZCBvdGhlcnMgd2lsbCBuZWVkIHRoaXMgYXMgd2VsbCkuCiAgICAgIC0gaW1wbGVtZW50IHNvbWUgbmV3IGZ1bmN0aW9uczogaW5pdF9zbm1wdjMoKSwgc25tcHYzX3NodXRkb3duKCksCiAgICAgICAgc25tcHYzX2dldF9lbmdpbmVfYm9vdHMoKSwgZXRjLgogICAgICAtIGFnZW50Qm9vdHMgLT4gZW5naW5lQm9vdHMuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjE6MDUKICAgIC0gKE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIG1vdmUgcGVyc2lzdGVudCBjYWNoZSBjYXBhYmlsaXR5IGludG8gdGhlIGxpYnJhcnkgZnJvbSB0aGUKICAgICAgICBhZ2VudC4gKHNubXB0cmFwZCwgYW5kIG90aGVycyB3aWxsIG5lZWQgdGhpcyBhcyB3ZWxsKS4KICAgICAgLSBpbXBsZW1lbnQgc29tZSBuZXcgZnVuY3Rpb25zOiBpbml0X3NubXB2MygpLCBzbm1wdjNfc2h1dGRvd24oKSwKICAgICAgICBzbm1wdjNfZ2V0X2VuZ2luZV9ib290cygpLCBldGMuCiAgICAgIC0gYWdlbnRCb290cyAtPiBlbmdpbmVCb290cy4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToyMzowOQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgICAgIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSBwYXNzIGFwcCBuYW1lIHRvIHNubXBfcGFyc2VfYXJncywgc28gaXQgY2FuIHBhc3MgaXQgdG8KICAgICAgICBpbml0X3NubXAoKSwgd2hpY2ggbm93IG5lZWRzIGl0IGZvciBwZXJzaXN0ZW50IGNhY2hlIHJlYWRpbmcuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjU6MTMKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oKToKICAgICAgLSBCZWdpbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU05NUC1GUkFNRVdPUkstTUlCLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDE3OjQzOjEyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSBFTlRFUlBSSVNFX05VTUJFUiB0byAyMDIxLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDE3OjQzOjUwCiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBpbXBsZW1lbnQgc25tcEVuZ2luZUlEIGNyZWF0aW9uIGFuZCBjb25maWd1cmF0aW9uLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDE3OjQ0OjA2CiAgICAtIChzbm1wRW5naW5lLmMpOiByZXBvcnQgc25tcEVuZ2luZUlEIHByb3Blcmx5LgoKaGFyZGFrZXIgMTQgU2VwIDk4IDE3OjQ5OjE1CiAgICAtIChzbm1wdjNtaWJzLmgpOiBoaWdoLWxldmVsIG1vZHVsZSBjcmVhdGVkIHRvIGltcG9ydCB2MyByZWxlYXRlZCBtaWJzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIxOjA5OjQxCiAgICAtICh1dGlsX2Z1bmNzLltjaF0sIHNubXBFbmdpbmUuYywgc25tcHYzLltjaF0sIHN5c3RlbS5bY2hdKToKICAgICAgLSBtb3ZlIHNubXBFbmdpbmVUaW1lIGNhbGN1bGF0aW9uIHRvIHNubXBsaWIvc25tcHYzLmMuCiAgICAgIC0gbW92ZSBjYWxjdWxhdGVfdGltZV9kaWZmKCkgdG8gc3lzdGVtLmMgZnJvbSB1dGlsX2Z1bmNzLmMuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6Mjk6NTUKICAgIC0gKHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCk6CiAgICAgLSBpbXBsZW1lbnQgU05NUC1NUEQtTUlCLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjMwOjEwCiAgICAtIChzbm1wdjNtaWJzLmgpOiBhZGQgc25tcE1QRFN0YXRzIG1vZHVsZS4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjo0MDoyNAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wTVBEU3RhdHMuYyk6IHJlZ2lzdGVyIHRoZSBtb2R1bGVzIGluIHN5c09SVGFibGUuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDQ6MTEKICAgIC0gKHNubXBNUERTdGF0cy5jKTogZG91YmxlIGJsYW5rIC0+IHNpbmdsZS4KCmhhcmRha2VyIDE2IFNlcCA5OCAwNzowNDo1OAogICAgLSAodXNtU3RhdHMuYywgdXNtU3RhdHMuaCk6IGltcGxlbWVudCB0aGUgdXNtU3RhdHMgcG9ydGlvbiBvZiB0aGUKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi4KCmhhcmRha2VyIDE2IFNlcCA5OCAwNzowNTo0MwogICAgLSAoc25tcHYzbWlicy5oKTogYWRkIHVzbVN0YXRzIHRvIHJlcXVpcmUgbGlzdC4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1NDowOAogICAgLSAoc25tcF9hcGkuYyk6IGNoYW5nZSBzcHJpbnRmX29pZCBidWYgbGVuZ3RoIGluIERFQlVHUE9JRCB0byA0MDk2LgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU1OjA3CiAgICAtIChzbm1wZC5jKTogaW5pdF9zbm1wdjMgbmVlZHMgdG8gZ28gYWJvdmUgaW5pdF9hZ2VudCBmb3IgZW5naW5lSUQgY3JlYXRpb24uCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTk6MjAKICAgIC0gKHNubXB2M21pYnMuaCwgdXNtVXNlci5jLCB1c21Vc2VyLmgsIE1ha2VmaWxlLmluLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBiYXNpYyB1c21Vc2VyIHN0cnVjdHVyZSBjcmVhdGVkIGZvciB0aGUgbGlicmF5IHdpdGggc3VwcG9ydAogICAgICAgIGZ1bmN0aW9uczoKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fZ2V0X3VzZXIoKmVuZ2luZUlELCAgZW5naW5lSURMZW4sICAqbmFtZSwgKnVzZXJMaXN0KTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fYWRkX3VzZXIoKnVzZXIsICp1c2VyTGlzdCk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2ZyZWVfdXNlcigqdXNlcik7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2Nsb25lX3VzZXIoKmZyb20pOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9jcmVhdGVfaW5pdGlhbF91c2VyKCk7CiAgICAgIC0gZmlyc3QgcGFzcyBhdCBiYXNpYyBVU00gbW9kdWxlIHN1cHBvcnQgYWRkZWQgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTggU2VwIDk4IDEyOjQyOjQ2CiAgICAtIChzbm1wLXRjLmgpOiBjcmVhdGUgYSBuZXcgLmggZmlsZSB0byBzdG9yZSBjb21tb24gdGV4dHVhbCBjb252ZW50aW9uIGRlZmluZXMuCgpoYXJkYWtlciAxOCBTZXAgOTggMTI6NDY6MzgKICAgIC0gKHVzbVVzZXIuYywgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIHN0b3JhZ2VUeXBlL3VzZXJTdGF0dXMgaW4gdGhlIHVzbVVzZXIgc3RydWN0dXJlLgogICAgICAtIGZpeCB0aGUgYXV0aC9wcml2IHByb3RvY29sIHBvaW50ZXIgaW5pdGlhbGl6YXRpb25zIGZvciB0aGUgImluaXRpYWwiIHVzZXIuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDY6MTMKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBzbm1wdXNtLmggYW5kIHNubXB2My5oLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ3OjE3CiAgICAtIChzbm1wX2FnZW50LmMpOiBpZiBhIG1pYiBtb2R1bGUgcmV0dXJucyBhbiBlcnJvciA+IFNOTVBfR0VOX0VSUiwKICAgICAgdHJhbnNsYXRlIHRoZSBlcnJvciB0byBTTk1QX0dFTl9FUlIgZm9yIHYxIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ5OjA0CiAgICAtIChtaWIyYyk6CiAgICAgIC0gZnByaW50ZiAtPiBERUJVR1AuCiAgICAgIC0gX19QIC0+IEFOU0kuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NTI6MDgKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBnZXROZXh0IGJ1ZyBmaXhlcy4KICAgICAgLSBtYWtlIHVzbVB1YmxpYyB0cnVlbHkgd3JpdGFibGUuCiAgICAgIC0gaW1wbGVtZW50IHVzbV9wYXJzZV9vaWQoKSB0byBwYXJzZSBhbiBvaWQgaW50byBlbmdpbmVJRC9uYW1lLgogICAgICAtIGltcGxlbWVudCB0aGUgdXNtVXNlclNwaW5Mb2NrLgogICAgICAtIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgoKaGFyZGFrZXIgMjEgU2VwIDk4IDExOjEyOjQ5CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQwOjA0CiAgICAtIChTTk1QdjItVEMudHh0KTogcmVqdXN0aWZ5IGEgdGFibGUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDU6MTMKICAgIC0gKHVzbVVzZXIuYyk6CiAgICAgIC0gTWFrZSB1c21Vc2VyU3RhdHVzIGFjdHVhbGx5IHdyaXRhYmxlIGFuZCBjYXBhYmxlIG9mIGNyZWF0aW5nIG5ldyByb3dzLgogICAgICAtIEJlZ2luIChicm9rZW4pIGNsb25lRnJvbSBzZXR0aW5nLgogICAgICAtIEZpeGVzOgogICAgICAgIC0gcHJvcGVybHkgbWFsbG9jIHNwYWNlLgogICAgICAgIC0gcHJvcGVybHkgdXNlIGRvdWJsZSBjaGFyIG5hbWUgYW5kIGVuZ2luZUlEIHBvaW50ZXJzLgogICAgICAgIC0gZG8gcHJvcGVyIG9pZCBjb21wYXJpc29ucyBmb3IgZ2V0TmV4dHMuCiAgICAgICAgLSBjaGVjayB0byBzZWUgdGhhdCB1cHRyIGlzIGRlZmluZWQgYmVmb3JlIHVzaW5nIGl0IHRvIHJldHJpZXZlIGRhdGEuCiAgICAgICAgLSBjbG9uZUZyb20gc2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIFplcm9Eb3RaZXJvIE9JRC4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0NjozNQogICAgLSAoc25tcHVzbS5jKToKICAgICAgLSBmaXggdXNtX2FkZF91c2VyKCkgZnJvbSBhbHdheXMgYWRkaW5nIHRoZSB1c2VyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgICAgIC0gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBhdXRoL3ByaXYgcHJvdG9jb2xzIG9uIG5ldyB1c2Vycy4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0NzoyOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGNyZWF0ZSBzbm1wX2R1cGxpY2F0ZV9vYmppZCgpIHRvIG1hbGxvYyBhIG5ldyBvaWQuCgpoYXJkYWtlciAyMyBTZXAgOTggMTI6MTU6MTEKICAgIC0gKElTU1VFUyk6IHVwZGF0ZQoKaGFyZGFrZXIgMjMgU2VwIDk4IDEyOjI0OjA0CiAgICAtIChJU1NVRVMpOiB0b29rIG9uZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxNzo1ODo0OQogICAgLSAoSVNTVUVTKTogY2xvbmluZy9tYWxsb2MgaXNzdWUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTc6NTk6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogY3JlYXRlZCB1c21fY2xvbmVGcm9tX3VzZXIoKSB0byBjbG9uZSBzZWMgaW5mby4KCmhhcmRha2VyIDIzIFNlcCA5OCAxODowMDoyMQogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21DbG9uZUZyb20gYWN0dWFsbHkgd29yayAoaXMgc2V0YWJsZSkuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6MTU6NTcKICAgIC0gKElTU1VFUyk6IHN0b3JhZ2UgdHlwZSBpc3N1ZXMuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6MTY6MjQKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtVXNlckF1dGhQcm90b2NvbCBhbmQgdXNtVXNlclByaXZQcm90b2NvbCB3cml0YWJsZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MDowNQogICAgLSAoSVNTVUVTKTogUm93U3RhdHVzIHF1ZXN0aW9uIGFkZGVkLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjUwOjQ1CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IGNyZWF0ZSB1c21fcmVtb3ZlX3VzZXIoKSB0byByZW1vdmUgYSB1c2VyCiAgICAgIGZyb20gYSBsaXN0LgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjUxOjQ2CiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbVVzZXJTdGF0dXMgZGVzdHJveSdzIGFjdHVhbGx5IHJlbW92ZSBhIHVzZXIuCgpoYXJkYWtlciAyNyBTZXAgOTggMjI6NTM6NTMKICAgIC0gKElTU1VFUyk6IG1vcmUgc3R1ZmYuCgpoYXJkYWtlciAyNyBTZXAgOTggMjI6NTU6MDkKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBidWcgZml4ZXMuCiAgICAgIC0gbmV3IHN1cHBvcnQgZnVuY3Rpb25zIGZvciBzYXZpbmcgdXNlcnMgdG8gdGhlIHBlcnNpc3RlbnQgY2FjaGUuCgpoYXJkYWtlciAyNyBTZXAgOTggMjI6NTc6MDAKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBidWcgZml4ZXMuCiAgICAgIC0gdXNtVXNlclN0YXR1cyBpcyBzZXRhYmxlICh0byBlaXRoZXIgdm9sYXRpbGUgb3Igbm9uVm9sYXRpbGUpLgogICAgICAtIHVzZXJzIGNyZWF0ZWQgYnkgc2V0J3MgYXJlIHNhdmVkIChpZiBzZXQgdG8gbm9uVm9sYXRpbGUpIG9uIGFnZW50IHNodXRkb3duLgoKaGFyZGFrZXIgMjkgU2VwIDk4IDIwOjExOjIwCiAgICAtIChJU1NVRVMpOiBlcnJvciBtYXBwaW5nIChjb2V4IHdvcmspLgoKbWFyeiAgMSBPY3QgOTggMTI6NTg6NDIKICAgIC0gKHNubXAuaCwgc25tcHVzbS5bY2hdLCBzbm1wX2FwaS5bY2hdKTogYWRkZWQgVVNNIGFwaSBhbmQgc25tcHYzX2J1aWxkLCBzb21lIHR3ZWFrcyB0byBwYXJzZSBpbiBwcmVwIGZvciBzbm1wdjNfcGFyc2UKCm1hcnogIDEgT2N0IDk4IDE0OjA1OjQ1CiAgICAtIChzbm1wX2FwaS5jKTogZml4ZXMgdG8gc25tcHYzX3BhcnNlCgptYXJ6ICA0IE9jdCA5OCAxNzoyMDozMAogICAgIC0gKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMsIHNubXB1c20uYyk6IGFkZGVkIHNubXB2MyBwYXJzaW5nIHJvdXRpbmVzCgpoYXJkYWtlciAgNSBPY3QgOTggMjA6MDU6MDMKICAgIC0gKElTU1VFUyk6IG1vcmUgc3R1ZmYuCgpoYXJkYWtlciAgNSBPY3QgOTggMjA6MDY6NTcKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBicmVha2Rvd24gb2Ygc25tcHYzX2J1aWxkKCkgaW50byBzdWItZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIxOjU5OjI2CiAgICAtIChzbm1wdXNtLmMpOiBtYWtlIGdlbmVyYXRlUmVxdWVzdE1zZyBkbyBzb21ldGhpbmcgZ2VuZXJpYy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjowMDoyMgogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogcmV0dXJuIGEgdV9jaGFyICogaW5zdGVhZCBvZiBhIGNoYXIgKiBmb3IgZW5naW5lSURzLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjAxOjA0CiAgICAtIChzbm1wX2FwaS5jKTogbWlzYyBidWcgZml4ZXMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6NTA6MTAKICAgIC0gKHNubXBfYXBpLmMpOiBsYXN0IG9mIGtub3duIGJ1Z3MgaW4gc25tcHYzX2J1aWxkIGZpeGVkIChhIHBvaW50ZXIKICAgICAgd2FzIGJlaW5nIHVzZWQgdHdpY2UgaW4gb3ZlcmxhcHBpbmcgbmVlZGVkIHRpbWUgcGVyaW9kcykuCgptYXJ6ICA3IE9jdCA5OCAxMzowMjo0MAogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgdjMgc3VwcG9ydAoKbWFyeiAgNyBPY3QgOTggMTM6MDY6NDEKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXB1c20uW2NoXSwgc25tcHYzLmMpOiBhZGRlZCBwZHUgZmllbGQgdG8gaG9sZCBzZWMgc3RhdGUgcmVmLCBmaXhlZCB1c20gcHJvdG90eXBlcywgYWRkZWQgY2hlY2sgZm9yIG51bGwgaGVudCByZXR1cm4KCmhhcmRha2VyICA3IE9jdCA5OCAxNTozNjowNQogICAgLSAoc25tcHVzbS5jKTogZmx1c2ggb3V0IGEgZ2VuZXJpYyBwcm9jZXNzSW5jb21pbmdNc2coKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNTozNjozNgogICAgLSAoc25tcF9pbXBsLmgpOiBhZGQgc2VjdXJpdHlOYW1lIHRvIHRoZSBhZ2VudCdzIHBhY2tldF9pbmZvIHN0cnVjdHVyZS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNTozODowMAogICAgLSAoc25tcF9hcGkuYyk6IG1hbnkgbWFueSBidWcgZml4ZXMgdG8gdjMgcGFyc2UvYnVpbGQgcm91dGluZXMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6Mzk6MTcKICAgIC0gKHZhY21fdmFycy5jKTogcmVjb2duaXplIHRoZSBzZWN1cml0eU5hbWUgd2hlbiBVU00gbW9kZWwgaXMgaW4gdXNlLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjE3OjEwCiAgICAtIChzbm1wX2FnZW50LmMpOiBpbml0aWFsIHBhc3MgYXQgdjMuICBXaWxsIGZhaWwgb24gc2VuZGluZyBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzo0NToyMgogICAgLSAoc25tcF9hcGkuYyk6IHBhc3MgaW4gdGhlIHNlY19wYXJtcyBsZW5ndGggdG8gcHJvY2Vzc0luY29taW5nTXNnCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6NDY6MDQKICAgIC0gKHNubXBfYWdlbnQuYyk6IGJ1ZyBmaXg6IHVzaW5nIGFuIGFycmF5IGFzIGEgcG9pbnRlciAodXNlZCB0byBiZSBvbmUpLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDIyOjQwOjQzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGRlZmF1bHQgc25tcHYzIHBhcmFtZXRlcnMgY2FuIGJlIHNwZWNpZmllZCBpbiBhIHNubXAuY29uZiBmaWxlLgoKaGFyZGFrZXIgIDggT2N0IDk4IDEwOjEzOjIzCiAgICAtIChJU1NVRVMpOiBldmVyeW9uZSBsb3ZlcyBpc3N1ZXMhCgpoYXJkYWtlciAgOSBPY3QgOTggMDg6MDM6NTcKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KCmRyZWVkZXIgIDkgT2N0IDk4IDEzOjU5OjEyCiAgICAtIChJU1NVRVMpOiBOZWVkIGEgcGFzcyBmb3IgdHJhZGl0aW9uYWwgVU4qWCBzeXN0ZW0gcHJvZ3JhbW1pbmcgaG9sZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjM6MjcKICAgIC0gKHNubXB1c20uYyk6IGdlbmVyYXRlUmVxdWVzdE1zZygpIGRvZXNuJ3QgQVNOIGVuY29kZSB0aGUgc2VjX3BhcmFtcy4KCmhhcmRha2VyICA5IE9jdCA5OCAxODoyNDowMgogICAgLSAoc25tcF9hcGkuYyk6IHJlc3RydWN0dXJlIHRoZSBwYWNrZXQgYnVpbGRpbmcgdG8gdXNlIGxlc3MgbWVtY3B5J3MuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjQ6MjYKICAgIC0gKHNubXBfYWdlbnQuYyk6IHVzZSBzbm1wX2J1aWxkX3BhY2tldCgpIHRvIGNvbnN0cnVjdCBhbGwgdjMgZGF0YS4KCmRyZWVkZXIgMTIgT2N0IDk4IDA3OjE4OjU2CiAgICAtIChJU1NVRVMpOiBwcm9vZiBtZW1vcnkgaW52b2NhdGlvbi9kaXNwb3NhbDsgcHV0IHRpbWUgc3RhbXBzIGluIGxvZyBmaWxlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzoxOToyOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbmV3IHN0YXRzIGNvdW50ZXIgQVBJLgogICAgICAtIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0MjoyOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGJ1ZyBmaXhlcyB3aXRoIGNvdW50ZXJzIChyZXR1cm5zIHVfaW50LCBFRykuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDQ6NTUKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gbWFrZSB2MyBjb2RlIHJldHVybiBlcnJvcnMgcHJvcGVybHkuCiAgICAgIC0gYnVnIGZpeGVzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQ1OjExCiAgICAtIChzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgsIHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgpOgogICAgICAtIHVzZSB0aGUgbmV3IHN0YXRzIGNvdW50ZXIgQVBJLgoKbWFyeiAxMiBPY3QgOTggMDc6NTY6MzAKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogbWVyZ2VkIGhleCB0byBiaW4gZnVuY3MgLSBUaGVyZSBjYW4gYmUgb25seSBPbmUKCm1hcnogMTIgT2N0IDk4IDA4OjExOjQ2CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wdXNtLltjaF0pOiBtZXJnZWQgaGV4IHRvIGJpbiBmdW5jcywgZml4ZWQgTVAvVVNNIGFwaSwgaW1wbGVtZW50ZWQgbm9BdXRoTm9Qcml2IFVTTSwgaW1wbGVtZW50ZWQgZW5naW5lIHByb2JlIGFsZ29yaXRobQoKaGFyZGFrZXIgMTIgT2N0IDk4IDA5OjIzOjQ5CiAgICAtIChJU1NVRVMpOiBub3RlIG9uIERhdmlkJ3MgaXNzdWUuCgpoYXJkYWtlciAxMiBPY3QgOTggMTI6MjY6MDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbG9vayBmb3IgL2Rldi9yYW5kb20gYW5kIGRlZmluZSBIQVZFX0RFVl9SQU5ET00uCiAgICAgIC0gbG9vayBmb3IgbGlia210IGFuZCBsaWJjcnlwdG8gYW5kIGRlZmluZSBIQVZFX0xJQlhYWC4KCm1hcnogMTIgT2N0IDk4IDE1OjQ2OjM2CiAgICAtIChzbm1wdXNtLmMpOiBmaXhlZCBoZWFkZXIgc2l6ZSBpc3N1ZXMgKGRpZmZlcmVuY2UgYmV0d2VlbiBhc25fYnVpbGRfaGVhZGVyIGFuZCBhc25fYnVpbGRfc2VxdWVuY2UpCgpoYXJkYWtlciAxMiBPY3QgOTggMjE6NTY6NDIKICAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IG1ha2UgY2FsY3VsYXRlX3RpbWVfZGlmZiB0YWtlIGEgcG9pbnRlci4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMTo1OTo1MwogICAgLSAoc25tcHYzLmMpOiB1c2UgbmV3IGNhbGN1bGF0ZV90aW1lX2RpZmYoKS4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjowNDowNgogICAgLSAoc25tcF9jbGllbnQuYyk6IGJ1ZyBmaXhlczoKICAgICAgLSBzbm1wX3N5bmNoX2lucHV0KCkgbmVlZHMgdG8gY2xvbmUgYSByZXBvcnQgcGR1IHRvby4KICAgICAgLSBzbm1wX2Nsb25lX3BkdSgpIG5lZWRzIHRvIGNvcHkgY29udGV4dEVuZ2luZUlELCBjb250ZXh0TmFtZSwgYW5kCiAgICAgICAgc2VjdXJpdHlOYW1lCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MTI6NTAKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1ha2Ugc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKCkgcmV0dXJuIHRoZSBjaGFuZ2VkIHZhbHVlLgogICAgICAtIGNyZWF0ZSBuZXcgZnVuY3Rpb246IHNubXBfZnJlZV92YXJiaW5kKCkgdG8gZnJlZSBhIGxpc3QuCiAgICAgIC0gXG4ncyB0byB0aGUgZW5kIG9mIHRoZSBuZXcgZGVidWdnaW5nIG1lc3NhZ2VzIGZvciBlbmdpbmVJRCBkaXNjb3ZlcnkuCiAgICAgIC0gTWVyZ2UgcmVzcG9uc2UvcmVwb3J0IGhhbmRsaW5nIHRvIG1ha2UgcmVwb3J0J3MgY2FsbCB0aGVpcgogICAgICAgIGNhbGxiYWNrIGFzIHdlbGwgKGVuZ2luZUlEIGRpc2NvdmVyeSB3YXMgbmV2ZXIgcmV0dXJuaW5nKS4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoxOTo1NAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjI6MzYKICAgIC0gKElTU1VFUyk6IHdpZXJkIG1lbW9yeSBxdWVzdGlvbi4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoyMzoxNgogICAgLSAoc3lzdGVtLmMpOiB1c2UgbmV3IGNhbGN1bGF0ZV90aW1lX2RpZmYoKS4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoyNTowNgogICAgLSAoc25tcF9hZ2VudC5jKTogaGFuZGxlIGVuZ2luZUlEIGRpc2NvdmVyeSByZXF1ZXN0cy4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjo1ODoyNgogICAgLSAodXNtVXNlci5jKTogbmV3IGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdXNlckxpc3QuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTg6NTUKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbmV3IGZ1bmN0aW9uIHVzbV9jaGVja19zZWNMZXZlbChpbnQsIHN0cnVjdCAqdXNtVXNlcik7CgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTk6MzYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGhhbmRsZSB1bmtub3duU2VjdXJpdHlOYW1lIGFuZCB1bnN1cHBvcnRlZFNlY3VyaXR5TGV2ZWwuCgpoYXJkYWtlciAxMyBPY3QgOTggMTM6Mjc6MTQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbmV3IG9wdGlvbnM6IC0tZGlzYWJsZS1wcml2YWN5LCAtLWVuYWJsZS12MnAtbWQ1LgoKaGFyZGFrZXIgMTMgT2N0IDk4IDEzOjMxOjIyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNvbW1lbnQgZm9ybWF0dGluZy4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF9hZGRfdmFyIHNldCB0aGUgc2l6ZSBvZiB0aGUgb2lkIGJ1ZmZlci4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzoyOTo0MAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBtb3ZlZCB0aGUgZGVmYXVsdCB1c2VyTGlzdCBpbnRvIHRoZSBsaWJyYXJ5LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjMxOjI5CiAgICAtICh1c21Vc2VyLmMpOiB1c2UgdGhlIG5ldyBsaWJyYXJ5IGRlZmF1bHQgdXNlciBsaXN0LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjMyOjU4CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIHVzZSB0aGUgbmV3IGxpYnJhcnkgZGVmYXVsdCB1c2VyIGxpc3QuCiAgICAgIC0gZG9uJ3QgZnJlZSBhIG5vbmV4aXN0ZW50IHBkdSAoaXQgb25seSBleGlzdHMgZm9yIHYzIHJlcXVlc3RzKS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzo0Nzo1NgogICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSBzdXJlIHBkdS0+c2VjdXJpdHlOYW1lIGlzIG51bGwgdGVybWluYXRlZC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNzo1MjoyMwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBuZXcgYXJndW1lbnRzIHRvIGNvbmZpZ3VyZSB0byBzZXQgQ0ZMQUdTIGFuZCBMSUJTOgogICAgICAgIC0gLS13aXRoLUtNVD1wYXRoCiAgICAgICAgLSAtLXdpdGgtU1NMZWF5PXBhdGgKICAgICAgLSBmaXggdG8gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUgdG8ga2VlcCB0aGUgYWJvdmUgZnJvbSBnZXR0aW5nIHRoZQogICAgICAgIHdyb25nIGFzbjEuaCBmcm9tIHRoZSBTU0xlYXkgcGFja2FnZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAyMDo0MTowNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBjaGVjayBmb3Iga210LmgKICAgICAgLSByZS1vcmRlciBDUFBGTEFHUyB0byBwdXQgLUkgZmxhZ3MgbGFzdC4KCmhhcmRha2VyIDE0IE9jdCA5OCAyMDo0NTo1MQogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBtb3ZlIHVzbV9wYXJzZV9jb25maWdfdXNtVXNlciB0byB0aGUgbGlicmFyeS4KCmhhcmRha2VyIDE0IE9jdCA5OCAyMDo0Nzo0OAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGluY2x1ZGUgc25tcHVzbS5oCgpkcmVlZGVyIDE1IE9jdCA5OCAxMjowMjo0MAogICAgLSBCYXNlIGZvciBTQ0FQSSArIHNvbWUgZm9ybWF0dGluZyBvbiB0aGUgcGF0aCB0byBzbm1wdjMgc3RhcnR1cCBhbmQgc2h1dGRvd24uCiAgICAtIFNodWZmbGluZyBpbiBoZWFkZXIgZmlsZXMgdG8gZGVmZWF0IHdhcm5pbmdzIG9mICNkZWZpbmUgcmVkdW5kYW5jaWVzOgogICAgCW5vdGFibHksIHMvZnJlZWJzZCouaCBhbmQgc25tcGxpYi9zeXN0ZW0uaAogICAgLSBEZWJ1ZyAmIHRpbmkgdG9vbGJhZyBpbiBzbm1wbGliL3tkZWJ1Zyx0b29sc30uKgogICAgLSBDaGFuZ2VkIGNvbmZpZ3VyZSBvcHRpb24gLS1lbmFibGUtdjJwLW1kNSB0byAtLWVuYWJsZS1pbnRlcm5hbC1tZDUuCiAgICAtIENvbnNvbGlkYXRlZCBsaWJyYXJ5IHN5c3RlbSBhbmQgbG9jYWwgaGVhZGVyIGluY2x1ZGUgc2VxdWVuY2VzIGludG8KICAgIAlzbm1wbGliL2FsbF8qLmggZmlsZXMuICBQb3NzaWJseSBiZXR0ZXIgc29sdXRpb25zIGZvciB0aGlzLi4uCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6MjQ6NTIKICAgIC0gKHVzbVVzZXIuYyk6IHJlbW92ZWQgdXNtX3BhcnNlX2NvbmZpZ191c21Vc2VyIHRoYXQgRGF2aWQgcHV0IGJhY2sgYnkKICAgICAgYWNjaWRlbnQgd2hlbiBkb2luZyBmb3JtYXRpbmcuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6MjU6MTcKICAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgpOiBhZGRlZCBsZW5ndGggdG8gZW5naW5lSUQuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6MjU6NTgKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBtYWtlIGNvcHlfd29yZCByZXR1cm4gYSBwb2ludGVyLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI2OjIxCiAgICAtIChzY2FwaS5jLCBzY2FwaS5oKTogbW92ZSAjaW5jbHVkZXMgZnJvbSAuaCB0byAuYy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNzowMwogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBuZXcgY29uZmlnIG9wdGlvbnMgdG8gY2hhbmdlIGtleXMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6Mjc6NTgKICAgIC0gKHNubXB2My5jKTogZG9uJ3QgY2FsbCBpbml0X2ttdCgpIHVubGVzcyBIQVZFX0xJQktNVCBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjQyOjAwCiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oKTogbW92ZSAjaW5jbHVkZSBmcm9tIC5oIHRvIC5jLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjQ3OjU2CiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gdXNlIGRvX2tleWNoYW5nZSgpIHRvIGltcGxlbWVudCB0aGUga2V5IGNoYW5nZSB3cml0ZSBtZXRob2RzLgogICAgICAtIGEgYml0IG9mIC1XYWxsIGNsZWFudXAuCgpkcmVlZGVyIDE2IE9jdCA5OCAxMToyODoxMgogICAgLSBVcGRhdGVkIFNDQVBJIGNyeXB0aW5nIGZ1bmN0aW9ucyB0byBpZGVudGlmeSB0cmFuc2Zvcm1zIE9JRHMgbm90ICNkZWZpbmUncy4KICAgIC0gTW92ZWQgImdsb2JhbCIgZGVmaW5pdGlvbnMgb2YgT0lEIHRyYW5zZm9ybXMgdG8gc25tcHVzbS5oLCBhbmQgb3V0IG9mCiAgICAJdXNtVXNlci5jIGFuZCBzbm1wdXNtLmMuCiAgICAtIHNjX2dlbmVyYXRlX2tleWVkX2hhc2goKSBzdGFuZHMgYXMgYSBnb29kIGV4YW1wbGUgb2Ygd2hhdCBvdGhlciBmdW5jdGlvbnMKICAgIAl3aWxsIGxvb2sgbGlrZS4KCmRyZWVkZXIgMTYgT2N0IDk4IDExOjUwOjA5CiAgICAtIChzY2FwaS5jLCBzY2FwaS5oKSBPdXRwdXQgYnVmZmVyIGFyZ3VtZW50cyBmb3IgKGVufGRlKWNyeXB0aW5nIGFyZQogICAgCXNpbmdsZS1wb2ludGVycy4KCmxld2lzIDE2IE9jdCA5OCAxMzoxNToxNgogICAgLSAtIChzbm1wdXNtLmgpOgogICAgICAtIEFkZGVkIFVTTV9FUlIgc3ltYm9scyB1c2VkIGJ5IHVzbV9nZW5lcmF0ZV9vdXRfbXNnCgpsZXdpcyAxNiBPY3QgOTggMTM6MjA6MDcKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIFJld3JvdGUgdXNtX2dlbmVyYXRlX291dF9tc2csIHJlbmFtaW5nIG9sZCBpbXBsZW1lbnRhdGlvbiB0bwogICAgICAgIHVzbV9nZW5lcmF0ZV9vdXRfbXNnX05VTEwKICAgICAgLSBUaGlzIGNvZGUgY29tcGlsZWQgb24gRnJlZUJTRCwgbm90IHRlc3RlZCBmb3IgbGlua2luZyBvciBydW5uaW5nCiAgICAgIC0gQWRkZWQgZnVuY3Rpb25zIHRvIGNhbGN1bGF0ZSBpbmRpY2llcyAoYXNuX3ByZWRpY3RfaW50X2xlbmd0aCwKICAgICAgICBhc25fcHJlZGljdF9sZW5ndGgsIHVzbV9jYWxjX29mZnNldHMpIGFuZCB0byBtYWtlIHRoZSBDQkMtREVTCiAgICAgICAgaW5pdGlhbGl6YXRpb24gdmVjdG9yICh1c21fc2V0X3NhbHQpLgoKZHJlZWRlciAxOCBPY3QgOTggMjE6MTQ6MDkKICAgIC0gU0NBUEkgY29kZSBjb21wbGV0ZSwgYnV0IG5vdCBjb21wbGV0ZWx5IHRlc3RlZC4KICAgIAlBZGRlZCB0ZXN0aW5nLyBkaXJlY3RvcnkuCiAgICAJVmVyaWZpZWQgdGhhdCBFZCdzIHJlY2VudCBjaGFuZ2VzIGNvbXBpbGUgY2xlYW5seS4KICAgIAlUcmllZCB0byBwYXRjaCB1cCAiY3JpdGljYWwiIC1XYWxsIHdhcm5pbmdzLgoKaGFyZGFrZXIgMTkgT2N0IDk4IDA3OjEwOjI3CiAgICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmUgLVdhbGwgcmVxdWlyZW1lbnQuCgpkcmVlZGVyIDE5IE9jdCA5OCAxNToxMjo1NwogICAgLSBDb3JlIFNDQVBJIHJvdXRpbmVzIGFwcGVhciBzb3VuZC4gIHRlc3RpbmcvIGRpcmVjdG9yeSBpcyBubyBsb25nZXIKICAgIAljb21tZW50ZWQgb3V0LiAgU05NUHYzIHN0eWxlIGtleSBtYW5pcHVsYXRpb25zIHVudGVzdGVkIHlldC4KICAgIAlDcmVhdGVkICg/KSBhIHNsZXcgb2YgbmV3IHdhcm5pbmdzIGZyb20gZmlsZXMgZWFybHkgaW4gY29tcGlsZSBzZXF1ZW5jZS4KCmRyZWVkZXIgMjAgT2N0IDk4IDExOjM4OjQyCiAgICAtIFRlc3RzIGZvciBnZW5lcmF0ZV9LdSBhbmQgZ2VuZXJhdGVfa3VsLiAgKHRlc3Rpbmcva3Rlc3QgLWggZm9yIGhlbHAuKQogICAgCUNsZWFuZWQgdXAgbmV3IHNldCBvZiAiY3JpdGljYWwiIHdhcm5pbmdzIC0tIG1vc3RseSBhZGRpbmcgI2luY2x1ZGUncy4KICAgIAlGaXhlZCBLTVQvYXBwcy9yYW5kdGVzdC5jIHNvIGl0IGNvbXBpbGVzIHVuZGVyIExpbnV4LgoKbWFyeiAyMSBPY3QgOTggMDg6MTg6MDMKICAgICAtKHNubXBfYXBpLltjaF0pOiBhZGQgZmllbGRzIGZvciBhdXRoS2V5IGFuZCBwcml2S2V5CgpsZXdpcyAyMSBPY3QgOTggMTI6MDc6MTYKICAgIC0gLSAoc25tcC5oKQogICAgICAtIEFkZGVkIFNOTVBfRVJSXyBlcnJvciBzeW1ib2xpYyBjb25zdGFudHMgZm9yIHRoZSBhdXRoL3ByaXYgKFVTTSkgbW9kdWxlCiAgICAgICAgcmVwb3J0ZWQgZXJyb3JzLgogICAgICAtIFVzZWQgdmFsdWVzIDE5LTI3LCB1cGRhdGVkIE1BWF9TTk1QX0VSUiB0byAyNy4KCmxld2lzIDIxIE9jdCA5OCAxMjowODoyNAogICAgLSAtIChzbm1wdXNtLmgpCiAgICAgIC0gQWRkZWQgc3ltYm9saWMgY29uc3RhbnRzIGZvciBlcnJvcnMgZm91bmQgcHJvY2Vzc2luZyBpbmNvbWluZyBtZXNzYWdlcy4KICAgICAgLSBFcXVhdGVkIHRoZSBzeW1ib2xzIHdpdGggdGhvc2UgYWRkZWQgdG8gc25tcC5oCgpoYXJkYWtlciAyMSBPY3QgOTggMTI6MTA6MDMKICAgIC0gKHNubXBfYXBpLmgpOiBhZGRlZCBBU04vU05NUCBjb3VudGVycyB0byB0aGUgY291bnRlciBsaXN0LgoKbWFyeiAyMSBPY3QgOTggMTI6NTA6MjQKICAgICAtKHNubXBfYXBpLltjaF0pOiBjb3JyZWN0bHkgYWRkICNkZWZpbmUgc2l6ZXMgZm9yIGF1dGhLZXkgYW5kIHByaXZLZXkKCm1hcnogMjEgT2N0IDk4IDEzOjM4OjU3CiAgICAgLShzbm1wX2FwaS5bY2hdKTogYWRkZWQgYXV0aC9wcml2IHByb3RvY29sIHR5cGUgZmllbGRzIHRvIHNlc3Npb24KCm1hcnogMjEgT2N0IDk4IDEzOjQ5OjExCiAgICAgLShzbm1wX2FwaS5jKTogYWRkZWQgY2FzdCBmb3IgaW50ZXJuYWwgcGR1IChpbnRlcm5hbCBwZHUgc2hvdWxkIGJlIGVsaW1pYW50ZWQgc29tZWRheSkKCmhhcmRha2VyIDIxIE9jdCA5OCAxMzo1MzozOAogICAgLSAoc25tcF9hcGkuaCk6IFNUQVRfTUFYX1NUQVRTIC0+IE1BWF9TVEFUUy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzo1NDowOAogICAgLSAoc25tcHYzLmMpOiByZW1vdmUgc25tcF9wZXJyb3IoKSBkZWZpbmVkIGFzIHBlcnJvcigpLiAgSXQncyBhIHJlYWwgZnVuY3Rpb24uCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6NTg6MDgKICAgIC0gKGFzbjEuYyk6IGFzbl9idWlsZF9zdHJpbmc6IGFsbG93IGEgbnVsbCBzdHJpbmcgdG8gYnVpbGQgYSAwMCBwYWRkZWQgc3RyaW5nLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE4OjAwOjA3CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBlbmdpbmVJRCBkaXNjb3ZlcnkgZGVidWdnaW5nIG1lc3NhZ2VzLgogICAgICAtIHplcm8gbGVuZ3RoIGNvbnRleHROYW1lcyBvay4KICAgICAgLSBzZXQgbWF4IGxlbmd0aCBiZWZvcmUgdXNtX2dlbmVyYXRlX291dF9tc2coKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxOTowNDozNQogICAgLSAoc25tcF9hcGkuYyk6IG1vdmUgdGhlIGVuZ2luZUlEIGRpc2NvdmVyeSB0byBzbm1wX3Nlc3Nfb3BlbigpLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE5OjA1OjEyCiAgICAtIChzbm1wX2FwaS5oKTogc3luY2ggc25tcF9wZHUgYW5kIGludGVybmFsX3NubXBfcGR1LgoKZHJlZWRlciAyMSBPY3QgOTggMTk6NTU6MTUKICAgIC0gU2hvb2sgdGhlIGJ1Z3Mgb3V0IG9mIGtleSBtYW5pcHVsYXRpb24gcm91dGluZXMgKGdlbmVyYXRlX2t1bCwgZ2VuZXJhdGVfS3UpLgogICAgCUNvbXBsZXRlZCBhbmQgdGVzdGVkIEtleUNoYW5nZSBUQyBjb2RlICh7ZW5jb2RlLGRlY29kZX1fa2V5Y2hhbmdlKS4KICAgIAlDcmVhdGVkIGluaXRpYWwgZWxlbWVudHMgb2YgYW4gYXV0b21hdGVkIHRlc3QgaGFybmVzcyBpbiB0ZXN0aW5nLy4KICAgIAlDcmVhdGVkIGRhdGEgZmlsZXMgYW5kIHRlc3Qgc2NyaXB0cyB0byBkZW1vbnN0cmF0ZSBjb21wbGlhbmNlLgogICAgCU1pc2NlbGxhbmVvdXMgYWRkaXRpb25zIHRvIHNubXBsaWIvdG9vbHMuPywgc29tZSB0ZW1wb3JhcnkvdHJhbnNpdGlvbmFsLgoKbWFyeiAyMSBPY3QgOTggMTk6NTg6MTEKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIGF1dGgvcHJpdiBwcm90byBmbGFncywgYWRkIGF1dGggcHJpdiBrZXkgZmxhZ3MKCm1hcnogMjEgT2N0IDk4IDIwOjE5OjA4CiAgICAtIChzbm1wX2FwaS5bY2hdKTogdXBkYXRlZCBhdXRoL3ByaXYgcHJvdCBhbmQga2V5IGZpbGVkcyBpbiBzZXNzaW9uLCBhZGRlZCBzdXBvcnQgaW4gc25tcF9zZXNzX29wZW4gYW5kIGNsb3NlICh5YW5rZWQgZmllbGRzIGZyb20gUERVIC0gZGlkIEkgZG8gdGhhdD8pCgpoYXJkYWtlciAyMSBPY3QgOTggMjE6MjE6NDEKICAgIC0gKGxjZF90aW1lLmMpOiBtaW5vciB3YXJuaW5nIGZpeGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDIxOjIyOjA3CiAgICAtICh0b29scy5jLCB0b29scy5oKTogbmV3IHRvb2w6IG1lbWR1cCgpLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDIyOjA4OjA3CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBnZW5lcmF0ZSBhIHVzbSB1c2VyIGZyb20gc2Vzc2lvbiBkYXRhIGlmIG5lZWRlZC4KICAgICAgLSBjaGVjayB0aGUgcmVzdWx0IGZyb20gdGhlIHVzbSBhbmQgZmFpbCBpZiBpdCBkb2VzLgoKbWFyeiAyMiBPY3QgOTggMDg6MDI6MTEKICAgICAtKHNubXBfYXBpLmMpOiBhZGRlZCBERUJVR1AgY29kZSB0byB0cmFjZSBtZXNzYWdlIHZlcnNpb24gYW5kIHNlY0xldmVsIGZvciBkZW1vCgpsZXdpcyAyMiBPY3QgOTggMTM6Mzc6MzQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE5vdCBhIHdvcmtpbmcvdGVzdGVkIHZlcnNpb24sIGJ1dCBpdCBjb21waWxlcy4KICAgICAgLSBGaXhlZCBvbmUgYnVnIC0gIiYiIHRvICI9PSIgaW4gYW4gaWYoKQogICAgICAtIERpZCBub3QgYWx0ZXIgY29kZSB0byBkZW55IG51bGwgZW5naW5lIGlkIHVzZXJzCiAgICAgIC0gQWRkZWQgbXVjaCBjb2RlIGluIHByb2Nlc3MgaW5jb21pbmcgbWVzc2FnZQogICAgICAtIE5ldyB1c2Ugb2YgZXJyb3JzIGFuZCBERUJVR1AKICAgICAgLSBTdGlsbCB3YWl0aW5nIG9uIHVwZGF0ZXMgdG8gbGNkX3RpbWUuaCB0byBpbXBsZW1lbnQKICAgICAgICBzdGVwICMzIG9mIFJGQyAyMjc0LCBzMy4yLgoKZHJlZWRlciAyMyBPY3QgOTggMDk6NDU6NDcKICAgIC0gTENEIFRpbWUgQVBJIHByb3RvdHlwZXMgYXJlIGNvbXBsZXRlLiAgOTAlIHN0YWJsZS4KICAgIAlEcmFmdCBvZiBhdXRvbWF0ZWQgdGVzdGluZyBoYXJuZXNzIGluIHRlc3RpbmcvLgogICAgCQlVc2UgdGVzdGluZy9ldmFsX3N1aXRlLnNoIHRvIHJ1biBhbGwgY3VycmVudCB0ZXN0cy4KCmxld2lzIDIzIE9jdCA5OCAxMTozODoyNQogICAgLSAtIChsY2RfdGltZS5oKQogICAgICAtIGFkZGVkIGRlZmluaXRpb25zIGZvciBUUlVFIGFuZCBGQUxTRSAoaWYgbm90IHByZXZpb3VzbHkgZGVmaW5lZCkKICAgICAgLSBmaXhlZCBhIGNvbXBpbGF0aW9uIGJ1ZyBpbiB0aGUgZW5zdXJlIGVudHJ5IG1hY3JvCgpsZXdpcyAyMyBPY3QgOTggMTE6NDc6MzcKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEFkZGVkIHRoZSBzdGVwIDMgY29kZSB0byBwcm9jZXNzIG91dGdvaW5nIG1lc3NhZ2VzIGZ1bmN0aW9uCiAgICAgIC0gU3RpbGwgdW4tcnVuCgpkcmVlZGVyIDIzIE9jdCA5OCAxNTozOTowMgogICAgLSBDb21wbGV0ZSBjb2RlIGZvciBMQ0QgdGltZSBBUEkuICBBd2FpdGluZyBzZXJpb3VzIHRlc3RzLgogICAgCUNoYW5nZWQgc25tcHYzX2dldF9lbmdpbmV7VGltZSxCb290c30gdG8gc25tcHYzX2xvY2FsX3NubXBFbmdpbmUqCgpkcmVlZGVyIDI0IE9jdCA5OCAyMzowNzo1NAogICAgLSBTaG9vayBidWdzIG91dCBvZiBMQ0QgdG8gbWFuYWdlIGVuZ2luZSBJRHMvdGltZSAoInRlc3RpbmcvZXRlc3QgLWEiKS4KICAgIAlBZGRlZCBhIGZ1bmN0aW9uIGR1bXBfc25tcEVuZ2luZUlEICgidGVzdGluZy9taXNjdGVzdCAtMSIpLgogICAgCQlNYWRlIHNwcmludF9oZXhzdHJpbmcgbm90LXN0YXRpYy4uLiAodGVtcG9yYXJ5IGNoYW5nZSBJIHRoaW5rKS4KICAgIAlBZGRlZCBjb21tZW50cy9xdWVzdGlvbnMgYWJvdXQgYnVpbGRpbmcgc25tcEVuZ2luZUlELiAgKHNubXB2My5jKQogICAgCUFkZGVkIFRSVUUvRkFMU0UgZGVmaW5lcyB0byBzbm1wdXNtLmMuICAoVGhlc2Ugc2hvdWxkIGJlIHN0YW5kYXJkaXplZC4pCiAgICAJQWRkZWQgU05NUF9NQVhCVUZfU01BTEwuICAodG9vbHMuaCkKICAgIAlDbGVhbmVkIHVwIChjbGFyaWZpZWQ/KSB0ZXN0IGhhcm5lc3MgZGVzY3JpcHRpb24uCgptYXJ6IDI1IE9jdCA5OCAxNDo0ODowNgogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBtb3ZlIGtleSBnZW5lcmF0aW9uIChnZW5lcmF0ZV9LdSkgYWZ0ZXIgaW5pdF9zbm1wCgpoYXJkYWtlciAyNSBPY3QgOTggMjA6NTk6MzMKICAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYnVnZ2luZyBwYXJzZS9idWlsZCBzdGF0ZW1lbnRzIGFuZCBlcnJubyBmaXhlcy4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMDoxNQogICAgLSAoc3lzdGVtLmgpOiBjcmVhdGVkIERFQlVHUEwgdG8gZG8gREVCVUdQIHdpdGggZmlsZS9saW5lIHN0YXRlbWVudHMuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDE6MDAKICAgIC0gKHRvb2xzLmMpOiBjaGVjayBtZW1kdXAoKSBmb3IgTlVMTCBwYXNzZWQgaW4uCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDE6NTgKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBidWcgZml4ZXM6IG1pc2MgTlVMTCBjaGVja3MuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDI6NDAKICAgIC0gKHNubXBfY2xpZW50LmMpOiBkZWZhdWx0IHRvIHNldHRpbmcgc2VjTmFtZUxlbiBhbmQgY29udGV4dE5hbWVMZW4gdG8gLTEuCgpkcmVlZGVyIDI1IE9jdCA5OCAyMjoyODoxOAogICAgLSBNb3N0bHkgc2h1ZmZsaW5nIHByZS1leGlzdGluZyB0aGluZ3MgYWJvdXQgLS0KICAgICAgICAgICAgVXNlZCBVU0VfSU5URVJOQUxfTUQ1IHB1dCBrbXRfaGFzaCBwYXJhbGxlbCB3aXRoIHYycCBNRDUgaGFzaC4KICAgICAgICAgICAgc2NfZW5jcnlwdC9zY19kZWNyeXB0IG5vdyBhbHNvIHJldHVybjogU05NUEVSUl9TQ19OT1RfQ09ORklHVVJFRC4KICAgICAgICAgICAgVGVzdGVkIGFuZCAiZml4ZWQiIGJ1aWxkIHdpdGggb24mb2ZmIHNldHRpbmdzIG9mOgogICAgICAgICAgICAgICAgICAgIFVTRV9WMlBBUlRZX1BST1RPQ09MLCBTQ0FQSV9BVVRIUFJJViwgVVNFX0lOVEVSTkFMX01ENS4KICAgICAgICAgICAgR3JlYXRlc3QgZGFtYWdlIGRvbmUgaW4gYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMuCiAgICAgICAgICAgIFJlcGFpcmVkIHVzZSBvZiBrZXkgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBpbiBzbm1wdXNtLmMuCiAgICAgICAgICAgICAgICAgICAgKENvdWxkIHVzZSBwZWVyIHJldmlldyBhcyBteSBleHBlY3RhdGlvbnMgb2YgdXNlIG1heSBkaWZmZXIuKQogICAgICAgICAgICBBZGRlZCAoYW5kIHJlbW92ZWQgMSkgc29tZSBYWFgncyBpbiBwYXJ0eSBjb2RlLi4uCgpoYXJkYWtlciAyNiBPY3QgOTggMTM6MzQ6MDMKICAgIC0gKHNubXB1c20uYyk6IGVuYWJsZSBOVUxMIGVuZ2luZUlEcyBpbiB1c2VyIHN0b3JhZ2UuCgpoYXJkYWtlciAyNiBPY3QgOTggMTM6Mzc6MDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIGNyZWF0aW5nIHVzZXJzIGZyb20gYSBzZXNzaW9uOiAgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uKCkuCiAgICAgIC0gbWFrZSBwcm9iaW5nIHVzZSB0aGUgYWJvdmUgdHdpY2UgKG9uY2UgZm9yIE5VTEwgZW5naW5lSUQgYW5kIG9uY2UKICAgICAgICBmb3IgcHJvYmVkIGVuZ2luZUlEKS4KICAgICAgLSBidWcgZml4OiAgc25tcCB2ZXJzaW9uIHByaW50ZWQgaW4gZGVidWdnaW5nIHdhcyBvZmYgYnkgLTEuCgpoYXJkYWtlciAyNiBPY3QgOTggMjA6NDE6MTkKICAgIC0gKHNubXBfYWdlbnQuYyk6IHNldCBjb250ZXh0IG5hbWUgb24gZW5naW5lSUQgcmVwb3J0LgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIwOjQyOjA2CiAgICAtIChzbm1wZC5jKTogY3JlYXRlIHRoZSAiaW5pdGlhbCIgdXNlciBmb3IgZW5naW5lSUQ6bnVsbC4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMjoxMjoxNwogICAgLSAoa2V5dG9vbHMuYyk6IGNoZWNrIGZvciBOVUxMIHBvaW50ZXIsIG5vdCAqcG9pbnRlci4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMjoxNTowMQogICAgLSAoc25tcHVzbS5jKTogbWFsbG9jIGt1bCBzcGFjZSBpbiB1c21fc2V0X3Bhc3N3b3JkKCkuCgpkcmVlZGVyIDI4IE9jdCA5OCAwOTozOTo1NwogICAgLSBnZXRfZW5naW5ldGltZSgpIG5vdyByZXR1cm5zIDwwLDA+IHR1cGxlIGZvciBOVUxMLyIiL2xlbj0wIGVuZ2luZUlEcy4KICAgIAlzY197Y2hlY2ssZ2VuZXJhdGV9X2tleWVkX2hhc2goKSBwcm9jZXNzIGhhc2hlcyA8PSBoYXNoIG91dHB1dCBsZW4uCiAgICAJCShTdGFibGUsIGJ1dCBleHBlY3QgYW4gZXhwYW5kZWQgdGVzdCBpbiBzY2FwaXRlc3QuYyBzb29uLikKICAgIAlNaXNjOiBQdXQgTUQ1X0hBU0hTSVpFX0JZVEVTIGluIHBhcnR5Lmg7IFNOTVBfWkVSTyBpbiB0b29scy5oCgpsZXdpcyAyOCBPY3QgOTggMTM6MTY6NTQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIERlYnVnZ2VkIHJ1bm5pbmcgb2YgdXNtX2dlbmVyYXRlLi4uIGZ1bmN0aW9uIHNvIHRoYXQgaXQgcnVucyB3aXRoIG5vCiAgICAgICAgYXV0aGVudGljYXRpb24gLyBubyBwcml2YWN5IG9wdGlvbnMuICAoRG9uJ3QgaGF2ZSBhIHdheSB5ZXQgdG8gdGVzdAogICAgICAgIHdpdGggdGhlIGZhbmN5IHNlY3VyaXR5LikKICAgICAgLSBBZGRlZCBhIGxpbmUgZm9yIGRlYnVnZ2luZyB3aGljaCBzZXRzIGFsbCBieXRlcyBvZiB0aGUgc2VjdXJpdHkgaGVhZGVyCiAgICAgICAgYW5kIHRoZSBQRFUncyByZXN0aW5nIHBsYWNlIHRvIEZGIC0gZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LiAgVGhpcwogICAgICAgIGxldHMgbWUgc2VlIHdoYXQgYnl0ZXMgcmVtYWluIHRvIGJlIHB1bmNoZWQgaW4uICBUaGlzIGxpbmUgaXMgZmx1c2ggbGVmdAogICAgICAgIGluIHRoZSBmaWxlLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgdG8gYmUgY3V0IG91dCBpZiB3ZSByZWFjaCByZWxlYXNlLgogICAgICAtIEFkZGVkICJlbWVyZ2VuY3lfcHJpbnQsIiBhbiB1bmNhbGxlZCByb3V0aW5lIEkgbGlrZSB0byBoYXZlIHdoZW4gcnVubmluZwogICAgICAgIGluIGdkYi4gIEl0IGR1bXBzIGEgZmllbGQgb2YgeCBieXRlcyBpbiBoZXgsIDI1IHZhbHVlcyB0byBhIGxpbmUuCgpkcmVlZGVyIDI4IE9jdCA5OCAxNDoxOTo1MgogICAgLSBCb3VuZGVkIEtNVCBjb2RlIHdpdGggI2RlZmluZSdzIGZvciBIQVZFX0xJQktNVAogICAgCS0gV2lsbCBub3QgY29tcGlsZSB3aXRob3V0IGVpdGhlciBIQVZFX0xJQktNVCAtb3ItIFVTRV9JTlRFUk5BTF9NRDUuCiAgICAJLSBBZGRlZCBuZXcgZXJyb3IgY29kZTogU05NUEVSUl9LVF9OT1RfQVZBSUxBQkxFLgogICAgCS0gQWRkZWQgYSB0ZXN0IGZvciBwcmV2aW91cyBjaGFuZ2VzIHRvIHNjXypfa2V5ZWRfaGFzaCgpIGZ1bmN0aW9ucy4KICAgIAkJKEF1Z21lbnRlZCB0ZXN0X2Rva2V5ZWRoYXNoKCkgaW4ga2V5bWFuYWdlbWVudC5jLikKCmxld2lzIDI5IE9jdCA5OCAwOTo1NjowOAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTWFkZSBmaXhlcyB0byBwcm9jZXNzIGluY29taW5nCiAgICAgIC0gQmVnYW4gdG8gYWRkIGNvZGUgZm9yIHRoZSBzZWN1cml0eSBzdGF0ZSByZWZlcmVuY2UKCmxld2lzIDI5IE9jdCA5OCAxMDoyNzozNwogICAgLSAtIChzbm1wdXNtLmgpCiAgICAgIC0gQWRkZWQgcHJvdG90eXBlIGZvciBzZXRfcmVwb3J0RXJyb3JPblVua25vd25JRAoKbGV3aXMgMjkgT2N0IDk4IDEwOjI5OjE2CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBzb21lIG9mIFdlcycgcmVwb3J0ZWQgcHJvYmxlbXMuCiAgICAgIC0gQWRkZWQgY29kZSB0byBzdG9yZSBzZWNTdGF0ZVJlZgogICAgICAtIFN0aWxsIG5lZWQgdG8gdXNlIGl0IGluIGdlbmVyYXRlX291dGdvaW5nCgpsZXdpcyAyOSBPY3QgOTggMTQ6MzA6MTgKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE5vdyBtYWtlcyB1c2Ugb2YgdGhlIHN0b3JlZCBzZWNTdGF0ZVJlZiBpbiBnZW5lcmF0ZSBvdXRnb2luZwogICAgICAtIEkgaG9wZSAtIEkgc3RpbGwgaGF2ZW4ndCBiZWVuIGFibGUgdG8gZ2V0IG1lc3NhZ2UgYmFjayBhbmQgZm9ydGgsCiAgICAgICAgaXQncyB0aW1lIHRvIGZpZ3VyZSBvdXQgaG93IHRvIHJ1biB0aGUgc25tcGQgc3R1ZmYgSSBndWVzcy4KCm1hcnogMjkgT2N0IDk4IDE1OjA2OjQ5CiAgICBhZGQgI2lkZWYgZ2F1cmRzIGZvciBrbXQuaCBhbmQga210X2FsZ3MuaCBkZXBlbmRlbnQgb24gZXhpc3RlbmNlIG9mIGhlYWRlcnMgcmF0aGVyIHRoYW4gbGlia210CgpsZXdpcyAzMCBPY3QgOTggMDY6NDU6MjQKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIGEgc3RhdGUgcmVmZXJlbmNlIGZyZWUgcm91dGluZQogICAgICAtIENoYW5nZWQgbmFtZSBvZiB0aGUgcm91dGluZSB0byBzZXQgdGhlIHJlcG9ydC1vbi1lcnJvciBmbGFnIHNvIHRoYXQgaXQKICAgICAgICBiZWdpbnMgd2l0aCAidXNtXyIuCgpsZXdpcyAzMCBPY3QgOTggMDY6NDY6NTIKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE1vZGlmaWVkIHRoZSBmcmVlIHN0YXRlIHJlZiByb3V0aW5lIHRvIHRha2UgYSB2b2lkICogaW5zdGVhZCBvZiBhCiAgICAgICAgc3RydWN0IHdoYXRldmVyICosIHRoaXMgcGx1cyBhZGRpbmcgaXQgdG8gdGhlIC5oIGZpbGUgbWFrZXMgaXMgdXNlYWJsZQogICAgICAgIGJ5IHRoZSBNZXNzYWdlIFByb2Nlc3Nvci4KCmxld2lzIDMwIE9jdCA5OCAwNzozNDoyNgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gUmVtb3ZlZCBhIHBvdGVudGlhbCBtZW1vcnkgaG9sZSAocmV0dXJuaW5nIG9uIGVycm9yIGZyb20gdGhlIHByb2Nlc3MKICAgICAgICBpbmNvbWluZyByb3V0aW5lIHdpdGhvdXQgZnJlZWluZyB0aGUgc2VjdXJpdHkgc3RhdGUgcmVmZXJlbmNlKS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODozODo1MwogICAgLSAoc25tcHYzLmMpOiBzbm1wX3BlcnJvcigpIC0+IHBlcnJvcigpIFsibWFsbG9jIl0uCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6NDM6NTIKICAgIC0gKHNubXBkLmMpOgogICAgICAtIE1ha2UgLUQgYSB0b2dnbGUuCiAgICAgIC0gdXNlIHVzbV9zZXRfcmVwb3J0RXJyb3JPblVua25vd25JRCgpLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjQ1OjA5CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gTWFrZSAtRCBhIHRvZ2dsZS4KCmhhcmRha2VyIDMwIE9jdCA5OCAxNjo0NDo0MwogICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSB0aGUgYWdlbnQgd2F0Y2ggdGhlIGVycm9yIHN0YXR1cyBmcm9tIHBhY2tldAogICAgICBwYXJzaW5nIGluc3RlYWQgb2YgZG9pbmcgY2hlY2tzIGl0c2VsZi4KCmhhcmRha2VyIDMwIE9jdCA5OCAxNjo1MjowMwogICAgLSAoc25tcHVzbS5jKTogdXNtX2dldF91c2VyKCk6IGFsbG93IGEgbnVsbCBsZW5ndGggKGJ1dCBub24gbnVsbAogICAgICBwb2ludGVyKSBlbmdpbmVJRC4KCm1hcnogIDEgTm92IDk4IDE1OjU1OjExCiAgICAgLShhc24xLmMsIGxjZF90aW1lLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMsIHNubXB1c20uYywgc25tcHYzLmMpOiByZW1vdmUgaW50ZXJuYWwgcGR1L3Zhcmxpc3QsIHBkdV9mcmVlIHVwZGF0ZSwgaGFuZGxlIGluaXRpYWwgdXNlciBhcyBkaXNjdXNzZWQsIHJlbW92ZSBpbml0aWFsIHVzZXIgaGFjaywgcmVtb3ZlIGVuZ2luZUlEIHByb2JlL1JlcG9ydCBoYWNrLCBoYW5kbGUgc2VjdXJpdHlTdGF0ZVJlZiBhcyBkaXNjdXNzZWQsIGhhbmRsZSB6ZXJvLWxlbmd0aCBjb250ZXh0LCBub3JtYWxpemUgX2VuZ2luZXRpbWUgYXJnIG9yZGVyLCBpbmNsdWRlIHdlcydzIHBhdGNoZXMgZm9yIG51bGwgZW5naW5laWQgYW5kIHNlY05hbWVMZW4rKwoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjMyOjQzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywKICAgICAgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgICAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmMpOgogICAgICAtIHVzZSAic25tcGFwcCIgYXMgY29uZmlndXJhdGlvbiBmaWxlIG5hbWUuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6MzY6NTkKICAgIC0gKHNubXBfYXBpLmMpOiBnZW5lcmF0ZSB1c2VyLT5LdWwgZnJvbSBzZXNzaW9uLT5LdS4KCmhhcmRha2VyICAxIE5vdiA5OCAxOTozODoyOQogICAgLSAoc25tcF9hZ2VudC5jKTogZ2VuZXJhdGUgYWxsIHNvcnRzIG9mIG5ldyBTTk1QIHJlcG9ydHMgd2hlbiBuZWVkZWQuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6Mzk6MjkKICAgIC0gKHNubXBkLmMpOiB1c2Ugc25tcF9wZXJyb3IoKSBpZiBzbm1wX2FnZW50X3BhcnNlKCkgcmV0dXJucyAwLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjAwOjI1CiAgICAtICh2YWNtLmMpOiBhbGxvdyBhIHNlY3VyaXR5IGxldmVsID49LCBub3QgPT0uCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDE6MDcKICAgIC0gKHNubXB2My5jKTogcmVtb3ZlIHVzbV9jcmVhdGVfaW5pdGlhbCgpIGFuZCBzZXRfZW5naW5ldGltZSgpLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjA2OjA0CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gbmV3IGZ1bmN0aW9uOiBpbml0X3VzbV9wb3N0X2NvbmZpZyh2b2lkKTsKICAgICAgLSBtYWtlIHVzbV9nZXRfdXNlcl9mcm9tX2xpc3QoKSBoYW5kbGUgYSBib2d1cyBpbml0aWFsIHVzZXIgZmxhZy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowOTozNQogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gdXNlIGluaXRfdXNtX3Bvc3RfY29uZmlnKCk7CiAgICAgIC0gdXNlIHVzbV9nZXRfdXNlcl9mcm9tX2xpc3QgdG8gYXNrIG5vdCB0byByZXR1cm4gdGhlIGRlZmF1bHQgaW5pdGlhbCB1c2VyLgogICAgICAtIGZpeCBzbm1wX3Zhcl9hZGRfdmFyaWFibGUoKSB0byBhbGxvdyBjb3VudGVycy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOToxMDoxNQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiB0eXBvIG9uIGRlcyBrZXkgaW5pdGlhbGl6YXRpb24sIGZvcmdvdCB0aGUgJ1gnLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjEzOjM2CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIGZpeCByZXBvcnQgT0lEcyB0byBiZSBjb3JyZWN0LgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgd2hlbiBzZW5kaW5nIGEgcmVwb3J0LgogICAgICAtIGFkZGVkIHVuc3VwcG9ydGVkIHNlY3VyaXR5IGxldmVsIHJlcG9ydC4KICAgICAgLSBzZW5kIGEgY291bnRlciBpbnN0ZWFkIG9mIGFuIGludGVnZXIuCgpoYXJkYWtlciAgMiBOb3YgOTggMTY6MDE6MjQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZ2VuZXJhdGUgS3UgZm9yIHByaXYgcHJvdG9jb2wgdXNpbmcgYXV0aCBwcm90b2NvbCBoYXNoLgoKaGFyZGFrZXIgIDMgTm92IDk4IDA5OjM3OjAzCiAgICAtIChsY2RfdGltZS5jKTogZmlyc3QgYnl0ZT09MCBlbmdpbmUgSUQncyBhcmUgdmFsaWQuCgpsZXdpcyAgNCBOb3YgOTggMTE6MzU6MjkKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEJldHRlciBoYW5kbGluZyBvZiBudWxsIGFuZCB1bmtub3duIGVuZ2luZSBJRHMuCgpkcmVlZGVyICA0IE5vdiA5OCAxMTo0NTowOAogICAgLSAobGNkX3RpbWUuYykgU3BlY2lhbCBjYXNlcyBmb3IgTlVMTCBvciAwIGxlbmd0aCBlbmdpbmVJRHMuCgpoYXJkYWtlciAgNCBOb3YgOTggMjE6NTM6MzIKICAgIC0gKHNubXBfYWdlbnQuYyk6IGNoZWNrIGVuZ2luZUlEIHRvIG1ha2Ugc3VyZSBpdHMgdXMuCgpsZXdpcyAgNSBOb3YgOTggMDk6NTI6MzUKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIGNhbGwgdG8gcHJlZGljdCBpbnRlZ2VyIGxlbmd0aCByb3V0aW5lIHRvIGdpdmUgaXQgdGhlICp3aG9sZSoKICAgICAgICBudW1iZXIsIG5vdCBqdXN0IG9uZSAoZmlyc3QvbGFzdCBkZXBlbmRzIG9uIGVuZGlhbikgb2YgdGhlIG51bWJlci4KICAgICAgICBEb2ghIHNjYWxlIHJhdGluZyA5LgogICAgICAtIEFsdGVyZWQgdGhhdCByb3V0aW5lIHRvIGJlIG1vcmUgbGlrZSB0aGUgYXNuX2J1aWxkX2ludCAuLi4gaS5lLiwgbm8KICAgICAgICBsb25nZXIgYXNzdW1lcyB0aGUgbGVuZ3RoIG9mIHRoZSBsZW5ndGggaXMgMS4gIERvaCEgcmF0aW5nIGEgMS4KCmxld2lzICA1IE5vdiA5OCAxMTowMzoyNAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgc29tZSBERUJVR1AgY2FsbHMgdG8gc2hvdyB0aGUgcmlnaHQgZnVuY3Rpb24sIHBlcmhhcHMgdGhlc2Ugd2lsbAogICAgICAgIGJlY29tZSBERUJVR1BMIGluIHRoZSBmdXR1cmUuCgpkcmVlZGVyICA1IE5vdiA5OCAxNTozNzoyOQogICAgLSBNb3N0bHkgZnVuY3Rpb24gaGVhZGVyIGNvbW1lbnRzIGluIHJlYWRfY29uZmlnLmMsIHV0aWxfZnVuY3MuYywgc25tcHYzLmMuCiAgICAgIAkoUGxlYXNlIGZlZWwgZnJlZSB0byBjaGVjayBmb3IgYWNjdXJhY3kuLi4pCiAgICAgIENoZWNrIGZvciBOVUxMIGluIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkuCiAgICAgIEFkZGVkIGxlbmd0aCBhcmd1bWVudCB0byBzbm1wdjNfZ2V0X2VuZ2luZUlEKCkuCiAgICAgIENoZWNrIGZvciBsZW5ndGgoUCk8VVNNX0xFTkdUSF9QX01JTiBpbiBnZW5lcmF0ZV9LdSgpLgogICAgICBOb3RlOiAiZXRlc3QgLWEiIGhhcyBhIG5ldyBmYWlsdXJlOyB0byBiZSBmaXhlZCB3aGVuIFRpbWUgTENEIHJlLXN0YWJpbGl6ZXMuCgptYXJ6ICA2IE5vdiA5OCAxNjoxMzozNwogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuYyk6IGhhbmRsZSBSZXBvcnRzIHRvIHRyaWdnZXIgcmVzZW5kLCBleGNlcHQgZm9yIHVua25vd25FbmdpbmVJRCwgcGFzcyBzZWNTdGF0ZVJlZiB0byByZWNlaXZlIHNlY3VyaXR5U3RhdGUgZnJvbSBVU00gKldBUk5JTkcqIGdldHRpbmcgYXV0aG9yaXphdGlvbiBmYWlsdXJlIGluIFVTTSogcGxlYXNlIGhlbHAgLSB0aGlzIHdhcyBub3QgaGFwcGVuaW5nIGJlZm9yZSBzbyBkb3VidGxlc3MgaXQgaXMgbXkgZmF1bHQ/CgptYXJ6ICA3IE5vdiA5OCAxMjozMzo0OQogICAgIC0oc25tcF9hcGkuYywgbGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogY2xlYW4gdXAgcHJvYmxlbXMgY2F1c2VkIHdoZW4gd2UgYmVnYW4gdXNpbmcgc2VjU3RhdGVSZWYsIG90aGVyIFVTTSBlcnJvcnMsIGltcGxlbWVudCBMQ0RfVElNRV9TWU5DX09QVCBvcHRpbWl6YXRpb24KCm1hcnogIDcgTm92IDk4IDEyOjM3OjIxCiAgICAgLShzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBjbGVhbiB1cCBwcm9ibGVtcyBjYXVzZWQgd2hlbiB3ZSBiZWdhbiB1c2luZyBzZWNTdGF0ZVJlZiwgc2V0X2VuZ2luZXRpbWUgaW4gTENEIHBvc3QgY29uZmlnIHJlYWQsIExDRF9USU1FX1NZTkNfT1BUIHRpbWUgbGVybmluZyBvcHRpbWl6YXRpb24sIGluY2x1ZGUgZmlsZSBmb3IgbGNkX3RpbWUgYWRkZWQsIG1vdmVkIG1ha2VfcmVwb3J0IHRvIHNubXBsaWIgLSByZXBvcnQgZ2VuZXJhdGlvbiBpcyBzdGlsbCBpbiBhZ2VudAoKaGFyZGFrZXIgIDkgTm92IDk4IDEzOjI5OjE5CiAgICAtIChzbm1wX2FwaS5jKTogZ2VuZXJhdGVfa3VsIHNob3VsZCB1c2UgYXV0aHByb3RvY29sLgoKbWFyeiAxMSBOb3YgOTggMDc6NTE6NDMKICAgICAtKGxjZF90aW1lLmMsIHNubXB1c20uYyk6IGZpeGVzIHRvIGhhbmRsZSBudWxsIGVuZ2luZSBJRCAtIHRvbGVyYXRlZCB3aGVuIHNlbmRpbmcsIHVua25vd24gd2hlbiByZWNlaXZpbmcKCm1hcnogMTEgTm92IDk4IDA4OjAzOjI0CiAgICAgLShzbm1wX2FnZW50LmMpOiByZW1vdmUgd29ya2Fyb3VuZCB0byBkZXRlY3QgdW5rbm93bkVuZ2luZUlEIGVycm9yIC0gbm93IGRvZW4gaW4gVVNNIGFzIHNwZWMnZAoKaGFyZGFrZXIgMTEgTm92IDk4IDEyOjM3OjQ3CiAgICAtIChzbm1wZC5jLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIG1vdmUgaW5pdGlhbCBzZXRfZW5naW5ldGltZSgpIGZyb20gYWdlbnQgdG8gc25tcHYzLmMuCiAgICAgIC0gbmV3IHNubXAuY29uZiBjb25maWd1cmUgZmlsZSB0b2tlbnM6IGRlZkF1dGhUeXBlLCBkZWZQcml2VHlwZSwKICAgICAgICBkZWZQYXNzcGhyYXNlLCBkZWZBdXRoUGFzc3BocmFzZSwgZGVmUHJpdlBhc3NwaHJhc2UuCiAgICAgIC0gbWluaW11bSBib290cyB1c2VkIGlzIDEsIG5vdCAwLgoKaGFyZGFrZXIgMTEgTm92IDk4IDEzOjA5OjI2CiAgICAtIChzbm1wZC5jKTogYWRkZWQgbmVlZGVkIGluaXRfKCkgcm91dGluZXMuCgpoYXJkYWtlciAxMSBOb3YgOTggMTM6MTE6MDIKICAgIC0gKHNubXB2My5jKTogZG9uJ3QgcHJpbnQgb2lkcyB0byAlcydzLgoKaGFyZGFrZXIgMTMgTm92IDk4IDA3OjU5OjA0CiAgICAtIChzbm1wZC5jKTogY3JlYXRlIHRoZSBjb3JyZWN0IGluaXRpYWwgdXNlciBhZnRlciBlbmdpbmVJRCBjb25maWd1cmF0aW9uLgoKaGFyZGFrZXIgMTMgTm92IDk4IDA4OjAzOjQ1CiAgICAtICh1c21Vc2VyLmMpOiBkb24ndCBpbml0aWFsaXplIHVzZXIgaGVyZS4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODowNDo0MgogICAgLSAoc25tcHYzLmMpOiBtYWtlIGVuZ2luZUlEIGNvbmZpZ3VyYXRpb24gbGluZXMgZ2V0IHBhcnNlZCBlYXJseS4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODoxNDowNAogICAgLSAoc25tcHVzbS5jKToKICAgICAgLSBtb3JlIGFwcHJvcHJpYXRlIGVuZ2luZUlEIGNoZWNraW5nIGZvciB1c2VycyAod2FzIGEgYnVnKS4KICAgICAgLSB1c21fYWRkX3VzZXIoKTogZG9uJ3QgZHVwbGljYXRlIHVzZXJzIHdpdGggdGhlIHNhbWUgbmFtZS9lbmdpbmVJRC4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMDoxOTo1NQogICAgLSAoc25tcGQuYyk6IG1vdmUgcG9zdF9jb25maWcgaW5pdCByb3V0aW5lcyB0byBiZXlvbmQgcGVyc2lzdGVudCByZWFkaW5nLgoKaGFyZGFrZXIgMTUgTm92IDk4IDEyOjU1OjM4CiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gbmV3IG1ha2UgdGFyZ2V0OiB0ZXN0CiAgICAgIC0gbWFrZSBhbGwgZG9lc24ndCBjb21waWxlIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMzowMDo0MQogICAgLSAodXNtVXNlci5jLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gdXNtX3JlbW92ZV91c2VyKCk6CiAgICAgICAgLSBwcm9wZXJseSB1cGRhdGVzIHRoZSBsaXN0IHBvaW50ZXIuCiAgICAgICAgICAtIHJlcXVpcmVzIGEgKiogcG9pbnRlciB0byB0aGUgbGlzdCB0byBkbyB0aGlzLgogICAgICAgIC0gY2hlY2sgYWdhaW5zdCBhIE5VTEwgbGlzdCBwb2ludGVyLgogICAgICAtIHVzbV9jbG9uZUZyb21fdXNlcigpOgogICAgICAgIC0gdGhlIGtleXMgd2VyZSBub3QgYmVpbmcgcHJvcGVybHkgZHVwbGljYXRlZC4KICAgICAgLSB1c21fY2xvbmVfdXNlcigpOiBkZWxldGVkLgogICAgICAtIHVzbV9jcmVhdGVfdXNlcigpOiBjcmVhdGVkLCBhbmQgdXNlZCBpbiBwbGFjZSBvZiB1c21fY2xvbmVfdXNlcihOVUxMKS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMzowMToyNwogICAgLSAoZXRpbWV0ZXN0LmMpOiBmaXggY2FsbHMgdG8gc2V0L2dldF9lbmdpbmV0aW1lKCkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTQ6MTQ6MDcKICAgIC0gKElTU1VFUyk6IGZpbmlzaGVkIGEgY291cGxlIG9mIHRoaW5ncy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNDoxOToyMQogICAgLSAoSVNTVUVTLCBzbm1wX2FnZW50LmMpOiBmaXggcGR1IGZyZWVpbmcgcHJvYmxlbSwgdGhhbmtzIHRvIEpvZSdzCiAgICAgIG1lcmdlIG9mIHRoZSBwZHUgc3RydWN0dXJlcy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNTo1MDozMwogICAgLSAoSVNTVUVTKTogbWlzYyBkYXRlIGNoYW5nZXMgYW5kIG1hcmsgdGhhdCBJJ20gd29ya2luZyBvbiBzb21ldGhpbmcuCgpoYXJkYWtlciAxNSBOb3YgOTggMTU6NTM6MjQKICAgIC0gKHNubXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIGNyZWF0ZS9jYWxsIHNubXBfc2h1dGRvd24oKS4KICAgICAgLSByZW1vdmUgdGhlICJwZXJzaXN0ZW50LiIgcGFydCBvZiB0aGUgcGVyc2lzdGVudCAuY29uZiBuYW1lLgogICAgICAtIHJlbmFtZSBpbnN0ZWFkIG9mIHVubGluayBvbGQgcGVyc2lzdGVudCAuY29uZiBmaWxlLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE3OjM3OjAwCiAgICAtIChJU1NVRVMsIHNubXB2My5jKTogd2hlbiBlbmdpbmVJRCBjaGFuZ2VzIGZyb20gdGhlIHByZXZpb3VzIHJ1biwKICAgICAgcmVzZXQgZW5naW5lQm9vdHMgdG8gMS4gIChyZXF1aXJlcyBzdG9yaW5nIHRoZSBsYXN0IGVuZ2luZUlEIHVzZWQpLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIwOjEwOjE5CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfbWliLmMsIHNubXBfbWliLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXBpLmgpOgogICAgICAtIHVzZSBuZXcgbGlicmFyeSBiYXNlZCBzdGF0aXN0aWNzIGNvdW50ZXIgZXZlcnl3aGVyZS4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMDoxNzowMQogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIGludGVyZmFjZXMuYywgc3lzdGVtLmMsIHJlZ2lzdHJ5LmMpOgogICAgICAtIHVzZSBoZWFkZXJfZ2VuZXJpYyBpbiBhIGZldyBtb3JlIHBsYWNlcy4KICAgICAgLSBzdGFuZGFyZGl6ZSB0aGUgTUFUQ0hfRkFJTEVEIGFuZCBNQVRDSF9TVUNDRUVERUQgZGVmaW5pdGlvbnMuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjQ6NTYKICAgIC0gKHNubXB1c20uYyk6IHVzbV9jcmVhdGVfaW5pdGlhbF91c2VyKCkgYWNjZXB0cyBuYW1lICYgYXV0aC9wcml2IHR5cGVzLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI1OjUyCiAgICAtIChzbm1wZC5jKToKICAgICAgLSBsb2cgUElEIHRvIGZpbGUgdXNpbmcgLVAuCiAgICAgIC0gY3JlYXRlIHRlbXBsYXRlIHVzZXJzOiAgdGVtcGxhdGVNRDUgJiB0ZW1wbGF0ZVNIQS4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNjozMAogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogbmV3IGZsYWc6IC1xID0gcXVpZXQuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6Mjc6MTIKICAgIC0gKGRlbW8pOiBzY3JpcHQgdG8gcnVuIGxpc3Qgb2YgY29tbWFuZHMgcmVxdWlyZWQgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI4OjU4CiAgICAtICguY3ZzaWdub3JlKTogaWdub3JlIHRlc3RpbmcgdGFyZ2V0cy4KCmhhcmRha2VyIDIyIE5vdiA5OCAxNDozNjo1MwogICAgLSAoZGVtbyk6IHF1b3RlIHRoZSBwYXNzIHBocmFzZS4KCmhhcmRha2VyIDIyIE5vdiA5OCAyMjoxNjo0NAogICAgLSAoZGVtbyk6CiAgICAgIC0gcGFzcy9mYWlsIHR5cGUgb3V0cHV0LgogICAgICAtIGhvc3RzIG90aGVyIHRoYW4gbG9jYWxob3N0LgogICAgICAtIGNhcGFiaWxpdHkgdG8gbG9vayBmb3Igc3R1ZmYgaW4gb3V0cHV0IG9mIGNvbW1hbmRzLgoKaGFyZGFrZXIgMjIgTm92IDk4IDIyOjI2OjI4CiAgICAtIChkZW1vKTogdHVybiBlbmNyeXB0aW9uIG9uIGZvciB0ZXN0cyB0aGF0IG5lZWQgaXQuCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6MTQ6MDUKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IHByaW50IE1ENS9TSEEgYmVmb3JlIHRoZSBrZXljaGFuZ2Ugc3RyaW5nLgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjE2OjAxCiAgICAtIChkZW1vKTogZml4IHRoZSBrZXkgY2hhbmdlIHN0cmluZyBleHRyYWN0aW9uIHRvIGxvb2sgZm9yIHRoZSBNRDUgdmVyc2lvbi4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzozODo0NAogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogYmVxdWlldCBzaG91bGQgYmUgMCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMjMgTm92IDk4IDA4OjA2OjM0CiAgICAtIChkZW1vKTogYnVnIGZpeGVzLgoKZHJlZWRlciAyNCBOb3YgOTggMTY6NDM6NTAKICAgIEZpeGVkIGJ1ZyBpbiBVU00gcHJldmVudGluZyBleGNoYW5nZSBvZiBjcnlwdGVkIHBhY2tldHMuICBDb2RlIGFkZGVkCiAgICAJdG8gcHJvcGVybHkgZXN0aW1hdGUgc2l6ZSBvZiBjcnlwdGVkIHRleHQgZ2l2ZW4gdW4tcGFkZGVkIHBsYWludGV4dC4KICAgIAlGb3VuZC9maXhlZCBLTVQgcHJvdG90eXBlIGNvbmZsaWN0IHRoYXQgY2F1c2VkIHRoZSBnaXZlbiBJViB0byBiZQogICAgCWlnbm9yZWQgYXQgY3J5cHQvZGVjcnlwdCB0aW1lLgogICAgc2V0dXBfZW5naW5lSUQoKSBoYXMgYSBuZXcgYXJndW1lbnQgdG8gYWxsb3cgSUQgc3RyaW5ncyB0byBiZSByZXR1cm5lZAogICAgCXRvIGNhbGxlci4KICAgIE5ldyBmaWxlIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCB0byBwdXQgc3RhdGljIGRlY2xhcmF0aW9ucyBpbiBhIHNpbmdsZQogICAgCXBsYWNlLi4uCiAgICBGYWlsdXJlIG9mIHN0YXQgaW5jcmVtZW50cyBpbiBVU00gbm8gbG9uZ2VyIGNhdXNlIGZhaWx1cmUgaW4gdGhlIGNhbGxpbmcKICAgIAlmdW5jdGlvbi4KICAgIEFkZGVkIHV0aWxpdHkgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLiAgKC1oIGZvciB1c2FnZS4pCiAgICBESUZGVElNRSBtYWNybyB0byByZXBsYWNlIG9mdCByZXBlYXRlZCBjb2RlLgogICAgU2hvcnRlbmVkIHNvbWUgVkFDTSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGEgc2luZ2xlIGxpbmUgZnJvbSBtYW55LgogICAgTW9yZSBjb21tZW50cy4gIE1vcmUgdHJvdWJsZSBzcG90cyBtYXJrZWQgWFhYLgogICAgQ29udmVydGVkIG9mdCB1c2VkIG1hZ2ljIG51bWJlcnMgdG8gc3ltYm9saWMgY29uc3RhbnRzIChzb21lIHByZS1leGlzdGluZykuCiAgICBDbGVhbmVkIHVwIHNvbWUgc2ltcGx5IGZpeGVkIGJ1aWxkIHdhcm5pbmdzLgogICAgVXBkYXRlZCBub25leHBvcnQvY3J5cHRvL1JFQURNRS4gIFN0aWxsIG5lZWRzIHdvcmsuCgptYXJ6IDI1IE5vdiA5OCAwNzo0NDoyOAogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBhZGRlZCAtVCA8Ym9vdHM+IDx0aW1lPiB0byBzZXQgYW4gaW5pdGlhbCAoYXV0aGVudGljYXRlZCkgdGltZSB2YWx1ZSBmb3IgdGhlIGRlc3RpbmF0aW9uIGVuZ2luZUlEcyBib290cy90aW1lKQoKbWFyeiAyNSBOb3YgOTggMDc6NDg6NDkKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXAuaCwgc25tcF9jbGllbnQuYyk6IGhhbmRsZSBpbmNvbWluZyBSZXBvcnRzIC0gcHJvcGFnYXRlIFNUQVRfRVJST1IgdG8gYXBwcyB3aXRoIGFwcHJvcC4gZXJyb3IgbWVzc2FnZSwgaGFuZGxlIHJlY292ZXJhYmxlIGVycm9yIG5vdEluVGltZVdpbmRvdyBhbmQgZW5naW5lSWQgZGlzY292ZXJ5LCBzZW5kIHJlcG9ydHMgd2l0aCBzZWNMZXZlbD09bm9BdXRoTm9Qcml2IGV4Y2VwdCBub3RJblRpbWVXaW5kb3cKCm1hcnogMjUgTm92IDk4IDA3OjUxOjUwCiAgICAgLSh0b29scy5jKTogb29wcyBiYWNrIG91dCBsaXR0bGUgY29tcGlsZSB3b3JrYXJvdW5kIEkgZGlkIG5vdCBtZWFuIHRvIGNvbW1pdAoKbWFyeiAyNSBOb3YgOTggMDc6NTQ6MDEKICAgICAtKHNubXBkLmMsIHNubXBfYWdlbnQuYyk6IGluaXRpYWxpemUgcGlkX2RpbGUsIG9ubHkgYWxsb2NhdGUgZW5naW5lSUQgbWVtIGZvciBSZXBvcnRzIHdoZW4gc2VuZGluZyBSZXBvcnQsIGZpeCB2ZXJzaW9uIGluZm8gaW4gZGVidWcgbWVzc2FnZQoKaGFyZGFrZXIgMjUgTm92IDk4IDA3OjU2OjMwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBNUERTdGF0cy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gQWRkZWQgYSBjb3VwbGUgb2YgREVVQkdQIHN0YXRlbWVudHMgYW5kIGEgY291cGxlIG9mIGNvbW1lbnQgY2xhaXJpZmljYXRpb25zLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjM5OjAxCiAgICAtIChzbm1wdXNtLmMpOiBjaGFuZ2VzIGluIGNvbW1lbnRzIGZvciBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjQwOjM1CiAgICAtIChzbm1wdjMuYyk6IGNoYW5nZXMgaW4gY29tbWVudHMgZm9yIGNsYXJpZmljYXRpb24uCgpoYXJkYWtlciAyNSBOb3YgOTggMTI6NTQ6MDgKICAgIC0gKHNubXBfYWdlbnQuYyk6IHZlcnNpb24gY2hlY2tzIGFnYWluc3QgdjJjL3YycCAtPiAhdjEuCgpoYXJkYWtlciAyNSBOb3YgOTggMTM6MDQ6MDIKICAgIC0gKHNubXBkLmMpOiBjb21tZW50IGNsYXJpZmljYXRpb24uCgpoYXJkYWtlciAyNSBOb3YgOTggMTc6MTI6MDIKICAgIC0gKGRlbW8pOgogICAgICAtIGVuY29kZV9rZXljaGFuZ2UgdXNhZ2UuCiAgICAgIC0gbW92ZSBjbG9zZXIgdG8gNDIsIGJ1dCBsZWF2ZSByb29tIGZvciBhIGZldyBtb3JlIHRoaW5ncy4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMjo1ODo0MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHRjZ2V0YXR0ci4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMjo1OTo1NgogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogY3JlYXRlIHNubXB2M19zZXRfZW5naW5lQm9vdHNBbmRUaW1lKCkuCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MDA6NDcKICAgIC0gKHRvb2xzLmMpOiBkdW1wX2VuZ2luZUlEIHNob3VsZCAqbmV2ZXIgZXZlciogbW9kaWZ5IHRoZSBwYXNzZWQgbGVuZ3RoIHBhcmFtLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjAyOjQ5CiAgICAtIChkZW1vKToKICAgICAgLSAtczogMSBzZWMgc2xlZXAgaW5zdGVhZCBvZiBrZXlwcmVzcy4KICAgICAgLSBkbyB0aW1lIHRlc3RzLgogICAgICAtIHVzZSBlbmNvZGVfa2V5Y2hhbmdlLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjA0OjEwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gU2hoaGhoLi4uLi4gIGJvb3RzIGFuZCB0aW1lIGFyZSB3cml0YWJsZS4uLiAgRG9uJ3QgdGVsbCBhbnlvbmUuLi4gU2hoaC4uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjE1OjA1CiAgICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOgogICAgICAtIHVzZSB1X2NoYXIncyB3aGVyZSBhcHByb3ByaWF0ZS4KICAgICAgLSBzb21lIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjMyOjUxCiAgICAtICh1c21Vc2VyLmMpOgogICAgICAtIGtleWNoYW5nZSBuZWVkcyBhIHRlbXAgYnVmZmVyLgogICAgICAtIGEgZmV3IGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjIwOjQ1CiAgICAtIChzbm1wdXNtLmMpOiB1c21fc2V0X3NhbHQoKSBhY2NlcHRzIGEga2V5IHdoaWNoIGlzIHRvbyBsb25nIChTSEEgZm9yIERFUykuCgpoYXJkYWtlciAyNyBOb3YgOTggMTA6MjM6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBzbm1wdjNfc2VuZF9yZXBvcnQoKSByZW1vdmVzIHRoZSBzZWNTdGF0ZVJlZmVyZW5jZQogICAgICBmcm9tIHRoZSBwZHUgaXMgdGhlcmUgaXMgb25lLiAgSXQgc2hvdWxkbid0IGJlIHVzZWQgZm9yIHJlcG9ydHMuCgpoYXJkYWtlciAyNyBOb3YgOTggMTA6MzE6MTIKICAgIC0gKGRlbW8pOiBmaW5hbCBmaXhlcyBmb3IgYWxsIGN1cnJlbnQgdGVzdHMgdG8gd29yay4KCmhhcmRha2VyIDI3IE5vdiA5OCAxNToxNToyNQogICAgLSAoZGVtbyk6CiAgICAgIC0gLVQ6IHBhdXNlIGFmdGVyIHRlc3QgY29tcGxldGlvbnMuCiAgICAgIC0gKioqKiA0Mi80MiB0ZXN0cyBwYXNzZWQKCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1NToxNQogICAgLSAoc25tcHBhc3MuYyk6IGJlZ2lubmluZ3Mgb2YgYSBzbm1wIHBhc3N3b3JkIGNoYW5nZXI6CiAgICAgIC0gc3RvbGUgbW9zdCBjb2RlIGZyb20gc25tcHNldC5jIGFuZCBlbmNvZGVfa2V5Y2hhbmdlLmMuCiAgICAgIC0gbmVlZCB0byBmaXg6IG11c3Qgc3BlY2lmeSBtb3N0IGV2ZXJ5dGhpbmcgb24gdGhlIGNvbW1hbmQgbGluZSAoaWUsCiAgICAgICAgLmNvbmYgZmlsZSB0b2tlbnMgZG9uJ3Qgd29yayBoZXJlKS4KICAgICAgLSB2ZXJ5IHVuY2xlYW4gYW5kIGEgcXVpY2sgaGFjay4KICAgICAgLSBkaWZmZXJzIGZyb20gZW5jb2RlX2tleWNoYW5nZSwgaW4gdGhhdCBpdCBhY3R1YWxseSBwcmVmb3JtcyB0aGUgc2V0LgoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU1OjIzCiAgICAtIChNYWtlZmlsZS5pbik6IGFkZCBzbm1wcGFzcy5jCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTY6NDcKICAgIC0gKC5jdnNpZ25vcmUpOiBzbm1wcGFzcyBhbmQgZW5jb2RlX2tleWNoYW5nZQoKaGFyZGFrZXIgMjggTm92IDk4IDExOjQxOjAyCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gbWVyZ2Ugd3JpdGVfIGtleUNoYW5nZSBhbmQgb3duS2V5Q2hhbmdlIGZ1bmN0aW9ucyBpbnRvIG9uZS4gIFNpbmNlCiAgICAgICAgdGhlIHVzZXIgbmFtZSBpcyBub3QgcGFzc2VkIGluLCB0aGUgY2FsbGluZyBtb2R1bGUgd2lsbCBoYXZlIHRvCiAgICAgICAgY2hlY2sgZm9yIGl0IHVudGlsIHdlJ3JlIHdpbGxpbmcgdG8gY2hhbmdlIHRoZSBBUEkgb3IgdGhlIFZBQ00gaXMKICAgICAgICBmaXhlZCBhbmQgdGhlIG93bktleUNobmFnZSBvYmplY3RzIGNhbiBiZSBvYnNvbGV0ZWQuCgpoYXJkYWtlciAyOCBOb3YgOTggMTE6NDE6MzYKICAgIC0gKHNubXBwYXNzLmMpOiAtbzogdXNlIHRoZSBvd25LZXlDaGFuZ2Ugb2JqZWN0LgoKbWFyeiAyOSBOb3YgOTggMTk6MzI6MjEKICAgICAoZGVtbyk6IGZpeCB0aW1lIHN5bmMgdGVzdCB0byB0ZXN0IGZvciB0aW1lb3V0IGFzIGV4cGVjdGVkIHdoZW4gYXBwIGNsb2NrIGlzIHNldCBhaGVhZAoKbWFyeiAyOSBOb3YgOTggMTk6MzQ6NDEKICAgICAtKHNubXBfYXBpLmMpOiBtb3ZlIGNvbW1hbmRsaW5lIGJhc2VkIGJvb3RzL3RpbWUgc2V0dGluZyBjb2RlIGFmdGVyIGVuZ2luZUlEIGRpc2NvdmVyeSBpbiBjYXNlIGVuZ2luZUlEIHdhcyBub3Qgc3VwcGxpZWQgb24gY29tbWFuZCBsaW5lIGFzIHdlbGwKCmhhcmRha2VyIDMwIE5vdiA5OCAyMjowMDoyMwogICAgLSAoZGVtbyk6IGJldHRlciBkb2N1bWVudCB0aGUgcmVxdWlyZWQgLmNvbmYgZmlsZSBwaWVjZXMuCgpoYXJkYWtlciAzMCBOb3YgOTggMjI6MTI6MTAKICAgIC0gKGRlbW8pOiBlbmFibGUgLUM6IGF1dG8tY29uZmlndXJlIHRoZSBhZ2VudC4KCndiYWJzb24gIDEgRGVjIDk4IDA3OjU2OjU1CiAgICBGaXhlZCBhIGxpYnJhcnkgc2VhcmNoIG9yZGVyIGJ1ZyB3aGljaCBoYWQgL3Vzci9sb2NhbC9zc2wvbGliIGFuZCAvdXNyL2xvY2FsL2xpYgogICAgc2VhcmNoZWQgYmVmb3JlIC4uL3NubXBsaWIuIFRoaXMgY2F1c2VkIHVucmVzb2x2ZWQgcmVmZXJlbmNlcyB3aGVuIHRyeWluZyB0bwogICAgbGluayBzbm1wZCBhbmQgdGhlIGFwcGxpY2F0aW9ucy4gVG8gZG8gdGhpcyBMT0NBTF9MSUJTIHdhcyBjcmVhdGVkIGFuZCAuLi9zbm1wbGliCiAgICB3YXMgcmVtb3ZlZCBmcm9tIExJQlMgYW5kIHBsYWNlZCB0aGVyZS4gVGhlbiBMT0NBTF9MSUJTIHdhcyBhZGRlZCBiZWZvcmUKICAgIExERkxBR1MgaW4gdGhlIGxpbmsgY29tbWFuZHMuIGFnZW50L01ha2VmaWxlLmluIGFuZCBhcHBzL01ha2VmaWxlLmluIHdlcmUgbW9kaWZpZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU1OjI4CiAgICAtICh0b29scy5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NTo0OQogICAgLSAodXNtVXNlci5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NTo1NQogICAgLSAoc25tcHBhc3MuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgptYXJ6ICAyIERlYyA5OCAwODozMjoyOQogICAgIC0oZGVtby5jKTogdGVzdCAjMzggd2lsbCBzaG93IHRoZSA2IG1lc3NhZ2UgZXhjaGFuZ2Ugc2luY2UgaXQgaXMgaW5pdGlhbGl6ZWQgd2l0aCBhIHNpbXVsYXRlZCBhdXRoZW50aWMgb290cy90aW1lIHdoaWNoIGRlZmVhdHMgdGhlIExDRF9USU5FX1NZTkNfT1BUCgpoYXJkYWtlciAgMiBEZWMgOTggMTQ6MjY6MDgKICAgIC0gKHNubXBfYWdlbnQuYyk6IGFmdGVyIGRldGVjdGlvbiBvZiBzbm1wIHZlcnNpb24sIGVycm9yIGNvZGVzIHdlcmUgcmV2ZXJzZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTU6MTg6NTMKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBhZGRlZCB2MyBzcGVjaWZpYyB0b2tlbiBub3Rlcy4KCmhhcmRha2VyICAyIERlYyA5OCAxNToxOTo0NwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXAuY29uZi41LmRlZik6IGNyZWF0ZWQgYSBzbm1wLmNvbmYgbWFudWFsIHBhZ2UuCgpoYXJkYWtlciAgMiBEZWMgOTggMTc6MDM6MjcKICAgIC0gKC5jdnNpZ25vcmUpOiBzbm1wLmNvbmYuNSBpZ25vcmVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE3OjAzOjQ4CiAgICAtIChzbm1wLmNvbmYuNS5kZWYpOiBtaWJkaXJzLCBtaWJzLCBhbmQgbWliZmlsZXMgZG9jdW1lbnRlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxOTozODoxMgogICAgLSAobGNkX3RpbWUuYyk6IGNvbW1lbnQgY2xhaXJpZmljYXRpb24uCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzk6MjIKICAgIC0gKG1pYi5jKTogdW5uZWVkZWQgWFhYIHJlbW92ZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzk6NDcKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHNraXAgYWhlYWQgb2Ygc3BhY2Ugb24gcmV0dXJuZWQgcG9pbnRlci4KCmRyZWVkZXIgIDMgRGVjIDk4IDE4OjQ0OjQ5CiAgICBDby1jaGVja2luIHdpdGggbmV3IHZlcnNpb24gb2YgS01UIChsb2NhdGVkIGluIG5vbmV4cG9ydC9LTVQtc25tcCkuCiAgICBrbXRfcmFuZG9tKCkgc2lnbmF0dXJlIGNoYW5nZWQgaW4gc2NfcmFuZG9tKCkuCiAgICBTZWNvbmQgdmVyc29uIHRlc3RpbmcvZGVtbyBhdCB0ZXN0aW5nL2RlbW8yKiAuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjA6MDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbmV3IGZsYWcgYW5kIGRlZmluZSAtLWVuYWJsZS10ZXN0aW5nLWNvZGUgLT4gU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjI6NTkKICAgIC0gKGtleXRvb2xzLmMpOiB1c2UgU05NUF9URVNUSU5HX0NPREUgZGVmIHRvIHByb3RlY3Qgc29tZSBzZWN0aW9ucy4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyMzo0OAogICAgLSAoc2NhcGkuYyk6IHRlc3RpbmcgREVCVUdQIGZvciBwcmludGluZyBvdXQga2V5cy4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyNjo0MAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIHByb3RlY3Qgc2VjdGlvbnMgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERS4KICAgICAgLSBhbGxvdyAqJ3MgaW4gZmllbGRzIGZvciBlbmdpbmVJRHMgZm9yIGtleSBzZXR0aW5nIC5jb25mIGVudHJpZXMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MzI6MjAKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oKToKICAgICAgLSBvbmx5IG1ha2UgdGltZS9ib290cyBzZXRhYmxlIHdoZW4gU05NUF9URVNUSU5HX0NPREUgaXMgZGVmaW5lZC4KCmhhcmRha2VyICAzIERlYyA5OCAyMzoxNzoxNwogICAgLSAoZGVtbyk6IHJlbW92ZWQuCgptYXJ6ICA0IERlYyA5OCAwODowNTo1OQogICAgIC0oc25tcGNtZC4xKTogdXBkYXRlIG1hbiBwYWdlIGZvciBuZXcgVjMgcGFyc2UgYXJncwoKaGFyZGFrZXIgIDQgRGVjIDk4IDExOjAzOjE0CiAgICAtIChNYWtlZmlsZS5pbiwgc25tcHBhc3MuYywgc25tcHVzbS5jKToKICAgICAgLSBkZWxldGUgc25tcHBhc3MuCiAgICAgIC0gY3JlYXRlIGZpcnN0IHBhc3Mgc25tcHVzbS5jLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDExOjA0OjA5CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdGhlICogZm9yIGVuZ2luZUlEIGZlYXR1cmUuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NDU6NDMKICAgIC0gKFVDRC1ERU1PLU1JQi50eHQpOiBkZW1vIG1pYiBvYmplY3RzLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ2OjA5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbi9yZXNlcnZlIHRoZSBkZW1vIG9iamVjdCBncm91cCBpbiBhIGNvbW1lbnQuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NDk6MjEKICAgIC0gKC5jdnNpZ25vcmUpOiAuZ2RiIHN0dWZmCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MDQKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgdWNkRGVtb1B1YmxpYy5oKToKICAgICAgLSBleGFtcGxlcy91Y2REZW1vUHVibGljIG1vZHVsZTogIHNpbXBsZSBvYmplY3RzIGZvciBkb2luZyBkZW1vcywKICAgICAgICBpbmNsdWRpbmcgcmVtb3RlIHJlc2V0dGluZyBvZiBrZXlzIHRvIGEga25vd24gcGFzc3dvcmRzIGZvciBhIGxpc3QKICAgICAgICBvZiB1c2Vycy4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo1MDoyOAogICAgLSAodWNkRGVtb1B1YmxpYy5jbWRzKTogY29tbWFuZHMgdG8gcnVuIHRvIHNldCB1cCBmb3IgdGhlIGRlbW8uCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MzgKICAgIC0gKHVjZERlbW9QdWJsaWMuY29uZik6IGNvbmZpZ3VyYXRpb24gZmlsZSBsaW5lcyBuZWVkZWQgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE4OjM4OjA1CiAgICAtICh2ZXJzaW9uLmgsIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydCk6IDQuMC5wcmUxIHRhZwoKZHJlZWRlciAgNSBEZWMgOTggMTY6NTI6NDkKICAgIEV4dGVuZGVkIGRlbW8yIGludG8gZGVtby5yZW1vdGUgdG8gYWxsb3cgdGVzdGluZyBiZXR3ZWVuIDxoZXJlPiBhbmQKICAgIHVjZC1zbm1wLnVjZGF2aXMuZWR1LgoKbWFyeiAxMyBEZWMgOTggMTQ6NTc6MDIKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMpOiBhZGQgc3VwcG9ydCBmb3IgbXNnSUQgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gcmVxaWQgYW5kIHdoaWNoIGluY3JlbWVudHMgd2l0aCBlYWNoIHJldHJ5LiBOb3RlOiBsYXRlIFJlc3BvbnNlcyB3aWxsIGJlIGRyb3BwZWQgaWYgdGhleSBhcnJpdmUgYWZ0ZXIgdGltZW91dCAtIHRoaXMgaXMgZGlmZmVyZW50IGZyb20gdjEgYmVoYXZpb3VyIHdoZXJlIGEgbGF0ZSBSZXNwb25zZSB0byB0aGUgaW5pdGlhbCB0cnkgd2lsbCBiZSBhY2NlcHRlZCB1cCB0byB0aGUgdGltZSB3aGVyZSB0aGUgbGFzdCByZXRyeSB0aW1lcyBvdXQKCmhhcmRha2VyIDEzIERlYyA5OCAxODozOTowMgogICAgLSAobWliMmMpOiBtaW5vciB1cGRhdGUgKG5lZWRzIG1vcmUpIGZvciBuZXdlciBzbm1wIHBlcmwgbW9kLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjM5OjQ0CiAgICAtICguY3ZzaWdub3JlKTogLmdkYi5hdXRvLmluaXQKCmhhcmRha2VyIDEzIERlYyA5OCAxODo0MToxMQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKTogcmVtb3ZlZCB1bm5lZWRlZCBsaW51eCBpZmRlZi4KCmhhcmRha2VyIDE3IERlYyA5OCAxNTo1OToxMAogICAgLSAocmVhZF9jb25maWcuYyk6IHdyYXAgY29uZmlnIGxpbmUgcHJpbnQncyBpbiBTTk1QX1RFU1RJTkdfQ09ERSBjaGVja3MuCgpoYXJkYWtlciAgMiBEZWMgOTggMjE6NTU6MDQKICAgIC0gKGp1c3QgYWJvdXQgYWxsIGZpbGVzKTogbWVyZ2Ugb2YgVjMtYjEgY2hhbmdlcyBpbnRvIFYzLWIyIGJyYW5jaC4KCmhhcmRha2VyICAyIERlYyA5OCAyMjoyNzo1NAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgdXNtVXNlci5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICAgcmVhZF9jb25maWcuaCwgc25tcF9hcGkuYywgc25tcHVzbS5jLCBzbm1wdjMuYywgdG9vbHMuaCk6CiAgICAgIC0gZmluYWwgY2hhbmdlcz8gdG8gVjMtYjIgbWVyZ2UuCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mjk6NTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIHRoYXQgMjggZXJyb3JzIGZyb20gd2hpdGVzcGFjZSBjaGFuZ2VzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjM3OjA4CiAgICAtIChzbm1wZC5jKTogY2FsbCBpbml0X3NubXB2MyBiZWZvcmUgLUggdXNhZ2UgaW5mby4KCmhhcmRha2VyIDEzIERlYyA5OCAxMDozMzo0NQogICAgLSAoKik6IG1lcmdlMSB0byBWMy1iMy4KCmhhcmRha2VyIDEzIERlYyA5OCAxODo1NjoxOAogICAgLSAoKik6IG1lcmdlMiB0byBWMy1iMy4KCmRyZWVkZXIgMTcgRGVjIDk4IDA4OjA1OjA0CiAgICBDcmVhdHVyZSBjb21mb3J0OiAvZXRjIHNjcmlwdCB0byAocmUpc3RhcnQgYW5kIHN0b3Agc25tcGQgYW5kIHNubXB0cmFwZAogICAgYW5kIGtlZXAgKGNvbXByZXNzZWQpIGNvcGllcyBvZiBwcmV2aW91cyBsb2dmaWxlcy4gIEludGVuZGVkIHRvIGJlIHVuaXZlcnNhbAogICAgdG8gTGludXgsIFNvbGFyaXMsIEZyZWVCU0QsIC4uLiAuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6MzY6MzcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgaWYgS01UIGlzbid0IGF2YWlsYWJsZS4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo0OTozOAogICAgLSAoYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBtZDUuYywgbWQ1LmgsIHNjYXBpLmMsCiAgICAgIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCB0b29scy5jKToKICAgICAgLSBpbnRlcm5hbCBNRDUgc3VwcG9ydCBkb25lLgogICAgICAgIC0gdGVzdGVkIHdpdGggYW5kIHdpdGhvdXQga210IHRvIG9wcG9zaXRlIGFuZCBzYW1lIHNpZGUgYXBwcy9hZ2VudHMuCiAgICAgICAgLSB0ZXN0ZWQgYWdhaW5zdCBvbGRlciA0LjAucHJlMSBhZ2VudCBvbiBiYW5kaXQgYXMgd2VsbC4KICAgICAgICAtIGFsbCBidXQgb25lIHRlc3RpbmcvKiB0ZXN0IHBhc3NlcyAod2hpY2ggd2FzIGZhaWxpbmcgYmVmb3JlIGFueXdheSkuCiAgICAgICAgLSB0aGUgb2xkZXIgZGVtbyBzY3JpcHQgcGFzc2VzIGFzIHdlbGwuCiAgICAgIC0gTW9kaWZpZWQgbWFueSBvdGhlciByb3V0aW5lcy4gIEV2ZXJ5dGhpbmcgc2hvdWxkIHVzZSBTQ0FQSSBub3cgYW5kCiAgICAgICAgS01UIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgZGlyZWN0bHkgb3V0c2lkZSB0aGUgc2NhcGkuYyBhbmQKICAgICAgICBrZXl0b29scy5jIGZpbGVzLgogICAgICAgIC0gbmV3IHNjYXBpIHJvdXRpbmU6ICBzY19oYXNoKCkuCiAgICAgIC0gQ291bGQsIGFzIGFsd2F5cywgdXNlIGEgYml0IG1vcmUgY2xlYW4gdXAsIGJ1dCBJIG5lZWRlZCB0byBjaGVjawogICAgICAgIHNvbWV0aGluZyBpbiB0aGF0IHdvcmtlZCBiZWZvcmUgSSBicmVhayBpdCBhZ2FpbiAoYWhlbSkuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NTM6MTAKICAgIC0gKHNubXBnZXQuYywgc25tcHVzbS5jKTogdW5uZWVkZWQgS01UIGluY2x1ZGVzIHJlbW92ZWQuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NTQ6MzgKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IHN1cnJvdW5kIGEgZmV3IEtNVCBzcGVjaWZpYyBpdGVtcyB3aXRoICNpZmRlZnMuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NTY6NTYKICAgIC0gKHNubXBfYWdlbnQuYyk6IHJlbW92ZSB1bm5lZWRlZCBLTVQgaW5jbHVkZXMuCgpoYXJkYWtlciAyMiBEZWMgOTggMTk6NDA6MTIKICAgIC0gKGtleXRvb2xzLmMpOiBkZWNvZGVfa2V5Y2hhbmdlKCkgd2Fzbid0IHNldHRpbmcgdGhlIHJldHVybmVkIGJ1ZmZlciBsZW5ndGguCgpoYXJkYWtlciAyMiBEZWMgOTggMTk6NDM6NTAKICAgIC0gKHNubXBfYXBpLmMpOiBERUJVR1Agb2YgcHJvYmVkIGVuZ2luZUlEIHByaW50ZWQgMDAncyBhcyAwJ3MuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MDk6MzgKICAgIC0gKHNubXBfYWdlbnQuYywgdXNtU3RhdHMuYywgdXNtU3RhdHMuaCwgdXNtVXNlci5oLAogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCk6CiAgICAgIC0gdXBkYXRlZCBVU00gbWliLCBpbmNsdWRpbmcgdGhlIG1vdmUgZnJvbSBzbm1wTW9kdWxlcy4xMiB0byAuMTUuCiAgICAgIC0gbWFrZSByZXBvcnRzIGdlbmVyYXRlZCBpbmNsdWRlIHRoZSAuMCBzdWZmaXggZm9yIHRoZSBpbnN0YW5jZSBzcGVjaWZpZXIuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MTA6MjgKICAgIC0gKHRvb2xzLmMpOiB3cmFwIGR1bXBfZW5naW5lSUQgaW4gI2lmZGVmIFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjE3OjI1CiAgICAtIChsY2RfdGltZS5jKTogd3JhcCBkdW1wX2V0aW1lbGlzdCgpIGluICNpZmRlZiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToyMDozMQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKToKICAgICAgLSBkb24ndCB1c2UgZHVtcF9zbm1wRW5naW5lSUQoKSB1bmxlc3MgdGVzdGluZy4KICAgICAgLSBOb3RlOiB0aGlzIHV0aWxpdHkgaXMgbm90IHJlYWxseSBuZWVkZWQgYW55bW9yZS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMjoxMjozMgogICAgLSAoU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQpOiB0eXBvIChjdXQgYW5kIHBhc3RlIG1pc3NlZCBhIGxpbmUpLgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIxOjA3OjMzCiAgICAtIChzbm1wdXNtLmMpOiBtc2dTZWN1cml0eVBhcmFtcyBzaG91bGQgY29udGFpbiB0aGUgKnNhbHQqLCBub3QgdGhlIElWLAogICAgICBhcyBkZWZpbmVkIGJ5IHRoZSBVU00gZG9jdW1lbnQsIHNlY3Rpb24gOC4xLjEuMSAoYW5kIGNvbW1vbiBzZW5zZSkuCgpoYXJkYWtlciAyMyBEZWMgOTggMjE6NDc6NDQKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIFNlbmQgb25seSBhdXRoTm9Qcml2IHJlcG9ydHMgZm9yIG5vdEluVGltZVdpbmRvdyByZXBvcnRzLgogICAgICAtIHJlcG9ydCBsZW5ndGggY2hlY2sgaW5jcmVhc2VkIGJ5IG9uZSB0byBhY2NvbW9kYXRlIGZvciB0aGUgLjAgc3VmZml4LgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIyOjA2OjI1CiAgICAtIChzbm1wdXNtLmMpOiBhbGxvdyBnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gdXNlIHVua25vd24gc2VjdXJpdHkgbmFtZXMKICAgICAgZm9yIHNlY0xldmVsID0gbm9BdXRoTm9Qcml2LgogICAgICAtIHRoaXMgaXMgcmVxdWlyZWQgc2luY2UgdW5rbm93blVzZXIgcmVwb3J0cyBuZWVkIHRvIGdvIG91dCB3aXRoIHRoZQogICAgICAgIHNhbWUgdXNlciBuYW1lIGFzIHRoZSBiYWQgcmVxdWVzdCB0aGF0IGNhbWUgaW4uCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6MDE6MjQKICAgIC0gKHZhY20uYyk6IEVuYWJsZSBtdWx0aXBsZSBzaWRlIGJ5IHNpZGUgdmlld3MgaW4gdGhlIHZpZXcgZmFtaWx5CiAgICAgIHRyZWUuICBUaGUgdmlld3MgYWxyZWFkeSBleGlzdGVkLCBidXQgd2VyZW4ndCBjaGVja2VkIGFuZCBvbmx5IHRoZQogICAgICBmaXJzdCB2aWV3IHdhcyBmb3VuZC4KICAgICAgLSBOb3QgZG9uZSBpbiBhIGNsZWFuIGZhc2hpb24uICBNdWNoIG9mIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKICAgICAgICBzaG91bGQgYmUgcmV3cml0dGVuIHdpdGggc3ViLXBpZWNlcyB0byBkbyBpdCBwcm9wZXJseSB3aXRoIGdyZWF0ZXIKICAgICAgICBzcGVlZC4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzoyODozMQogICAgLSAoY29uZmlnKik6IGRlZmluZSB1X2ludHs4LDE2LDMyfV90IGZvciBLTVQgaGVhZGVycy4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo1NTozOQogICAgLSAoc25tcHVzbS5jKTogVVNNIG9pZCdzIHdlcmUgd3JvbmcKCmhhcmRha2VyIDMxIERlYyA5OCAxNzo1ODoxOQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMiApCgpoYXJkYWtlciAgNiBKYW4gOTkgMDc6NDY6MDIKICAgIC0gKHNubXB1c20uYyk6IHVzbV9zZXRfc2FsdCgpIHdhcyB1c2luZyBhIGhvc3Qgc3BlY2lmaWMgYnl0ZSBvcmRlcmluZwogICAgICBmb3IgZ2VuZXJhdGluZyB0aGUgc2FsdCBmcm9tIHRoZSBlbmlnaW5lQm9vdHMgdmFsdWUgYW5kIGZyb20gdGhlCiAgICAgIGFyYml0cmFyeSBpbnRlZ2VyLiAgVGhpcyB0ZWNobmljYWxseSBzaG91bGRuJ3QgbWF0dGVyLCBidXQgc2luY2UKICAgICAgd2UncmUgc2hvb3RpbmcgdG8gYmUgYSByZWZlcmVuY2UgcGxhdGZvcm0uLi4KCmhhcmRha2VyIDE5IEphbiA5OSAxOToyMDowNwogICAgLSAoSVNTVUVTKTogbmVlZCByYW5kb20gaW50IGZvciBJVi4KCndiYWJzb24gMjYgSmFuIDk5IDA1OjUyOjE5CiAgICAgQ2hhbmdlZCBNSU4oKSBtYWNybyB0byBTTk1QX01JTigpIGJlY2F1c2Ugd2UgZXhwbGljaXRseQogICAgIGRlZmluZSB0aGF0IGluIHRvb2xzLmguLi4gVGhpcyB3YXMgbmVlZGVkIHRvIGFsbG93IHN1Y2Nlc3NmdWwKICAgICBsaW5rYWdlIGluIFNvbGFyaXMgMi42CgpoYXJkYWtlciAyNyBKYW4gOTkgMjA6Mzc6NTYKICAgIC0gKFNOTVAtVEFSR0VULU1JQi50eHQpOiB0YXJnZXQgbWliIHdhcyBpbXByb3Blcmx5IGxvY2F0ZWQgYXQgLjE1IG5vdCAuMTIuCgpoYXJkYWtlciAyNyBKYW4gOTkgMjA6NTE6MTIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWNjZXB0IHNlY3VyaXR5IGxldmVsIGFiYnJldmlhdGlvbnMuCgpoYXJkYWtlciAyNyBKYW4gOTkgMjE6MDc6NTkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gY3JlYXRlIC0td2l0aC1wZXJzaXN0ZW50LWRpcmVjdG9yeSBjb25maWd1cmUgc2NyaXB0IGZsYWcuCgpkcmVlZGVyIDI5IEphbiA5OSAxNToyMDo1MQogICAgUmVwYWlyZWQgdGVzdHMgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIHRoZSBjb2RlYmFzZS4KCm1hcnogMzEgSmFuIDk5IDEzOjU3OjEzCiAgICAgLShzbm1wX2FwaS5jKTogemVybyBsZW5naHQgdXNlciBuYW1lIGZvciBlbmluZUlEIGRpc2NvdmVyeQoKZHJlZWRlciAgMiBGZWIgOTkgMTQ6MDQ6NDgKICAgIFJlc29sdmUgT0lEIGNvbGxpc2lvbnM6IDEpIGJldHdlZW4gZGVtbyBNSUIgYW5kIFVDRCBlbnRlcnByaXNlIE1JQjsgMikKICAgIGluc2lkZSBkZW1vIE1JQi4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowNDozOAogICAgLSAoc25tcHRyYXBkLmMpOiBzdXBwb3J0IC1ILgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjEzOjQxCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBhbGxvdyBlbnYgdmFyaWFibGUgU05NUF9QRVJTSVNURU5UX0ZJTEUgdG8gb3ZlcnJpZGUgcGVyc2lzdGVudAogICAgICAgIHN0b3JhZ2UgbG9jYWN0aW9uLgogICAgICAtIG1lcmdlIGluIE1pa2UncyBjaGFuZ2VzIHRvIGNvcHlfd29yZCgpLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjE0OjQ2CiAgICAtICh0YXJnZXQuaCk6IG1lcmdlIG1pa2UncyB0YXJnZXQgbWliZ3JvdXAgaW50byB0aGUgNC4wIGxpbmUuCgptYXJ6ICA2IEZlYiA5OSAxNTowNDoxMwogICAgIC0oc25tcF9hcGkuW2NoXSxzbm1wX3BhcnNlX2FyZ3MuYyxzbm1wdjMuW2NoXSxzbm1wdXNtLmMsc25tcGNtZC4xKTogYWxsb3cgY29udGV4dEVuZ2luZUlEIGFuZCBzZWN1cml0eUVuZ2luZUlEIHRvIGJlIGRpZmZlcmVudCwgYWRkZWQgLUUvLWUgdG8gcGFyc2VfYXJncywgZml4ZWQgZW5naW5lSUQgZGlzY292ZXJ5IHdoaWNoIGJyb2tlIGFmdGVyIG5hbWUgdXNlZCBpbiBwcm9iZSBzd2l0Y2hlZCB0byB6ZXJvIGxlbmd0aCBzdHJpbmcKCmhhcmRha2VyICA3IEZlYiA5OSAyMDo0MzoxNQogICAgLSAocmVhZF9jb25maWcuYyk6IC1XYWxsIGZpeC4KCmhhcmRha2VyICA3IEZlYiA5OSAyMDo0NToxNwogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogYSBmZXcgLVdhbGwgZml4ZXM6CiAgICAgIC0gcHJvdG95cGUgaW5pdF9zbm1wdjNfcG9zdF9jb25maWcodm9pZCkuCiAgICAgIC0gcmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlcy4KICAgICAgLSBkb24ndCBjb21waWxlIGluIHNldF9lbmdpbmVCb290c0FuZFRpbWUgaW50ZXJmYWNlIGZ1bmN0aW9uIGlmIG5vdCBuZWVkZWQuCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDc6NTkKICAgIC0gKHNubXAycC5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICAgICBzbm1wZC5jLCBzbm1wZC5oLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gaW1wbGVtZW50IGFnZW50IHVzaW5nIGxpYnJhcmllcyBwYXJzaW5nIGFuZCBoYW5kbGluZyByb3V0aW5lcwogICAgICAgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuCgpoYXJkYWtlciAgOCBGZWIgOTkgMDA6MTE6NTkKICAgIC0gKHNubXBfYWdlbnQuYywgdXRpbF9mdW5jcy5jLCB1Y2REZW1vUHVibGljLmMsIHJvdXRlX3dyaXRlLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCBzbm1wRW5naW5lLmMsIHVzbVVzZXIuYywgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsCiAgICAgIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtIG1vZGlmaWVkIHRvIHdvcmsgd2l0aCBuZXcgd3JpdGUgdmFyaWFibGUgYXBpLgogICAgICAtIGZpeGVkIGEgbWlzc2luZyBmZWF0dXJlIGluIERhdmUncyBjb2RlOiBjcmVhdGlvbi4KCmhhcmRha2VyICA4IEZlYiA5OSAxMjoyMjoxMwogICAgLSAoQ09QWUlORyk6IEl0J3MgMTk5OS4KCndiYWJzb24gIDggRmViIDk5IDEzOjM0OjM5CiAgICBDaGFuZ2VkIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIHNubXB2M19zZXRfZW5naW5lQm9vdHNhbmQgVGltZQogICAgZnJvbSBpbnQgZigpOyB0byB2b2lkIGYoKTsgdG8gbWF0Y2ggdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gaQogICAgc25tcHYzLmMgLgoKd2JhYnNvbiAgOCBGZWIgOTkgMTM6NDA6MjcKICAgIGZpeGVkIGNhc3RpbmcgZXJyb3IuLi4gKihsb25nKSBjaGFuZ2VkIHRvICoobG9uZyAqKQoKZHJlZWRlciAxNyBGZWIgOTkgMTY6MjM6NDMKICAgIFJhbmRvbSBJVjsgZml4ZWQgc2FsdCBjb25zdHJ1Y3Rpb24uCiAgICBGaXhlZCBOVUxMIGRlcmVmZXJlbmNlIHNob3ctc3RvcHBlciBpbnRyb2R1Y2VkIGJ5IG1lcmdlIG9mIEQuIFNoZWxkJ3MgY2hhbmdlcy4KICAgIGNvbmZpZ3VyZS5pbitNYWtlZmlsZS5pbiBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBQRVJTSVNURU5UX0RJUkVDVE9SWS4KICAgIE1pbm9yIGNvbXBpbGUgd2FybmluZ3MsIG91dC1vZi1kYXRlIGNvbW1lbnRzIGZpeGVkLCBjbGFyaWZpZWQgZGVidWcgb3V0b3V0LAogICAgCWNsYXJpZmllZCBwcmUtY29tcGlsZSBjb2RlIGluIHNjYXBpLmMuCiAgICBEaXNjb3ZlcmVkIHdoZXJlIHBkdS0+c2VjdXJpdHlFbmdpbmVJRCB3YXMgYmVpbmcgbXVsdGlwbHkgZnJlZSdkLCBidXQgbm90CiAgICAJdGhlICpmaXJzdCogdGltZS4uLiAob3BlbiBwcm9ibGVtKQoKaGFyZGFrZXIgMTcgRmViIDk5IDIwOjU5OjI5CiAgICAtIChzbm1wZC5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDA6MDcKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gZml4IGdldGJ1bGtzLgogICAgICAtIGZpeCBzbm1wc2V0J3MgdG8gYWxsb3cgY3JlYXRpb24uCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDA6MjIKICAgIC0gKGRsbW9kX21pYi5jKTogZG9uJ3QgZGVmaW5lIE1BVENIX1NVQ0NFRURFRCBhdCBhbGwuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDA6MzYKICAgIC0gKHV0aWxfZnVuY3MuYyk6IC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjU4CiAgICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYyk6CiAgICAgIC0gLVdhbGwgdmFyaWFibGUgcmVtb3ZpbmcuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDE6MzYKICAgIC0gKHVzbVVzZXIuYywgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHByb2MuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gLVdhbGwgdmFyaWFibGUgcmVtb3ZpbmcuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDU6MjgKICAgIC0gKGtleXRvb2xzLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgICAgc25tcF9jbGllbnQuYywgc25tcHVzbS5jLCB0cmFuc2Zvcm1fb2lkcy5oKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMToyODo1NwogICAgLSAoa2V5dG9vbHMuYyk6IG9wcHMuICBEZWxldGVkIGEgdmFyaWFibGUgSSBzaG91bGRuJ3QgaGF2ZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTozMDoxMQogICAgLSAoc25tcF9hZ2VudC5jKTogWW91IGNhbid0IGFzc2lnbiBhIE5VTEwgdG8gYSB1bmlvbiwgb25seSB0byBhIHN1Yi10eXBlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjQ1OjIzCiAgICAtICh0ZXN0aW5nL01ha2VmaWxlLmluKTogcmVtb3ZlIHJlZmVyZW5jZXMgdG8gc3ViZGlycyBzaW5jZSB0aGVyZSBhcmUKICAgICAgbm9uZSBhbmQgaXQgYnJlYWtzIHNpbXBsaWVyIHZlcnNpb25zIG9mIHNoIHdoZW4gbm8gYXJndW1lbnRzIHRvCiAgICAgIGZvcmVhY2ggZXhpc3QuCgptYXJ6IDI0IEZlYiA5OSAwOTozMToyOQogICAgIC0oc25tcGxpYi9zbm1wX2FwaS5bY2hdLHNubXBsaWIvc25tcC5oLGFnZW50L3NubXBkLmgsYWdlbnQvc25tcF9hZ2VudC5oKTogbW92ZWQgUmVwb3J0cyBpbnRvIHNubXBsaWIsIGNvbmZvcm0gdG8gc3BlYyBvbiBjcml0ZXJyaWEgZm9yIHNlbmRpbmcgUmVwb3J0cywgbGF5IGdyb3VuZCB3b3JrIGZvciBtYXhNc2dTaXplLCBkZWZhdWx0IGNvbnRleHRFbmdpbmVJRCB0byBzZWN1cml0eUVuZ2luZUlEIHdoZW4gbm90IGV4cGxpY2l0bHkgc2V0IGl0c2VsZgoKbWFyeiAyNSBGZWIgOTkgMTQ6MDQ6MDUKICAgICAtKHNubXBfYXBpLmMsc25tcF9jbGllbnQuYyk6IGZpeGVkIGJ1ZyBpbiBzbm1wX2Nsb25lX3BkdSAobm90IGNsb25pbmcgc2VjdXJpdHlFbmlnaW5lSUQpLCB1bmNvbW1lbnRlZCBfc25tcF9mcmVlCgp3YmFic29uICA5IE1hciA5OSAwODo1NDoxMgogICAgRmlyc3QgY3V0IGF0IHNubXB0cmFwZCBtb2RpZmljYXRpb24uIFJlY2VpdmVzIGF1dGhQcml2IGFuZCBsb3dlciBzZWN1cml0eQogICAgbGV2ZWwgdHJhcHMuCgp3YmFic29uICA5IE1hciA5OSAwOTowMjowNwogICAgQ2hhbmdlZCBERUJVR1AoKSBzdGF0ZW1lbnQgdG8gZ2V0IHNlY3VyaXR5TmFtZSBmcm9tIFBEVSByYXRoZXIgdGhhbiBzZXNzaW9uCiAgICBhcyBzZXNzaW9uIHdhcyBub3QgeWV0IGluaXRpYWxpemVkIGR1cmluZyBlbmdpbmUgSUQgZGlzY292ZXJ5IGFuZCB0aGUgTlVMTAogICAgdmFsdWUgY2F1c2VkIGEgc2VnbWVudGFpb24gZmF1bHQuCgptYXJ6IDEwIE1hciA5OSAwODowNDo0NwogICAgIC0oc25tcF9hcGkuYyk6IGZpeCBlbmdpbmVJZCBkaXNjb3Zlcnkgd2hlbiBjb250ZXh0IGVuZ2luZUlEIGlzIHNwZWNpZmllZCAobmVlZGVkIHRvIGRpc2NvdmVyIHByb3h5IGVuZ2luZUlEIGlmIGFsbCB5b3Uga25vdyBpcyBwcm94aWVkIGFnZW50J3MgZW5naW5lSUQpCgp3YmFic29uIDE3IE1hciA5OSAxMzoyNzo1OQogICAgQ2hhbmdlZCBERUJVR1AoKSBzdGF0ZW1lbnQgYWJvdXQgQnVpbGRpbmcgdGhlIFNOTVAgbWVzc2FnZSBzbyB0aGF0CiAgICBldmVuIGlmIHNlY3VyaXR5TmFtZSBpcyB1bmluaXRpYWxpemVkIChOVUxMKSwgcHJvZ3JhbSB3aWxsIGNvbnRpbnVlCiAgICB3aXRob3V0IGNvcmUgZHVtcGluZy4gTGF0ZXIsIHNvbWVvbmUgc2hvdWxkIHNlZSBhYm91dCBmaXhpbmcgdGhlIGxvZ2ljCiAgICBzbyB0aGF0IHNlY3VyaXR5TmFtZSB3aWxsIG5vdCBiZSBhIE5VTEwgcG9pbnRlciBoZXJlLCBvcgogICAgcmVwYWlyIHRoZSBkZWJ1Z2dpbmcgc2NoZW1lLCBpZiB0aGF0J3MgdmFsaWQuCgpoYXJkYWtlciAyNCBNYXIgOTkgMjA6MzA6MTIKICAgIC0gKG1pYmluY2wuaCk6IGFkZCBhZ2VudF9yZWFkX2NvbmZpZy5oCgpoYXJkYWtlciAyNCBNYXIgOTkgMjA6MzI6NDQKICAgIC0gKHRlc3RpbmcvTWFrZWZpbGUuaW4pOiByZW1vdmUgc3ViZGlycy4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjowMzowNAogICAgLSAodmFjbV92YXJzLmgpOiByZWxvY2F0ZSBWQUNNIG5vZGUgd2hlcmUgaXQgc2hvdWxkIGJlICgxMy0+MTYpLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjE2OjM4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogc2tpcCBzcGFjZSBhZnRlciBjb3B5aW5nIGEgd29yZCBpbiBjb3B5X3dvcmQoKQoKaGFyZGFrZXIgMzAgTWFyIDk5IDA5OjUxOjIxCiAgICAtICh1Y2REZW1vUHVibGljLmMpOiBhZGRlZCBoZWxwIHN0cmluZ3MgdG8gY29uZiBwYXJzZXJzLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjI3OjI5CiAgICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSBhY2NpZGVudGlhbGx5IGNvbWl0dGVkIGNvbmZsaWN0LgoKaGFyZGFrZXIgMTUgQXByIDk5IDA3OjI1OjQ4CiAgICAtIChrZXl0b29scy5jKTogQWxsb3cgc2hvcnQgcGFzc3BocmFzZXMgd2hlbiBTTk1QX1RFU1RJTkdfQ09ERSBpcyBzZXQuCgptYXJ6IDE5IEFwciA5OSAxNDoxNDoyMwogICAgIC0oc25tcF9hcGkuW2NoXSxzbm1wX2NsaWVudC5jKTogZml4ZWQgYnVnIHdoZXJlIG1zZ0lkIGFuZCByZXFJZCB3ZXJlIG5vdCB0cmVhdGVkIGNvcnJlY3RseSBpbiByZXNwb25zZXMgaWYgb3JnaW5hbCByZXF1ZXN0IGhhcHBlbmVkIHRvIGhhdmUgbXNnSWQgb3IgcmVxSWQgZXF1YWwgdG8gYXJiaXRyYXJ5IGRlZmF1bHQoMCkKCm1hcnogMTkgTWF5IDk5IDA3OjE0OjQ0CiAgICAKICAgIGFkZGluZyB2MyBwYWNrZXQgZ2VuZXJhdG9yIHBlcmw1IHNjcmlwdCAocmVxdWlyZXMgQ29udmVydDo6QkVSKQogICAgLgoKbWFyeiAxOSBNYXkgOTkgMDc6MTY6NDEKICAgIAogICAgZXhhbXBsZSBkYXRhIGZpbGUgdG8gZ2VuZXJhdGUgYSBWMyBwYWNrZXQgd2l0aCBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDA4OjAyOjI0CiAgICBSRUFETUUgZm9yIHBrdGdlbi5wbAoKbWFyeiAxOSBNYXkgOTkgMDg6NDQ6MDMKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1hcnogMTkgTWF5IDk5IDA4OjQ1OjE1CiAgICBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDEwOjMxOjE0CiAgICByZW1vdmUgbGFzdCBzdWJtaXQKCm1hcnogMjAgTWF5IDk5IDEyOjM1OjAzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDIzIE1heSA5OSAwODowNDowMwogICAgaGFuZGxlIHNlcV9vZiB0byBhbGxvdyBhcmJpdHJhcnkgbnVtYmVyIG9mIHZhcmJpbmRzLCBidWcgZml4ZXMsIHNlbmQvcmVjZWl2ZSwgcHJldHR5IHByaW50IGRlYnVnZ2luZyBwYWNrZXQgZHVtcAoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE4OjQyCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxMToyMDowNAogICAgLSAodm1zdGF0LmMpOiBpbmNsdWRlIGxpbWl0cy5oLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjMyCiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjQ2CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MTEKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTozMzowNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIFBhdGNoIGZyb20gRGVyZWsgSi4gQmFsbGluZzoKICAgICAgLSBmcmVlYnNkMiBmaXhlcy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1Mjo1NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQKCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NDoyMgogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIHN5cy9xdWV1ZS5oLgoKbWFyeiAgMSBKdW4gOTkgMDc6MjU6NTUKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBhZGRlZCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IChtZDUgYW5kIHNoYTEpCgpkYXZlcyAgMSBKdW4gOTkgMDg6Mzc6NDcKICAgIC0gKGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMpOiBEZXRlcm1pbmUgdHlwZSBvZiBSUE0gcGFja2FnZXMKCm1hcnogMTYgSnVuIDk5IDA5OjMwOjU1CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogYWRkZWQgZW5jcnlwdGlvbi9wcml2YWN0IHN1cHBvcnQgKGRlcy1jYmMpCgptYXJ6IDE2IEp1biA5OSAxMjo1MDoyOQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGxhdGVzdCBhdHRlbXB0IHRvIGZpeCBwcml2YWN5L2VuY3J5cHRpb24KCm1hcnogMjMgSnVuIDk5IDA4OjE4OjU5CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogbGF0ZXN0IGF0dGVtcHQgdG8gZml4IHByaXZhY3kvZW5jcnlwdGlvbih3b3JraW5nIHdpdGggQ3J5cHQ6OkRFUy9DcnlwdDo6Q0JDK3BhdGNoKQoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjEzOjQwCiAgICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjM4OjQ1CiAgICAtIChtaWJpbmNsLmgsIHVjZERlbW9QdWJsaWMuYywgdmFjbV92YXJzLmgsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLAogICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIxOjI0OjIyCiAgICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxMzo1OQogICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxNDo0MwogICAgLSAoc25tcF92YXJzLmMpIG1vcmUgdjJwYXJ0eSByZXdvcmsgbmVlZGVkCgptc2xpZmNhayAgNyBBcHIgOTkgMDY6MTc6MjgKICAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDI6MTAKICAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgIGxjZF90aW1lLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICAgbmV3ZXIgbW9kZWwuCiAgICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDg6MDcKICAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgoKaGFyZGFrZXIgIDcgQXByIDk5IDExOjI4OjAyCiAgICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY29udmVyc2lvbgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjAwOjIwCiAgICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCBzbm1wbGliL3ZhY20uaAogICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjE3OjIzCiAgICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAoKbXNsaWZjYWsgIDcgQXByIDk5IDE1OjAwOjM5CiAgICAtKHVzbVVzZXIuYyxzeXN0ZW0uYykgcGx1ZyBtZW0gbGVhazsgKHNubXBfYXBpLmMpIGVuZm9yY2UgYXJyYXkgbGltaXQuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTQ6MzEKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3lzL3RpbWUuaC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNTozOQogICAgLSAoaHJfdXRpbHMuaCk6IHJlbW92ZSB2YXJpYWJsZSBuYW1lcyBmcm9tIHByb3RvdHlwZXMgKHdhcyBjYXVzaW5nIHByb2JsZW1zKS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNjo0NQogICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MjU6MDkKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToxOToyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MjA6MDAKICAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjMyOjIzCiAgICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozNjozMQogICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBtb2R1bGUgbG9jYXRpb25zIGZvciBicm9rZW4gbWlicy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NDo0OAogICAgLSAoZnJlZWJzZC5oLCBmcmVlYnNkMi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlYnNkIHV0bXAgY2xlYW51cHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTY6NTMKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NzoyNAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBjaGVja2luZyBvZiAuY29uZiBmaWxlIHBhcnNpbmcgbGluZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MDIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCAtUC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODoyNwogICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAwOjQ5CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgICAtIEFkZCBGUkFNRS1SRUxBWS1EVEUtTUlCIGFzIHJlcGxhY2VtZW50IGZvciBSRkMtMTMxNQoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAzOjI5CiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjI5OjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpIGluaXRfc25tcCB0YWtlcyBhcmd1bWVudDsgIiIgdXNlZC4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNTozMDozNAogICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCgpoYXJkYWtlciAxNCBBcHIgOTkgMTU6NTI6MzUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjMxOjU1CiAgICAtIChzbm1wX2FnZW50LGMsIHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LltjaF0pIGZpeCB2YXJpYWJsZV9saXN0IHdpdGggYnVpbHQtaW4gc3RvcmFnZQoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjU2OjM3CiAgICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6MzA6MjkKICAgIC0gKElQRldBQ0MtTUlCLnR4dCkgY2hhbmdlIG1vZHVsZSBuYW1lIGZyb20gSVBGV0FETS1NSUIgdG8gSVBGV0FDQy1NSUIuCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6NTQ6MjIKICAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCkgaXBmd0NoYWluVGFibGUge2lwZncgMX0gZml4Cgptc2xpZmNhayAxNiBBcHIgOTkgMDg6MzM6MTYKICAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlMgOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMDowNgogICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjExOjQ4CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE1OjE0CiAgICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNjoxNgogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjA2CiAgICAtIChORVdTKTogdXBkYXRlZAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjQxCiAgICAtIChzbm1wdHJhcGQuOCk6IG1hbiBwYXRjaCBmcm9tIE5pZWxzCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MzQ6NDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQoKbXNsaWZjYWsgMTggQXByIDk5IDA2OjU0OjI2CiAgICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0IDogOSAtPiAxMAoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjAxOjE1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICAgZmlsZSBub3cgY29udGFpbnMgdGhlIGNvZGUgaXRzZWxmLgogICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDk6MjcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjEyOjE3CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGVkIGEgbW9yZSBjb252ZW5pZW50IHJlYWRfY29uZmlnX3JlYWRfZGF0YSgpIGZ1bmN0aW9uIHRvCiAgICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgICAtIHVzZSBwcmV2aW91c2x5IG1hbGxvY2VkIHNwYWNlIGluIHNvbWUgcm91dGluZXMsIG9yIG1hbGxvYyBpdCBmb3IKICAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxNDoyOAogICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDExOjI4OjE0CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDIwIEFwciA5OSAxNTozMTozNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIGNvbXBsZXRlbHkgcmUtaGFja2VkOgogICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgICBnZW5lcmljYWxseSwgYW5kIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHR5cGVzIG9mIGNvZGUgdGVtcGxhdGVzCiAgICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgICBhbnkgdHlwZSBvZiBjb2RlIChub3QganVzdCBDKSBmb3Igc29tZXRoaW5nIGVsc2UgYmFzZWQgb24gbWliCiAgICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgIGFnYWluIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCB3aXRob3V0IGJlaW5nLCB3ZWxsLCBtZS4gIFRoZQogICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgICByZWFkIHRoaXM/IChJZiBzbywgc2VlIG1lIGZpcnN0KS4KCmhhcmRha2VyIDIwIEFwciA5OSAxNjowNDoxNwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgICAtIHZhcmlhYmxlVHlwZXMgLT4gdmFyaWFibGVzCiAgICAgIC0gY25hbWUgLT4gTkFNRQoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjEwOjQ0CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCgpoYXJkYWtlciAyMCBBcHIgOTkgMjE6Mzg6NDIKICAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NDo0NAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NjowMwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgICBkaXJlY3RpdmVzIHdoZXJlIG5lZWRlZCBiZWNhdXNlIG9mIGl0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDEwOjUxOjMwCiAgICAtIChzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBrZXl0b29scy5jKTogQW5vdGhlciB2MyBicmFuY2ggdXBkYXRlLgoKbXNsaWZjYWsgMjYgQXByIDk5IDA5OjIxOjA2CiAgICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCgpuYmEgMjYgQXByIDk5IDExOjIxOjEwCiAgICAKICAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCgpuYmEgMjYgQXByIDk5IDExOjQ4OjU3CiAgICAKICAgIAogICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgICBpbnNwaXJlZCBieSBhIHJlZmVyZW5jZSB0byBzbm14IGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCgpuYmEgMjYgQXByIDk5IDEyOjAzOjQ3CiAgICAKICAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgIAlzdHJpbmdzCgpuYmEgMjYgQXByIDk5IDEyOjA5OjM1CiAgICAKICAgIAogICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICAgYXBwcy9zbm1wdHJhcGQuYzogZml4IGEgYnVzIGVycm9yIHdoZW4gdXNpbmcgLVMgYW5kIHJlY2VpdmluZyBhbgogICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KCm5iYSAyNiBBcHIgOTkgMTI6MTM6NTAKICAgIAogICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgICAJZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjYgQXByIDk5IDEyOjM3OjA5CiAgICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKCm1zbGlmY2FrIDI3IEFwciA5OSAwOTo1MTozNQogICAgLSAoaW50ZXJmYWNlcy5jKSBhZGQgaWZfdHlwZV9mcm9tX25hbWUgdG8gY29udmVydCBpbnRlcmZhY2UgbmFtZSB0byB0eXBlLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjMyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IGNhbGxiYWNrIEFQSS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozOTo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KCmhhcmRha2VyICAzIE1heSA5OSAwNzowNzoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBzY2FwaS5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KCmhhcmRha2VyICAzIE1heSA5OSAwNzoxMzozMQogICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDEyOjU4OjE5CiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgYWxsX2dlbmVyYWxfbG9jYWwuaCwgYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgIC0gbnVrZWQgYWxsX2dlbmVyYWxfbG9jYWwuaCBhbmQgYWxsX3N5c3RlbS5oLgogICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KCm5iYSAgMyBNYXkgOTkgMTU6NDA6MTEKICAgICgqLltjaF0pOglwYXRjaGVzIHRvIHR5cGVzIHRvIHdpcGUgd2FybmluZ3MgZnJvbSBjb21waWxlcnMKICAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCgpuYmEgIDQgTWF5IDk5IDAwOjQ3OjQ0CiAgICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgoKbmJhICA0IE1heSA5OSAwMDo1MToxNgogICAgKG1hbnkpOglyZW1vdmUgY29uc3Qgc3BlYyBmcm9tIEZpbmRWYXJNZXRob2QuIFRoYXQgd2FzIHdyb25nCgpoYXJkYWtlciAgNCBNYXkgOTkgMTE6MDg6NTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCgptc2xpZmNhayAgNiBNYXkgOTkgMDk6MjA6MzAKICAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KCm5iYSAxMCBNYXkgOTkgMTQ6NDc6MjIKICAgIEZpeGluZyBzb21lIG1vcmUgcHJvdG90eXBlcy4gUG9pbnRlZCBvdXQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm5iYSAxMCBNYXkgOTkgMTQ6NDk6NDkKICAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgICAJaW5zaWRlIFYxIHNlc3Npb24uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDI6NDgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDM6MjUKICAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDoxMTo0MAogICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjUzOjIzCiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjIyOjE2CiAgICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzo1MjoxOQogICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDk6MTgKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKbXNsaWZjYWsgMTQgTWF5IDk5IDA2OjU0OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYwogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgc25tcGxpYi9zbm1wX2F1dGguYykgbW9yZSBzaXplX3QgZml4ZXMKCm1zbGlmY2FrIDE0IE1heSA5OSAwOTo0NzoxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgICBzbm1wbGliL3BhcnNlLmMpIG1vcmUgQU5TSS1DIHRvdWNodXBzCgptc2xpZmNhayAxNCBNYXkgOTkgMTM6NTk6MzcKICAgIC0oYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIHNubXBsaWIvc25tcHVzbS5jKSBmaXhlcyB0byBidWlsZCBIUCAmIEFJWAoKZGF2ZXMgMTcgTWF5IDk5IDAzOjIwOjUzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKCmRhdmVzIDE3IE1heSA5OSAwNDozNDo1NQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNDozODowMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3MgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDc6MTg6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAob2Jzb2xldGluZyAnYWdlbnRfYWRkcicpCgpkYXZlcyAxOCBNYXkgOTkgMDY6MjY6MTYKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKCm1zbGlmY2FrIDE4IE1heSA5OSAwOTowMTo0NgogICAgLSAoeHgvTWFrZWZpbGUuaW4pIHJlbW92ZSByZWZlcmVuY2VzIHRvIGFzIHlldCBtaXNzaW5nIGRpc21hbiBmaWxlcy4KCmRhdmVzIDE4IE1heSA5OSAwOToyMzo1MAogICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXBidWxrd2Fsay5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB1c20uYyBhcHBzL3NubXB3YWxrLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyk6CiAgICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQoKZGF2ZXMgMTkgTWF5IDk5IDAyOjMzOjA3CiAgICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKCmRhdmVzIDE5IE1heSA5OSAwNToxMTozNwogICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAyOjU1CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo1MDoxMgogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKZGF2ZXMgMjAgTWF5IDk5IDAzOjQ2OjI0CiAgICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwoKbXNsaWZjYWsgMjEgTWF5IDk5IDA1OjI0OjIzCiAgICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCgpkYXZlcyAyMSBNYXkgOTkgMDU6NTQ6MjIKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgIChhbHNvIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93bikKCmhhcmRha2VyIDIxIE1heSA5OSAxMToxMDo0NAogICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAgLSBtaXNjIGV2YWwgZml4ZXMuCiAgICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KCm1zbGlmY2FrIDIxIE1heSA5OSAxNToyOTo0NgogICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCgptc2xpZmNhayAyNCBNYXkgOTkgMDU6MzY6MTMKICAgIC1jb25maWd1cmUgLSBzYXZlIG9uZSB3aGljaCBsb29rcyBmb3IgbmV0ZGIvc29ja2V0IGhlYWRlcnMKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxOTowMwogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6NTUKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6MDQKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDozMgogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU2OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzo0MDoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgptc2xpZmNhayAyNyBNYXkgOTkgMDU6MTY6MjUKICAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MDMKICAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogaW1wbGVtZW50IHRoZSBkZWZhdWx0IHRyYXAgaGFuZGxlci4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDoxNQogICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MDYKICAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzozMgogICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KCmRhdmVzIDI4IE1heSA5OSAwNzowMjowMQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggcHJvYmxlbSB3aXRoIG51bGwgbWFjcm8KCmRhdmVzIDI4IE1heSA5OSAwODoxNDowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQoKZGF2ZXMgMjggTWF5IDk5IDA4OjU3OjE5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CgpkYXZlcyAyOCBNYXkgOTkgMDk6MTI6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFNlcGFyYXRlIG91dCBjb3B5aW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIG5ldyBvbmUKCm1zbGlmY2FrIDI4IE1heSA5OSAwOToyNDo1NgogICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjE3OjEzCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjQ0OjQyCiAgICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICAgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMvZXRjIGNyZWF0ZWQgZm9yIHZhbHVlcyB3aGljaCBjb25maWd1cmUgdGhlCiAgICAgICAgbGlicmFyeS4KCmRhdmVzICAxIEp1biA5OSAwMjoxNzoyNwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCgpkYXZlcyAgMSBKdW4gOTkgMDI6MzI6MTMKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdlbmVyYWxpc2UgaGFuZGxpbmcgb2YgYWRkcmVzc2VzICh3LnIudCBzZW50by9yZWN2ZnJvbSkKCmRhdmVzICAxIEp1biA5OSAwNzozMDo0MgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCgpoYXJkYWtlciAgMSBKdW4gOTkgMTc6MjE6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gaW1wbGVtZW50ZWQgYSBnZW5lcmljIGFsYXJtIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm0gZnVuY3Rpb25zIHRvCiAgICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6NTE6MTMKICAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKCm1zbGlmY2FrICA3IEp1biA5OSAwNzo0NDowNgogICAgLShpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgaXAuYykgY2xvbmUgZml4ZXMgZnJvbSAzLjYgbGluZSAoRnJlZUJTRDMuMSkKCm1zbGlmY2FrICA3IEp1biA5OSAxMzowNDoyMQogICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCgptc2xpZmNhayAgOCBKdW4gOTkgMDc6NDM6MTAKICAgIC0oaHJfZmlsZXN5cy5jKSBmaXggbWVtb3J5IGxlYWsgd2hlbiBIQVZFX0dFVEZTU1RBVCBpcyBkZWZpbmVkLgoKZGF2ZXMgIDggSnVuIDk5IDA4OjQzOjU5CiAgICAtIChhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgKICAgICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCk6CiAgICAgICAtICByZW1vdmVkIGFsbCB1c2VzIG9mICdzdHJ1Y3QgcGFja2V0X2luZm8nIChzdWJzdW1lZCBpbnRvICdzdHJ1Y3Qgc25tcF9wZHUnKQoKbXNsaWZjYWsgIDggSnVuIDk5IDA5OjMyOjQ4CiAgICAtKHh4X19mcmVlYnNkMi5jKSAtIGZpeCBzaXplX3QgdG8gYnVpbGQgb24gRnJlZUJTRCAyLjIueAoKZGF2ZXMgIDkgSnVuIDk5IDA2OjMyOjAyCiAgICAtIChzbm1wX2FwaS5oKTogcmVvcmRlciBQRFUgYW5kIHNlc3Npb24gZmllbGRzIG1vcmUgY2xlYXJseQoKaGFyZGFrZXIgIDkgSnVuIDk5IDE4OjMxOjQyCiAgICAtICgqKTogbWVyZ2VkIDMuNi4yIGNoYW5nZXMgaW50byBtYWluIGJyYW5jaC4KCmRhdmVzIDE1IEp1biA5OSAwMzo1OToyMwogICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBkdXBsaWNhdGUgY29kZQoKZGF2ZXMgMTUgSnVuIDk5IDA4OjI4OjAwCiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKToKICAgICAgLSBNb3ZlIHByb2Nlc3NpbmcgZnJvbSAnaGFuZGxlX25leHRfcGFzcygpJyB0byAnaGFuZGxlX3NubXBfcGFja2V0KCknCgpoYXJkYWtlciAxNSBKdW4gOTkgMTY6MjU6NTcKICAgIC0gKHNubXBfYXBpLmMpOiBmaXggYWxsb3dlZCB6ZXJvbGVuZ3RoIHBkdS0+c2VjdXJpdHlOYW1lIHByb2JsZW0gZm9yCiAgICAgIHYzIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMuCgpkYXZlcyAxNiBKdW4gOTkgMDU6MTE6NDgKICAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogbW92ZSBQRFUgdmFsaWRhdGlvbiwgZXRjIGZyb20gJ3NlbmQnIHRvICdidWlsZCcgcm91dGluZXMKCmRhdmVzIDE2IEp1biA5OSAwNTo0OTozOAogICAgLSAoc25tcF9hcGkuYyk6IGhhbmRsZSByZXNwb25zZXMgaW4gYSBtb3JlIHByb3RvY29sLWluZGVwZW5kZW50IG1hbm5lcgoKZGF2ZXMgMTYgSnVuIDk5IDA2OjU2OjE0CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBIb29rcyBmb3IgYnVpbGRpbmcvcGFyc2luZyBub24tU05NUCBwYWNrZXRzCgpoYXJkYWtlciAxNiBKdW4gOTkgMTY6MjQ6NTgKICAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYyk6CiAgICAgIC0gZmlyc3QgdXNhZ2Ugb2YgdGhlIGRlZmF1bHRfc3RvcmUoKSByb3V0aW5lczogbW92ZSBhbGwgdGhlIG1pYgogICAgICAgIHBhcnNlciB2YXJpYWJsZXMgdG8gaXQsIGFuZCBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGhlbS4KICAgICAgICAtIHByZW1pYiBhdXRvLXJlZ2lzdHJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlIG5lZWRzIGNsZWFuaW5nIHVwLi4uICBzaWdoLi4uCgpoYXJkYWtlciAxNiBKdW4gOTkgMTY6NTE6MTEKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAgLSAyIG5ldyBzbm1wLmNvbmYgdG9rZW5zOiBkb0RlYnVnZ2luZywgZGVidWdUb2tlbnMuCgpoYXJkYWtlciAxNyBKdW4gOTkgMDc6Mzk6MDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IC0taGVscC4KCm1zbGlmY2FrIDE3IEp1biA5OSAxMzoxODozNQogICAgZml4dXBzIHRvIGJ1aWxkIG1vc3QgYXBwcyB1bmRlciBXaW4zMiAoTVNWQysrIDUuMCBvciBsYXRlcikKCm1zbGlmY2FrIDE4IEp1biA5OSAwNTowMTo1NAogICAgYXBwbGllZCBmaXhlcyBmcm9tIE0uIExhdWtrYW5lbgoKZGF2ZXMgMTggSnVuIDk5IDA2OjU4OjUzCiAgICAtIChzeXNPUlRhYmxlLmMgc3lzT1JUYWJsZS5oKTogbmV3IHJvdXRpbmUgZm9yIHJlbW92aW5nIHN5c09SVGFibGUgZW50cmllcwoKZGF2ZXMgMTggSnVuIDk5IDA3OjU2OjQ2CiAgICAtIChzbm1wLmggc25tcF9hcGkuYyk6IGRpc3Rpbmd1aXNoIGJldHdlZW4gU05NUCBwcm90b2NvbCAmIFBEVSBoYW5kbGluZyBmbGFncwoKZGF2ZXMgMTggSnVuIDk5IDA4OjAwOjM0CiAgICAtIChzbm1wX2NsaWVudC5jKTogRW5hYmxlIGFjY2VzcyB0byAiZW1wdHkiIHJlc3BvbnNlIFBEVXMgKGkuZS4gaGVhZGVyIG9ubHkpLgogICAgCShhbHNvIG1ha2UgJ3NubXBfY2xvbmVfbWVtJyBhY2Nlc3NpYmxlIHRvIG90aGVyIGZpbGVzKQoKZGF2ZXMgMTggSnVuIDk5IDA4OjA0OjIyCiAgICAtIChhc24xLmggc25tcF9hcGkuYyk6IE5ldyBwcml2YXRlIHR5cGVzIGZvciBPSUQgcmFuZ2VzCgpkYXZlcyAxOCBKdW4gOTkgMDg6NDQ6MTEKICAgIC0gKHNubXBfYXBpLmgpOiBOZXcgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlCgpkYXZlcyAxOCBKdW4gOTkgMDg6NDc6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBub24tcmVzcG9uc2UgaGFuZGxpbmcgaW4gJ3NubXBfc2Vzc19yZWFkJwoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ5OjUyCiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBhY2NvbW9kYXRlIHNlcnZlcnMgdGhhdCByZXF1aXJlIGFuIGFjY2Vzc2libGUgY2xpZW50LWVuZCB1bml4IHN0cmVhbSBzb2NrZXQKICAgICAgICAgICAgICAgICAgKGluIHBhcnRpY3VsYXIsIHRoZSBDTVUgQWdlbnRYIG1hc3RlciBhZ2VudCkKCmRhdmVzIDE4IEp1biA5OSAwODo1NTozMgogICAgLSAoc25tcF9hcGkuaCBNYWtlZmlsZS5pbiBhZ2VudHguYyBhZ2VudHguaCBhZ2VudHhfY2xpZW50LmMpOgogICAgICAtIGJhc2ljIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZwoKZGF2ZXMgMTggSnVuIDk5IDA5OjAwOjE2CiAgICAtIChzbm1wX3ZhcnMuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG1lYW5zIG9mIGJ5cGFzc2luZyBWQUNNIGNoZWNrcwoKZGF2ZXMgMTggSnVuIDk5IDA5OjE0OjU4CiAgICAtIChzbm1wZC5jIHNubXBkLmggc25tcF92YXJzLmMgc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaAogICAgICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgIC0gaW5pdGlhbCBBZ2VudFggc3ViLWFnZW50IGltcGxlbWVudGF0aW9uCgptc2xpZmNhayAxOCBKdW4gOTkgMTA6MDI6MDMKICAgIC0oc3lzT1JUYWJsZS5jKSBmaXggcHRyIHRlc3QKCm1zbGlmY2FrIDIyIEp1biA5OSAwNToyMTowMwogICAgIGludm9rZSBzbm1wX3Nlc3NfaW5pdCBiZWZvcmUgYW55IE1JQiBwcm9jZXNzaW5nIChmaXhlcyBtYXN0ZXIgYWdlbnQpLgoKbmJhIDIyIEp1biA5OSAwNToyNToxMwogICAgVE9ETzoJbmVlZCBmb3IgQ291bnRlcjY0IHN1cHBvcnQgaW4gc25tcGRlbHRhCgpkYXZlcyAyOCBKdW4gOTkgMDM6MDg6NDIKICAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiBtYWtlIFNOTVAgcGFja2V0IGhhbmRsaW5nIHJvdXRpbmUgcmUtZW50cmFudC4KCmRhdmVzIDI4IEp1biA5OSAwNDowNzozNgogICAgLSB7TWFrZWZpbGUuaW4gYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wX3ZhcnMuYyBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSBDb25zb2xpZGF0ZSBhbGwgcmVnaXN0cnkgaGFuZGxpbmcgaW50byBvbmUgZmlsZQoKZGF2ZXMgMjggSnVuIDk5IDA5OjUyOjA4CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFycy5oIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIC0gTm9uLXJlY3Vyc2l2ZSBNSUIgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24KCmhhcmRha2VyIDI4IEp1biA5OSAxNDo1OTo0MQogICAgLSAoc25tcGQuYyk6IGluaXRfc25tcF9hbGFybSgpLgoKaGFyZGFrZXIgMjggSnVuIDk5IDE1OjAxOjE0CiAgICAtIChzbm1wdHJhcGQuYyk6IGluaXRfc25tcF9hbGFybSgpOwoKZGF2ZXMgMzAgSnVuIDk5IDAxOjM3OjExCiAgICAtIChzeXNPUlRhYmxlLmMgc3lzT1JUYWJsZS5oKTogSW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlIG9mIHt1bn1yZWdpc3RyYXRpb24KCmRhdmVzIDMwIEp1biA5OSAwMTo0NToyNgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCgpkYXZlcyAzMCBKdW4gOTkgMDE6NDg6MzQKICAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiAnYWdlbnRfc25tcF9zZXNzaW9uJyBpbml0aWFsaXNhdGlvbiByb3V0aW5lCgpkYXZlcyAzMCBKdW4gOTkgMDI6MzI6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBDb3JyZWN0IHRoZSBzZXR1cCBvZiBzdHJlYW0tYmFzZWQgYWNjZXB0ZWQgaW50ZXJuYWwgc2Vzc2lvbnMKCmRhdmVzIDMwIEp1biA5OSAwMzoyMDo0NgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IG9taXQgcmVkdW5kYW50IGRlY2xhcmF0aW9ucwoKZGF2ZXMgMzAgSnVuIDk5IDA1OjA1OjQ0CiAgICAtIChzbm1wX2FwaS5jKTogUHJvdmlkZSB0aGUgY29ycmVjdCBzaXplIG9mIHNvY2tldCBhZGRyZXNzZXMKCmRhdmVzIDMwIEp1biA5OSAwNTowNjo1MgogICAgLSAoY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBzeXMvdW4uaAoKZGF2ZXMgMzAgSnVuIDk5IDA1OjQ4OjQwCiAgICAtIChzbm1wX2FwaS5jKTogTWlzc2VkIG9uZSAnc2VuZHRvJyBjYWxsCgpoYXJkYWtlciAzMCBKdW4gOTkgMTk6Mzc6MzYKICAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gY29udmVydCBtb3JlIHN0dWZmIHRvIHRoZSBkZWZhdWx0X3N0b3JlIHNwYWNlLgoKZGF2ZXMgIDIgSnVsIDk5IDAyOjM5OjQxCiAgICAtIChzbm1wX2FwaS5jKTogRml4IHRoYXQgbGFzdCAnc2VuZHRvJyBjYXNlICpjb3JyZWN0bHkqIHRoaXMgdGltZQoKZGF2ZXMgIDIgSnVsIDk5IDA1OjEzOjQyCiAgICAtIChzbm1wbGliL2FzbjEuaCBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC9zbm1wX2FnZW50LmMpOgogICAgICAtIGltcGxlbWVudCBhbiBpbnRlcmZhY2UgZm9yIGRlbGVnYXRpbmcgcmVxdWVzdHMgdG8gc3ViYWdlbnRzCgpkYXZlcyAgMiBKdWwgOTkgMDU6MTU6NTYKICAgIC0gKHZhcl9zdHJ1Y3QuaCBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSBtYXAgYmV0d2VlbiBNSUIgcmVnaXN0cmF0aW9ucyBhbmQgdGhlIHN1cHBvcnRpbmcgKHN1YmFnZW50KSBzZXNzaW9uCgpkYXZlcyAgMiBKdWwgOTkgMDU6MTY6NDEKICAgIC0gKHNubXBfYXBpLmgpOiBzdXBwb3J0IGxpc3RzIG9mIHNlc3Npb25zIChhbmQgc3Vic2Vzc2lvbnMpCgpoYXJkYWtlciAgMiBKdWwgOTkgMDg6Mjc6MzAKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHJlZ2lzdGVyIGRlYnVnZ2luZyB0b2tlbnMgd2l0aCAtRAoKZGF2ZXMgIDYgSnVsIDk5IDAyOjIwOjU3CiAgICAtIChzbm1wX2FnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgU05NUHYxIG5vU3VjaE5hbWUKCmRhdmVzICA3IEp1bCA5OSAwNjo1NDo1MwogICAgLSAoYXNuMS5jIGFzbjEuaCBzbm1wLmMgc25tcC5oIHNubXBfYXBpLmMgc25tcF9hcGkuaAogICAgICAgc25tcF9hdXRoLmMgc25tcF9pbXBsLmggYWdlbnR4LmMpOgogICAgICAgLSBGaXJzdCBhdHRlbXB0IGF0IGZvcm1hdHRlZCBkaXNwbGF5IG9mIHBhY2tldCBkYXRhCgpkYXZlcyAgOCBKdWwgOTkgMDI6MTY6MTUKICAgIC0gKHNubXBfYXBpLmMpOiBSZXRhaW4gY29tbXVuaXR5IHN0cmluZyBpbiByZXNwb25zZXMKCmRhdmVzICA4IEp1bCA5OSAwNjoyNTowNwogICAgLSAobWliSUkvc3lzdGVtX21pYi5jIG1pYklJL3NubXBfbWliLmMpOgogICAgICAtIFVwZGF0ZSAnd3JpdGUnIHJvdXRpbmVzIGZvciBWNCBhcmNoaXRlY3R1cmUsCiAgICAgICAgYW5kIHVzaW5nIHRoZSBmdWxsIFNFVCBtdWx0aS1wYXNzIGFsZ29yaXRobQoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjI5OjM1CiAgICAtIChjb25maWcuaCk6IGNvbW1lbnQgY2hhbmdlIGZvciBpbnRlcm5hbCBtZDUuCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6MzA6NDcKICAgIC0gKGFzbjEuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjM2OjUyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCB2aWV3X3BhcnNlLmMsIHZhY21fdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICAgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLCBtYWluLmMsIE1ha2VmaWxlLmluLCBhY2wuYywKICAgICAgYWNsLmgsIGFjbF9wYXJzZS5jLCBjb250ZXh0LmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgICBsaWJzbm1wLmgsIHBhcnR5LmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHZpZXcuYywgdmlldy5oKToKICAgICAgLSB2MnBhcnR5IHN1cHBvcnQgaXMgZmluYWxseSBnb25lIQoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjQ5OjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyICA4IEp1bCA5OSAxNToxNjozNQogICAgLSAoc25tcGRlbHRhLmMsIGludDY0LmMsIGludDY0LmgpOiBtaW5pbWFsIGM2NCBzdXBwb3J0IGZvciBzbm1wZGVsdGEuIFVudGVzdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk5IDE2OjAyOjU4CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCgpkYXZlcyAgOSBKdWwgOTkgMDE6NDk6NDkKICAgIC0gKHNubXBkLmMpOiBDbGVhbiB1cCBnaWQvdWlkIGNoYW5nZSBsb2dnaW5nCgpkYXZlcyAgOSBKdWwgOTkgMDg6Mjc6MzkKICAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXQogICAgICAgYWdlbnQvc25tcGQuW2NoXSBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5Cgptc2xpZmNhayAgOSBKdWwgOTkgMTI6MTI6NTAKICAgIC0oc25tcF9jbGllbnQuKikgcmVtb3ZlIHNubXBfc3luY2hfc2V0dXAsIHNubXBfc3luY2hfcmVzZXQKCm1zbGlmY2FrICA5IEp1bCA5OSAxNDoyMDoyMwogICAgLSh3aW4zMixzbm1wbGliLGFwcHMsYWdlbnQpIGFkZCBzbm1wX3NvY2tldF9sZW5ndGggdG8gaGlkZSBzb2NrYWRkcl91bjsgV2luMzIgdG91Y2h1cHMKCm1zbGlmY2FrIDExIEp1bCA5OSAxODozNjoyNAogICAgUmVkdWNlIHVzZSBvZiBzbm1wX2Vycm5vIC0gZml4IG1lbW9yeSBsZWFrLCB1bnVzZWQgdmFycywgYW5kIHVuc2V0IHZhci4KCmRhdmVzIDEyIEp1bCA5OSAwNzoxNDozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiByZW1vdmUgZGVwZW5kZW5jeSBvbiBzbm1wbGliL2FnZW50eC5oCgpkYXZlcyAxMiBKdWwgOTkgMDg6MzI6MjcKICAgIC0gKG1pYmdyb3VwL2hvc3QvKik6IER5bmFtaWNhbGx5IHJlZ2lzdGVyIGFsbCBIb3N0IFJlc291cmNlIG1vZHVsZXMKCm1zbGlmY2FrIDE0IEp1bCA5OSAxMzoxNDozMAogICAgLShzbm1wX2FwaS5jKSAtIHNubXBfYWRkX3ZhciByZXR1cm5zIFNOTVBFUlI7IE1BWSBzZXQgc25tcF9lcnJubwoKbXNsaWZjYWsgMTQgSnVsIDk5IDEzOjQ2OjUzCiAgICAtKHNubXBsaWIvbWliLmMpIC0gY29uZGl0aW9uYWxseSBhbGxvdyBmb3Igbm90IHNldHRpbmcgc25tcF9lcnJubwoKaGFyZGFrZXIgMTUgSnVsIDk5IDA4OjQ2OjAwCiAgICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gYmVnaW5uaW5nIG9mIGEgLURkdW1wIHZlcnNpb24gb2YgcGFja2V0IGR1bXBpbmcuCiAgICAgIC0gbmVlZHMgYSBsb3QgbW9yZSB3b3JrIGFuZCBjbGVhbiB1cC4KICAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KCmhhcmRha2VyIDIwIEp1bCA5OSAxNDowMjoyNgogICAgLSAoYXV0b19ubGlzdC5jLCBoaXN0b3J5LmMsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCwgdXRpbF9mdW5jcy5jLCBpcGZ3Y2hhaW5zLmMsCiAgICAgIGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhY21fdmFycy5jLCB2YXJfcm91dGUuYywgZGxtb2QuYywgc211eC5jLCBkaXNrLmMsIGV4dGVuc2libGUuYywKICAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgICB2ZXJzaW9uaW5mby5jLCBhbGFybS5jLCBldmVudC5jLCBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jLAogICAgICBzbm1wX2RlYnVnLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IFBhdGNoIGZyb20gUmFnbmFyCiAgICAgIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCgpoYXJkYWtlciAyMCBKdWwgOTkgMTc6MDY6NTMKICAgIC0gKGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLAogICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgICBhbGFybS5jKToKICAgICAgLSBjb252ZXJ0IHNubXBfbG9nKExPR19ERUJVRykgdG8gREVCVUdNU0dUTCgpLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE4OjExOjUwCiAgICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE5OjMzOjI2CiAgICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKCmhhcmRha2VyIDIxIEp1bCA5OSAxNjowNjo1MgogICAgLSAodGttaWIsIG1pYjJjKTogdWRwYXRlIHRvIHVzZSBpbmRleGVzIChyZXF1aXJlcyBhIHBlcmwgcGF0Y2guCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6MzY6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbG9nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMDo0NDoxNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBrZXJuZWxfc3Vub3M1LmMsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLAogICAgICBpbnRlcmZhY2VzLmgsIHN5c3RlbV9taWIuYywgdmFyX3JvdXRlLmMsIHNubXBFbmdpbmUuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgICBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQsIFRDUC1NSUIudHh0LAogICAgICBVRFAtTUlCLnR4dCwgcGFyc2UuYywgc25tcF9hbGFybS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSBhcHBzIHR1cm4gb24gc3RkZXJyIGxvZ2dpbmcgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxODoyMwogICAgLSAoc25tcGQuYyk6IG1vcmUgc25tcF9sb2cgY29udmVyc2lvbnMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6NDQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE5OjIwCiAgICAtIChhc24xLmMpOiBudWxsIHRlcm1pbmF0ZSBwYXJzZWQgc3RyaW5ncywganVzdCBpbiBjYXNlLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjIwOjAyCiAgICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDozMwogICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE0OjE5OjM5CiAgICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoyNjo1NwogICAgLSAoc25tcGQuYyk6IGluaXQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE1OjIyOjAyCiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgIHNubXBfY2xpZW50LmMpOgogICAgICAtIG1ha2UgYW5kIHVzZSBzbm1wX3Nlc3NfcGVycm9yKHN0ciwgc2VzcykgZm9yIGVycm9yIHByaW50aW5nLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjExOjMwCiAgICAtKGFzbjEuYykgLSBmaXggY29tcGFyZSBlcnJvciBhdCBsaW5lIDM4NjsgcmVtb3ZlIHVudXNlZCB2YXJzIGVsc2V3aGVyZQoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjE4OjEzCiAgICAtKGxpYnNubXAuZGVmKSAtIGFkZCBkZWNscyBmb3IgbmV3IGVycm9yIGxvZ2dpbmcgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjQ1OjU5CiAgICAtKHNubXBfY2xpZW50LmMpIC0gdXNlIFNFVF9TTk1QX0VSUk9SIGZvciByZXN0b3JlZCBzbm1wX2Vycm5vIHNldHMuCgptc2xpZmNhayAyNCBKdWwgOTkgMDg6MTE6MDUKICAgIC0obWQ1LmMpIC0gd3JhcCB1bnVzZWQgTUQ1cHJpbnQgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERSBpZmRlZgoKaGFyZGFrZXIgMjYgSnVsIDk5IDA3OjM3OjA5CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCgpoYXJkYWtlciAyNiBKdWwgOTkgMDk6MDQ6MDkKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjE0OjI0CiAgICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAoKaGFyZGFrZXIgMjYgSnVsIDk5IDExOjUxOjIyCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKCmhhcmRha2VyIDI2IEp1bCA5OSAxNDozMjoxNwogICAgLSAobWliLmMpOiBCSVRfc3RyaW5nOiAtPiBCSVRTOgoKbXNsaWZjYWsgMjYgSnVsIDk5IDE1OjEyOjQ1CiAgICAtKGFzbjEuYyxhc24xLmgsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMsc25tcHVzbS5jKSBtb3JlIGRldGFpbGVkIHBhcnNlIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE1OjU5OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNjowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6NDcKICAgIC0gKGhwdXguaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBkZWZpbmUgaHB1eAoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA3OjMxCiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLCBzY2FwaS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHNpemVfdCBjaGFuZ2VzLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDA0OjI0OjA4CiAgICBhZGQgaW5jbHVkZSBuZXQvaWZfZGwuaCBzdWdnZXN0ZWQgYnkgVG9tIEl2YXIgSGVsYmVra21vCgpkYXZlcyAyNyBKdWwgOTkgMDY6Mzg6MDkKICAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwoKbXNsaWZjYWsgMjcgSnVsIDk5IDA3OjUyOjM3CiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYyxhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICAgc25tcGxpYi9hc24xLmMsc25tcGxpYi9zY2FwaS5jLHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgIHNubXBsaWIvc25tcF9jbGllbnQuaCkgIEVSUk9SX01TRywgcHJpbnRmIC0tPiBERUJVR01TR1RMCgptc2xpZmNhayAyNyBKdWwgOTkgMDk6MzM6NDMKICAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvc25tcGQuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyxhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsYXBwcy9zbm1wZGVsdGEuYyxhcHBzL3NubXBnZXQuYywKICAgIGFwcHMvc25tcGdldG5leHQuYyxhcHBzL3NubXBzZXQuYyxhcHBzL3NubXBzdGF0dXMuYywKICAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgIGFwcHMvc25tcHRyYXBkLmMsYXBwcy9zbm1wdXNtLmMsYXBwcy9zbm1wd2Fsay5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgIHNubXBsaWIvc25tcHYzLmMpIGZpeCBzbm1wX3Nlc3NfcGVycm9yIHVzZTsgdXNlIGxvZ19wZXJyb3IgZm9yIHBlcnJvcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjAwOjM3CiAgICAtKGVuY29kZV9rZXljaGFuZ2UuZHNwLHNubXB1c20uZHNwKSAtYnVpbGQgdXNpbmcgY29tbW9uIFdpbjMyIGNvbXBpbGVyCgptc2xpZmNhayAyNyBKdWwgOTkgMTI6MjQ6MDMKICAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgIHNubXBsaWI6cmVhZF9jb25maWcuYyxzbm1wdjMuYzsgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpIC0KICAgICBhZGp1c3QgaGVhZGVycywgYnVpbGQgV2luMzIgc25tcHVzbStlbmNvZGVfa2V5Y2hhbmdlCgptc2xpZmNhayAyNyBKdWwgOTkgMTY6MDY6MzUKICAgIC0oaW50ZXJmYWNlcy5jKSAtIGZpeCBlcnJvciBzZXR0aW5nIGlmX2lieXRlcyBmb3IgTGludXggMi4wCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MTQ6MjgKICAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAgLSBjbGVhbmVkIHVwIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgICAgLSBhZGRlZCBtb3JlIGR1bXAgcGFyc2UgaGVhZGVycyBmb3IgdjMgZHVtcHMuCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MjA6NDYKICAgIC0gKGFzbjEuYyk6IGZpeCBoZWFkZXIgZHVtcC4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxNzoxNTowMQogICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowMjozMQogICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowNjowOAogICAgLShtaWIuYykgZml4IHdhbGtpbmcgT0lEIGxlbmd0aCBwb2ludGVyLCBudW1lcmljIHN1Yi1pZCBub3QgZm91bmQKICAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6MzQ6NTkKICAgIC0oc25tcGQuYykgaW52b2tlIGxvZyBmdW5jdGlvbnMgZnJvbSBjaGlsZCAoY29ycmVjdCBwcm9jZXNzIElEIGluIHN5c2xvZykKCm1zbGlmY2FrIDI3IEp1bCA5OSAyMzo1ODo1MQogICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKCm1zbGlmY2FrIDI4IEp1bCA5OSAwMjo0MjozMgogICAgaHJfc3dydW4gLSByZXNldCBwb2ludGVyIGluIG1vZHVsZSBpbml0IChoZWxwIEhQL1VYIDkpCiAgICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKCmhhcmRha2VyIDI4IEp1bCA5OSAwNjo0NToxOQogICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwoKZGF2ZXMgMjkgSnVsIDk5IDAzOjI5OjQwCiAgICAtIChtaWJJSS92YWNtX3ZhcnMuYyk6IENhdGNoIHVzZSBvZiB1bmNvbmZpZ3VyZWQgRVhBTVBMRS5jb25mIGZpbGVzCgptc2xpZmNhayAyOSBKdWwgOTkgMDg6MzQ6NTkKICAgIG1lbW9yeV9zb2xhcmlzMiA6IGhhbmRsZSBtYWxsb2MgZXJyb3JzCiAgICBrZXJuZWxfc3Vub3M1IDogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzoyODozNgogICAgLShhcHBzL01ha2VmaWxlLmluKSAtIGNvbW1lbnQgdW5uZWVkZWQgVFJBUFNQRUNJQUwgbGluZQoKbXNsaWZjYWsgMjkgSnVsIDk5IDEzOjU5OjAyCiAgICAtKGFnZW50L3NubXBkLmMpIC0gbG9nIHN0YW5kYXJkIGVycm9yIHVudGlsIGluaXQgaXMgY29tcGxldGVkLgoKbXNsaWZjYWsgMjkgSnVsIDk5IDE1OjA0OjQ5CiAgICBhdXRvX25saXN0LCBrZXJuZWwgOiBwbGFjZSBsb2dfcGVycm9yIHRvIGNhdGNoIGVycm5vIHZhbHVlIGluIHJlcG9ydC4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowMzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogcmVtb3ZlIHRyYXBfc3BlY2lhbCBzdHVmZi4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowNjo1NgogICAgLSAobWliZ3JvdXAvdjJwYXJ0eSk6IHJlbW92ZWQgZmlsZXMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTE6MzEKICAgIFJlbW92ZWQgZHVwbGljYXRlIEhBVkVfR0VUPz8/QllOQU1FOyBSZW1vdmVkIHVudXNlZCBfQ1JUSU1QCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTc6MjMKICAgIFJlbW92ZWQgaGludCBvZiB2MnBhcnR5IGZyb20gY29tbWVudC4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDowMDoyOAogICAgLShhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLGFnZW50L2hpc3RvcnkuYyxhZ2VudC9zbm1wX3ZhcnMuYywKICAgIGFnZW50L3NubXBkLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLHNubXBsaWIvc25tcF9hbGFybS5jLAogICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgIHNubXBsaWIvc3lzdGVtLmMpIC0gcHNvcyBkaWZmcyBvZmZlcmVkIGJ5IEFudGhvbnkgU3ltb25zCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzc6MjAKICAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzk6MzgKICAgIGRlY2wgbG9nX3BlcnJvcgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjQyOjQ4CiAgICByZW5hbWUgc2QgdG8gaWZzZCAtIGF2b2lkIGdsb2JhbCBzaGFkb3cgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA1OjQyOjM0CiAgICBocl9zdG9yYWdlLmMgLSBhdXRvX25saXN0IGZvciBIUl9TVE9SRV9TSVpFCiAgICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICAgc25tcF9sb2dnaW5nLmMgLSBjaGFuZ2UgZmlsdGVyIGZvciBvcGVubG9nIHBlciBBLiBTeW1vbnMgcGF0Y2gKCmRhdmVzIDMwIEp1bCA5OSAwNjowMTowOAogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMKICAgICAgIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oKToKICAgICAgIC0gIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2YgdjJwIHN1cHBvcnQKCmRhdmVzIDMwIEp1bCA5OSAwNjoyMzowNgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFyc19tMm0uaCk6CiAgICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0Cgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6MzAKICAgIHN5c3RlbSAtIHVzZSBzaXplb2YKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjozMDo1OQogICAgd2luMzIvY29uZmlnLmggLSBkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRQoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjQ2OjIyCiAgICB1c2UgdHJhZGl0aW9uYWwgSyZSIGNvbW1lbnRpbmc7IG5vdCBhbGwgIkMiIGNvbXBpbGVycyBhY2NlcHQgIi8vIiBjb21tZW50cy4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo1ODowOAogICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAoKZGF2ZXMgMzAgSnVsIDk5IDA3OjAxOjQ2CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CgpkYXZlcyAzMCBKdWwgOTkgMDc6MzE6NTYKICAgIC0gKGFjY29uZmlnLmgpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODowMToxOAogICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODozMjoyOAogICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjA1CiAgICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjMwCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICAgc2V0IGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTg6NTUKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE5OjIxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDoyOTozNQogICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDozNzo0NgogICAgcGFyc2UgLSBzaGFtZSBvbiBtZSBmb3Igbm90IGNvbXBpbGUgdGVzdGluZyBmaXJzdCEKCm1zbGlmY2FrICAyIEF1ZyA5OSAyMjoyOTozNwogICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNDo0Njo0MQogICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNjo1OTo1MAogICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAwOjE2CiAgICBzbm1wX2RlYnVnLmMgLSByZW1vdmUgdHJhY2UgbWVzc2FnZXMgZnJvbSBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgMyBBdWcgOTkgMDc6MDM6MTQKICAgIHNubXBfZGVidWcuaCAtIG1vdmUgREVCVUdUUkFDRSBmcm9tIGRlYnVnbXNnX2hleHRsaSB0byBERUJVR0RVTVBTRVRVUAoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjU4OjQ5CiAgICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKCm1zbGlmY2FrICAzIEF1ZyA5OSAxMjo1MzozMgogICAgc25tcF9kZWJ1Zy5oIC0gZml4ICJ3YXJuaW5nOiBBTlNJIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIi4KCm1zbGlmY2FrICAzIEF1ZyA5OSAxNDowNjozMwogICAgc25tcF9kZWJ1Zy5jIC0gc2lnbmVkIGNvbXBhcmlzb24gZm9yIGxlbiBpbiBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgNCBBdWcgOTkgMDM6NDg6MDIKICAgIC0oc211eC5jKSAtIHBhdGNoIHN1cHBsaWVkIGJ5IE5pY2sgQW1hdG8gdG8gZml4IEFTTl9JUEFERFJFU1MgcGFyc2UuCgptc2xpZmNhayAgNCBBdWcgOTkgMDU6MDM6MTEKICAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAwOToxNzoxOAogICAgLShjb25maWd1cmUqKSAtIEtlbiBIb3Juc3RlaW46IGZpeCB0ZXN0IHh4Z2V0aG9zdGJ5bmFtZSwgeHhnZXRzZXJ2YnluYW1lLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDEyOjMzOjU2CiAgICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCgptc2xpZmNhayAgNSBBdWcgOTkgMDM6MjU6NTUKICAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCgptc2xpZmNhayAgNSBBdWcgOTkgMTE6MTE6NTMKICAgIHNubXBfYXBpLjMgLSBkZXNjcmliZSBzbm1wX2Vycm9yKCksIHJlcGxhY2VzIHNubXBfZXJybm8gYW5kIHNubXBfZ2V0X2Vycm5vKCkKCmRhdmVzICA2IEF1ZyA5OSAwNTo1OTo0NgogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBjb25maWd1cmUtdGltZSBmbGFnIHRvIGNvbnRyb2wgcHJvdmlzaW9uIG9mICJkdW1teSIgdmFsdWVzCgpkYXZlcyAgNiBBdWcgOTkgMDY6MDI6MTUKICAgIC0gKG1pYklJLyouYyBob3N0LyouYyk6IERvbid0IHByb3ZpZGUgImR1bW15IiB2YWx1ZXMgKHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQpCgpuYmEgIDkgQXVnIDk5IDAwOjI0OjM3CiAgICBwYXJzZS5jOglwYXJzZSBhZ2VudCBjYXBhYmlsaXRpZXMKCmRhdmVzICA5IEF1ZyA5OSAwMTowMjoxNQogICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjQ4OjQ3CiAgICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUwOjM2CiAgICAgc25tcGRlbHRhLCB0cmFuc2xhdGUsIHRyYXBkKSAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2U7IHJlbW92ZSBkaXNhYmxlcyBmb3IgcHJpbnRfb2lkX3JlcG9ydCBpbiB0cmFuc2xhdGUuCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTI6NDcKICAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTQ6MDEKICAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHByaW50X29pZF9yZXBvcnQgZGlzYWJsZSBvcHRpb25zCgptc2xpZmNhayAgOSBBdWcgOTkgMDk6NDU6MTUKICAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQoKbmJhICA5IEF1ZyA5OSAxMDo0MzoyOAogICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCgptc2xpZmNhayAgOSBBdWcgOTkgMTE6NDA6MjUKICAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgIC0oc25tcF9hcGkuYykgZml4IGxvc2luZyBjb21tdW5pdHkgc3RyaW5nIHByb2JsZW0KCmhhcmRha2VyICA5IEF1ZyA5OSAxMzoxMjozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIC9kZXYvcmFuZG9tIHRlc3QuCgptc2xpZmNhayAgOSBBdWcgOTkgMTU6MDc6MjQKICAgIHNubXB1c20uYyAtIGFsd2F5cyBjbGVhciBmaWVsZF9sZW4gaWYgcmVmIGlzIHZhbGlkIHB0cjsKICAgIHNubXBfYXBpLmMgLSBkb24ndCBvdmVyd3JpdGUgY29tbXVuaXR5IHBvaW50ZXIgd2l0aCBzZWN1cml0eUF1dGhQcm90byBwb2ludGVyCgpuYmEgMTAgQXVnIDk5IDA0OjQ1OjE3CiAgICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAgCXN1cHBvcnQgZm9yIE5ldEJTRC9zcGFyYyBhbmQgTmV0QlNEIDEuNAoKbmJhIDEwIEF1ZyA5OSAwNDo0NjozNQogICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwoKbmJhIDEwIEF1ZyA5OSAwNDo0NzoyMgogICAgYWdlbnQva2VybmVsLmM6CWFib3J0IG9uIGt2bV9vcGVuIGZhaWx1cmVzCgpuYmEgMTAgQXVnIDk5IDA0OjQ4OjQxCiAgICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCgpuYmEgMTAgQXVnIDk5IDA0OjUwOjUyCiAgICBpbnRlcmZhY2VzLmMgdmFyX3JvdXRlLmMgc25tcF9sb2dnaW5nLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKbXNsaWZjYWsgMTAgQXVnIDk5IDA5OjE5OjEwCiAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSLFdBUk5JTkcpCgptc2xpZmNhayAxMCBBdWcgOTkgMTA6MDQ6NDAKICAgIEZpeCBmb3IgYnVpbGQgKG5vIHBhZ2VzaXplIHZhciBkZWZpbmVkIGZvciBsaW51eCkuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTE6MDU6MzgKICAgIC0gKHNubXBkLmMpOiBsb2cgdmVyc2lvbiBudW1iZXIgYWZ0ZXIgc3RkZXJyIGlzIG9wdGlvbmFsbHkgY2xvc2VkLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE0OjI2OjMzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHByb3RlY3QgYWdhaW5zdCBldmlsIG1pYiBtb2R1bGVzIGZyb20gbW9kaWZ5aW5nCiAgICAgIG1lbW9yeSB0aGV5IHNob3VsZG4ndCBiZSBtb2RpZnlpbmcgeWV0LgogICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNTo1NDozMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmb3JjZSB2MyBlbmdpbmVJRCBzZXR0aW5nIHRvIHNvbWV0aGluZyBib2d1cyB0bwogICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTc6MjM6NTkKICAgIC0gKHNubXBkLmMpOiBwcmludCAtSCB1c2FnZSB0byBzdGRlcnIuCgpoYXJkYWtlciAxMSBBdWcgOTkgMTM6MDQ6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBNYWtlIHBlcnNpc3RlbnQgY2FjaGUgY29uZm9ybSB0byBhIG1vcmUgc2VjdXJlIHVtYXNrLgoKbmJhIDExIEF1ZyA5OSAyMTo1MjoyNgogICAgaHJfc3RvcmFnZS5jOglyZW1vdmUgdG8gZm9yZ290dGVuIGRlYnVnIGxpbmVzLgoKbmJhIDExIEF1ZyA5OSAyMTo1MzozMQogICAgc25tcG5ldHN0YXQvaWYuYzoJaGFuZGxlIG5vbi1jb250aWd1b3VzIGlmVGFibGUuIEFsc28gbWFrZSB0aGUKICAgIAljb3VudGVycyB1bnNpZ25lZC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjoxNjowMQogICAgLSAoc25tcC5jb25mLjUuZGVmKTogdXBkYXRlZCB3aXRoIHRoZSBuZXdlciB0b2tlbiBsaXN0LgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQxOjIyCiAgICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQ2OjM0CiAgICAtIChORVdTLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKZGF2ZXMgMTMgQXVnIDk5IDAyOjQ3OjAwCiAgICAtIChleGFtcGxlcy91Y2REZW1vUHVibGljLltjaF0KICAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgICB0YXJnZXQvc25tcFRhcmdldHtBZGRyLFBhcmFtc31FbnRyeS5bY2hdCiAgICAgICBzbXV4L3NubXBfKi5bY2hdKToKICAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjExOjM1CiAgICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMjoxOAogICAgLSAoTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTY6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDk6MzM6NDAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgoKbXNsaWZjYWsgMTMgQXVnIDk5IDExOjE0OjM5CiAgICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICAgaG9zdC9ocl9zd2luc3QuYyxob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsbWliSUkvYXQuYywKICAgIG1pYklJL2ludGVyZmFjZXMuYyxtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsbWliSUkvdGNwLmMsCiAgICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCgpoYXJkYWtlciAxMyBBdWcgOTkgMTE6NTU6MzEKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgZG8gY2FjaGluZyBmb3IgTk9fRFVNTVlfVkFMVUVTLgoKbXNsaWZjYWsgMTMgQXVnIDk5IDEyOjE4OjE3CiAgICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxMjo0OTozNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwcm9wZXJseSBkbyB3aGF0IC0td2l0aG91dC1kdW1teS12YWx1ZXMKICAgICAgc2hvdWxkIGRvLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE1OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBjb25maWdfbG9hZF9taWIgcGFyc2luZy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNTozNTo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCByZW1vdmUgbWliX21vZHVsZV9sb2Fkcy5oLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE2OjA1OjQyCiAgICAtIChyZW1vdmUtZmlsZXMpOiByZW1vdmUgdGhlIElTU1VFUyBmaWxlIGZvciByZWxlYXNlcy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNjo1MQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNiApCgpuYmEgMTYgQXVnIDk5IDE0OjU4OjQwCiAgICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgIAlmcm9tIHNubXBkIChzdWNoIGFzIExpbnV4IHRoYXQgZG9lcyBub3QgcmV0dXJuIGlmSW5OVUNhc3RQa3RzCiAgICAJd2l0aCB0aGUgbmV3IERVTU1ZIHNldHVwKQoKbmJhIDE2IEF1ZyA5OSAxNDo1OToyOQogICAgc25tcG5ldHN0YXQvbWFpbi5jOiBlbmFibGVfc3RkZXJybG9nKCkgc28gdGhhdCB3ZSBnZXQgYW4gZXJyb3IgbWVzc2FnZQogICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KCm5iYSAxOCBBdWcgOTkgMDI6NDA6NDgKICAgIGFnZW50L3NubXBkLmM6CW1vdmUgdGhlIHRlcm1pbmF0aW9uIHByb2Nlc3NpbmcgZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKICAgIAl0byBhZnRlciB0aGUgbWFpbiBsb29wIGhhcyB0ZXJtaW5hdGVkLgoKbmJhIDE4IEF1ZyA5OSAwMjo1MTo1NwogICAgLSBzbm1wZC5jLCBhZ2VudF9yZWFkX2NvbmZpZy4/LCB2ZXJzaW9uaW5mby5jOiBtb3ZlIHRoZSByZWNvbmZpZ3VyYXRpb24KICAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KCm5iYSAxOCBBdWcgOTkgMDk6MjY6MzUKICAgIC0gaW50ZXJmYWNlcy4/OiB1cGRhdGVzIGZvciBMaW51eCB0byBoYW5kbGUgbGFyZ2UgY291bnRlcnMgYW5kIHZpcnR1YWwKICAgIAlpbnRlcmZhY2VzLgoKbmJhIDE4IEF1ZyA5OSAwOTozMTowNgogICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAgCWRlZmF1bHQgZG9fc3RkZXJyX2xvZ2dpbmcgdG8gMS4KCm5iYSAxOSBBdWcgOTkgMDI6MzM6NTYKICAgIC0gaW50ZXJmYWNlcy5jOiByZW1vdmUgc29tZSBsZWZ0IG92ZXIgZGVidWcgb3V0cHV0CgpuYmEgMTkgQXVnIDk5IDAyOjM1OjEwCiAgICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgICAJdGltZXN0YW1wIGZpbGUgYW5kIHN0ZGVyciBsb2dnaW5nLgoKbmJhIDE5IEF1ZyA5OSAxMDozODowMgogICAgLSBzbm1wX2FwaS5jOgljb3JyZWNseSBjYWxsIHByZS1wYXJzZSBob29rLCBhbHNvIHdoZW4gbm90IGRlYnVnZ2luZwogICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKCm5iYSAxOSBBdWcgOTkgMTA6Mzg6NDgKICAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgoKbmJhIDE5IEF1ZyA5OSAxMDo0MDoyMgogICAgLSBzbm1wZC5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyA6IGZyb20gc25tcF9sb2dfcGVycm9yLgogICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKCm5iYSAxOSBBdWcgOTkgMTQ6MDk6MjUKICAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgICAJdGhlIHBkdSBzdHJ1Y3R1cmUgKHVzZWQgZm9yIHYxIHRyYXBzKS4KCmhhcmRha2VyIDE5IEF1ZyA5OSAxNjowOTo1NAogICAgLSAoc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMpOiBQYXRjaCBmcm9tIGRsZW5nZWxAaG9tZS5jb206CiAgICAgIC0gY2hlY2sgYXJndW1lbnQgY291bnQgZm9yIG1pbmltdW0gbnVtYmVyLgoKbmJhIDIwIEF1ZyA5OSAwMzo0MzozNwogICAgLSBhZ2VudHgvKjogdmFyaW91cyBwcm90b3R5cGUgZml4ZXMsIHRvIGtlZXAgbnVtYmVyIG9mIHdhcm5pbmdzIGRvd24KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo0Mzo1NgogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1ha2UgbG9nZ2luZyBvZiB0aW1lc3RhbXBzIG9wdGlvbmFsIGJ5IGEgc25tcC5jb25mIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo1Njo1NwogICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAgLSB0dXJuIG9mZiB0aW1lIHN0YW1wIGxvZ2dpbmcgYnkgZGVmYXVsdC4gIEl0IG11c3QgYmUgZXhwbGljaXRseQogICAgICAgIHJlcXVlc3RlZCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdG8gdHVybiBpdCBvbi4KICAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgIGlzIG5vdCBsaW5lIGJ1ZmZlcmVkIGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBsb2dnaW5nIHJvdXRpbmVzLgogICAgICAgIFRoZSBvdGhlciBzb2x1dGlvbiBpcyB0byBoYXZlIHRoZSBsb2dnaW5nIHJvdXRpbmVzIGRldGVjdCB3aGVuIHRvCiAgICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE2OjM5OjIxCiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgsIGFzbjEuYyk6IDY0Yml0IGNsZWFudXAuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MDg6MTcKICAgIC0gKE5FV1MpOiBsYXN0IG1pbnV0ZSBjaGFuZ2VzCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MTA6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTcgKQoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjMzOjAwCiAgICAtIChpcGZjaGFpbnMpOiByZW1vdmVkIGZyb20gZGlzdHJpYnV0aW9uLiAgTmV3ZXIgb25lIGluIGZ0cCdzIGNvbnRyaWIgZGlyLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU0OjU3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gLS13aXRob3V0LWR1bW15LXZhbHVlcyBpcyBkZWZhdWx0IGFnYWluLgogICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgICAtIGZpeCBvZiBwZXJpc3RlbnQgZGlyZWN0b3J5IGNyZWF0aW9uLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU2OjI3CiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NzoyNwogICAgLSAoc25tcF9hcGkuaCk6IHZlcnNpb24gLT4gdV9sb25nLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA2OjE0OjM5CiAgICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKCmhhcmRha2VyIDIzIEF1ZyA5OSAwNzowMjo0MwogICAgLSAoTkVXUyk6IGFuc2kgbWVudGlvbmVkLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA5OjAwOjU5CiAgICBXaW4zMiBidWlsZCBmaXhlcwoKbmJhIDIzIEF1ZyA5OSAxMzo1NDozMgogICAgLSBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wX3ZhcnMuYzogbW92ZSBzb21lIC12IGxvZ2dpbmcgdG8gYSBtb3JlIHJhdGlvbmFsCiAgICAJcGxhY2UuCgptc2xpZmNhayAyMyBBdWcgOTkgMTQ6MDI6NTEKICAgIERlc2NyaWJlIFVTRV9BU05fU0hPUlRfTEVOIGluIEZBUSwgYW5kIGltcGxlbWVudCBpbiBfc25tcF9idWlsZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAxNTozMjoyMQogICAgSEFDSyEgZml4dXAgc2hvcnQgbGVuZ3RoIChmaXJzdCBwdXQgY29ycmVjdCBjb21tdW5pdHkgc3RyaW5nIGluIHBkdS0+ICkuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKFQwMjhzbm1wdjNnZXRmYWlsKTogc25tcHYzIGdldCBmYWlsdXJlIHRlc3QuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKElOU1RBTEwpOiByZW1vdmUgdmVyc2lvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4xIC0+IFYzLjYuMgoKaGFyZGFrZXIgMTYgTWFyIDk5IDA4OjE1OjE4CiAgICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgoKaGFyZGFrZXIgMTYgTWFyIDk5IDEwOjM0OjAzCiAgICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MjM6MzAKICAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MzM6NTIKICAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAoKbXNsaWZjYWsgMTcgTWFyIDk5IDEzOjUzOjQ4CiAgICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKCm1zbGlmY2FrIDE4IE1hciA5OSAwODozNzo0NQogICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCgpoYXJkYWtlciAxOSBNYXIgOTkgMDk6MjM6MzgKICAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjA5OjQ3CiAgICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MTA6MTEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgICBuZXh0IHNwYWNlLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjExOjAzCiAgICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoyMzoyMQogICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTE6MzIKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTc6MjQKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KCm1zbGlmY2FrICAxIEFwciA5OSAxMzoxMDo0NwogICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgoKbXNsaWZjYWsgIDUgQXByIDk5IDExOjA2OjI3CiAgICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KCm1zbGlmY2FrICA1IEFwciA5OSAxNDoxMDoxNAogICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MjI6NDMKICAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE1OjU5OjIwCiAgICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KCmhhcmRha2VyICA2IEFwciA5OSAwOToyMzoxNgogICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KCm1zbGlmY2FrICA2IEFwciA5OSAxMDo1OTowNQogICAgLSAoZXh0ZW5zaWJsZS5jKSBxdWVsbCB3YXJuaW5nIGFib3V0IGNvbXBhcmluZyBwb2ludGVyIHdpdGggbm9uLXBvaW50ZXIuCgptc2xpZmNhayAgNiBBcHIgOTkgMTE6MzM6NTQKICAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6MTM6NDAKICAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mzg6NDUKICAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCgptc2xpZmNhayAgNiBBcHIgOTkgMjE6MjQ6MjIKICAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjEzOjU5CiAgICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjE0OjQzCiAgICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKCm1zbGlmY2FrICA3IEFwciA5OSAwNjoxNzoyOAogICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKCmhhcmRha2VyICA3IEFwciA5OSAxMDo0MjoxMAogICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgICBuZXdlciBtb2RlbC4KICAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA3IEFwciA5OSAxMDo0ODowNwogICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTE6Mjg6MDIKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MDA6MjAKICAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MTc6MjMKICAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECgptc2xpZmNhayAgNyBBcHIgOTkgMTU6MDA6MzkKICAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNDozMQogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE1OjM5CiAgICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE2OjQ1CiAgICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoyNTowOQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjE5OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToyMDowMAogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzI6MjMKICAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjM2OjMxCiAgICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU0OjQ4CiAgICAtIChmcmVlYnNkLmgsIGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWVic2QgdXRtcCBjbGVhbnVwcy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1Njo1MwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU3OjI0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODowMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IC1QLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjI3CiAgICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDA6NDkKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDM6MjkKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6Mjk6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjMwOjM0CiAgICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KCmhhcmRha2VyIDE0IEFwciA5OSAxNTo1MjozNQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6MzE6NTUKICAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6NTY6MzcKICAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKCm1zbGlmY2FrIDE2IEFwciA5OSAwNzozMDoyOQogICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KCm1zbGlmY2FrIDE2IEFwciA5OSAwNzo1NDoyMgogICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKCm1zbGlmY2FrIDE2IEFwciA5OSAwODozMzoxNgogICAgLSAobWliLmMpICItbSIgb3IgTUlCUyA6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjEwOjA2CiAgICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTE6NDgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTU6MTQKICAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE2OjE2CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6MDYKICAgIC0gKE5FV1MpOiB1cGRhdGVkCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6NDEKICAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKCmhhcmRha2VyIDE2IEFwciA5OSAyMTozNDo0OQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCgptc2xpZmNhayAxOCBBcHIgOTkgMDY6NTQ6MjYKICAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQgOiA5IC0+IDEwCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDE6MTUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMTowOToyNwogICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTI6MTcKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjE0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTE6Mjg6MTQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE1OjMxOjM1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjA0OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAgLSBjbmFtZSAtPiBOQU1FCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MTA6NDQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KCmhhcmRha2VyIDIwIEFwciA5OSAyMTozODo0MgogICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU0OjQ0CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU2OjAzCiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMTA6NTE6MzAKICAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCgptc2xpZmNhayAyNiBBcHIgOTkgMDk6MjE6MDYKICAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KCm5iYSAyNiBBcHIgOTkgMTE6MjE6MTAKICAgIAogICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKCm5iYSAyNiBBcHIgOTkgMTE6NDg6NTcKICAgIAogICAgCiAgICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKCm5iYSAyNiBBcHIgOTkgMTI6MDM6NDcKICAgIAogICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAgCXN0cmluZ3MKCm5iYSAyNiBBcHIgOTkgMTI6MDk6MzUKICAgIAogICAgCiAgICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgoKbmJhIDI2IEFwciA5OSAxMjoxMzo1MAogICAgCiAgICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgIAlmdW5jdGlvbnMuCgptc2xpZmNhayAyNiBBcHIgOTkgMTI6Mzc6MDkKICAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQoKbXNsaWZjYWsgMjcgQXByIDk5IDA5OjUxOjM1CiAgICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6MzI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjM5OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjA3OjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjEzOjMxCiAgICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCgpoYXJkYWtlciAgMyBNYXkgOTkgMTI6NTg6MTkKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgoKbmJhICAzIE1heSA5OSAxNTo0MDoxMQogICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKCm5iYSAgNCBNYXkgOTkgMDA6NDc6NDQKICAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpuYmEgIDQgTWF5IDk5IDAwOjUxOjE2CiAgICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKCmhhcmRha2VyICA0IE1heSA5OSAxMTowODo1NQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KCm1zbGlmY2FrICA2IE1heSA5OSAwOToyMDozMAogICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgoKbmJhIDEwIE1heSA5OSAxNDo0NzoyMgogICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgoKbmJhIDEwIE1heSA5OSAxNDo0OTo0OQogICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMjo0OAogICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMzoyNQogICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjExOjQwCiAgICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NTM6MjMKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6MjI6MTYKICAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjUyOjE5CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowOToxOAogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgptc2xpZmNhayAxNCBNYXkgOTkgMDY6NTQ6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDA5OjQ3OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKCm1zbGlmY2FrIDE0IE1heSA5OSAxMzo1OTozNwogICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6NTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM0OjU1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM4OjAwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNzoxODowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKCmRhdmVzIDE4IE1heSA5OSAwNjoyNjoxNgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwoKbXNsaWZjYWsgMTggTWF5IDk5IDA5OjAxOjQ2CiAgICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgoKZGF2ZXMgMTggTWF5IDk5IDA5OjIzOjUwCiAgICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCgpkYXZlcyAxOSBNYXkgOTkgMDI6MzM6MDcKICAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwoKZGF2ZXMgMTkgTWF5IDk5IDA1OjExOjM3CiAgICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDI6NTUKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjUwOjEyCiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpkYXZlcyAyMCBNYXkgOTkgMDM6NDY6MjQKICAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCgptc2xpZmNhayAyMSBNYXkgOTkgMDU6MjQ6MjMKICAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KCmRhdmVzIDIxIE1heSA5OSAwNTo1NDoyMgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQoKaGFyZGFrZXIgMjEgTWF5IDk5IDExOjEwOjQ0CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgoKbXNsaWZjYWsgMjEgTWF5IDk5IDE1OjI5OjQ2CiAgICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KCm1zbGlmY2FrIDI0IE1heSA5OSAwNTozNjoxMwogICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE5OjAzCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDo1NQogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODowNAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjMyCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTY6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjQwOjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm1zbGlmY2FrIDI3IE1heSA5OSAwNToxNjoyNQogICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDowMwogICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjE1CiAgICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzowNgogICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjMyCiAgICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgoKZGF2ZXMgMjggTWF5IDk5IDA3OjAyOjAxCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwoKZGF2ZXMgMjggTWF5IDk5IDA4OjE0OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCgpkYXZlcyAyOCBNYXkgOTkgMDg6NTc6MTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKCmRhdmVzIDI4IE1heSA5OSAwOToxMjoyMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQoKbXNsaWZjYWsgMjggTWF5IDk5IDA5OjI0OjU2CiAgICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6MTc6MTMKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6NDQ6NDIKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgICBsaWJyYXJ5LgoKZGF2ZXMgIDEgSnVuIDk5IDAyOjE3OjI3CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKCmRhdmVzICAxIEp1biA5OSAwMjozMjoxMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQoKZGF2ZXMgIDEgSnVuIDk5IDA3OjMwOjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKCmhhcmRha2VyICAxIEp1biA5OSAxNzoyMTo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KCm1zbGlmY2FrICA0IEp1biA5OSAwOTo1MToxMwogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ0OjA2CiAgICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjA0OjIxCiAgICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCm1zbGlmY2FrIDExIE1heSA5OSAxNDozOTo1OAogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGxvY2FsL21pYjJjIGxvY2FsL3RrbWliIG1hbi9zbm1wX2NvbmZpZy41LmRlZgogICAgICAgbWFuL3NubXBkLjEuZGVmIG1hbi9zbm1wdHJhcC4xIG1hbi9zbm1wdHJhcGQuOAogICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCBzL2ZyZWVic2QuaCBzL2ZyZWVic2QyLmgKICAgICAgIHNubXBsaWIvbWliLmMgc25tcGxpYi9wYXJzZS5jIHNubXBsaWIvcGFyc2UuaAogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvdmFjbS5jKSAtIGNoYW5nZXMgYy9vIE5pZWxzIEJhZ2dlc2VuCgptc2xpZmNhayAxMSBNYXkgOTkgMTg6NTg6MzcKICAgIC0oY3lnd2luLmgpIC0gdXNlIHRvIGJ1aWxkIG9uIEN5Z1dpbiBwbGF0Zm9ybS4KCm1zbGlmY2FrIDExIE1heSA5OSAxOTo1NDowNAogICAgLShhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC92aWV3X3BhcnNlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCiAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L2lmLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmggc25tcGxpYi9hY2xfcGFyc2UuYwogICAgICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYykKICAgICAgUG9ydCBzb21lIG9mIHRoZSBmaXhlcyBmcm9tIHRoZSBjdXJyZW50IGRldmVsb3BtZW50IGJyYW5jaAoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjQ1OjA1CiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjI4OjA3CiAgICAtKG1pYi5jIHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzozODowMwogICAgCiAgICAobWliLmMpOiBGaXhlZCBtaW5vciB0eXBvCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTU6MDYKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjEzCiAgICAtICh2bXN0YXQuYyk6IGluY2x1ZGUgbGltaXRzLmguCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDc6MzkKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDE1OjQyOjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yICkKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDoxMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDE6NDgKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjQ5OjI1CiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpoYXJkYWtlciAyNSBNYXkgOTkgMjA6MjA6MzEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjIucHJlMSApCgpuYmEgMjYgTWF5IDk5IDA3OjU3OjQyCiAgICAKICAgICAgVGFnOiBWMy1saW5lCiAgICAKICAgIGlmLmM6IGR5bmFtaWMgd2lkdGggZm9yIC1pIGFuZCAtbyBvcHRpb24KCm1zbGlmY2FrIDI2IE1heSA5OSAwODowMDowNwogICAgLSBmaXgtdXBzIHRvIGJ1aWxkIFdpbjMyIE1TVmlzdWFsQysrCgpuYmEgMjYgTWF5IDk5IDA4OjI0OjM1CiAgICAKICAgIAogICAgU29tZSBmaXhlcyBmb3IgU29sYXJpcyAyLjcgKHByb2MgYWNjZXNzIHN0aWxsIGRvZXMgbm90IHdvcmsgd2hlbiBjb21waWxlZAogICAgd2l0aCBnY2MgKDMyLWJpdCBjb21waWxlcikKCm5iYSAyNiBNYXkgOTkgMDg6Mjk6MjYKICAgIAogICAgRml4ZXMgZm9yIEZyZWVCU0QgMi4xIGZyb20gRGVyZWsgSi4gQmFsbGluZyA8ZGJhbGxpbmdAeWFob28taW5jLmNvbT4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowNzoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzd2luc3RhbGwgYmUgInVua25vd24iIHNpbmNlIHdlIGNhbid0IHRydWx5IGtub3cuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MDkKICAgIC0gKGlwZndhY2MuaCk6IG1vdmUgdG8gY29ycmVjdCBsb2NhdGlvbi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowODoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbWFrZSBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozMToyNQogICAgLSAocHJvYy5jKTogdWx0cml4IGZpeGVzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjM4OjU2CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm5iYSAyNyBNYXkgOTkgMDI6NTY6MjUKICAgIAogICAgCiAgICBob3N0L2hyX3N3cnVuLmMsIHVjZC1zbm1wL3Byb2MuYzogRml4ZXMgZm9yIFNvbGFyaXMgMi43CgpuYmEgMjcgTWF5IDk5IDAyOjU5OjE2CiAgICAKICAgIHNubXBkLmM6CVByb3Blcmx5IGhhbmRsZSB0aGUgY2FzZSBvZiBubyBjb21tdW5pdHkgc3BlY2lmaWVkCiAgICAJZm9yIGFnZW50IHRyYXBzLgoKbmJhIDI3IE1heSA5OSAyMzo1NTowOQogICAgCiAgICBzb2xhcmlzMi4/Lmg6CWRlZmluZSBfU0xBU0hfUFJPQ19NRVRIT0RfIGFzIDEKCm5iYSAyNyBNYXkgOTkgMjM6NTU6NDkKICAgIAogICAgcmVhZF9jb25maWcuYzoJY29tcGxhaW4gYWJvdXQgZXhpc3RpbmcgYnV0IHVucmVhZGFibGUgY29uZmlnIGZpbGVzLgoKbmJhIDI3IE1heSA5OSAyMzo1OTozNwogICAgCiAgICBpbmV0LmM6CTAgSVMgYSB2YWxpZCBzaG9ydCAoYW5kIHBvcnQgYWRkcmVzcyBmb3IgcmVtb3RlIGVuZHMgb2YgcG9ydHMKICAgIAlpbiBMSVNURU4gc3RhdGUpCgpuYmEgMjggTWF5IDk5IDAzOjI1OjI5CiAgICAKICAgIGNoYW5nZSB0aGUgdHJhcHNpbmsvdHJhcDJzaW5rIGRpcmVjdGl2ZXMgdG8gc3VwcG9ydCBhIGNvbW11bml0eSBwYXJhbWV0ZXIuCgpuYmEgMjkgTWF5IDk5IDAyOjQ5OjQ3CiAgICAKICAgIC0gc211eC5jOiBmaXggYSBtaXNzaW5nIG50b2hzIGluIGEgZGVidWcgbWVzc2FnZQoKbmJhICAxIEp1biA5OSAwMDoyNzozNgogICAgCiAgICAtIHByb2MuYzogWUFQQk8gKFlldCBhbm90aGVyIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdykKCm5iYSAgMSBKdW4gOTkgMDA6Mjk6MzUKICAgIAogICAgLSBzbm1wX2FnZW50LmM6IGNoYW5nZSBub0NyZWF0aW9uIHJldHVybiB0byBub0FjY2Vzcy4gVGhlcmUgYXJlIHByb2JhYmx5CiAgICAJc2l0dWF0aW9ucyB3aGVyZSB0aGUgZm9ybWVyIGlzIGNvcnJlY3QsIGJ1dCB0aGlzIGlzIGxlc3MgY29uZnVzaW5nCgpuYmEgIDEgSnVuIDk5IDAwOjMzOjUyCiAgICAKICAgIC0ga2VybmVsX3N1bm9zNS4/LCBocl9zd3J1bi5jLCBhdC5jLCBpbnRlcmZhY2VzLmM6IGZpeCBhdC5hdFRhYmxlIGFuZAogICAgCWlwLmlwTmV0VG9NZWRpYVRhYmxlIGZvciBTb2xhcmlzLiBBbHNvIGEgdHdlYWsgZm9yIGdldEtzdGF0SW50LgoKaGFyZGFrZXIgIDIgSnVuIDk5IDA3OjI3OjQ2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTIgKQoKbXNsaWZjYWsgIDIgSnVuIDk5IDEzOjQ2OjM0CiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsZnJlZWJzZDMuaCkgZml4IGJ1aWxkIG9uIEZyZWVCU0QgMy4xCgpuYmEgIDMgSnVuIDk5IDE0OjMxOjE4CiAgICAKICAgIC0ga2VybmVsLmM6CWFkZCBzb21lIHNhbml0eSBjaGVja3Mgd2hlbiBydW5uaW5nIHdpdGhvdXQgcm9vdCBhY2Nlc3MuCgpuYmEgIDMgSnVuIDk5IDE0OjM0OjUwCiAgICAKICAgIC0gaHJfc3dydW4uYzoJYWRkIGEgYmxhbmsgYmV0d2VlbiBwcm9jZXNzIHBhcmFtZXRlcnMKCm5iYSAgMyBKdW4gOTkgMTQ6Mzg6MTgKICAgIAogICAgLSBuZXRic2QuaCwgdGNwLmMsIHVkcC5jOglmaXggc29ja2V0IHRhYmxlcyBmb3IgTmV0QlNEIDEuMy8xLjQKCm5iYSAgMyBKdW4gOTkgMTU6MTI6MDEKICAgIAogICAgLSBzbm1wdHJhcC5jOiBmaXggYSBiYWQgZnJlZSB3aGVuIGNhbGxpbmcgc25tcGluZm9ybS4KCm5iYSAgMyBKdW4gOTkgMTU6MjE6MDkKICAgIC0gdGNwLmM6IGxvc3QgYSAnOycgZm9yIHRoZSBGcmVlQlNEIGNhc2UgLi4uLgoKZGF2ZXMgIDQgSnVuIDk5IDA0OjUxOjA0CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRml4IFJQTSBoYW5kbGluZwoKZGF2ZXMgIDQgSnVuIDk5IDA1OjA2OjQ0CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQWRkaXRpb25hbCBsaWJyYXJ5IGZvciBSUE0gaGFuZGxpbmcKCm1zbGlmY2FrICA0IEp1biA5OSAwOTozMDoxMgogICAgLSh0Y3AuYywgdWRwLmMpIGFwcGx5IEtlbiBLZXkncyBmaXggZm9yIEZyZWVCU0QzLjEKCm5iYSAgNCBKdW4gOTkgMTE6NTI6MzgKICAgIC0gaXAuYzogRml4IGZvciBGcmVlQlNEIDMgZnJvbSBLZW4gS2V5CgpuYmEgIDQgSnVuIDk5IDExOjUzOjMyCiAgICAtIGtlcm5lbF9zdW5vczUuYywgYXNuMS5jOiBGaXhlcyBmb3IgNjQtYml0IFNvbGFyaXMgNwoKbmJhICA1IEp1biA5OSAwNTo0NzoyMAogICAgLSBpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmM6IGNsZWFudXAgb2YgY29uZGl0aW9uYWxzIGZvciBGcmVlQlNECgpuYmEgIDUgSnVuIDk5IDA2OjAyOjUyCiAgICAtIGNvbmZpZ3VyZS5pbjogcHJvcGVyIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDU6MTAKICAgIC0oaXAuYywgdmFyX3JvdXRlLmMpIGZpeCBzaXplb2YsIENQUCAjZW5kaWYKCmhhcmRha2VyICA3IEp1biA5OSAxMDo1MjozMgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOgogICAgICAtIGRvbid0IHB1dCBDRkxBR1MgaW4gdGhlIGxpbmsgbGluZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMDo1NDoyMQogICAgLSAoUkVBRE1FLndpbjMyKTogYWRkZWQgdG8gdGhlIDMuNi4yIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MjU6MjcKICAgIC0gKEZBUSwgUkVBRE1FKTogdXBkYXRlIGZvciAzLjYuMi4KCmhhcmRha2VyICA3IEp1biA5OSAxMToyNzoxNQogICAgLSAoTkVXUyk6IDMuNi4yIHVwZGF0ZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMTozMDo0MAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzI6NTQKICAgIC0gKElOU1RBTEwpOiB1cGRhdGUgZm9yIDMuNi4yLgoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjAyOjEwCiAgICAtKGlmLmMpIC0gY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjQ2OjI2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaWJkYjEgYmVmb3JlIGxpYmRiIGZvciBycG0gdXNhZ2UuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTU6NTA6MDEKICAgIC0gKEZBUSk6IG1lcmdlCgpoYXJkYWtlciAgNyBKdW4gOTkgMTY6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIC1sZGIxIHRoZW4gLWxkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjQzOjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgcnBtR2V0UGF0aCB0byBoZWxwCiAgICAgIGRldGVybWluZSB3aGljaCB2ZXJzaW9uIG9mIFJQTSB3ZSdyZSB1c2luZyAoMyBvciAyKS4KCnBqbCAgNyBKdW4gOTkgMTc6MzA6MzMKICAgIEFkZGVkIFJQTSB2MyBzdXBwb3J0Cgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NDA6MzYKICAgIC0obWliSUkvKixzbm1wbGliLyopIE1hcmtrdSBMLidzIGZpeGVzIHRvIGNvbXBpbGUgb24gSFAtVVggd2l0aCBhQ0MKCm1zbGlmY2FrICA4IEp1biA5OSAwMzo1NDo1MAogICAgc3BlbGwgY2hlY2sgQ09NTVVOSVRZCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy42IC0+IFYzLjYuMQoJCm1zbGlmY2FrICA4IE1hciA5OSAwNDowMjowMQogICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KCm1zbGlmY2FrICA4IE1hciA5OSAwNDoxNDo0MQogICAgLSAoc25tcF9hcGkuYykgdXNlIHJlcXVlc3QgZGF0YSB3aXRoIHJlcXVlc3QgY2FsbGJhY2sKCm1zbGlmY2FrICA4IE1hciA5OSAwNTowMTo0OQogICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KCm1zbGlmY2FrICA4IE1hciA5OSAwNTowNzoxMwogICAgLSAoQUdFTlQpIE1BWF9OQU1FX0xFTiAtLT4gTUFYX09JRF9MRU4gaW4gZXhhbXBsZQoKbXNsaWZjYWsgIDggTWFyIDk5IDA5OjU4OjE3CiAgICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgoKbXNsaWZjYWsgIDggTWFyIDk5IDE0OjI4OjIwCiAgICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCgpoYXJkYWtlciAxMCBNYXIgOTkgMTU6MDc6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODoyMgogICAgLSAoUkVBRE1FKTogQWRkZWQgTWlrZSBCYWVyLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE1OjQ4OjUyCiAgICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGNoYW5nZWQgc29tZSBjb21tZW50cyB0byAvKiAqLyBpbnN0ZWFkIG9mIC8vLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjEwOjMxCiAgICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDo0NwogICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMjo0MwogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjIzOjQ0CiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDA3OjA4OjQwCiAgICAtIChkbG1vZF9taWIuYykgOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCgpoYXJkYWtlciAxMiBNYXIgOTkgMDk6MTU6MTQKICAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDExOjMxOjE2CiAgICAtIChkbG1vZF9taWIuYykgOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKCmhhcmRha2VyIDEyIE1hciA5OSAxMjoyMDoxMgogICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzowOAogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzo0NAogICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgIGNvbmZpZyBsaW5lLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM0OjEyCiAgICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyIDogbWFrZSBzdXJlIGt2bV9vcGVuIGlzIGNhbGxlZCBiZWZvcmUga2QgaXMgdXNlZC4KICAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM1OjM4CiAgICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MzY6MzkKICAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCgptc2xpZmNhayAxMiBNYXIgOTkgMTQ6NTQ6NTEKICAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KCmhhcmRha2VyIDEyIE1hciA5OSAxNToyMzoxOAogICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgIGNvbmZpZ3VyZSAtLWhlbHAuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjQ6MzcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgIGxpYmlwZndjLmgpOiBQYXRjaCBmcm9tIERpZGllciBEaGFlbmVuczoKICAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KCm1zbGlmY2FrIDE1IE1hciA5OSAwNTo1NDowNwogICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKCmhhcmRha2VyIDE1IE1hciA5OSAwODo0OToxMAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgICAtIHJldmVydCB0byBzbm1wX3BhcnNlLgogICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgoKbXNsaWZjYWsgMTUgTWFyIDk5IDA5OjQyOjM0CiAgICAtIHNlY29uZCBwYXNzIGF0IENNVV9DT01QQVQgOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzA6NDUKICAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KCmhhcmRha2VyIDE1IE1hciA5OSAxNDozMToyMwogICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MjE6MDIKICAgIC0gKGhyX3Byb2MuYywgaHJfcHJvYy5oLCBsb2FkYXZlLmMsIGxvYWRhdmUuaCk6IGZpeCB0cnlfbG9hZGF2ZSBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTozMTo1MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGludGVyZmFjZXMuYywgbGludXguaCk6IGRldGVjdAogICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NDY6MTIKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU1OjM1CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NTg6MDcKICAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4zIC0+IFYzLjYKCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxNDo0MwogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCgpoYXJkYWtlciAyMiBKdW4gOTggMDk6MTY6MzIKICAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgICAtIGNvbW1lbnRlZCBvdXQgdHJhaWxpbmcgI2VuZGlmIGNvbW1lbnQuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzA6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMToyMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6NTY6NDYKICAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6NDA6NDAKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgMjggSnVuIDk4IDA5OjMwOjM0CiAgICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgoKaGFyZGFrZXIgIDEgSnVsIDk4IDExOjI4OjE3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1NjoxMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmgpOgogICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1Nzo1MwogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgIC0gc2VwZXJhdGUgcnVubmluZyBvZiBleHRlcm5hbCBjb21tYW5kIGludG8gbmV3IGZ1bmN0aW9uLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MzQ6MjYKICAgIC0gKHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgcGFzcy1wZXJzaXN0LmMsCiAgICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTY6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiByZW1vdmVkIGZyb20gYWdlbnQgZGlyLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU3OjA2CiAgICAtICh1Y2Rfc25tcC5oKTogYWRkZWQgcGFzcy1wZXJzaXN0IG1vZHVsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1ODowMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjA0OjIyCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgIFBvbG92bmlrb3Y6CiAgICAgIC0gbmV3IGRsbW9kIHNldC4KICAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDoyMDo0MgogICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDM6NTYKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDoyNQogICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjMxOjM2CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTo1MAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjUxOjI4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKCmhhcmRha2VyIDEwIEp1bCA5OCAwOTo0MjoxNgogICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAyOjI3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6MzgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NDo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiB0eXBvLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjE1CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAgLSBjcmVhdGUgaW5pdF9zbm1wKCkgdG8gd3JhcCBvdGhlciBmdWN0aW9ucy4KICAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDc6NDgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODoyNQogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODo0MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiB1c2UgaW5pdF9zbm1wIGluc3RlYWQgb2YgaW5pdF9taWIoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo1MDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgIHNubXBkLmgpOgogICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgIC0gZG8gYSBtaW5pbWFsIHBlcnNpc3RlbnQgY2FjaGUgaW1wbGVtZW50YXRpb24gYW5kIHJlYWQgaXQgYXQgc3RhcnQgdXAuCiAgICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgoKbmJhICAzIFNlcCA5OCAxNDoyOTowMwogICAgLSAoZml4cHJvYyk6IGFkZGVkIGNvbW1lbnQgdG8gdGVzdCBDVlMuCgpoYXJkYWtlciAgOSBTZXAgOTggMTY6MTI6MzIKICAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjU1OjA0CiAgICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgoKaGFyZGFrZXIgMTEgU2VwIDk4IDA5OjI2OjQyCiAgICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjQ2OjAxCiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTM6MjMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTQ6MjQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRG9uJ3QgZm9yY2UgY2MgYW55bW9yZSwgYWxsb3cgZ2NjIHRvIGdvIGZpcnN0LgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU2OjUxCiAgICAtIChvdi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowODo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAxODoyNDowMAogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjEyOjA5CiAgICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICAtIG1lcmdlIGludG8gbWFpbiBsaW5lIGZyb20gdGhlIDMtNi1wcmUxLXRyYW5zIGJyYW5jaC4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxODoxMAogICAgLSAoc25tcF9hcGkuYyk6IGRlZmluZSB1c2FnZSBtaXNwZWxsaW5nIFNOTVBfQkFEX1BBUlNFIC0+IFNOTVBFUlJfQkFEX1BBUlNFLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjMwOjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA1OjI2CiAgICAtIChSRUFETUUpOiBOYW1lIGFkZGl0aW9uLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA2OjUyCiAgICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA5OjM2CiAgICB2ZXJzaW9uIHVwZGF0ZTogMy42LnByZTIKCmhhcmRha2VyIDE0IFNlcCA5OCAxMjozNToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KCmhhcmRha2VyIDE0IFNlcCA5OCAxMjo0MzozMgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIGRsbW9kX21pYi5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgIHJlZ2lzdHJ5LmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLAogICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW5hbWUgY29tcGFyZSAtPiBzbm1wX29pZF9jb21wYXJlKCkuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDI6MzQKICAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjA3OjA1CiAgICAtIChtaWIuYyk6IC8vIGNvbW1lbnQgLT4gLyogKi8gY29tbWVudC4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzo0NQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEzOjIwOjExCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjAxOjUxCiAgICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCgpoYXJkYWtlciAxOCBTZXAgOTggMTQ6MDQ6NDMKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICAgaW50ZWdlciBzaW5jZSAxLzIgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IDAvMSByZXR1cm4gY29kZSBzY2hlbWUuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTE6MzkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyMyBTZXAgOTggMTM6MDc6MDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA1OjQwCiAgICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjE1OjIyCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICAgbWFkZSBmb3IgbXVsdGktdGhyZWFkIHN1cHBvcnQuICBVbmZvcnR1bmF0ZWx5LCBJIGRpZCBub3QgbWFrZSBzdXJlCiAgICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgIHN0cmluZyB3YXMgbm90IGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY2hhaW4uCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MjQ6MTYKICAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI1OjEwCiAgICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjMzOjA2CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU1OjUwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU2OjQzCiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgIG11Y2ggaW4gdGhlIGZ1dHVyZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODowMzoyNwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjA0OjExCiAgICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQtb3V0LgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjE0OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgIHNtYWxsIHNsZWVwIHRpbWVzIHdoaWxlIHdhaXRpbmcgZm9yIHByb2Nlc3NlcyB0byBmaW5pc2guCgpoYXJkYWtlciAzMCBTZXAgOTggMTQ6NTc6MTEKICAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGludGVyZmFjZXMuYywgbWVtb3J5LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHBhcnNlLmMpOgogICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDE2OjUzOjIzCiAgICAtIChkdW1teS5jLCBkdW1teS5oKTogdXBkYXRlIHRvIHJlbW92ZSBjb21tb25faGVhZGVyLmgKCmhhcmRha2VyICA1IE9jdCA5OCAxNzowMzozNAogICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjAzCiAgICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODoxNgogICAgLSAoaHB1eC5oKTogaGFjayBmaXhlcyBmb3IgaHB1eDEwIGFuZCBydGVudHJ5LgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjU1CiAgICAtIChjb25maWcuaC5pbik6IHNldHVwIGRlZmluZSBmb3IgSEFWRV9VU0xFRVAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzQ6NTgKICAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozNTowNgogICAgLSAodmVyc2lvbnRhZyk6IGZpeCBmb3IgY3ZzIDEuMTAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6Mzg6NDkKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjU2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OToxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm9wZXJseSBsb2NhdGUgdmVyc2lvbi5oIGluICQoc3JjZGlyKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OTozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggbWFrZSBodG1sLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUwOjIzCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIHVuLW5lZWRlZCBoZWFkZXJzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUxOjU2CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGRlZmF1bHQgcG9ydCBwcm9ibGVtcyAoYWdhaW4pLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjU0OjM4CiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjAwOjQwCiAgICAtIChsaWJzbm1wLmRzcCwgbGlic25tcF9kbGwuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMDg6MDk6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzowODoxOAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzoxMjowMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3VwcG9ydCBmb3Igc3RyaWN0IChjYXNlIHNlbnNpdGl2ZSkgb3B0aW9uIHRvIHRoZSBtaWIgY29tcGlsZXIuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MjA6MjUKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkIGV4cGxhaW5zIGluIHdvbmRlcm91cyBkZXRhaWwgYWxsIGFib3V0IHRoZSBWQUNNIG1vZHVsZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOToxNzowMgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MzgKICAgIC0gKGhvc3RfcmVzLmgpOiBuZXQvaW5fdmFyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQyOjIwCiAgICAtIChocl9zdG9yYWdlLmMpOiBtYWNoaW5lL3R5cGVzLmggYW5kIHN5cy92bW1ldGVyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUwOjI2CiAgICAtIChmcmVlYnNkMy5oKTogZGVmaW5lIGZyZWVic2QyIGFuZCBNT1VOVF9ORlMuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NTE6NTgKICAgIC0gKGZyZWVic2QzLmgpOiBvcHBzOiAgZGVmaW5lIE1PVU5UX05GUyBhcyAibmZzIi4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MDowNQogICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDE6NTIKICAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MjoxMAogICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0OTowMwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZm9yIGJyb2tlbiBjb21waWxlciB3YXJuaW5ncyBvbiBOVC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo1Mjo1MQogICAgLSAobWVtb3J5LmMpOiBmaXggZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTYgT2N0IDk4IDA4OjM4OjM5CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgYWl4LmgpOiBhaXggaGVhZGVyIGZpbGUgZml4ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTA6NTQ6NDkKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIEZpeCBwYXJzZXIgdG8gZGVhbCB3aXRoIGFub255bW91cyBjaGlsZHJlbiBwcm9wZXJseS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxMTowODo1NgogICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjAxOjEyCiAgICAtICguY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYpOgogICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCgpoYXJkYWtlciAyMyBPY3QgOTggMDc6NTc6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gTlVMTCBjaGVja2luZyBvbiB0aGUgZmlsZXN5c3RlbSBtb3VudCBwb2ludC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDoxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU0OjQ3CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYyk6IGJ1ZyBmaXhlcywgbWlzc2luZyAjZW5kaWYuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTY6MDkKICAgIC0gKHRrbWliKTogZWRpdGFibGUgb2lkIGZpZWxkLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU5OjQ0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBkLmMsIHdvbWJhdC5oLAogICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgICBwcm9jLmgsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWliLmMsIHJlYWRfY29uZmlnLmMsCiAgICAgIHJlYWRfY29uZmlnLmgpOgogICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgICB0aGF0IHRoZSBhcHBsaWNhdGlvbiB1bmRlcnN0YW5kcy4KICAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KCmhhcmRha2VyICA2IE5vdiA5OCAxNzoyMzo0NgogICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6NDQ6NDMKICAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIyOjEwOjA4CiAgICAtICh0a21pYik6IHRvbyBtYW55IGltcHJvdmVtZW50cyB0byBjb3VudC4KCmhhcmRha2VyIDIzIE5vdiA5OCAxNTo0Mjo1MgogICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCgpoYXJkYWtlciAyMyBOb3YgOTggMTY6MzU6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0Mjo0NAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gdXNlIHNldGxvY2FsZSgpIGlmIGF2YWlsYWJsZSB0byBjb3JyZWN0IGlzcHJpbnQgcHJvYmxlbXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDg6NTMKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0OTo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNjozMwogICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjA3OjI0CiAgICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTI6MTMKICAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTQ6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIC13Ly1XIGZsYWcgaW4gdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTg6MDcKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0MTo1NQogICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDI6MjAKICAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQ4OjM4CiAgICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgUlBNIHBhY2thZ2UgaW5mbyBjYWxscy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1Nzo1MgogICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1OToxNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCgpoYXJkYWtlciAxNiBEZWMgOTggMDc6MzE6MjYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCgpoYXJkYWtlciAxOCBEZWMgOTggMTE6MzY6MzkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB0eXBvLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEwOjI0CiAgICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAgLSBtaXNjIHJlYWRfY29uZmlnIGZ1bmN0aW9ucyBwdWxsZWQgaW4gZnJvbSB0aGUgdjMgd29yay4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMTowMwogICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTI6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogaW5jbHVkZSByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjE2OjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjo1MwogICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KCmhhcmRha2VyIDIxIERlYyA5OCAxODoxOToxMgogICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICAgY29uZmxpY3Qgd2l0aCB0aGUgZGVtbyBtaWIuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MjA6MjUKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDA4OjUwOjI5CiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGNvbXBpbGUgZGxtb2RzCgpoYXJkYWtlciAyMiBEZWMgOTggMTQ6NTY6NDQKICAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG15IGJyb2tlbiBzZXRfbG9jYWxlIHN0dWZmLgoKaGFyZGFrZXIgMjYgRGVjIDk4IDEwOjM1OjIzCiAgICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KCmhhcmRha2VyIDI5IERlYyA5OCAxNjo1NTo1NAogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAyOjMzCiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDY6MTEKICAgIC0gKGV2ZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ4OjU3CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbmVlZCB0byByZWFkX29iamlkKCkgdGhlIGNvbnRleHQgb2lkIGJhc2UsIG5vdCB0aGUgcGFydHkgb2lkIGJhc2UKICAgICAgICBpbiBvbmUgbG9jYXRpb24uCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDk6NTEKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCgpoYXJkYWtlciAgMiBKYW4gOTkgMDg6NDg6MjkKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgoKaGFyZGFrZXIgIDUgSmFuIDk5IDEwOjQxOjUyCiAgICAtIChzbm1wdGFibGUuYyk6IE1ha2UgZmllbGQgc2VwYXJhdG9yIHRha2UgYXJndW1lbnRzIGRpcmVjdGx5IGFmdGVyIHRoZSAtZi4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0ODo1MQogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjI4OjIxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjEyCiAgICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1ha2UgLUQgcmVnaXN0ZXIgdGhlIGRlYnVnZ2luZyB0b2tlbnMgc3BlY2lmaWVkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjQ5OjI5CiAgICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjE1CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjI4CiAgICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUyOjEwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoyMgogICAgLSAoc25tcGNtZC4xKTogZGlzY3VzcyAtRCB1c2FnZSBjaGFuZ2UuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjE6NTA6MTMKICAgIC0gKGFnZW50LyouYyk6CiAgICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KCmhhcmRha2VyIDE0IEphbiA5OSAwOTowMjozNgogICAgLSAobWliMmMpOiB1cGRhdGUgZm9yIFNOTVAucG0gMS44LgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEwOjA5CiAgICAtIChzbm1wMnAuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTE6MTI6MjIKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6MjQ6MDIKICAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODoyMAogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODo1MAogICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KCmhhcmRha2VyIDE1IEphbiA5OSAxNjoxNzowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gc211eCBwYXRjaGVzLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjA0OjEyCiAgICAtIChzbm1wY21kLjEpOiB1cGRhdGVkIC1EIGRlc2NyaXB0aW9uLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEyOjAzCiAgICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEzOjEwCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKCmhhcmRha2VyIDE4IEphbiA5OSAxMDo0NzozNgogICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDE5OjU5OjUzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgX19QIGNoZWNraW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDIwOjAxOjU5CiAgICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIGFwcHMvc25tcHRhYmxlLmMgLSBzb21lIGNvbXBpbGVycyB3YXJuIGNvbXBhcmluZyBwb2ludGVyIHdpdGggaW50ZWdlcgogICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgICAtIHNubXBsaWIvc25tcF9hcGkuaCAtIE1TVmlzdWFsIEMrKyBkb2Vzbid0IGhhdmUgX19GVU5DVElPTl9fCiAgICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMDowOAogICAgLSAoRkFRKTogcGVybC1TTk1QIGFuZCB5MmsgcXVlc3Rpb25zIGFkZGVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjM1CiAgICAtIChhY2NvbmZpZy5oKTogdW5uZWVkZWQgY29tbWVudCByZW1vdmVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjU3CiAgICAtIChpbnRlcmZhY2VzLmMpOiB0eXBvIGluIGFuc2kgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyNDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwgLmN2c2lnbm9yZSwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICAgdmFjbS5jKTogZGVidWdnaW5nIHN1cHBvcnQgY29kZSBtb3ZlZCB0byBzbm1wX2RlYnVnLltjaF0uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTE6NTkKICAgIC0gKE1ha2VmaWxlLmluKTogdmVyc2lvbiB0YWcgY3JlYXRpb24uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6MTMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgICAtIEZpeCBydGVudHJ5IHRlc3QuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NDIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvc3RyZWFtLmggZm9yIFNDTy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNDo1OAogICAgLSAodmVyc2lvbnRhZyk6IHZlcnNpb24gdGFnZ2luZyBhYmlsaXR5IHRvIGRvIG1hbnkgdGhpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE2OjM0CiAgICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHN5cy9zdHJlYW0uaCBuZWVkZWQgYnkgU0NPLgogICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNzoxNwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6NDEKICAgIC0gKGxpbnV4LmgpOiBkZWZpbmUgTElOVVhfSU5URVJGQUNFX1NDQU5fTElORS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToyMDowNAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MDgKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MzgKICAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMDo1OAogICAgLSAoQ09QWUlORyk6IEl0J3MgMTk5OQoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjMxOjEzCiAgICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ4OjUzCiAgICAtIChzbXV4LmMpOiB0eXBvCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NDk6MzAKICAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo1MDoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MDIKICAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MzYKICAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE2OjQxOjIwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIG1haW4uYywgc25tcF9hcGkuYyk6CiAgICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MDI6MzcKICAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKCmhhcmRha2VyIDIwIEphbiA5OSAxNzoxMToyNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6Mzk6MzQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIHR5cG8gb24gSm9lJ3MgbmFtZSBmaXhlZC4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MDoyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfYXBpLmMsIGNvbmZpZy5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsCiAgICAgIEouIFNsaWZjYWs6CiAgICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MjoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1vZHVsZSBkZXBlbmRzLgoKaGFyZGFrZXIgMjIgSmFuIDk5IDA3OjIzOjEzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MDgKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBtb3JlIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MjYKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjQxCiAgICAtIChsaW51eC5oKTogMi4yIGRlZmluZSB1cGRhdGUuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzM6MjQKICAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzQ6MTEKICAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjExOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTE6MTU6NTMKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsCiAgICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE2OjE2CiAgICAtIChsaW51eC5oKTogY29tbWVudCB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDE2OjI1OjM3CiAgICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgoKaGFyZGFrZXIgMjYgSmFuIDk5IDA5OjQ1OjQyCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHJlZmVyZW5jZSBJUCBuZXQgYWRkcmVzc2VzIHRvIDEwLjEwLjEwLjAuCgpoYXJkYWtlciAgMiBGZWIgOTkgMTM6MzM6MjUKICAgIDIwMzYgLT4gMjAzOAoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjM0OjM2CiAgICAtIChzbm1wZC5jKTogdHlwbzogLUwgLT4gLUEgaW4gaGVscCBzdHJpbmdzIGRvY3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDA6MTMKICAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAxOjAxCiAgICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMjowNAogICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjE6MjUKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgICAtIGNhbGwgYWNjZXB0KCkgdG8gZ2V0IHRoZSBzb2NrZXQgZmlsZSBkZXNjcmlwdG9yLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjA4OjU3CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBUay5wbSBtZW50aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjEzOjAxCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE0OjQyCiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE3OjUwCiAgICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxODowOAogICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTk6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2Ugc2l6ZV90IGluc3RlYWQgb2YgInVuc2lnbmVkIiBmb3IgeG1hbGxvYywgZXRjLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjIwOjQ3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIyOjMzCiAgICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMjM6MjM6NDEKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDoxMDo1MgogICAgLSAobWliMmMpOiB0eXBvLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjM1OjQ2CiAgICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MTA6MzkKICAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb252ZXJ0IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTi4KICAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgIGFscmVhZHkgZGVmaW5lZCBhbmQgcGFzcyBpdCBzdGRvdXQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjI6MDMKICAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjoyMzoxNgogICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgIC0gQSBmZXcgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOIGNvbnZlcnNpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MzQ6MDAKICAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDY6NDgKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRXh0LTMtNi1wcmU4ICkKCmhhcmRha2VyIDExIEZlYiA5OSAxNjo0ODowNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MjkKICAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCgpoYXJkYWtlciAxNiBGZWIgOTkgMTc6MDU6NDUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEwOjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzozOAogICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEzOjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2FnZSBmaXguCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTU6NTkKICAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTY6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE3OjEzCiAgICAtIChNYWtlZmlsZS5pbik6IHNlcGFyYXRlIHRhcmdldCBmb3IgZ2VuZXJhdGVkIG1hbnVhbCBwYWdlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxODowNgogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIGEgJy0nIGluc3RlYWQgb2YgYSAnLicgZm9yIElFRUU4MDItMTEuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTk6MDMKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjUyCiAgICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMToyNQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjIzOjQ0CiAgICAtIChwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2F1dGguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6Mjg6NTQKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB3aW4zMiB1cGRhdGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE2OjEzOjQ3CiAgICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgbWVtb3J5X2ZyZWVic2QyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgbWliLmMsCiAgICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6MTE6NTIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc2VsZWN0ICJhbGxvdyB1bmRlcnNjb3JlIGluIE1JQgogICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6NDQ6MjEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNDo0MzoyMQogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogdXBkYXRlLgoKaGFyZGFrZXIgMjQgRmViIDk5IDE3OjEwOjEzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxpbnV4LmgpOgogICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCgpoYXJkYWtlciAyNSBGZWIgOTkgMTA6MDM6NDEKICAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICAgZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjAyOjU1CiAgICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gaW1wbGVtZW50IGxvYWQgYXZlcmFnZSByZXBvcnRpbmcgYXMgYSBpbnRlZ2VyIGFuZCBhcyBhIGZsb2F0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjQyOjMxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gTW9kaWZpY2F0aW9uIHRvICMyIGNvdXJ0ZXN5IG9mIE5pZWxzIEJhZ2dlc2VuLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgIC0gSW5zdGVhZCBvZiByZS1vcmRlcmluZyBhbGwgc2luZ2x5LWxpbmtlZCBsaXN0cywgdXNlIGEgbmV3IG1lbWJlcgogICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MDY6NDkKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjEwOjIxCiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDo0NwogICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MzM6MDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTkgKQoKaGFyZGFrZXIgIDEgTWFyIDk5IDEwOjQ4OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjEyCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6MzAKICAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6NDUKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBmcmVlIHRoZSBpbnRlcmZhY2UgdGFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjg6MTcKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IHB1dCBhIHByb3BlciAodm9pZCkgaW50byB0aGUgZnVuY3Rpb24gcHJvdG90eXBlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI5OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6MzA6MTkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjAzOjE1CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjU5OjE0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KCmhhcmRha2VyICAxIE1hciA5OSAxNDowNDowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gY29tcGxldGVseSByZS13cml0dGVuIHNtdXggbW9kdWxlcy4KCmhhcmRha2VyICAxIE1hciA5OSAxNDoyMDoxMQogICAgLSAoc211eC5jLCBzbXV4LmgpOiAzLjZpZmllZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMDo1NwogICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhc3QgdG8gcG9pbnRlciB0byBpbnQgbWF5IG92ZXJmbG93IHRoZSByZXR1cm4gYnVmZmVyLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE3OjM2CiAgICAtIChtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNwZWxsIGNoZWNrLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE5OjU2CiAgICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MjI6NDAKICAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KCmhhcmRha2VyICAxIE1hciA5OSAxNzo0Mzo0OQogICAgLSAoc211eC5jKToKICAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgIC0gY2xlYW4gdXAgZGVidWdnaW5nIG91dHB1dC4KCmhhcmRha2VyICAyIE1hciA5OSAwODo0NzoyOQogICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTA6NDI6MzQKICAgIC0gKHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGlwZndhY2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTM6MjM6NTcKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgcmV0dXJuIGEgcG9pbnRlciB0byBhIHBvaW50ZXIuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTc6NTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9kZWJ1Zy5jLAogICAgICBzbm1wX2RlYnVnLmgpOgogICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgICAtIHJlbmFtaW5nIG9mIERPREVCVUcgdG8gU05NUF9BTFdBWVNfREVCVUcuCiAgICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KCmhhcmRha2VyICAyIE1hciA5OSAxNToxODo1OQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHR5cG8uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MjE6MzQKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI1OjMzCiAgICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI4OjA1CiAgICAtIChjb25maWd1cmUpOiByYW4gYXV0b2NvbmYuLi4KCmhhcmRha2VyICAzIE1hciA5OSAxMTo0MDoxMQogICAgLSAocHJvYy5jLCBzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KCmhhcmRha2VyICAzIE1hciA5OSAxNzo1MToyNgogICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICAgUkVBRE1FLm1pYjJjKTogZWNlLnVjZGF2aXMuZWR1IC0+IHVjZC1zbm1wLnVjZGF2aXMuZWR1LgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE4OjAwOjUxCiAgICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjowNwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjoyMwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQoKbXNsaWZjYWsgIDQgTWFyIDk5IDA0OjA4OjAxCiAgICAKICAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjM5CiAgICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjQ2CiAgICAtIChSRUFETUUuc211eCk6IGFkZCBOaWNrLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjA3OjA3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpeCB2b2lkIHRlc3QgZm9yIGFuc2kgY29tcGlsZXJzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjIwOjA4CiAgICAKICAgIAogICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYykgOiByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGVzCiAgICAKICAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKSA6IGNoYW5nZSAiKndvcmQiIHRvICIqdG9rZW4iIHRvIGhlbHAgc29tZSBjb21waWxlcgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjI0OjI2CiAgICAKICAgIAogICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjMzOjMxCiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6Mzg6MjgKICAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgIC0gZG9uJ3QgcmVtb3ZlIGxvY2FsLyouY29uZiBpbiB0aGUgZmlyc3QgcGxhY2UgYW55bW9yZS4KCmhhcmRha2VyICA0IE1hciA5OSAwOTo0NjozNwogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gV2hlbiB0aGUgYWdlbnQgaXMgY29tcGlsZWQgd2l0aCBIQVZFX0xJQlJQTSBzZXQsIHlldCBubyBkYXRhYmFzZQogICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KCmhhcmRha2VyICA0IE1hciA5OSAxMzoxODo0NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB2b2lkIGNoZWNrLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjEzOjAwCiAgICAKICAgIAogICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKCm1zbGlmY2FrICA0IE1hciA5OSAxNToyNTo1MwogICAgCiAgICAoZGlzay5jKSAtIGV4cGxpY2l0IGJyYWNlcyB0byBhdm9pZCBhbWJpZ3VvdXMgYGVsc2UnCgptc2xpZmNhayAgNCBNYXIgOTkgMTU6Mjk6MjQKICAgIAogICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCgpoYXJkYWtlciAgNCBNYXIgOTkgMTU6NDU6MDIKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBleGFtcGxlLmMsIHN5c09SVGFibGUuYywgaXBmd2FjYy5jLAogICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgaGVhZGVyX3NpbXBsZV90YWJsZSB0byByZXBsYWNlIGNoZWNrbWliKCkuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MTQ6MTYKICAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHVwZGF0ZS4KCmhhcmRha2VyICA0IE1hciA5OSAxNjoyNjoyNgogICAgLSAoZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSBmaXhlcyBmb3IgZHVwbGljYXRlIGRlZmluZXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MzI6MTYKICAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6NTA6MTYKICAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgICAtIG1pc2MgZml4ZXMsIC1XYWxsIG1vc3RseS4KCm1zbGlmY2FrICA0IE1hciA5OSAxNzowMDo1MAogICAgCiAgICAoc3lzT1JUYWJsZS5jKSAtIHJlbW92ZSBzdGF0aWMgdV9sb25nIGxvbmdfcmV0dXJuLCBmb3IgY29uc2lzdGVuY3kuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDc6MTAKICAgIAogICAgKHNvbGFyaXMuaCkgLSB1bmRvIF9TTEFTSF9QUk9DX01FVEhPRF8gOiBhbm90aGVyIHRpbWUKCm1zbGlmY2FrICA0IE1hciA5OSAxNzo1MDoyOQogICAgCiAgICBSZXBsYWNlIHVzZXMgb2YgYnplcm8gd2l0aCBtZW1zZXQsIGJjb3B5IHdpdGggbWVtY3B5LgogICAgRml4IHByb3RvdHlwZXMuCgptc2xpZmNhayAgNCBNYXIgOTkgMTg6MTE6MzcKICAgIAogICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgIGZ1dHVyZSBpbXByb3ZlZCBlcnJvciByZWNvdmVyeS4KCm1zbGlmY2FrICA1IE1hciA5OSAwOTo0MDoxMQogICAgCiAgICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXkgOiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjExOjI5CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAgLSBkb24ndCBzZXQgZGVmYXVsdHMgZm9yICd3cml0ZV9tZXRob2QnIGFuZCAndmFyX2xlbicKICAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAgCQl3cml0ZSByb3V0aW5lIChzaW1pbGFybHkgaW4gdGhlIG1pYjJjLmNvbmYgcGF0Y2gpCiAgICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAgCiAgICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjIxOjI1CiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTA6NDI6NDAKICAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3dpdGNoIENPTU1JVCBhbmQgQUNUSU9OIHBoYXNlcy4KCm1zbGlmY2FrICA1IE1hciA5OSAxMTowMjozNAogICAgCiAgICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjEzOjAyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZSBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mbywgc2luY2UgaXRzIG5vdCB1c2VkIHRoaXMgcmVsZWFzZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTozMTo1MgogICAgLSAoc25tcF9pbXBsLmgpOiBjcmVhdGUgVU5ETwoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjM4OjMyCiAgICAtICh0a21pYik6IHVwZGF0ZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTo1NzozNgogICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgIHByb2MuaCwgcmVnaXN0cnkuaCwgdmVyc2lvbmluZm8uaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MDI6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAncyBtb2R1bGUgbGlzdC4KCmhhcmRha2VyICA1IE1hciA5OSAxNjoxMDozMAogICAgLSAodm1zdGF0LmgpOiBkZWNsYWlyIGluaXRfdm1zdGF0KCkuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MDg6MjEKICAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KCmhhcmRha2VyICA1IE1hciA5OSAxNzoxMTo0OAogICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTk6MTQKICAgIC0gKEZBUSwgTkVXUyk6IGZpbmFsIHVwZGF0ZXMuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMiAtPiBWMy41LjMKCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMzoxOQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNjo1MzozMQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowMjozOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwZXJsIGVxIC0+IHRlc3QgPSAob3BwcykuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDg6MjUKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBmb3IgYSBudWxsIG5hbWUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6NDI6MTAKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIGEgbWVtc2V0IHRvIHplcm8gb3V0IG5ldyBwb2ludGVycyBpbnN0ZWFkIG9mIGRvaW5nIGl0IGJ5IGhhbmQuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6MDYKICAgIC0gKGludGVyZmFjZXMuYyk6IGRvbid0IHVzZSBhICYgb24gb3NmMyBmb3IgYXJwY29tLmFjX2VuYWRkci4KCmhhcmRha2VyIDI4IFNlcCA5OCAxMzowOTo0NQogICAgLSAoc25tcF9hcGkuYyk6IHR5cGVjYXN0IHRoZSBkZWZhdWx0IGNvbW11bml0eSBzdHJpbmcgdG8gKHVfY2hhciAqKS4KCmhhcmRha2VyIDI4IFNlcCA5OCAxNTo0MjoyMQogICAgLSAobWVtb3J5LmMpOiAvZXRjL3N3YXBpbmZvIC0+IC91c3Ivc2Jpbi9zd2FwaW5mbyBmb3IgaHB1eDEwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4xIC0+IFYzLjUuMgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjMzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjM1OjU1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xICkKCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NToyNAogICAgLSAoTWFrZWZpbGUuaW4pOiBQdXQgYW4gQCBzaWduIGluIGZyb250IG9mIHRoZSBsYXN0IGVjaG8gbGluZS4KCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NjozNQogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X2ZyZWVic2QyLmgpOgogICAgICAtIENoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIFVTRUQgLT4gQVZBSUwgc2luY2UgdGhhdHMgcmVhbGx5IHdoYXQKICAgICAgICB3ZSdyZSByZXBvcnRpbmcuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NTA6MjIKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBjb3JyZWN0IHdvcmsgSSBzdHVwaWRseSBtYWRlIHdoZW4gdGlyZWQuCgpoYXJkYWtlciAgOSBTZXAgOTggMTE6MDA6NDQKICAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4yLgoKbWFyeiAgOSBTZXAgOTggIDE4OjMxOjAwCiAgICAtIChzbm1wdHJhcC5jLCBzbm1wdGVzdC5jKTogYWRkIFNPQ0tfIG1hY3JvcyBmb3Igd2luMzIgc3VwcG9ydAoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQpDaGFuZ2VzOiBWMy41IC0+IFYzLjUuMQoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDozNAogICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6NDEKICAgIC0gKHZlcnNpb25pbmZvLmMpOiBpbmNsdWRlIHN5c3RlbS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6MjIKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NTo0MgogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6MjgKICAgIC0gKHNlZHNjcmlwdC5pbik6IHVzaW5nX21vZHVsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjU1CiAgICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjExOjEwCiAgICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGVkIHNtaWNuZyBpbnB1dCBmaWxlLgogICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MjI6MzIKICAgIC0gKFJGQy0xMjE1LnR4dCk6IGNyZWF0ZWQgYW4gZW1wdHkgbWliIG1vZHVsZSBmb3IgaW1wb3J0aW5nIG9mIFRSQVAtVFlQRS4KCmhhcmRha2VyIDE3IEp1bCA5OCAxNjo1OTo1MQogICAgLSAoKik6IHVwZGF0ZSBmb3IgMy41LjEuCgpoYXJkYWtlciAyMCBKdWwgOTggMTc6MTQ6MjEKICAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE1OjM1OjA3CiAgICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNjoyMzo0NQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IGZpeCBzZWRzY3JpcHQgaW5jbHVkZXMuCgpoYXJkYWtlciAyNCBKdWwgOTggMDk6MjU6MzMKICAgIC0gKGRpc2suYyk6IGluY3JlbWVudCBpbmRleCBieSAxIHNvIGl0IGRvZXNuJ3Qgc3RhcnQgYXQgMC4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoxNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHZhcmlvdXMgZG9jdW1lbmF0aW9uIHVwZGF0ZXMgYW5kIG5vdGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEwOjAyOjI1CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBucm9mZiBlcnJvci4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDoyNTo0NAogICAgLSAoc25tcHRyYXBkLjgpOiBicm91Z2h0IHVwIHRvIGRhdGUuCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MTA6MDcKICAgIC0gKHNubXAuYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MjQ6MjIKICAgIC0gKGFjbC5oLCBhc24xLmgsIG1kNS5oLCBtaWIuaCwgcGFyc2UuaCwgc25tcC5oLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgdmFjbS5oLCB2aWV3LmgpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb25zLgoKaGFyZGFrZXIgMjkgSnVsIDk4IDEzOjQ0OjIyCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgaW5zdGFsbCBzaG91bGQgZG8gYSByZWFsIG1ha2UgYWxsIGZpcnN0LgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjE4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIGZpeGVzIGZvciB2MnBhcnQgbW9kdWxlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo0MgogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiBmaXhpdCBwcm9ibGVtcyB3aXRoIGFycmF5IGluZGV4IHdyb25nLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjUyCiAgICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlIGFkZGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjA1OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbGlid3JhcCBjb21tYW5kIGxpbmUgZml4ZXMuCiAgICAgIC0gLS13aXRoLWxkZmxhZ3MgY29tbWFuZCBsaW5lIG9wdGlvbiBjcmVhdGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU1OjMyCiAgICAtIChtaWJfYXBpLjMsIHNubXBkLjEuZGVmLCB2YXJpYWJsZXMuNSk6IHVwZGF0ZXMgdG8gcmVtb3ZlIG1pYi50eHQgcmVmZXJlbmNlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1ODoxMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBkb24ndCBpbmNsdWRlIGxpYnJhcmllcyB0aGF0IGFyZW4ndCBuZWVkZWQgaWYgZ2V0aG9zdGJ5bmFtZSBpc24ndCBpbiBvbmUuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTk6NTAKICAgIC0gKHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IHRoZSBFUlJPUl9NU0coKSBtYWNybyB0byB1c2Ugc25tcF9zZXRfZGV0YWlsLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjIxOjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jKTogdXNhZ2UgZml4ZXMgYW5kIC1tLy1NIHRvIHNubXB0cmFuc2xhdGUuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDI6NDkKICAgIC0gKGF1dG9fbmxpc3QuYyk6IGZpeCBmb3Igc3R1cGlkIGFpeCBrZXJuZWxzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICAtICh1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAgLSBtYWtlIHRoZSBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGUgd29yayB1bmRlciBmcmVlYnNkMi4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjI5CiAgICAtIChSRUFETUUpOiBBZGRlZCB0d28gbmV3IG5hbWVzIHRvIHRoZSB0aGFua3lvdSBsaXN0LgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjM3CiAgICAtIChzZWRzY3JpcHQuaW4pOiBjb3JyZWN0IGluY2x1ZGUgZmlsZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6NTIKICAgIC0gKE1ha2VmaWxlLmluKTogQ1BQIG5lZWRzIHRvIGNoZWNrIGFnZW50L21pYmdyb3VwIGZvciBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjUyOjMyCiAgICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gYWRvcHQgdW5rbm93biBjaGlsZHJlbiBpbnRvIHRoZSBjb3JyZWN0IHBsYWNlIGlmIElNUE9SVFMgYXJlIHNjcmV3ZWQgdXAuCgpoYXJkYWtlciAxNCBBdWcgOTggMDk6MzI6NDUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSmFtZXMgSC4gWW91bmc6CiAgICAgIC0gdXNhZ2Ugb3V0cHV0IGNsZWFuIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjEzOjEzCiAgICAtIChDT1BZSU5HKTogY29weXJpZ2h0IGNoYW5nZS4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxNDowNgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTWFsbG9jIC0+IHhtYWxsb2MuCiAgICAgIC0gcGFyc2VyIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6NTkKICAgIC0gKGF0LmMpOiBmaXhlcyBmb3IgbGludXguCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMzowMgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjI1CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluX2FfdmlldygpOiBjcmVhdGUgbmV3IGZ1bmN0aW9uLCBhbmQgdXNlIGl0LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjUwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfaW1wbC5oKTogZml4IHJlYWQvd3JpdGUgY2hlY2tzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjA0CiAgICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xLnByZTEgKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU1OjUyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmgsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLCBzeXN0ZW0uaCwKICAgICAgdGNwLmMsIHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLAogICAgICBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIG1pYl9hcGkuMywgc25tcF9hcGkuMywKICAgICAgc25tcGQuMS5kZWYsIGZyZWVic2QuaCwgZnJlZWJzZDIuaCwgbmV0YnNkLmgsIGFzbjEuaCwgbWliLmMsCiAgICAgIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwZXMsIGFzIHVzdWFsICh3aGVuIGlzIGV2ZXJ5Ym9keSBzdGFydGluZyB0byB1c2UgLVdhbGwKICAgICAgICAtV3N0cmljdC1wcm90b3R5cGVzIC4uLi4pCiAgICAgIC0gc25tcGQgc2VuZCBhbiBlbnRlcnByaXNlIHNwZWNpZmljIHRyYXAgd2hlbiBpdCB0ZXJtaW5hdGVzCiAgICAgIC0gcG9zc2liaWxpdHkgZm9yIHNlbmRpbmcgdjJjIHRyYXBzIChvciBpbmZvcm1zKSwgdmlhIHRyYXAyc2luayBkaXJlY3RpdmUKICAgICAgLSBmaXhlcyB0byBzbm1wbGliIGFuZCBzbm1wdHJhcGQgZm9yIGJ1Z3MgdW5jb3ZlcmVkIHdoZW4gc25tcGQgc2VuZHMKICAgICAgICBhbiBJTkZPUk0gaW5zdGVhZCBvZiBhIFRSQVAKICAgICAgLSAtbSBhbmQgLU0gb3B0aW9uIGZvciBzbm1wdHJhcGQKICAgICAgLSAtRCBvcHRpb24gZm9yIHNubXB0cmFuc2xhdGUKICAgICAgLSBmaXhlcyB0byBjb25maWd1cmUgdG8gY29ycmVjdGx5IGNhbGwgQUxMIG1vZHVsZSBpbml0IGZ1bmN0aW9ucwogICAgICAtIG1ham9yIHJld29yayBvZiB0Y3AuYywgZm9yIG5ldGJzZC4gSSBob3BlIHRoaXMgaXMgT0sgbm93LCBJIGhhdmVudCBoYWQKICAgICAgICB0aW1lIHRvIHRlc3QgaXQgb24gYWxsIHBsYXRmb3JtcyB5ZXQgLSBidXQgdGlsbCBmcmlkYXkgOi0pCiAgICAgIC0gc25tcG5ldHN0YXQgcHJpbnRzIHVkcCBzb2NrZXQgdGFibGUKICAgICAgLSBzb21lIENNVV9DT01QQVRJQkxFIHN0dWZmCiAgICAgIC0gbWFuIHBhZ2UgZml4ZXMsIHdpdGggYW4gaW5jbHVkZSBsaXN0IHRoYXQgd29ya3MhCgpoYXJkYWtlciAgMiBTZXAgOTggMTA6NTg6MTAKICAgIC0gKHRjcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgIC0gIENvbWJpbmUgdGhlIHR3byAoYWxtb3N0KSBpZGVudGljYWwgbm9uLXNvbGFyaXMgY2FzZXMKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBMaW51eCBlbnRyaWVzIChJbkVycnMvT3V0UnN0cykKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBTb2xhcmlzIGVudHJ5IChPdXRSc3RzKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDExOjAzOjMzCiAgICAtICh0Y3AuYyk6IHJldmVyc2UgRGF2ZSdzIGNoYW5nZXMgc2luY2UgdGhleSBjb25mbGljdCB3aXRoIE5pZWxzJy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTowMwogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiB1c2UgY29ycmVjdCBuYW1lIGluZGV4IGZvciBsb29rdXBzIG9uIHdyaXRlcy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTozMwogICAgLSAoc25tcF9hZ2VudC5jKTogY2hlY2sgdG8gbWFrZSBzdXJlIG9wZXJhdGlvbiBpcyBub3QgYSBTRVQgd2hlbgogICAgICByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBzdWNoIGFzIG5vU3VjaE5hbWUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MDQ6NDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgaW5jbHVkZSBtb2R1bGVzIG5vdCByZXF1ZXN0ZWQgZXZlbgogICAgICBpZiByZXF1aXJlZCBieSBhbm90aGVyIG1vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxNDoxMDo1MwogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUyICkKCmhhcmRha2VyICAyIFNlcCA5OCAxODo0MzozMAogICAgLSAoVE9ETyk6IGFkZGVkIHNlY3VyaXR5IGNoZWNrcy4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDEwOjA5OjQ3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXggZm9yIHNnaSdzLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDE0OjE0OjE5CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBmaXggdG8gYWxsb3cgbm9uLXNvdXJjZSBkaXJlY3RvcnkgYnVpbGRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjEwOjA1CiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGlmZGVmIHJlLW9yZGVyaW5nIGZpeGVzIGZvciBhbHBoYS9saW51eC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0NzowMAogICAgLSAocHJvYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc29sYXJpcyAyLjYgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDg6MDkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhdGNoIHN1YmlkZW50aWZpZXIgY29ycmVjdGx5LgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ5OjA4CiAgICAtIChhc24xLmgpOiByZW1vdmUgX19QKCkgZGVmaW5pdGlvbi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWxsb2MgY29ycmVjdGlvbnMgZm9yIEVOViB2YXJzLi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MToyMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbml0X21pYl9pbnRlcm5hbCgpIGNhbGxzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjUzOjExCiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuIG9uIHdpbjMyIHN5c3RlbSByb3V0aW5lcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIE5VTEwgcmV0dXJuIGJ5IG1hbGxvYyBwcm90ZWN0ZWQuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6MTc6MzYKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBkZXNjcmlwdGlvbiBvZiB0aGUgdmlldyBtYXNrLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICAtIChtZW1vcnlfZnJlZWJzZDIuaCwgdm1zdGF0X2ZyZWVic2QyLmgpOiBjcmVhdGVkIGZyb20gbWVtb3J5LmggYW5kIHZtc3RhdC5oCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6Mjc6NDIKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjo0NzozNwogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaCBmb3Igc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NTQ6MTYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBtYWxsb2MgY2FsbHMgbW9yZSBjYXJlZnVsbHkuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTM6MTU6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBjb25maWcuaCBhcyAkKGluY2x1ZGVkaXIpL3VjZC1zbm1wLWNvbmZpZy5oLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjIxOjE4CiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgpOgogICAgICAtIE1FTVVTRURSRUFMIC0+IE1FTUFWQUlMUkVBTCAodHlwZWRlZiByZW5hbWluZyB0byBtYXRjaCBmdW5jdGlvbmFsaXR5KS4KCmhhcmRha2VyICA3IFNlcCA5OCAxNDowNjoyMQogICAgLSAodGNwLmMpOiBiYWNrIG91dCBOaWVscycgY2hhbmdlcyBzaW5jZSB0aGV5IGJyb2tlIG90aGVyIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MTk6MjQKICAgIC0gKE1ha2VmaWxlLmluKHMpKTogbWFrZSBkZXBlbmRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE2OjM5OjU5CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMpOiA2NGJpdCBsb25nIHJldHVybiBjbGVhbiB1cHMuCgptYXJ6ICA3IFNlcCA5OCAxOTowMTowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4KCm1hcnogIDcgU2VwIDk4IDE5OjAyOjAxCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbixmaXggd2luMzIgY29tcGlsZSBlcnJvciB3LyBub24gaW50ZWdyYWxzd2l0Y2ggY2FzZQoKbWFyeiAgNyBTZXAgOTggMTk6MDM6MzMKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluLCByZXNvbHZlIGNvbmZsaWN0IHcvIHN0ZCBsaWIgbG9nIGZ1bmN0aW9uCgptYXJ6ICA3IFNlcCA5OCAxOTozMDoxMQogICAgcmVuYW1lIGFuZCBzdGF0aWMgbGluayBkZWJ1ZyB0YXJnZXRzLCBkbGwgdG8gYmluIGRpciwgYWRkZWQgc25tcHRlc3QsIHNubXB0cmFwLCBzbm1wZGVsdGEgcHJvamVjdHMKCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdGVzdC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MjY6MTMKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy40IC0+IFYzLjUKCmhhcmRha2VyIDI0IE1heSA5OCAxNToyMjoyMQogICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MzgKICAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6NTcKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjE0OjMyCiAgICAtIChhdC5jKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDogZml4IGZvciBpcml4LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjI0OjU0CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI2OjQ3CiAgICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCgpoYXJkYWtlciAyOSBNYXkgOTggMTE6Mjc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjM0OjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIwOjUzCiAgICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIxOjEzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTo1MQogICAgLSAoc25tcF9pbXBsLmgpOiBjaGFuZ2UgcGR1IHZlcnNpb24gZnJvbSBsb25nIHRvIGludC4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NTo0NQogICAgLSAoYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NjowNwogICAgLSAoc25tcHNldC5jKTogZW5hYmxlIHNldHRpbmcgb2Ygb3BhcXVlIGZsb2F0cywgZG91YmxlcywgaW50NjRzLCB1aW50NjRzLgoKaGFyZGFrZXIgMzEgTWF5IDk4IDE3OjU2OjU1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgoKaGFyZGFrZXIgIDIgSnVuIDk4IDE0OjIzOjE1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBmcmVlYnNkMi5oLCBocHV4LmgsIGxpbnV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gbWFrZSBob3N0IHJlc291cmNlcyB3b3JrIHVuZGVyIE5ldEJTRCwgRnJlZUJTRCwgU29sYXJpcyBhbmQgTGludXguCiAgICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1MToxMAogICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgICBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6CiAgICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjE1CiAgICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjQ0CiAgICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTg6NTkKICAgIC0gKFJFQURNRSk6IG1lbnRpb24gQ3Jpc3RpYW4gRXN0YW4gaW4gdGhlIGNvZGVycyBsaXN0LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjA2OjQ3CiAgICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjEwOjQ4CiAgICAtIChSRUFETUUsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI3OjI3CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6Mjk6MDQKICAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEyOjE3OjAwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6Mzk6MTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogTmV3IGZsYWdzOgogICAgICAtIC0td2l0aC1jYz1DQwogICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NDM6NDcKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgICAtIGNoZWNrIGZvciBnZXRkdGFibGVzaXplIGFuZCB1c2UgYSBnZW5lcmljIGlmIG5vdCBhdmFpbGFibGUuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTI6MjgKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KCmhhcmRha2VyICAzIEp1biA5OCAxMzo1NTo0MAogICAgLSAoaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IHJlbW92ZWQgdGhlc2UgKHVudXNlZCkgaGVhZGVycy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDowMjozNAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjE6MTAKICAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICAgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIzOjE0CiAgICAtIChNYWtlZmlsZS5pbidzKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjQ6NTgKICAgIC0gKE1ha2VmaWxlLmluKTogcmVhZF9jb25maWcubyBpcyBtaWJtb2R1bGUgaGVhZGVyIGRlcGVuZGFudCB0b28uCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjY6MTAKICAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjExCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGVzdCBmb3Igc2V0ZW52LgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjQwCiAgICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IGZvciBsYXJnZXIgdHJlZSBkZXB0aHMuCgpoYXJkYWtlciAgNSBKdW4gOTggMTA6NTQ6MzEKICAgIC0gKGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgIC0gaWZkZWYgd3JhcHBlcnMgZm9yIE9QQVFVRV9TUEVDSUFMX1RZUEVTLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEwOjUwOjEyCiAgICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCgpoYXJkYWtlciAgOCBKdW4gOTggMTI6MzQ6MDkKICAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjA4CiAgICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjI1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxMjozNwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjE2OjI2CiAgICAtIChsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogdzMyIHVwZGF0ZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoyMjo1MAogICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICAgZnJvbSBKb2UgTWFyem90OgogICAgICAtIGFzeW5jIHN0dWZmIGFkZGVkLgogICAgICAtIGdldF90YyBhZGRlZC4KICAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6NTU6NTMKICAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCgpoYXJkYWtlciAxMCBKdW4gOTggMDc6MTE6NDQKICAgIC0gKGNvbmZpZy5oLmluKTogaGF2ZV9zZXRlbnYuCgpoYXJkYWtlciAxMCBKdW4gOTggMDg6NTM6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAgLSAgZG9lcyBhIGJpdCBvZiAnY29kZSB0aWR5aW5nJy4KICAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE0OjE1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUyICkKCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMDo1OQogICAgLSAoVE9ETyk6IGFkZGVkIERhdmUncyBsaXN0LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjMxOjEyCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IC1XYWxsIGNsZWFudXBzLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDA4OjUyOjI4CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVwZGF0ZSBmb3IgVkFDTSBzdHVmZi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHNob3cgdmFjbSBleGFtcGxlIGZvciBwdWJsaWMvcHJpdmF0ZSBmcm9tIGFueXdoZXJlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEwOjEyOjQwCiAgICAtIChORVdTKTogbWlub3IgdXBkYXRlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjEyCiAgICAtIChzbm1wX2FwaS5jKTogdHJhcCB0eXBlcyB3ZXJlIGludCdzIG5vdCBsb25ncyAoZmFpbGVkIHVuZGVyIDY0Yml0IGFyY2gpLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjI3CiAgICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjM5CiAgICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjU3CiAgICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6NDM6NDEKICAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQ4OjIxCiAgICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDE1OjE3OjQ3CiAgICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgYSB1Y2RFeHBlcmltZW50YWwgc2VjdGlvbiBmb3IgdGhlIGlwZndhY2MgbWliIHRpbGwKICAgICAgICBpdCBzdGFiaWxpemVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjIzCiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjU4CiAgICAtIChzbm1wZGVsdGEuYyk6IHVzYWdlKCkgdXBkYXRlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjAyCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICAgc25tcGdldG5leHQuMSwgc25tcHNldC4xLCBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcC4xLAogICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjU0CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJjb3B5IC0+IG1lbWNweS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMToyMgogICAgLSAobWliLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MjE6NTMKICAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgICBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDE1OjI3OjEzCiAgICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQxOjAwCiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQ2OjMxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjU4OjA1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBleGFtcGxlIG91dHB1dCBjb3JyZWN0aW9ucy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1OTo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6MDM6NDgKICAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMjo1MDo1NQogICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTM6MjIKICAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzowMTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxMjo1NQogICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4zIC0+IFYzLjQKCmhhcmRha2VyICAxIERlYyA5NyAxMjo0NDoyNAogICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KCmhhcmRha2VyICA1IERlYyA5NyAwODo0Njo1MAogICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWFrZSB0cmFwIHZhcmlhYmxlcyBsb25nJ3Mgbm90IGludHMgZm9yIDY0Yml0IG1hY2hpbmVzIHRvIG1hdGNoCiAgICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgNSBEZWMgOTcgMTE6NTg6NTIKICAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMTQ6MzA6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjA4OjAxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBtYWNybyB0byBjaGFuZ2UgZGVmYXVsdCBNSUJTIHdoZW4gbW9kdWxlcyBhcmUgY29tcGlsZWQ6CiAgICAgICAgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODoxOQogICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgICAtIHVzZSBjb25maWdfYWRkX21pYigpLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjE0OjE4CiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gdG8gaW1wcm92ZSBpcml4IDYuMiBzdXBwb3J0LgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjI2CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbik6IFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjU5CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjIwOjA0CiAgICAtIChocl9zd3J1bi5jKTogQ29ycmVjdCBhIG5vbi1jYXN0ZWQgbWFsbG9jLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjMzOjU5CiAgICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjM1OjI2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluKTogQlNESSBkZWZpbml0aW9uIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQxOjQ5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjoyOAogICAgLSAobWliZ3JvdXAvKi5jLCBjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjozOQogICAgLSAoc25tcHRyYXAuYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQyOjU0CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDY6MDgKICAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCgpoYXJkYWtlciAyMyBEZWMgOTcgMTI6MzI6MjEKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAgLSBFbmFibGUgbG9nZ2luZyB0byBvdGhlciBzeXNsb2cgZmFjaWxpdGllcy4KICAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjQ4OjMxCiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDA6MzYKICAgIC0gKFJFQURNRSk6IEFkZCBUZWQgUnVsZSB0byBjb2RlcnMgbGlzdC4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0Mjo0NwogICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICAgdHVybmVkIG9uIGFuZCBvZmYgYXQgcnVuIHRpbWUuCiAgICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgICAtIGludCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKS4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NDozOAogICAgLSAoc25tcGQuMS5kZWYsIHNubXB0cmFwZC44KTogZGVidWdnaW5nIGZsYWcgYWRkaXRpb25zLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQ3OjA4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6Mjc6NTQKICAgIC0gKGF0LmMsIGF0LmgsIGhvc3RfcmVzLmgsIGljbXAuaCwgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6NTY6MTgKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydAogICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU5OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNjozMDo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCgpoYXJkYWtlciAyOSBEZWMgOTcgMDk6Mzc6MDYKICAgIC0gKHRrbWliKTogRmlyc3QgaW1wbGVtZW50YXRpb24uCgpoYXJkYWtlciAzMCBEZWMgOTcgMTQ6MDA6MDMKICAgIC0gKHRrbWliKToKICAgICAgLSBuZXcgY29tbWFuZDogdGFibGUgdG8gZGlzcGxheSBzbm1wdGFibGVzIGFzIGEgdGFibGUuCiAgICAgIC0gbWlzYy4uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE3OjAxOjU3CiAgICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyNzozOAogICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjAwCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IGFkZCBhIGZpbmRfbW9kdWxlKCkgcm91dGluZS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODoyMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjQyCiAgICAtIChUT0RPKTogc25tcHYzCgpoYXJkYWtlciAgNSBKYW4gOTggMTY6Mjk6MzkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGFzbjFfYnVpbGRfb2JqaWQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTc6MzM6MDcKICAgIC0gKHBhcnNlLmMpOiBzd2FwIGFyZ3MgdG8gbWVyZ2VfYW5vbl9jaGlsZHJlbigpLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE0OjU0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIGZpeCBhbm9uX2NoaWxkcmVuIGludmFsaWQgbWVtb3J5IGFjY2Vzcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxODo1MAogICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOTo0NwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgdW51c2VkIGhlYWRlcnMuCiAgICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToyMTo1NgogICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGhlYWRlcnMgZm9yIEZyZWVCU0QgYW5kIE5ldEJTRC4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo0MDozNgogICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDE6MzgKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDQ6NTEKICAgIC0gKGFzbjEuYywgbWliLmMsIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMKICAgICAgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTE6MjcKICAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo1NjoxNAogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNyZWFzZSBidWZmZXIgc2l6ZSB0byBpbmNyZWFzZSBtYXggaW50ZXJmYWNlcyByZXBvcnRlZCBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTYgSmFuIDk4IDA5OjQ0OjU2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgICAtIHNpZ25hbCBhIHRyYXAgKDIpIHdoZW4gdGhlIGFnZW50IGlzIHNodXQgZG93bi4KCmhhcmRha2VyIDIxIEphbiA5OCAxMTowODozOQogICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjowMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgICBjb25maWd1cmUuaW4pOgogICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MjIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjozNAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTc6MzM6MjQKICAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KCmhhcmRha2VyIDIxIEphbiA5OCAyMjowNTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgIGluY2x1ZGUgZmlsZXMgYmFzZWQgb24gdGhlIGNvbmZpZy5ndWVzcyBvdXRwdXQuCgpoYXJkYWtlciAyMyBKYW4gOTggMDg6MzA6MzUKICAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOToxMgogICAgLSAoZ2VuZXJpYy5oLCBpMzg2LmgsIGk1ODYuaCwgaTY4Ni5oKTogbS8qLmggZmlsZSBiZWdpbm5pbmdzLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDExOjE5OjMzCiAgICAtIChic2QuaCwgZ2VuZXJpYy5oLCBsaW51eC5oLCBzeXN2LmgpOiBzLyogYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxMjowMgogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAgLSByZWdpc3Rlcl9zdWJ0cmVlKCkKICAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgICAtIGdldCByaWQgb2YgcmVhZF9jb25maWcgc3BlY2lhbCBzdHVmZiBmb3IgZXh0ZW5zaWJpbGl0eSBhbmQgcHV0IGl0CiAgICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTQ6MjAKICAgIC0gKHJlZ2lzdHJ5LltjaF0sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxNTowNQogICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1Y2Rfc25tcC5oLCB1ZHAuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MzQ6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1ha2UgdGhlIG1pYiByZWdpc3RyeSByZWNvcmQgYW5kIGRpc3BsYXkgYSBtaWIgbW9kdWxlIG5hbWUgYXMgd2VsbC4KCmhhcmRha2VyIDMwIEphbiA5OCAwODo1Nzo1NAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0ZXN0IGZvciAncHMgYXV4JyAocmVkaGF0IDUuMCkuCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MDE6MDYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIHJlcG9ydCBjYWNoZWQsIGJ1ZmZlciwgYW5kIHNoYXJlZCBzdGF0aXN0aWNzIGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAwOToyNDoxOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gbmV3IHN1YnRyZWUgc3RydWN0dXJlIHN5c3RlbS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MDoyNgogICAgLSAocGFzcy5jKTogcHV0IHBhc3NfY29tYXByZSBoZXJlLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQxOjUzCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDI6MTcKICAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQzOjI4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlIG1vZHVsZSBpbmRleGluZyB0byB1c2Ugb2lkIGluc3RlYWQgb2YgYSBudW1lcmljLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQ5OjU5CiAgICAtIChkaXNrLmMsIGhvc3RfcmVzLmgsIHBhc3MuYywgcmVnaXN0cnkuYywgc25tcF9taWIuYywgc3lzdGVtLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo1NToyMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCgpoYXJkYWtlciAzMCBKYW4gOTggMTM6NDk6NTYKICAgIC0gKFJFQURNRSk6IEkgY2FuJ3QgcmVhbGx5IGhhdmUgZm9yZ290dGVuIFNpbW9uJ3MgbmFtZSBpbiB0aGUgbGlzdAogICAgICBjb3VsZCBJPwoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjUwOjI4CiAgICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMxOjU4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCgpoYXJkYWtlciAzMCBKYW4gOTggMTQ6MzI6MTMKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpbmlzaCBsaW51eCBwcm9ibGVtcyBhbmQgdXNlIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE1OjI1OjAyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgoKaGFyZGFrZXIgIDIgRmViIDk4IDA4OjU3OjQxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTM6Mjk6NDAKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjQ0OjQ0CiAgICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgIHRvIGFuIGlmZGVmIGVycm9yLgoKaGFyZGFrZXIgIDYgRmViIDk4IDE3OjEwOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwgYXV0b25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX3ZhcnMuYywgaXAuYyk6CiAgICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMToyNQogICAgLSAoZ2VuZXJpYy5oLCBocHV4LmgsIGlyaXguaCwgbGludXguaCwgc29sYXJpcy5oKToKICAgICAgLSB1cGRhdGUgZm9yIGF1dG9fbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzowMgogICAgLSAoYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLAogICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHVzZSBhdXRvX25saXN0LgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjAzOjE3CiAgICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzo1NgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgIC0gZGlzcGxheSBhcmd1bWVudHMgZm91bmQgZm9yIC0tZW5hYmxlLXNoYXJlZC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNDozMQogICAgLSAoYnNkLmgsIGJzZGkuaCwgZnJlZWJzZC5oLCBmcmVlYnNkMy5oLCBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgsCiAgICAgIHNvbGFyaXMuaCk6CiAgICAgIC0gZGVmaW5lIHN5bWJvbHMgZm9yIGF1dG9fbmxpc3QgdG8gdXNlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjA2OjUzCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTc6NTIKICAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE4OjQ1CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaW9jdGxzLmgKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo1OQogICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjIwOjAwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjE5OjMzCiAgICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBmaXggYWxsIG15IHR5cG9zIDstKS4KICAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODowOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODozMwogICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBjb25maWcuaAoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI4OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHNvbGFyaXMgZml4ZXMuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjk6MDYKICAgIC0gKHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdW5kZWYgSVBfRk9SV0FSRElOR19TWU1CT0wgYmVmb3JlIGRlZmluaW5nIGl0LgoKaGFyZGFrZXIgMTEgRmViIDk4IDE2OjQ0OjEzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCgpoYXJkYWtlciAxMyBGZWIgOTggMDk6MDc6MzEKICAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjUzOjEyCiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgICAtIG1hbGxvYyB0aGUgc3ltYm9sIHJhdGhlciB0aGFuIHVzaW5nIGEgZml4ZWQgbGVuZ3RoLgogICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjU0OjAxCiAgICAtICh0Y3AuYywgdWRwLmMpOgogICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODowNjowMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgICBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE1OjU2CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBjaGVjayBmb3Igc3lzL3N5c21wLmguCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTY6MjEKICAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTg6MDUKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIHBvcnQgdG8gaXJpeC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0NToyMAogICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0Njo0OAogICAgLSAoc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYpOiBjaGFuZ2UgdG8gREFUQURJUiBmcm9tIExJQkRJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozMTowNwogICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjM0OjU1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjQ0OjEzCiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gYWxsIGJjb3B5cyAtPiBtZW1jcHkuCiAgICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDoyNTo1MwogICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIG1lbW9yeS5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgICB2bXN0YXQuYyk6CiAgICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAgLSBiemVybyAtPiBtZW1zZXQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MDUKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDozMjozOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyODo1MQogICAgLSAob3BlbmJzZC5oKTogY3JlYXRlZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyOTo1OAogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVtb3ZlZCB1bm5lZWRlZCBzdHVmZi4KICAgICAgLSBhZGRlZCBvcGVuYnNkLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMwOjQ3CiAgICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAgLSB0cmllZCB0byBtZXJnZSBzb21lIHRoaW5ncyBpbnRvIHMvKi5oIGRlZmluZXMgaW5zdGVhZC4gIFRoZXJlIGlzIGEKICAgICAgICBsb3QgdG8gZ28gc3RpbGwuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6MzM6MTQKICAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjQzCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6NTE6MTgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTQgKQoKaGFyZGFrZXIgMjAgRmViIDk4IDA5OjE5OjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgoKaGFyZGFrZXIgMjAgRmViIDk4IDExOjE1OjE0CiAgICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgoKaGFyZGFrZXIgMjUgRmViIDk4IDA3OjI3OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggcmVhZF9jb25maWcgcGFyc2VyJ3MgZW5kIG9mIGxpbmUgcHJvYmxlbXMuCgpoYXJkYWtlciAgNCBNYXIgOTggMTU6NDk6MzIKICAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KCmhhcmRha2VyICA2IE1hciA5OCAxNDowMTo1MgogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgICBldmVudC5jLCBleHRlbnNpYmxlLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgICBpZi5jLCBpbmV0LmMsIHJvdXRlLmMsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0YWJsZS4xLCAuaW5kZXgsCiAgICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsCiAgICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgdmFjbS5jLCB2YWNtLmgsCiAgICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjAxCiAgICAtICh1dGlsX2Z1bmNzLmMpOgogICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjE5CiAgICAtIChtaWJJSS5oKTogYWRkIHZhY21fdmFycy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0Nzo0MAogICAgLSAoaG9zdF9yZXMuaCk6IG1vdmUgc25tcF9hcGkuaCB1cCBhYm92ZSBzbm1wX2ltcGwuaC4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0ODozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgoKaGFyZGFrZXIgIDkgTWFyIDk4IDE3OjQwOjA0CiAgICAtIChtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAgLSByZWdpc3RlciBtaWJzIHVuZGVyIGl0LgoKaGFyZGFrZXIgMTEgTWFyIDk4IDA4OjA2OjE3CiAgICAtICgqLyovKi8qKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAgLSBsZWF2ZSBtaWIgYWNjZXNzIG9wZW4gaWYgbm8gY29tMnNlYyBzdGF0ZW1lbnRzIHdlcmUgZm91bmQgaW4gc25tcGQuY29uZi4KCmhhcmRha2VyIDExIE1hciA5OCAwOTo0MDo0MgogICAgLSAoaHB1eC5oLCBocl9maWxlc3lzLmgsIG1lbW9yeS5oLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KCmhhcmRha2VyIDExIE1hciA5OCAxMDozMDo1MAogICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gZml4IHRpbWUgdmFsdWVzIGFuZCBtb3ZlIHN5c09STGFzdENoYW5nZWQgdG8gdGhlIHN5c3RlbSBncm91cC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjoxNDowOQogICAgLSAoKik6IFBhdGNoIGZyb20gQ3JhaWcgQmV2aW5zIGZvciBPcGVuQlNECgpoYXJkYWtlciAxMSBNYXIgOTggMTI6Mjc6MDEKICAgIC0gKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmgpOiBQYXRjaCBmcm9tCiAgICAgIENyYWlnIEJldmluczoKICAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NDU6NDYKICAgIC0gKCopOiBwYXRjaCBmcm9tIEdhcnJldHQgV29sbG1hbiBmb3IgRnJlZUJTRC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjo1NjozNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gR2FycmV0dAogICAgICBXb2xsbWFuOgogICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE0OjQxOjExCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLAogICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHYycGFydHkuYywgdjJwYXJ0eS5oLAogICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAgLSBmaXhlZCB0aGluZ3MgYnJva2VuIGJ5IHRoZSBmcmVlYnNkIHBhdGNoIChvbmx5IHNvbWUgSSdtIHN1cmUpLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjQyOjM1CiAgICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKCmhhcmRha2VyIDExIE1hciA5OCAxNTo0NToyMgogICAgLSAoaHB1eC5oKTogc3dpdGNoIGluY29ycmVjdCBhcnB0YWIgc3ltYm9scy4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo1NjoxMwogICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTc6MTYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE3OjA1OjQxCiAgICAtIChzeXN0ZW0uYyk6IGRvbid0IGNob21wIG5ldyBsaW5lIG9uIHJlYWRfY29uZmlnIHV0aWxzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDA5OjE3OjQyCiAgICAtIChSRUFETUUpOiBjaGFuZ2VkIE9WIHBhdGgncyB0byBuZXdlciByZWxlYXNlIHBhdGhzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjEwOjM1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjI2OjIyCiAgICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzo1NjoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jLAogICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgICBjb25maWcuaCk6CiAgICAgIC0gU05NUExJQlBBVEggLT4gU05NUFNIQVJFUEFUSAogICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgoKaGFyZGFrZXIgMTggTWFyIDk4IDE0OjA5OjMxCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKCmhhcmRha2VyIDIyIE1hciA5OCAxODoxMzo0MQogICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBtb3ZlIHN5cy90eXBlcy5oIHVwIGZvciB1bHRyaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMDk6MTU6NDUKICAgIC0gKHRjcC5jKTogaW5jbHVkZSB0Y3BpcC5oIGZvciBkaWdpdGFsIHVuaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6MTMKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgICAtIGNyZWF0ZSBhIHdvcmtpbmcgZmluZF9zdWJ0cmVlKCkgYW5kIGZpbmRfc3VidHJlZV9uZXh0KCkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ0OjA2CiAgICAtIChzbm1wZC5jLCBzbm1wX2FwaS5jKTogU3BlbGxpbmcgZXJyb3JzIGZyb20gdGhlIENNVSBjb2RlIGZpeGVkLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ2OjM2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjU5OjIwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEyOjQ4OjMwCiAgICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMzowNzowMAogICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KCmhhcmRha2VyIDI1IE1hciA5OCAxNjo0OTo1NgogICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KCmhhcmRha2VyIDI2IE1hciA5OCAwNzoyMjozMAogICAgLSAoKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgICAtIHJldmVyc2UgYWxsIHN0cmluZy5oL3N0cmluZ3MuaCBpbmNsdWRlIHBvc3NpYmlsaXRpZXMuCgpoYXJkYWtlciAyNyBNYXIgOTggMDk6MjA6MDQKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgIHN0ZGluIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0cmFwLgogICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjA6MjEKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgIG5mcyBtb3VudGVkLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjU0CiAgICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjI6MzUKICAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6MTA6MDUKICAgIC0gKFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKTogUGF0Y2ggZnJvbQogICAgICBBcnRodXIgSHl1bjoKICAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjAzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgICAtIGNvcnJlY3RseSAjaWZkZWYgb3V0IHRoZSB0Y3B3cmFwcGVycyBwYXRjaC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjo0MjoxMwogICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDM6MDYKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMDk6NTI6MzIKICAgIC0gKHNubXBfY2xpZW50LmMpOiBlbnRlcnByaXNlX2xlbmd0aCBpcyBzaXplb2Yob2lkKSBkZXBlbmRlbnQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6Mjc6MDcKICAgIC0gKGF1dG9fbmxpc3QuYyk6CiAgICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6MzE6MjkKICAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NDc6NTUKICAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1MzoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHZhY20gZXhhbXBsZSBjb25maWd1cmF0aW9uLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjU0OjExCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMDowNwogICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjQwOjQ0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIHVucmVnZXN0ZXJpbmcgb2YgbWlicyB3b3JrLgogICAgICAtIChpbiBtb3N0IGNhc2VzIDotPykKCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MzoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCgpoYXJkYWtlciAgMSBBcHIgOTggMTY6MzU6NTkKICAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDEwOjMxOjA4CiAgICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgICBiZSBsb2FkZWQuCgpoYXJkYWtlciAyMCBBcHIgOTggMTU6NTQ6MjkKICAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgICB0byBmb2xsb3cpCiAgICAgICAgLSBSZS1zdHJ1Y3R1cmVzIHRoZSBEaXNrIHNlYXJjaGluZywgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBzZXQgdXAKICAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgICAtIEhhbmRsZSBwYXJ0aXRpb25zIHNlbnNpYmx5IChhcnRoZXIgdGhhbiBvbmUgcGVyIGRpc2spCiAgICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU2OjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU5OjEyCiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBzb21lIGhvc3QgcmVzb3VyY2VzIGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAwOjM2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhcHByb3ByaWF0ZSB1c2Ugb2Ygc3RyZHVwIGR1cmluZyBzdGFydHVwIGFuZCBiZXR0ZXIgZmxhZyBjaGVja2luZy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDo1NgogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgbW92ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDI6MTIKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDM6MDMKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MDAKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAgLSBzeXNsb2cgJWQgLT4gJWxkIGZvciBsb25nIHNwZWNpZmljX3R5cGUuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MzQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDY6MDMKICAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjIxCiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHVuZGVmaW5lIGEgYnVuY2ggb2Ygbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNzoxMAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmVlZGVkIHBvaW50ZXIgY29waWVzLgoKaGFyZGFrZXIgMjIgQXByIDk4IDA3OjQ5OjIxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk4IDA4OjM1OjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZSBCSVRTIGtleXdvcmRzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1pYiBvaWQgbG9jYXRpb24gdXBkYXRlcyBmb3IgdWNkLXNubXAgbWliLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAyOjI5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgIC0gY29tbWVudGVkIG9uIHRoZSBkZXNnaW4gb2YgdGhlIG1pYiBhdCB0aGUgdG9wLgogICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgIC0gcmVtb3ZlZCB2bXN0YXQgc2VjdGlvbiB0aWxsIGl0IGdldHMgaW1wbGVtZW50ZWQuCiAgICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDoyMjowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDowMzoyNgogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMyOjEyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MDgKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZGVmaW5lIE1BWFBBVEhMRU4uCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MjQKICAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjU4CiAgICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6MzE6MzAKICAgIC0gKHRjcC5jKTogaW5jbHVkZSBuZXRpbmV0L3RjcGlwLmggZm9yIERVNC4wLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMyOjA1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgICAtIHJldHVybiB0aGUgdmFsdWUgZnJvbSBhdXRvX25saXN0X3ZhbHVlIGFzIGFuIHVuc2lnbmVkIGxvbmcuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6NDA6NDUKICAgIC0gKHZhcl9yb3V0ZS5jKTogd2F0Y2ggb3V0IGZvciBzaW5nbGUgcm91dGUgbG9vcHMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTA6NTk6MTkKICAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZWQgdW5uZWVkZWQgdmFyaWFibGUuCgpoYXJkYWtlciAyNyBBcHIgOTggMTE6MDA6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjQ0CiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEzOjMxOjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU3ICkKCmhhcmRha2VyIDI3IEFwciA5OCAxNjoyNDozNAogICAgLSAodGttaWIpOiBidWcgZml4ZXMgYW5kIG5ldyBtaWIgbWVudSB0byBsb2FkIG5ldyBtaWJzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ2OjI4CiAgICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ4OjAyCiAgICAtICh0a21pYik6IGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAwODo1Njo0NAogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6MjY6NTgKICAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjM0OjEyCiAgICAtIChleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAgLSBubGlzdCBjbGVhbnVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDo0MzowNAogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDExOjMxOjQzCiAgICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMjowMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTo0MTo1OAogICAgLSAodGttaWIpOgogICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgICAtIGRvbid0IHRyeSB0byBsb2FkIGEgZmlsZSBvbiBhIGNhbmNlbC4KCmhhcmRha2VyICA2IE1heSA5OCAxMToyMjo1NgogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRrbWliLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDE0OjA2OjU3CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgICAtIG1pYiBudW1iZXIgY29ycmVjdGlvbnMgdG8gbWF0Y2ggdGhlIHNvdXJjZS4KCmhhcmRha2VyICA2IE1heSA5OCAxNDo1ODoyMwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgIC0gcmVtb3ZlIHRoZSBuZXduYW1lIHJlcXVpcmVtZW50IGZyb20gY2hlY2ttaWIoKS4KICAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA2OjU5CiAgICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDc6MjgKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA4OjM3CiAgICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIyOjI4OjQ3CiAgICAtICh3aW4zMi9jb25maWcuaCk6IHVwZGF0ZSBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDU6NTUKICAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzowNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA3OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCgpoYXJkYWtlciAgOCBNYXkgOTggMTA6NTc6NDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgoKaGFyZGFrZXIgIDggTWF5IDk4IDExOjAxOjI0CiAgICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCgpoYXJkYWtlciAgOCBNYXkgOTggMTQ6NTM6MzYKICAgIC0gKGRpc2suYyk6IHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjM3CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDg6NTMKICAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDk6NTgKICAgIC0gKG1pYjJjKToKICAgICAgLSBjb3VudGVyNjRzLgogICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgICAtIG1vcmUgZXJyb3Igc3RpbmdzIGluIGFsbCBmaWxlcyBmb3IgdW5rbm93biB2YXJpYWJsZSB0eXBlcy4KCmhhcmRha2VyIDExIE1heSA5OCAwODoxMDozMAogICAgLSAocGFyc2UuYyk6IG9wYXF1ZSdzIGNhbiBoYXZlIGEgc2l6ZSBzcGVjaWZpZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6NDYKICAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6Mjk6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKCmhhcmRha2VyIDExIE1heSA5OCAxMDozMDowMQogICAgLSAoaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgIFdhcm5pbmc6IHRoZSBwcm9jIHBhcnQgc3RpbGwgZG9lcyBub3Qgd29yayB3aXRoIFNvbGFyaXMhCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MzcKICAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMxOjMzCiAgICAtIChTTk1QdjItVEMudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMjoyNwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozNDozOAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgIENpc2NvIE1JQiAoQ0lTQ08tSVBNQ0FTVC1NSUIpIHRoYXQgSSBoYWQgYmVlbiB1c2luZyAoaXQgbmVlZHMgYW4KICAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAgLSByZXdyaXRlIG9mIHRoZSBwYXJzZXJzIGxleGljYWwgYW5hbHlzZXIsIHRvIGNvcnJlY3QgdGhlIGVycm9ycyB0aGF0CiAgICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgICBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdAogICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1MjoxNgogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1Mjo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjEwOjQyCiAgICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjExOjEwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMTozMgogICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjIxCiAgICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6NDU6NTEKICAgIC0gKHNubXBfYXBpLmMsIHN5c3RlbS5jKToKICAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDE1OjE0OjQ4CiAgICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgIC0gaW5jbHVkZSB0aW1lLmggcHJvcGVybHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHV0aWxfZnVuY3MuaCB0byBkbyBpdC4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNTowMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6MjIKICAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6NDIKICAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgcmV0dXJuIGEgY291bnRlcjY0IHRvIGEgc25tcHYxIHJlcXVlc3QuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MDkKICAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMjoxNwogICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjU6MzkKICAgIC0gKG1pYi5jKTogc3ByaW50X2J5X3R5cGUoKSBkaWRuJ3QgaGFuZGxlIGNvdW50ZXI2NCdzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA3OjE3OjM0CiAgICAtIChtZW1vcnkuYyk6IG1vdmUgc3lzL3BhcmFtLmggdXAgYWJvdmUgZnMuaCBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIxOjU1CiAgICAtIChGQVEpOiBuZXcgRkFRIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIyOjA4CiAgICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjI1OjU3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IHR5cG9zLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjEzOjE2CiAgICAtIChwYXJzZS5jKTogc2luZ2xlIHF1b3RlIG1pc3NpbmcgbW9kdWxlIG5hbWVzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE3OjM2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYW5zbGF0ZS4xLAogICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFuc2xhdGUgc3VwcG9ydHMgLVIgYW5kIC1yLgogICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAgLSBmaXhlZCBocl9zeXN0ZW0gdG8gY29tcGlsZSBvbiBTdW5PUzQuCgpoYXJkYWtlciAxNSBNYXkgOTggMTA6MTk6MDUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBwcm92aWRlIGFiaWxpdHkgdG8gZG8gcmFuZG9tIHNlYXJjaGVzIHNwZWNpZnlpbmcgYSBtb2R1bGUgbmFtZSB0byBsb29rIGluLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE3OjQ0CiAgICAtIChGQVEsIG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCgpoYXJkYWtlciAxNSBNYXkgOTggMTE6MTk6MTAKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsCiAgICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgICBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDExOjE4OjIxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBydGVudHJ5IHN0cnVjdHVyZSB0ZXN0IG9uIHJlLWNvbmZpZ3VyZXMuCgpoYXJkYWtlciAxOCBNYXkgOTggMTM6MTM6MTgKICAgIC0gKGhyX3N3aW5zdC5jKTogcHJvdGVjdCB1c2luZyB0aGUgZGF0ZSBwb2ludGVyIGFnYWluc3QgTlVMTCBzZXR0aW5ncy4KCmhhcmRha2VyIDE4IE1heSA5OCAxNTozOTozOAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOSApCgpoYXJkYWtlciAxOCBNYXkgOTggMTg6MTQ6MTkKICAgIC0gKGludDY0LmMpOgogICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgoKaGFyZGFrZXIgMTkgTWF5IDk4IDEwOjQxOjE0CiAgICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MTo0OQogICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozMzowMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGV4dGVuZCByYW5kb20gbG9va3VwcyBmdXJ0aGVyLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM0OjMxCiAgICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNjoxNAogICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM3OjMzCiAgICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KCmhhcmRha2VyIDIwIE1heSA5OCAwODoyNTo0MQogICAgLSAocmVhZF9jb25maWcuYyk6IGNvbmZpZ19wZXJyb3IoKSAtPiBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyB0b2tlbnMuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6Mjc6MDYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4yIC0+IFYzLjMKCndoYXJkYWtlIDExIEp1biA5NyAwNDo1Mzo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KCndoYXJkYWtlIDExIEp1biA5NyAwNTo0NjoxOAogICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQwOjI4CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQxOjU4CiAgICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQyOjM2CiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgoKd2hhcmRha2UgMjYgSnVuIDk3IDIzOjM5OjMyCiAgICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1Mzo1NwogICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICAgc25tcGxpYi9zbm1weyxfYXBpLF9hdXRofS5jKToKICAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA1OjU0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMpOiBEb24ndCBwdXQgJiBpbiBmcm9udCBvZiBvc2Y0IGFjX2VuYWRkci4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjozMzowOAogICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAgLSBBbHNvIG1ha2VzIHN1cmUgaXQgaGFuZGxlcyB1cCBhbmQgbG93ZXIgY2FzZXMuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6Mzg6NDMKICAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NDk6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAgLSBpbXBsZW1lbnQgbWVtb3J5IHNlY3Rpb24gb2YgdWNkIG1pYiBvbiBsaW51eC4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjo1ODo0OQogICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA3OjE5OjUxCiAgICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgICAtIE1hbGxvYyB0eXBlY2FzdHMgYW5kIG90aGVyIGNvcnJlY3Rpb25zIGluIGNhc3RpbmcuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDE6MTA6MDAKICAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNTo0MTo1OAogICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBmaXggZnJlZWJzZDMgc3BlY2lmaWMgcHJvYmxlbXMgKGJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gQmlsbCBGZW5uZXIpLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA2OjAyOjU3CiAgICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjo0MTo0NAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNzoyMDoyNQogICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDg6Mzc6NTEKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQoKd2hhcmRha2UgIDMgSnVsIDk3IDIzOjMzOjIzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAgLSBOZXcgb3B0aW9uIHRvIHNubXB0cmFuc2xhdGUgKC1hKSB0byBvdXRwdXQgYSBhc2NpaSBkdW1wIG9mIHRoZSBtaWIKICAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KCndoYXJkYWtlICAzIEp1bCA5NyAyMzozNDoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMiApCgp3aGFyZGFrZSAyNCBKdWwgOTcgMjM6NTA6NDgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDA6Mjk6MjQKICAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMToxMTo1NAogICAgLSAoY29uZmlnKiwgbG9hZC5jLCBkaXNrLmMsIHBhcnNlLmMsIHNubXAuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgICAtIHRlc3QgZm9yIHRlc3QgZmxhZ3MgZm9yIGtlcm5lbCBjaGVja2luZy4KICAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAxOjMzOjM4CiAgICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMjozNDo0NQogICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAoKd2hhcmRha2UgMTMgQXVnIDk3IDA0OjQ3OjQ5CiAgICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCgp3aGFyZGFrZSAxMyBBdWcgOTcgMDg6MTE6NDIKICAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZSB2ZXJzaW9uIHN0cmluZyB0byBhIGdsb2JhbCBoZWFkZXIuCiAgICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgICBpbnN0YWxsZWQuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDA6NDY6MzgKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAgLSBhZGQgLVYgdmVyc2lvbiBmbGFnZS4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwNzozODoxNwogICAgLSAoY29uZmlnKiwgRkFRLCBSRUFETUUsIGFnZW50L21pYmdyb3VwLyouYywgYXBwcy8qLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgICAtIGZpeCBtb3JlIHR5cGUgY2FzdGluZyBwcm9ibGVtcy4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNTo0MgogICAgLSAoY29uZmlndXJlKik6CiAgICAgIC0gVHlwbydzIHdoZW4gY29weWluZyBpbiBhIGF1dG9jb25mIHRlc3QuCiAgICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICAgYmVnaW5uaW5nIHdpdGggdGhlIGxldHRlciBvLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjEyCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBQb2ludCBvdXQgdGhhdCBtaWIgbGlzdCBtdXN0IGJlIGluIGRlc2NlbmRpbmcgb3JkZXIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTY6MzcKICAgIC0gKHByb2MuYyk6IGRvbid0IHVzZSBzZXRlcnJvcnN0YXR1cygpIGlmIG5vdCB1c2luZyB0aGUgZXJyb3JtaWIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MjE6MjYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCgp3aGFyZGFrZSAxNSBBdWcgOTcgMDI6MzA6NTkKICAgIC0gKGNvbmZpZyosIHNubXBkLmMsIHNubXBfY2xpZW50LltjaF0sIHN5c3RlbS5bY2hdKToKICAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgICBkZWZpbmVkLgoKd2hhcmRha2UgMTUgQXVnIDk3IDA2OjQ2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMToyMwogICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIxOjQxCiAgICAtICh2ZXJzaW9udGFnKTogY2hlY2tpbiB2ZXJzaW9uLmguCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTU6MjMKICAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTY6MzYKICAgIC0gKHBhcnNlLmMpOiBGcm9tIERhdmUgU2hpZWxkczoKICAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTk6MTYKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCk6IGR5bml4IGRvZXNuJ3QgaGF2ZSBuZXQvcm91dGUuaC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToyMTo1NwogICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjMzOjAzCiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAgLSBtaW5vciBsaW51eC9uZXRic2QvYnNkaSBjbGVhbiB1cHMuCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTA6MDgKICAgIC0gKHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmMpOiBGcm9tIE5pZWxzOiB3YXJuaW5nIHJlbW92YWxzIGFuZCBzdGFuZGFyZGl6YXRpb24uCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTg6MzYKICAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6IFBhdGNoIGZyb20gTmllbHM6CiAgICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgoKaGFyZGFrZXIgMTUgT2N0IDk3IDEyOjEyOjAyCiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIG5ldyBmdW5jdGlvbjogIHNubXBfcGVycm9yKGNoYXIgKikKICAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDE4OjQwOjM4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ociopOiBIb3N0IHJlc291cmNlcyBtaWIgZnJvbSBEYXZlIFNoaWVsZC4KICAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCgpoYXJkYWtlciAyMCBPY3QgOTcgMTE6NDU6NTgKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjUxOjM0CiAgICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICAgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB0byByZXF1ZXN0IHBhcnNpbmcgb2YKICAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICAgdG8gdGhlaXIgY29ycmVjdCBtb2R1bGUgaW5zdGVhZC4KICAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjowNToxNAogICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjozODozMwogICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6NDQ6MzcKICAgIC0gKG1pYi5jKTogcGF0Y2ggYWxsIG90aGVyIGVudi12YXJzIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjAxOjQ4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTU6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgICAtIGRvY3VtZW50YXRpb24gdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgdXNhZ2UuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTY6NTgKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxODowMTo0NgogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCB1Y2Rfc25tcC5oLCBzbXV4X2dhdGVkLmgpOgogICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQyOjQ2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSBsaW51eCdzIE9TIHR5cGUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTk6NDM6MTMKICAgIC0gKHNubXBfdmFycy5jKTogZGVmaW5lIGF0IGxlYXN0IGJsYW5rIGZ1bmMgbmxpc3RfaW5pdCgpIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjE1OjU0CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjQ1OjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFsbG93IC12IDJoIGFuZCAycCBmb3IgcGFydHkgY29kZS4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMDo1NwogICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDE6MjcKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmdzIG9mIE5FV1MgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMjo0NgogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MjU6MDMKICAgIC0gKGFnZW50L3JlYWRfY29uZmlnLltjaF0sIHNubXBkLmMsIHNubXBfdmFycy5jLCBtaWJncm91cC8qKToKICAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMxOjU0CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kIHNldHVwLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMyOjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kLi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozMwogICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjM2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU1ICkKCmhhcmRha2VyIDIyIE9jdCA5NyAxMTo0MDowNgogICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMDk6NTY6MjYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwLyouaCk6CiAgICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICAgZnJvbSB0aGUgY29uZmlndXJlIGludG8gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDM6MTUKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wX3ZhcnMuYyk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHYyaCAtPiB2MnAsIHYyIC0+IHYyYy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDowNDozMwogICAgLSAoYXBwcy8qLmMpOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gc3VwcG9ydCBmb3IgY29tbWFuZCBsaW5lIGZsYWdzIHdpdGhvdXQgc3BhY2VzLgogICAgICAtIHYyaCAtPiB2MnAuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTY6NDIKICAgIC0gKHNubXBsaWIvKi5bY2hdKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gY2hhbmdlcyBmb3IgV0lOMzIgc3VwcG9ydC4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wLmRlZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICBmaWxlIHNubXBnZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNwogICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICBmaWxlIHNubXBzZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NTIKICAgIGZpbGUgc25tcHdhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzoxMQogICAgLSAoY29uZmlnKikgd2luMzIgaGVhZGVyIGNoZWNrcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzo1MAogICAgLSAoYWdlbnQva2VybmVsLmMsIHNubXBfYWdlbnQuYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KICAgICAgLSBmdW50aW9uIHJlbmFtZXMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTg6MTYKICAgIC0gKGFnZW50L21pYmdyb3VwLyouYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMTo1MwogICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gcHV0IHRhYnMgYmFjayBpbiBoZWxwIHN0cmluZy4KICAgICAgLSBwdXQgdmVyc2lvbiBzdHJpbmcgcmVxdWVzdCBiYWNrIGluLgogICAgICAtIG1ha2UgZXJyb3Igc3RyaW5ncyBiZXR0ZXIgYW5kIHB1dCBiYWNrIGluIHBlcmlvZHMuCiAgICAgIC0gZG9uJ3QgYm9tYiBvbiB1bmtub3duIHBhcmFtZXRlcnMgZm9yIGZ1dHVyZSB1c2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjI6MjEKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcHV0IHN0cmR1cCBkZWNsYWlyYXRpb24gYmFjayBpbi4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMzoyMAogICAgLSAoc25tcGxpYi9zbm1wX2F1dGguYyk6CiAgICAgIC0gcmVtb3ZlICNpZmRlZiBPTEQgcmVxdWlyZW1lbnQuCiAgICAgIC0gY2hhbmdlIGJhY2sgaW50LT5sb25nIGFyZ3VtZW50IGNoYW5nZSBmb3Igc25tcF9jb21zdHJfYnVpbGQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6Mzc6NDYKICAgIC0gKHNubXBsaWIvc25tcC5oKToKICAgICAgLSBzbm1wIHZlcnNpb24gI2RlZmluZSBjbGFpcmlmaWNhdGlvbiBvbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zLgogICAgICAtIG1vcmUgY2xlYXJseSBzdGF0ZSBwdXJwb3NlIG9mIGZ1dHVyZSBTTk1QVjMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MjY6NTcKICAgIC0gKCopOiBtZXJnZSBvZiBXMzIgcG9ydCBhbmQgbWFpbiB2ZXJzaW9uIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNjozNDo0NQogICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDQ6NTEKICAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzowNToxMgogICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDI6NTUKICAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDM6MjIKICAgIC0gKGFnZW50L21pYmdyb3VwL2hyXyouaCk6IHByb3BlciBpbml0XyBwcm90b3R5cGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjUwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDQ6MjcKICAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDc6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtZXJnZSBidWdzOiBlbHNlIGNoZWNrIGFnYWluc3QgcGR1IGNvbW1hbmQgdHlwZS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODowMjo1NgogICAgd2luMzIgZmlsZXMKCmhhcmRha2VyIDI3IE9jdCA5NyAxODowNTozNgogICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjU3CiAgICAtIChzbm1wbGliLyouYyk6IHVzZSBzbm1wX3NldF9kZXRhaWwgdG8gaGFuZGxlIG1hbGxvYy9mcmVlIG9mIHNubXBfZGV0YWlsLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjI2OjQxCiAgICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjMxOjM0CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKCmhhcmRha2VyIDI4IE9jdCA5NyAwOTo1NjoxMQogICAgLSAoYWNjb25maWcuaCwgc3lzdGVtLltjaF0sIHNubXAuYyk6IG1vdmUgc3RyZHVwIGRlZiB0byBzeXN0ZW0uW2NoXS4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDozMDo1NQogICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo0MjoyMwogICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo1NDoyNAogICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNTo1MDowNQogICAgLSAoY29uZmlnKiwgcm91dGVfd3JpdGUuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzowOTo1NwogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6IGRlZmluZSBic2RpIGFnZW50IHR5cGUuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTA6NTgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgIC0gZml4IHVud3JhcHBlZCBmb3BlbigpIGJ5IGFkZGluZyByZXR1cm4gTlVMTCBjaGVjay4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzoxMjowMAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNyApCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDE6NTQKICAgIC0gKHNubXB0cmFwLmMpOiByZW1vdmUgdW51c2VkIG5saXN0IHN0cnVjdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAwOTo0MjowNwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NTc6NDgKICAgIC0gKGRpc2suW2NoXSwgc3RydWN0LmgsIHNlZHNjcmlwdC5pbiwgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjA2OjExCiAgICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHJlbW92ZSBzcGFjZSBiZWZvcmUgJSBzaWduLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjI1OjMxCiAgICAtICgqL01ha2VmaWxlLmluLCBtYW4vKik6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjQ4OjE4CiAgICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBNb3ZlIHNubXBsaWJwYXRoIHRvIEBkYXRhZGlyQCB3aGljaCBkZWZhdWx0cyB0byAvdXNyL2xvY2FsL3NoYXJlL3NubXAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6NTQ6MDcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMToyMDo1NAogICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgICBleHRlbnNpYmxlLmMsIGRpc2suYywgc25tcGRlbHRhKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgIC0gYWRkZWQgYSBjaGFyIHZlcnNpb24gb2YgIjsiLAogICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAgLSBjb21wbGV0ZWQgdGhlIGFjY2VzcyBhbmQgc3RhdHVzIHZhbHVlcyBpbiBzbm1wbGliL3BhcnNlLmgKICAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjoyMzoyNgogICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo0Mzo0NAogICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU3OjQ4CiAgICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NTg6MDEKICAgIC0gKGhvc3RfcmVzLmgpOiBkb24ndCBpbmNsdWRlIGNvbmZpZy5oIHR3aWNlLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDE0OjAwOjM4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0NzoxMgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0Nzo1OQogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSBDaGVjayBmb3IgJHByZWZpeCBiZWluZyBkZWZpbmVkIGFzIE5PTkUgZm9yIG90aGVyIHZhcnMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDI6NTcKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ0OjU4CiAgICAtIChjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgaHB1eDEwIHJlLWRlZmluaW5nIHByb2JsZW1zLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ1OjIzCiAgICAtIChocl9kaXNrLmMpOiBuZXcgdmVyc2lvbiBmb3IgaHB1eDEwIHN1cHBvcnQgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NjoxNwogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jKTogUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGJ1ZyBmaXhlcyBhbmQgaHB1eDEwIHN1cHBvcnQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6NDYKICAgIC0gKHZhcl9yb3V0ZS5jKTogZnJvbSBEYXZlIFNoaWVsZDogZG9uJ3QgcHJvdG90eXBlIG1hbGxvYy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0ODowNwogICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1MjowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjU2OjU4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIKCmhhcmRha2VyICA1IE5vdiA5NyAxNDowMDowOQogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbF9zdW5vczUuYywgbWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6NDA6MDcKICAgIC0gKG1lbW9yeS5jKTogcHJvdGVjdCB2bW1ldGVyLmggZnJvbSBtdWx0aXBsZSBpbmNsdXNpb25zIG9uIG5ldGJzZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxNToyOTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOSApCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjQ6MjIKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjU6MzUKICAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KCmhhcmRha2VyICA3IE5vdiA5NyAxMjoyODowMwogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjE0CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBVU0lORy4qX01JQl9NT0RVTEUgLT4gVVNJTkcuKl9NT0RVTEUuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTM6Mzc6NDQKICAgIC0gKGhyX25ldHdvcmsuYyk6IGRvbid0IHBhc3MgY2hhciAqKiB0byBpbnRlcmZhY2VzX3NjYW5fbmV4dCgpLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6MjQKICAgIC0gKGFjY29uZmlnLmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZGVmaW5lIF9DUlRJTVAgZm9yIHVuaXggZHVlIHRvIFczMiBiYWQgT1MgZGVzaWducy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToxOTo1OQogICAgLSAoc25tcGdldG5leHQuaCk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyMDo1NAogICAgLSAocGFyc2UuW2NoXSwgc25tcF9jbGllbnQuYyk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KICAgICAgLSBkZWZpbmUgZmluZF9ub2RlIGV4dGVybmFsbHkuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjI6MDkKICAgIC0gKHdpbjMyLyopOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgc3BlY2lmaWMgY2hhbmdlcy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyODo1OQogICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6MTY6NTMKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM3OjAxCiAgICAtIChORVdTLCBSRUFETUUsIFRPRE8pOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6Mzg6NDkKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKCmhhcmRha2VyIDEyIE5vdiA5NyAwNzo0MjoyNAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDg6MjY6NDUKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzowOAogICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE3OjI4CiAgICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTg6MDIKICAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MjU6MzAKICAgIC0gKE5FV1MsIFRPRE8pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6NDYKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI4OjExCiAgICAtIChwYXJ0eV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyOTo0MgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzA6NTcKICAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAgLSBhZGQgc25tcHRhYmxlLgogICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzI6MjIKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHYyYyBzdXBwb3J0IGFuZCBhcmd1bWVudCBwYXJzaW5nIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzM6MjAKICAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mzg6MzYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgIC0gcGFyc2VyIGRpcmVjdG9yeSBjYWNoaW5nLgogICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjQ0OjQ3CiAgICAtIChORVdTKTogZG9jIHVwZGF0ZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxMDoyNwogICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjE2OjQ0CiAgICAtIChwYXJ0eV92YXJzLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjIxOjQxCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNTo0MjowMgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE2OjA1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6Mjc6MTEKICAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjAwCiAgICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjI3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYywgc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQzOjMzCiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6NDc6NDcKICAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMTo0MQogICAgLSAod29tYmF0LmMpOiBjb2RlIGNvbW1lbnRzIGZyb20gQWxhbiBCYXRpZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMjoyNgogICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MjE6MTAKICAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAxMjozNToxOQogICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCgkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjMgLT4gVjMuMgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjQ4OjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmxpbnV4LmgpOiBQYXRjaCBmcm9tIEplbm5pZmVyIEJyYXk6CiAgICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTA6NDYKICAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTQ6MzYKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEZpeCBocHV4IHNwZWNpZmljIHByb2JsZW1zLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjExOjIxCiAgICAtICgqTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjEyOjE5CiAgICAtIChSRUFETUUpOiBVcGRhdGUgcGVvcGxlIHN1cHBseWluZyBwYXRjaGVzIGxpc3QuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTM6MTk6MzcKICAgIC0gKGFsbCAuYyB3aXRoIG1haW4oKSwgc25tcGxpYi8qKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEwOjExCiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IEZpeCAjaWZkZWYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTE6MjQKICAgIC0gKHtsb2NhbCxtYW4sb3Z9L01ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBpbiBmcm9udCBvZiB0YWJzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEzOjM0CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTQ6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDI6MDIKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNjo0NDowOAogICAgLSAobWFuL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZml4IHNyY2RpciBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNzowMDoyNgogICAgLSAoTWFrZWZpbGUuaW4pOiBSZXN0IG9mIFBoaWxpcCdzIHBhdGNoIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMgKHNoIHZhcnMpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQxOjA4CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMsIGFnZW50L21pYmdyb3VwKTogRGF2ZSBTaGllbGQgc3BsaXQgdXAgdGhlCiAgICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQ3OjEzCiAgICAtIChtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gcmVtb3ZlCiAgICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjUzOjI0CiAgICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiAgTWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MDQKICAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MzYKICAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMxOjI1CiAgICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMyOjMwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNjoxMTowOQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUyICkKCndoYXJkYWtlICA0IE1hciA5NyAxNTo0NjozMAogICAgLSAoY29uZmlnKiwgbWliZ3JvdXAvTWFrZWZpbGUuaW4pOgogICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMDk6NDk6NTkKICAgIC0gKGNvbmZpZyosIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oOiAgQSBsaXN0IG9mIG1pYiAuaCBmaWxlcyBmb3Igc25tcF92YXJzLmguCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgcHJlc2VudCBpZiBleGlzdCBpbiB3b21iYXQuYykuCiAgICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbG9hZF9taWIoKSwgd2hpY2ggc2ltcGxpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgoKd2hhcmRha2UgIDUgTWFyIDk3IDEwOjAzOjU4CiAgICAtIChzeXN0ZW0uYyk6IHJlbW92ZWQgc3lzdGVtIG5saXN0ICh1bnVzZWQpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjE3OjQ0CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBFbHd5biBCIERhdmllczoKICAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6MjAKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIzCiAgICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjQ1CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0OAogICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjM1OjE4CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNzozNQogICAgLSAoUkVBRE1FKTogQ29udHJpYnV0ZXIgbmFtZSBhZGRpdGlvbi4KCndoYXJkYWtlICA1IE1hciA5NyAxNTowNjo0MQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6MTM6MzgKICAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjE1OjU0CiAgICAtIChzbm1wX2FwaS5jKTogZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGluIHNubXBfcGFyc2UuICBQb3NzaWJseSB3cm9uZy4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IFllcC4gSXQgd2FzIHdyb25nLiAgVGVzdGVkIGFuZCB3b3JrcyBub3cuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDY6MzQKICAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTowNzowNwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjU5OjI4CiAgICAtIChzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvKik6IHN0cmljdC1wcm90b3R5cGluZyBhbmQgY29uZmlnX3JlcXVpcmUoKXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MDc6NTMKICAgIC0gKG1pYm1vZHVsZS92ZXJzaW9udGFnKTogbW92ZWQgaW50byBwbGFjZSBmcm9tIGV4dGVuc2libGUvCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MzQ6NTMKICAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0MzowOAogICAgLSAoZXh0ZW5zaWJsZS8qKTogY3ZzIHJlbW92aW5nIGZpbGVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjQ5OjAwCiAgICAtIChtaWJncm91cC9zdHJ1Y3QuaCk6IG1vdmVkIHRvIGhlcmUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTE6NDM6MDUKICAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6Mzk6MjQKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0Cgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDA6NDAKICAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDY6MTUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBGaXggc2Vkc2NyaXB0IGdlbmVyYXRpb24uICBzaWdoLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ3OjQ1CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ4OjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo1MDoxNQogICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6NTIKICAgIC0gKGhwdXguYyk6IGlmZGVmIGEgZmV3IGhlYWRlcnMgZm9yIGNvcnJlY3QgbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTE6MzAKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTQ6MDE6NTEKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDE6MDUKICAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDI6MTgKICAgIC0gKGNvbmZpZ3VyZSk6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KCndoYXJkYWtlICA3IE1hciA5NyAxNjowOTo1OAogICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE2OjExOjUwCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE2OjU1OjQ2CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE3OjI4OjI5CiAgICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgoKd2hhcmRha2UgMTEgTWFyIDk3IDA5OjA0OjAzCiAgICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCgp3aGFyZGFrZSAxMSBNYXIgOTcgMTc6Mzk6MjMKICAgIC0gKG1pYmdyb3VwLyopOgogICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAgLSBtYWtlIGV2ZXJ5dGhpbmcgYnV0IGludGVyZmFjZXMuYyBjb21waWxlIG9uIGlyaXg2LjMuCiAgICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMDk6Mjg6MDQKICAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KCndoYXJkYWtlIDEyIE1hciA5NyAxNTo0NzowMAogICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgIC0gTW92ZWQgc25tcCBtaWIgbW9kdWxlIC0+IHNubXBfbWliIGZvciBuYW1pbmcgY29uZmxpY3RzIHdpdGggc25tcGxpYi4KICAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDg6MzcKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCB1cGRhdGUuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NTU6MjAKICAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEyIE1hciA5NyAxNzoxNToyMAogICAgLSAoc25tcF9hcGkuYyk6IHJldHVybnMgZnJvbSBpbmV0X2FkZHIgYXJlIGluX2FkZHJfdCAodV9pbnQpIG5vdCB1X2xvbmcuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMDk6Mzc6MzcKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTA6MTQ6NTkKICAgIC0gKGV4dGVuc2libGVfc3VidHJlZXMuaCk6IFJlbW92ZWQgZmlsZS4KCndoYXJkYWtlIDEzIE1hciA5NyAxNDozNTowNQogICAgLSAoYWdlbnQvKiwgbWliZ3JvdXAvKik6IG1vdmVkIGFsYXJtLCBjb250ZXh0LCB2aWV3cywgZXZlbnQsIHBhcnR5LAogICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6NDQ6NTUKICAgIC0gKGtlcm5lbF9zdW5vczUuW2NoXSk6IG1vdmVkIHRvIG1pYmdyb3VwLy4KICAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6MzU6MjYKICAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM2OjE0CiAgICAtICh2aWV3X3ZhcnMuYywgY29udGV4dF92YXJzLmMsIGFjbF92YXJzLmMpOiBkb24ndCBpbmNsdWRlIHNubXB2Ml92YXJzLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6NDU6MTQKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3Igc3lzdGVtIGRlcGVuZGVudCBtb2R1bGVzLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ2OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjA3OjUyCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIHJ1bGUgZml4ZXMgYXMgd2VsbC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjoxMDo1OAogICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTc6NTkKICAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6MTc6MzIKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6NDc6MzIKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAgLSBBIGxhcmdlIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZSBMaW51eCBwb3J0CiAgICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgIFNob3dzIHlvdSB2YXJpYWJsZSByZXF1ZXN0ZWQgYW5kIHZhbHVlIHJldHVybmVkCiAgICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAgLSBzbm1wbmV0c3RhdCAtbyAobmV3KSBzaG93cyBpbnRlcmZhY2Ugb2N0ZXRzLCB3aXRob3V0IGVucXVpcmluZyBmb3IgbXR1CiAgICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgICBpbnRlcmZhY2UKICAgICAgLSBzbm1wbmV0c3RhdCB0Y3AvdWRwIHByaW50LW91dCBoYWQgbnRvaHMvaHRvbnMgaW4gd3JvbmcgcGxhY2VzIGZvciBwb3J0CiAgICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgIHNvdXJjZSBkaXJlY3RvcnkuIFVzZWZ1bCBpZiB5b3VyIG1ha2UgZG9lcyBub3Qgc3VwcG9ydCBWUEFUSAoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjM5OjE1CiAgICAtICh1Y2Qtc25tcC50eHQsIG1pYi50eHQsIE1ha2VmaWxlLmluKTogRG9uJ3QgYnVpbGQgbWliIGZpbGVzIGFueW1vcmUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NDY6MzEKICAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIG1pYnMvLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ3OjQ3CiAgICAtIChtaWIudHh0KTogc3RyZWFtZWQgZG93bi4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo1MDowMwogICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDg6MzUKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMDo0OTowMwogICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDE6MTkKICAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KCndoYXJkYWtlIDE0IE1hciA5NyAxMTowNzoxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxNzowNgogICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxODoxNwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToyMDozOQogICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjI6MjkKICAgIC0gKHNubXBfZ3JvdXB2YXJzLmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTE6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1MzoyMgogICAgLSAoc25tcGQuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTQ6MjIKICAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU1OjUwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQoKd2hhcmRha2UgMTQgTWFyIDk3IDE2OjE2OjUyCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDE4IE1hciA5NyAxNjo1MjozNAogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTM6MjYKICAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NDk6NTQKICAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MDo0OQogICAgLSAoZXhhbXBsZS5jLC5oKTogTmV3IGV4YW1wbGUgbWliIG1vZHVsZSBkdXBsaWNhdGluZyB0aGUgcGFzc3Rlc3QKICAgICAgc2NyaXB0IGluIEMgY29kZS4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MToxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBXYXRjaCBvdXQgZm9yIG11bHRpcGxlIHNwYWNlcyBpbiBDIGRlZnMuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MzMKICAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMTM6NTY6NTAKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMDk6Mzk6MDEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KCndoYXJkYWtlIDI1IE1hciA5NyAxMzozMDowNQogICAgLSAoSU5TVEFMTCk6IG1pbm9yIGRvYyB1cGRhdGUgZm9yIG5ldyBmbGFncy4KCndoYXJkYWtlIDI2IE1hciA5NyAxNzowNToxMQogICAgLSAobWliZ3JvdXAvc3lzdGVtLmMpOiByZXBvcnQgYWdlbnQgdXB0aW1lIHJhdGhlciB0aGFuIHN5c3RlbSB1cHRpbWUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMDg6NDI6MDEKICAgIC0gKEZBUSk6IHZhcmlvdXMgdXBkYXRlcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTowMjo1NgogICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MjA6MzAKICAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAgLSBzbXV4IHN1cHBvcnQgZm9yIGdhdGVkIGZyb20gUm9oaXQgRHViZS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo0NzowNgogICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjUxOjQ0CiAgICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgoKd2hhcmRha2UgMjIgQXByIDk3IDE2OjQxOjEwCiAgICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgIC0gc211eF9pbml0KCkgLT4gaW5pdF9zbXV4KCkuCiAgICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgoKd2hhcmRha2UgMjIgQXByIDk3IDE3OjQ1OjA5CiAgICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMjA6NDk6MTUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNSApCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6Mzg6MTUKICAgIC0gKG1pYi5bY2hdLCBwYXJzZS5bY2hdLCBNYWtlZmlsZS5pbik6IE5ldyBwYXJzZXIgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgICAtIERlZmluZWQgaW50ZXJmYWNlcyBmb3IgbG9hZGluZyBtb2R1bGVzIGFuZCByZXRyZWl2aW5nIGVudHJpZXMKICAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgICBjb3JyZXNwb25kaW5nIG1vZHVsZXMKCndoYXJkYWtlICA5IE1heSA5NyAyMjo0NjozMAogICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAgLSBjaGVjayBmb3Igc2d0dHkuaCBhbmQgcHJvdG90eXBlIGJldHRlci4KCndoYXJkYWtlICA5IE1heSA5NyAyMjo0Njo0NgogICAgLSAoVE9ETyk6IFVwZGF0ZS4KCndoYXJkYWtlICA5IE1heSA5NyAyMzo1Mjo0MAogICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDowMzozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nIChtb3N0bHkpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjI4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6NDY6NDQKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjUwOjIwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQxOjIzCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTY6NDU6MTQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjUyOjExCiAgICAtIChtaWJfYXBpLjMpOiBOZXcgZmlsZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE3OjIzOjIxCiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQzOjU5CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiAgQlNESTMgc3BlY2lmaWMgaGVhZGVycyBhbmQgZGVmaW5lcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0NDoxOQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDg6MTMKICAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ5OjIzCiAgICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo1Mjo0OAogICAgLSAobWlicy91Y2Qtc25tcC50eHQpOiBQYXRjaCBmcm9tIE1hcmlvIERlRmF6aW8gdG8gZml4IHR5cG9zLgogICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjgKICAgIC0gKElGLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MToyOQogICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMxCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMyCiAgICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzMKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM1CiAgICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzYKICAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM3CiAgICAtIChTTk1QdjItTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM5CiAgICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQwCiAgICAtIChTTk1QdjItVEMudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDIKICAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MwogICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NQogICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NgogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0OAogICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDkKICAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjUxCiAgICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MgogICAgLSAoUkZDMTIxMy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDExOjU3OjEwCiAgICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTI6MDI6MjYKICAgIC0gKHNubXB2Mi50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAzOjA0CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogcmVtb3ZlZCBzbm1wdjIudHh0LCByZmMxMjcxLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNDo0ODo1OQogICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjI4CiAgICAtIChjb25maWcqLCBJTlNUQUxMKTogTmV3IGZsYWdzIHRvIHNldCBwcm9tcHRlZCB2YWx1ZXMgaW5zdGVhZCBvZiBwcm9tcHRpbmcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MDU6NTMKICAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjowOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vdmVkIGZyb20gdWNkLXNubXAudHh0LgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM2OjUxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0Cgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6Mzg6NDcKICAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiB1Y2Qtc25tcC50eHQgLT4gVUNELVNOTVAtTUlCLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNjoyMjoxMwogICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTE6NDE6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBtaWIudHh0KTogcmVtb3ZlZCBtaWIudHh0IGZyb20gZGlzdHJpYnV0aW9uLiAgTm8gbG9uZ2VyIG5lZWRlZC4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxMzoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgoKd2hhcmRha2UgMTQgTWF5IDk3IDEzOjE4OjAyCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE9kZGJqb3JuIFN0ZWZmZW5zZW46CiAgICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzo0NToyNAogICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTU6MDA6MjIKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIzOjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyODoxNQogICAgLSAoSU5TVEFMTCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcmVmZXJlbmNlIHRoZSBtYWtldGFyZ2V0IHNjcmlwdC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyOTozMwogICAgLSAobWliX2FwaS4zKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIE1JQlMgdmFyaWFibGUgY2FuIGJlIHNldCB0byBBTEwuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzA6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMTowMQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMjo1NgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCBudWxsIGNoZWNraW5nLgogICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KCndoYXJkYWtlIDE1IE1heSA5NyAxNDozNzozOQogICAgLSAocGFyc2UuYyk6IHBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE1OjIyOjUxCiAgICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjowMToxOAogICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgICh3aWxsIGFjY2VwdCBNSUJGSUxFIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCiAgICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgICAtIE5ldyBjb25maWd1cmUgb3B0aW9ucyB0byBzZXQgZGVmYXVsdCBNSUJTLCBNSUJGSUxFUywgTUlCRElSUy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyMjoxOQogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjI2OjEyCiAgICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6NDM6MzcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc2VuOgogICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KCndoYXJkYWtlIDE2IE1heSA5NyAxMToyNTozMAogICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjAzOjM1CiAgICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KCndoYXJkYWtlIDIwIE1heSA5NyAwODoxODo0OQogICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MTIKICAgIC0gKHBhcnNlLmMpOiBwcm90ZWN0IGFnYWluc3QgMCBpbXBvcnQgY2FsbHMuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MjgKICAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTA6MDg6MjUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNyApCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTE6MjQ6MjcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6MTgKICAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6NTUKICAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgoKd2hhcmRha2UgMjEgTWF5IDk3IDEwOjEzOjM4CiAgICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6Mzg6MzIKICAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxNTo0MDozMQogICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMiBNYXkgOTcgMTM6MTM6NTkKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNToxNAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNjoxNwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzowMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dCk6IEZyb20gTmllbHM6IGNoYW5nZSBpbXBvcnQgY2xhdXNlcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzozOQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGllbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozODoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IG11bHRpcGxlIGZyZWVzIGluIHYyIHBkdSdzLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjA5CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6NDA6MzIKICAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjIzOjU2CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTggKQoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjM0OjMzCiAgICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjUwOjIwCiAgICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MjoxMgogICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjU2OjE5CiAgICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMTozODo0MQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbmllbHMgQmFnZ2VzZW4gdG86CiAgICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKDEuLjI1NSkpIGluc2lkZSBPQkpFQ1QtVFlQRS4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIuMSAtPiBWMy4xLjMKCndoYXJkYWtlIDEwIEphbiA5NyAwODo0Mzo0MgogICAgLSAoQ09QWUlORyk6ICBVcGRhdGUgZm9yIDk3LgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjAwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjM2CiAgICAtIChzbm1wdHJhcGQuYyk6IFJlbW92ZSBicm9rZW4gRkRfU0VUIGNvZGUuCgp3aGFyZGFrZSAxNCBKYW4gOTcgMTY6NDU6MzMKICAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMDk6Mjg6NTYKICAgIHBhdGNoIG5pZWxzLjAKCndoYXJkYWtlIDE3IEphbiA5NyAxMTo1MTo0MAogICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgIC0gTmV3IGFyZyAtQzogICAgICAgCSAgIERvbid0IHJlYWQgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluIDogc2VwZXJhdGVkIHBhdGguCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTg6NDYKICAgIC0gKHNubXBkLmMpOgogICAgICAtIFVzYWdlKCkgdXBkYXRlIGFuZCB2ZXJzaW9uIHByaW50b3V0IHVwZGF0ZS4KCndoYXJkYWtlIDE3IEphbiA5NyAxNDo1NToyOAogICAgRGF2ZSBTaGllbGQgcGF0Y2hlcwoKd2hhcmRha2UgMjAgSmFuIDk3IDExOjE3OjUzCiAgICBOaWVsJ3MgcGF0Y2hlcyBpbnRlZ3JhdGVkCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MDk6MjUKICAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gaW1wbGVtZW50ZWQ6IGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmU3BlY2lmaWMsCiAgICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNYXNrICwKICAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgIHVkcC51ZHBUYWJsZS4KICAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgIC0gaXBOZXRUb01lZGlhLgogICAgCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAgLSBsaW51eCBhcHBsaWNhdGlvbiBzdXBwb3J0LgogICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgIC0gTUlCIHBhcnNlciBmaXhlcy4KICAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MjI6NTMKICAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgLSAoc25tcF9jbGllbnQuYyk6IFdhaXQgMTIwIHNlY29uZHMgYmVmb3JlIHJldHVybmluZy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTozNzowOAogICAgLSAoY29uZmlnKik6IEF1dG9oZWFkZXIgaXMgZHVtYjogIFB1dCBtYWNybyBkZWZpbmVzIGJlbG93ZSBAQk9UVE9NQCBzeW1ib2wuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzg6NTkKICAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1MDozNwogICAgLSAoc25tcF92YXJzLmMpOiBic2RpICNpZmRlZiBmaXhlcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1NTo0NQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgICAtIGFkZCBic2RpIHRvIHNvbWUgI2lmZGVmcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1ODo1MQogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSB3YXRjaCBvdXQgZm9yIHN0cmluZyBsZW5ndGhzIG9uIHZlcnNpb24gZGVzYyBhbmQgc3lzbmFtZS4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjozODoyMAogICAgcGF0cmljZS4xIHBhdGNoCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NDM6MjUKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfY2xpZW50LltjaF0pOgogICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgIC0gYWRkZWQgcmV0dXJuIGFyZ3VtZW50IHRvIHNubXBfYWRkX251bGxfdmFyKCkuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6MDIKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gc3hqemhhbmdAc3NzLnNzaTEuY29tOgogICAgICAgIC0gZml4IGRpc2sgcmVwb3J0aW5nIG9uIHN1bm9zIDQuMS4zIHdpdGggT0RTIDEuMC4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjo1OTo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUxICkKCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzowNAogICAgLSAocmVhZF9jb25maWcuYyk6IFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPjoKICAgICAgLSAjaWYgRE9ERUJVRyAtPiAjaWZkZWYgRE9ERUJVRy4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzo1MgogICAgLSAoc25tcGQuYyk6IHJlbW92ZSBzZWNvbmQgY2hhciBkZWZpbml0aW9uLgoKd2hhcmRha2UgMjEgSmFuIDk3IDA4OjM0OjMyCiAgICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KCndoYXJkYWtlIDIxIEphbiA5NyAwOToxNzo0MgogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgIC0gaGFuZGxlIG11bHRpcGxlIGludGVyZmFjZSBuYW1lcyA+IDEwIHByb3Blcmx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEwOjQ3OjQwCiAgICBidWcgcmVwb3J0aW5nIHNjcmlwdCBhZGQKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowNzowMAogICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgIC0gQWRkZWQgaW50cm9kdWN0aW9uLgogICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6NTkKICAgIC0gKGFjY29uZmlnLmgpOgogICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA5OjA1CiAgICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTA6MjgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMTowNAogICAgLSAoRkFRKTogcmV2aXNpb24gb25lIQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjExOjI5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6NTg6NDYKICAgIC0gKGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KCndoYXJkYWtlIDI5IEphbiA5NyAxMzowMzoxNQogICAgLSAodmVyc2lvbnRhZyk6IE1vZGlmeSAuLi8uLi9idWctcmVwb3J0IGFzIHdlbGwuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDg6MTEKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgICAtIGNoYW5nZSB0byBhZGRyZXNzIChiYWNrKSB0byB1Y2Qtc25tcC1jb2RlcnMuCiAgICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMDk6NTg6MTAKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Iga3N0YXQuaCBhbmQgaWYgc3lzY3RsIGNhbiByZWFkIHRoZSBib290dGltZS4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDowMTo1OQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246CiAgICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgICAtIEZpeCByb3V0aW5nIHRhYmxlcyBmb3Igc2ltaWxhci4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDo0OTowNwogICAgLSAodmVyc2lvbnRhZyk6IHVoLCBjb21taXQgaXQgYWdhaW4uCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTA6MDQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZmlyZSBvZmYga3NoIGlmIGhwdXggJiYgc2guCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTk6NDMKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hhbmdlZCBhcmNoIHRvIGhwcGEgYW5kIG1ha2Ugc3VyZSAvYmluL2tzaCBleGlzdHMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTE6MDM6MTEKICAgIHZlcnNpb24gdGFnIHVwZGF0ZQoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjAyOjEyCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMzoxMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDY6MDIKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yIHdob2FtaSwgbG9nbmFtZS4KICAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDc6MDQKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDg6MDYKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiAgVXNlIENBTl9VU0VfU1lTQ1RMIGluc3RlYWQgb2YgYnNkbGlrZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMTo1MDoyMwogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAgLSBVc2UgdGhlIGZvdW5kIFVOQU1FIHByb2dyYW0gaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBoYXZlIGl0LgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ0OjUxCiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NDc6NTgKICAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo1MTowNAogICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzoxNToxMQogICAgLSAoUkVBRE1FKToKICAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAgLSBEYXZlJ3MgRW5nbGlzaCBwb2ludGVycyAoaWUsIGhlIHByb29mZWQgaXQgYW5kIEksIHVoLCBkb24ndC4uLikuCiAgICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgICAtIEkgLT4gV2UsIG1lIC0+IHVzLi4uCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MzM6MTEKICAgIC0gKFJFQURNRSwgTkVXUywgVE9ETyk6IFVwZGF0ZSBmb3IgMy4xLjMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTM6MDQKICAgIC0gKGJ1Zy1yZXBvcnQpOiBtb3ZlIGNvbmZpZy5jYWNoZSB0byBlbmQgb2YgbWVzc2FnZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzo1NTowNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTowMgogICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTozNwogICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM2OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEZpeCBocHV4IHByb2JsZW1zLCAqYWdhaW4qLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM3OjI2CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gU2ltb246IGNvbW1lbnQgI2lmZGVmIGVuZGluZ3MgZm9yIEFOU0kgY29tcGxpZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjQxOjM5CiAgICAtIChGQVEpOiBBZGRlZCBUT0MgYW5kIGF1dG9yIG5vdGVzIDstKS4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzowMQogICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzozMgogICAgLSAoVE9ETyk6IG1pc2MgcmVxdWVzdGVkIGFkZGl0aW9ucy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzowNzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQdXQgL2Rldi9rc3ltcyBhaGVhZCBvZiAva2VybmVsL3VuaXguCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTE6MTUKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAgLSBhZGRlZCBtYW4gZW50cmllcyBmb3IgdHJhcCBnZW5lcmF0aW9uLgogICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTM6MDkKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggbmxpc3QgcHJvYmxlbXMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjA6MTAKICAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyMzo0MQogICAgLSAodGNsLCB0aywgc25tcHRjbCk6IE51a2VkLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI1OjAzCiAgICAtIChORVdTKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6Mjk6NTQKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHRjbCBzdHVmZi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzo0MTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmU0ICkKCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjowMwogICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjo1MwogICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMiAtPiBWMy4xLjIuMQoKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjEzOjU2CiAgICAtIChpZi5jKTogI2lmbmRlZiAtPiAjaWZkZWYgZm9yIHNpZ3NldC4KIAp3aGFyZGFrZSAgNSBEZWMgOTYgMDk6MTQ6NTkKICAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjEgLT4gVjMuMS4yCgp3aGFyZGFrZSAxNyBPY3QgOTYgMDc6MDI6NTgKICAgIHZlcnNpb24gdGFnICggMy4xLjEuQlNESSApCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDc6MjEKICAgIC0gKFBPUlRJTkcsUkVBRE1FKTogQWRkIGEgbmV3IFBPUlRJTkcgZmlsZSB0byByZWZlcmVuY2UgYXV0b2NvbmYgcGxlZS4KCndoYXJkYWtlIDMwIE9jdCA5NiAxMzo0OTowOQogICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgICAtIFJlbW92ZSBhc3NvY2lhdGVkIHByb21wdGluZyBmcm9tIGNvbmZpZ3VyZSBzY3JpcHQgYW5kIGV0Yy4KCndoYXJkYWtlIDMxIE9jdCA5NiAxNzowNjoxNgogICAgLSAocmVhZF9jb25maWcuYyk6IG51bWRpc2tzIHdhcyBiZWluZyBpbmNyZW1lbnRlZCBiZWZvcmUgbGFzdCB1c2FnZS4KCndoYXJkYWtlICAxIE5vdiA5NiAwODo1NDoxMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgICAtIERvbid0IHRyeSB0byBzdHJpcCBGRnMgZnJvbSB0aGUgaGlnaCBlbmQgb2YgdW5zaWduZWQgdmFsdWVzLgogICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCgp3aGFyZGFrZSAgNCBOb3YgOTYgMDk6MzA6NDYKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCgp3aGFyZGFrZSAgNCBOb3YgOTYgMTA6MDg6NDkKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjE2OjQ1CiAgICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToyNDoyMwogICAgLSBOaWVscyAzLjEuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MzU6NTIKICAgIC0gQlNEaTIgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjU3OjE2CiAgICAtICh2ZXJzaW9udGFnKTogT25seSB0YWcgcmVsZWFzZSB2ZXJzaW9ucyAoRXh0KikuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTY6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogQ2hhbmdlZCBkZWZhdWx0IFNOTVBWMkFVVEggdG8gU05NUFYxLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjM5CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE3OjE3CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIHR5cG9zLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE5OjMzCiAgICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowMzo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowNjo0NgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTQ6NTAKICAgIC0gKGV4dGVuc2libGUuYyk6IFVzZSBzdGF0ZnMgaWYgc3RhdHZmcyBpcyB1bmF2YWlsYWJsZS4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNjoyMgogICAgLSAoc25tcF92YXJzLmMpOgogICAgICAtICNpZmRlZiB0eXBvLgogICAgICAtIHByb3RvdHlwZSBmb3IgSW50ZXJmYWNlX1NjYW5fSW5pdCgpLgogICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE3OjM2CiAgICAtIChjb25maWcqKToKICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MjQ6MjQKICAgIC0gKHNubXB0cmFwLmMsIGluZXQuYywgcm91dGUuYyk6IHR5cGVjYXN0aW5nIHdhcm5pbmcgZml4ZXMuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDM6MzMKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDQ6MTEKICAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA4OjE4OjI5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFRyYXNoIGludGVyZmFjZSBjYWNoaW5nLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjA2OjEwCiAgICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgIC0gQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjE0OjIyCiAgICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDExOjM1OjI5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYywgbmV3OiBleHRwcm90by5oKTogIFJlbW92ZWQgYWxsIC1XYWxsIHdhcm5pbmdzIQoKd2hhcmRha2UgMjIgTm92IDk2IDE0OjM4OjA1CiAgICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KCndoYXJkYWtlIDIyIE5vdiA5NiAxNToxMDozNgogICAgLSAoZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogcmVtb3ZlZCBtb3JlIC1XYWxsIHdhcm5pbmdzLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjI1OjA3CiAgICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjQ1OjI3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4yLnByZTEgKQoKd2hhcmRha2UgMjUgTm92IDk2IDA4OjQ0OjAzCiAgICAtICh7YWdlbnQsYXBwc30vTWFrZWZpbGUuaW4pOiBQdXQgbGlic25tcC5hIGluIGZyb250IG9mIC1sIGxpYnMuCgp3aGFyZGFrZSAyNSBOb3YgOTYgMDk6MTU6NTcKICAgIC0gKGNvbmZpZyosIHNubXBfaW1wbC5oKTogTW92ZWQgdm9pZCAtPiBjaGFyIGRlZmluZSB0byBhIGNvbmZpZ3VyZSB0ZXN0LgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjAyOjA2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAgLSBSZW1vdmUgaWZkZWYgYXJvdW5kIGlmbmV0IGRlY2xhcmF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMzo0NwogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBSZW1vdmUgcmV0dXJuKDApIG9uIHZvaWQgaW5pdF9leHRlbnNpYmxlKCkuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDY6MDQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjIwCiAgICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjM0CiAgICAtIChSRUFETUUpOiBVcGRhdGUuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MzQ6MTIKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIFdhdGNoIG91dCBmb3IgaW50ZXJmYWNlIG5hbWVzIHdpdGggJyAnIGluIHRoZW0uCiAgICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjQ1OjQ2CiAgICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjU2OjQ0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgoKd2hhcmRha2UgIDIgRGVjIDk2IDA4OjU1OjQ5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gaWZQaHlzQWRkciAtIGluIEludGVyZmFjZV9HZXRfRXRoZXJfQnlfSW5kZXgsIEhQLVVYIGhhcyB0aGUgc2FtZQogICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgIAogICAgICAtIGlwQWRFbnRJZkluZGV4IC0gaW4gdmFyX2lwQWRkckVudHJ5LCB0aGVyZSBpcyBhIGZhbHNlIG1hdGNoIG9uCiAgICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgICAKICAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgIHN0cnVjdHVyZSB0byBpbmNsdWRlIHRoZXNlLiAgSSd2IHR3ZWFrZWQgdGhpcyBhbmFsb2dvdXMgdG8gYQogICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgIAogICAgICAtIHRjcENvbm5TdGF0ZSAtIEhQLVVYIGhhcyBhZGRlZCBhbiBleHRyYSBzdGF0ZSBpbnRvIHRoZSBsaXN0LCB3aGljaAogICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDQ6MDIKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgIC0gTWFrZSBBQ19DSEVDS19JRk5FVF9GT1IgdXNlIGFib3ZlLgogICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDU6MTcKICAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KCndoYXJkYWtlICAzIERlYyA5NiAxMTowNDozMwogICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGFycGhkLmF0X25leHQgYW5kIHVzZSBpbiBhYm92ZS4KCndoYXJkYWtlICAzIERlYyA5NiAxMToxNDo0MwogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KCndoYXJkYWtlICAzIERlYyA5NiAxNDo1MToyNAogICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KCndoYXJkYWtlICA0IERlYyA5NiAwOToxNjowOQogICAgLSAoYXNuMS5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgIC0gbWVtbW92ZS9jb3B5IGRlbGV0ZXMuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6NDk6MzgKICAgIC0gKFBPUlRJTkcsIFJFQURNRSk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjAuMSAtPiBWMy4xLjEKCndoYXJkYWtlIDExIFNlcCA5NiAwODo0OToxNAogICAgLSAocmVhZF9jb25maWcuYyk6IEZpeGVkIGNvbW11bml0eSBudW1iZXIgY2hlY2tzLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU0OjU5CiAgICAtIChjb25maWcqLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKTogQWRkZWQgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTY6NTk6MjYKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MDI6NDcKICAgIC0gKHNubXBfdmFycy5jKTogTW92ZWQgYSB2YXJpYWJsZSBkZWNsYWlyYXRpb24uCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MTY6NTgKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiB0eXBvIGZpeGluZyBhIHR5cG8gKHNpZ2guLikuCgp3aGFyZGFrZSAyNSBTZXAgOTYgMTQ6MTQ6NTMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KCndoYXJkYWtlICAxIE9jdCA5NiAxNTozMDo0NgogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhbGxvd3MgdGhlIENNVSBsaWIgdG8gcmV0YWluIHRoZSBUQyBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggYQogICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICAgTWliIFRyZWUuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6NTQ6MjIKICAgIC0gKGV4dGVuc2libGUuYyk6IGludCAtPiBkb3VibGUgdG8gc3VwcG9ydCBsYXJnZXIgZGlzayBzaXplcy4KCndoYXJkYWtlICAxIE9jdCA5NiAxNjoyODo1MgogICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIG1udGVudC5oIGFuZCBpbmNsdWRlIGl0LgogICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcGljayBnZXRtbnRlbnQgb3ZlciBnZXRmc2ZpbGUgaWYgYm90aCBhcmUgYXZhaWxhYmxlLgogICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgoKd2hhcmRha2UgIDMgT2N0IDk2IDE2OjA1OjQ3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIE1ha2UgYWdlbnQgcHJvcGVybHkgY2hlY2sgc25tcHNldCBleGl0IGNvZGVzIGFuZCB1c2UgdGhlbSAob24gQ09NTUlUKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowODo1OQogICAgLSAocGFzcy5jKToKICAgICAgLSBDaGVjayBmb3IgcGFzc3RocnUgZXhpc3RhbmNlIGJlZm9yZSByZXR1cm5pbmcgRVJSX05PRVJST1IsIGVsc2UKICAgICAgICByZXR1cm4gRVJSX05PU1VDSE5BTUUuCiAgICAgIC0gQ29ycmVjdGx5IGNoZWNrIGZvciBhbmQgcGFzcyAibm90LXdyaXRhYmxlIiBhbmQgIndyb25nLXR5cGUiIHBhc3MgcmV0dXJucy4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjoxMDozOAogICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDM6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDQ6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDY6MDkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOgogICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgIC0gbWlub3IgcHJvb2YtcmVhZGluZyAobWFqb3IgcHJvb2ZpbmcgbmVlZGVkIHN0aWxsKS4KICAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMTA6MDE6MjAKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBsaWIgLT4gbGliL3NubXAgcGF0aCBjb3JyZWN0aW9uIGluIEZJTEVTIHNlY3Rpb24uCiAgICAtIChzbm1wZC4xLmRlZik6CiAgICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgICAtIEdlbmVyYWwgY2xlYW4gdXAuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDE6NDAKICAgIC0gKHBhcnNlLmMpOiAgTm93IGxvYWRzIGFsbCBtaWJzIChmaWxlcykgaW4gdGhlIGRpcmVjdG9yeSBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDk6NTkKICAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjAxOjQzCiAgICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjUzOjA2CiAgICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjExOjQzCiAgICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDk6MTI6MjMKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBVc2UgZ2V0bW50ZW50IGNvcnJlY3RseS4gIFBhaW4uCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjI6NDcKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAgLSBDaGFuZ2VkIGVjZS1taWIudHh0IC0+IHVjZC1zbm1wLnR4dCBhbmQgaW5zdGFsbCAoYW5kIGdlbmVyYXRlKSBwcm9wZXJseS4KCndoYXJkYWtlICA3IE9jdCA5NiAxMDoyMzozMgogICAgLSAoZXh0ZW5zaWJsZS5jKTogQ2hvbXAgbmV3bGluZSBvbiB1bmFtZSBvdXRwdXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjQ6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBBZGRlZCAnc3lzY29udGFjdCcgYW5kICdzeXNsb2NhdGlvbicgcGFyc2luZy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMDoxMAogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgIC0gZW1hY3MgbG9jYWwgdmFycy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMToyNQogICAgLSAocmVhZF9jb25maWcuYyk6IFJlbW92ZSBleHRyYSBhcmdzIGZyb20gc3RyY3B5ICh3YXMgc3RybmNweSkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDI6NDYKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MDUKICAgIC0gKHNubXBkLjEuZGVmKTogQ2hhbmdlZCB0byByZWZsZWN0IFNOTVBMSUIvbWlicy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMjoyMzoyNwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjA0OjE0CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBQYXJzZSBPQkpFQ1QtSURFTlRZIGFzIE9CSkVDVC1HUk9VUCAoc2F2ZXMgb25seSBkZXNjcmlwdGlvbikuCiAgICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjMwOjI5CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAgLSB0b3NzT2JqZWN0SWRlbnRpZmllcigpOiBjYXRjaCBtdWx0aXBsZSBicmFja2V0IGNsYXVzZXMgKElFIHsgezAgMH0gfSApLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE0OjM2OjAzCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBzdHJuY21wIC0+IHN0cm5jYXNlY21wLgogICAgICAtIE5VTEwgLT4gMC4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozODowNQogICAgLSAoZXh0ZW5zaWJsZS5jKToKICAgICAgLSBzb3J0IHBhc3MgdGhydXMgYnkgbWlib2lkIHRvIHByZXZlbnQgcGFzc2luZyBvZmYgdG8gd3Jvbmcgb25lLgogICAgICAtIHR5cG9zOiAgZXhzdGVuIC0+IGV4dGVuLgogICAgICAtIGluaXRfZXh0ZW5zaWJsZSgpIGNhbGxzIHVwZGF0ZV9jb25maWcoKSB0byByZWR1Y2UgZHVwbGljYXRpb25zLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjE4OjQyCiAgICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjIyOjIzCiAgICAtIChSRUFETUUpOiBBZGRlZCB0aGFua3MgbmFtZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEgLT4gVjMuMS4wLjEKCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNjowOAogICAgLSAoTkVXUykgVHlwbywgZXh0cmEgcXVvdGF0aW9uIG1hcmsuCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6Mzc6MDUKICAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjM2CiAgICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU1OjUxCiAgICAtIChzbm1wX2FwaS5jKTogRml4ZWQgYSBnY2MvRnJlZUJTRCBvcHRpbWl6YXRpb24gYnVnIChzdHVwaWQgY29tcGlsZXIpCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTY6NTg6MDMKICAgIC0gKGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jKTogRnJlZUJTRCBtb2RpZmljYXRpb25zCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDY6NDMKICAgIC0gKGV4dGVuc2libGUuYyk6ICBGcmVlQlNEIGNoYW5nZXMgYW5kIHVzZSBnZXRsb2FkYXZnIGlmIGF2YWlsYWJsZS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwODo0Nzo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBGaXggYnl0ZSBvcmRlciBwcm9ibGVtIChjb252ZXJ0IHRvIG5ldHdvcmsgYmVmb3JlIHNlbmRpbmcpLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjAxOjEwCiAgICAtIChzbm1wdHJhcC5jKToKICAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgIC0gbW9yZSBhdXRvY29uZiBjb21wbGV0ZTogcGF0aHMgdG8gbGlicmFyaWVzIGFuZCBrZXJuZWwgbG9jYXRpb24uCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDk6Mzg6MzMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDA6MTUKICAgIC0gKHNubXBfdmFycy5jKTogTW9yZSB3YXJwZWQgRnJlZUJTRCBjaGFuZ2VzCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDQ6NTYKICAgIC0gKGF1dG9jb25mKik6CiAgICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgIC0gTG9nIGZpbGUgZGVmYXVsdCBpbnRlbGxpZ2VudGx5IGNoZWNrcyBmb3IgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgogICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjQyOjIwCiAgICAtIChleHRlbnNpYmxlLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBjbGVhbmVkIHVwIGdjYyB3YXJuaW5ncy4KICAgICAgLSBmaXhlZCBhIHNwZWxsaW5nIGVycm9yLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjU5OjU1CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzZXQgZXhpdCBjb2RlcyBvZiAwIGZvciBhbGwgYXBwcy4KICAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjAzOjEyCiAgICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjIxCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDY6NTAKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHByb3RvdHlwZXMgZm9yIGdjYyB3YXJuaW5ncwoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA3OjU2CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDg6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjU4OjEwCiAgICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgIC0gbWFsbG9jIHN5c2Rlc2MgaW5zdGVhZCBvZiBhc3N1bWluZyA8IDEyOCBieXRlcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjowMzo0NAogICAgLSAoc25tcHdhbGsuYyk6IFJlbW92ZWQgU1ZSNCBpZmRlZnMKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyMjoyNQogICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyOToxMAogICAgLSBDaGFuZ2VkIG15IGVtYWlsIGFkZHJlc3MgdG8gbXkgbmV3IG9uZS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzowNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgICAtIGxvZ2ZpbGUgY2hlY2tzIGZvciBleGlzdGFuY2Ugb2YgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjIzOjQyCiAgICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyNDozMQogICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgoJCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDowOQogICAgLSAoTkVXUywgQ2hhbmdlTG9nKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjM0OjQ4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4wLjEgKQoKd2hhcmRha2UgMzAgQXVnIDk2IDEwOjE1OjE4CiAgICAtIChSRUFETUUpOiBVcGRhdGVkIGZvciAzLjEuMC4xCgp3aGFyZGFrZSAzMCBBdWcgOTYgMTE6NDk6MzgKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtYWxsb2MgcHJvdG90eXBlIGR1ZSB0byBjb25mbGljdGlvbnMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4wLjcuMiAtPiBWMy4xCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzQ6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzU6MjcKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgIC0gQ2hhbmdlZCB0aGUgaW50ZXJmYWNlIGNvdW50ZXIgdG8gYSBzaG9ydCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgKGJ1cyBlcnIpCiAgICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KCmhhcmRha2VyICAzIE1heSA5NiAxNDozNzoxNwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgICAtIEZyb20gRGFuIEEuIERpY2tleSA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KCmhhcmRha2VyICAzIE1heSA5NiAxNDo0MDoxOAogICAgLSAoYXBwcy9zbm1wdHJhcC5jKSBBZGRlZCAjaW5jbHVkZTxzeXMvc29ja2lvLmg+CgpoYXJkYWtlciAgOSBNYXkgOTYgMTM6MjQ6MDAKICAgIC0gKGFwcHMvc25tcHNldC5jKSBBZGRlZCAnLicgYXMgYSBkZWxpbWl0ZXIgZm9yIGRlY2ltYWwgZW5jb2RlZCBzdHJpbmdzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI3OjQwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjMzOjEyCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBwYXNzdGhydSBtaWJzLiAgVG90YWwgY29udHJvbCBpcyBoYW5kZWQgdG8gZXhlYydzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDE2OjE0OjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBTb2xhcmlzIHNwZWNpZmljIGNwcCBmbGFncyBhZGRlZCBmb3IgU1VOc3BybydzIGNwcC4KICAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgICAtIENsZWFuZWQgdXAgcHJvdG90eXBlcyB0byBtYXRjaCBtb3JlIGNhcmVmdWxseSAod2l0aCBTb2xhcmlzJ3Mgc3BybyBjYykuCgpoYXJkYWtlciAxMCBNYXkgOTYgMTA6Mjc6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAgLSBwYXRjaCBzdXBwbGllZCBieSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAxMCBNYXkgOTYgMTg6MTY6NTcKICAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Njo0NQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBleGVjIE5hbWVzIHdlcmUgZ2V0dGluZyBpbmNsdWRlZCBpbiB0aGUgY29tbWFuZC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Nzo0MwogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSByZS1zdGFydGluZyBhZ2VudC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1ODo0NAogICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgICAtIEJ1ZyBmaXg6IEdMT0JBTFNFQ1VSSVRZIGJ1ZzogIHNhdmUgcmlnaHRtb3N0IHR3byBiaXRzIGluIGFjbC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1OTozMAogICAgLSAoc25tcGxpYi9zbm1wX2ltcGwuaCk6IENoYW5nZSBSV1JJVEUgdG8gaW5jbHVkZSBXcml0ZSBmb3IgVjIgYml0cy4KCmhhcmRha2VyIDE1IE1heSA5NiAwODo1OTo1MQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBJbXBsZW1lbnRlZCBtaXNzaW5nIHBhcnRzIG9mIGludGVyZmFjZSBhZGRyZXNzIGFuZCBuZXR3b3JrIG91dHB1dCAoLWkpCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDI6MjQKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgIC0gQmV0dGVyIGNhY2hpbmcgYWxnb3JpdGhtIGZvciBpbXByb3ZlZCBzcGVlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTowNTo0OQogICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDY6NDkKICAgIC0gKE1ha2VmaWxlLmluLHNlZHNjcmlwdC5pbikgQWRkZWQgUFJFRklYIHRvIHRoZSBzZWRzY3JpcHQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDc6MzUKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOToyOToyMQogICAgLSAoQ09QWUlORywgUkVBRE1FLCBUT0RPKSBSZWxlYXNlIGRvY3MgdXBkYXRlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MDoxNQogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBwYXRjaCBtaXN0YWtlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjEyCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpOiBhbnNpIHNlbWFudGljIGZpeCBmb3IgJzwnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjM3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MDA6NTcKICAgIC0gKElOU1RBTEwpIG1ha2UgaW5zdGFsbCBhcyByb290LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAzOjU0CiAgICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MjM6NDAKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MzU6MTYKICAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKCmhhcmRha2VyIDIyIE1heSA5NiAwODo1MDoyOAogICAgLSAobWFuL01ha2VmaWxlLmluKSBVcGRhdGVkIHRoZSB3YXkgc2Vkc2NyaXB0IGlzIHVzZWQuCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTE6MDEKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogQXV0b2NvbmYtMi4xMAoKaGFyZGFrZXIgMjIgTWF5IDk2IDEyOjUwOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICAgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMscmVhZGNvbmZpZy5jLHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICAgd2l0aCB0aGUgQVQgc3VidHJlZQogICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgICBhdHRhY2hlZCBwYXRjaC4KCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1NTozMwogICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDM6NDkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDoxNQogICAgLSAoZXh0ZW5zaWJsZS5jKTogIEFkZGVkIGEgZGlzayB3YXJuaW5nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDozOQogICAgLSAoYWNsLmMsIHBhcnR5LmMsIHZpZXcuYyk6IHJlbW92ZWQgTlVMTCBkZWZpbmVzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjU2OjQyCiAgICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTY6Mjg6MDgKICAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6MDk6MjQKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAgLSB1c2Ugc3RhdHZmcyBvdmVyIGZzdGFiIGlmIGJvdGggcHJlc2VudC4KCmhhcmRha2VyIDIzIE1heSA5NiAxNzo0ODowOQogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBnZXRtbnRlbnQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6MjM6NTIKICAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KCmhhcmRha2VyIDI0IE1heSA5NiAxMjozOTo1MQogICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowODoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjA5OjAyCiAgICAtIChjb25maWcqKTogIENoZWNrIGZvciBzeXMvbW50dGFiLmgKCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTo1MgogICAgLSAocmVhZF9jb25maWcuYyk6IGlmZGVmIGNsZWFudXAKCmhhcmRha2VyIDI0IE1heSA5NiAxMzoxMDozNAogICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTM6MjEKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzozODo0NgogICAgLSAocmVhZF9jb25maWcuYyk6ICNpZmRlZiB0eXBvCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTQ6MjUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTU6MTQKICAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6MDI6NTMKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KCmhhcmRha2VyIDI0IE1heSA5NiAxNDo1MzoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IHByaW50ZiAtPiBET0RFQlVHIGNoZWNrCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjg6NDEKICAgIC0gKGFjY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICNpZmRlZiB0eXBvcwoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgc29tZSBpZmRlZiByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjk6MjkKICAgIC0gKHNubXBfdmFycy5oKTogcmVvcmdhbml6ZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcuMSAtPiBWMy4wLjcuMgoKTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4gMSBNYXkgOTYgMTI6Mzc6MzUKICAgIC0gKG1hbnkpIEZpeGVzIGZvciBTb2xhcmlzICgyLjUpIHN1Ym1pdHRlZCBieQogICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgICBjcmVhdGVkIHRoZSBwYXRjaC4gU29tZSBvZiB0aGlzIGlzIHRoZXJlIHRvIGVsaW1pbmF0ZSB0aGUKICAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgIHRoZSBtaWIgdHJlZSBjYW4gbG9vcCBlbmRsZXNzbHkgaWYgeW91IGhhdmUgbXVsdGlwbGUgbmV0d29yawogICAgICAgICBpbnRlcmZhY2VzLiIKCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NDoxOAogICAgLSAoY29uZmlndXJlKiwgYWdlbnQvZXh0ZW5zaWJsZS97cmVhZF9jb25maWcsZXh0ZW5pc2JsZX0uYyk6CiAgICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDEzOjU1OjE2CiAgICAtIChtYW4vc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZikgLkMgLT4gLkIsIHRvIGluY3JlYXNlIG5yb2ZmIHBvcnRhYmlsaXR5LgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM1OjIzCiAgICAtIChhZ2VudC9yb3V0ZV93cml0ZS5jLGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNzowOQogICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MjUKICAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6NTY6MjEKICAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcgLT4gVjMuMC43LjEKCmhhcmRha2VyIDI1IEFwciA5NiAxMjoxODo0MwogICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjYgLT4gVjMuMC43CgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTE6MzkKICAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTI6MjIKICAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjE1OjExCiAgICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KCmhhcmRha2VyICA1IEFwciA5NiAxNjoxOTozNQogICAgLSAobWFuL01ha2VmaWxlLmluKSBBZGRlZCBhICdjbGVhbicgZGVmaW5pdGlvbiB0byB0aGUgTWFrZWZpbGUuCgpoYXJkYWtlciAxMiBBcHIgOTYgMTQ6NTE6MDgKICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjQyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS5jKQogICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNjo0OToyMwogICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgICAtIChtYW55KSBBZGRlZCBzdXBwb3J0IGZvciBocHBhMS4xLWhwLWhwdXgxMC4wMQogICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgICAtIChlY2UtbWliLmRlZikgQ2FwaXRhbGl6YXRpb24gcHJvYmxlbS4KICAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgICAtIFN0YXJ0ZWQgdXNpbmcgYSBhdXRvY29uZiAyLjggZmVhdHVyZSB0byBjaGVjayBmb3IgY2FjaGUgdmFsdWVzLgoKaGFyZGFrZXIgMTUgQXByIDk2IDEyOjUzOjQwCiAgICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDoxMTozOQogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAgLSAoY29uZmlndXJlKSBnY2MgY3BwIHJlcXVpcmVzIC14IGMgdG8gYWNjZXB0IC5pbiBmaWxlIHN1ZmZpeC4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDozNjo0OAogICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KCmhhcmRha2VyIDE2IEFwciA5NiAwOTo0NzoxOAogICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDg6MDYKICAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KCmhhcmRha2VyIDE2IEFwciA5NiAxODowODoyOQogICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM2OjA2CiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgaGVhZGVyIGZpbGUgY2hlY2tzICh2bS92bS5oICgrIG90aGVycykgYW5kIHVmcy9mZnMvZnMuaCkKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjo1MAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpIEluY2x1ZGUgdWZzL2Zmcy9mcy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODozNzoxMwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM4OjE4CiAgICAtIChhZ2VudC9hbGFybS5jKSBGaXhlZCBzb21lIGRlZmluZSBuYW1pbmcgY29uZmxpY3RzIGZvciBOZXRCU0QgKHRpbWVyYWRkKCkpLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjQ0OjQ1CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsIG92LyopIEFkZGVkIE5ldEJTRCB0byBzeXMtT0lEIHJldHVybmVkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjM5CiAgICAtIChtYW4vLmN2c2lnbm9yZSkgYWRkZWQgc25tcGQuMQoKaGFyZGFrZXIgMjQgQXByIDk2IDA5OjAwOjIxCiAgICAtIChSRUFETUUpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowNzo0MAogICAgLSAoSU5TVEFMTCkgdXBkYXRlZAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjQ2OjUyCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTE6NTU6MTAKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwoKaGFyZGFrZXIgMjQgQXByIDk2IDEzOjI1OjQ4CiAgICAtIChjb25maWcqLGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIGNvbmZpZyBjaGVja2luZyBmb3IgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTQ6Mzc6NDcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgbmV3IHByZWY6ICBkb24ndCBwb3AgZm9yd2FyZCBvbiBuZXcgcHJvYmxlbXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC41IC0+IFYzLjAuNgoKaGFyZGFrZXIgMjQgSmFuIDk2IDE2OjMxOjIwCiAgICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAoKRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4gMjQgSmFuIDk2IDE2OjMzOjA4CiAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAgLSBmaXhlcyB0aGUgLWwgTE9HRklMRSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSBpdC4KCmhhcmRha2VyIDI0IEphbiA5NiAxNjozNjo1MQogICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAgLSBjaGFuZ2VkIHRoZSB3YXkgbWliLnR4dCBpcyBidWlsdAogICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAgLSBERUZNQVhMT0FEQVZFIC0+IERSRU1PVkVNRUVGTUFYTE9BREFWRQoKaGFyZGFrZXIgMjYgSmFuIDk2IDA4OjI1OjA4CiAgICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgICAtIFRoYW5rcyBnb2VzIHRvIHBvbW1pZXJAdm9sbmF5LnN0b3J0ZWsuY29tIChWaW5jZW50IFBvbW1pZXIgKFRvdWxvdXNlKSkKCmhhcmRha2VyICA5IEZlYiA5NiAxNzowNTowMAogICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgICAtIFJldHVybnMgZGlmZmVyZW50IHN5c09iamVjdElEJ3MgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlCiAgICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgICBmb3IgaG9zdHMgdXNpbmcgdGhlIHVjZC1zbm1wIGFnZW50LiAgU2VlIHRoZSBvdi9SRUFETUUgZmlsZSBmb3IgZGV0YWlscy4KCmhhcmRha2VyIDEyIEZlYiA5NiAxNDoyODoyNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmhpbiwgYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpCiAgICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCgpoYXJkYWtlciAxNiBGZWIgOTYgMTY6MzI6NDEKICAgIC0gKGFjY29uZmlnLmgsY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKQogICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCgpoYXJkYWtlciAyMSBGZWIgOTYgMTY6MTI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSBzbm1wZC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjE1OjM2CiAgICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgIC0gY29kZSB0YWtlbiBmcm9tIDIuMC4xIGFuZCBzdWJtaXR0ZWQgdG8gbWUgYnkgZnJhbmN1c0BtZXRzbnkuZGVscGhpLmNvbS4KICAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KCmhhcmRha2VyICA2IE1hciA5NiAwOTowOToxNQogICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KCmhhcmRha2VyICA2IE1hciA5NiAxMDowNjoyNAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKSBzbWFsbCBidWdzIGZpeGVkCiAgICAgIC0gZGlzayBlbnRyaWVzIHdpdGggbm8gc2l6ZSBzcGVjaWZpZWQgY2F1c2VkIHNlZy1mYXVsdHMuCiAgICAgIC0gYmV0dGVyIHR5cGUgY2hlY2tpbmcgb24gTUlCIGZvciAnZXhlYyBNSUInIGVudHJpZXMuCiAgICAgIC0gbW9yZSBlcnJvciBtZXNzYWdlcyBhZGRlZC4KCmhhcmRha2VyICA2IE1hciA5NiAxNjozODoxNgogICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgIC0gQ2hhbmdlZCBjYXBpdGFsaXphdGlvbiBzY2hlbWVzIHRvIGJlIG1vc3kgY29tcGxpYW50LgogICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6NTg6MTEKICAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KCmhhcmRha2VyICA4IE1hciA5NiAxMDozMTozNAogICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgoKaGFyZGFrZXIgIDggTWFyIDk2IDE2OjU2OjA4CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL2V4ZWMuYykKICAgICAgIC0gcmVsb2NhdGFibGUgZXhlYydzIGZhaWxlZCB0byBjbG9zZSB0aGUgY2FjaGUgZmlsZS4KCmhhcmRha2VyIDExIE1hciA5NiAxMzozNzoyNQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6IGNvbW1lbnRlZCBvdXQgbmxpc3Qgd2FybmluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6MTc6MjYKICAgIC0gKG1hbi97TWFrZWZpbGUuaW4sc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZn0sdmVyc2lvbnRhZyxzZWRzY3JpcHQuaW4pOgogICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjU3CiAgICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KCmhhcmRha2VyIDExIE1hciA5NiAxNTo0MDoxNwoKICAgIC0gKFJFQURNRSk6IG1vcmUgY2xlYW4gdXAgYW5kIGFkZGVkIHJlZmVyZW5jZSB0byB0aGUgdWNkLXNubXAgbWFpbGluZyBsaXN0LgoKR2lvdmFubmkgUy4gTWFyem90IDxnbWFyem90QGJheW5ldHdvcmtzLmNvbT4gMTEgTWFyIDk2IDE1OjU3OjIwCgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgICB3aXRoIGFuIHVuc2lnbmVkIHRpbWV2YWwudHZfc2VjIHZhbHVlLgogICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgoJdGhlIHBhdGNoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjQKCmhhcmRha2VyIDE5IEphbiA5NiAxNzozMToxNgogICAgLSAoY29uZmlndXJlKikKICAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAgLSBIb3BlZnVsbHkgbm93IHVzaW5nIGNvcnJlY3QgJ21ha2UnIGRlZmluaXRpb25zCgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzI6NTcKICAgIC0gKGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIERlY2xhaXJlZCBtb3JlIHN0YXRpYyB2YXJpYWJsZXMgKGxvbmdfcmV0KSB0byBmaXggc3VuNHMgZXhpdCBjb2RlcyAoYWdhaW4pLgoKaGFyZGFrZXIgMjIgSmFuIDk2IDE2OjI3OjMwCiAgICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgICAtIFRoaXMgYWxzbyBmaXhlcyB0aGUgbWliLnR4dCBmaWxlIGRlZmluaXRpb25zIGlmIHNvbWV0aGluZyBpcyB0dXJuZWQgb2ZmLgogICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KCmhhcmRha2VyIDIyIEphbiA5NiAxNzoxODo1OAogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MjM6MTcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAgLSByZW1vdmVkIGFuIG9sZCBkZWJ1Z2dpbmcgcHJpbnRmLgogICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgIC0gTWFkZSBoaWdobGlnaHRUaGlja25lc3MgYSBnbG9iYWwgcGFyYW1ldGVyIHZpYSAkd2luZG93LT5vcHRpb24oJ2FkZCcpLgogICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4zCgpoYXJkYWtlciAyMyBPY3QgOTUgMTY6Mzc6NDMKICAgIC0gKGV4dGVuc2libGUuYykgc3RvcHBlZCByZXBvcnRpbmcgYW55dGhpbmcgZm9yIHRoZSBkaXNrIG1pYiBpZiBubwogICAgICBkaXNrcyB3ZXJlIGRlZmluZWQgaW4gdGhlIHNubXBkLmNvbmYgZmlsZS4gIFRoaXMgd2FzIGNhdXNpbmcgYW4KICAgICAgZXJyb3IgaW4gdGhlIGFnZW50J3MgZXJyb3IgbWliIHdoZW4gbm8gZGlza3Mgd2VyZSBkZWZpbmVkIGFuZAogICAgICBzb21lb25lIHdhbGtzIHRoZSBkaXNrIG1pYi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNDo0NwogICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDU6MTIKICAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA3OjQ1CiAgICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBzb2xhcmlzIHNwZWNpZmljczogIC1EU1ZSNAogICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowODo0OQogICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowOTozNwogICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MTA6NDkKICAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25zZSBlcnJvcnMuCiAgICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKCmhhcmRha2VyICAxIERlYyA5NSAxNjoyMDoxMwogICAgLSBsb2NhbC9zbm1wY2hlY2s6ICAgICAgICpuZXcgZmVhdHVyZXMqCiAgICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgICAtIC1mIG9uIHRoZSBjb21tYW5kIGxpbmUgb25seSBjaGVja3MgZm9yIGZpeGFibGUgcHJvYmxlbXMKICAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgICBkZXRlcm1pbmUgaWYgYSBob3N0IGlzIHVwLgogICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAgLSBBZGRlZCBhIGxvZ2dpbmcgd2luZG93IGZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNraW5nIG9mIGFjdGlvbnMuCiAgICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAgLSBOb3cgdHJhbnNsYXRlcyBtaWIgbnVtYmVycyBpbnRvIG1vcmUgcmVhc29uYWJsZSBuYW1lcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE0OjU3OjE0CiAgICAtIChjb25maWd1cmUqKSBhZGRlZCBBQ19UWVBFX1BJRF9UIHRvIHRoZSBjb25maWd1cmUgY2hlY2tzCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDE6MTAKICAgIC0gKHNubXBjaGVjaykKICAgICAgLSBOZXcgZmxhZzogIC1kLCBkb24ndCBzdGFydCBjaGVja2luZyBhbnl0aGluZy4gIEp1c3QgYnJpbmcgdXAgaW50ZXJmYWNlLgogICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICAgY29uc3RydWN0cy4KCmhhcmRha2VyICA1IERlYyA5NSAxNTowNToyMAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZSkKICAgICAgLSBCdWcgZml4OiAgYWxwaGFzIGFuZCBzdW5vc2VzIHdlcmUgcmVwb3J0aW5nIGluY29ycmVjdCBleHRlbnNpYmxlCiAgICAgICAgZXhpdCBjb2Rlcy4gICh5ZXQgYW5vdGhlciA2NC8zMiBiaXQgYnVnIGZvdW5kKS4KICAgICAgLSBCdWcgZml4OiBhZ2VudC11cGRhdGUscmVzdGFydCwgYW5kIGNhY2hlIG1pYiBmbHVzaCBlbnRyaWVzIHdlcmUKICAgICAgICByZXR1cm5pbmcgdmFsdWVzIGluc3RlYWQgb2YgcG9pbnRlcnMgdG8gdmFsdWVzLgoKaGFyZGFrZXIgMTMgRGVjIDk1IDE1OjI3OjE5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL21pc2MuYykgYnVnIGZpeGVzIGZvciBleGVjIGl0ZW1zOgogICAgICAtIGEgc2Vjb25kIHNubXB3YWxrIG9mIHRoZSBleGVjIGl0ZW0gd291bGQgcmV0dXJuIHRoZSBvbGQgY2FjaGUKICAgICAgICBmaWxlLiAgRml4ZWQgYnkgcmVzZXRpbmcgdGhlIGxhc3QgY2FjaGV0aW1lIHRvIDAgdG8gYWx3YXlzIHJlc2NhbgogICAgICAgIGFmdGVyIGZvcmsvcGlwZS9tZW1vcnkvZXRjIGVycm9ycy4KICAgICAgLSBNYWRlIGxhc3RyZXN1bHQgYSBzdGF0aWMgdmFyLiAgV2FzIHJldHVybmluZyB3cm9uZyBleGl0IGNvZGVzCiAgICAgICAgdW5kZXIsIHN0cmFuZ2VseSBlbm91Z2gsIG9ubHkgc3Vub3MtNCBtYWNoaW5lcy4KCmhhcmRha2VyIDIwIERlYyA5NSAwOTo1MzoxMAogICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgoKaGFyZGFrZXIgMjAgRGVjIDk1IDE1OjU2OjE2CiAgICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDowMTozNQogICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDoyNDozNwogICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgICAtIHVzZWQgdG8gZHluYW1pY2FsbHkgYnVpbGQgbWliLnR4dCBhbmQgbG9jYWwvc25tcGNoZWNrLgoKaGFyZGFrZXIgMjggRGVjIDk1IDEyOjA2OjQ5CiAgICAtIENyZWF0ZWQgYSBFWEFNUExFLmNvbmYgZmlsZSBmb3IgZXhhbXBsZSB1c2FnZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yLjEKCmhhcmRha2VyIDI5IFNlcCA5NSAxMzo0Mzo0OQogICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgICAtIHRvIGluc3RhbGwsIHlvdSBtdXN0IG5vdyBydW4gLi9jb25maWd1cmUgZmlyc3QgdG8gZ2VuZXJhdGUgdGhlCiAgICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICAgcmF0aGVyIHRoYW4gYmVpbmcgZGVwZW5kYW50IG9uIGFyY2hpdGVjdHVyZSBuYW1lcy4KICAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAgLSAoYWdlbnQvc25tcF92YXJzLmgpIGNoYW5nZWQgU1lTTkFNRSBkZWZpbmUgdG8gU1lTVEVNTkFNRSBkZWZpbmUgdG8KICAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgIC0gTW9zdCBvZiBwb3J0IHRvIFNvbGFyaXMgMi40IGZpbmlzaGVkLiAgVGhlIGtlcm5lbCByZWFkcyBzdGlsbCBuZWVkIHdvcmsuCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDY6NDMKICAgIC0gKE5FV1MpIHVwZGF0ZWQgdGhlIG5ld3MgZmlsZS4KCmhhcmRha2VyICAzIE9jdCA5NSAwOToyNDowMAogICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6NDM6NTQKICAgICh2ZXJzaW9uaW5mby5jKSBBZGRlZCAzLTAtMy1BMSB0YWcKCmhhcmRha2VyICA0IE9jdCA5NSAxNjo1MzozOQogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjIzOjA1CiAgICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgICAtIE1vc3QgbWliSUkgZW50cmllcyBub3cgd29yay4KICAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgICAtIGNjIGFuZCBnY2MgYm90aCBjb21waWxlIGV2ZXJ5dGhpbmcgbm93LgoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjQ4OjIzCiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTE6Mzc6MDAKICAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgIENoYW5nZWQgbGlzdGluZyBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcwogICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6Mjg6NDgKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjowNAogICAgLSAoc25tcGQuYykgQWRkZWQgdHdvIG5ldyBmbGFnczoKICAgICAgLWggZm9yIGhlbHAKICAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjo0MwogICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KCmhhcmRha2VyICA2IE9jdCA5NSAxNjo0MDozOAogICAgLSAoc25tcGQuYykgVXNhZ2Ugb2YgLS1oZWxwIGFuZCAtLXZlcnNpb24gc2hvdWxkIHdvcmsgbm93Li4uICBHTlUgc3RhbmRhcmQuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDE6MTgKICAgIC0gKE5FV1MvLVRPRE8pIC1oLy0taGVscCwgLXYvLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb25zCgpoYXJkYWtlciAxMSBPY3QgOTUgMTc6MzM6MjYKICAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbikKICAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICArICBwdXQgLi4vbGliL2xpYnNubXAuYSBpbiBhcHBsaWNhdGlvbgoKaGFyZGFrZXIgMTMgT2N0IDk1IDE1OjQ1OjI4CiAgICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgIC0gKGNvbmZpZykgU2V0dXAgdG8gdXNlIC0tcHJlZml4IHRvIGxvb2sgZm9yIGNvbmZpZyBmaWxlcy4KCmhhcmRha2VyIDE2IE9jdCA5NSAxMzowMTozOQogICAgLSAoTWFrZWZpbGVzKSBGYWlybHkgZGVjZW50ICdtYWtlIGluc3RhbGwnIG5vdyBwb3NzaWJsZS4gIEluc3RhbGxzCiAgICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICAgZGVmaW5lZCBsb29zZWx5IGFzICQocHJlZml4KS9saWIvc25tcC8uCgpoYXJkYWtlciAxNiBPY3QgOTUgMTU6MDI6MDEKICAgIC0gKE1ha2VmaWxlcykgbWFrZSBpbnN0YWxsIGVjaG9zIHdoYXQgaXRzIGRvaW5nIGluIGEgbW9yZSBjbGVhciBmYXNoaW9uCiAgICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjIxOjQzCiAgICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTY6NDM6MTIKICAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNjo1ODozMgogICAgdmVyc2lvbiB0YWcgKCAzLjAuMyApIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNzowMDoyMgogICAgLSBDaGFuZ2VMb2cgdXBkYXRlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjIKCmhhcmRha2VyIDIxIFNlcCA5NSAwOToyNzoxOAogICAgKHNubXBsaWIvbWQ1LmMpIEZvcmdvdCB0byBpbmNsdWRlIHN5cy90eXBlcy5oIGZvciB1X2xvbmcgZGVmaW5pdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4xCgpoYXJkYWtlciAyNiBKdWwgOTUgMTY6MzE6NDEKICAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgICB0aGUgYWdlbnQgd2lsbCBleGl0LiAgVGhpcyB3YXMgdGhlIGRlZmF1bHQuICBJIHdhbnRlZCBpdCB0bwogICAgICBjb250aW51ZS4KICAgIAogICAgLSBQb3J0IHRvIGRlYy1hbHBoYS9PU0YgMy4xCiAgICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgICAtIGNsZWFuZWQgdXAgYSBMT1Qgb2YgYnVncyBDTVUgY29kZSBpbiB0aGUgcHJvY2Vzcy4KCmhhcmRha2VyIDI4IEp1bCA5NSAxNDoyMzo0MQogICAgWWV0IG1vcmUgcHJvYmxlbXMgZml4ZWQgaW4gdGhlIGFscGhhIHBvcnQuCiAgICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCgpoYXJkYWtlciAzMSBKdWwgOTUgMTY6Mjc6NDcKICAgIC0gc25tcGNoZWNrIGNoYW5nZXM6CiAgICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgICAtIE5vdyByZXF1aXJlcyB0aGUgVGVybTo6UmVhZGtleSBwYWNrYWdlLgogICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgIC0gc2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiBuZXcgcHJvYmxlbXMgdG8gcGlua2lzaAogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgcGluZyBob3N0PwogICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAoKaGFyZGFrZXIgIDEgU2VwIDk1IDExOjU3OjUyCiAgICAtIEZpeGVkIGFscGhhJ3Mga2VybmVsIGxvb2t1cHM6CiAgICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjowOToyNQogICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjoxMzo0OQogICAgTWlub3IgYnVnOgogICAgICAoc2hfY291bnRfcHJvY3MpIGNoZWNrIGlmIHJldHVybmVkIGZpbGUgZGVzY3JpcHRvciA+IDAgYmVmb3JlIGNvbnRpbnVpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMAoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjEzOjUzCiAgICBSZW1vdmVkICdnbWFrZScgLT4gJ21ha2UnIGluIGFnZW50L01ha2VmaWxlCgpoYXJkYWtlciAxNiBKdW4gOTUgMTA6MTU6NDIKICAgIEhvdXNlIGNsZWFuaW5nCiAgICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAgCShleGNlcHQgb25lIGluY2x1ZGUgZmlsZSBlcnJvciBJIGRvbid0IGhhdmUgY29udHJvbCBvdmVyLikKICAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoxMzo1MwogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgIHBlcnJvcigpIGlzIGNhbGxlZCBtb3JlIGZyZXF1ZW50bHkgZm9yIGxvZyBhcmNoaXZhbAogICAgCiAgICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgICBIUC1VWDogIGlmIGFnZW50LyouYyBhbmQgYWdlbnQvZXh0ZW5zaWJsZS8qLmMgYXJlIGJ1aWx0IHdpdGggZ2NjLAogICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoyMDo0OAogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKCmhhcmRha2VyIDIxIEp1biA5NSAwOToxMToyNwogICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTU6MzEKICAgIEJ1ZyBGaXg6CiAgICAgIFN0b3BwZWQgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIG5vbi1zdGF0aWMgY2hhciBhcnJheS4uLiAgKC0+IHN0YXRpYyBjaGFyKQogICAgICBQYXNzaW5nIHdyb25nIHBvaW50ZXIgdG8gc2V0ZXJyb3JzdGF0dXMoKSBpbiBzZXRQZXJyb3JzdGF0dXMoKQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxODozNwogICAgZWNlLW1pYi5kZWY6CiAgICBCdWcgRml4OgogICAgICBMb2FkYXZlIG1pYjogIEludGVnZXIgLT4gRGlzcGxheVN0cmluZwogICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgICAKICAgIEZlYXR1cmU6CiAgICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE5OjE3CiAgICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MjA6MjMKICAgIHNubXBsaWI6CiAgICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDExOjI3OjAwCiAgICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgICAtbCBMT0dGSUxFICAgICAgIE91dHB1dHMgc3RkZXJyL291dCB0byBMT0dGSUxFIChvdmVycmlkZXMgY29uZmlnLmggZGVmKQogICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCgpoYXJkYWtlciAxMCBKdWwgOTUgMTI6Mjk6MzIKICAgIC0gTW9yZSBwZXJyb3IoKXMgY29udmVydGVkIHRvIHNldCB0aGUgc25tcCBlcnJvciBzdGF0dXMgZmxhZyBvbiB0aGUgYWdlbnQuCiAgICAtIGVycm9yIHN0YXR1cyBmbGFnIGlzIG5vdyBwcmlvcml0aXplZC4gIHBlcnJvcnMgZ2V0IHRoZSBoaWdoZXN0IHNvCiAgICAgIG90aGVyIGVycm9ycyB3b24ndCBvdmVycmlkZSB0aGVtIGlmIHRoZXkgaGFwcGVuIGF0IGEgbGF0ZXIgdGltZS4KICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSByZXN0YXJ0IG1pYiB0byB0aGUgdmVyc2lvbiBtaWIgb2YgdGhlCiAgICAgIGFnZW50LiAgU2V0dGluZyB0aGlzIHdyaXRhYmxlIG1pYiB0byBvbmUgd2lsbCBjYXVzZSBpdCB0byBleGVjCiAgICAgIGl0c2VsZiBhZ2FpbiAoZm9yIHJlbW90ZSByZXN0YXJ0L3VwZGF0ZXMpLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjMwOjE5CiAgICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTQgSnVsIDk1IDE1OjEyOjQwCiAgICAtIEZpbmlzaGVkIHRoZSByZXN0YXJ0IG1pYi4gIFRoaXMgaXMgYSBzZXRhYmxlIHN1Yi1taWIgb2YgdGhlIHZlcnNpb24KICAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICAgdGhlIGFnZW50LgogICAgCiAgICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgICBJZiBzYWlkIHByb2dyYW0gdHJpZXMgdG8gcmVzZW5kIHRoZSByZXF1ZXN0ICh3aGljaCBtb3N0IGRvKSwgaXQKICAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxNTozMQogICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICAgYmV0YS4gIEl0IGRvZXMgZXhwZWN0IGEgbG9nIGZpbGUgb2YgcHJvYmxlbXMgdG8gZXhpc3QgKHBvaW50IGl0IHRvCiAgICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICAgSG93ZXZlciwgaXQgd2lsbCBxdWVyeSBhbiBhZ2VudCwgY2hlY2sgaXRzIHByb2JsZW1zIGJhc2VkIG9uIHRoZQogICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSAzLTBBMToKCmhhcmRha2VyICAyIEp1biA5NSAxNjoyMzo0NgogICAgLSB2ZXJzaW9uIHVwZGF0ZQoKaGFyZGFrZXIgIDUgSnVuIDk1IDEyOjQ0OjQ2CiAgICAtIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAgLS0gIG5vIGxvbmdlciByZXF1aXJlcyBHTlUgbWFrZQogICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgIAogICAgLSBTdW5PUyBhZGRpdGlvbnM6CiAgICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjE6MDcKICAgIC0gQWRkZWQgYSBTTk1QQkxPQ0sgb3B0aW9uIHRvIHRoZSBjb25maWcuaCBmaWxlLiAgU3VwcG9zZWRpbHkgc2V0dGluZwogICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAgLS0gQ29udHJpYnV0ZWQgYnkgU2FuamFpIE5hcmFpbiA8bmFyYWluQHRodW1wZXIuYmVsbGNvcmUuY29tPgoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjUxCiAgICAtIENvcnJlY3RseSBvcmRlcmVkIHRoZSBtaWIgdGFibGUgbGlzdC4KICAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMzozNQogICAgLSBDb3JyZWN0IHVzYWdlIGZvciBzbm1wd2FsayBpcyBub3cgcG9zc2libGUuICBJRSwgc25tcHdhbGsgdGFyZ2V0CiAgICAgIC4xLjMuNi4xIHdpbGwgbm93IGJyb3dzZSB0aGUgZW50aXJlIHRyZWUuCiAgICAgIC0tIFN0aWxsIGZhaWxzIG9uIHJlbG9jYXRhYmxlIGV4dGVuc2libGUgbWlicyBhbmQgd2lsbCB1bnRpbCBJCiAgICAgICAgIHdyaXRlIGEgZHluYW1pYyB0cmVlIGJ1aWxkZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTQ6MDg6MTUKICAgIC0gQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNTozOAogICAgLSBsb2NhbC90cmFwbm90aWY6CiAgICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQoKaGFyZGFrZXIgMTIgSnVuIDk1IDEwOjM3OjQ2CiAgICAtIFJlcG9ydHMgYWxsIGVycm9ycyB0aHJvdWdoIHRoZSBlcnJvciBtaWIgbm93IGluc3RlYWQgb2YgdGhyb3VnaCBwZXJyb3IoKS4KICAgIC0gQ2xlYW5lZCB1cCBlcnJvciBoYW5kbGluZy4gIFNob3VsZG4ndCBoYW5kbGUgZXJyb3JzIG5pY2VseSBpZiBzeXN0ZW0KICAgICAgZXJyb3JzIG9jY3VyIHdoZW4gc2Nhbm5pbmcgYW4gZXh0ZW5zaWJsZSBtaWIuCgpoYXJkYWtlciAxNCBKdW4gOTUgMTE6MjQ6MjAKICAgIGFnZW50OgogICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgIFNOTVB3YWxrL2dldG5leHQgcHJvdG9jb2xzLiAgWW91IGNhbiBub3cgd2FsayB0aGUgZW50aXJlIHRyZWUKICAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgICAoYWdlbnQvc25tcF92YXJzLmMpIGZvciBjb3JyZWN0IG9yZGVyLiAgSSBoYXZlIGFkZGVkIHRoaW5ncyB0byB0aGUKICAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEyOjU2OjQ5CiAgICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgICAtIEdMT0JBTFNFQ1VSSVRZIG5vdyB1c2VzIHRoZSBsZWZ0IG1vc3QgZm91ciBiaXRzIGluIHRoZSBNSUIgYWNsLgogICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KCgpoYXJkYWtlciAxNCBKdW4gOTUgMTM6NDM6MzgKICAgIC0gQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICAodWNkLXNubXAtYW5ub3VuY2VAdWNkLXNubXAudWNkYXZpcy5lZHUpCgoKIyBnZW5lcmF0ZWQgdXNpbmc6CiMgIGN2czJjbCAtYiAtciAtZiBDaGFuZ2VMb2cuYWRkIC1GIFY0LTItcGF0Y2hlcyAtLW5vLXdyYXAgLVMKIyAgcGVybCBkaXN0L2NoYW5nZWxvZ2ZpeCA8IENoYW5nZUxvZy5hZGQgPiBDaGFuZ2VMb2cucmVhbGx5YWRkCg==