IyB0cmFuc2xhdGlvbiBvZiBsaWJpY29udi0xLjEyLnBvIHRvIERldXRzY2gKIyBHZXJtYW4gbWVzc2FnZXMgZm9yIEdOVSBsaWJpY29udi4KIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDYsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIEdOVSBsaWJpY29udiBwYWNrYWdlLgojIEJydW5vIEhhaWJsZSA8YnJ1bm9AY2xpc3Aub3JnPiwgMjAwMiwgMjAwNiwgMjAwOC4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGxpYmljb252IDEuMTJcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDE2LTEyLTA0IDE3OjE2KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDEtMDggMTE6MTgrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBCcnVubyBIYWlibGUgPGJydW5vQGNsaXNwLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8dHJhbnNsYXRpb24tdGVhbS1kZUBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiJMYW5ndWFnZTogZGVcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCiJYLUdlbmVyYXRvcjogS0JhYmVsIDEuMC4yXG4iCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IGxpbmUgb2YgdGhlIHNob3J0IHVzYWdlIG1lc3NhZ2UuCiM6IHNyYy9pY29udi5jOjEwNAptc2dpZCAiVXNhZ2U6IGljb252IFstY10gWy1zXSBbLWYgZnJvbWNvZGVdIFstdCB0b2NvZGVdIFtmaWxlIC4uLl0iCm1zZ3N0ciAiIgoiQXVmcnVmOiBpY29udiBbLWNdIFstc10gWy1mIEFVU0dBTkdTLUtPRElFUlVOR10gWy10IFpJRUwtS09ESUVSVU5HXSAiCiJbREFURUkgLi4uXSIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgc2Vjb25kIGxpbmUgb2YgdGhlIHNob3J0IHVzYWdlIG1lc3NhZ2UuCiMuIEFsaWduIGl0IGNvcnJlY3RseSBhZ2FpbnN0IHRoZSBmaXJzdCBsaW5lLgojOiBzcmMvaWNvbnYuYzoxMDgKbXNnaWQgIm9yOiAgICBpY29udiAtbCIKbXNnc3RyICJvZGVyOiAgIGljb252IC1sIgoKIzogc3JjL2ljb252LmM6MTEwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiVHJ5ICclcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgptc2dzdHIgIrslcyAtLWhlbHCrIGdpYnQgd2VpdGVyZSBJbmZvcm1hdGlvbmVuLlxuIgoKIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCBsaW5lIG9mIHRoZSBsb25nIHVzYWdlIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBwcm9ncmFtIG5hbWUuCiM6IHNyYy9pY29udi5jOjExNQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiVXNhZ2U6ICVzIFtPUFRJT04uLi5dIFstZiBFTkNPRElOR10gWy10IEVOQ09ESU5HXSBbSU5QVVRGSUxFLi4uXVxuIgptc2dzdHIgIkF1ZnJ1ZjogJXMgW09QVElPTi4uLl0gWy1mIEtPRElFUlVOR10gWy10IEtPRElFUlVOR10gW0VJTkJBQkVEQVRFSS4uLl1cbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgc2Vjb25kIGxpbmUgb2YgdGhlIGxvbmcgdXNhZ2UgbWVzc2FnZS4KIy4gQWxpZ24gaXQgY29ycmVjdGx5IGFnYWluc3QgdGhlIGZpcnN0IGxpbmUuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBwcm9ncmFtIG5hbWUuCiM6IHNyYy9pY29udi5jOjEyMgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAib3I6ICAgICVzIC1sXG4iCm1zZ3N0ciAib2RlcjogICAlcyAtbFxuIgoKIy4gVFJBTlNMQVRPUlM6IERlc2NyaXB0aW9uIG9mIHRoZSBpY29udiBwcm9ncmFtLgojOiBzcmMvaWNvbnYuYzoxMjgKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIkNvbnZlcnRzIHRleHQgZnJvbSBvbmUgZW5jb2RpbmcgdG8gYW5vdGhlciBlbmNvZGluZy5cbiIKbXNnc3RyICJXYW5kZWx0IFRleHQgdm9uIGVpbmVyIEtvZGllcnVuZyBpbiBlaW5lIGFuZGVyZSBLb2RpZXJ1bmcgdW0uXG4iCgojOiBzcmMvaWNvbnYuYzoxMzIKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIk9wdGlvbnMgY29udHJvbGxpbmcgdGhlIGlucHV0IGFuZCBvdXRwdXQgZm9ybWF0OlxuIgptc2dzdHIgIk9wdGlvbmVuIGb8ciBkYXMgRWluLSB1bmQgQXVzZ2FiZWZvcm1hdDpcbiIKCiM6IHNyYy9pY29udi5jOjEzNQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtZiBFTkNPRElORywgLS1mcm9tLWNvZGU9RU5DT0RJTkdcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlbmNvZGluZyBvZiB0aGUgaW5wdXRcbiIKbXNnc3RyICIiCiIgIC1mIEtPRElFUlVORywgLS1mcm9tLWNvZGU9S09ESUVSVU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgS29kaWVydW5nIGRlciBFaW5nYWJlXG4iCgojOiBzcmMvaWNvbnYuYzoxMzkKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiIKIiAgLXQgRU5DT0RJTkcsIC0tdG8tY29kZT1FTkNPRElOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGVuY29kaW5nIG9mIHRoZSBvdXRwdXRcbiIKbXNnc3RyICIiCiIgIC10IEtPRElFUlVORywgLS10by1jb2RlPUtPRElFUlVOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllIEtvZGllcnVuZyBkZXIgQXVzZ2FiZVxuIgoKIzogc3JjL2ljb252LmM6MTQ0CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJPcHRpb25zIGNvbnRyb2xsaW5nIGNvbnZlcnNpb24gcHJvYmxlbXM6XG4iCm1zZ3N0ciAiT3B0aW9uZW4gZvxyIGRpZSBCZWhhbmRsdW5nIHZvbiBVbXdhbmRsdW5nc3Byb2JsZW1lbjpcbiIKCiM6IHNyYy9pY29udi5jOjE0NwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtYyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY2FyZCB1bmNvbnZlcnRpYmxlIGNoYXJhY3RlcnNcbiIKbXNnc3RyICIiCiIgIC1jICAgICAgICAgICAgICAgICAgICAgICAgICBaZWljaGVuLCBkaWUgbmljaHQgdW1nZXdhbmRlbHQgd2VyZGVuIGv2bm5lbixcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vnd2VyZmVuXG4iCgojOiBzcmMvaWNvbnYuYzoxNTAKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiIKIiAgLS11bmljb2RlLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIFVuaWNvZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKIiAgLS11bmljb2RlLXN1YnN0PUZPUk1BVFpFSUNIRU5LRVRURVxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJzYXR6IGb8ciBVbmljb2RlLVplaWNoZW4sIGRpZSBuaWNodCB1bWdld2FuZGVsdFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXJkZW4ga/ZubmVuXG4iCgojOiBzcmMvaWNvbnYuYzoxNTQKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLS1ieXRlLXN1YnN0PUZPUk1BVFNUUklORyAgIHN1YnN0aXR1dGlvbiBmb3IgdW5jb252ZXJ0aWJsZSBieXRlc1xuIgptc2dzdHIgIiIKIiAgLS1ieXRlLXN1YnN0PUZPUk1BVFpFSUNIRU5LRVRURVxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJzYXR6IGb8ciBCeXRlcywgZGllIG5pY2h0IHVtZ2V3YW5kZWx0IHdlcmRlblxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr9m5uZW5cbiIKCiM6IHNyYy9pY29udi5jOjE1NwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtLXdpZGVjaGFyLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIHdpZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKIiAgLS13aWRlY2hhci1zdWJzdD1GT1JNQVRaRUlDSEVOS0VUVEVcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVyc2F0eiBm/HIgu3dpZGWrLVplaWNoZW4sIGRpZSBuaWNodCB1bWdld2FuZGVsdFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXJkZW4ga/ZubmVuXG4iCgojOiBzcmMvaWNvbnYuYzoxNjIKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIk9wdGlvbnMgY29udHJvbGxpbmcgZXJyb3Igb3V0cHV0OlxuIgptc2dzdHIgIk9wdGlvbmVuIGb8ciBkaWUgQXVzZ2FiZSB2b24gRmVobGVybjpcbiIKCiM6IHNyYy9pY29udi5jOjE2NQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtcywgLS1zaWxlbnQgICAgICAgICAgICAgICAgc3VwcHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgY29udmVyc2lvbiBwcm9ibGVtc1xuIgptc2dzdHIgIiIKIiAgLXMsIC0tc2lsZW50ICAgICAgICAgICAgICAgIEZlaGxlcm1lbGR1bmdlbiD8YmVyIFByb2JsZW1lIGJlaSBkZXIgVW13YW5kbHVuZ1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRlcmRy/GNrZW5cbiIKCiM6IHNyYy9pY29udi5jOjE2OQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiSW5mb3JtYXRpdmUgb3V0cHV0OlxuIgptc2dzdHIgIkluZm9ybWF0aXZlIEF1c2dhYmU6XG4iCgojOiBzcmMvaWNvbnYuYzoxNzIKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLWwsIC0tbGlzdCAgICAgICAgICAgICAgICAgIGxpc3QgdGhlIHN1cHBvcnRlZCBlbmNvZGluZ3NcbiIKbXNnc3RyICIgIC1sLCAtLWxpc3QgICAgICAgICAgICAgICAgICBkaWUgdW50ZXJzdPx0enRlbiBLb2RpZXJ1bmdlbiBhbnplaWdlblxuIgoKIzogc3JjL2ljb252LmM6MTc1CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC0taGVscCAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgptc2dzdHIgIiAgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgIGRpZXNlIEhpbGZlIGFuemVpZ2VuIHVuZCBiZWVuZGVuXG4iCgojOiBzcmMvaWNvbnYuYzoxNzgKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgVmVyc2lvbnNpbmZvcm1hdGlvbiBhbnplaWdlbiB1bmQgYmVlbmRlblxuIgoKIy4gVFJBTlNMQVRPUlM6IFRoZSBwbGFjZWhvbGRlciBpbmRpY2F0ZXMgdGhlIGJ1Zy1yZXBvcnRpbmcgYWRkcmVzcwojLiBmb3IgdGhpcyBwYWNrYWdlLiAgUGxlYXNlIGFkZCBfYW5vdGhlciBsaW5lXyBzYXlpbmcKIy4gIlJlcG9ydCB0cmFuc2xhdGlvbiBidWdzIHRvIDwuLi4+XG4iIHdpdGggdGhlIGFkZHJlc3MgZm9yIHRyYW5zbGF0aW9uCiMuIGJ1Z3MgKHR5cGljYWxseSB5b3VyIHRyYW5zbGF0aW9uIHRlYW0ncyB3ZWIgb3IgZW1haWwgYWRkcmVzcykuCiM6IHNyYy9pY29udi5jOjE4NQptc2dpZCAiUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz4uXG4iCm1zZ3N0ciAiIgoiRmVobGVyIGJpdHRlIChhdWYgRW5nbGlzY2gsIG1pdCBMQ19BTEw9QykgYW4gPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz5cbiIKIm1lbGRlbi5cbiIKIkb8ciBkaWUgZGV1dHNjaGUg3GJlcnNldHp1bmcgaXN0IGRpZSBNYWlsaW5nbGlzdGVcbiIKIjx0cmFuc2xhdGlvbi10ZWFtLWRlQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4genVzdORuZGlnLlxuIgoKIzogc3JjL2ljb252LmM6MTk2CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICIiCiJMaWNlbnNlIEdQTHYzKzogR05VIEdQTCB2ZXJzaW9uIDMgb3IgbGF0ZXIgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPlxuIgoiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3RyaWJ1dGUgaXQuXG4iCiJUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LlxuIgptc2dzdHIgIiIKIkxpemVuejogR1BMdjIrLCBkLmguIEdOVSBHUEwgYWIgVmVyc2lvbiAyIDxodHRwOi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD5cbiIKIkRpZXNlcyBQcm9ncmFtbSBpc3QgZnJlaWUgU29mdHdhcmU6IFNpZSBk/HJmZW4gZXMg5G5kZXJuIHVuZCB3ZWl0ZXJnZWJlbi5cbiIKIkVzIGdpYnQgS0VJTkVSTEVJIEdBUkFOVElFLCBzbyB3ZWl0IGRhcyBHZXNldHogZXMgZXJsYXVidC5cbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhbiBhdXRob3IncyBuYW1lLgojOiBzcmMvaWNvbnYuYzoyMDIKIywgYy1mb3JtYXQKbXNnaWQgIldyaXR0ZW4gYnkgJXMuXG4iCm1zZ3N0ciAiR2VzY2hyaWViZW4gdm9uICVzLlxuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6Mjk2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSB2YXJpYWJsZSB3aWR0aCBpcyBub3QgYWxsb3dlZCBoZXJlLiIKbXNnc3RyICIiCiK7JXOrLUFyZ3VtZW50OiBFaW5lIEZvcm1hdGllcnVuZ3NhbndlaXN1bmcgbWl0IHZhcmlhYmxlciBCcmVpdGUgaXN0IGhpZXIgIgoibmljaHQgZXJsYXVidC4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBjb21tYW5kLWxpbmUgb3B0aW9uLgojOiBzcmMvaWNvbnYuYzozMTEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiVzIGFyZ3VtZW50OiBBIGZvcm1hdCBkaXJlY3RpdmUgd2l0aCBhIHZhcmlhYmxlIHByZWNpc2lvbiBpcyBub3QgYWxsb3dlZCAiCiJoZXJlLiIKbXNnc3RyICIiCiK7JXOrLUFyZ3VtZW50OiBFaW5lIEZvcm1hdGllcnVuZ3NhbndlaXN1bmcgbWl0IHZhcmlhYmxlciBHZW5hdWlna2VpdCBpc3QgIgoiaGllciBuaWNodCBlcmxhdWJ0LiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiM6IHNyYy9pY29udi5jOjMyNwojLCBjLWZvcm1hdAptc2dpZCAiJXMgYXJndW1lbnQ6IEEgZm9ybWF0IGRpcmVjdGl2ZSB3aXRoIGEgc2l6ZSBpcyBub3QgYWxsb3dlZCBoZXJlLiIKbXNnc3RyICIiCiK7JXOrLUFyZ3VtZW50OiBFaW5lIEZvcm1hdGllcnVuZ3NhbndlaXN1bmcgbWl0IEdy9t9lbmFuZ2FiZSBpc3QgaGllciBuaWNodCAiCiJlcmxhdWJ0LiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiM6IHNyYy9pY29udi5jOjM2OQojLCBjLWZvcm1hdAptc2dpZCAiJXMgYXJndW1lbnQ6IFRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgbWlkZGxlIG9mIGEgZGlyZWN0aXZlLiIKbXNnc3RyICK7JXOrLUFyZ3VtZW50OiBEaWUgWmVpY2hlbmtldHRlIGVuZGV0IG1pdHRlbiBpbiBlaW5lciBBbndlaXN1bmcuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIy4gVGhlICVjIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYW4gdW5rbm93biBmb3JtYXQgZGlyZWN0aXZlLgojOiBzcmMvaWNvbnYuYzozNzYKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGFyZ3VtZW50OiBUaGUgY2hhcmFjdGVyICclYycgaXMgbm90IGEgdmFsaWQgY29udmVyc2lvbiBzcGVjaWZpZXIuIgptc2dzdHIgIrslc6stQXJndW1lbnQ6IERhcyBaZWljaGVuILslY6sgYmV6ZWljaG5ldCBrZWluZSBn/Gx0aWdlIFVtd2FuZGx1bmcuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6MzgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogVGhlIGNoYXJhY3RlciB0aGF0IHRlcm1pbmF0ZXMgdGhlIGZvcm1hdCBkaXJlY3RpdmUgaXMgbm90IGEgIgoidmFsaWQgY29udmVyc2lvbiBzcGVjaWZpZXIuIgptc2dzdHIgIiIKIrslc6stQXJndW1lbnQ6IERhcyBaZWljaGVuIGFtIEVuZGUgZGVyIEZvcm1hdGllcnVuZ3NhbndlaXN1bmcgYmV6ZWljaG5ldCAiCiJrZWluZSBn/Gx0aWdlIFVtd2FuZGx1bmcuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIy4gVGhlICV1IHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIG51bWJlciBvZiBhcmd1bWVudHMgY29uc3VtZWQgYnkgdGhlIGZvcm1hdCBzdHJpbmcuCiM6IHNyYy9pY29udi5jOjM5OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXMgYXJndW1lbnQ6IFRoZSBmb3JtYXQgc3RyaW5nIGNvbnN1bWVzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQ6ICV1IGFyZ3VtZW50LiIKbXNnaWRfcGx1cmFsICIiCiIlcyBhcmd1bWVudDogVGhlIGZvcm1hdCBzdHJpbmcgY29uc3VtZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudDogJXUgYXJndW1lbnRzLiIKbXNnc3RyWzBdICIiCiK7JXOrLUFyZ3VtZW50OiBEaWUgRm9ybWF0emVpY2hlbmtldHRlIHZlcmJyYXVjaHQgbWVociBhbHMgZWluIEFyZ3VtZW50OiAldSAiCiJBcmd1bWVudC4iCm1zZ3N0clsxXSAiIgoiuyVzqy1Bcmd1bWVudDogRGllIEZvcm1hdHplaWNoZW5rZXR0ZSB2ZXJicmF1Y2h0IG1laHIgYWxzIGVpbiBBcmd1bWVudDogJXUgIgoiQXJndW1lbnRlLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIHBpZWNlIG9mIHRleHQsIHNwZWNpZmllZCB0aHJvdWdoIC0tYnl0ZS1zdWJzdC4KIzogc3JjL2ljb252LmM6NDU2CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCBieXRlIHN1YnN0aXR1dGlvbiB0byBVbmljb2RlOiAlcyIKbXNnc3RyICJLYW5uIEJ5dGUtRXJzYXR6IG5pY2h0IG5hY2ggVW5pY29kZSB1bXdhbmRlbG46ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgcGllY2Ugb2YgdGV4dCwgc3BlY2lmaWVkIHRocm91Z2ggLS11bmljb2RlLXN1YnN0LgojOiBzcmMvaWNvbnYuYzo0OTYKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBjb252ZXJ0IHVuaWNvZGUgc3Vic3RpdHV0aW9uIHRvIHRhcmdldCBlbmNvZGluZzogJXMiCm1zZ3N0ciAiS2FubiBVbmljb2RlLVplaWNoZW4tRXJzYXR6IG5pY2h0IGluIGRpZSBaaWVsa29kaWVydW5nIHVtd2FuZGVsbjogJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLWJ5dGUtc3Vic3QuCiM6IHNyYy9pY29udi5jOjUzNwojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gd2lkZSBzdHJpbmc6ICVzIgptc2dzdHIgIkthbm4gQnl0ZS1FcnNhdHogbmljaHQgaW4gZWluZSC7d2lkZastWmVpY2hlbmtldHRlIHVtd2FuZGVsbjogJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLXdpZGVjaGFyLXN1YnN0LgojOiBzcmMvaWNvbnYuYzo1NzgKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBjb252ZXJ0IHdpZGVjaGFyIHN1YnN0aXR1dGlvbiB0byB0YXJnZXQgZW5jb2Rpbmc6ICVzIgptc2dzdHIgIiIKIkthbm4gZGVuILt3aWRlqy1aZWljaGVuLUVyc2F0eiBuaWNodCBpbiBkaWUgWmllbGtvZGllcnVuZyB1bXdhbmRlbG46ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgcGllY2Ugb2YgdGV4dCwgc3BlY2lmaWVkIHRocm91Z2ggLS1ieXRlLXN1YnN0LgojOiBzcmMvaWNvbnYuYzo2MTkKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBjb252ZXJ0IGJ5dGUgc3Vic3RpdHV0aW9uIHRvIHRhcmdldCBlbmNvZGluZzogJXMiCm1zZ3N0ciAiS2FubiBkZW4gQnl0ZS1FcnNhdHogbmljaHQgaW4gZGllIFppZWxrb2RpZXJ1bmcgdW13YW5kZWxuOiAlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXJzIGV4cGFuZCB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLCBhIGxpbmUgbnVtYmVyLCBhbmQgYSBjb2x1bW4gbnVtYmVyLgojOiBzcmMvaWNvbnYuYzo2MzgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1OiBjYW5ub3QgY29udmVydCIKbXNnc3RyICIlczoldToldTogS2FubiBuaWNodCB1bXdhbmRlbG4uIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUsIGEgbGluZSBudW1iZXIsIGFuZCBhIGNvbHVtbiBudW1iZXIuCiMuIEEgInNoaWZ0IHNlcXVlbmNlIiBpcyBhIHNlcXVlbmNlIG9mIGJ5dGVzIHRoYXQgY2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIGNvbnZlcnRlcjsKIy4gdGhpcyBjb25jZXB0IGV4aXN0cyBvbmx5IGZvciAic3RhdGVmdWwiIGVuY29kaW5ncyBsaWtlIElTTy0yMDIyLUpQLgojOiBzcmMvaWNvbnYuYzo2NTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1OiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZSIKbXNnc3RyICIlczoldToldTogdW52b2xsc3TkbmRpZ2VzIFplaWNoZW4gb2RlciB1bnZvbGxzdORuZGlnZSBVbXNjaGFsdGZvbGdlIgoKIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCBwYXJ0IG9mIGFuIGVycm9yIG1lc3NhZ2UuCiMuIEl0IGlzIGZvbGxvd2VkIGJ5IGEgY29sb24gYW5kIGEgZGV0YWlsIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUsIGEgbGluZSBudW1iZXIsIGFuZCBhIGNvbHVtbiBudW1iZXIuCiM6IHNyYy9pY29udi5jOjY2NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6JXU6JXUiCm1zZ3N0ciAiJXM6JXU6JXUiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGlucHV0IGZpbGUgbmFtZS4KIzogc3JjL2ljb252LmM6ODI2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogSS9PIGVycm9yIgptc2dzdHIgIiVzOiBFaW4tL0F1c2dhYmVmZWhsZXIiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGVuY29kaW5nIG5hbWUsIHNwZWNpZmllZCB0aHJvdWdoIC0tZnJvbS1jb2RlLgojOiBzcmMvaWNvbnYuYzoxMDE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb252ZXJzaW9uIGZyb20gJXMgdW5zdXBwb3J0ZWQiCm1zZ3N0ciAiVW13YW5kbHVuZyBhdXNnZWhlbmQgdm9uICVzIGlzdCBuaWNodCB1bnRlcnN0/HR6dC4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGVuY29kaW5nIG5hbWUsIHNwZWNpZmllZCB0aHJvdWdoIC0tdG8tY29kZS4KIzogc3JjL2ljb252LmM6MTAyMQojLCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiB0byAlcyB1bnN1cHBvcnRlZCIKbXNnc3RyICJVbXdhbmRsdW5nIG5hY2ggJXMgaXN0IG5pY2h0IHVudGVyc3T8dHp0LiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXJzIGV4cGFuZCB0byB0aGUgZW5jb2RpbmcgbmFtZXMsIHNwZWNpZmllZCB0aHJvdWdoIC0tZnJvbS1jb2RlIGFuZCAtLXRvLWNvZGUsIHJlc3BlY3RpdmVseS4KIzogc3JjL2ljb252LmM6MTAyNwojLCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgIlVtd2FuZGx1bmcgdm9uICVzIG5hY2ggJXMgaXN0IG5pY2h0IHVudGVyc3T8dHp0LiIKCiMuIFRSQU5TTEFUT1JTOiBBZGRpdGlvbmFsIGFkdmljZSBhZnRlciBhbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgcHJvZ3JhbSBuYW1lLgojOiBzcmMvaWNvbnYuYzoxMDMyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0cnkgJyVzIC1sJyB0byBnZXQgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGVuY29kaW5ncyIKbXNnc3RyICIiCiJWZXJzdWNoZW4gU2llILslcyAtbKssIHVtIGVpbmUgTGlzdGUgYWxsZXIgdW50ZXJzdPx0enRlbiBLb2RpZXJ1bmdlbiB6dSAiCiJlcmhhbHRlbi4iCgojLiBUUkFOU0xBVE9SUzogQSBmaWxlbmFtZSBzdWJzdGl0dXRlIGRlbm90aW5nIHN0YW5kYXJkIGlucHV0LgojOiBzcmMvaWNvbnYuYzoxMDg5Cm1zZ2lkICIoc3RkaW4pIgptc2dzdHIgIihTdGFuZGFyZC1FaW5nYWJlKSIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgcGFydCBvZiBhbiBlcnJvciBtZXNzYWdlLgojLiBJdCBpcyBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCBhIGRldGFpbCBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLgojOiBzcmMvaWNvbnYuYzoxMTAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyIKbXNnc3RyICIlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojOiBzcmMvaWNvbnYuYzoxMTE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJJL08gZXJyb3IiCm1zZ3N0ciAiRWluLS9BdXNnYWJlZmVobGVyIgoKI34gbXNnaWQgIiIKI34gIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzICIKI34gIk5PXG4iCiN+ICJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgIgojfiAiUFVSUE9TRS5cbiIKI34gbXNnc3RyICIiCiN+ICJEaWVzIGlzdCBmcmVpZSBTb2Z0d2FyZTsgZGllIEtvcGllcmJlZGluZ3VuZ2VuIHN0ZWhlbiBpbiBkZW4gUXVlbGxlbi4gRXNcbiIKI34gImdpYnQga2VpbmUgR2FyYW50aWU7IGF1Y2ggbmljaHQgZvxyIFZFUktBVUZCQVJLRUlUIG9kZXIgRtxSIFNQRVpJRUxMRSAiCiN+ICJaV0VDS0UuXG4iCgojfiBtc2dpZCAiIgojfiAiVXNhZ2U6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKI34gbXNnc3RyICIiCiN+ICJBdWZydWY6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdXG4iCiN+ICIgICAgICAgICAgICAgIFstZiBBVVNHQU5HUy1LT0RJRVJVTkddIFstdCBaSUVMLUtPRElFUlVOR10gW0RBVEVJIC4uLl0iCgojfiBtc2dpZCAiaWNvbnY6ICVzOiAiCiN+IG1zZ3N0ciAiaWNvbnY6ICVzOiAiCg==