IyBJcmlzaCB0cmFuc2xhdGlvbnMgZm9yIGxpYmljb252IAojIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIyBLZXZpbiBQYXRyaWNrIFNjYW5uZWxsIDxzY2FubmVsbEBTTFUuRURVPiwgMjAwMy4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogbGliaWNvbnYgMS45LXByZTFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA0LTAxLTIyIDExOjU0KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDMtMDUtMDYgMTQ6NTgtMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLZXZpbiBQYXRyaWNrIFNjYW5uZWxsIDxzY2FubmVsbEBTTFUuRURVPlxuIgoiTGFuZ3VhZ2UtVGVhbTogSXJpc2ggPGdhQGxpLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogc3JjL2ljb252LmM6NTQKbXNnaWQgIlVzYWdlOiBpY29udiBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgptc2dzdHIgItpz4WlkOiBpY29udiBbLWNdIFstc10gWy1mIGPzZF0gWy10IGPzZF0gW2NvbWhhZCAuLi5dIgoKIzogc3JjL2ljb252LmM6NTYKbXNnaWQgIm9yOiAgICBpY29udiAtbCIKbXNnc3RyICJu8zogICAgaWNvbnYgLWwiCgojOiBzcmMvaWNvbnYuYzo2NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk9cbiIKIndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLlxuIgptc2dzdHIgIiIKIklzIHNhb3JiaG9nZWFycmEgYW4gcu1vbWhjaGzhciBzZW87IGbpYWNoIGFyIGFuIGJodW5jaPNkIGxlIGhhZ2hhaWRoXG4iCiJjb2lubu1vbGxhY2hhIGPzaXBl4WxhLiAgTu1sIGJhcuFudGEgYXIgYml0aCBhbm47IGdvIGZp+iBu7WwgYmFy4W50YSBhbm5cbiIKImQnSU5EzU9MVEFDSFQgbvMgRkVJTEnaTkFDSFQgRE8gRkhFSURITSBBUiBMRUlUSC5cbiIKCiM6IHNyYy9pY29udi5jOjY5CiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIkxlICVzLlxuIgoKIzogc3JjL2ljb252LmM6MTA1IHNyYy9pY29udi5jOjEzNyBzcmMvaWNvbnYuYzoxODcKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogaW5jb21wbGV0ZSBjaGFyYWN0ZXIgb3Igc2hpZnQgc2VxdWVuY2VcbiIKbXNnc3RyICJpY29udjogJXM6IHNlaWNoZWFtaCBuZWFtaGlvbWzhblxuIgoKIzogc3JjL2ljb252LmM6MTMxIHNyYy9pY29udi5jOjE4MgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBjYW5ub3QgY29udmVydFxuIgptc2dzdHIgImljb252OiAlczogbu0gZulpZGlyIHRpb250+iBhIGRo6WFuYW1oXG4iCgojOiBzcmMvaWNvbnYuYzoxNTMgc3JjL2ljb252LmM6MTkyIHNyYy9pY29udi5jOjMxMAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiAiCm1zZ3N0ciAiaWNvbnY6ICVzOiAiCgojOiBzcmMvaWNvbnYuYzoyMDEKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogSS9PIGVycm9yXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBFYXJy4WlkIEkvQVxuIgoKIzogc3JjL2ljb252LmM6Mjk0CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IG7tbCB0aW9udPog8yAlcyBhciBm4WlsXG4iCgojOiBzcmMvaWNvbnYuYzoyOTYKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IG7tbCB0aW9udPogY2h1aWcgJXMgYXIgZuFpbFxuIgoKIzogc3JjL2ljb252LmM6Mjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IG7tbCB0aW9udPog8yAlcyBjaHVpZyAlcyBhciBm4WlsXG4iCgojOiBzcmMvaWNvbnYuYzozMDIKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKHN0ZGluKSIKCiM6IHNyYy9pY29udi5jOjMyMwojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IEkvTyBlcnJvclxuIgptc2dzdHIgImljb252OiBFYXJy4WlkIEkvQVxuIgoKI34gbXNnaWQgIiIKI34gIlVzYWdlOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYgZnJvbWNvZGVdIFstdCB0b2NvZGVdIFtmaWxlIC4uLl0iCiN+IG1zZ3N0ciAi2nPhaWQ6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBj82RdIFstdCBj82RdIFtjb21oYWQgLi4uXSIK