IyB0cmFuc2xhdGlvbiBvZiBsaWJpY29udi0xLjEyLnBvIHRvIERhbmlzaAojIFN3ZWRpc2ggbWVzc2FnZXMgZm9yIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIwojIENocmlzdGlhbiBSb3NlIDxtZW50aG9zQG1lbnRob3MuY29tPiwgMjAwMi4KIyBEYW5pZWwgTnlsYW5kZXIgPHBvQGRhbmllbG55bGFuZGVyLnNlPiwgMjAwNiwgMjAwNywgMjAwOC4KIyBLZWxkIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPiwgMjAwOS4KbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGxpYmljb252LTEuMTJcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA5LTA2LTMwIDIyOjUzKzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDktMTEtMjYgMTE6MzErMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLZWxkIFNpbW9uc2VuIDxrZWxkQGtlbGRpeC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBEYW5pc2ggPGRhbnNrQGRhbnNrLWdydXBwZW4uZGs+XG4iCiJMYW5ndWFnZTogZGFcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiAgbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoiWC1HZW5lcmF0b3I6IEtCYWJlbCAxLjExLjRcbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgbGluZSBvZiB0aGUgc2hvcnQgdXNhZ2UgbWVzc2FnZS4KIzogc3JjL2ljb252LmM6MTAzCm1zZ2lkICJVc2FnZTogaWNvbnYgWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKbXNnc3RyICJCcnVnOiBpY29udiBbLWNdIFstc10gWy1mIGZyYWtvZGVdIFstdCB0aWxrb2RlXSBbZmlsIC4uLl0iCgojLiBUUkFOU0xBVE9SUzogVGhlIHNlY29uZCBsaW5lIG9mIHRoZSBzaG9ydCB1c2FnZSBtZXNzYWdlLgojLiBBbGlnbiBpdCBjb3JyZWN0bHkgYWdhaW5zdCB0aGUgZmlyc3QgbGluZS4KIzogc3JjL2ljb252LmM6MTA3Cm1zZ2lkICJvcjogICAgaWNvbnYgLWwiCm1zZ3N0ciAiZWxsZXI6IGljb252IC1sIgoKIzogc3JjL2ljb252LmM6MTA5CiMsIGMtZm9ybWF0Cm1zZ2lkICJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCm1zZ3N0ciAiUHL4diBcIiVzIC0taGVscFwiIGZvciBtZXJlIGluZm9ybWF0aW9uLlxuIgoKIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCBsaW5lIG9mIHRoZSBsb25nIHVzYWdlIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBwcm9ncmFtIG5hbWUuCiM6IHNyYy9pY29udi5jOjExNAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiVXNhZ2U6ICVzIFtPUFRJT04uLi5dIFstZiBFTkNPRElOR10gWy10IEVOQ09ESU5HXSBbSU5QVVRGSUxFLi4uXVxuIgptc2dzdHIgIkJydWc6ICVzIFtGTEFHLi4uXSBbLWYgS09ETklOR10gWy10IEtPRE5JTkddIFtJTlBVVEZJTC4uLl1cbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgc2Vjb25kIGxpbmUgb2YgdGhlIGxvbmcgdXNhZ2UgbWVzc2FnZS4KIy4gQWxpZ24gaXQgY29ycmVjdGx5IGFnYWluc3QgdGhlIGZpcnN0IGxpbmUuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBwcm9ncmFtIG5hbWUuCiM6IHNyYy9pY29udi5jOjEyMQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAib3I6ICAgICVzIC1sXG4iCm1zZ3N0ciAiZWxsZXI6ICVzIC1sXG4iCgojLiBUUkFOU0xBVE9SUzogRGVzY3JpcHRpb24gb2YgdGhlIGljb252IHByb2dyYW0uCiM6IHNyYy9pY29udi5jOjEyNwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiQ29udmVydHMgdGV4dCBmcm9tIG9uZSBlbmNvZGluZyB0byBhbm90aGVyIGVuY29kaW5nLlxuIgptc2dzdHIgIktvbnZlcnRlcmVyIHRla3N0IGZyYSBlbiBrb2RuaW5nIHRpbCBlbiBhbmRlbiBrb2RuaW5nLlxuIgoKIzogc3JjL2ljb252LmM6MTMxCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJPcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGZvcm1hdDpcbiIKbXNnc3RyICJGbGFnIHNvbSBzdHlyZXIgZm9ybWF0ZXQgcOUgaW5kZGF0YSBvZyB1ZGRhdGE6XG4iCgojOiBzcmMvaWNvbnYuYzoxMzQKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiIKIiAgLWYgRU5DT0RJTkcsIC0tZnJvbS1jb2RlPUVOQ09ESU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW5jb2Rpbmcgb2YgdGhlIGlucHV0XG4iCm1zZ3N0ciAiIgoiICAtZiBLT0ROSU5HLCAgLS1mcm9tLWNvZGU9S09ETklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga29kbmluZ2VuIHDlIGluZGRhdGFcbiIKCiM6IHNyYy9pY29udi5jOjEzOAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtdCBFTkNPRElORywgLS10by1jb2RlPUVOQ09ESU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW5jb2Rpbmcgb2YgdGhlIG91dHB1dFxuIgptc2dzdHIgIiIKIiAgLXQgS09ETklORywgIC0tdG8tY29kZT1LT0ROSU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrb2RuaW5nZW4gcOUgdWRkYXRhXG4iCgojOiBzcmMvaWNvbnYuYzoxNDMKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIk9wdGlvbnMgY29udHJvbGxpbmcgY29udmVyc2lvbiBwcm9ibGVtczpcbiIKbXNnc3RyICJGbGFnIHNvbSBrb250cm9sbGVyZXIga29udmVydGVyaW5nc3Byb2JsZW1lcjpcbiIKCiM6IHNyYy9pY29udi5jOjE0NgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtYyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY2FyZCB1bmNvbnZlcnRpYmxlIGNoYXJhY3RlcnNcbiIKbXNnc3RyICIgIC1jICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JrYXN0IHRlZ24gc29tIGlra2Uga2FuIGtvbnZlcnRlcmVzXG4iCgojOiBzcmMvaWNvbnYuYzoxNDkKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiIKIiAgLS11bmljb2RlLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIFVuaWNvZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKIiAgLS11bmljb2RlLXN1YnN0PUZPUk1BVFNUUkVOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJzdGF0bmluZyBhZiBVQ1MtdGVnbiBzb20gaWtrZSBrYW4ga29udmVydGVyZXNcbiIKCiM6IHNyYy9pY29udi5jOjE1MwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtLWJ5dGUtc3Vic3Q9Rk9STUFUU1RSSU5HICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIGJ5dGVzXG4iCm1zZ3N0ciAiICAtLWJ5dHRlLXN1YnN0PUZPUk1BVFNUUkVORyAgIGVyc3RhdG5pbmcgZm9yIGlra2Uga29udmVydGVyYmFyZSBieXRlXG4iCgojIEJyZWRhIHRlZ24/IEZpbm5zIGRldCBiZWRyZSBvcmQ/CiM6IHNyYy9pY29udi5jOjE1NgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtLXdpZGVjaGFyLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIHdpZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKIiAgLS13aWRlY2hhci1zdWJzdD1GT1JNQVRTVFJFTkdcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyc3RhdG5pbmcgZm9yIGlra2Uga29udmVydGVyYmFyZSBicmVkZSB0ZWduXG4iCgojOiBzcmMvaWNvbnYuYzoxNjEKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIk9wdGlvbnMgY29udHJvbGxpbmcgZXJyb3Igb3V0cHV0OlxuIgptc2dzdHIgIkZsYWcgc29tIGtvbnRyb2xsZXJlciBmZWpsdWRza3JpZnQ6XG4iCgojOiBzcmMvaWNvbnYuYzoxNjQKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLXMsIC0tc2lsZW50ICAgICAgICAgICAgICAgIHN1cHByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGNvbnZlcnNpb24gcHJvYmxlbXNcbiIKbXNnc3RyICIgIC1zLCAtLXNpbGVudCAgICAgICAgICAgICAgICB1bmRlcnRyeWsgZmVqbG1lZGRlbGVsc2VyIG9tIGtvbnZlcnRlcmluZ3Nwcm9ibGVtZXJcbiIKCiM6IHNyYy9pY29udi5jOjE2OAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiSW5mb3JtYXRpdmUgb3V0cHV0OlxuIgptc2dzdHIgIkluZm9ybWF0aXZ0IHVkZGF0YTpcbiIKCiM6IHNyYy9pY29udi5jOjE3MQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtbCwgLS1saXN0ICAgICAgICAgICAgICAgICAgbGlzdCB0aGUgc3VwcG9ydGVkIGVuY29kaW5nc1xuIgptc2dzdHIgIiAgLWwsIC0tbGlzdCAgICAgICAgICAgICAgICAgIGxpc3QgZGUga29kbmluZ2VyIHNvbSB1bmRlcnN0+HR0ZXNcbiIKCiM6IHNyYy9pY29udi5jOjE3NAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKbXNnc3RyICIgIC0taGVscCAgICAgICAgICAgICAgICAgICAgICB2aXMgZGVubmUgaGrmbHBldGVrc3Qgb2cgYWZzbHV0XG4iCgojOiBzcmMvaWNvbnYuYzoxNzcKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgdWRza3JpdiB2ZXJzaW9uc2luZm9ybWF0aW9uIG9nIGFmc2x1dFxuIgoKIy4gVFJBTlNMQVRPUlM6IFRoZSBwbGFjZWhvbGRlciBpbmRpY2F0ZXMgdGhlIGJ1Zy1yZXBvcnRpbmcgYWRkcmVzcwojLiBmb3IgdGhpcyBwYWNrYWdlLiAgUGxlYXNlIGFkZCBfYW5vdGhlciBsaW5lXyBzYXlpbmcKIy4gIlJlcG9ydCB0cmFuc2xhdGlvbiBidWdzIHRvIDwuLi4+XG4iIHdpdGggdGhlIGFkZHJlc3MgZm9yIHRyYW5zbGF0aW9uCiMuIGJ1Z3MgKHR5cGljYWxseSB5b3VyIHRyYW5zbGF0aW9uIHRlYW0ncyB3ZWIgb3IgZW1haWwgYWRkcmVzcykuCiM6IHNyYy9pY29udi5jOjE4NAptc2dpZCAiUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz4uXG4iCm1zZ3N0ciAiIgoiTWVkZGVsIGZlamwgdGlsIDxidWctZ251LWxpYmljb252QGdudS5vcmc+LlxuIgoiU2VuZCBzeW5zcHVua3RlciBw5SBvdmVyc+Z0dGVsc2VuIHRpbCA8ZGFuc2tAZGFuc2stZ3J1cHBlbi5kaz4uXG4iCgojOiBzcmMvaWNvbnYuYzoxOTUKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIiIKIkxpY2Vuc2UgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8aHR0cDovL2dudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWw+XG4iCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJlZGlzdHJpYnV0ZSBpdC5cbiIKIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoiTGljZW5zIEdQTHYyKzogR05VIEdQTCB2ZXJzaW9uIDIgZWxsZXIgc2VuZXJlIDxodHRwOi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD5cbiIKIkRldHRlIGVyIGZyaXQgcHJvZ3JhbW1lbDogZHUga2FuIOZuZHJlIG9nIGRpc3RyaWJ1ZXJlIGRlbi5cbiIKIkRlciBnaXZlcyBJTkdFTiBHQVJBTlRJLCBz5SB2aWR0IGxvdiB0aWxsYWRlci5cbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhbiBhdXRob3IncyBuYW1lLgojOiBzcmMvaWNvbnYuYzoyMDEKIywgYy1mb3JtYXQKbXNnaWQgIldyaXR0ZW4gYnkgJXMuXG4iCm1zZ3N0ciAiU2tyZXZldCBhZiAlcy5cbiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiM6IHNyYy9pY29udi5jOjI5NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXMgYXJndW1lbnQ6IEEgZm9ybWF0IGRpcmVjdGl2ZSB3aXRoIGEgdmFyaWFibGUgd2lkdGggaXMgbm90IGFsbG93ZWQgaGVyZS4iCm1zZ3N0ciAiIgoiQXJndW1lbnQgJXM6IEV0IGZvcm1hdGRpcmVrdGl2IG1lZCBlbiB2YXJpYWJlbCBicmVkZGUgdGlsbGFkZXMgaWtrZSBoZXIuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6MzEwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSB2YXJpYWJsZSBwcmVjaXNpb24gaXMgbm90IGFsbG93ZWQgIgoiaGVyZS4iCm1zZ3N0ciAiIgoiQXJndW1lbnQgJXM6IEV0IGZvcm1hdGRpcmVrdGl2IG1lZCBlbiB2YXJpYWJlbCBwcuZjaXNpb24gdGlsbGFkZXMgaWtrZSBoZXIuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6MzI2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSBzaXplIGlzIG5vdCBhbGxvd2VkIGhlcmUuIgptc2dzdHIgIkFyZ3VtZW50ICVzOiBFdCBmb3JtYXRkaXJla3RpdiBtZWQgZW4gc3T4cnJlbHNlIHRpbGxhZGVzIGlra2UgaGVyLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiM6IHNyYy9pY29udi5jOjM2OAojLCBjLWZvcm1hdAptc2dpZCAiJXMgYXJndW1lbnQ6IFRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgbWlkZGxlIG9mIGEgZGlyZWN0aXZlLiIKbXNnc3RyICJBcmd1bWVudCAlczogU3RyZW5nZW4gc3RvcHBlciBtaWR0IGkgZXQgZGlyZWt0aXYuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIy4gVGhlICVjIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYW4gdW5rbm93biBmb3JtYXQgZGlyZWN0aXZlLgojOiBzcmMvaWNvbnYuYzozNzUKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGFyZ3VtZW50OiBUaGUgY2hhcmFjdGVyICclYycgaXMgbm90IGEgdmFsaWQgY29udmVyc2lvbiBzcGVjaWZpZXIuIgptc2dzdHIgIiIKIkFyZ3VtZW50ICVzOiBUZWduZXQgXCIlY1wiIGVyIGlra2UgZW4gZ3lsZGlnIGtvbnZlcnRlcmluZ3NzcGVjaWZpY2VyaW5nLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiM6IHNyYy9pY29udi5jOjM4MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXMgYXJndW1lbnQ6IFRoZSBjaGFyYWN0ZXIgdGhhdCB0ZXJtaW5hdGVzIHRoZSBmb3JtYXQgZGlyZWN0aXZlIGlzIG5vdCBhICIKInZhbGlkIGNvbnZlcnNpb24gc3BlY2lmaWVyLiIKbXNnc3RyICIiCiJBcmd1bWVudCAlczogVGVnbmV0IHNvbSBhZnNsdXR0ZXIgZm9ybWF0ZGlyZWt0aXZldCBlciBpa2tlIGVuIGd5bGRpZyAiCiJrb252ZXJ0ZXJpbmdzc3BlY2lmaWNlcmluZy4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBjb21tYW5kLWxpbmUgb3B0aW9uLgojLiBUaGUgJXUgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBjb25zdW1lZCBieSB0aGUgZm9ybWF0IHN0cmluZy4KIzogc3JjL2ljb252LmM6Mzk3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogVGhlIGZvcm1hdCBzdHJpbmcgY29uc3VtZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudDogJXUgYXJndW1lbnQuIgptc2dpZF9wbHVyYWwgIiIKIiVzIGFyZ3VtZW50OiBUaGUgZm9ybWF0IHN0cmluZyBjb25zdW1lcyBtb3JlIHRoYW4gb25lIGFyZ3VtZW50OiAldSBhcmd1bWVudHMuIgptc2dzdHJbMF0gIiIKIkFyZ3VtZW50ICVzOiBGb3JtYXRzdHJlbmdlbiBrb25zdW1lcmVyIGZsZXJlIGVuZCBldCBhcmd1bWVudDogJXUgYXJndW1lbnQuIgptc2dzdHJbMV0gIiIKIkFyZ3VtZW50ICVzOiBGb3JtYXRzdHJlbmdlbiBrb25zdW1lcmVyIGZsZXJlIGVuZCBldCBhcmd1bWVudDogJXUgYXJndW1lbnRlci4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLWJ5dGUtc3Vic3QuCiM6IHNyYy9pY29udi5jOjQ1NQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gVW5pY29kZTogJXMiCm1zZ3N0ciAia2FuIGlra2Uga29udmVydGVyZSBieXRlLWVyc3RhdG5pbmcgdGlsIFVDUzogJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLXVuaWNvZGUtc3Vic3QuCiM6IHNyYy9pY29udi5jOjQ5NQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgdW5pY29kZSBzdWJzdGl0dXRpb24gdG8gdGFyZ2V0IGVuY29kaW5nOiAlcyIKbXNnc3RyICJrYW4gaWtrZSBrb252ZXJ0ZXJlIFVDUy1lcnN0YXRuaW5nIHRpbCBt5Wxrb2RuaW5nOiAlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIHBpZWNlIG9mIHRleHQsIHNwZWNpZmllZCB0aHJvdWdoIC0tYnl0ZS1zdWJzdC4KIzogc3JjL2ljb252LmM6NTM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCBieXRlIHN1YnN0aXR1dGlvbiB0byB3aWRlIHN0cmluZzogJXMiCm1zZ3N0ciAia2FuIGlra2Uga29udmVydGVyZSBieXRlLWVyc3RhdG5pbmcgdGlsIGJyZWQgc3RyZW5nOiAlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIHBpZWNlIG9mIHRleHQsIHNwZWNpZmllZCB0aHJvdWdoIC0td2lkZWNoYXItc3Vic3QuCiM6IHNyYy9pY29udi5jOjU3NwojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgd2lkZWNoYXIgc3Vic3RpdHV0aW9uIHRvIHRhcmdldCBlbmNvZGluZzogJXMiCm1zZ3N0ciAia2FuIGlra2Uga29udmVydGVyZSBicmVkdGVnbnMtZXJzdGF0bmluZyB0aWwgbeVsa29kbmluZzogJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLWJ5dGUtc3Vic3QuCiM6IHNyYy9pY29udi5jOjYxOAojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gdGFyZ2V0IGVuY29kaW5nOiAlcyIKbXNnc3RyICJrYW4gaWtrZSBrb252ZXJ0ZXJlIGJ5dHRlLWVyc3RhdG5pbmcgdGlsIG3lbGtvZG5pbmc6ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUsIGEgbGluZSBudW1iZXIsIGFuZCBhIGNvbHVtbiBudW1iZXIuCiM6IHNyYy9pY29udi5jOjYzNwojLCBjLWZvcm1hdAptc2dpZCAiJXM6JXU6JXU6IGNhbm5vdCBjb252ZXJ0Igptc2dzdHIgIiVzOiV1OiV1OiBrYW4gaWtrZSBrb252ZXJ0ZXJlIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUsIGEgbGluZSBudW1iZXIsIGFuZCBhIGNvbHVtbiBudW1iZXIuCiMuIEEgInNoaWZ0IHNlcXVlbmNlIiBpcyBhIHNlcXVlbmNlIG9mIGJ5dGVzIHRoYXQgY2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIGNvbnZlcnRlcjsKIy4gdGhpcyBjb25jZXB0IGV4aXN0cyBvbmx5IGZvciAic3RhdGVmdWwiIGVuY29kaW5ncyBsaWtlIElTTy0yMDIyLUpQLgojOiBzcmMvaWNvbnYuYzo2NTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1OiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZSIKbXNnc3RyICIlczoldToldTogdWZ1bGRzdOZuZGlndCB0ZWduIGVsbGVyIHNraWZ0ZXNla3ZlbnMiCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IHBhcnQgb2YgYW4gZXJyb3IgbWVzc2FnZS4KIy4gSXQgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiBhbmQgYSBkZXRhaWwgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVycyBleHBhbmQgdG8gdGhlIGlucHV0IGZpbGUgbmFtZSwgYSBsaW5lIG51bWJlciwgYW5kIGEgY29sdW1uIG51bWJlci4KIzogc3JjL2ljb252LmM6NjY0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczoldToldSIKbXNnc3RyICIlczoldToldSIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLgojOiBzcmMvaWNvbnYuYzo4MTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBJL08gZXJyb3IiCm1zZ3N0ciAiJXM6IEluZC91ZC1mZWpsIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBlbmNvZGluZyBuYW1lLCBzcGVjaWZpZWQgdGhyb3VnaCAtLWZyb20tY29kZS4KIzogc3JjL2ljb252LmM6MTAwNwojLCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgImtvbnZlcnRlcmluZyBmcmEgJXMgdW5kZXJzdPh0dGVzIGlra2UiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGVuY29kaW5nIG5hbWUsIHNwZWNpZmllZCB0aHJvdWdoIC0tdG8tY29kZS4KIzogc3JjL2ljb252LmM6MTAxMwojLCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiB0byAlcyB1bnN1cHBvcnRlZCIKbXNnc3RyICJrb252ZXJ0ZXJpbmcgdGlsICVzIHVuZGVyc3T4dHRlcyBpa2tlIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBlbmNvZGluZyBuYW1lcywgc3BlY2lmaWVkIHRocm91Z2ggLS1mcm9tLWNvZGUgYW5kIC0tdG8tY29kZSwgcmVzcGVjdGl2ZWx5LgojOiBzcmMvaWNvbnYuYzoxMDE5CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb252ZXJzaW9uIGZyb20gJXMgdG8gJXMgdW5zdXBwb3J0ZWQiCm1zZ3N0ciAia29udmVydGVyaW5nIGZyYSAlcyB0aWwgJXMgdW5kZXJzdPh0dGVzIGlra2UiCgojLiBUUkFOU0xBVE9SUzogQWRkaXRpb25hbCBhZHZpY2UgYWZ0ZXIgYW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIHByb2dyYW0gbmFtZS4KIzogc3JjL2ljb252LmM6MTAyNAojLCBjLWZvcm1hdAptc2dpZCAidHJ5ICclcyAtbCcgdG8gZ2V0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBlbmNvZGluZ3MiCm1zZ3N0ciAicHL4diBcIiVzIC1sXCIgZm9yIGF0IGblIGxpc3RlbiBw5SBrb2RuaW5nZXIgc29tIHVuZGVyc3T4dHRlcyIKCiMuIFRSQU5TTEFUT1JTOiBBIGZpbGVuYW1lIHN1YnN0aXR1dGUgZGVub3Rpbmcgc3RhbmRhcmQgaW5wdXQuCiM6IHNyYy9pY29udi5jOjEwODEKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKHN0YW5kYXJkIGluZCkiCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IHBhcnQgb2YgYW4gZXJyb3IgbWVzc2FnZS4KIy4gSXQgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiBhbmQgYSBkZXRhaWwgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGlucHV0IGZpbGUgbmFtZS4KIzogc3JjL2ljb252LmM6MTA5MwojLCBjLWZvcm1hdAptc2dpZCAiJXMiCm1zZ3N0ciAiJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIzogc3JjL2ljb252LmM6MTEwNwojLCBjLWZvcm1hdAptc2dpZCAiSS9PIGVycm9yIgptc2dzdHIgIkluZC91ZC1mZWpsIgo=