IyBzZWQgZ2VybWFuIHRyYW5zbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIFdhbHRlciBLb2NoIDxrb2NoQHUzMi5kZT4sIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogc2VkIDQuMS40XG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWdudS11dGlsc0BnbnUub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOS0wNi0yNyAxNTowOCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDA1LTA3LTA0IDE5OjQwOjQxKzAyMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogV2FsdGVyIEtvY2ggPGtvY2hAdTMyLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogc2VkL2NvbXBpbGUuYzoxNjEKbXNnaWQgIm11bHRpcGxlIGAhJ3MiCm1zZ3N0ciAiTWVocmZhY2hlIGAhJyIKCiM6IHNlZC9jb21waWxlLmM6MTYyCm1zZ2lkICJ1bmV4cGVjdGVkIGAsJyIKbXNnc3RyICJVbmVyd2FydGV0ZXMgYCwnIgoKIzogc2VkL2NvbXBpbGUuYzoxNjMKbXNnaWQgImludmFsaWQgdXNhZ2Ugb2YgK04gb3Igfk4gYXMgZmlyc3QgYWRkcmVzcyIKbXNnc3RyICIrTiBvZGVyIH5OIGv2bm5lbiBuaWNodCBhbHMgZXJzdGUgQWRyZXNzZSBiZW51dHp0IHdlcmRlbiIKCiM6IHNlZC9jb21waWxlLmM6MTY0Cm1zZ2lkICJ1bm1hdGNoZWQgYHsnIgptc2dzdHIgIk5pY2h0IHBhYXJ3ZWlzZXMgYHsnIgoKIzogc2VkL2NvbXBpbGUuYzoxNjUKbXNnaWQgInVuZXhwZWN0ZWQgYH0nIgptc2dzdHIgIlVuZXJ3YXJ0ZXRlcyBgfSciCgojOiBzZWQvY29tcGlsZS5jOjE2Ngptc2dpZCAiZXh0cmEgY2hhcmFjdGVycyBhZnRlciBjb21tYW5kIgptc2dzdHIgIlp1c+R0emxpY2hlIFplaWNoZW4gbmFjaCBkZW0gQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNjcKbXNnaWQgImV4cGVjdGVkIFxcIGFmdGVyIGBhJywgYGMnIG9yIGBpJyIKbXNnc3RyICJOYWNoIGBhJywgYGMnIG9kZXIgYGknIHdpcmQgXFwgZXJ3YXJ0ZXQiCgojOiBzZWQvY29tcGlsZS5jOjE2OAptc2dpZCAiYH0nIGRvZXNuJ3Qgd2FudCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgImB9JyBlcndhcnRldCBrZWluZSBBZHJlc3NlbiIKCiM6IHNlZC9jb21waWxlLmM6MTY5Cm1zZ2lkICI6IGRvZXNuJ3Qgd2FudCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgImA6JyBlcndhcnRldCBrZWluZSBBZHJlc3NlbiIKCiM6IHNlZC9jb21waWxlLmM6MTcwCm1zZ2lkICJjb21tZW50cyBkb24ndCBhY2NlcHQgYW55IGFkZHJlc3NlcyIKbXNnc3RyICJLb21tZW50YXJlIGVybGF1YmVuIGtlaW5lIEFkcmVzc2VuIgoKIzogc2VkL2NvbXBpbGUuYzoxNzEKbXNnaWQgIm1pc3NpbmcgY29tbWFuZCIKbXNnc3RyICJGZWhsZW5kZXIgQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNzIKbXNnaWQgImNvbW1hbmQgb25seSB1c2VzIG9uZSBhZGRyZXNzIgptc2dzdHIgIkJlZmVobCB2ZXJ3ZW5kZXQgbnVyIGVpbmUgQWRyZXNzZSIKCiM6IHNlZC9jb21waWxlLmM6MTczCm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYWRkcmVzcyByZWdleCIKbXNnc3RyICJOaWNodCBiZWVuZGV0ZXIgcmVndWzkcmVyIEFkcmVzc2F1c2RydWNrIgoKIzogc2VkL2NvbXBpbGUuYzoxNzQKbXNnaWQgInVudGVybWluYXRlZCBgcycgY29tbWFuZCIKbXNnc3RyICJOaWNodCBiZWVuZGV0ZXIgYHMnLUJlZmVobCIKCiM6IHNlZC9jb21waWxlLmM6MTc1Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYHknIGNvbW1hbmQiCm1zZ3N0ciAiTmljaHQgYmVlbmRldGVyIGB5Jy1CZWZlaGwiCgojOiBzZWQvY29tcGlsZS5jOjE3Ngptc2dpZCAidW5rbm93biBvcHRpb24gdG8gYHMnIgptc2dzdHIgIlVuYmVrYW5udGUgT3B0aW9uIGb8ciBgcyciCgojOiBzZWQvY29tcGlsZS5jOjE3Nwptc2dpZCAibXVsdGlwbGUgYHAnIG9wdGlvbnMgdG8gYHMnIGNvbW1hbmQiCm1zZ3N0ciAiTWVocmVyZSAncCctT3B0aW9uZW4gYW0gYHMnLUJlZmVobCIKCiM6IHNlZC9jb21waWxlLmM6MTc4Cm1zZ2lkICJtdWx0aXBsZSBgZycgb3B0aW9ucyB0byBgcycgY29tbWFuZCIKbXNnc3RyICJNZWhyZXJlICdnJy1PcHRpb25lbiBhbSBgcyctQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNzkKbXNnaWQgIm11bHRpcGxlIG51bWJlciBvcHRpb25zIHRvIGBzJyBjb21tYW5kIgptc2dzdHIgIk1laHJlcmUgbnVtZXJpc2NoZSBPcHRpb25lbiBhbSBgcyctQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxODAKbXNnaWQgIm51bWJlciBvcHRpb24gdG8gYHMnIGNvbW1hbmQgbWF5IG5vdCBiZSB6ZXJvIgptc2dzdHIgIk51bWVyaXNjaGUgT3B0aW9uIGFtIGBzJy1CZWZlaGwga2FubiBuaWNodCBOdWxsIHNlaW4iCgojOiBzZWQvY29tcGlsZS5jOjE4MQptc2dpZCAic3RyaW5ncyBmb3IgYHknIGNvbW1hbmQgYXJlIGRpZmZlcmVudCBsZW5ndGhzIgptc2dzdHIgIlVudGVyc2NoaWVkbGljaGUgTORuZ2UgZGVyIFplaWNoZW5rZXR0ZW4gZGVzIGB5Jy1CZWZlaGxzIgoKIzogc2VkL2NvbXBpbGUuYzoxODIKbXNnaWQgImRlbGltaXRlciBjaGFyYWN0ZXIgaXMgbm90IGEgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIgptc2dzdHIgIlRyZW5uemVpY2hlbiBpc3Qga2VpbiBFaW56ZWxieXRlLVplaWNoZW4iCgojOiBzZWQvY29tcGlsZS5jOjE4Mwptc2dpZCAiZXhwZWN0ZWQgbmV3ZXIgdmVyc2lvbiBvZiBzZWQiCm1zZ3N0ciAiTmV1ZXJlIFZlcnNpb24gdm9uIHNlZCBlcndhcnRldCIKCiM6IHNlZC9jb21waWxlLmM6MTg0Cm1zZ2lkICJpbnZhbGlkIHVzYWdlIG9mIGxpbmUgYWRkcmVzcyAwIgptc2dzdHIgIlVuZ/xsdGlnZSBWZXJ3ZW5kdW5nIGRlciBaZWlsZW5hZHJlc3NlIDAiCgojOiBzZWQvY29tcGlsZS5jOjE4NQojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBjb21tYW5kOiBgJWMnIgptc2dzdHIgIlVuYmVrYW5udGVyIEJlZmVobDogYCVjJyIKCiM6IHNlZC9jb21waWxlLmM6MjA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSAlcyBsaW5lICVsdTogJXNcbiIKbXNnc3RyICIlczogRGF0ZWkgJXMgWmVpbGUgJWx1OiAlc1xuIgoKIzogc2VkL2NvbXBpbGUuYzoyMTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAtZSBleHByZXNzaW9uICMlbHUsIGNoYXIgJWx1OiAlc1xuIgptc2dzdHIgIiVzOiAtZSBBdXNkcnVjayAjJWx1LCBaZWljaGVuICVsdTogJXNcbiIKCiM6IHNlZC9jb21waWxlLmM6MTY2NQojLCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgZmluZCBsYWJlbCBmb3IganVtcCB0byBgJXMnIgptc2dzdHIgIkthbm4gZGllIFppZWxtYXJrZSBm/HIgZGVuIFNwcnVuZyBuYWNoIGAlcycgbmljaHQgZmluZGVuIgoKIzogc2VkL2V4ZWN1dGUuYzo3MDkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzOiAlc1xuIgptc2dzdHIgIiVzOiBrYW5uICVzIG5pY2h0IGxlc2VuOiAlc1xuIgoKIzogc2VkL2V4ZWN1dGUuYzo3NDAKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGVkaXQgJXM6IGlzIGEgdGVybWluYWwiCm1zZ3N0ciAiS2FubiAlcyBuaWNodCBiZWFyYmVpdGVuOiBEaWVzIGlzdCBlaW4gVGVybWluYWwiCgojOiBzZWQvZXhlY3V0ZS5jOjc0NQojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgZWRpdCAlczogbm90IGEgcmVndWxhciBmaWxlIgptc2dzdHIgIkthbm4gJXMgbmljaHQgYmVhcmJlaXRlbjogRGllcyBpc3Qga2VpbmUgbm9ybWFsZSBEYXRlaSIKCiM6IHNlZC9leGVjdXRlLmM6NzU3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogd2FybmluZzogZmFpbGVkIHRvIHNldCBkZWZhdWx0IGZpbGUgY3JlYXRpb24gY29udGV4dCB0byAlczogJXMiCm1zZ3N0ciAiIgoKIzogc2VkL2V4ZWN1dGUuYzo3NjQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB3YXJuaW5nOiBmYWlsZWQgdG8gZ2V0IHNlY3VyaXR5IGNvbnRleHQgb2YgJXM6ICVzIgptc2dzdHIgIiIKCiM6IHNlZC9leGVjdXRlLmM6NzgzIHNlZC91dGlscy5jOjIyNwojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZSAlczogJXMiCm1zZ3N0ciAiS2FubiB0ZW1wb3LkcmUgRGF0ZWkgJXMgbmljaHQg9mZmbmVuOiAlcyIKCiM6IHNlZC9leGVjdXRlLmM6MTMxNyBzZWQvZXhlY3V0ZS5jOjE0OTcKbXNnaWQgImVycm9yIGluIHN1YnByb2Nlc3MiCm1zZ3N0ciAiRmVobGVyIGltIFVudGVycHJvemVzcyIKCiM6IHNlZC9leGVjdXRlLmM6MTMxOQptc2dpZCAib3B0aW9uIGBlJyBub3Qgc3VwcG9ydGVkIgptc2dzdHIgIk9wdGlvbiBgZScgd2lyZCBuaWNodCB1bnRlcnN0/HR6dCIKCiM6IHNlZC9leGVjdXRlLmM6MTQ5OQptc2dpZCAiYGUnIGNvbW1hbmQgbm90IHN1cHBvcnRlZCIKbXNnc3RyICJgZSctS29tbWFuZG8gd2lyZCBuaWNodCB1bnRlcnN0/HR6dCIKCiM6IHNlZC9leGVjdXRlLmM6MTg0Mwptc2dpZCAibm8gaW5wdXQgZmlsZXMiCm1zZ3N0ciAiIgoKIzogc2VkL3JlZ2V4cC5jOjQxCm1zZ2lkICJubyBwcmV2aW91cyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiS2VpbiB2b3JoZXJpZ2VyIHJlZ3Vs5HJlciBBdXNkcnVjayIKCiM6IHNlZC9yZWdleHAuYzo0Mgptc2dpZCAiY2Fubm90IHNwZWNpZnkgbW9kaWZpZXJzIG9uIGVtcHR5IHJlZ2V4cCIKbXNnc3RyICJG/HIgbGVlcmUgcmVndWzkcmUgQXVzZHL8Y2tlIGv2bm5lbiBrZWluZSBgbW9kaWZpZXInIGFuZ2VnZWJlbiB3ZXJkZW4iCgojOiBzZWQvcmVnZXhwLmM6MTMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZSBcXCVkIG9uIGBzJyBjb21tYW5kJ3MgUkhTIgptc2dzdHIgIlVuZ/xsdGlnZXIgVmVyd2VpcyBcXCVkIGltIHJlY2h0ZW4gVGVpbCAoYFJIUycpIGRlcyBgcyctQmVmZWhscyIKCiM6IHNlZC9zZWQuYzo5NwojLCBjLWZvcm1hdAptc2dpZCAiIgoiR05VIHNlZCBob21lIHBhZ2U6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvc2VkLz4uXG4iCiJHZW5lcmFsIGhlbHAgdXNpbmcgR05VIHNvZnR3YXJlOiA8aHR0cDovL3d3dy5nbnUub3JnL2dldGhlbHAvPi5cbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTA0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiRS1tYWlsIGJ1ZyByZXBvcnRzIHRvOiA8JXM+LlxuIgoiQmUgc3VyZSB0byBpbmNsdWRlIHRoZSB3b3JkIGBgJXMnJyBzb21ld2hlcmUgaW4gdGhlIGBgU3ViamVjdDonJyBmaWVsZC5cbiIKbXNnc3RyICIiCiJGZWhsZXJiZXJpY2h0ZSBiaXR0ZSBwZXIgRS1NYWlsIChhdWYgZW5nbGlzY2gpIGFuOiAlcyAuXG4iCiJWZXJ3ZW5kZW4gU2llIGRhYmVpIGRlbiBCZWdyaWZmIGAlcycgaXJnZW5kd28gaW4gZGVyIGBCZXRyZWZmOictWmVpbGUuXG4iCiJTaW5uLSBvZGVyIFNjaHJlaWJmZWhsZXIgaW4gZGVuIGRldXRzY2hlbiBUZXh0ZW4gYml0dGUgYW4gPGRlQGxpLm9yZz4uXG4iCgojOiBzZWQvc2VkLmM6MTE3Cm1zZ2lkICIiCiIgIC1SLCAtLXJlZ2V4cC1wZXJsXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBQZXJsIDUncyByZWd1bGFyIGV4cHJlc3Npb25zIHN5bnRheCBpbiB0aGUgc2NyaXB0LlxuIgptc2dzdHIgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgVmVyd2VuZGUgZGllIFBlcmwtNS1TeW50YXggZvxyIHJlZy4gQXVzZHL8Y2tlIGltIFNrcmlwdC5cbiIKCiM6IHNlZC9zZWQuYzoxMjIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlVzYWdlOiAlcyBbT1BUSU9OXS4uLiB7c2NyaXB0LW9ubHktaWYtbm8tb3RoZXItc2NyaXB0fSBbaW5wdXQtZmlsZV0uLi5cbiIKIlxuIgptc2dzdHIgIiIKIkF1ZnJ1ZjogJXMgW09QVElPTl0uLi4ge1NrcmlwdC1mYWxscy1rZWluLWFuZGVyZXMtU2tyaXB0fSBbRWluZ2FiZS0iCiJEYXRlaV0uLi5cbiIKIlxuIgoKIzogc2VkL3NlZC5jOjEyNgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtbiwgLS1xdWlldCwgLS1zaWxlbnRcbiIKIiAgICAgICAgICAgICAgICAgc3VwcHJlc3MgYXV0b21hdGljIHByaW50aW5nIG9mIHBhdHRlcm4gc3BhY2VcbiIKbXNnc3RyICIiCiIgIC1uLCAtLXF1aWV0LCAtLXNpbGVudFxuIgoiICAgICAgICAgICAgICAgICB2ZXJoaW5kZXJ0IGRpZSBhdXRvbWF0aXNjaGUgQXVzZ2FiZSBkZXMgQXJiZWl0c3B1ZmZlcnNcbiIKCiM6IHNlZC9zZWQuYzoxMjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWUgc2NyaXB0LCAtLWV4cHJlc3Npb249c2NyaXB0XG4iCiIgICAgICAgICAgICAgICAgIGFkZCB0aGUgc2NyaXB0IHRvIHRoZSBjb21tYW5kcyB0byBiZSBleGVjdXRlZFxuIgptc2dzdHIgIiIKIiAgLWUgc2tyaXB0LCAtLWV4cHJlc3Npb249c2tyaXB0XG4iCiIgICAgICAgICAgICAgICAgIGjkbmd0IGBza3JpcHQnIGFuIGRpZSBhdXN6dWb8aHJlbmRlbiBCZWZlaGxlIGFuXG4iCgojOiBzZWQvc2VkLmM6MTMwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mIHNjcmlwdC1maWxlLCAtLWZpbGU9c2NyaXB0LWZpbGVcbiIKIiAgICAgICAgICAgICAgICAgYWRkIHRoZSBjb250ZW50cyBvZiBzY3JpcHQtZmlsZSB0byB0aGUgY29tbWFuZHMgdG8gYmUgIgoiZXhlY3V0ZWRcbiIKbXNnc3RyICIiCiIgIC1mIHNrcmlwdC1EYXRlaSwgLS1maWxlPXNrcmlwdC1EYXRlaVxuIgoiICAgICAgICAgICAgICAgICBo5G5ndCBkZW4gSW5oYWx0IHZvbiBgU2tyaXB0LURhdGVpJyBhbiBkaWVcbiIKIiAgICAgICAgICAgICAgICAgYXVzenVm/GhyZW5kZW4gQmVmZWhsZSBhblxuIgoKIzogc2VkL3NlZC5jOjEzMwojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtLWZvbGxvdy1zeW1saW5rc1xuIgoiICAgICAgICAgICAgICAgICBmb2xsb3cgc3ltbGlua3Mgd2hlbiBwcm9jZXNzaW5nIGluIHBsYWNlXG4iCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjEzNgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtaVtTVUZGSVhdLCAtLWluLXBsYWNlWz1TVUZGSVhdXG4iCiIgICAgICAgICAgICAgICAgIGVkaXQgZmlsZXMgaW4gcGxhY2UgKG1ha2VzIGJhY2t1cCBpZiBleHRlbnNpb24gc3VwcGxpZWQpXG4iCm1zZ3N0ciAiIgoiICAtaVtTdWZmaXhdLCAtLWluLXBsYWNlWz1TdWZmaXhdXG4iCiIgICAgICAgICAgICAgICAgIORuZGVydCBkaWUgRWluZ2FiZWRhdGVpIChCYWNrdXAgd2lyZCBlcnpldWd0LCBmYWxscyBTdWZmaXhcbiIKIiAgICAgICAgICAgICAgICAgYW5nZWdlYmVuIHd1cmRlKVxuIgoKIzogc2VkL3NlZC5jOjEzOQojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtYiwgLS1iaW5hcnlcbiIKIiAgICAgICAgICAgICAgICAgb3BlbiBmaWxlcyBpbiBiaW5hcnkgbW9kZSAoQ1IrTEZzIGFyZSBub3QgcHJvY2Vzc2VkICIKInNwZWNpYWxseSlcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1sIE4sIC0tbGluZS1sZW5ndGg9TlxuIgoiICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBkZXNpcmVkIGxpbmUtd3JhcCBsZW5ndGggZm9yIHRoZSBgbCcgY29tbWFuZFxuIgptc2dzdHIgIiIKIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiIgICAgICAgICAgICAgICAgIGdpYnQgZGllIGdld/xuc2NodGUgWmVpbGVudW1icnVjaGzkbmdlIGb8ciBkZW4gYGwnLUJlZmVobCAiCiJhblxuIgoKIzogc2VkL3NlZC5jOjE0NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtLXBvc2l4XG4iCiIgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIEdOVSBleHRlbnNpb25zLlxuIgptc2dzdHIgIiIKIiAgLS1wb3NpeFxuIgoiICAgICAgICAgICAgICAgICBzY2hhbHRldCBhbGxlIEdOVS1GdW5rdGlvbnMtRXJ3ZWl0ZXJ1bmdlbiBhYi5cbiIKCiM6IHNlZC9zZWQuYzoxNDYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXIsIC0tcmVnZXhwLWV4dGVuZGVkXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb25zIGluIHRoZSBzY3JpcHQuXG4iCm1zZ3N0ciAiIgoiICAtciwgLS1yZWdleHAtZXh0ZW5kZWRcbiIKIiAgICAgICAgICAgICAgICAgdmVyd2VuZGV0IGRpZSBlcndlaXRlcnRlbiByZWcuIEF1c2Ry/GNrZSBm/HIgZGFzIFNrcmlwdC5cbiIKCiM6IHNlZC9zZWQuYzoxNTEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXMsIC0tc2VwYXJhdGVcbiIKIiAgICAgICAgICAgICAgICAgY29uc2lkZXIgZmlsZXMgYXMgc2VwYXJhdGUgcmF0aGVyIHRoYW4gYXMgYSBzaW5nbGUgIgoiY29udGludW91c1xuIgoiICAgICAgICAgICAgICAgICBsb25nIHN0cmVhbS5cbiIKbXNnc3RyICIiCiIgIC1zLCAtLXNlcGFyYXRlXG4iCiIgICAgICAgICAgICAgICAgIGRpZSBEYXRlaWVuIHdlcmRlbiBnZXRyZW5udCB1bmQgbmljaHQgYWxzIGVpbnppZ2VcbiIKIiAgICAgICAgICAgICAgICAgenVzYW1tZW5o5G5nZW5kZSBRdWVsbGUgYmV0cmFjaHRldC5cbiIKCiM6IHNlZC9zZWQuYzoxNTQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXUsIC0tdW5idWZmZXJlZFxuIgoiICAgICAgICAgICAgICAgICBsb2FkIG1pbmltYWwgYW1vdW50cyBvZiBkYXRhIGZyb20gdGhlIGlucHV0IGZpbGVzIGFuZCAiCiJmbHVzaFxuIgoiICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGJ1ZmZlcnMgbW9yZSBvZnRlblxuIgptc2dzdHIgIiIKIiAgLXUsIC0tdW5idWZmZXJlZFxuIgoiICAgICAgICAgICAgICAgICBsYWRlIG51ciBrbGVpbnN0ZSBEYXRlbm1lbmdlbiBhdXMgZGVuIEVpbmdhYmVkYXRlaWVuXG4iCiIgICAgICAgICAgICAgICAgIHVuZCBzY2hyZWliZSBkaWUgQXVzZ2FiZXB1ZmZlciBo5HVmaWdlciB6dXL8Y2suXG4iCgojOiBzZWQvc2VkLmM6MTU3CiMsIGMtZm9ybWF0Cm1zZ2lkICIgICAgICAtLWhlbHAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAgICAgLS1oZWxwICAgICBudXIgZGllc2UgSGlsZmUgYW56ZWlnZW4gdW5kIGRhbm4gYmVlbmRlblxuIgoKIzogc2VkL3NlZC5jOjE1OAojLCBjLWZvcm1hdAptc2dpZCAiICAgICAgLS12ZXJzaW9uICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdFxuIgptc2dzdHIgIiAgICAgIC0tdmVyc2lvbiAgbnVyIGRpZSBWZXJzaW9uc2luZm8gYXVzZ2ViZW4gdW5kIGRhbm4gYmVlbmRlblxuIgoKIzogc2VkL3NlZC5jOjE1OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJJZiBubyAtZSwgLS1leHByZXNzaW9uLCAtZiwgb3IgLS1maWxlIG9wdGlvbiBpcyBnaXZlbiwgdGhlbiB0aGUgZmlyc3RcbiIKIm5vbi1vcHRpb24gYXJndW1lbnQgaXMgdGFrZW4gYXMgdGhlIHNlZCBzY3JpcHQgdG8gaW50ZXJwcmV0LiAgQWxsXG4iCiJyZW1haW5pbmcgYXJndW1lbnRzIGFyZSBuYW1lcyBvZiBpbnB1dCBmaWxlczsgaWYgbm8gaW5wdXQgZmlsZXMgYXJlXG4iCiJzcGVjaWZpZWQsIHRoZW4gdGhlIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuXG4iCiJcbiIKbXNnc3RyICIiCiJcbiIKIkZhbGxzIGtlaW4gLWUsIC0tZXhwcmVzc2lvbiwgLWYsIG9kZXIgLS1maWxlIE9wdGlvbiBhbmdlZ2ViZW4gaXN0LCB3aXJkIGRhc1xuIgoiZXJzdGUgQXJndW1lbnQsIGRhcyBrZWluZSBPcHRpb24gaXN0IGFscyBzZWQtU2tyaXB0IHZlcndlbmRldC5cbiIKIkFsbGUgcmVzdGxpY2hlbiBBcmd1bWVudGUgd2VyZGVuIGFscyBFaW5nYWJlZGF0ZWluYW1lbiBiZWhhbmRlbHQuXG4iCiJGYWxscyBrZWluZSBFaW5nYWJlZGF0ZWllbiBhbmdlZ2ViZW4gc2luZCwgd2lyZCB2b24gZGVyIFN0YW5kYXJkZWluZ2FiZSAiCiJnZWxlc2VuLlxuIgoiXG4iCgojOiBzZWQvc2VkLmM6MzE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzdXBlci1zZWQgdmVyc2lvbiAlc1xuIgptc2dzdHIgIlN1cGVyLXNlZCB2ZXJzaW9uICVzXG4iCgojOiBzZWQvc2VkLmM6MzE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJiYXNlZCBvbiBHTlUgc2VkIHZlcnNpb24gJXNcbiIKIlxuIgptc2dzdHIgIiIKImJhc2llcnQgYXVmIEdOVSBzZWQtVmVyc2lvbiAlc1xuIgoiXG4iCgojOiBzZWQvc2VkLmM6MzE4CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgc2VkIHZlcnNpb24gJXNcbiIKbXNnc3RyICJHTlUgc2VkLVZlcnNpb24gJXNcbiIKCiM6IHNlZC9zZWQuYzozMjAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiJDb3B5cmlnaHQgKEMpICVkIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLlxuIgoiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk9cbiIKIndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxuIgoidG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LlxuIgptc2dzdHIgIiIKIiVzXG4iCiIoRGVyIGZvbGdlbmRlIFRleHQgaXN0IGVpbmUgbmljaHQg/GJlcnBy/GZ0ZSDcYmVyc2V0enVuZywgZGllIHp1clxuIgoiIEluZm9ybWF0aW9uIGRpZW50OyBpbiByZWNodGxpY2hlbiBGcmFnZW4gaXN0IGltbWVyIGRhcyBlbmdsaXNjaGVcbiIKIiBPcmlnaW5hbCBhdXNzY2hsYWdnZWJlbmQpXG4iCiJcbiIKIkRpZXNlcyBQcm9ncmFtbSBpc3QgZnJlaWUgU29mdHdhcmU7IEluIGRlbiBRdWVsbGRhdGVpZW4ga/ZubmVuIFNpZSBkaWVcbiIKIkJlZGluZ3VuZ2VuIGb8ciBkaWUgV2VpdGVyZ2FiZSBuYWNobGVzZW4uXG4iCiJFcyBnaWJ0IEtFSU5FIEdBUkFOVElFOyBuaWNodCBlaW5tYWwgZGllIGltcGxpeml0ZSBHYXJhbnRpZSBkZXJcbiIKIk1BUktURsRISUdLRUlUIG9kZXIgZGVyIEVSRtxMTFVORyBFSU5FUyBCRVNUSU1NVEVOIFpXRUNLRVMuXG4iCgojOiBzZWQvdXRpbHMuYzo5MyBzZWQvdXRpbHMuYzo0MzgKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW1vdmUgJXM6ICVzIgptc2dzdHIgIiVzIGthbm4gbmljaHQgZW50ZmVybnQgd2VyZGVuOiAlcyIKCiM6IHNlZC91dGlscy5jOjE2MwojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiBmaWxlICVzOiAlcyIKbXNnc3RyICJEYXRlaSAlcyBrYW5uIG5pY2h0IGdl9mZmbmV0IHdlcmRlbjogJXMiCgojOiBzZWQvdXRpbHMuYzoxODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBhdHRhY2ggdG8gJXM6ICVzIgptc2dzdHIgIkthbm4gJWQgRWxlbWVudCBuaWNodCBhdWYgJXMgc2NocmVpYmVuOiAlcyIKCiM6IHNlZC91dGlscy5jOjI0NQojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgd3JpdGUgJWQgaXRlbSB0byAlczogJXMiCm1zZ2lkX3BsdXJhbCAiY291bGRuJ3Qgd3JpdGUgJWQgaXRlbXMgdG8gJXM6ICVzIgptc2dzdHJbMF0gIkthbm4gJWQgRWxlbWVudCBuaWNodCBhdWYgJXMgc2NocmVpYmVuOiAlcyIKbXNnc3RyWzFdICJLYW5uICVkIEVsZW1lbnRlIG5pY2h0IGF1ZiAlcyBzY2hyZWliZW46ICVzIgoKIzogc2VkL3V0aWxzLmM6MjYwIHNlZC91dGlscy5jOjI3NgojLCBjLWZvcm1hdAptc2dpZCAicmVhZCBlcnJvciBvbiAlczogJXMiCm1zZ3N0ciAiTGVzZWZlaGxlciBpbiAlczogJXMiCgojOiBzZWQvdXRpbHMuYzozNzgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBmb2xsb3cgc3ltbGluayAlczogJXMiCm1zZ3N0ciAiRGF0ZWkgJXMga2FubiBuaWNodCBnZfZmZm5ldCB3ZXJkZW46ICVzIgoKIzogc2VkL3V0aWxzLmM6NDEyCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHN0YXQgJXM6ICVzIgptc2dzdHIgIiVzIGthbm4gbmljaHQgdW1iZW5hbm50IHdlcmRlbjogJXMiCgojOiBzZWQvdXRpbHMuYzo0NDMKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW5hbWUgJXM6ICVzIgptc2dzdHIgIiVzIGthbm4gbmljaHQgdW1iZW5hbm50IHdlcmRlbjogJXMiCgojOiBsaWIvcmVnY29tcC5jOjEzNAptc2dpZCAiU3VjY2VzcyIKbXNnc3RyICJFcmZvbGdyZWljaCIKCiM6IGxpYi9yZWdjb21wLmM6MTM3Cm1zZ2lkICJObyBtYXRjaCIKbXNnc3RyICJLZWluZSDcYmVyZWluc3RpbW11bmciCgojOiBsaWIvcmVnY29tcC5jOjE0MAptc2dpZCAiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiVW5n/Gx0aWdlciByZWd1bORyZXIgQXVzZHJ1Y2siCgojOiBsaWIvcmVnY29tcC5jOjE0Mwptc2dpZCAiSW52YWxpZCBjb2xsYXRpb24gY2hhcmFjdGVyIgptc2dzdHIgIlVuZ/xsdGlnZXMgVmVyZ2xlaWNoc3plaWNoZW4iCgojOiBsaWIvcmVnY29tcC5jOjE0Ngptc2dpZCAiSW52YWxpZCBjaGFyYWN0ZXIgY2xhc3MgbmFtZSIKbXNnc3RyICJVbmf8bHRpZ2VyIFplaWNoZW5rbGFzc2VubmFtZSIKCiM6IGxpYi9yZWdjb21wLmM6MTQ5Cm1zZ2lkICJUcmFpbGluZyBiYWNrc2xhc2giCm1zZ3N0ciAiQWJzY2hsaWXfZW5kZXIgQmFja3NsYXNoIgoKIzogbGliL3JlZ2NvbXAuYzoxNTIKbXNnaWQgIkludmFsaWQgYmFjayByZWZlcmVuY2UiCm1zZ3N0ciAiVW5n/Gx0aWdlciBS/GNrdmVyd2VpcyIKCiM6IGxpYi9yZWdjb21wLmM6MTU1Cm1zZ2lkICJVbm1hdGNoZWQgWyBvciBbXiIKbXNnc3RyICJOaWNodCBwYWFyd2Vpc2VzIFsgYnp3LiBbXiIKCiM6IGxpYi9yZWdjb21wLmM6MTU4Cm1zZ2lkICJVbm1hdGNoZWQgKCBvciBcXCgiCm1zZ3N0ciAiTmljaHQgcGFhcndlaXNlcyAoIGJ6dy4gXFwoIgoKIzogbGliL3JlZ2NvbXAuYzoxNjEKbXNnaWQgIlVubWF0Y2hlZCBcXHsiCm1zZ3N0ciAiTmljaHQgcGFhcndlaXNlcyBcXHsiCgojOiBsaWIvcmVnY29tcC5jOjE2NAptc2dpZCAiSW52YWxpZCBjb250ZW50IG9mIFxce1xcfSIKbXNnc3RyICJVbmf8bHRpZ2VyIEluaGFsdCBpbiBcXHtcXH0iCgojOiBsaWIvcmVnY29tcC5jOjE2Nwptc2dpZCAiSW52YWxpZCByYW5nZSBlbmQiCm1zZ3N0ciAiVW5n/Gx0aWdlcyBCZXJlaWNoZW5kZSIKCiM6IGxpYi9yZWdjb21wLmM6MTcwCm1zZ2lkICJNZW1vcnkgZXhoYXVzdGVkIgptc2dzdHIgIlNwZWljaGVyIGVyc2No9nBmdCIKCiM6IGxpYi9yZWdjb21wLmM6MTczCm1zZ2lkICJJbnZhbGlkIHByZWNlZGluZyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiVm9yaGVyaWdlciByZWd1bORyZXIgQXVzZHJ1Y2sgaXN0IHVuZ/xsdGlnIgoKIzogbGliL3JlZ2NvbXAuYzoxNzYKbXNnaWQgIlByZW1hdHVyZSBlbmQgb2YgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIlJlZ3Vs5HJlciBBdXNkcnVjayBlbmRldCB6dSBmcvxoIgoKIzogbGliL3JlZ2NvbXAuYzoxNzkKbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiB0b28gYmlnIgptc2dzdHIgIlJlZ3Vs5HJlciBBdXNkcnVjayBpc3QgenUgZ3Jv3yIKCiM6IGxpYi9yZWdjb21wLmM6MTgyCm1zZ2lkICJVbm1hdGNoZWQgKSBvciBcXCkiCm1zZ3N0ciAiTmljaHQgcGFhcndlaXNlcyApIGJ6dy4gXFwpIgoKIzogbGliL3JlZ2NvbXAuYzo3MDMKbXNnaWQgIk5vIHByZXZpb3VzIHJlZ3VsYXIgZXhwcmVzc2lvbiIKbXNnc3RyICJLZWluIHZvcmhlcmlnZXIgcmVndWzkcmVyIEF1c2RydWNrIgoKI34gbXNnaWQgIkNhbGxlZCBzYXZjaGFyKCkgd2l0aCB1bmV4cGVjdGVkIHB1c2hiYWNrICgleCkiCiN+IG1zZ3N0ciAiQXVmcnVmIHZvbiBzYXZjaGFyKCkgbWl0IHVuZXJ3YXJ0ZXRlbSBcInB1c2hiYWNrXCIgKCV4KSIKCiN+IG1zZ2lkICJJTlRFUk5BTCBFUlJPUjogYmFkIGFkZHJlc3MgdHlwZSIKI34gbXNnc3RyICJJTlRFUk5FUiBGRUhMRVI6IEZhbHNjaGUgQWRyZXNzZW5hcnQiCgojfiBtc2dpZCAiSU5URVJOQUwgRVJST1I6IEJhZCBjbWQgJWMiCiN+IG1zZ3N0ciAiSU5URVJORVIgRkVITEVSOiBGYWxzY2hlciBCZWZlaGwgJWMiCgojfiBtc2dpZCAiVW5leHBlY3RlZCBFbmQtb2YtZmlsZSIKI34gbXNnc3RyICJVbmVyd2FydGV0ZXMgRGF0ZWllbmRlIgoKI34gbXNnaWQgImJhZCByZWdleHA6ICVzXG4iCiN+IG1zZ3N0ciAiRmFsc2NoZXIgcmVndWzkcmVyIEF1c2RydWNrOiAlc1xuIgoKI34gbXNnaWQgImlucHV0IHJlYWQgZXJyb3I6ICVzIgojfiBtc2dzdHIgIkVpbmdhYmUtTGVzZWZlaGxlcjogJXMiCgojfiBtc2dpZCAiY291bGRuJ3Qgd3JpdGUgYW4gaXRlbSB0byAlczogJXMiCiN+IG1zZ3N0ciAiS2FubiBlaW4gRmVsZCBuaWNodCBhdWYgJXMgc2NocmVpYmVuOiAlcyIK