IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBWZXJpZnkgbXNnY2F0IG9mIHR3byBmaWxlcywgd2hlbiB0aGUgaGVhZGVyIGVudHJpZXMgaGF2ZSBkaWZmZXJlbnQgY29tbWVudHMKIyBhbmQgZGlmZmVyZW50IGNvbnRlbnRzLiBUaGUgcmVzdWx0aW5nIGhlYWRlciBlbnRyeSBtdXN0IGJlIG1hcmtlZCBmdXp6eS4KCmNhdCA8PFxFT0YgPiBtY2F0LXRlc3Q4LmluMQojIEdlcm1hbiBtZXNzYWdlIGZpbGUgZm9yIHh5ei4KIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEgeHl6LgojIEthYiBEZWYgPGtlQHp6ei51dWNwPiwgMjAwMC4KIyBEZWYgS2FiIDxka0B6enoudXVjcD4sIDIwMDEuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IHh5elxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDEtMTEtMTEgMTI6NTE6MzQrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0xMS0xMSAxMzowMiswMjowMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLYWIgRGVmIDxrZUB6enoudXVjcD5cbiIKIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8aTE4bkB6enoudXVjcD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIy4gSGVscCB0ZXh0IChIVE1MLWxpa2UpIFNUQVJUCiM6IGNsaWVudHMvaW5zdF9hc2tfY29uZmlnLnljcDoxMTkKbXNnaWQgIiIKIkNvbmdyYXR1bGF0aW9ucyEiCm1zZ3N0ciAiIgoiR2z8Y2t3dW5zY2ghIgpFT0YKCmNhdCA8PFxFT0YgPiBtY2F0LXRlc3Q4LmluMgojIEdlcm1hbiBtZXNzYWdlIGZpbGUgZm9yIHh5ei4KIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEgeHl6LgojIEthYiBEZWYgPGtlQHp6ei51dWNwPiwgMjAwMC4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0wNC0yNCAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTA0LTI0IDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojLiBIZWxwIHRleHQgKEhUTUwtbGlrZSkgU1RBUlQKIzogY2xpZW50cy9pbnN0X2Fza19jb25maWcueWNwOjExOQptc2dpZCAiIgoiQ29uZ3JhdHVsYXRpb25zISIKbXNnc3RyICIiCiJHbPxja3d1bnNjaCEiCkVPRgoKcm0gLWYgbWNhdC10ZXN0OC50bXAKCjogJHtNU0dDQVQ9bXNnY2F0fQoke01TR0NBVH0gLS1tb3JlLXRoYW49MCAtbyBtY2F0LXRlc3Q4LnRtcCBcCiAgICBtY2F0LXRlc3Q4LmluMSBtY2F0LXRlc3Q4LmluMiB8fCBFeGl0IDEKTENfQUxMPUMgdHIgLWQgJ1xyJyA8IG1jYXQtdGVzdDgudG1wID4gbWNhdC10ZXN0OC5vdXQgfHwgRXhpdCAxCgpjYXQgPDxcRU9GID4gbWNhdC10ZXN0OC5vawojICMtIy0jLSMtIyAgbWNhdC10ZXN0OC5pbjEgKHh5eikgICMtIy0jLSMtIwojIEdlcm1hbiBtZXNzYWdlIGZpbGUgZm9yIHh5ei4KIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEgeHl6LgojIEthYiBEZWYgPGtlQHp6ei51dWNwPiwgMjAwMC4KIyBEZWYgS2FiIDxka0B6enoudXVjcD4sIDIwMDEuCiMKIyAjLSMtIy0jLSMgIG1jYXQtdGVzdDguaW4yICh4eXopICAjLSMtIy0jLSMKIyBHZXJtYW4gbWVzc2FnZSBmaWxlIGZvciB4eXouCiMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxIHh5ei4KIyBLYWIgRGVmIDxrZUB6enoudXVjcD4sIDIwMDAuCiMKIywgZnV6enkKbXNnaWQgIiIKbXNnc3RyICIiCiIjLSMtIy0jLSMgIG1jYXQtdGVzdDguaW4xICh4eXopICAjLSMtIy0jLSNcbiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMS0xMSAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTExIDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiIjLSMtIy0jLSMgIG1jYXQtdGVzdDguaW4yICh4eXopICAjLSMtIy0jLSNcbiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0wNC0yNCAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTA0LTI0IDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojLiBIZWxwIHRleHQgKEhUTUwtbGlrZSkgU1RBUlQKIzogY2xpZW50cy9pbnN0X2Fza19jb25maWcueWNwOjExOQptc2dpZCAiQ29uZ3JhdHVsYXRpb25zISIKbXNnc3RyICJHbPxja3d1bnNjaCEiCkVPRgoKOiAke0RJRkY9ZGlmZn0KJHtESUZGfSBtY2F0LXRlc3Q4Lm9rIG1jYXQtdGVzdDgub3V0CnJlc3VsdD0kPwoKZXhpdCAkcmVzdWx0Cg==