MjAxMS0wMi0wMjogSHVuc3BlbGwgMS4zLjIgcmVsZWFzZToKICAtIGZpeCBsaWJyYXJ5IHZlcnNpb25pbmcKICAtIGltcHJvdmVkIG1hbnVhbCAKCjIwMTEtMDItMDI6IEh1bnNwZWxsIDEuMy4xIHJlbGVhc2U6CiAgLSBidWcgZml4ZXMKCjIwMTEtMDEtMjY6IEh1bnNwZWxsIDEuMi4xNS8xLjMgcmVsZWFzZToKICAtIG5ldyBmZWF0dXJlczogTUFYRElGRiwgT05MWU1BWERJRkYsIE1BWENQRFNVR1MsIEZPUkJJRFdBUk4sIHNlZSBtYW51YWwKICAtIGJ1ZyBmaXhlcwoKMjAxMS0wMS0yMToKICAtIG5ldyBmZWF0dXJlczogRk9SQ0VVQ0FTRSBhbmQgV0FSTiwgc2VlIG1hbnVhbAogIC0gbmV3IG9wdGlvbnM6IC1yIHRvIGZpbHRlciBwb3RlbnRpYWwgbWlzdGFrZXMgKHJhcmUgd29yZHMKICAgIHNpZ25lZCBieSBmbGFnIFdBUk4gaW4gdGhlIGRpY3Rpb25hcnkpCiAgLSBsaW1pdGVkIGFuZCBvcHRpbWl6ZWQgc3VnZ2VzdGlvbnMKCjIwMTEtMDEtMDY6IEh1bnNwZWxsIDEuMi4xNCByZWxlYXNlOgogIC0gYnVnIGZpeAoyMDExLTAxLTAzOiBIdW5zcGVsbCAxLjIuMTMgcmVsZWFzZToKICAtIGJ1ZyBmaXhlcwogIC0gaW1wcm92ZWQgY29tcG91bmQgaGFuZGxpbmcgYW5kCiAgICBvdGhlciBpbXByb3ZlbWVudHMgc3VwcG9ydGVkIGJ5IE9wZW5UYWFsIEZvdW5kYXRpb24sIE5ldGhlcmxhbmRzCjIwMTAtMDctMTU6IEh1bnNwZWxsIDEuMi4xMiByZWxlYXNlCjIwMTAtMDUtMDY6IEh1bnNwZWxsIDEuMi4xMSByZWxlYXNlOgogIC0gTWFpbnRlbmFuY2UgcmVsZWFzZSBidWcgZml4ZXMKMjAxMC0wNC0zMDogSHVuc3BlbGwgMS4yLjEwIHJlbGVhc2U6CiAgLSBNYWludGVuYW5jZSByZWxlYXNlIGJ1ZyBmaXhlcwoyMDEwLTAzLTAzOiBIdW5zcGVsbCAxLjIuOSByZWxlYXNlOgogIC0gTWFpbnRlbmFuY2UgcmVsZWFzZSBidWcgZml4ZXMgYW5kIHdhcm5pbmdzCiAgLSBNQVAgc3VwcG9ydCBmb3IgY29tcG9zZWQgY2hhcmFjdGVycyBvciBjaGFyYWN0ZXIgc2VxdWVuY2VzCjIwMDgtMTEtMDE6IEh1bnNwZWxsIDEuMi44IHJlbGVhc2U6CiAgLSBEZWZhdWx0IEJSRUFLIGZlYXR1cmUgYW5kIGJldHRlciBoeXBoZW5hdGVkIHdvcmQgc3VnZ2VzdGlvbiB0byBhY2NlcHQKICAgIGFuZCBmaXggKGNvbXBvdW5kKSB3b3JkcyB3aXRoIGh5cGhlbiBjaGFyYWN0ZXJzIGJ5IHNwZWxsIGNoZWNrZXIKICAgIGluc3RlYWQgb2YgYnkgd29yayBicmVha2luZyBjb2RlIG9mIE9wZW5PZmZpY2Uub3JnLiBXaXRoIHRoaXMgZmVhdHVyZQogICAgaXQncyBwb3NzaWJsZSB0byBhY2NlcHQgaHlwaGVuYXRlZCBjb21wb3VuZCB3b3Jkcywgc3VjaCBhcyAic2NvdC1mcmVlIiwKICAgIHdoZXJlICJzY290IiBpcyBub3QgYSBjb3JyZWN0IEVuZ2xpc2ggd29yZC4KCiAgLSBJQ09OViAmIE9DT05WOiBpbnB1dCBhbmQgb3V0cHV0IGNvbnZlcnNpb24gdGFibGVzIGZvciBvcHRpb25hbCBjaGFyYWN0ZXIKICAgIGhhbmRsaW5nIG9yIHVzaW5nIHNwZWNpYWwgaW5uZXIgZm9ybWF0LiBFeGFtcGxlOgoKICAjIEFjY2VwdGluZyBkZSBmYWN0byByZXBsYWNlbWVudHMgb2YgdGhlIFJvbWFuaWFuIGNvbW1hIGFjdXRlZCBsZXR0ZXJzCiAgU0VUIFVURi04CiAgSUNPTlYgNAogIElDT05WIMWfIMiZCiAgSUNPTlYgxaMgyJsKICBJQ09OViDFniDImAogIElDT05WIMWiIMiaCgogICAgVHlwaWNhbCB1c2FnZSBvZiBJQ09OVi9PQ09OViBpcyB0byBtYW5hZ2UgYW4gaW5uZXIgZm9ybWF0IGZvciBhIHNlZ21lbnRhbAogICAgd3JpdGluZyBzeXN0ZW0sIGxpa2UgdGhlIEV0aGlvcGljIHNjcmlwdCBvZiB0aGUgQW1oYXJpYyBsYW5ndWFnZS4KCiAgLSBFeHRlbmRlZCBDSEVDS0NPTVBPVU5EUEFUVEVSTiB0byBoYW5kbGUgY29ucG91bmQgd29yZCBhbHRlcm5hdGlvbnMsIGxpa2UKICAgIHNhbmRoaSBmZWF0dXJlIG9mIFRlbHVndSBhbmQgb3RoZXIgd3JpdGluZyBzeXN0ZW1zLgoKICAtIFNJTVBMSUZJRURUUklQTEUgY29tcG91bmQgd29yZCBmZWF0dXJlOiBhbGxvdyBzaW1wbGlmaWVkIFN3ZWRpc2ggYW5kCiAgICBOb3J3ZWdpYW4gY29tcG91bmQgd29yZCBmb3JtcywgbGlrZSB0aWxsw6V0YSAodGlsbHxsw6V0YSkgYW5kCiAgICBidXNzasOlZsO4ciAoYnVzc3xzasOlZsO4cikKCiAgLSB3b3JkZm9ybXM6IHdvcmQgZ2VuZXJhdG9yIHNjcmlwdCBmb3IgZGljdGlvbmFyeSBkZXZlbG9wZXJzIChIdW5zcGVsbAogICAgdmVyc2lvbiBvZiB1bm11bmNoKS4KCiAgLSBidWcgZml4ZXMKCjIwMDgtMDgtMTU6IEh1bnNwZWxsIDEuMi43IHJlbGVhc2U6CiAgLSBGVUxMU1RSSVA6IG5ldyBvcHRpb24gZm9yIGFmZml4IGhhbmRsaW5nLiBXaXRoIEZVTExTVFJJUCwgYWZmaXggcnVsZXMgY2FuCiAgICBzdHJpcCBmdWxsIHdvcmRzLCBub3Qgb25seSBvbmUgbGVzcyBjaGFyYWN0ZXJzLgogIC0gQ09NUE9VTkRSVUxFIHdvcmtzIHdpdGggYWxsIGZsYWcgdHlwZXMuIChDT01QT1VORFJVTEUgaXMgZm9yIHBhdHRlcm4KICAgIG1hdGNoaW5nLiBGb3IgZXhhbXBsZSwgZW5fVVMgZGljdGlvbmFyeSBvZiBPcGVuT2ZmaWNlLm9yZyB1c2VzIENPTVBPVU5EUlVMRQogICAgZm9yIG9yZGluYWwgbnVtYmVyIHJlY29nbml0aW9uOiAxc3QsIDJuZCwgMTF0aCwgMTJ0aCwgMjJuZCwgMTEydGgsIDEwMDAxMjJuZAogICAgZXRjLikuCiAgLSBvcHRpbWl6ZWQgc3VnZ2VzdGlvbnM6CiAgICAtIG1vZGlmaWVkIDEtY2hhcmFjdGVyIGRpc3RhbmNlIHN1Z2dlc3Rpb24gYWxnb3JpdGhtczogc2VhcmNoIGEgVFJZIGNoYXJhY3RlcgogICAgICBpbiBhbGwgcG9zaXRpb24gaW5zdGVhZCBvZiBhbGwgVFJZIGNoYXJhY3RlcnMgaW4gYSBjaGFyYWN0ZXIgcG9zaXRpb24KICAgICAgKGl0IGNhbiBnaXZlIG1vcmUgcmVhZGFibGUgc3VnZ2VzdGlvbiBvcmRlciwgYWxzbyBiZXR0ZXIgc3VnZ2VzdGlvbnMKICAgICAgaW4gdGhlIGZpcnN0IHBvc2l0aW9ucywgd2hlbiBUUlkgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJ5IGZyZXF1ZW5jeS4pCiAgICAgIEZvciBleGFtcGxlLCBzdWdnZXN0aW9ucyBmb3IgIm1vemUiOgogICAgICBvb3plLCBkb3plLCBSb3plLCBtYXplLCBtb3JlIGV0Yy4gKEh1bnNwZWxsIDEuMi42KSwKICAgICAgbWF6ZSwgbW9yZSwgbW90ZSwgb296ZSwgbW9sZSBldGMuIChIdW5zcGVsbCAxLjIuNykuCiAgICAtIGV4dGVuZGVkIGNvbXBvdW5kIHdvcmQgY2hlY2tpbmcgZm9yIGJldHRlciBDT01QT1VORFJVTEUgcmVsYXRlZAogICAgICBzdWdnZXN0aW9ucywgZm9yIGV4YW1wbGUgRW5nbGlzaCBvcmRpbmFsIG51bWJlcnM6IDEyMTMyM3RoIC0+IDEyMTMyM3JkCiAgICAgIChpdCBuZWVkcyBhbHNvIGEgdGgtPnJkIFJFUCBkZWZpbml0aW9uKS4KICAtIGJ1ZyBmaXhlcwoKMjAwOC0wNy0xNTogSHVuc3BlbGwgMS4yLjYgcmVsZWFzZToKICAtIGJ1ZyBmaXggcmVsZWFzZSAoZml4IGFmZml4IHJ1bGUgY29uZGl0aW9uIGNoZWNraW5nIG9mIHNrX1NLIGRpY3Rpb25hcnksCiAgICBpY29udiBzdXBwb3J0IGluIHN0ZW1taW5nIGFuZCBtb3JwaG9sb2dpY2FsIGFuYWx5c2lzIG9mIHRoZSBIdW5zcGVsbAogICAgdXRpbGl0eSwgc2VlIGFsc28gQ2hhbmdlbG9nKQoKMjAwOC0wNy0wOTogSHVuc3BlbGwgMS4yLjUgcmVsZWFzZToKICAtIGJ1ZyBmaXggcmVsZWFzZSAoZml4IGFmZml4IHJ1bGUgY29uZGl0aW9uIGNoZWNraW5nIG9mIGVuX0dCIGRpY3Rpb25hcnksCiAgICBhbHNvIG1vcnBob2xvZ2ljYWwgYW5hbHlzaXMgYnkgZGljdGlvbmFyaWVzIHdpdGggdHdvLWxldmVsIHN1ZmZpeGVzKQoKMjAwOC0wNi0xODogSHVuc3BlbGwgMS4yLjQtMiByZWxlYXNlOgogIC0gZml4IEdDQyBjb21waWxlciB3YXJuaW5ncwoKMjAwOC0wNi0xNzogSHVuc3BlbGwgMS4yLjQgcmVsZWFzZToKICAtIGFkZCBmcmVlX2xpc3QoKSBmb3IgQywgQysrIGludGVyZmFjZXMgdG8gZGVhbGxvY2F0ZSBzdWdnZXN0aW9uIGxpc3RzCiAgCiAgLSBidWcgZml4ZXMKCjIwMDgtMDYtMTc6IEh1bnNwZWxsIDEuMi4zIHJlbGVhc2U6CiAgLSBleHRlbmRlZCBYTUwgaW50ZXJmYWNlIHRvIHVzZSBtb3JwaG9sb2dpY2FsIGZ1bmN0aW9ucyBieSBzdGFuZGFyZAogICAgc3BlbGwgY2hlY2tpbmcgaW50ZXJmYWNlLCBzcGVsbCgpIGFuZCBzdWdnZXN0KCkuIFNlZSBodW5zcGVsbC4zIG1hbnVhbCBwYWdlLgoKICAtIGRlZmF1bHQgZGFzaCBzdWdnZXN0aW9ucyBmb3IgY29tcG91bmQgd29yZHM6IG5ld3dvcmQtPiBuZXcgd29yZCBhbmQgbmV3LXdvcmQKCiAgLSBuZXcgbWFudWFsIHBhZ2VzOiBodW5zcGVsbC4zLCBoemlwLjEsIGh1bnppcC4xLgogIAogIC0gYnVnIGZpeGVzCgoyMDA4LTA0LTEyOiBIdW5zcGVsbCAxLjIuMiByZWxlYXNlOgogIC0gZXh0ZW5kZWQgZGljdGlvbmFyeSAoZGljIGZpbGUpIHN1cHBvcnQgdG8gdXNlIG11bHRpcGxlIGJhc2UgYW5kCiAgICBzcGVjaWFsIGRpY3Rpb25hcmllcy4KICAgIAogIC0gbmV3IGFuZCBpbXByb3ZlZCBvcHRpb25zIG9mIGNvbW1hbmQgbGluZSBodW5zcGVsbDoKICAgIC1tOiBtb3JwaG9sb2dpY2FsIGFuYWx5c2lzIG9yIGZsYWcgZGVidWcgbW9kZSAod2l0aG91dCBhZmZpeAogICAgICAgIHJ1bGUgZGF0YSBpdCBzaWducyB0aGUgZmxhZyBvZiB0aGUgYWZmaXggcnVsZXMpCiAgICAtczogc3RlbW1pbmcgbW9kZQogICAgLUQ6IGxpc3QgYXZhaWxhYmxlIGRpY3Rpb25hcmllcyBhbmQgc2VhcmNoIHBhdGgKICAgIC1kOiBzdXBwb3J0IGV4dHJhIGRpY3Rpb25hcmllcyBieSBjb21tYSBzZXBhcmF0ZWQgbGlzdC4gRXhhbXBsZToKICAgIAogICAgaHVuc3BlbGwgLWQgZW5fVVMsZW5fbWVkLGRlX0RFLGRlX21lZCxkZV9nZW8gVU5FU0NPLnR4dAoKICAgIC0gZm9yYmlkZGluZyBpbiBwZXJzb25hbCBkaWN0aW9uYXJ5ICh3aXRoIGFzdGVyaXNrLCAvIHNpZ25zIGFmZml4YXRpb24pCgogIC0gb3B0aW9uYWwgY29tcHJlc3NlZCBkaWN0aW9uYXJ5IGZvcm1hdCAiaHppcCIgZm9yIGFmZiBhbmQgZGljIGZpbGVzCiAgICB1c2FnZToKICAgIGh6aXAgZXhhbXBsZS5hZmYgZXhhbXBsZS5kaWMKICAgIG12IGV4YW1wbGUuYWZmIGV4YW1wbGUuZGljIC90bXAKICAgIGh1bnNwZWxsIC1kIGV4YW1wbGUKICAgIGh1bnppcCBleGFtcGxlLmFmZi5oeiA+ZXhhbXBsZS5hZmYKICAgIGh1bnppcCBleGFtcGxlLmRpYy5oeiA+ZXhhbXBsZS5kaWMKCiAgLSBuZXcgYWZmaXggY29tcHJlc3Npb24gdG9vbCAiYWZmaXhjb21wcmVzcyI6IGNvbXByZXNzaW9uIHRvb2wgZm9yCiAgICBsYXJnZSAobWlsbGlvbnMgb2Ygd29yZHMpIGRpY3Rpb25hcmllcy4KCiAgLSBzdXBwb3J0IGVuY3J5cHRlZCBkaWN0aW9uYXJpZXMgZm9yIGNsb3NlZCBPcGVuT2ZmaWNlLm9yZyBleHRlbnNpb25zIG9yCiAgICBvdGhlciBjb21tZXJjaWFsIHByb2dyYW1zCgogIC0gaW1wcm92ZWQgbWFudWFsCgogIC0gYnVnIGZpeGVzCgoyMDA3LTExLTAxOiBIdW5zcGVsbCAxLjIuMSByZWxlYXNlOgogIC0gbmV3IG1lbW9yeSBlZmZpY2llbnQgY29uZGl0aW9uIGNoZWNraW5nIGFsZ29yaXRobSBmb3IgYWZmaXggcnVsZXMKICAKICAtIG5ldyBtb3JwaG9sb2dpY2FsIGZ1bmN0aW9uczoKICAgIC0gc3RlbSgpIGZvciBzdGVtbWluZwogICAgLSBhbmFseXplKCkgZm9yIG1vcnBob2xvZ2ljYWwgYW5hbHlzaXMKICAgIC0gZ2VuZXJhdGUoKSBmb3IgbW9ycGhvbG9naWNhbCBnZW5lcmF0aW9uCgogIC0gbmV3IGRlbW9zOgogICAgLSBhbmFseXplOiBzdGVtbWluZywgbW9ycGhvbG9naWNhbCBhbmFseXNpcyBhbmQgZ2VuZXJhdGlvbgogICAgLSBjaG1vcnBoOiBtb3JwaG9sb2dpY2FsIGNvbnZlcnNpb24gb2YgdGV4dHMKCjIwMDctMDktMDU6IEh1bnNwZWxsIDEuMS4xMiByZWxlYXNlOgogIC0gZGljdGlvbmFyeSBiYXNlZCBwaG9uZXRpYyBzdWdnZXN0aW9uIGZvciB3b3JkcyB3aXRoCiAgICBzcGVjaWFsIG9yIGZvcmVpZ24gcHJvbm91bmNpYXRpb24gb3IgYWx0ZXJuYXRpdmUgKGJhZCkgdHJhbnNsaXRlcmF0aW9uCiAgICAoc2VlIENoYW5nZWxvZywgdGVzdHMvcGhvbmUuKiBhbmQgbWFudWFsKS4KCiAgLSBpbXByb3ZlZCBkYXRhIHN0cnVjdHVyZSBhbmQgbWVtb3J5IG9wdGltaXphdGlvbiBmb3IgZGljdGlvbmFyaWVzCiAgICB3aXRoIHZhcmlhYmxlIGNvdW50IGZpZWxkcwoKICAtIGJ1ZyBmaXhlcyBmb3IgVW5pY29kZSBlbmNvZGluZyBkaWN0aW9uYXJpZXMgYW5kIG5ncmFtIHN1Z2dlc3Rpb25zCiAgCiAgLSBpbXByb3ZlZCBSRVAgc3VnZ2VzdGlvbnMgd2l0aCBzcGFjZTogaXQgd29ya3Mgd2l0aG91dCBkaWN0aW9uYXJ5CiAgICBtb2RpZmljYXRpb24KCiAgLSB1cGRhdGVkIGFuZCBuZXcgcHJvamVjdCBmaWxlcyBmb3IgV2luZG93cyBBUEkKCjIwMDctMDgtMjc6IEh1bnNwZWxsIDEuMS4xMSByZWxlYXNlOgogIC0gcG9ydGFiaWxpdHkgZml4ZXMKCjIwMDctMDgtMjM6IEh1bnNwZWxsIDEuMS4xMCByZWxlYXNlOgogIC0gcHJvbm91bmNpYXRpb24gYmFzZWQgc3VnZ2VzdGlvbiB1c2luZyBCavZybiBKYWNrZSdzIG9yaWdpbmFsIEFzcGVsbAogICAgcGhvbmV0aWMgdHJhbnNjcmlwdGlvbiBhbGdvcml0aG0gKGh0dHA6Ly9hc3BlbGwubmV0KSwgcmVsaWNlbnNlZCB1bmRlcgogICAgR1BML0xHUEwvTVBMIHRyaS1saWNlbnNlIHdpdGggdGhlIHBlcm1pc3Npb24gb2YgdGhlIGF1dGhvcgoKICAtIGtleWJvYXJkIGJhc2Ugc3VnZ2VzdGlvbiBieSBLRVkgKHNlZSBtYW51YWwpCgogIC0gYmV0dGVyIHRpbWUgbGltaXRzIGZvciBzdWdnZXN0aW9uIHNlYXJjaAoKICAtIHRlc3QgZW52aXJvbm1lbnQgZm9yIHN1Z2dlc3Rpb24gYmFzZWQgb24gV2lraXBlZGlhIGRhdGEKCiAgLSBidWcgZml4ZXMgZm9yIG5vbiBzdGFuZGFyZCBNb3ppbGxhIHBsYXRmb3JtcyBldGMuCgoyMDA3LTA3LTI1OiBIdW5zcGVsbCAxLjEuOSByZWxlYXNlOgogIC0gYmV0dGVyIHRva2VuaXphdGlvbjoKICAgIC0gZm9yIFVSTHMsIG1haWwgYWRkcmVzc2VzIGFuZCBkaXJlY3RvcnkgcGF0aHMgKGRlZmF1bHQ6IHNraXAgdGhlc2UgdG9rZW5zKQogICAgLSBmb3IgY29sb25zIGluIHdvcmRzIChmb3IgRmlubmlzaCBhbmQgU3dlZGlzaCkKICAKICAtIG5ldyBleGFtcGxlczoKICAgIC0gYWZmaXhhdGlvbiBvZiBwZXJzb25hbCBkaWN0aW9uYXJ5IHdvcmRzCiAgICAtIGRpZ2l0cyBpbiB3b3JkcwoKICAtIGJ1ZyBmaXhlcyAoc2VlIENoYW5nZUxvZykKCjIwMDctMDctMTY6IEh1bnNwZWxsIDEuMS44IHJlbGVhc2U6CiAgLSBiZXR0ZXIgTWFjIE9TIFgvQ3lnd2luIGFuZCBXaW5kb3dzIGNvbXBhdGliaWxpdHkKCiAgLSBmaXggSHVuc3BlbGwncyBWYWxncmluZCBlbnZpcm9ubWVudCBhbmQgbWVtb3J5IGhhbmRsaW5nIGVycm9ycwogICAgZGV0ZWN0ZWQgYnkgVmFsZ3JpbmQKCiAgLSBvdGhlciBidWcgZml4ZXMgKHNlZSBDaGFuZ2VMb2cpCgoyMDA3LTA3LTA2OiBIdW5zcGVsbCAxLjEuNyByZWxlYXNlOgogIC0gZml4IHdhcm5pbmcgbWVzc2FnZXMgb2YgT3Blbk9mZmljZS5vcmcgYnVpbGQKCjIwMDctMDYtMjk6IEh1bnNwZWxsIDEuMS42IHJlbGVhc2U6CiAgLSBjaGVjayBjYXBpdGFsaXphdGlvbiBvZiB0aGUgZm9sbG93aW5nIHdvcmQgZm9ybXMKICAgIC0gd29yZHMgd2l0aCBtaXhlZCBjYXBpdGFsaXNhdGlvbjogT3Blbk9mZmljZS5vcmcgLSBPUEVOT0ZGSUNFLk9SRwogICAgLSBhbGxjYXAgd29yZHMgYW5kIHN1ZmZpeGVzOiBVTklDRUYncyAtIFVOSUNFRidTCiAgICAtIHByZWZpeGVzIHdpdGggYXBvc3Ryb3BoZSBhbmQgcHJvcGVyIG5hbWVzOiBTYW50J0VsaWEgLSBTQU5UJ0VMSUEKCiAgLSBzdWdnZXN0aW9uIGZvciBtaXNzaW5nIHNlbnRlbmNlIHNwYWNpbmc6IHNvbWV0aGluZy5UaGUgLT4gc29tZXRoaW5nLiBUaGUKCiAgLSBIdW5zcGVsbCBleGVjdXRhYmxlOiBpbXByb3ZlZCBsb2NhbGUgc3VwcG9ydAogICAgLSAtaSBvcHRpb246IGN1c3RvbSBpbnB1dCBlbmNvZGluZwogICAgLSB1c2UgbG9jYWxlIGRhdGEgZm9yIGRlZmF1bHQgZGljdGlvbmFyeSBuYW1lcy4gCiAgICAtIHRvb2xzL2h1bnNwZWxsLmN4eDogZml4IDgtYml0IHRva2VuaXphdGlvbiAobGV0dGVycyB3aXRob3V0CiAgICAgIGNhc2luZywgbGlrZSDDnyBvciBIZWJyZXcgY2hhcmFjdGVycyBub3cgYXJlIGhhbmRsZWQgd2VsbCkgCiAgICAtIGRpY3Rpb25hcnkgc2VhcmNoIHBhdGggKGF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgT3Blbk9mZmljZS5vcmcgZGlyZWN0b3JpZXMpCiAgICAtIERJQ1BBVEggZW52aXJvbm1lbnRhbCB2YXJpYWJsZQogICAgLSAtRCBvcHRpb246IHNob3cgZGlyZWN0b3J5IHBhdGggb2YgbG9hZGVkIGRpY3Rpb25hcnkKCiAgLSBwYXRjaGVzIGFuZCBidWcgZml4ZXMgZm9yIE1vemlsbGEsIE9wZW5PZmZpY2Uub3JnLgoKMjAwNy0wMy0xOTogSHVuc3BlbGwgMS4xLjUgcmVsZWFzZToKICAtIG9wdGltaXphdGlvbnM6IDEwLTEwMCUgc3BlZWQgdXAsIHNtYWxsZXIgY29kZSBzaXplIGFuZCBtZW1vcnkgZm9vdHByaW50CiAgICAoY29uZGl0aW9uYWwgZXhwZXJpbWVudGFsIGNvZGUgYW5kIHdhcm5pbmcgbWVzc2FnZXMpCgogIC0gZXh0ZW5kZWQgVW5pY29kZSBzdXBwb3J0OgogICAgLSBub24gQk1QIFVuaWNvZGUgY2hhcmFjdGVycyBpbiBkaWN0aW9uYXJ5IHdvcmRzIGFuZCBhZmZpeGVzIChleGNlcHQKICAgICAgYWZmaXggcnVsZXMgYW5kIGNvbmRpdGlvbnMpCiAgICAtIHN1cHBvcnQgQk9NIHNlcXVlbmNlIGluIGFmZiBhbmQgZGljIGZpbGVzCgogIC0gSUdOT1JFIGZlYXR1cmUgZm9yIEFyYWJpYyBkaWFjcml0aWNzIGFuZCBvdGhlciBvcHRpb25hbCBjaGFyYWN0ZXJzCgogIC0gTmV3IGVkaXQgZGlzdGFuY2Ugc3VnZ2VzdGlvbiBtZXRob2RzOgogICAgLSBjYXBpdGFsaXNhdGlvbjogbmFzYSAtPiBOQVNBCiAgICAtIGxvbmcgc3dhcDogcGVybWVuYW50IC0+IHBlcm1hbmVudAogICAgLSBsb25nIG1vdmU6IEdoYW5kaSAtPiBHYW5kaGksIGdyZWF0ZnVsIC0+IGdyYXRlZnVsCiAgICAtIGRvdWJsZSB0d28gY2hhcmFjdGVyczogdmFjYWNhdGlvbiAtPiB2YWNhdGlvbgogICAgLSBzcGFjZXMgaW4gUkVQIHN1Zy46IFJFUCBhbG90IGFfbG90IChOT1RFOiAiYSBsb3QiIG11c3QgYmUgYSBkaWN0aW9uYXJ5IHdvcmQpCgogIC0gcGF0Y2hlcyBhbmQgYnVnIGZpeGVzIGZvciBNb3ppbGxhLCBPcGVuT2ZmaWNlLm9yZywgRW1hY3MsIE1pbkdXLCBBcXVhLAogICAgR2VybWFuIGFuZCBBcmFiaWMgbGFuZ3VhZ2UsIGV0Yy4KCjIwMDYtMDItMDE6IEh1bnNwZWxsIDEuMS40IHJlbGVhc2U6CiAgLSBJbXByb3ZlZCBzdWdnZXN0aW9uIGZvciB0eXBpY2FsIE9DUiBidWdzIChtaXNzaW5nIHNwYWNlcyBiZXR3ZWVuCiAgICBjYXBpdGFsaXplZCB3b3JkcykuIEZvciBleGFtcGxlOiAiYU5ldyIgLT4gImEgTmV3Ii4KICAgIGh0dHA6Ly9xYS5vcGVub2ZmaWNlLm9yZy9pc3N1ZXMvc2hvd19idWcuY2dpP2lkPTU4MjAyCgogIC0gdG9rZW5pemF0aW9uIGZpeGVzIChmaXggaW5jb21wbGV0ZSB0b2tlbml6YXRpb24gb2YgaW5wdXQgdGV4dHMgb24gYmlnLWVuZGlhbgogICAgcGxhdGZvcm1zLCBhbmQgbG9jYWxlLWRlcGVuZGVudCB0b2tlbml6YXRpb24gb2YgZGljdGlvbmFyeSBlbnRyaWVzKQoKMjAwNi0wMS0wNjogSHVuc3BlbGwgMS4xLjMuMiByZWxlYXNlOgogIC0gZml4IFZpc3VhbCBDKysgY29tcGlsaW5nIGVycm9ycwoKMjAwNi0wMS0wNTogSHVuc3BlbGwgMS4xLjMgcmVsZWFzZToKICAtIEdQTC9MR1BML01QTCB0cmktbGljZW5zZSBmb3IgTW96aWxsYSBpbnRlZ3JhdGlvbgogIAogIC0gQWxpYXMgY29tcHJlc3Npb24gb2YgZmxhZyBzZXRzIGFuZCBtb3JwaG9sb2dpY2FsIGRlc2NyaXB0aW9ucy4KICAgIChGb3IgZXhhbXBsZSwgMTYgTUIgQXJhYmljIGRpYyBmaWxlIGNhbiBiZSBjb21wcmVzc2VkIHRvIDEgTUIuKQogIAogIC0gSW1wcm92ZWQgc3VnZ2VzdGlvbi4KICAKICAtIEltcHJvdmVkLCBsYW5ndWFnZSBpbmRlcGVuZGVudCBHZXJtYW4gc2hhcnAgcyBjYXNpbmcgd2l0aCBDSEVDS1NIQVJQUwogICAgZGVjbGFyYXRpb24uCgogIC0gVW5pY29kZSB0b2tlbml6YXRpb24gaW4gSHVuc3BlbGwgcHJvZ3JhbS4KICAKICAtIEJ1ZyBmaXhlcyAoYXQgbmV3IGFuZCBvbGQgY29tcG91bmQgd29yZCBoYW5kbGluZyBtZXRob2RzKSwgZXRjLgoKMjAwNS0xMS0xMTogSHVuc3BlbGwgMS4xLjIgcmVsZWFzZToKCiAgLSBCdWcgZml4ZXMgKE1BUCBVbmljb2RlLCBDT01QT1VORCBwYXR0ZXJuIG1hdGNoaW5nLCBPTkxZSU5DT01QT1VORAogICAgc3VnZ2VzdGlvbnMpCgogIC0gQ2hlY2tlZCB3aXRoIDUxIHJlZ3Jlc3Npb24gdGVzdHMgaW4gVmFsZ3JpbmQgZGVidWdnaW5nIGVudmlyb25tZW50LAogICAgYW5kIHRlc3RlZCB3aXRoIDUyIE9PbyBkaWN0aW9uYXJpZXMgb24gaTY4Ni1wYy1saW51eCBwbGF0Zm9ybS4KCjIwMDUtMTEtMDk6IEh1bnNwZWxsIDEuMS4xIHJlbGVhc2U6CgogIC0gQ29tcG91bmQgd29yZCBwYXR0ZXJucyBmb3IgY29tcGxleCBjb21wb3VuZCB3b3JkIGhhbmRsaW5nIGFuZAogICAgc2ltcGxlIHdvcmQtbGV2ZWwgbGV4aWNhbCBzY2FubmluZy4gSWRlYWwgZm9yIGNoZWNraW5nCiAgICBBcmFiaWMgYW5kIFJvbWFuIG51bWJlcnMsIG9yZGluYWwgbnVtYmVycyBpbiBFbmdsaXNoLCBhZmZpeGVkCiAgICBudW1iZXJzIGluIGFnZ2x1dGluYXRpdmUgbGFuZ3VhZ2VzLCBldGMuCiAgICBodHRwOi8vcWEub3Blbm9mZmljZS5vcmcvaXNzdWVzL3Nob3dfYnVnLmNnaT9pZD01MzY0MwoKICAtIFN1cHBvcnQgSVNPLTg4NTktMTUgZW5jb2RpbmcgZm9yIEZyZW5jaCAoRnJlbmNoIG9lIGxpZ2F0dXJlcyBhcmUKICAgIG1pc3NpbmcgZnJvbSB0aGUgbGF0aW4tMSBlbmNvZGluZykuCiAgICBodHRwOi8vcWEub3Blbm9mZmljZS5vcmcvaXNzdWVzL3Nob3dfYnVnLmNnaT9pZD01NDk4MAogICAgCiAgLSBJbXBsZW1lbnRlZCBhIGZsYWcgdG8gZm9yYmlkIG9ic2NlbmUgd29yZCBzdWdnZXN0aW9uOgogICAgaHR0cDovL3FhLm9wZW5vZmZpY2Uub3JnL2lzc3Vlcy9zaG93X2J1Zy5jZ2k/aWQ9NTU0OTgKCiAgLSBDaGVja2VkIHdpdGggNTAgcmVncmVzc2lvbiB0ZXN0cyBpbiBWYWxncmluZCBkZWJ1Z2dpbmcgZW52aXJvbm1lbnQsCiAgICBhbmQgdGVzdGVkIHdpdGggNTIgT09vIGRpY3Rpb25hcmllcy4KCiAgLSBvdGhlciBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcyAoc2VlIENoYW5nZUxvZykKCjIwMDUtMDktMTk6IEh1bnNwZWxsIDEuMS4wIHJlbGVhc2UKCiogY29tcGxldGUgY29tcGFyaXNvbiB3aXRoIE15U3BlbGwgMy4yIChmcm9tIE9wZW5PZmZpY2Uub3JnIDIgYmV0YSkKCiogaW1wcm92ZWQgbmdyYW0gc3VnZ2VzdGlvbiB3aXRoIHN3YXAgY2hhcmFjdGVyIGRldGVjdGlvbiBhbmQKICBjYXNlIGluc2Vuc2l0aXZpdHkKCi0tLS0tLSBleGFtcGxlcyBmb3IgbmdyYW0gaW1wcm92ZW1lbnQgKGlucHV0IHdvcmQgYW5kIHN1Z2dlc3Rpb25zKSAtLS0tLQoKMS4gcGVybmFtZW50IChpbnN0ZWFkIG9mIHBlcm1hbmVudCkKCk15U3BlbGwgMy4yOiB0b3VybmFtZW50cywgdG91cm5hbWVudCwgb3JuYW1lbnRzLCBvcm5hbWVudCdzLCBvcm5hbWVudGluZywgb3JuYW1lbnRlZCwKICAgICAgICBvcm5hbWVudCwgb3JuYW1lbnRhbHMsIG9ybmFtZW50YWwsIG9ybmFtZW50YWxseQoKSHVuc3BlbGwgMS4wLjk6IG9ybmFtZW50YWwsIG9ybmFtZW50LCB0b3VybmFtZW50CgpIdW5zcGVsbCAxLjEuMDogcGVybWFuZW50CgpOb3RlOiBzd2FwIGNoYXJhY3RlciBkZXRlY3Rpb24KCgoyLiBQRVJOQU1FTlQgKGluc3RlYWQgb2YgUEVSTUFORU5UKQoKTXlTcGVsbCAzLjI6IC0KCkh1bnNwZWxsIDEuMC45OiAtCgpIdW5zcGVsbCAxLjEuMDogUEVSTUFORU5UCgoKMy4gVW5lc2NvIChpbnN0ZWFkIG9mIFVORVNDTykKCk15U3BlbGwgMy4yOiBHZW5lc2NvLCBJb25lc2NvLCBHZW5lc2NvJ3MsIElvbmVzY28ncywgRnJlc2NvaW5nLCBGcmVzY28ncywKICAgICAgICAgICAgIEZyZXNjb2VkLCBGcmVzY28sIEVzY29ydHMsIEVzY29ydGluZwoKSHVuc3BlbGwgMS4wLjk6IEdlbmVzY28sIElvbmVzY28sIEZyZXNjbwoKSHVuc3BlbGwgMS4xLjA6IFVORVNDTwoKCjQuIHNpZ2dyYXBoJ3MgKGluc3RlYWQgb2YgU0lHR1JBUEgncykKCk15U3BlbGwgMy4yOiBzZXJpZ3JhcGgncywgcGhvdG9ncmFwaCdzLCBzZXJpZ3JhcGhzLCBwaHlzaW9ncmFwaHkncywKICAgICAgICAgICAgIHBoeXNpb2dyYXBoeSwgZGlncmFwaHMsIHNlcmlncmFwaCwgc3RyYXRpZ3JhcGh5J3MsIHN0cmF0aWdyYXBoeQogICAgICAgICAgICAgZXBpZ3JhcGhzCgpIdW5zcGVsbCAxLjAuOTogc2VyaWdyYXBoJ3MsIGVwaWdyYXBoJ3MsIGRpZ3JhcGgncwoKSHVuc3BlbGwgMS4xLjA6IFNJR0dSQVBIJ3MKCi0tLS0tLS0tLS0tLS0tLSBlbmQgb2YgZXhhbXBsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogaW1wcm92ZWQgdGVzdGluZyBlbnZpcm9ubWVudCB3aXRoIHN1Z2dlc3Rpb24gY2hlY2tpbmcgYW5kIG1lbW9yeSBkZWJ1Z2dpbmcKCiAgbWVtb3J5IGRlYnVnZ2luZyBvZiBhbGwgdGVzdHMgd2l0aCBhIHNpbXBsZSBjb21tYW5kOgogIAogIFZBTEdSSU5EPW1lbWNoZWNrIG1ha2UgY2hlY2sKCiogbG90cyBvZiBvdGhlciBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcyAoc2VlIENoYW5nZUxvZykKCgoyMDA1LTA4LTI2OiBIdW5zcGVsbCAxLjAuOSByZWxlYXNlCgoqIGltcHJvdmVkIHJlbGF0ZWQgY2hhcmFjdGVyIG1hcCBzdWdnZXN0aW9uCgoqIGltcHJvdmVkIG5ncmFtIHN1Z2dlc3Rpb24KCi0tLS0tLSBleGFtcGxlcyBmb3IgbmdyYW0gaW1wcm92ZW1lbnQgKE89b2xkLCBOID0gbmV3IG5ncmFtIHN1Z2dlc3Rpb25zKSAtLQoKMS4gUGVybWVuYW50IChpbnN0ZWFkIG9mIFBlcm1hbmVudCkKCk86IEVuZGFuZ2VybWVudCwgRmVybWVudCwgRmVybWVudGVkLCBEZWZlcm1lbnQncywgRW1wb3dlcm1lbnQsCiAgICAgICAgRmVybWVudCdzLCBGZXJtZW50cywgRmVybWVudGluZywgQ291bnRlcm1lbiwgV2VhdGhlcm1lbgoKTjogUGVybWFuZW50LCBTdXBlcm1lbiwgUHJlZmVybWVudAoKTm90ZTogTmdyYW0gc3VnZ2VzdGlvbnMgd2FzIGNhc2Ugc2Vuc2l0aXZlLgoKMi4gcGVybWVuYW50IChpbnN0ZWFkIG9mIHBlcm1hbmVudCkgCgpPOiBzdXBlcm1lbiwgbmV3c3BhcGVybWVuLCBlbXBvd2VybWVudCwgZW5kYW5nZXJtZW50LCBwcmVmZXJtZW50cywKICAgICAgICBwcmVmZXJtZW50LCBwZXJtYW5lbnQsIHByZWZlcm1lbnQncywgcGVybWFuZW50bHksIGltcGVybWFuZW50CgpOOiBwZXJtYW5lbnQsIHN1cGVybWVuLCBwcmVmZXJtZW50CgpOb3RlOiBuZXcgc3VnZ2VzdGlvbnMgYXJlIGFsc28gd2VpZ2h0ZWQgd2l0aCBsb25nZXN0IGNvbW1vbiBzdWJzZXF1ZW5jZSwKZmlyc3QgbGV0dGVyIGFuZCBjb21tb24gY2hhcmFjdGVyIHBvc2l0aW9ucwoKMy4gcGVybmVtYW50IChpbnN0ZWFkIG9mIHBlcm1hbmVudCkgCgpPOiBwaW1wZXJuZWwncywgcGltcGVybmVsLCBwaW1wZXJuZWxzLCBwZXJtYW5lbnRseSwgcGVybWFuZW50cywgcGVybWFuZW50LAogICAgICAgIHN1cGVybmF0YW50LCBpbXBlcm1hbmVudCwgc2VtaXBlcm1hbmVudCwgaW1wZXJtYW5lbnRseQoKTjogcGVybWFuZW50LCBzdXBlcm5hdGFudCwgcGltcGVybmVsCgpOb3RlOiBuZXcgbWV0aG9kIGFsc28gcHJlZmVycyByb290IHdvcmQgaW5zdGVhZCBvZiBub3QKcmVsZXZhbnQgYWZmaXhlcyAoJ3MsIHMgYW5kIGx5KQoKCjQuIHBlcm5hbWVudCAoaW5zdGVhZCBvZiBwZXJtYW5lbnQpCgpPOiB0b3VybmFtZW50cywgdG91cm5hbWVudCwgb3JuYW1lbnRzLCBvcm5hbWVudCdzLCBvcm5hbWVudGluZywgb3JuYW1lbnRlZCwKICAgICAgICBvcm5hbWVudCwgb3JuYW1lbnRhbHMsIG9ybmFtZW50YWwsIG9ybmFtZW50YWxseQoKTjogb3JuYW1lbnRhbCwgb3JuYW1lbnQsIHRvdXJuYW1lbnQKCk5vdGU6IEJvdGggbmdyYW0gbWV0aG9kcyBtaXNzZXMgaGVyZS4KCgo1LiBvYnZ1cyAoaW5zdGFkIG9mIG9idmlvdXMpOgoKTzogb2J2aW91cywgQ29ydnVzLCBvYnZlcnNlLCBvYnZpb3VzbHksIEphY29idXMsIG9idHVzZXIsIG9idHVzZSwKICAgICAgICBvYnZpYXRlcywgb2J2aWF0ZSwgVHJhdnVzCgpOOiBvYnZpb3VzLCBvYnR1c2UsIG9idmVyc2UKCk5vdGU6IG5ldyBtZXRob2QgYWxzbyBwcmVmZXJzIGNvbW1vbiBmaXJzdCBsZXR0ZXJzLgoKCjYuIHVuYW1iaWd1cyAoaW5zdGVhZCBvZiB1bmFtYmlndW91cykgCgpPOiB1bmFtYmlndW91cywgdW5hbWJpZ3VpdHksIHVuYW1iaWd1b3VzbHksIGFtYmlndW91c2x5LCBhbWJpZ3VvdXMsCiAgICAgICAgdW5hbWJpdGlvdXMsIGFtYmlndWl0aWVzLCBhbWJpZ3VvdXNuZXNzCgpOOiB1bmFtYmlndW91cywgdW5hbWJpZ3VpdHksIHVuYW1iaXRpb3VzCgoKCjcuIGNvbnNlY3ZlbmNlIChpbnN0ZWFkIG9mIGNvbnNlcXVlbmNlKQoKTzogY29uc2VjdXRpdmUsIGNvbnNlY3V0aXZlbHksIGNvbnNlY3V0aXZlbmVzcywgbm9uY29uc2VjdXRpdmUsIGNvbnNlcXVlbmNlLAogICAgICAgIGNvbnNlY3V0aXZlbmVzcydzLCBjb252ZW5pZW5jZSdzLCBjb25zaXN0ZW5jZXMsIGNvbnNpc3RlbmNlCgpOOiBjb25zZXF1ZW5jZSwgY29uc2VjdXRpdmUsIGNvbnNlY3JhdGVzCgoKQW4gZXhhbXBsZSBpbiBhIGxhbmd1YWdlIHdpdGggcmljaCBtb3JwaG9sb2d5OgoKOC4gTWlzaXNpcGliZW4gKGluc3RlYWQgb2YgTWlzc2lzc2lwcGliZW4gW2BpbiBNaXNzaXNzaXBwaScgaW4gSHVuZ2FyaWFuXSk6CgpPOiBNaXNpa+lk6WliZW4sIFBpc2lzZWTpaWJlbiwgTWlzaWvpaelpYmVuLCBQaXNpc2Vr6WliZW4sIE1pc2lr6WliZW4sCiAgICAgICAgTWlzaWvpaWTpaWJlbiwgTWlzaWvpa+lpYmVuLCBNaXNpa+lpa+lpYmVuLCBNaXNpa+lpbelpYmVuLCBNaXNzaXNzaXBwaWliZW4KCk46IE1pc3Npc3NpcHBpYmVuLCBNaXNzaXNzaXBwaWliZW4sIE1pc2lpYmVuCgpOb3RlOiBTdWdnZXN0aW5nIG5vdCByZWxldmFudCBhZmZpeGVzIHdhcyB0aGUgYmlnZ2VzdCBmYXVsdCBpbiBuZ3JhbQogICBzdWdnZXN0aW9uIGZvciBsYW5ndWFnZXMgd2l0aCBhIGxvdCBvZiBhZmZpeGVzLgoKLS0tLS0tLS0tLS0tLS0tIGVuZCBvZiBleGFtcGxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKKiBzdXBwb3J0IHR3b2ZvbGQgcHJlZml4IGN1dHRpbmcKCiogbG90cyBvZiBvdGhlciBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcyAoc2VlIENoYW5nZUxvZykKCiogdGVzdCBIdW5zcGVsbCB3aXRoIDU0IE9wZW5PZmZpY2Uub3JnIGRpY3Rpb25hcmllczoKCnNvdXJjZTogZnRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwoKdGVzdGluZyBzaGVsbCBzY3JpcHQ6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZm9yIGkgaW4gYGxzICp6aXAgfCBncmVwICdeW2Etel0qX1tBLVpdKlsuXSdgCmRvCglkaWM9YGJhc2VuYW1lICRpIC56aXBgCglta2RpciAkZGljCgllY2hvIHVuemlwICRkaWMKCXVuemlwIC1kICRkaWMgJGkgMj4vZGV2L251bGwKCWNkICRkaWMKCWVjaG8gdW5tdW5jaCBhbmQgdGVzdCAkZGljCgl1bm11bmNoICRkaWMuZGljICRkaWMuYWZmIDI+L2Rldi9udWxsIHwgYXdrICd7cHJpbnQkMCJcdCJ9JyB8CglodW5zcGVsbCAtZCAkZGljIC1sIC0xID4kZGljLnJlc3VsdCAyPiRkaWMuZXJyIHx8IHJtIC1mICRkaWMucmVzdWx0CgljZCAuLgpkb25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp0ZXN0IHJlc3VsdCAoMCBzaXplIGlzIG8uay4pOgoKJCBmb3IgaSBpbiAqXyovKi5yZXN1bHQ7IGRvIHdjIC1jICRpOyBkb25lIAowIGFmX1pBL2FmX1pBLnJlc3VsdAowIGJnX0JHL2JnX0JHLnJlc3VsdAowIGNhX0VTL2NhX0VTLnJlc3VsdAowIGN5X0dCL2N5X0dCLnJlc3VsdAowIGNzX0NaL2NzX0NaLnJlc3VsdAowIGRhX0RLL2RhX0RLLnJlc3VsdAowIGRlX0FUL2RlX0FULnJlc3VsdAowIGRlX0NIL2RlX0NILnJlc3VsdAowIGRlX0RFL2RlX0RFLnJlc3VsdAowIGVsX0dSL2VsX0dSLnJlc3VsdAo2IGVuX0FVL2VuX0FVLnJlc3VsdAowIGVuX0NBL2VuX0NBLnJlc3VsdAowIGVuX0dCL2VuX0dCLnJlc3VsdAowIGVuX05aL2VuX05aLnJlc3VsdAowIGVuX1VTL2VuX1VTLnJlc3VsdAowIGVvX0VPL2VvX0VPLnJlc3VsdAowIGVzX0VTL2VzX0VTLnJlc3VsdAowIGVzX01YL2VzX01YLnJlc3VsdAowIGVzX05FVy9lc19ORVcucmVzdWx0CjAgZm9fRk8vZm9fRk8ucmVzdWx0CjAgZnJfRlIvZnJfRlIucmVzdWx0CjAgZ2FfSUUvZ2FfSUUucmVzdWx0CjAgZ2RfR0IvZ2RfR0IucmVzdWx0CjAgZ2xfRVMvZ2xfRVMucmVzdWx0CjAgaGVfSUwvaGVfSUwucmVzdWx0CjAgaHJfSFIvaHJfSFIucmVzdWx0CjIwMDY5NDk4OSBodV9IVS9odV9IVS5yZXN1bHQKMCBpZF9JRC9pZF9JRC5yZXN1bHQKMCBpdF9JVC9pdF9JVC5yZXN1bHQKMCBrdV9UUi9rdV9UUi5yZXN1bHQKMCBsdF9MVC9sdF9MVC5yZXN1bHQKMCBsdl9MVi9sdl9MVi5yZXN1bHQKMCBtZ19NRy9tZ19NRy5yZXN1bHQKMCBtaV9OWi9taV9OWi5yZXN1bHQKMCBtc19NWS9tc19NWS5yZXN1bHQKMCBuYl9OTy9uYl9OTy5yZXN1bHQKMCBubF9OTC9ubF9OTC5yZXN1bHQKMCBubl9OTy9ubl9OTy5yZXN1bHQKMCBueV9NVy9ueV9NVy5yZXN1bHQKMCBwbF9QTC9wbF9QTC5yZXN1bHQKMCBwdF9CUi9wdF9CUi5yZXN1bHQKMCBwdF9QVC9wdF9QVC5yZXN1bHQKMCByb19STy9yb19STy5yZXN1bHQKMCBydV9SVS9ydV9SVS5yZXN1bHQKMCByd19SVy9yd19SVy5yZXN1bHQKMCBza19TSy9za19TSy5yZXN1bHQKMCBzbF9TSS9zbF9TSS5yZXN1bHQKMCBzdl9TRS9zdl9TRS5yZXN1bHQKMCBzd19LRS9zd19LRS5yZXN1bHQKMCB0ZXRfSUQvdGV0X0lELnJlc3VsdAowIHRsX1BIL3RsX1BILnJlc3VsdAowIHRuX1pBL3RuX1pBLnJlc3VsdAowIHVrX1VBL3VrX1VBLnJlc3VsdAowIHp1X1pBL3p1X1pBLnJlc3VsdAoKSW4gZW5fQVUgZGljdGlvbmFyeSwgdGhlcmUgaXMgYW4gYWJicmV2YXRpb24gd2l0aCB0d28gZG90cyAoYGVxbi4uJyksIGJ1dApgZXFuLicgaXMgbWlzc2luZy4gUHJlc3VtYWJseSBpdCBpcyBhIGRpY3Rpb25hcnkgYnVnLiBNeXNwZWxsIGFsc28KaGF2ZW4ndCBhY2NlcHRlZCBpdC4KCkh1bmdhcmlhbiBkaWN0aW9uYXJ5IGNvbnRhaW5zIHBzZXVkb3Jvb3RzIGFuZCBmb3JiaWRkZW4gd29yZHMuClVubXVuY2ggaGF2ZW4ndCBzdXBwb3J0ZWQgdGhlc2UgZmVhdHVyZXMgeWV0LCBhbmQgZ2VuZXJhdGVzIGJhZCB3b3JkcywgdG9vLgoKKiBjaGVjayBhZmZpeCBydWxlcyBhbmQgT09vIGRpY3Rpb25hcmllcy4gRGV0ZWN0ZWQgYnVncyBpbiBjc19DWiwKZXNfRVMsIGVzX05FVywgZXNfTVgsIGx0X0xULCBubl9OTywgcHRfUFQsIHJvX1JPLCBza19TSyBhbmQgc3ZfU0UgZGljdGlvbmFyaWVzKS4KCkRldGFpbHM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmNzX0NaCndhcm5pbmcgLSBpbmNvbXBhdGlibGUgc3RyaXBwaW5nIGNoYXJhY3RlcnMgYW5kIGNvbmRpdGlvbjoKU0ZYIEQgICB1cyAgICAgICAgICBlY2ggICAgICAgIFteaWdoa11vcwpTRlggRCAgIHVzICAgICAgICAgIHkgICAgICAgICAgW15pXW9zClNGWCBRICAgb3MgICAgICAgICAgZWNoICAgICAgICBbXmdoa11lcwpTRlggTSAgIG8gICAgICAgICAgIGVjaCAgICAgICAgW15naGtlaV1hClNGWCBKICAg6W0gICAgICAgICAgZWogICAgICAgICDhbQpTRlggSiAgIOltICAgICAgICAgIGVqbWUgICAgICAg4W0KU0ZYIEogICDpbSAgICAgICAgICBlanRlICAgICAgIOFtClNGWCBBICAgb3W+aXQgICAgICAgdXAgICAgICAgICBvdXBpdApTRlggQSAgIG91vml0ICAgICAgIHVwbWUgICAgICAgb3VwaXQKU0ZYIEEgICBvdb5pdCAgICAgICB1cHRlICAgICAgIG91cGl0ClNGWCBBICAgbm91dCAgICAgICAgbCAgICAgICAgICBbYWVpb3V54ent8/r9+exyXVteYWVpb3V54ent8/r9+exybF1bXmFlaW91eQpTRlggQSAgIG5vdXQgICAgICAgIGwgICAgICAgICAgW2FlaW91eeHp7fP6/fnscl1bXmFlaW91eeHp7fP6/fnscmxdW15hZWlvdXkKCmVzX0VTCndhcm5pbmcgLSBpbmNvbXBhdGlibGUgc3RyaXBwaW5nIGNoYXJhY3RlcnMgYW5kIGNvbmRpdGlvbjoKU0ZYIFcgdW1hciD6c2UgW2FlXWh1c2FyClNGWCBXIGVtaXIgafHhaXMgZfFpcgoKZXNfTkVXCndhcm5pbmcgLSBpbmNvbXBhdGlibGUgc3RyaXBwaW5nIGNoYXJhY3RlcnMgYW5kIGNvbmRpdGlvbjoKU0ZYIEkgdW5hbiD6bmVuIHVuYXIKCmVzX01YCndhcm5pbmcgLSBpbmNvbXBhdGlibGUgc3RyaXBwaW5nIGNoYXJhY3RlcnMgYW5kIGNvbmRpdGlvbjoKU0ZYIEEgYSBvdGUgZQpTRlggVyB1bWFyIPpzZSBbYWVdaHVzYXIKU0ZYIFcgZW1pciBp8eFpcyBl8WlyCgpsdF9MVAp3YXJuaW5nIC0gaW5jb21wYXRpYmxlIHN0cmlwcGluZyBjaGFyYWN0ZXJzIGFuZCBjb25kaXRpb246ClNGWCBVIHRpICAgICAgc2l1b3NpICAgICAgICAgIHRpcyAgICAgICAKU0ZYIFUgdGkgICAgICBzaXVvc2kgICAgICAgICAgdGlzICAgICAgIApTRlggVSB0aSAgICAgIHNpZXNpICAgICAgICAgICB0aXMgICAgICAgClNGWCBVIHRpICAgICAgc2llc2kgICAgICAgICAgIHRpcyAgICAgICAKU0ZYIFUgdGkgICAgICBzaXMgICAgICAgICAgICAgdGlzICAgICAgIApTRlggVSB0aSAgICAgIHNpcyAgICAgICAgICAgICB0aXMgICAgICAgClNGWCBVIHRpICAgICAgc2lt63MgICAgICAgICAgIHRpcyAgICAgICAKU0ZYIFUgdGkgICAgICBzaW3rcyAgICAgICAgICAgdGlzICAgICAgIApTRlggVSB0aSAgICAgIHNpdOtzICAgICAgICAgICB0aXMgICAgICAgClNGWCBVIHRpICAgICAgc2l063MgICAgICAgICAgIHRpcyAgICAgICAKCm5uX05PCndhcm5pbmcgLSBpbmNvbXBhdGlibGUgc3RyaXBwaW5nIGNoYXJhY3RlcnMgYW5kIGNvbmRpdGlvbjoKU0ZYIEQgICBhciAgcmFyICBbXmZta11lcgpTRlggVSAgINhyZSAgb3JkZSAgZXJlClNGWCBVICAg2HJlICBvcnQgIGVyZQoKcHRfUFQKd2FybmluZyAtIGluY29tcGF0aWJsZSBzdHJpcHBpbmcgY2hhcmFjdGVycyBhbmQgY29uZGl0aW9uOgpTRlggZyAgIONvcyAgICAgICAgb2FzICAgICAgICDjbwpTRlggZyAgIONvcyAgICAgICAgb2FzICAgICAgICDjbwoKcm9fUk8Kd2FybmluZyAtIGJhZCBmaWVsZCBudW1iZXI6ClNGWCBMICAgMCAgICAgICAgICBsZSAgICAgICAgIFteY2ddIGkKU0ZYIEwgICAwICAgICAgICAgIGkgICAgICAgICAgW2NnXSBpClNGWCBVICAgMCAgICAgICAgICBpICAgICAgICAgIFteaV0gaWkKd2FybmluZyAtIGluY29tcGF0aWJsZSBzdHJpcHBpbmcgY2hhcmFjdGVycyBhbmQgY29uZGl0aW9uOgpTRlggUCAgIGwgICAgICAgICAgaSAgICAgICAgICBsCVs8LSB0aGVyZSBpcyBhbiB1bm5lY2Vzc2FyeSB0YWJ1bGF0b3IgaGVyZSkKU0ZYIEkgICBhICAgICAgICAgIGlpICAgICAgICAgW2djXSBhCndhcm5pbmcgLSBiYWQgZmllbGQgbnVtYmVyOgpTRlggSSAgIGEgICAgICAgICAgaWkgICAgICAgICBbZ2NdIGEKU0ZYIEkgICBhICAgICAgICAgIGVpICAgICAgICAgW15jZ10gYQoKc2tfU0sKd2FybmluZyAtIGluY29tcGF0aWJsZSBzdHJpcHBpbmcgY2hhcmFjdGVycyBhbmQgY29uZGl0aW9uOgpTRlggVCAgILVhuyAgICAgICAgIG9s+iAgICAgICAga2xhuwpTRlggVCAgILVhuyAgICAgICAgIG9s+mMgICAgICAga2xhuwpTRlggVCAgIHO1YbsgICAgICAgILls+iAgICAgICAgc2xhuwpTRlggVCAgIHO1YbsgICAgICAgILls+mMgICAgICAgc2xhuwpTRlggUiAgILVjuyAgICAgICAgIGzoaWVtICAgICAg5WO7ClNGWCBSICAgaeFzuyAgICAgICAg5HRpZSAgICAgICBtaWFzuwpTRlggUiAgIGllersgICAgICAgIGllbSAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIGlluSAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIGllICAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIGVtZSAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIGV0ZSAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIPogICAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIPpjICAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIHogICAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIG1lICAgICAgICAgW15pXWV6uwpTRlggUiAgIGllersgICAgICAgIHRlICAgICAgICAgW15pXWV6uwoKc3ZfU0UKd2FybmluZyAtIGJhZCBmaWVsZCBudW1iZXI6ClNGWCAgQyAgMCAgbmV0ICBuZXRzIFteZV1uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA1LTA4LTAxOiBIdW5zcGVsbCAxLjAuOCByZWxlYXNlCgotIGltcHJvdmVkIGNvbXBvdW5kIHdvcmQgc3VwcG9ydAotIGZpeCBHZXJtYW4gUyBoYW5kbGluZwotIHBvcnQgTXlTcGVsbCBmaWxlcyBhbmQgTUFQIGZlYXR1cmUKCjIwMDUtMDctMjI6IEh1bnNwZWxsIDEuMC43IHJlbGVhc2UKCjIwMDUtMDctMjE6IG5ldyBob21lIHBhZ2U6IGh0dHA6Ly9odW5zcGVsbC5zb3VyY2Vmb3JnZS5uZXQK