QXV0aG9yOiBK9nJuIEhhcnRyb3RoCgpERVNDUklQVElPTgoKKElmIHlvdSdyZSBvbmx5IGxvb2tpbmcgZm9yIHByZWNvbXBpbGVkIHdpbjMyIGJpbmFyaWVzLCBnbyB2aXNpdApodHRwczovL2N1cmwuaGF4eC5zZS9kb3dubG9hZC5odG1sKQoKUGFja2FnaW5nIG9mIHRoZSBjdXJsIGJpbmFyaWVzIGZvciBXaW4zMiBzaG91bGQgYXQgdGhpcyBwb2ludCBpbiB0aW1lIGJlIGJhc2VkCm9uIHRoZSBJbmZvWmlwICh6aXAvdW56aXApIGFyY2hpdmVyIGZhbWlseSBhcyB0aGUgZGUtZmFjdG8gc3RhbmRhcmQgZm9yCldpbmRvd3MgYXJjaGl2ZXMuIEEgcGFja2FnZSBzaG91bGQgY29udGFpbiB0aGUgbWFpbiBiaW5hcnkgY3VybC5leGUgYWxvbmcgd2l0aAp0aGUgYXBwcm9wcmlhdGUgZG9jdW1lbnRhdGlvbiBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiBmaWxlcy4gRm9yIGRldmVsb3BtZW50CnJlbGVhc2VzLCB5b3Ugc2hvdWxkIGFsc28gaW5jbHVkZSB0aGUgaGVhZGVyIGRpcmVjdG9yeSBhbmQgcHJvYmFibHkgdGhlCmNvbXBpbGVkIGJpbmFyaWVzIG9mIGxpYmN1cmwgYW5kIHRoZSBhcHByb3ByaWF0ZSBNYWtlZmlsZXMvcHJvamVjdCBkZWZpbml0aW9uCmZpbGVzIGZvciB0aGUgY29tcGlsZXIgdXNlZC4KCkEgc2ltcGxlIHBhY2thZ2luZyBtZWNoYW5pc20gY2FuIGJlIGJhc2VkIG9uIGEgc2V0IG9mIGJhdGNoIGZpbGVzIHdoaWNoIGNhbGwKemlwLmV4ZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBmaWxlcyBmcm9tIHRoZSBjdXJsIGRpc3RyaWJ1dGlvbiAtIHNlZSB0aGUKc2FtcGxlcyBpbmNsdWRlZCBiZWxvdyAoTG9uZyBsaW5lcyBoYXZlIGJlZW4gc3BsaXQgd2l0aCAiXCIgYXMgdGhlIHNwbGl0Cm1hcmtlciwgeW91J2xsIHdhbnQgdG8gcmVqb2luIHRoZSBwaWVjZXMgdG8gYmUgYWxsIG9uIG9uZSBsaW5lIGluIHRoZSBiYXRjaApmaWxlKS4gQ2FsbCBhbnkgb2YgdGhlc2UgYmF0Y2ggZmlsZXMgLSBhZnRlciBjb21waWxpbmcgdGhlIGN1cmwgYmluYXJpZXMgLQp3aXRoIGEgc2luZ2xlIHBhcmFtZXRlciBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIHRoZSBhcmNoaXZlIGZpbGUgdG8gYmUgY3JlYXRlZC4KCkl0IGlzIGltcGxpY2l0bHkgYXNzdW1lZCB0aGF0IGFsbCBvZiB0aGUgYmluYXJ5IGZpbGVzIChjdXJsLmV4ZSwgbGliY3VybC5hLApldGMpIGhhdmUgcHJldmlvdXNseSBiZWVuIGNvcGllZCB0byB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhlIGN1cmwgc291cmNlCnBhY2thZ2UgKHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1haW4gUkVBRE1FIHJlc2lkZXMpLCBiZWNhdXNlIHRoYXQgaXMgd2hlcmUKdGhleSBzaG91bGQgZW5kIHVwIGluIHRoZSB6aXAgYXJjaGl2ZS4gVGhlIGFyY2hpdmUgc2hvdWxkICpub3QqIGJlIGJ1aWx0IHdpdGgKYWJzb2x1dGUgcGF0aCBpbmZvcm1hdGlvbiBiZWNhdXNlIHRoZSB1c2VyIHdpbGwgd2FudCB0byBsb2NhbGx5IGV4dHJhY3QgdGhlCmFyY2hpdmUgY29udGVudHMgYW5kIHNoaWZ0IHRoZSBiaW5hcmllcyB0byBoaXMgZXhlY3V0YWJsZSBkaXJlY3RvcnkuCgpTQ1JJUFRfVEVNUExBVEVTCgpjdXJscGtnLmJhdDoKCXppcCAtOSAlMSBjdXJsLmV4ZSBDSEFOR0VTIExFR0FMIE1QTC0xLjAudHh0IFJFQURNRSBcCgkgZG9jcy9GQVEgZG9jcy9GRUFUVVJFUyBkb2NzL1JFQURNRS5jdXJsIGRvY3MvUkVBRE1FLndpbjMyIGRvY3MvVE9ETwoKY3VybGRldnBrZy5iYXQ6Cgl6aXAgLTkgJTEgY3VybC5leGUgaW5jbHVkZVxSRUFETUUgaW5jbHVkZVxjdXJsXCouaCBDSEFOR0VTIGRvY3NcKiBcCgkgIGN1cmwuc3BlYyBjdXJsLXNzbC5zcGVjIExFR0FMIGxpYi9NYWtlZmlsZS5tMzIgc3JjL01ha2VmaWxlLm0zMiBcCgkgIGxpYmN1cmwuYSBsaWJjdXJsLmRsbCBsaWJjdXJsZGxsLmEgTVBMLTEuMC50eHQgUkVBRE1FCgpQUk9DRURVUkVfRVhBTVBMRQoKQSBzdGFuZGFyZCBwYWNrYWdpbmcgcm91dGluZSAoZm9yIE1pbmdXMzIpIHVzaW5nIHRoZSBhYm92ZSBiYXRjaCBmaWxlcyBjb3VsZApnbyBsaWtlIHRoaXM6CihObyBTU0wpCQkJCQkoV2l0aCBTU0wpCmNkIDxjdXJsLXNvdXJjZWRpcj5cbGliCQkJY2QgPGN1cmwtc291cmNlZGlyPlxsaWIKbWFrZSAtZiBNYWtlZmlsZS5tMzIJCQltYWtlIC1mIE1ha2VmaWxlLm0zMiBTU0w9MQpjZCAuLlxzcmMJCQkJCWNkIC4uXHNyYwptYWtlIC1mIE1ha2VmaWxlLm0zMgkJCW1ha2UgLWYgTWFrZWZpbGUubTMyIFNTTD0xCmNkIC4uCQkJCQkJY2QgLi4KY29weSBsaWJcbGliY3VybC5hIC4JCQljb3B5IGxpYlxsaWJjdXJsLmEgLgpjb3B5IHNyY1xjdXJsLmV4ZSAuCQkJY29weSBzcmNcY3VybC5leGUgLgpjdXJscGtnIGN1cmwtd2luMzItbm9zc2wuemlwCQljdXJscGtnIGN1cmwtd2luMzItc3NsLnppcAo=