IyBQb2xpc2ggdHJhbnNsYXRpb24gZm9yIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIyBBcmthZGl1c3ogTGlwaWVjIDxhbGlwaWVjQGVsa2EucHcuZWR1LnBsPiwgMjAwMy4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogbGliaWNvbnYgMS45LjFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA0LTAxLTIyIDExOjU0KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDMtMTAtMTMgMjI6NTYrMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBBcmthZGl1c3ogTGlwaWVjIDxBLkxpcGllY0BlbGthLnB3LmVkdS5wbD5cbiIKIkxhbmd1YWdlLVRlYW06IFBvbGlzaCA8dHJhbnNsYXRpb24tdGVhbS1wbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IHNyYy9pY29udi5jOjU0Cm1zZ2lkICJVc2FnZTogaWNvbnYgWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKbXNnc3RyICJVv3ljaWU6IGljb252IFstY10gWy1zXSBbZiB6X2tvZHVdIFstdCBkb19rb2R1XSBbcGxpayAuLi5dIgoKIzogc3JjL2ljb252LmM6NTYKbXNnaWQgIm9yOiAgICBpY29udiAtbCIKbXNnc3RyICJsdWI6ICAgIGljb252IC1sIgoKIzogc3JjL2ljb252LmM6NjYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PXG4iCiJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiIKbXNnc3RyICIiCiJUbyBqZXN0IG9wcm9ncmFtb3dhbmllIHdvbG5vZG9zdOpwbmU7IHphanJ6eWogZG8gvHLzZGWzIGFieSB1enlza2HmIHdhcnVua2lcbiIKImxpY2VuY2ppLiBOYSBvcHJvZ3JhbW93YW5pZSB0byBuaWUgamVzdCB1ZHppZWxhbmEgr0FETkEgR1dBUkFOQ0pBOyBuYXdldFxuIgoiZ3dhcmFuY2phIFLKS09KTUkgbHViIFBSWllEQVROT6ZDSSBETyBPS1JFpkxPTkVHTyBDRUxVLlxuIgoKIzogc3JjL2ljb252LmM6NjkKIywgYy1mb3JtYXQKbXNnaWQgIldyaXR0ZW4gYnkgJXMuXG4iCm1zZ3N0ciAiTmFwaXNhbmUgcHJ6ZXogJXMuXG4iCgojOiBzcmMvaWNvbnYuYzoxMDUgc3JjL2ljb252LmM6MTM3IHNyYy9pY29udi5jOjE4NwojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZVxuIgptc2dzdHIgImljb252OiAlczogbmllZG9rb/Fjem9ueSB6bmFrIGx1YiBzZWt3ZW5jamEgc2hpZnRcbiIKCiM6IHNyYy9pY29udi5jOjEzMSBzcmMvaWNvbnYuYzoxODIKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogY2Fubm90IGNvbnZlcnRcbiIKbXNnc3RyICJpY29udjogJXM6IG5pZSBtb79uYSBza29ud2VydG93YeZcbiIKCiM6IHNyYy9pY29udi5jOjE1MyBzcmMvaWNvbnYuYzoxOTIgc3JjL2ljb252LmM6MzEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6ICIKbXNnc3RyICJpY29udjogJXM6ICIKCiM6IHNyYy9pY29udi5jOjIwMQojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogJXM6IGKzsWQgd2VqLi93eWouXG4iCgojOiBzcmMvaWNvbnYuYzoyOTQKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIGZyb20gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjoga29ud2Vyc2phIHoga29kdSAlcyBqZXN0IG5pZW9ic7N1Z2l3YW5hXG4iCgojOiBzcmMvaWNvbnYuYzoyOTYKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IGtvbndlcnNqYSBkbyBrb2R1ICVzIGplc3Qgbmllb2Jzs3VnaXdhbmFcbiIKCiM6IHNyYy9pY29udi5jOjI5OAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB0byAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBrb253ZXJzamEgeiBrb2R1ICVzIGRvIGtvZHUgJXMgamVzdCBuaWVvYnOzdWdpd2FuYVxuIgoKIzogc3JjL2ljb252LmM6MzAyCm1zZ2lkICIoc3RkaW4pIgptc2dzdHIgIihzdGRpbikiCgojOiBzcmMvaWNvbnYuYzozMjMKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogYrOxZCB3ZWouL3d5ai5cbiIKCiN+IG1zZ2lkICIiCiN+ICJVc2FnZTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgojfiBtc2dzdHIgIiIKI34gIlW/eWNpZTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIHpfa29kdV0gWy10IGRvX2tvZHVdIFtwbGlrIC4uLl0iCg==