IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IC0tYWRkLWxvY2F0aW9uPWZpbGUgb3B0aW9uLgoKY2F0IDw8XEVPRiA+IG1nLXRlc3QxMS5wbwojIEdlcm1hbiB0cmFuc2xhdGlvbnMgZm9yIEdOVSBnZXR0ZXh0IHBhY2thZ2UuCiMgQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGdldHRleHQgMC4xMS1wcmUxXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMi0wOCAyMDozMyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTA0IDEyOjI1KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2FybCBFaWNod2FsZGVyIDxrZUBzdXNlLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogYXJnbWF0Y2guYzoxNDEKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgYXJndW1lbnQgYCVzJyBmb3IgYCVzJyIKbXNnc3RyICJ1bmf8bHRpZ2VzIEFyZ3VtZW50ILslc6sgZvxyILslc6siCgojOiBhcmdtYXRjaC5jOjE0MgojLCBjLWZvcm1hdAptc2dpZCAiYW1iaWd1b3VzIGFyZ3VtZW50IGAlcycgZm9yIGAlcyciCm1zZ3N0ciAibWVocmRldXRpZ2VzIEFyZ3VtZW50ILslc6sgZvxyILslc6siCgojOiBhcmdtYXRjaC5jOjE2Mgptc2dpZCAiVmFsaWQgYXJndW1lbnRzIGFyZToiCm1zZ3N0ciAiR/xsdGlnZSBBcmd1bWVudGUgc2luZDoiCgojOiBjb3B5LWZpbGUuYzo2MAojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3Igd2hpbGUgb3BlbmluZyBcIiVzXCIgZm9yIHJlYWRpbmciCm1zZ3N0ciAi1mZmbmVuIGRlciBEYXRlaSC7JXOrIHp1bSBMZXNlbiBmZWhsZ2VzY2hsYWdlbiIKCiM6IGNvcHktZmlsZS5jOjY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgb3BlbiBiYWNrdXAgZmlsZSBcIiVzXCIgZm9yIHdyaXRpbmciCm1zZ3N0ciAi1mZmbmVuIGRlciBTaWNoZXJ1bmdzZGF0ZWkguyVzqyB6dW0gU2NocmVpYmVuIGZlaGxnZXNjaGxhZ2VuIgoKIzogY29weS1maWxlLmM6ODAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHJlYWRpbmcgXCIlc1wiIgptc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIHZvbiC7JXOrIgoKIzogY29weS1maWxlLmM6ODYgY29weS1maWxlLmM6OTAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHdyaXRpbmcgXCIlc1wiIgptc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiB2b24guyVzqyIKCiM6IGNvcHktZmlsZS5jOjkyCiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciBhZnRlciByZWFkaW5nIFwiJXNcIiIKbXNnc3RyICJGZWhsZXIgbmFjaCBkZW0gTGVzZW4gdm9uILslc6siCgojOiBlcnJvci5jOjExNQptc2dpZCAiVW5rbm93biBzeXN0ZW0gZXJyb3IiCm1zZ3N0ciAiVW5iZWthbm50ZXIgU3lzdGVtZmVobGVyIgoKIzogZXhlY3V0ZS5jOjE3MCBleGVjdXRlLmM6MjA1IHBpcGUtYmlkaS5jOjE1NiBwaXBlLWJpZGkuYzoxOTEgcGlwZS1pbi5jOjE2OQojOiBwaXBlLWluLmM6MjA1IHBpcGUtb3V0LmM6MTY5IHBpcGUtb3V0LmM6MjA1IHdhaXQtcHJvY2Vzcy5jOjEzNgojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyBmYWlsZWQiCm1zZ3N0ciAiU3VicHJvemVzcyAlcyBmZWhsZ2VzY2hsYWdlbiIKCiM6IGdldG9wdC5jOjY5MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJXMnIGlzIGFtYmlndW91c1xuIgptc2dzdHIgIiVzOiBPcHRpb24guyVzqyBpc3QgbWVocmRldXRpZ1xuIgoKIzogZ2V0b3B0LmM6NzE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LS0lc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlYyVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JWMlc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzM5IGdldG9wdC5jOjkxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JXOrIGVyd2FydGV0IGVpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgLS0lcydcbiIKbXNnc3RyICIlczogdW5iZWthbm50ZSBPcHRpb24guy0tJXOrXG4iCgojOiBnZXRvcHQuYzo3NzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uIGAlYyVzJ1xuIgptc2dzdHIgIiVzOiB1bmJla2FubnRlIE9wdGlvbiC7JWMlc6tcbiIKCiM6IGdldG9wdC5jOjc5OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCm1zZ3N0ciAiJXM6IHVuenVs5HNzaWdlIE9wdGlvbiAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBvcHRpb24gLS0gJWNcbiIKbXNnc3RyICIlczogdW5n/Gx0aWdlIE9wdGlvbiAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODMxIGdldG9wdC5jOjk2MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlY1xuIgptc2dzdHIgIiVzOiBPcHRpb24gZXJ3YXJ0ZXQgZWluIEFyZ3VtZW50IC0tICVjXG4iCgojOiBnZXRvcHQuYzo4NzgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBpcyBhbWJpZ3VvdXNcbiIKbXNnc3RyICIlczogT3B0aW9uILstVyAlc6sgaXN0IG1laHJkZXV0aWdcbiIKCiM6IGdldG9wdC5jOjg5NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgLVcgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogT3B0aW9uILstVyAlc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogamF2YWNvbXAuYzo0NjUKbXNnaWQgIkphdmEgY29tcGlsZXIgbm90IGZvdW5kLCB0cnkgaW5zdGFsbGluZyBnY2ogb3Igc2V0ICRKQVZBQyIKbXNnc3RyICIiCiJKYXZhLUNvbXBpbGVyIG5pY2h0IGdlZnVuZGVuOyBiaXR0ZSC7Z2NqqyBpbnN0YWxsaWVyZW4gb2RlciAkSkFWQUMgc2V0emVuIgoKIzogamF2YWV4ZWMuYzo0MDQKbXNnaWQgIkphdmEgdmlydHVhbCBtYWNoaW5lIG5vdCBmb3VuZCwgdHJ5IGluc3RhbGxpbmcgZ2lqIG9yIHNldCAkSkFWQSIKbXNnc3RyICIiCiJWaXJ0dWVsbGUgSmF2YS1NYXNjaGluZSBuaWNodCBnZWZ1bmRlbjsgYml0dGUgu2djaqsgaW5zdGFsbGllcmVuIG9kZXJcbiIKIiRKQVZBIHNldHplbiIKCiM6IG9ic3RhY2suYzo0NzQgeGVycm9yLmM6NzUgeG1hbGxvYy5jOjU2Cm1zZ2lkICJtZW1vcnkgZXhoYXVzdGVkIgptc2dzdHIgInZpcnR1ZWxsZXIgU3BlaWNoZXIgZXJzY2j2cGZ0IgoKIzogcGlwZS1iaWRpLmM6MTE5IHBpcGUtYmlkaS5jOjEyMSBwaXBlLWluLmM6MTM2IHBpcGUtb3V0LmM6MTM2Cm1zZ2lkICJjYW5ub3QgY3JlYXRlIHBpcGUiCm1zZ3N0ciAiRXMgaXN0IG5pY2h0IG32Z2xpY2gsIGVpbmUgUGlwZSB6dSBlcnpldWdlbiIKCiM6IHdhaXQtcHJvY2Vzcy5jOjExNwojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyIKbXNnc3RyICJTdWJwcm96ZXNzICVzIgoKIzogd2FpdC1wcm9jZXNzLmM6MTI5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBzdWJwcm9jZXNzIGdvdCBmYXRhbCBzaWduYWwiCm1zZ3N0ciAiU3VicHJvemVzcyAlcyBoYXQgZWluIGZhdGFsZXMgU2lnbmFsIGVyaGFsdGVuIgpFT0YKCjogJHtNU0dHUkVQPW1zZ2dyZXB9CiR7TVNHR1JFUH0gLS1hZGQtbG9jYXRpb249ZmlsZSAtTiBwaXBlLWJpZGkuYyAtbyBtZy10ZXN0MTEudG1wIG1nLXRlc3QxMS5wbyBcCiAgICB8fCBFeGl0IDEKTENfQUxMPUMgdHIgLWQgJ1xyJyA8IG1nLXRlc3QxMS50bXAgPiBtZy10ZXN0MTEub3V0IHx8IEV4aXQgMQoKY2F0IDw8XEVPRiA+IG1nLXRlc3QxMS5vawojIEdlcm1hbiB0cmFuc2xhdGlvbnMgZm9yIEdOVSBnZXR0ZXh0IHBhY2thZ2UuCiMgQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGdldHRleHQgMC4xMS1wcmUxXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMi0wOCAyMDozMyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTA0IDEyOjI1KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2FybCBFaWNod2FsZGVyIDxrZUBzdXNlLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogZXhlY3V0ZS5jIHBpcGUtYmlkaS5jIHBpcGUtaW4uYyBwaXBlLW91dC5jIHdhaXQtcHJvY2Vzcy5jCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBzdWJwcm9jZXNzIGZhaWxlZCIKbXNnc3RyICJTdWJwcm96ZXNzICVzIGZlaGxnZXNjaGxhZ2VuIgoKIzogcGlwZS1iaWRpLmMgcGlwZS1pbi5jIHBpcGUtb3V0LmMKbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZSIKbXNnc3RyICJFcyBpc3QgbmljaHQgbfZnbGljaCwgZWluZSBQaXBlIHp1IGVyemV1Z2VuIgpFT0YKCjogJHtESUZGPWRpZmZ9CiR7RElGRn0gbWctdGVzdDExLm9rIG1nLXRlc3QxMS5vdXQKcmVzdWx0PSQ/CgpleGl0ICRyZXN1bHQK