LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rKioKKip8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8IENvcHlyaWdodCAxOTk4LTIwMDggVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4gLSBodHRwOi8vd3d3LnRpLmNvbS8gICAgICAgICB8KioKKip8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAgICAgICAgICB8KioKKip8IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICAgICAgICB8KioKKip8IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8ICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgICAgICB8KioKKip8IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICAgICAgICB8KioKKip8IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiB8KioKKip8IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgICAgICB8KioKKip8IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKip8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KioKKiorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rKioKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiBNb2R1bGU6CQlUSV9BZGFwdGVyUE0uaCovCi8qKi8KLyogUHVycG9zZToJCVRoaXMgQVBJIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgcG93ZXIgbWFuYWdlbWVudCBvZiB0aGUgU1RBICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmbmRlZiBUSV9BREFQVEVSX1BNX0gKI2RlZmluZSBUSV9BREFQVEVSX1BNX0gKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9TZXRQb3dlck1vZGUKCURlc2M6CVNldCB0aGUgZHJpdmVyknMgcG93ZXIgc2F2ZSBwcm9maWxlLgogICAgUGFyYW1zOgloQWRhcHRlciAtIFRoZSBBZGFwdGVyIGhhbmRsZSByZXR1cm5lZCBieSBUSV9BZGFwdGVySW5pdCgpLgogICAgdGhlUG93ZXJNZ3JQcm9maWxlIC0gb25lIG9mOiBPU19QT1dFUl9NT0RFX0FVVE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TX1BPV0VSX01PREVfQUNUSVZFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU19QT1dFUl9NT0RFX1NIT1JUX0RPWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TX1BPV0VSX01PREVfTE9OR19ET1pFCiAgICBSZXR1cm46CVRJX1JFU1VMVF9PSyBvbiBzdWNjZXNzLiBBbnkgb3RoZXIgdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yLgoJCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KdGlJTlQzMiAgICAgVElfU2V0UG93ZXJNb2RlICAgICAgICAgIChUSV9IQU5ETEUgIGhBZGFwdGVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU184MDJfMTFfUE9XRVJfUFJPRklMRSB0aGVQb3dlck1nclByb2ZpbGUpOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgIE5hbWU6CVRJX0dldFBvd2VyTW9kZQoJRGVzYzoJR2V0IHRoZSBkcml2ZXKScyBwb3dlciBzYXZlIHByb2ZpbGUgKHNlZSBQb3dlciBNYW5hZ2VtZW50IAogICAgICAgICAgICBhcHBsaWNhdGlvbiBub3RlcykuCiAgICBQYXJhbXM6CWhBZGFwdGVyIC0gVGhlIEFkYXB0ZXIgaGFuZGxlIHJldHVybmVkIGJ5IFRJX0FkYXB0ZXJJbml0KCkuCiAgICB0aGVQb3dlck1nclByb2ZpbGUgLSBvbmUgb2Y6IE9TX1BPV0VSX01PREVfQVVUTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NfUE9XRVJfTU9ERV9BQ1RJVkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TX1BPV0VSX01PREVfU0hPUlRfRE9aRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NfUE9XRVJfTU9ERV9MT05HX0RPWkUKICAgIFJldHVybjoJVElfUkVTVUxUX09LIG9uIHN1Y2Nlc3MuIEFueSBvdGhlciB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp0aUlOVDMyICAgICBUSV9HZXRQb3dlck1vZGUgICAgICAgICAgKFRJX0hBTkRMRSAgaEFkYXB0ZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TXzgwMl8xMV9QT1dFUl9QUk9GSUxFKiB0aGVQb3dlck1nclByb2ZpbGUpOwoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9Db25maWdQb3dlck1hbmFnZW1lbnQKICAgIERlc2M6CVNldCB0aGUgZHJpdmVyknMgcG93ZXIgbWFuYWdlbWVudCBtb2RlLgogICAgUGFyYW1zOgloQWRhcHRlciAtIFRoZSBBZGFwdGVyIGhhbmRsZSByZXR1cm5lZCBieSBUSV9BZGFwdGVySW5pdCgpLgogICAgICAgICAgICB0aGVQb3dlck1nclByb2ZpbGUgLSBQb3dlciBtYW5hZ2VtZW50IG1vZGU6CiAgICAgICAgICAgICAgICBUSV9QT1dFUl9NT0RFX0FDVElWRTogVGhlIGRyaXZlciBrZWVwcyB0aGUgV2lMaW5rmSA0LjAgaW4gQWN0aXZlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIGFsbCB0aGUgdGltZS4KICAgICAgICAgICAgICAgIFRJX1BPV0VSX01PREVfU0hPUlRfRE9aRTogVGhlIFdpTGlua5kgNC4wIHdha2VzIHVwIHRoZSBob3N0IG9uIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IGJlYWNvbiBwYXNzZXMgdGhlIGJlYWNvbiB0byB0aGUgZHJpdmVyIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZXR1cm5zIHRvIEVMUCBEb3plIGltbWVkaWF0ZWx5LgogICAgICAgICAgICAgICAgVElfUE9XRVJfTU9ERV9MT05HX0RPWkU6IFRoZSBXaUxpbmuZIDQuMCB1c2VzIGFkdmFuY2VkIGFsZ29yaXRobXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcm92aWRlIGFkdmFuY2VkIHN5c3RlbSBQb3dlciBTYXZlLiBUaGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgdXNlZCBpbiBXaUxpbmuZIDQuMCBhcmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FrZSBvbiBEVElNIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlYWNvbiBGaWx0ZXJpbmcKICAgICAgICAgICAgICAgIFRJX1BPV0VSX01PREVfQVVUTzogVXNlcyB0aGUgVEkgYWxnb3JpdGhtIHRvIGRlY2lkZSB0aGUgYmVzdCBwb3dlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUgKFRORVRfQUNUSVZFLCBTSE9SVF9ET1pFLCBMT05HX0RPWkUpIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZS4gVGhlIGZlYXR1cmUgdXNlZCBpbiBXaUxpbmuZIDQuMCBpcyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdG8gQUNUSVZFIGluIGhpZ2ggVHJhZmZpYyBhbmQgdG8gcmV0dXJuIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIFBTIGluIGxvdyBUcmFmZmljLgogICAgUmV0dXJuOglUSV9SRVNVTFRfT0sgb24gc3VjY2Vzcy4gQW55IG90aGVyIHZhbHVlIGluZGljYXRlcyBhbiBlcnJvci4KCQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnRpSU5UMzIgICAgIFRJX0NvbmZpZ1Bvd2VyTWFuYWdlbWVudCAgICAoVElfSEFORExFICBoQWRhcHRlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NfODAyXzExX1BPV0VSX1BST0ZJTEUgdGhlUG93ZXJNZ3JQcm9maWxlICk7CgogICAgCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9TZXRQb3dlckxldmVsUFMKICAgIERlc2M6CVRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgZHJpdmVyJ3MgcG93ZXIgbGV2ZWwgbW9kZS4KICAgIFBhcmFtczoJaEFkYXB0ZXIgLSBUaGUgQWRhcHRlciBoYW5kbGUgcmV0dXJuZWQgYnkgVElfQWRhcHRlckluaXQoKS4KICAgICAgICAgICAgcFBvd2VyTGV2ZWwgLSBTZXRzIHRoZSBwb3dlciBsZXZlbCBtb2RlIHRvIEVMUCwgUEQgb3IgQVdBS0UKICAgIFJldHVybjoJVElfUkVTVUxUX09LIG9uIHN1Y2Nlc3MuIEFueSBvdGhlciB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp0aUlOVDMyICAgICBUSV9TZXRQb3dlckxldmVsUFMgICAgICAgICAgKFRJX0hBTkRMRSAgaEFkYXB0ZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TXzgwMl8xMV9QT1dFUl9MRVZFTFMgdVBvd2VyTGV2ZWwgKTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9HZXRQb3dlckxldmVsUFMKICAgIERlc2M6CVRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHRoZSBkcml2ZXIncyBwb3dlciBsZXZlbCBtb2RlLgogICAgUGFyYW1zOgloQWRhcHRlciAtIFRoZSBBZGFwdGVyIGhhbmRsZSByZXR1cm5lZCBieSBUSV9BZGFwdGVySW5pdCgpLgogICAgICAgICAgICB1UG93ZXJMZXZlbCAtIEEgcG9pbnRlciB0byB0aGUgT1NfODAyXzExX1BPV0VSX0xFVkVMUyBlbnVtIHR5cGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEVMUCwgUEQgb3IgQVdBS0UpCiAgICBSZXR1cm46CVRJX1JFU1VMVF9PSyBvbiBzdWNjZXNzLiBBbnkgb3RoZXIgdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yLgoJCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KdGlJTlQzMiAgICAgVElfR2V0UG93ZXJMZXZlbFBTICAgICAgICAgIChUSV9IQU5ETEUgIGhBZGFwdGVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU184MDJfMTFfUE9XRVJfTEVWRUxTKiBwUG93ZXJMZXZlbCApOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgIE5hbWU6CVRJX1NldFBvd2VyTGV2ZWxEZWZhdWx0CiAgICBEZXNjOgkKICAgIFBhcmFtczoJaEFkYXB0ZXIgLSBUaGUgQWRhcHRlciBoYW5kbGUgcmV0dXJuZWQgYnkgVElfQWRhcHRlckluaXQoKS4KICAgICAgICAgICAgdVBvd2VyTGV2ZWwgLSAKICAgIFJldHVybjoJVElfUkVTVUxUX09LIG9uIHN1Y2Nlc3MuIEFueSBvdGhlciB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp0aUlOVDMyICAgICBUSV9TZXRQb3dlckxldmVsRGVmYXVsdCAgICAgKFRJX0hBTkRMRSAgaEFkYXB0ZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TXzgwMl8xMV9QT1dFUl9MRVZFTFMgdVBvd2VyTGV2ZWwgKTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9HZXRQb3dlckxldmVsRGVmYXVsdAogICAgRGVzYzoJCiAgICBQYXJhbXM6CWhBZGFwdGVyIC0gVGhlIEFkYXB0ZXIgaGFuZGxlIHJldHVybmVkIGJ5IFRJX0FkYXB0ZXJJbml0KCkuCiAgICAgICAgICAgIHBQb3dlckxldmVsIC0gCiAgICBSZXR1cm46CVRJX1JFU1VMVF9PSyBvbiBzdWNjZXNzLiBBbnkgb3RoZXIgdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yLgoJCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KdGlJTlQzMiAgICAgVElfR2V0UG93ZXJMZXZlbERlZmF1bHQgICAgIChUSV9IQU5ETEUgIGhBZGFwdGVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU184MDJfMTFfUE9XRVJfTEVWRUxTKiBwUG93ZXJMZXZlbCApOwogICAgCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBOYW1lOglUSV9TZXRQb3dlck1vZGUKCURlc2M6CVNldCB0aGUgZHJpdmVyknMgZG96ZSBtb2RlIHdoZW4gdGhlIHBvd2VyIGxldmVsIGlzIGluIAoJCQlBdXRvIG1vZGUKICAgIFBhcmFtczoJaEFkYXB0ZXIgLSBUaGUgQWRhcHRlciBoYW5kbGUgcmV0dXJuZWQgYnkgVElfQWRhcHRlckluaXQoKS4KICAgIHRoZVBvd2VyTWdyUHJvZmlsZSAtIG9uZSBvZjogT1NfUE9XRVJfTU9ERV9TSE9SVF9ET1pFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU19QT1dFUl9NT0RFX0xPTkdfRE9aRQogICAgUmV0dXJuOglUSV9SRVNVTFRfT0sgb24gc3VjY2Vzcy4gQW55IG90aGVyIHZhbHVlIGluZGljYXRlcyBhbiBlcnJvci4KCQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnRpSU5UMzIgICAgIFRJX1NldFBvd2VyTGV2ZWxEb3plTW9kZSAgKFRJX0hBTkRMRSAgaEFkYXB0ZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TXzgwMl8xMV9QT1dFUl9QUk9GSUxFIHRoZVBvd2VyTWdyUHJvZmlsZSk7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgogICAgTmFtZToJVElfR2V0UG93ZXJMZXZlbERvemVNb2RlCglEZXNjOglHZXQgdGhlIGRyaXZlcpJzIGRvemUgbW9kZSB3aGVuIHRoZSBwb3dlciBsZXZlbCBpcyBpbiAKCQkJQXV0byBtb2RlCiAgICBQYXJhbXM6CWhBZGFwdGVyIC0gVGhlIEFkYXB0ZXIgaGFuZGxlIHJldHVybmVkIGJ5IFRJX0FkYXB0ZXJJbml0KCkuCiAgICB0aGVQb3dlck1nclByb2ZpbGUgLSBvbmUgb2Y6IE9TX1BPV0VSX01PREVfU0hPUlRfRE9aRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NfUE9XRVJfTU9ERV9MT05HX0RPWkUKICAgIFJldHVybjoJVElfUkVTVUxUX09LIG9uIHN1Y2Nlc3MuIEFueSBvdGhlciB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp0aUlOVDMyICAgICBUSV9HZXRQb3dlckxldmVsRG96ZU1vZGUgIChUSV9IQU5ETEUgIGhBZGFwdGVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU184MDJfMTFfUE9XRVJfUFJPRklMRSogdGhlUG93ZXJNZ3JQcm9maWxlKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKI2VuZGlmIC8qIFRJX0FEQVBURVJfUE1fSCovCg==