IyBOb3J3ZWdpYW4gYm9rbeVsIHRyYW5zbGF0aW9uIG9mIEdOVSBiaXNvbi4KIyBDb3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIFBBQ0tBR0UgcGFja2FnZS4KIyBUcm9uZCBFbmRyZXN0+GwgPFRyb25kLkVuZHJlc3RvbEBndGYub2wubm8+LCAyMDA0LgojCiMgU2VuZCB0aGlzIGZpbGUgYXMgYW4gZ3ppcHBlZCBhdHRhY2htZW50IHRvOgojIHRyYW5zbGF0aW9uQGlyby51bW9udHJlYWwuY2EKIyB3aXRoIHRoZSBzdWJqZWN0OgojIFRQLVJvYm90IFBBQ0tBR0UtVkVSU0lPTi5URUFNLnBvCiMKIyBUaGUgc3ViamVjdCBmb3IgdGhlIE5vcndlZ2lhbiBib2tt5WwgdHJhbnNsYXRpb24gb2YgR05VIGJpc29uLXJ1bnRpbWUgMi4xCiMgd291bGQgdGhlbiBiZToKIyBUUC1Sb2JvdCBiaXNvbi1ydW50aW1lLTIuMS5uYi5wbwojCiMgSGVyZSdzIHRoZSBVUkwgZm9yIHRoZSBOb3J3ZWdpYW4gYm9rbeVsIHRyYW5zbGF0aW9uIHRlYW06CiMgaHR0cDovL3d3dy5pcm8udW1vbnRyZWFsLmNhL3RyYW5zbGF0aW9uL3JlZ2lzdHJ5LmNnaT90ZWFtPW5iCiMKIyBIZXJlJ3MgdGhlIFVSTCBmb3IgdGhlIGN1cnJlbnQgdHJhbnNsYXRpb25zIG9mIEdOVSBiaXNvbi1ydW50aW1lOgojIGh0dHA6Ly93d3cuaXJvLnVtb250cmVhbC5jYS90cmFuc2xhdGlvbi9yZWdpc3RyeS5jZ2k/ZG9tYWluPWJpc29uLXJ1bnRpbWUKIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogYmlzb24tcnVudGltZSAyLjFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctYmlzb25AZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTItMTItMTIgMTY6MDkrMDEwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwNS0wOS0yMSAwOTozNSswMjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFRyb25kIEVuZHJlc3T4bCA8VHJvbmQuRW5kcmVzdG9sQGd0Zi5vbC5ubz5cbiIKIkxhbmd1YWdlLVRlYW06IE5vcndlZ2lhbiBCb2ttYWFsIDxpMThuLW5iQGxpc3Rlci5waW5nLnVpby5ubz5cbiIKIkxhbmd1YWdlOiBuYlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKCiM6IGRhdGEvZ2xyLmM6ODU1IGRhdGEveWFjYy5jOjc3Ngptc2dpZCAic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1cCIKbXNnc3RyICJzeW50YWtzZmVpbDoga2FuIGlra2UgZ+UgdGlsYmFrZSIKCiM6IGRhdGEvZ2xyLmM6MTcyOQptc2dpZCAic3ludGF4IGlzIGFtYmlndW91cyIKbXNnc3RyICJzeW50YWtzZW4gZXIgZmxlcnR5ZGlnIgoKIzogZGF0YS9nbHIuYzoyMDE0IGRhdGEvZ2xyLmM6MjA5NCBkYXRhL2dsci5jOjIxMzQgZGF0YS9nbHIuYzoyMzk5CiM6IGRhdGEvbGFscjEuY2M6OTQ3IGRhdGEvbGFscjEuY2M6OTY3IGRhdGEveWFjYy5jOjEzNTEgZGF0YS95YWNjLmM6MTg1NgojOiBkYXRhL3lhY2MuYzoxODYyCm1zZ2lkICJzeW50YXggZXJyb3IiCm1zZ3N0ciAic3ludGFrc2ZlaWwiCgojOiBkYXRhL2dsci5jOjIwOTUgZGF0YS9sYWxyMS5jYzo5NDggZGF0YS95YWNjLmM6MTM1MgojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzIgptc2dzdHIgInN5bnRha3NmZWlsLCB1Zm9ydmVudGV0ICVzIgoKIzogZGF0YS9nbHIuYzoyMDk2IGRhdGEvbGFscjEuY2M6OTQ5IGRhdGEveWFjYy5jOjEzNTMKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIgptc2dzdHIgInN5bnRha3NmZWlsLCB1Zm9ydmVudGV0ICVzLCBmb3J2ZW50ZXQgJXMiCgojOiBkYXRhL2dsci5jOjIwOTcgZGF0YS9sYWxyMS5jYzo5NTAgZGF0YS95YWNjLmM6MTM1NAojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMiCm1zZ3N0ciAic3ludGFrc2ZlaWwsIHVmb3J2ZW50ZXQgJXMsIGZvcnZlbnRldCAlcyBlbGxlciAlcyIKCiM6IGRhdGEvZ2xyLmM6MjA5OCBkYXRhL2xhbHIxLmNjOjk1MSBkYXRhL3lhY2MuYzoxMzU1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMsIGV4cGVjdGluZyAlcyBvciAlcyBvciAlcyIKbXNnc3RyICJzeW50YWtzZmVpbCwgdWZvcnZlbnRldCAlcywgZm9ydmVudGV0ICVzIGVsbGVyICVzIGVsbGVyICVzIgoKIzogZGF0YS9nbHIuYzoyMDk5IGRhdGEvbGFscjEuY2M6OTUyIGRhdGEveWFjYy5jOjEzNTYKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVzIG9yICVzIG9yICVzIgptc2dzdHIgInN5bnRha3NmZWlsLCB1Zm9ydmVudGV0ICVzLCBmb3J2ZW50ZXQgJXMgZWxsZXIgJXMgZWxsZXIgJXMgZWxsZXIgJXMiCgojOiBkYXRhL2dsci5jOjI0NTkgZGF0YS95YWNjLmM6MTQzNiBkYXRhL3lhY2MuYzoxNDM4IGRhdGEveWFjYy5jOjE2MTYKIzogZGF0YS95YWNjLmM6MjAxMwptc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJtaW5uZSBlciB1dHT4bXQiCg==