ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICBfIF9fX18gIF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19ffCB8IHwgfCAgXyBcfCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8ICBfIDx8IHxfX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19ffFxfX18vfF98IFxfXF9fX19ffAoKUkVBRE1FCgogIEN1cmwgaXMgYSBjb21tYW5kIGxpbmUgdG9vbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEgc3BlY2lmaWVkIHdpdGggVVJMCiAgc3ludGF4LiBGaW5kIG91dCBob3cgdG8gdXNlIEN1cmwgYnkgcmVhZGluZyB0aGUgY3VybC4xIG1hbiBwYWdlIG9yIHRoZQogIE1BTlVBTCBkb2N1bWVudC4gRmluZCBvdXQgaG93IHRvIGluc3RhbGwgQ3VybCBieSByZWFkaW5nIHRoZSBJTlNUQUxMCiAgZG9jdW1lbnQuCgogIGxpYmN1cmwgaXMgdGhlIGxpYnJhcnkgY3VybCBpcyB1c2luZyB0byBkbyBpdHMgam9iLiBJdCBpcyByZWFkaWx5CiAgYXZhaWxhYmxlIHRvIGJlIHVzZWQgYnkgeW91ciBzb2Z0d2FyZS4gUmVhZCB0aGUgbGliY3VybC4zIG1hbiBwYWdlIHRvCiAgbGVhcm4gaG93IQoKICBZb3UgZmluZCBhbnN3ZXJzIHRvIHRoZSBtb3N0IGZyZXF1ZW50IHF1ZXN0aW9ucyB3ZSBnZXQgaW4gdGhlIEZBUSBkb2N1bWVudC4KCiAgU3R1ZHkgdGhlIENPUFlJTkcgZmlsZSBmb3IgZGlzdHJpYnV0aW9uIHRlcm1zIGFuZCBzaW1pbGFyLiBJZiB5b3UgZGlzdHJpYnV0ZQogIGN1cmwgYmluYXJpZXMgb3Igb3RoZXIgYmluYXJpZXMgdGhhdCBpbnZvbHZlIGxpYmN1cmwsIHlvdSBtaWdodCBlbmpveSB0aGUKICBMSUNFTlNFLU1JWElORyBkb2N1bWVudC4KCkNPTlRBQ1QKCiAgSWYgeW91IGhhdmUgcHJvYmxlbXMsIHF1ZXN0aW9ucywgaWRlYXMgb3Igc3VnZ2VzdGlvbnMsIHBsZWFzZSBjb250YWN0IHVzCiAgYnkgcG9zdGluZyB0byBhIHN1aXRhYmxlIG1haWxpbmcgbGlzdC4gU2VlIGh0dHA6Ly9jdXJsLmhheHguc2UvbWFpbC8KCiAgTWFueSBtYWpvciBjb250cmlidXRvcnMgdG8gdGhlIHByb2plY3QgYXJlIGxpc3RlZCBpbiB0aGUgVEhBTktTIGRvY3VtZW50LgoKV0VCIFNJVEUKCiAgVmlzaXQgdGhlIGN1cmwgd2ViIHNpdGUgb3IgbWlycm9ycyBmb3IgdGhlIGxhdGVzdCBuZXdzOgoKICAgICAgICBTd2VkZW4gICAgLS0gaHR0cDovL2N1cmwuaGF4eC5zZS8KICAgICAgICBBdXN0cmFsaWEgLS0gaHR0cDovL2N1cmwucGxhbmV0bWlycm9yLmNvbS8KICAgICAgICBEZW5tYXJrICAgLS0gaHR0cDovL2N1cmwuY29mbWFuLmRrLwogICAgICAgIEVzdG9uaWEgICAtLSBodHRwOi8vY3VybC53aWxkeW91Lm5ldC8KICAgICAgICBHZXJtYW55ICAgLS0gaHR0cDovL2N1cmwubWlycm9yLmF0LnN0ZWFsZXIubmV0LwogICAgICAgIEdlcm1hbnkgICAtLSBodHRwOi8vY3VybC5uZXRtaXJyb3Iub3JnLwogICAgICAgIFJ1c3NpYSAgICAtLSBodHRwOi8vY3VybC50c3VyZW4ubmV0LwogICAgICAgIFRoYWlsYW5kICAtLSBodHRwOi8vY3VybC5zaWFtdS5hYy50aC8KICAgICAgICBVUyAoQ0EpICAgLS0gaHR0cDovL2N1cmwubWlycm9yLnJlZHdpcmUubmV0LwogICAgICAgIFVTICAgICAgICAtLSBodHRwOi8vY3VybC5zaWduYWw0Mi5jb20vCgpET1dOTE9BRAoKICBUaGUgb2ZmaWNpYWwgZG93bmxvYWQgbWlycm9yIHNpdGVzIGFyZToKCiAgICAgICAgQXVzdHJhbGlhIC0tIGh0dHA6Ly9jdXJsLnBsYW5ldG1pcnJvci5jb20vZG93bmxvYWQuaHRtbAogICAgICAgIEVzdG9uaWEgICAtLSBodHRwOi8vY3VybC53aWxkeW91Lm5ldC9kb3dubG9hZC5odG1sCiAgICAgICAgR2VybWFueSAgIC0tIGZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvcHViL3VuaXgvbmV0d29yay9jdXJsLwogICAgICAgIEdlcm1hbnkgICAtLSBodHRwOi8vY3VybC5taXJyb3IuYXQuc3RlYWxlci5uZXQvZG93bmxvYWQuaHRtbAogICAgICAgIEdlcm1hbnkgICAtLSBodHRwOi8vY3VybC5uZXRtaXJyb3Iub3JnL2Rvd25sb2FkLmh0bWwKICAgICAgICBHZXJtYW55ICAgLS0gaHR0cDovL3d3dy5taXJyb3JzcGFjZS5vcmcvY3VybC8KICAgICAgICBIb25na29uZyAgLS0gaHR0cDovL3d3dy5leGVjdmUubmV0L2N1cmwvCiAgICAgICAgUnVzc2lhICAgIC0tIGh0dHA6Ly9jdXJsLnRzdXJlbi5uZXQvZG93bmxvYWQuaHRtbAogICAgICAgIFN3ZWRlbiAgICAtLSBmdHA6Ly9mdHAuc3VuZXQuc2UvcHViL3d3dy91dGlsaXRpZXMvY3VybC8KICAgICAgICBTd2VkZW4gICAgLS0gaHR0cDovL2Nvb2wuaGF4eC5zZS9jdXJsLwogICAgICAgIFRoYWlsYW5kICAtLSBodHRwOi8vY3VybC5zaWFtdS5hYy50aC9kb3dubG9hZC5odG1sCiAgICAgICAgVVMgKENBKSAgIC0tIGh0dHA6Ly9jdXJsLm1pcnJvci5yZWR3aXJlLm5ldC9kb3dubG9hZC5odG1sCgpDVlMKCiAgVG8gZG93bmxvYWQgdGhlIHZlcnkgbGF0ZXN0IHNvdXJjZSBvZmYgdGhlIENWUyBzZXJ2ZXIgZG8gdGhpczoKCiAgIGN2cyAtZCA6cHNlcnZlcjphbm9ueW1vdXNAY29vbC5oYXh4LnNlOi9jdnNyb290L2N1cmwgbG9naW4KCiAgKGp1c3QgcHJlc3MgZW50ZXIgd2hlbiBhc2tlZCBmb3IgcGFzc3dvcmQpCgogICBjdnMgLWQgOnBzZXJ2ZXI6YW5vbnltb3VzQGNvb2wuaGF4eC5zZTovY3Zzcm9vdC9jdXJsIGNvIGN1cmwKCiAgKHlvdSdsbCBnZXQgYSBkaXJlY3RvcnkgbmFtZWQgY3VybCBjcmVhdGVkLCBmaWxsZWQgd2l0aCB0aGUgc291cmNlIGNvZGUpCgpOT1RJQ0UKCiAgQ3VybCBjb250YWlucyBwaWVjZXMgb2Ygc291cmNlIGNvZGUgdGhhdCBpcyBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTkKICBLdW5nbGlnYSBUZWtuaXNrYSBI9mdza29sYW4uIFRoaXMgbm90aWNlIGlzIGluY2x1ZGVkIGhlcmUgdG8gY29tcGx5IHdpdGggdGhlCiAgZGlzdHJpYnV0aW9uIHRlcm1zLgo=