IyBEYW5pc2ggbWVzc2FnZXMgZm9yIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBLZWxkIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPiwgMjAwMi4KIyBDaHJpc3RpYW4gUm9zZSA8bWVudGhvc0BtZW50aG9zLmNvbT4sIDIwMDIuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGxpYmljb252IHBhY2thZ2UuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGxpYmljb252LTEuOFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDQtMDEtMjIgMTE6NTQrMDEwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMi0xMS0wOSAxOToyMyswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEtlbGQgU2ltb25zZW4gPGtlbGRAZGt1dWcuZGs+XG4iCiJMYW5ndWFnZS1UZWFtOiBEYW5pc2ggPGRhbnNrQGtsaWQuZGs+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IHNyYy9pY29udi5jOjU0Cm1zZ2lkICJVc2FnZTogaWNvbnYgWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKbXNnc3RyICJCcnVnOiBpY29udiBbLWNdIFstc10gWy1mIGZyYWtvZGVdIFstdCB0aWxrb2RlXSBbZmlsIC4uLl0iCgojOiBzcmMvaWNvbnYuYzo1Ngptc2dpZCAib3I6ICAgIGljb252IC1sIgptc2dzdHIgImVsbGVyOiBpY29udiAtbCIKCiM6IHNyYy9pY29udi5jOjY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOT1xuIgoid2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuXG4iCm1zZ3N0ciAiIgoiRGV0dGUgZXIgZnJpdCBwcm9ncmFtbWVsOyBzZSBraWxkZWtvZGVuIGZvciBrb3BpZXJpbmdzYmV0aW5nZWxzZXIuIERlciAiCiJnaXZlc1xuIgoiSU5HRU4gZ2FyYW50aTsgaWtrZSBlbmdhbmcgZm9yIFNBTEdCQVJIRUQgZWxsZXIgRUdORVRIRUQgRk9SIE5PR0VUXG4iCiJTxlJMSUdUIEZPUk3FTC5cbiIKCiM6IHNyYy9pY29udi5jOjY5CiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIlNrcmV2ZXQgYWYgJXMuXG4iCgojOiBzcmMvaWNvbnYuYzoxMDUgc3JjL2ljb252LmM6MTM3IHNyYy9pY29udi5jOjE4NwojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZVxuIgptc2dzdHIgImljb252OiAlczogdWZ1bGRzdOZuZGlndCB0ZWduIGVsbGVyIHNraWZ0ZXNla3ZlbnNcbiIKCiM6IHNyYy9pY29udi5jOjEzMSBzcmMvaWNvbnYuYzoxODIKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogY2Fubm90IGNvbnZlcnRcbiIKbXNnc3RyICJpY29udjogJXM6IGthbiBpa2tlIGtvbnZlcnRlcmVcbiIKCiM6IHNyYy9pY29udi5jOjE1MyBzcmMvaWNvbnYuYzoxOTIgc3JjL2ljb252LmM6MzEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6ICIKbXNnc3RyICJpY29udjogJXM6ICIKCiM6IHNyYy9pY29udi5jOjIwMQojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogJXM6IGluZC0vdWRza3JpZnRzZmVqbFxuIgoKIzogc3JjL2ljb252LmM6Mjk0CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IGtvbnZlcnRlcmluZyBmcmEgJXMgdW5kZXJzdPh0dGVzIGlra2VcbiIKCiM6IHNyYy9pY29udi5jOjI5NgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gdG8gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjoga29udmVydGVyaW5nIHRpbCAlcyB1bmRlcnN0+HR0ZXMgaWtrZVxuIgoKIzogc3JjL2ljb252LmM6Mjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IGtvbnZlcnRlcmluZyBmcmEgJXMgdGlsICVzIHVuZGVyc3T4dHRlcyBpa2tlXG4iCgojOiBzcmMvaWNvbnYuYzozMDIKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKHN0YW5kYXJkIGluZCkiCgojOiBzcmMvaWNvbnYuYzozMjMKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogSS9PLWZlamxcbiIKCiN+IG1zZ2lkICIiCiN+ICJVc2FnZTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgojfiBtc2dzdHIgIiIKI34gIkJydWc6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBmcmFrb2RlXSBbLXQgdGlsa29kZV0gW2ZpbCAuLi5dIgo=