ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICBfIF9fX18gIF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19ffCB8IHwgfCAgXyBcfCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8ICBfIDx8IHxfX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19ffFxfX18vfF98IFxfXF9fX19ffAoKUkVBRE1FCgogIEN1cmwgaXMgYSBjb21tYW5kIGxpbmUgdG9vbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEgc3BlY2lmaWVkIHdpdGggVVJMCiAgc3ludGF4LiBGaW5kIG91dCBob3cgdG8gdXNlIEN1cmwgYnkgcmVhZGluZyB0aGUgY3VybC4xIG1hbiBwYWdlIG9yIHRoZQogIE1BTlVBTCBkb2N1bWVudC4gRmluZCBvdXQgaG93IHRvIGluc3RhbGwgQ3VybCBieSByZWFkaW5nIHRoZSBJTlNUQUxMCiAgZG9jdW1lbnQuCgogIGxpYmN1cmwgaXMgdGhlIGxpYnJhcnkgY3VybCBpcyB1c2luZyB0byBkbyBpdHMgam9iLiBJdCBpcyByZWFkaWx5CiAgYXZhaWxhYmxlIHRvIGJlIHVzZWQgYnkgeW91ciBzb2Z0d2FyZS4gUmVhZCB0aGUgbGliY3VybC4zIG1hbiBwYWdlIHRvCiAgbGVhcm4gaG93IQoKICBZb3UgZmluZCBhbnN3ZXJzIHRvIHRoZSBtb3N0IGZyZXF1ZW50IHF1ZXN0aW9ucyB3ZSBnZXQgaW4gdGhlIEZBUSBkb2N1bWVudC4KCiAgU3R1ZHkgdGhlIENPUFlJTkcgZmlsZSBmb3IgZGlzdHJpYnV0aW9uIHRlcm1zIGFuZCBzaW1pbGFyLiBJZiB5b3UgZGlzdHJpYnV0ZQogIGN1cmwgYmluYXJpZXMgb3Igb3RoZXIgYmluYXJpZXMgdGhhdCBpbnZvbHZlIGxpYmN1cmwsIHlvdSBtaWdodCBlbmpveSB0aGUKICBMSUNFTlNFLU1JWElORyBkb2N1bWVudC4KCkNPTlRBQ1QKCiAgSWYgeW91IGhhdmUgcHJvYmxlbXMsIHF1ZXN0aW9ucywgaWRlYXMgb3Igc3VnZ2VzdGlvbnMsIHBsZWFzZSBjb250YWN0IHVzCiAgYnkgcG9zdGluZyB0byBhIHN1aXRhYmxlIG1haWxpbmcgbGlzdC4gU2VlIGh0dHA6Ly9jdXJsLmhheHguc2UvbWFpbC8KCiAgTWFueSBtYWpvciBjb250cmlidXRvcnMgdG8gdGhlIHByb2plY3QgYXJlIGxpc3RlZCBpbiB0aGUgVEhBTktTIGRvY3VtZW50LgoKV0VCIFNJVEUKCiAgVmlzaXQgdGhlIGN1cmwgd2ViIHNpdGUgb3IgbWlycm9ycyBmb3IgdGhlIGxhdGVzdCBuZXdzOgoKICAgICAgICBTd2VkZW4gICAgLS0gaHR0cDovL2N1cmwuaGF4eC5zZS8KICAgICAgICBBdXN0cmFsaWEgLS0gaHR0cDovL2N1cmwucGxhbmV0bWlycm9yLmNvbS8KICAgICAgICBBdXN0cmlhICAgLS0gaHR0cDovL2N1cmwuZ2RzLnR1d2llbi5hYy5hdC8KICAgICAgICBEZW5tYXJrICAgLS0gaHR0cDovL2N1cmwuY29mbWFuLmRrLwogICAgICAgIEVzdG9uaWEgICAtLSBodHRwOi8vY3VybC53aWxkeW91Lm5ldC8KICAgICAgICBGcmFuY2UgICAgLS0gaHR0cDovL2N1cmwubWlycm9yLmludGVybmV0LnRwLwogICAgICAgIEdlcm1hbnkgICAtLSBodHRwOi8vY3VybC5rZ3Qub3JnLwogICAgICAgIEdlcm1hbnkgICAtLSBodHRwOi8vY3VybC5taXJyb3IuYXQuc3RlYWxlci5uZXQvCiAgICAgICAgR2VybWFueSAgIC0tIGh0dHA6Ly9jdXJsLm5ldG1pcnJvci5vcmcvCiAgICAgICAgUnVzc2lhICAgIC0tIGh0dHA6Ly9jdXJsLnRzdXJlbi5uZXQvCiAgICAgICAgVGFpd2FuICAgIC0tIGh0dHA6Ly9jdXJsLmNzLnB1LmVkdS50dy8KICAgICAgICBUaGFpbGFuZCAgLS0gaHR0cDovL2N1cmwuc2lhbXUuYWMudGgvCiAgICAgICAgVVMgKENBKSAgIC0tIGh0dHA6Ly9jdXJsLm1pcnJvci5yZWR3aXJlLm5ldC8KICAgICAgICBVUyAoQ0EpICAgLS0gaHR0cDovL2N1cmwubWlycm9ybW9uc3Rlci5jb20vCiAgICAgICAgVVMgKENBKSAgIC0tIGh0dHA6Ly9jdXJsLnNpZ25hbDQyLmNvbS8KICAgICAgICBVUyAoVFgpICAgLS0gaHR0cDovL2N1cmwuMTA5ay5jb20vCgpET1dOTE9BRAoKICBUaGUgb2ZmaWNpYWwgZG93bmxvYWQgbWlycm9yIHNpdGVzIGFyZToKCiAgICAgICAgQXVzdHJhbGlhIC0tIGh0dHA6Ly9jdXJsLnBsYW5ldG1pcnJvci5jb20vZG93bmxvYWQuaHRtbAogICAgICAgIEF1c3RyaWEgICAtLSBodHRwOi8vY3VybC5nZHMudHV3aWVuLmFjLmF0L2Rvd25sb2FkLmh0bWwKICAgICAgICBFc3RvbmlhICAgLS0gaHR0cDovL2N1cmwud2lsZHlvdS5uZXQvZG93bmxvYWQuaHRtbAogICAgICAgIEdlcm1hbnkgICAtLSBmdHA6Ly9mdHAuZnUtYmVybGluLmRlL3B1Yi91bml4L25ldHdvcmsvY3VybC8KICAgICAgICBHZXJtYW55ICAgLS0gaHR0cDovL2N1cmwubWlycm9yLmF0LnN0ZWFsZXIubmV0L2Rvd25sb2FkLmh0bWwKICAgICAgICBHZXJtYW55ICAgLS0gaHR0cDovL2N1cmwubmV0bWlycm9yLm9yZy9kb3dubG9hZC5odG1sCiAgICAgICAgR2VybWFueSAgIC0tIGh0dHA6Ly93d3cubWlycm9yc3BhY2Uub3JnL2N1cmwvCiAgICAgICAgSG9uZ2tvbmcgIC0tIGh0dHA6Ly93d3cuZXhlY3ZlLm5ldC9jdXJsLwogICAgICAgIFJ1c3NpYSAgICAtLSBodHRwOi8vY3VybC50c3VyZW4ubmV0L2Rvd25sb2FkLmh0bWwKICAgICAgICBTd2VkZW4gICAgLS0gZnRwOi8vZnRwLnN1bmV0LnNlL3B1Yi93d3cvdXRpbGl0aWVzL2N1cmwvCiAgICAgICAgU3dlZGVuICAgIC0tIGh0dHA6Ly9jb29sLmhheHguc2UvY3VybC8KICAgICAgICBUYWl3YW4gICAgLS0gaHR0cDovL2N1cmwuY3MucHUuZWR1LnR3L2Rvd25sb2FkLmh0bWwKICAgICAgICBUaGFpbGFuZCAgLS0gaHR0cDovL2N1cmwuc2lhbXUuYWMudGgvZG93bmxvYWQuaHRtbAogICAgICAgIFVTIChDQSkgICAtLSBodHRwOi8vY3VybC5taXJyb3IucmVkd2lyZS5uZXQvZG93bmxvYWQuaHRtbAogICAgICAgIFVTIChDQSkgICAtLSBodHRwOi8vY3VybC5taXJyb3Jtb25zdGVyLmNvbS9kb3dubG9hZC5odG1sCiAgICAgICAgVVMgKENBKSAgIC0tIGh0dHA6Ly9jdXJsLnNpZ25hbDQyLmNvbS9kb3dubG9hZC5odG1sCiAgICAgICAgVVMgKFRYKSAgIC0tIGh0dHA6Ly9jdXJsLjEwOWsuY29tL2Rvd25sb2FkLmh0bWwKCkNWUwoKICBUbyBkb3dubG9hZCB0aGUgdmVyeSBsYXRlc3Qgc291cmNlIG9mZiB0aGUgQ1ZTIHNlcnZlciBkbyB0aGlzOgoKICAgY3ZzIC1kIDpwc2VydmVyOmFub255bW91c0Bjb29sLmhheHguc2U6L2N2c3Jvb3QvY3VybCBsb2dpbgoKICAoanVzdCBwcmVzcyBlbnRlciB3aGVuIGFza2VkIGZvciBwYXNzd29yZCkKCiAgIGN2cyAtZCA6cHNlcnZlcjphbm9ueW1vdXNAY29vbC5oYXh4LnNlOi9jdnNyb290L2N1cmwgY28gY3VybAoKICAoeW91J2xsIGdldCBhIGRpcmVjdG9yeSBuYW1lZCBjdXJsIGNyZWF0ZWQsIGZpbGxlZCB3aXRoIHRoZSBzb3VyY2UgY29kZSkKCk5PVElDRQoKICBDdXJsIGNvbnRhaW5zIHBpZWNlcyBvZiBzb3VyY2UgY29kZSB0aGF0IGlzIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OQogIEt1bmdsaWdhIFRla25pc2thIEj2Z3Nrb2xhbi4gVGhpcyBub3RpY2UgaXMgaW5jbHVkZWQgaGVyZSB0byBjb21wbHkgd2l0aCB0aGUKICBkaXN0cmlidXRpb24gdGVybXMuCg==