IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IGVtcHR5IG1zZ3N0ciBoYW5kbGluZy4KIyA8aHR0cHM6Ly9zYXZhbm5haC5nbnUub3JnL2J1Z3MvPzQzNzIwPgoKY2F0IDw8XEVPRiA+IG1maS10ZXN0Ny5wbwojIEhFQURFUi4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogQm9ubmllIFR5bGVyXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogbWFycmllZC1tZW46NAojLCBmdXp6eQptc2dpZCAiVGhlIHdvcmxkIGlzIGZ1bGwgb2YgbWFycmllZCBtZW4iCm1zZ3N0ciAiU28gdmllbGUgdmVyaGVpcmF0ZXRlIE3kbm5lciIKCiM6IG1hcnJpZWQtbWVuOjUKbXNnaWQgIndpdGggd2l2ZXMgd2hvIG5ldmVyIHVuZGVyc3RhbmQiCm1zZ3N0ciAidW5kIGlocmUgRnJhdWVuIHZlcnN0ZWhlbiBzaWUgbmljaHQiCgojOiBtYXJyaWVkLW1lbjo2Cm1zZ2lkICJUaGV5J3JlIGxvb2tpbmcgZm9yIHNvbWVvbmUgdG8gc2hhcmUiCm1zZ3N0ciAiIgoKIyBzY2h3ZXIgenUg/GJlcnNldHplbi4uLgojOiBtYXJyaWVkLW1lbjo3Cm1zZ2lkICJ0aGUgZXhjaXRlbWVudCBvZiBhIGxvdmUgYWZmYWlyIgptc2dzdHIgIiIKCiM6IG1hcnJpZWQtbWVuOjgKbXNnaWQgIkp1c3QgYXMgc29vbiBhcyB0aGV5IGZpbmQgeW91Igptc2dzdHIgIiIKCiM6IG1hcnJpZWQtbWVuOjkKbXNnaWQgIlRoZXkgd2FybiB5b3UgYW5kIGRhcm4geW91Igptc2dzdHIgIiIKCiN+IG1zZ2lkICJZb3UgZmx5IG9uIHRoZSB3aW5ncyBvZiByb21hbmNlIgojfiBtc2dzdHIgIkRpZSBGbPxnZWwgZGVyIGZyaXNjaGVuIExpZWJlIGhlYmVuIGRpY2ggenVtIEhpbW1lbCIKCiMsIGZ1enp5CiN+IG1zZ2lkICJJbiB0aGUgZXllcyBvZiB0aGUgd29ybGQiCiN+IG1zZ3N0ciAiRvxyIGRpZSBhbmRlcmVuIgoKIyBFdHdhcyBmcmVpZSDcYmVyc2V0enVuZy4KI34gbXNnaWQgIllvdSdyZSBqdXN0IGFub3RoZXIgY3JhenkgZ2lybCIKI34gbXNnc3RyICJiaXN0IGR1IGJsb98gZWluIHZlcnL8Y2t0ZXMgZHVtbWVzIERpbmciCgojfiBtc2dpZCAiV2hvIGxvdmVzIGEgbWFycmllZCBtYW4iCiN+IG1zZ3N0ciAiZGFzIGVpbmVuIHZlcmhlaXJhdGV0ZW4gTWFubiBsaWVidCIKRU9GCgpjYXQgPDxcRU9GID4gbWYtdGVzdDcuc2gKIyEgL2Jpbi9zaAoKIyBFYXQgdXAgZmlsdGVyIGlucHV0IHRvIGF2b2lkIEVQSVBFIGluIHRoZSBwYXJlbnQgcHJvY2Vzcy4KY2F0ID4gL2Rldi9udWxsCgplY2hvIHRlc3RpbmcKRU9GCmNobW9kICt4IG1mLXRlc3Q3LnNoCgo6ICR7TVNHRklMVEVSPW1zZ2ZpbHRlcn0KTENfQUxMPUMgJHtNU0dGSUxURVJ9IC1pIG1maS10ZXN0Ny5wbyAtbyBtZmktdGVzdDcub3V0IFwKICAgICAgLi9tZi10ZXN0Ny5zaCA+bWZpLXRlc3Q3LmVyciAyPiYxCnJlc3VsdD0kPwpjYXQgbWZpLXRlc3Q3LmVyciB8IGdyZXAgLXYgJ3dhcm5pbmc6IExvY2FsZSBjaGFyc2V0JyB8IGdyZXAgLXYgJ14gJwp0ZXN0ICRyZXN1bHQgPSAwIHx8IHsgRXhpdCAxOyB9CgpjYXQgPDxcRU9GID4gbWZpLXRlc3Q3Lm9rCiMgSEVBREVSLgojCm1zZ2lkICIiCm1zZ3N0ciAidGVzdGluZ1xuIgoKIzogbWFycmllZC1tZW46NAojLCBmdXp6eQptc2dpZCAiVGhlIHdvcmxkIGlzIGZ1bGwgb2YgbWFycmllZCBtZW4iCm1zZ3N0ciAidGVzdGluZ1xuIgoKIzogbWFycmllZC1tZW46NQptc2dpZCAid2l0aCB3aXZlcyB3aG8gbmV2ZXIgdW5kZXJzdGFuZCIKbXNnc3RyICJ0ZXN0aW5nXG4iCgojOiBtYXJyaWVkLW1lbjo2Cm1zZ2lkICJUaGV5J3JlIGxvb2tpbmcgZm9yIHNvbWVvbmUgdG8gc2hhcmUiCm1zZ3N0ciAidGVzdGluZ1xuIgoKIyBzY2h3ZXIgenUg/GJlcnNldHplbi4uLgojOiBtYXJyaWVkLW1lbjo3Cm1zZ2lkICJ0aGUgZXhjaXRlbWVudCBvZiBhIGxvdmUgYWZmYWlyIgptc2dzdHIgInRlc3RpbmdcbiIKCiM6IG1hcnJpZWQtbWVuOjgKbXNnaWQgIkp1c3QgYXMgc29vbiBhcyB0aGV5IGZpbmQgeW91Igptc2dzdHIgInRlc3RpbmdcbiIKCiM6IG1hcnJpZWQtbWVuOjkKbXNnaWQgIlRoZXkgd2FybiB5b3UgYW5kIGRhcm4geW91Igptc2dzdHIgInRlc3RpbmdcbiIKCiN+IG1zZ2lkICJZb3UgZmx5IG9uIHRoZSB3aW5ncyBvZiByb21hbmNlIgojfiBtc2dzdHIgInRlc3RpbmdcbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICJJbiB0aGUgZXllcyBvZiB0aGUgd29ybGQiCiN+IG1zZ3N0ciAidGVzdGluZ1xuIgoKIyBFdHdhcyBmcmVpZSDcYmVyc2V0enVuZy4KI34gbXNnaWQgIllvdSdyZSBqdXN0IGFub3RoZXIgY3JhenkgZ2lybCIKI34gbXNnc3RyICJ0ZXN0aW5nXG4iCgojfiBtc2dpZCAiV2hvIGxvdmVzIGEgbWFycmllZCBtYW4iCiN+IG1zZ3N0ciAidGVzdGluZ1xuIgpFT0YKCjogJHtESUZGPWRpZmZ9CiR7RElGRn0gbWZpLXRlc3Q3Lm9rIG1maS10ZXN0Ny5vdXQKcmVzdWx0PSQ/CgpleGl0ICRyZXN1bHQK