IyBHZXJtYW4gbWVzc2FnZXMgZm9yIEdOVSBsaWJpY29udi4KIyBDb3B5cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIEdOVSBsaWJpY29udiBwYWNrYWdlLgojIEJydW5vIEhhaWJsZSA8YnJ1bm9AY2xpc3Aub3JnPiwgMjAwMi4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGxpYmljb252IDEuOFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDQtMDEtMjIgMTE6NTQrMDEwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMi0wNC0yOCAwNDoyNiswMjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEJydW5vIEhhaWJsZSA8YnJ1bm9AY2xpc3Aub3JnPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogc3JjL2ljb252LmM6NTQKbXNnaWQgIlVzYWdlOiBpY29udiBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgptc2dzdHIgIiIKIkF1ZnJ1ZjogaWNvbnYgWy1jXSBbLXNdIFstZiBBVVNHQU5HUy1LT0RJRVJVTkddIFstdCBaSUVMLUtPRElFUlVOR10gIgoiW0RBVEVJIC4uLl0iCgojOiBzcmMvaWNvbnYuYzo1Ngptc2dpZCAib3I6ICAgIGljb252IC1sIgptc2dzdHIgIm9kZXI6ICAgaWNvbnYgLWwiCgojOiBzcmMvaWNvbnYuYzo2NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk9cbiIKIndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLlxuIgptc2dzdHIgIiIKIkRpZXMgaXN0IGZyZWllIFNvZnR3YXJlOyBkaWUgS29waWVyYmVkaW5ndW5nZW4gc3RlaGVuIGluIGRlbiBRdWVsbGVuLiBFc1xuIgoiZ2lidCBrZWluZSBHYXJhbnRpZTsgYXVjaCBuaWNodCBm/HIgVkVSS0FVRkJBUktFSVQgb2RlciBG3FIgU1BFWklFTExFICIKIlpXRUNLRS5cbiIKCiM6IHNyYy9pY29udi5jOjY5CiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIkdlc2NocmllYmVuIHZvbiAlcy5cbiIKCiM6IHNyYy9pY29udi5jOjEwNSBzcmMvaWNvbnYuYzoxMzcgc3JjL2ljb252LmM6MTg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IGluY29tcGxldGUgY2hhcmFjdGVyIG9yIHNoaWZ0IHNlcXVlbmNlXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiB1bnZvbGxzdORuZGlnZXMgWmVpY2hlbiBvZGVyIHVudm9sbHN05G5kaWdlIFVtc2NoYWx0Zm9sZ2VcbiIKCiM6IHNyYy9pY29udi5jOjEzMSBzcmMvaWNvbnYuYzoxODIKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogY2Fubm90IGNvbnZlcnRcbiIKbXNnc3RyICJpY29udjogJXM6IEthbm4gbmljaHQgdW13YW5kZWxuLlxuIgoKIzogc3JjL2ljb252LmM6MTUzIHNyYy9pY29udi5jOjE5MiBzcmMvaWNvbnYuYzozMTAKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogIgptc2dzdHIgImljb252OiAlczogIgoKIzogc3JjL2ljb252LmM6MjAxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IEkvTyBlcnJvclxuIgptc2dzdHIgImljb252OiAlczogRWluLS9BdXNnYWJlZmVobGVyXG4iCgojOiBzcmMvaWNvbnYuYzoyOTQKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIGZyb20gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjogVW13YW5kbHVuZyBhdXNnZWhlbmQgdm9uICVzIGlzdCBuaWNodCB1bnRlcnN0/HR6dC5cbiIKCiM6IHNyYy9pY29udi5jOjI5NgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gdG8gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjogVW13YW5kbHVuZyBuYWNoICVzIGlzdCBuaWNodCB1bnRlcnN0/HR6dC5cbiIKCiM6IHNyYy9pY29udi5jOjI5OAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB0byAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBVbXdhbmRsdW5nIHZvbiAlcyBuYWNoICVzIGlzdCBuaWNodCB1bnRlcnN0/HR6dC5cbiIKCiM6IHNyYy9pY29udi5jOjMwMgptc2dpZCAiKHN0ZGluKSIKbXNnc3RyICIoU3RhbmRhcmQtRWluZ2FiZSkiCgojOiBzcmMvaWNvbnYuYzozMjMKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogRWluLS9BdXNnYWJlZmVobGVyXG4iCgojfiBtc2dpZCAiIgojfiAiVXNhZ2U6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKI34gbXNnc3RyICIiCiN+ICJBdWZydWY6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdXG4iCiN+ICIgICAgICAgICAgICAgIFstZiBBVVNHQU5HUy1LT0RJRVJVTkddIFstdCBaSUVMLUtPRElFUlVOR10gW0RBVEVJIC4uLl0iCg==