IyEvdXNyL2Jpbi9lbnYgcGVybAojCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBXcml0dGVuIGJ5IEFuZHkgUG9seWFrb3YgPGFwcHJvQG9wZW5zc2wub3JnPiBmb3IgdGhlIE9wZW5TU0wKIyBwcm9qZWN0LiBUaGUgbW9kdWxlIGlzLCBob3dldmVyLCBkdWFsIGxpY2Vuc2VkIHVuZGVyIE9wZW5TU0wgYW5kCiMgQ1JZUFRPR0FNUyBsaWNlbnNlcyBkZXBlbmRpbmcgb24gd2hlcmUgeW91IG9idGFpbiBpdC4gRm9yIGZ1cnRoZXIKIyBkZXRhaWxzIHNlZSBodHRwOi8vd3d3Lm9wZW5zc2wub3JnL35hcHByby9jcnlwdG9nYW1zLy4KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojCiMgU0hBNTEyIGJsb2NrIHRyYW5zZm9ybSBmb3IgeDg2LiBTZXB0ZW1iZXIgMjAwNy4KIwojIE1heSAyMDEzLgojCiMgQWRkIFNTU0UzIGNvZGUgcGF0aCwgMjAtMjUlIGltcHJvdmVtZW50IFtvdmVyIG9yaWdpbmFsIFNTRTIgY29kZV0uCiMKIyBQZXJmb3JtYW5jZSBpbiBjbG9jayBjeWNsZXMgcGVyIHByb2Nlc3NlZCBieXRlIChsZXNzIGlzIGJldHRlcik6CiMKIwkJZ2NjCWljYwl4ODYgYXNtCVNJTUQoKikJeDg2XzY0KCoqKQojIFBlbnRpdW0JMTAwCTk3CTYxCS0JLQojIFBJSUkJCTc1CTc3CTU2CS0JLQojIFA0CQkxMTYJOTUJODIJMzQuNgkzMC44CiMgQU1EIEs4CTU0CTU1CTM2CTIwLjcJOS41NwojIENvcmUyCQk2Ngk1Nwk0MAkxNS45CTkuOTcKIyBXZXN0bWVyZQk3MAktCTM4CTEyLjIJOS41OAojIFNhbmR5IEJyaWRnZQk1OAktCTM1CTExLjkJMTEuMgojIEl2eSBCcmlkZ2UJNTAJLQkzMwkxMS41CTguMTcKIyBIYXN3ZWxsCTQ2CS0JMjkJMTEuMwk3LjY2CiMgQnVsbGRvemVyCTEyMQktCTUwCTE0LjAJMTMuNQojIFZJQSBOYW5vCTkxCS0JNTIJMzMJMTQuNwojIEF0b20JCTEyNgktCTY4CTQ4KCoqKikJMTQuNwojIFNpbHZlcm1vbnQJOTcJLQk1OAk0MigqKiopCTE3LjUKIwojICgqKQl3aGljaGV2ZXIgYmVzdCBhcHBsaWNhYmxlLgojICgqKikJeDg2XzY0IGFzc2VtYmxlciBwZXJmb3JtYW5jZSBpcyBwcmVzZW50ZWQgZm9yIHJlZmVyZW5jZQojCXB1cnBvc2VzLCB0aGUgcmVzdWx0cyBhcmUgZm9yIGludGVnZXItb25seSBjb2RlLgojICgqKiopCXBhZGRxIGlzIGluY3JlYWRpYmx5IHNsb3cgb24gQXRvbS4KIwojIElBTFUgY29kZS1wYXRoIGlzIG9wdGltaXplZCBmb3IgZWxkZXIgUGVudGl1bXMuIE9uIHZhbmlsbGEgUGVudGl1bQojIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IG92ZXIgY29tcGlsZXIgZ2VuZXJhdGVkIGNvZGUgcmVhY2hlcyB+NjAlLAojIHdoaWxlIG9uIFBJSUkgLSB+MzUlLiBPbiBuZXdlciC1LWFyY2hzIGltcHJvdmVtZW50IHZhcmllcyBmcm9tIDE1JQojIHRvIDUwJSwgYnV0IGl0J3MgbGVzcyBpbXBvcnRhbnQgYXMgdGhleSBhcmUgZXhwZWN0ZWQgdG8gZXhlY3V0ZSBTU0UyCiMgY29kZS1wYXRoLCB3aGljaCBpcyBjb21tb25seSB+Mi0zeCBmYXN0ZXIgW3RoYW4gY29tcGlsZXIgZ2VuZXJhdGVkCiMgY29kZV0uIFNTRTIgY29kZS1wYXRoIGlzIGFzIGZhc3QgYXMgb3JpZ2luYWwgc2hhNTEyLXNzZTIucGwsIGV2ZW4KIyB0aG91Z2ggaXQgZG9lcyBub3QgdXNlIDEyOC1iaXQgb3BlcmF0aW9ucy4gVGhlIGxhdHRlciBtZWFucyB0aGF0CiMgU1NFMi1hd2FyZSBrZXJuZWwgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIHRvIGV4ZWN1dGUgdGhlIGNvZGUuIEFub3RoZXIKIyBkaWZmZXJlbmNlIGlzIHRoYXQgbmV3IGNvZGUgb3B0aW1pemVzIGFtb3VudCBvZiB3cml0ZXMsIGJ1dCBhdCB0aGUKIyBjb3N0IG9mIGluY3JlYXNlZCBkYXRhIGNhY2hlICJmb290cHJpbnQiIGJ5IDEvMktCLgoKJDAgPX4gbS8oLipbXC9cXF0pW15cL1xcXSskLzsgJGRpcj0kMTsKcHVzaChASU5DLCIke2Rpcn0iLCIke2Rpcn0uLi8uLi9wZXJsYXNtIik7CnJlcXVpcmUgIng4NmFzbS5wbCI7CgomYXNtX2luaXQoJEFSR1ZbMF0sInNoYTUxMi01ODYucGwiLCRBUkdWWyQjQVJHVl0gZXEgIjM4NiIpOwoKJHNzZTI9MDsKZm9yIChAQVJHVikgeyAkc3NlMj0xIGlmICgvLURPUEVOU1NMX0lBMzJfU1NFMi8pOyB9CgomZXh0ZXJuYWxfbGFiZWwoIk9QRU5TU0xfaWEzMmNhcF9QIikgaWYgKCRzc2UyKTsKCiRUbG89JkRXUCgwLCJlc3AiKTsJJFRoaT0mRFdQKDQsImVzcCIpOwokQWxvPSZEV1AoOCwiZXNwIik7CSRBaGk9JkRXUCg4KzQsImVzcCIpOwokQmxvPSZEV1AoMTYsImVzcCIpOwkkQmhpPSZEV1AoMTYrNCwiZXNwIik7CiRDbG89JkRXUCgyNCwiZXNwIik7CSRDaGk9JkRXUCgyNCs0LCJlc3AiKTsKJERsbz0mRFdQKDMyLCJlc3AiKTsJJERoaT0mRFdQKDMyKzQsImVzcCIpOwokRWxvPSZEV1AoNDAsImVzcCIpOwkkRWhpPSZEV1AoNDArNCwiZXNwIik7CiRGbG89JkRXUCg0OCwiZXNwIik7CSRGaGk9JkRXUCg0OCs0LCJlc3AiKTsKJEdsbz0mRFdQKDU2LCJlc3AiKTsJJEdoaT0mRFdQKDU2KzQsImVzcCIpOwokSGxvPSZEV1AoNjQsImVzcCIpOwkkSGhpPSZEV1AoNjQrNCwiZXNwIik7CiRLNTEyPSJlYnAiOwoKJEFzc2UyPSZRV1AoMCwiZXNwIik7CiRCc3NlMj0mUVdQKDgsImVzcCIpOwokQ3NzZTI9JlFXUCgxNiwiZXNwIik7CiREc3NlMj0mUVdQKDI0LCJlc3AiKTsKJEVzc2UyPSZRV1AoMzIsImVzcCIpOwokRnNzZTI9JlFXUCg0MCwiZXNwIik7CiRHc3NlMj0mUVdQKDQ4LCJlc3AiKTsKJEhzc2UyPSZRV1AoNTYsImVzcCIpOwoKJEE9Im1tMCI7CSMgQi1EIGFuZAokRT0ibW00IjsJIyBGLUggYXJlIGNvbW1vbmx5IGxvYWRlZCB0byByZXNwZWN0aXZlbHkgbW0xLW1tMyBhbmQKCQkjIG1tNS1tbTcsIGJ1dCBpdCdzIGRvbmUgb24gb24tZGVtYW5kIGJhc2lzLi4uCiRCeEM9Im1tMiI7CSMgLi4uIGV4Y2VwdCBmb3IgQl5DCgpzdWIgQk9EWV8wMF8xNV9zc2UyIHsKICAgIG15ICRwaGFzZT1zaGlmdDsKCgkjJm1vdnEJKCJtbTUiLCRGc3NlMik7CQkJIyBsb2FkIGYKCSMmbW92cQkoIm1tNiIsJEdzc2UyKTsJCQkjIGxvYWQgZwoKCSZtb3ZxCSgibW0xIiwkRSk7CQkJIyAlbW0xIGlzIHNsaWRpbmcgcmlnaHQKCSAmcHhvcgkoIm1tNSIsIm1tNiIpOwkJCSMgZl49ZwoJJnBzcmxxCSgibW0xIiwxNCk7CgkgJm1vdnEJKCRFc3NlMiwkRSk7CQkJIyBtb2R1bG8tc2NoZWR1bGVkIHNhdmUgZQoJICZwYW5kCSgibW01IiwkRSk7CQkJIyBmJj1lCgkmcHNsbHEJKCRFLDIzKTsJCQkjICRFIGlzIHNsaWRpbmcgbGVmdAoJICZtb3ZxCSgkQSwibW0zIikJCQlpZiAoJHBoYXNlPDIpOwoJICZtb3ZxCSgmUVdQKDgqOSwiZXNwIiksIm1tNyIpCQkjIHNhdmUgWFtpXQoJJm1vdnEJKCJtbTMiLCJtbTEiKTsJCQkjICVtbTMgaXMgVDEKCSAmcHNybHEJKCJtbTEiLDQpOwoJICZweG9yCSgibW01IiwibW02Iik7CQkJIyBDaChlLGYsZykKCSZweG9yCSgibW0zIiwkRSk7CgkgJnBzbGxxCSgkRSwyMyk7CgkmcHhvcgkoIm1tMyIsIm1tMSIpOwoJICZtb3ZxCSgkQXNzZTIsJEEpOwkJCSMgbW9kdWxvLXNjaGVkdWxlZCBzYXZlIGEKCSAmcGFkZHEJKCJtbTciLCJtbTUiKTsJCQkjIFhbaV0rPUNoKGUsZixnKQoJJnB4b3IJKCJtbTMiLCRFKTsKCSAmcHNybHEJKCJtbTEiLDIzKTsKCSAmcGFkZHEJKCJtbTciLCRIc3NlMik7CQkJIyBYW2ldKz1oCgkmcHhvcgkoIm1tMyIsIm1tMSIpOwoJICZwc2xscQkoJEUsNCk7CgkgJnBhZGRxCSgibW03IixRV1AoMCwkSzUxMikpOwkJIyBYW2ldKz1LNTEyW2ldCgkmcHhvcgkoIm1tMyIsJEUpOwkJCSMgVDE9U2lnbWExXzUxMihlKQoKCSAmbW92cQkoJEUsJERzc2UyKTsJCQkjIGUgPSBsb2FkIGQsIGUgaW4gbmV4dCByb3VuZAoJJnBhZGRxCSgibW0zIiwibW03Iik7CQkJIyBUMSs9WFtpXQoJICZtb3ZxCSgibW01IiwkQSk7CQkJIyAlbW01IGlzIHNsaWRpbmcgcmlnaHQKCSAmcHNybHEJKCJtbTUiLDI4KTsKCSZwYWRkcQkoJEUsIm1tMyIpOwkJCSMgZCArPSBUMQoJICZtb3ZxCSgibW02IiwkQSk7CQkJIyAlbW02IGlzIHNsaWRpbmcgbGVmdAoJICZtb3ZxCSgibW03IiwibW01Iik7CgkgJnBzbGxxCSgibW02IiwyNSk7CgkmbW92cQkoIm1tMSIsJEJzc2UyKTsJCQkjIGxvYWQgYgoJICZwc3JscQkoIm1tNSIsNik7CgkgJnB4b3IJKCJtbTciLCJtbTYiKTsKCSZzdWIJKCJlc3AiLDgpOwoJICZwc2xscQkoIm1tNiIsNSk7CgkgJnB4b3IJKCJtbTciLCJtbTUiKTsKCSZweG9yCSgkQSwibW0xIik7CQkJIyBhXmIsIGJeYyBpbiBuZXh0IHJvdW5kCgkgJnBzcmxxCSgibW01Iiw1KTsKCSAmcHhvcgkoIm1tNyIsIm1tNiIpOwoJJnBhbmQJKCRCeEMsJEEpOwkJCSMgKGJeYykmKGFeYikKCSAmcHNsbHEJKCJtbTYiLDYpOwoJICZweG9yCSgibW03IiwibW01Iik7CgkmcHhvcgkoJEJ4QywibW0xIik7CQkJIyBbaD1dTWFqKGEsYixjKQoJICZweG9yCSgibW02IiwibW03Iik7CQkJIyBTaWdtYTBfNTEyKGEpCgkgJm1vdnEJKCJtbTciLCZRV1AoOCooOSsxNi0xKSwiZXNwIikpCWlmICgkcGhhc2UhPTApOwkjIHByZS1mZXRjaAoJICZtb3ZxCSgibW01IiwkRnNzZTIpCQkJaWYgKCRwaGFzZT09MCk7CSMgbG9hZCBmCgogICAgaWYgKCRwaGFzZT4xKSB7CgkmcGFkZHEJKCRCeEMsIm1tNiIpOwkJCSMgaCs9U2lnbWEwKGEpCgkgJmFkZAkoJEs1MTIsOCk7CgkjJnBhZGRxCSgkQnhDLCJtbTMiKTsJCQkjIGgrPVQxCgoJKCRBLCRCeEMpID0gKCRCeEMsJEEpOwkJCSMgcm90YXRlIHJlZ2lzdGVycwogICAgfSBlbHNlIHsKCSZwYWRkcQkoIm1tMyIsJEJ4Qyk7CQkJIyBUMSs9TWFqKGEsYixjKQoJICZtb3ZxCSgkQnhDLCRBKTsKCSAmYWRkCSgkSzUxMiw4KTsKCSZwYWRkcQkoIm1tMyIsIm1tNiIpOwkJCSMgVDErPVNpZ21hMChhKQoJICZtb3ZxCSgibW02IiwkR3NzZTIpCQkJaWYgKCRwaGFzZT09MCk7CSMgbG9hZCBnCgkjJm1vdnEJKCRBLCJtbTMiKTsJCQkjIGg9VDEKICAgIH0KfQoKc3ViIEJPRFlfMDBfMTVfeDg2IHsKCSNkZWZpbmUgU2lnbWExKHgpCShST1RSKCh4KSwxNCkgXiBST1RSKCh4KSwxOCkgIF4gUk9UUigoeCksNDEpKQoJIwlMTwkJbG8+PjE0XmhpPDwxOCBeIGxvPj4xOF5oaTw8MTQgXiBoaT4+OV5sbzw8MjMKCSMJSEkJCWhpPj4xNF5sbzw8MTggXiBoaT4+MThebG88PDE0IF4gbG8+PjleaGk8PDIzCgkmbW92CSgiZWN4IiwkRWxvKTsKCSZtb3YJKCJlZHgiLCRFaGkpOwoJJm1vdgkoImVzaSIsImVjeCIpOwoKCSZzaHIJKCJlY3giLDkpOwkjIGxvPj45CgkmbW92CSgiZWRpIiwiZWR4Iik7Cgkmc2hyCSgiZWR4Iiw5KTsJIyBoaT4+OQoJJm1vdgkoImVieCIsImVjeCIpOwoJJnNobAkoImVzaSIsMTQpOwkjIGxvPDwxNAoJJm1vdgkoImVheCIsImVkeCIpOwoJJnNobAkoImVkaSIsMTQpOwkjIGhpPDwxNAoJJnhvcgkoImVieCIsImVzaSIpOwoKCSZzaHIJKCJlY3giLDE0LTkpOwkjIGxvPj4xNAoJJnhvcgkoImVheCIsImVkaSIpOwoJJnNocgkoImVkeCIsMTQtOSk7CSMgaGk+PjE0CgkmeG9yCSgiZWF4IiwiZWN4Iik7Cgkmc2hsCSgiZXNpIiwxOC0xNCk7CSMgbG88PDE4CgkmeG9yCSgiZWJ4IiwiZWR4Iik7Cgkmc2hsCSgiZWRpIiwxOC0xNCk7CSMgaGk8PDE4CgkmeG9yCSgiZWJ4IiwiZXNpIik7CgoJJnNocgkoImVjeCIsMTgtMTQpOwkjIGxvPj4xOAoJJnhvcgkoImVheCIsImVkaSIpOwoJJnNocgkoImVkeCIsMTgtMTQpOwkjIGhpPj4xOAoJJnhvcgkoImVheCIsImVjeCIpOwoJJnNobAkoImVzaSIsMjMtMTgpOwkjIGxvPDwyMwoJJnhvcgkoImVieCIsImVkeCIpOwoJJnNobAkoImVkaSIsMjMtMTgpOwkjIGhpPDwyMwoJJnhvcgkoImVheCIsImVzaSIpOwoJJnhvcgkoImVieCIsImVkaSIpOwkJCSMgVDEgPSBTaWdtYTEoZSkKCgkmbW92CSgiZWN4IiwkRmxvKTsKCSZtb3YJKCJlZHgiLCRGaGkpOwoJJm1vdgkoImVzaSIsJEdsbyk7CgkmbW92CSgiZWRpIiwkR2hpKTsKCSAmYWRkCSgiZWF4IiwkSGxvKTsKCSAmYWRjCSgiZWJ4IiwkSGhpKTsJCQkjIFQxICs9IGgKCSZ4b3IJKCJlY3giLCJlc2kiKTsKCSZ4b3IJKCJlZHgiLCJlZGkiKTsKCSZhbmQJKCJlY3giLCRFbG8pOwoJJmFuZAkoImVkeCIsJEVoaSk7CgkgJmFkZAkoImVheCIsJkRXUCg4Kig5KzE1KSswLCJlc3AiKSk7CgkgJmFkYwkoImVieCIsJkRXUCg4Kig5KzE1KSs0LCJlc3AiKSk7CSMgVDEgKz0gWFswXQoJJnhvcgkoImVjeCIsImVzaSIpOwoJJnhvcgkoImVkeCIsImVkaSIpOwkJCSMgQ2goZSxmLGcpID0gKGZeZykmZSleZwoKCSZtb3YJKCJlc2kiLCZEV1AoMCwkSzUxMikpOwoJJm1vdgkoImVkaSIsJkRXUCg0LCRLNTEyKSk7CQkjIEtbaV0KCSZhZGQJKCJlYXgiLCJlY3giKTsKCSZhZGMJKCJlYngiLCJlZHgiKTsJCQkjIFQxICs9IENoKGUsZixnKQoJJm1vdgkoImVjeCIsJERsbyk7CgkmbW92CSgiZWR4IiwkRGhpKTsKCSZhZGQJKCJlYXgiLCJlc2kiKTsKCSZhZGMJKCJlYngiLCJlZGkiKTsJCQkjIFQxICs9IEtbaV0KCSZtb3YJKCRUbG8sImVheCIpOwoJJm1vdgkoJFRoaSwiZWJ4Iik7CQkJIyBwdXQgVDEgYXdheQoJJmFkZAkoImVheCIsImVjeCIpOwoJJmFkYwkoImVieCIsImVkeCIpOwkJCSMgZCArPSBUMQoKCSNkZWZpbmUgU2lnbWEwKHgpCShST1RSKCh4KSwyOCkgXiBST1RSKCh4KSwzNCkgXiBST1RSKCh4KSwzOSkpCgkjCUxPCQlsbz4+MjheaGk8PDQgIF4gaGk+PjJebG88PDMwIF4gaGk+PjdebG88PDI1CgkjCUhJCQloaT4+MjhebG88PDQgIF4gbG8+PjJeaGk8PDMwIF4gbG8+PjdeaGk8PDI1CgkmbW92CSgiZWN4IiwkQWxvKTsKCSZtb3YJKCJlZHgiLCRBaGkpOwoJJm1vdgkoJERsbywiZWF4Iik7CgkmbW92CSgkRGhpLCJlYngiKTsKCSZtb3YJKCJlc2kiLCJlY3giKTsKCgkmc2hyCSgiZWN4IiwyKTsJIyBsbz4+MgoJJm1vdgkoImVkaSIsImVkeCIpOwoJJnNocgkoImVkeCIsMik7CSMgaGk+PjIKCSZtb3YJKCJlYngiLCJlY3giKTsKCSZzaGwJKCJlc2kiLDQpOwkjIGxvPDw0CgkmbW92CSgiZWF4IiwiZWR4Iik7Cgkmc2hsCSgiZWRpIiw0KTsJIyBoaTw8NAoJJnhvcgkoImVieCIsImVzaSIpOwoKCSZzaHIJKCJlY3giLDctMik7CSMgbG8+PjcKCSZ4b3IJKCJlYXgiLCJlZGkiKTsKCSZzaHIJKCJlZHgiLDctMik7CSMgaGk+PjcKCSZ4b3IJKCJlYngiLCJlY3giKTsKCSZzaGwJKCJlc2kiLDI1LTQpOwkjIGxvPDwyNQoJJnhvcgkoImVheCIsImVkeCIpOwoJJnNobAkoImVkaSIsMjUtNCk7CSMgaGk8PDI1CgkmeG9yCSgiZWF4IiwiZXNpIik7CgoJJnNocgkoImVjeCIsMjgtNyk7CSMgbG8+PjI4CgkmeG9yCSgiZWJ4IiwiZWRpIik7Cgkmc2hyCSgiZWR4IiwyOC03KTsJIyBoaT4+MjgKCSZ4b3IJKCJlYXgiLCJlY3giKTsKCSZzaGwJKCJlc2kiLDMwLTI1KTsJIyBsbzw8MzAKCSZ4b3IJKCJlYngiLCJlZHgiKTsKCSZzaGwJKCJlZGkiLDMwLTI1KTsJIyBoaTw8MzAKCSZ4b3IJKCJlYXgiLCJlc2kiKTsKCSZ4b3IJKCJlYngiLCJlZGkiKTsJCQkjIFNpZ21hMChhKQoKCSZtb3YJKCJlY3giLCRBbG8pOwoJJm1vdgkoImVkeCIsJEFoaSk7CgkmbW92CSgiZXNpIiwkQmxvKTsKCSZtb3YJKCJlZGkiLCRCaGkpOwoJJmFkZAkoImVheCIsJFRsbyk7CgkmYWRjCSgiZWJ4IiwkVGhpKTsJCQkjIFQxID0gU2lnbWEwKGEpK1QxCgkmb3IJKCJlY3giLCJlc2kiKTsKCSZvcgkoImVkeCIsImVkaSIpOwoJJmFuZAkoImVjeCIsJENsbyk7CgkmYW5kCSgiZWR4IiwkQ2hpKTsKCSZhbmQJKCJlc2kiLCRBbG8pOwoJJmFuZAkoImVkaSIsJEFoaSk7Cgkmb3IJKCJlY3giLCJlc2kiKTsKCSZvcgkoImVkeCIsImVkaSIpOwkJCSMgTWFqKGEsYixjKSA9ICgoYXxiKSZjKXwoYSZiKQoKCSZhZGQJKCJlYXgiLCJlY3giKTsKCSZhZGMJKCJlYngiLCJlZHgiKTsJCQkjIFQxICs9IE1haihhLGIsYykKCSZtb3YJKCRUbG8sImVheCIpOwoJJm1vdgkoJFRoaSwiZWJ4Iik7CgoJJm1vdgkoJkxCKCJlZHgiKSwmQlAoMCwkSzUxMikpOwkjIHByZS1mZXRjaCBMU0Igb2YgKksKCSZzdWIJKCJlc3AiLDgpOwoJJmxlYQkoJEs1MTIsJkRXUCg4LCRLNTEyKSk7CQkjIEsrKwp9CgoKJmZ1bmN0aW9uX2JlZ2luKCJzaGE1MTJfYmxvY2tfZGF0YV9vcmRlciIpOwoJJm1vdgkoImVzaSIsd3BhcmFtKDApKTsJIyBjdHgKCSZtb3YJKCJlZGkiLHdwYXJhbSgxKSk7CSMgaW5wCgkmbW92CSgiZWF4Iix3cGFyYW0oMikpOwkjIG51bQoJJm1vdgkoImVieCIsImVzcCIpOwkJIyBzYXZlZCBzcAoKCSZjYWxsCSgmbGFiZWwoInBpY19wb2ludCIpKTsJIyBtYWtlIGl0IFBJQyEKJnNldF9sYWJlbCgicGljX3BvaW50Iik7CgkmYmxpbmRwb3AoJEs1MTIpOwoJJmxlYQkoJEs1MTIsJkRXUCgmbGFiZWwoIks1MTIiKS4iLSIuJmxhYmVsKCJwaWNfcG9pbnQiKSwkSzUxMikpOwoKCSZzdWIJKCJlc3AiLDE2KTsKCSZhbmQJKCJlc3AiLC02NCk7CgoJJnNobAkoImVheCIsNyk7CgkmYWRkCSgiZWF4IiwiZWRpIik7CgkmbW92CSgmRFdQKDAsImVzcCIpLCJlc2kiKTsJIyBjdHgKCSZtb3YJKCZEV1AoNCwiZXNwIiksImVkaSIpOwkjIGlucAoJJm1vdgkoJkRXUCg4LCJlc3AiKSwiZWF4Iik7CSMgaW5wK251bSoxMjgKCSZtb3YJKCZEV1AoMTIsImVzcCIpLCJlYngiKTsJIyBzYXZlZCBzcAoKaWYgKCRzc2UyKSB7CgkmcGljbWV1cCgiZWR4IiwiT1BFTlNTTF9pYTMyY2FwX1AiLCRLNTEyLCZsYWJlbCgiSzUxMiIpKTsKCSZtb3YJKCJlY3giLCZEV1AoMCwiZWR4IikpOwoJJnRlc3QJKCJlY3giLDE8PDI2KTsKCSZqegkoJmxhYmVsKCJsb29wX3g4NiIpKTsKCgkmbW92CSgiZWR4IiwmRFdQKDQsImVkeCIpKTsKCgkjIGxvYWQgY3R4LT5oWzAtN10KCSZtb3ZxCSgkQSwmUVdQKDAsImVzaSIpKTsKCSAmYW5kCSgiZWN4IiwxPDwyNCk7CQkjIFhNTSByZWdpc3RlcnMgYXZhaWxhYmlsaXR5CgkmbW92cQkoIm1tMSIsJlFXUCg4LCJlc2kiKSk7CgkgJmFuZAkoImVkeCIsMTw8OSk7CQkjIFNTU0UzIGJpdAoJJm1vdnEJKCRCeEMsJlFXUCgxNiwiZXNpIikpOwoJICZvcgkoImVjeCIsImVkeCIpOwoJJm1vdnEJKCJtbTMiLCZRV1AoMjQsImVzaSIpKTsKCSZtb3ZxCSgkRSwmUVdQKDMyLCJlc2kiKSk7CgkmbW92cQkoIm1tNSIsJlFXUCg0MCwiZXNpIikpOwoJJm1vdnEJKCJtbTYiLCZRV1AoNDgsImVzaSIpKTsKCSZtb3ZxCSgibW03IiwmUVdQKDU2LCJlc2kiKSk7CgkmY21wCSgiZWN4IiwxPDwyNHwxPDw5KTsKCSZqZQkoJmxhYmVsKCJTU1NFMyIpKTsKCSZzdWIJKCJlc3AiLDgqMTApOwoJJmptcAkoJmxhYmVsKCJsb29wX3NzZTIiKSk7Cgomc2V0X2xhYmVsKCJsb29wX3NzZTIiLDE2KTsKCSMmbW92cQkoJEFzc2UyLCRBKTsKCSZtb3ZxCSgkQnNzZTIsIm1tMSIpOwoJJm1vdnEJKCRDc3NlMiwkQnhDKTsKCSZtb3ZxCSgkRHNzZTIsIm1tMyIpOwoJIyZtb3ZxCSgkRXNzZTIsJEUpOwoJJm1vdnEJKCRGc3NlMiwibW01Iik7CgkmbW92cQkoJEdzc2UyLCJtbTYiKTsKCSZweG9yCSgkQnhDLCJtbTEiKTsJCQkjIG1hZ2ljCgkmbW92cQkoJEhzc2UyLCJtbTciKTsKCSZtb3ZxCSgibW0zIiwkQSk7CQkJIyBtYWdpYwoKCSZtb3YJKCJlYXgiLCZEV1AoMCwiZWRpIikpOwoJJm1vdgkoImVieCIsJkRXUCg0LCJlZGkiKSk7CgkmYWRkCSgiZWRpIiw4KTsKCSZtb3YJKCJlZHgiLDE1KTsJCQkjIGNvdW50ZXIKCSZic3dhcAkoImVheCIpOwoJJmJzd2FwCSgiZWJ4Iik7Cgkmam1wCSgmbGFiZWwoIjAwXzE0X3NzZTIiKSk7Cgomc2V0X2xhYmVsKCIwMF8xNF9zc2UyIiwxNik7CgkmbW92ZAkoIm1tMSIsImVheCIpOwoJJm1vdgkoImVheCIsJkRXUCgwLCJlZGkiKSk7CgkmbW92ZAkoIm1tNyIsImVieCIpOwoJJm1vdgkoImVieCIsJkRXUCg0LCJlZGkiKSk7CgkmYWRkCSgiZWRpIiw4KTsKCSZic3dhcAkoImVheCIpOwoJJmJzd2FwCSgiZWJ4Iik7CgkmcHVucGNrbGRxKCJtbTciLCJtbTEiKTsKCgkmQk9EWV8wMF8xNV9zc2UyKCk7CgoJJmRlYwkoImVkeCIpOwoJJmpuegkoJmxhYmVsKCIwMF8xNF9zc2UyIikpOwoKCSZtb3ZkCSgibW0xIiwiZWF4Iik7CgkmbW92ZAkoIm1tNyIsImVieCIpOwoJJnB1bnBja2xkcSgibW03IiwibW0xIik7CgoJJkJPRFlfMDBfMTVfc3NlMigxKTsKCgkmcHhvcgkoJEEsJEEpOwkJCSMgQSBpcyBpbiAlbW0zCgkmbW92CSgiZWR4IiwzMik7CQkJIyBjb3VudGVyCgkmam1wCSgmbGFiZWwoIjE2Xzc5X3NzZTIiKSk7Cgomc2V0X2xhYmVsKCIxNl83OV9zc2UyIiwxNik7CiAgICBmb3IgKCRqPTA7JGo8MjskaisrKSB7CQkJIyAyeCB1bnJvbGwKCSMmbW92cQkoIm1tNyIsJlFXUCg4Kig5KzE2LTEpLCJlc3AiKSk7CSMgcHJlZmV0Y2hlZCBpbiBCT0RZXzAwXzE1IAoJJm1vdnEJKCJtbTUiLCZRV1AoOCooOSsxNi0xNCksImVzcCIpKTsKCSZtb3ZxCSgibW0xIiwibW03Iik7CgkmcHNybHEJKCJtbTciLDEpOwoJICZtb3ZxCSgibW02IiwibW01Iik7CgkgJnBzcmxxCSgibW01Iiw2KTsKCSZwc2xscQkoIm1tMSIsNTYpOwoJICZwYWRkcQkoJEEsIm1tMyIpOwkJCSMgZnJvbSBCT0RZXzAwXzE1CgkgJm1vdnEJKCJtbTMiLCJtbTciKTsKCSZwc3JscQkoIm1tNyIsNy0xKTsKCSAmcHhvcgkoIm1tMyIsIm1tMSIpOwoJICZwc2xscQkoIm1tMSIsNjMtNTYpOwoJJnB4b3IJKCJtbTMiLCJtbTciKTsKCSAmcHNybHEJKCJtbTciLDgtNyk7CgkmcHhvcgkoIm1tMyIsIm1tMSIpOwoJICZtb3ZxCSgibW0xIiwibW01Iik7CgkgJnBzcmxxCSgibW01IiwxOS02KTsKCSZweG9yCSgibW03IiwibW0zIik7CQkJIyBzaWdtYTAKCgkgJnBzbGxxCSgibW02IiwzKTsKCSAmcHhvcgkoIm1tMSIsIm1tNSIpOwoJJnBhZGRxCSgibW03IiwmUVdQKDgqKDkrMTYpLCJlc3AiKSk7CgkgJnB4b3IJKCJtbTEiLCJtbTYiKTsKCSAmcHNybHEJKCJtbTUiLDYxLTE5KTsKCSZwYWRkcQkoIm1tNyIsJlFXUCg4Kig5KzE2LTkpLCJlc3AiKSk7CgkgJnB4b3IJKCJtbTEiLCJtbTUiKTsKCSAmcHNsbHEJKCJtbTYiLDQ1LTMpOwoJJm1vdnEJKCJtbTUiLCRGc3NlMik7CQkJIyBsb2FkIGYKCSAmcHhvcgkoIm1tMSIsIm1tNiIpOwkJCSMgc2lnbWExCgkmbW92cQkoIm1tNiIsJEdzc2UyKTsJCQkjIGxvYWQgZwoKCSZwYWRkcQkoIm1tNyIsIm1tMSIpOwkJCSMgWFtpXQoJIyZtb3ZxCSgmUVdQKDgqOSwiZXNwIiksIm1tNyIpOwkjIG1vdmVkIHRvIEJPRFlfMDBfMTUKCgkmQk9EWV8wMF8xNV9zc2UyKDIpOwogICAgfQoJJmRlYwkoImVkeCIpOwoJJmpuegkoJmxhYmVsKCIxNl83OV9zc2UyIikpOwoKCSMmbW92cQkoJEEsJEFzc2UyKTsKCSZwYWRkcQkoJEEsIm1tMyIpOwkJCSMgZnJvbSBCT0RZXzAwXzE1CgkmbW92cQkoIm1tMSIsJEJzc2UyKTsKCSMmbW92cQkoJEJ4QywkQ3NzZTIpOwoJJm1vdnEJKCJtbTMiLCREc3NlMik7CgkjJm1vdnEJKCRFLCRFc3NlMik7CgkmbW92cQkoIm1tNSIsJEZzc2UyKTsKCSZtb3ZxCSgibW02IiwkR3NzZTIpOwoJJm1vdnEJKCJtbTciLCRIc3NlMik7CgoJJnB4b3IJKCRCeEMsIm1tMSIpOwkJCSMgZGUtbWFnaWMKCSZwYWRkcQkoJEEsJlFXUCgwLCJlc2kiKSk7CgkmcGFkZHEJKCJtbTEiLCZRV1AoOCwiZXNpIikpOwoJJnBhZGRxCSgkQnhDLCZRV1AoMTYsImVzaSIpKTsKCSZwYWRkcQkoIm1tMyIsJlFXUCgyNCwiZXNpIikpOwoJJnBhZGRxCSgkRSwmUVdQKDMyLCJlc2kiKSk7CgkmcGFkZHEJKCJtbTUiLCZRV1AoNDAsImVzaSIpKTsKCSZwYWRkcQkoIm1tNiIsJlFXUCg0OCwiZXNpIikpOwoJJnBhZGRxCSgibW03IiwmUVdQKDU2LCJlc2kiKSk7CgoJJm1vdgkoImVheCIsOCo4MCk7CgkmbW92cQkoJlFXUCgwLCJlc2kiKSwkQSk7CgkmbW92cQkoJlFXUCg4LCJlc2kiKSwibW0xIik7CgkmbW92cQkoJlFXUCgxNiwiZXNpIiksJEJ4Qyk7CgkmbW92cQkoJlFXUCgyNCwiZXNpIiksIm1tMyIpOwoJJm1vdnEJKCZRV1AoMzIsImVzaSIpLCRFKTsKCSZtb3ZxCSgmUVdQKDQwLCJlc2kiKSwibW01Iik7CgkmbW92cQkoJlFXUCg0OCwiZXNpIiksIm1tNiIpOwoJJm1vdnEJKCZRV1AoNTYsImVzaSIpLCJtbTciKTsKCgkmbGVhCSgiZXNwIiwmRFdQKDAsImVzcCIsImVheCIpKTsJIyBkZXN0cm95IGZyYW1lCgkmc3ViCSgkSzUxMiwiZWF4Iik7CQkJIyByZXdpbmQgSwoKCSZjbXAJKCJlZGkiLCZEV1AoOCoxMCs4LCJlc3AiKSk7CSMgYXJlIHdlIGRvbmUgeWV0PwoJJmpiCSgmbGFiZWwoImxvb3Bfc3NlMiIpKTsKCgkmbW92CSgiZXNwIiwmRFdQKDgqMTArMTIsImVzcCIpKTsJIyByZXN0b3JlIHNwCgkmZW1tcwkoKTsKJmZ1bmN0aW9uX2VuZF9BKCk7Cgomc2V0X2xhYmVsKCJTU1NFMyIsMzIpOwp7IG15ICgkY250LCRmcmFtZSk9KCJlY3giLCJlZHgiKTsKICBteSBAWD1tYXAoInhtbSRfIiwoMC4uNykpOwogIG15ICRqOwogIG15ICRpPTA7CgoJJmxlYQkoJGZyYW1lLCZEV1AoLTY0LCJlc3AiKSk7Cgkmc3ViCSgiZXNwIiwyNTYpOwoKCSMgZml4ZWQgc3RhY2sgZnJhbWUgbGF5b3V0CgkjCgkjICswCUEgQiBDIEQgRSBGIEcgSAkJIyBiYWNraW5nIHN0b3JlCgkjICs2NAlYWzBdK0tbaV0gLi4gWFsxNV0rS1tpXQkjIFhNTS0+TU0geGZlciBhcmVhCgkjICsxOTIJCQkJIyBYTU0gb2ZmLWxvYWQgcmluZyBidWZmZXIKCSMgKzI1NgkJCQkjIHNhdmVkIHBhcmFtZXRlcnMKCgkmbW92ZHFhCQkoQFhbMV0sJlFXUCg4MCo4LCRLNTEyKSk7CQkjIGJ5dGUgc3dhcCBtYXNrCgkmbW92ZHF1CQkoQFhbMF0sJlFXUCgwLCJlZGkiKSk7CgkmcHNodWZiCQkoQFhbMF0sQFhbMV0pOwogICAgZm9yICgkaj0wOyRqPDg7JGorKykgewoJJm1vdmRxYQkJKCZRV1AoMTYqKCgkai0xKSU0KSwkZnJhbWUpLEBYWzNdKQlpZiAoJGo+NCk7ICMgb2ZmLWxvYWQKCSZtb3ZkcWEJCShAWFszXSwmUVdQKDE2KigkaiU4KSwkSzUxMikpOwoJJm1vdmRxYQkJKEBYWzJdLEBYWzFdKQkJCQlpZiAoJGo8Nyk7ICMgcGVycGV0dWF0ZSBieXRlIHN3YXAgbWFzawoJJm1vdmRxdQkJKEBYWzFdLCZRV1AoMTYqKCRqKzEpLCJlZGkiKSkJCWlmICgkajw3KTsgIyBuZXh0IGlucHV0CgkmbW92ZHFhCQkoQFhbMV0sJlFXUCgxNiooKCRqKzEpJTQpLCRmcmFtZSkpCWlmICgkaj09Nyk7IyByZXN0b3JlIEBYWzBdCgkmcGFkZHEJCShAWFszXSxAWFswXSk7CgkmcHNodWZiCQkoQFhbMV0sQFhbMl0pCQkJCWlmICgkajw3KTsKCSZtb3ZkcWEJCSgmUVdQKDE2KigkaiU4KS0xMjgsJGZyYW1lKSxAWFszXSk7CSMgeGZlciBYW2ldK0tbaV0KCglwdXNoKEBYLHNoaWZ0KEBYKSk7CQkJCQkjIHJvdGF0ZShAWCkKICAgIH0KCSMmam1wCQkoJmxhYmVsKCJsb29wX3Nzc2UzIikpOwoJJm5vcAkJKCk7Cgomc2V0X2xhYmVsKCJsb29wX3Nzc2UzIiwzMik7CgkmbW92ZHFhCQkoQFhbMl0sJlFXUCgxNiooKCRqKzEpJTQpLCRmcmFtZSkpOwkjIHByZS1yZXN0b3JlIEBYWzFdCgkmbW92ZHFhCQkoJlFXUCgxNiooKCRqLTEpJTQpLCRmcmFtZSksQFhbM10pOwkjIG9mZi1sb2FkIEBYWzNdCgkmbGVhCQkoJEs1MTIsJkRXUCgxNio4LCRLNTEyKSk7CgoJIyZtb3ZxCSgkQXNzZTIsJEEpOwkJCSMgb2ZmLWxvYWQgQS1ICgkmbW92cQkoJEJzc2UyLCJtbTEiKTsKCSAmbW92CSgiZWJ4IiwiZWRpIik7CgkmbW92cQkoJENzc2UyLCRCeEMpOwoJICZsZWEJKCJlZGkiLCZEV1AoMTI4LCJlZGkiKSk7CSMgYWR2YW5jZSBpbnB1dAoJJm1vdnEJKCREc3NlMiwibW0zIik7CgkgJmNtcAkoImVkaSIsImVheCIpOwoJIyZtb3ZxCSgkRXNzZTIsJEUpOwoJJm1vdnEJKCRGc3NlMiwibW01Iik7CgkgJmNtb3ZiCSgiZWJ4IiwiZWRpIik7CgkmbW92cQkoJEdzc2UyLCJtbTYiKTsKCSAmbW92CSgiZWN4Iiw0KTsJCQkjIGxvb3AgY291bnRlcgoJJnB4b3IJKCRCeEMsIm1tMSIpOwkJCSMgbWFnaWMKCSZtb3ZxCSgkSHNzZTIsIm1tNyIpOwoJJnB4b3IJKCJtbTMiLCJtbTMiKTsJCQkjIG1hZ2ljCgoJJmptcAkJKCZsYWJlbCgiMDBfNDdfc3NzZTMiKSk7CgpzdWIgQk9EWV8wMF8xNV9zc3NlMyB7CQkjICJwaGFzZS1sZXNzIiBjb3B5IG9mIEJPRFlfMDBfMTVfc3NlMgoJKAoJJyZtb3ZxCSgibW0xIiwkRSknLAkJCQkjICVtbTEgaXMgc2xpZGluZyByaWdodAoJJyZtb3ZxCSgibW03IiwmUVdQKCgoLTgqJGkpJTEyOCktMTI4LCRmcmFtZSkpJywjIFhbaV0rS1tpXQoJICcmcHhvcgkoIm1tNSIsIm1tNiIpJywJCQkJIyBmXj1nCgknJnBzcmxxCSgibW0xIiwxNCknLAoJICcmbW92cQkoJlFXUCg4KigkaSs0KSU2NCwiZXNwIiksJEUpJywJCSMgbW9kdWxvLXNjaGVkdWxlZCBzYXZlIGUKCSAnJnBhbmQJKCJtbTUiLCRFKScsCQkJCSMgZiY9ZQoJJyZwc2xscQkoJEUsMjMpJywJCQkJIyAkRSBpcyBzbGlkaW5nIGxlZnQKCScmcGFkZHEJKCRBLCJtbTMiKScsCQkJCSMgW2grPU1haihhLGIsYyldCgknJm1vdnEJKCJtbTMiLCJtbTEiKScsCQkJCSMgJW1tMyBpcyBUMQoJICcmcHNybHEoIm1tMSIsNCknLAoJICcmcHhvcgkoIm1tNSIsIm1tNiIpJywJCQkJIyBDaChlLGYsZykKCScmcHhvcgkoIm1tMyIsJEUpJywKCSAnJnBzbGxxKCRFLDIzKScsCgknJnB4b3IJKCJtbTMiLCJtbTEiKScsCgkgJyZtb3ZxCSgmUVdQKDgqJGklNjQsImVzcCIpLCRBKScsCQkjIG1vZHVsby1zY2hlZHVsZWQgc2F2ZSBhCgkgJyZwYWRkcSgibW03IiwibW01IiknLAkJCQkjIFhbaV0rPUNoKGUsZixnKQoJJyZweG9yCSgibW0zIiwkRSknLAoJICcmcHNybHEoIm1tMSIsMjMpJywKCSAnJnBhZGRxKCJtbTciLCZRV1AoOCooJGkrNyklNjQsImVzcCIpKScsCSMgWFtpXSs9aAoJJyZweG9yCSgibW0zIiwibW0xIiknLAoJICcmcHNsbHEoJEUsNCknLAoJJyZweG9yCSgibW0zIiwkRSknLAkJCQkjIFQxPVNpZ21hMV81MTIoZSkKCgkgJyZtb3ZxCSgkRSwmUVdQKDgqKCRpKzMpJTY0LCJlc3AiKSknLAkJIyBlID0gbG9hZCBkLCBlIGluIG5leHQgcm91bmQKCScmcGFkZHEJKCJtbTMiLCJtbTciKScsCQkJCSMgVDErPVhbaV0KCSAnJm1vdnEJKCJtbTUiLCRBKScsCQkJCSMgJW1tNSBpcyBzbGlkaW5nIHJpZ2h0CgkgJyZwc3JscSgibW01IiwyOCknLAoJJyZwYWRkcQkoJEUsIm1tMyIpJywJCQkJIyBkICs9IFQxCgkgJyZtb3ZxCSgibW02IiwkQSknLAkJCQkjICVtbTYgaXMgc2xpZGluZyBsZWZ0CgkgJyZtb3ZxCSgibW03IiwibW01IiknLAoJICcmcHNsbHEoIm1tNiIsMjUpJywKCScmbW92cQkoIm1tMSIsJlFXUCg4KigkaSsxKSU2NCwiZXNwIikpJywJIyBsb2FkIGIKCSAnJnBzcmxxKCJtbTUiLDYpJywKCSAnJnB4b3IJKCJtbTciLCJtbTYiKScsCgkgJyZwc2xscSgibW02Iiw1KScsCgkgJyZweG9yCSgibW03IiwibW01IiknLAoJJyZweG9yCSgkQSwibW0xIiknLAkJCQkjIGFeYiwgYl5jIGluIG5leHQgcm91bmQKCSAnJnBzcmxxKCJtbTUiLDUpJywKCSAnJnB4b3IJKCJtbTciLCJtbTYiKScsCgknJnBhbmQJKCRCeEMsJEEpJywJCQkJIyAoYl5jKSYoYV5iKQoJICcmcHNsbHEoIm1tNiIsNiknLAoJICcmcHhvcgkoIm1tNyIsIm1tNSIpJywKCScmcHhvcgkoJEJ4QywibW0xIiknLAkJCQkjIFtoPV1NYWooYSxiLGMpCgkgJyZweG9yCSgibW02IiwibW03IiknLAkJCQkjIFNpZ21hMF81MTIoYSkKCSAnJm1vdnEJKCJtbTUiLCZRV1AoOCooJGkrNS0xKSU2NCwiZXNwIikpJywJIyBwcmUtbG9hZCBmCgknJnBhZGRxCSgkQnhDLCJtbTYiKScsCQkJCSMgaCs9U2lnbWEwKGEpCgkgJyZtb3ZxCSgibW02IiwmUVdQKDgqKCRpKzYtMSklNjQsImVzcCIpKScsCSMgcHJlLWxvYWQgZwoKCScoJEEsJEJ4QykgPSAoJEJ4QywkQSk7ICRpLS07JwoJKTsKfQoKJnNldF9sYWJlbCgiMDBfNDdfc3NzZTMiLDMyKTsKCiAgICBmb3IoOyRqPDE2OyRqKyspIHsKCW15ICgkdDAsJHQyLCR0MSk9QFhbMi4uNF07CglteSBAaW5zbnMgPSAoJkJPRFlfMDBfMTVfc3NzZTMoKSwmQk9EWV8wMF8xNV9zc3NlMygpKTsKCgkmbW92ZHFhCQkoJHQyLEBYWzVdKTsKCSZtb3ZkcWEJCShAWFsxXSwkdDApOwkJCSMgcmVzdG9yZSBAWFsxXQoJJnBhbGlnbnIJKCR0MCxAWFswXSw4KTsJCQkjIFhbMS4uMl0KCSZtb3ZkcWEJCSgmUVdQKDE2KigkaiU0KSwkZnJhbWUpLEBYWzRdKTsJIyBvZmYtbG9hZCBAWFs0XQoJICZwYWxpZ25yCSgkdDIsQFhbNF0sOCk7CQkJIyBYWzkuLjEwXQoKCSZtb3ZkcWEJCSgkdDEsJHQwKTsKCSZwc3JscQkJKCR0MCw3KTsKCSAmcGFkZHEJCShAWFswXSwkdDIpOwkJCSMgWFswLi4xXSArPSBYWzkuLjEwXQoJJm1vdmRxYQkJKCR0MiwkdDEpOwoJJnBzcmxxCQkoJHQxLDEpOwoJJnBzbGxxCQkoJHQyLDY0LTgpOwoJJnB4b3IJCSgkdDAsJHQxKTsKCSZwc3JscQkJKCR0MSw4LTEpOwoJJnB4b3IJCSgkdDAsJHQyKTsKCSZwc2xscQkJKCR0Miw4LTEpOwoJJnB4b3IJCSgkdDAsJHQxKTsKCSAmbW92ZHFhCSgkdDEsQFhbN10pOwoJJnB4b3IJCSgkdDAsJHQyKTsJCQkjIHNpZ21hMChYWzEuLjJdKQoJICZtb3ZkcWEJKCR0MixAWFs3XSk7CgkgJnBzcmxxCQkoJHQxLDYpOwoJJnBhZGRxCQkoQFhbMF0sJHQwKTsJCQkjIFhbMC4uMV0gKz0gc2lnbWEwKFhbMS4uMl0pCgoJJm1vdmRxYQkJKCR0MCxAWFs3XSk7CgkmcHNybHEJCSgkdDIsMTkpOwoJJnBzbGxxCQkoJHQwLDY0LTYxKTsKCSZweG9yCQkoJHQxLCR0Mik7CgkmcHNybHEJCSgkdDIsNjEtMTkpOwoJJnB4b3IJCSgkdDEsJHQwKTsKCSZwc2xscQkJKCR0MCw2MS0xOSk7CgkmcHhvcgkJKCR0MSwkdDIpOwoJJm1vdmRxYQkJKCR0MiwmUVdQKDE2KigoJGorMiklNCksJGZyYW1lKSk7IyBwcmUtcmVzdG9yZSBAWFsxXQoJJnB4b3IJCSgkdDEsJHQwKTsJCQkjIHNpZ21hMChYWzEuLjJdKQoJJm1vdmRxYQkJKCR0MCwmUVdQKDE2KigkaiU4KSwkSzUxMikpOwoJIGV2YWwoc2hpZnQoQGluc25zKSk7CgkmcGFkZHEJCShAWFswXSwkdDEpOwkJCSMgWFswLi4xXSArPSBzaWdtYTAoWFsxNC4uMTVdKQoJIGV2YWwoc2hpZnQoQGluc25zKSk7CgkgZXZhbChzaGlmdChAaW5zbnMpKTsKCSBldmFsKHNoaWZ0KEBpbnNucykpOwoJIGV2YWwoc2hpZnQoQGluc25zKSk7CgkmcGFkZHEJCSgkdDAsQFhbMF0pOwoJIGZvcmVhY2goQGluc25zKSB7IGV2YWw7IH0KCSZtb3ZkcWEJCSgmUVdQKDE2KigkaiU4KS0xMjgsJGZyYW1lKSwkdDApOyMgeGZlciBYW2ldK0tbaV0KCglwdXNoKEBYLHNoaWZ0KEBYKSk7CQkJCSMgcm90YXRlKEBYKQogICAgfQoJJmxlYQkJKCRLNTEyLCZEV1AoMTYqOCwkSzUxMikpOwoJJmRlYwkJKCJlY3giKTsKCSZqbnoJCSgmbGFiZWwoIjAwXzQ3X3Nzc2UzIikpOwoKCSZtb3ZkcWEJCShAWFsxXSwmUVdQKDAsJEs1MTIpKTsJCSMgYnl0ZSBzd2FwIG1hc2sKCSZsZWEJCSgkSzUxMiwmRFdQKC04MCo4LCRLNTEyKSk7CSMgcmV3aW5kCgkmbW92ZHF1CQkoQFhbMF0sJlFXUCgwLCJlYngiKSk7CgkmcHNodWZiCQkoQFhbMF0sQFhbMV0pOwoKICAgIGZvciAoJGo9MDskajw4OyRqKyspIHsJIyBsb2FkIG5leHQgb3Igc2FtZSBibG9jawoJbXkgQGluc25zID0gKCZCT0RZXzAwXzE1X3Nzc2UzKCksJkJPRFlfMDBfMTVfc3NzZTMoKSk7CgoJJm1vdmRxYQkJKCZRV1AoMTYqKCgkai0xKSU0KSwkZnJhbWUpLEBYWzNdKQlpZiAoJGo+NCk7ICMgb2ZmLWxvYWQKCSZtb3ZkcWEJCShAWFszXSwmUVdQKDE2KigkaiU4KSwkSzUxMikpOwoJJm1vdmRxYQkJKEBYWzJdLEBYWzFdKQkJCQlpZiAoJGo8Nyk7ICMgcGVycGV0dWF0ZSBieXRlIHN3YXAgbWFzawoJJm1vdmRxdQkJKEBYWzFdLCZRV1AoMTYqKCRqKzEpLCJlYngiKSkJCWlmICgkajw3KTsgIyBuZXh0IGlucHV0CgkmbW92ZHFhCQkoQFhbMV0sJlFXUCgxNiooKCRqKzEpJTQpLCRmcmFtZSkpCWlmICgkaj09Nyk7IyByZXN0b3JlIEBYWzBdCgkmcGFkZHEJCShAWFszXSxAWFswXSk7CgkmcHNodWZiCQkoQFhbMV0sQFhbMl0pCQkJCWlmICgkajw3KTsKCSBmb3JlYWNoKEBpbnNucykgeyBldmFsOyB9CgkmbW92ZHFhCQkoJlFXUCgxNiooJGolOCktMTI4LCRmcmFtZSksQFhbM10pOyMgeGZlciBYW2ldK0tbaV0KCglwdXNoKEBYLHNoaWZ0KEBYKSk7CQkJCSMgcm90YXRlKEBYKQogICAgfQoKCSMmbW92cQkoJEEsJEFzc2UyKTsJCQkjIGxvYWQgQS1ICgkmbW92cQkoIm1tMSIsJEJzc2UyKTsKCSZwYWRkcQkoJEEsIm1tMyIpOwkJCSMgZnJvbSBCT0RZXzAwXzE1CgkjJm1vdnEJKCRCeEMsJENzc2UyKTsKCSZtb3ZxCSgibW0zIiwkRHNzZTIpOwoJIyZtb3ZxCSgkRSwkRXNzZTIpOwoJIyZtb3ZxCSgibW01IiwkRnNzZTIpOwoJIyZtb3ZxCSgibW02IiwkR3NzZTIpOwoJJm1vdnEJKCJtbTciLCRIc3NlMik7CgoJJnB4b3IJKCRCeEMsIm1tMSIpOwkJCSMgZGUtbWFnaWMKCSZwYWRkcQkoJEEsJlFXUCgwLCJlc2kiKSk7CgkmcGFkZHEJKCJtbTEiLCZRV1AoOCwiZXNpIikpOwoJJnBhZGRxCSgkQnhDLCZRV1AoMTYsImVzaSIpKTsKCSZwYWRkcQkoIm1tMyIsJlFXUCgyNCwiZXNpIikpOwoJJnBhZGRxCSgkRSwmUVdQKDMyLCJlc2kiKSk7CgkmcGFkZHEJKCJtbTUiLCZRV1AoNDAsImVzaSIpKTsKCSZwYWRkcQkoIm1tNiIsJlFXUCg0OCwiZXNpIikpOwoJJnBhZGRxCSgibW03IiwmUVdQKDU2LCJlc2kiKSk7CgoJJm1vdnEJKCZRV1AoMCwiZXNpIiksJEEpOwoJJm1vdnEJKCZRV1AoOCwiZXNpIiksIm1tMSIpOwoJJm1vdnEJKCZRV1AoMTYsImVzaSIpLCRCeEMpOwoJJm1vdnEJKCZRV1AoMjQsImVzaSIpLCJtbTMiKTsKCSZtb3ZxCSgmUVdQKDMyLCJlc2kiKSwkRSk7CgkmbW92cQkoJlFXUCg0MCwiZXNpIiksIm1tNSIpOwoJJm1vdnEJKCZRV1AoNDgsImVzaSIpLCJtbTYiKTsKCSZtb3ZxCSgmUVdQKDU2LCJlc2kiKSwibW03Iik7CgogICAgCSZjbXAJKCJlZGkiLCJlYXgiKQkJCSMgYXJlIHdlIGRvbmUgeWV0PwoJJmpiCSgmbGFiZWwoImxvb3Bfc3NzZTMiKSk7CgoJJm1vdgkoImVzcCIsJkRXUCg2NCsxMiwkZnJhbWUpKTsJIyByZXN0b3JlIHNwCgkmZW1tcwkoKTsKfQomZnVuY3Rpb25fZW5kX0EoKTsKfQomc2V0X2xhYmVsKCJsb29wX3g4NiIsMTYpOwogICAgIyBjb3B5IGlucHV0IGJsb2NrIHRvIHN0YWNrIHJldmVyc2luZyBieXRlIGFuZCBxd29yZCBvcmRlcgogICAgZm9yICgkaT0wOyRpPDg7JGkrKykgewoJJm1vdgkoImVheCIsJkRXUCgkaSoxNiswLCJlZGkiKSk7CgkmbW92CSgiZWJ4IiwmRFdQKCRpKjE2KzQsImVkaSIpKTsKCSZtb3YJKCJlY3giLCZEV1AoJGkqMTYrOCwiZWRpIikpOwoJJm1vdgkoImVkeCIsJkRXUCgkaSoxNisxMiwiZWRpIikpOwoJJmJzd2FwCSgiZWF4Iik7CgkmYnN3YXAJKCJlYngiKTsKCSZic3dhcAkoImVjeCIpOwoJJmJzd2FwCSgiZWR4Iik7CgkmcHVzaAkoImVheCIpOwoJJnB1c2gJKCJlYngiKTsKCSZwdXNoCSgiZWN4Iik7CgkmcHVzaAkoImVkeCIpOwogICAgfQoJJmFkZAkoImVkaSIsMTI4KTsKCSZzdWIJKCJlc3AiLDkqOCk7CQkjIHBsYWNlIGZvciBULEEsQixDLEQsRSxGLEcsSAoJJm1vdgkoJkRXUCg4Kig5KzE2KSs0LCJlc3AiKSwiZWRpIik7CgoJIyBjb3B5IGN0eC0+aFswLTddIHRvIEEsQixDLEQsRSxGLEcsSCBvbiBzdGFjawoJJmxlYQkoImVkaSIsJkRXUCg4LCJlc3AiKSk7CgkmbW92CSgiZWN4IiwxNik7CgkmZGF0YV93b3JkKDB4QTVGM0Y2ODkpOwkJIyByZXAgbW92c2QKCiZzZXRfbGFiZWwoIjAwXzE1X3g4NiIsMTYpOwoJJkJPRFlfMDBfMTVfeDg2KCk7CgoJJmNtcAkoJkxCKCJlZHgiKSwweDk0KTsKCSZqbmUJKCZsYWJlbCgiMDBfMTVfeDg2IikpOwoKJnNldF9sYWJlbCgiMTZfNzlfeDg2IiwxNik7CgkjZGVmaW5lIHNpZ21hMCh4KQkoUk9UUigoeCksMSkgIF4gUk9UUigoeCksOCkgIF4gKCh4KT4+NykpCgkjCUxPCQlsbz4+MV5oaTw8MzEgIF4gbG8+PjheaGk8PDI0IF4gbG8+PjdeaGk8PDI1CgkjCUhJCQloaT4+MV5sbzw8MzEgIF4gaGk+PjhebG88PDI0IF4gaGk+PjcKCSZtb3YJKCJlY3giLCZEV1AoOCooOSsxNSsxNi0xKSswLCJlc3AiKSk7CgkmbW92CSgiZWR4IiwmRFdQKDgqKDkrMTUrMTYtMSkrNCwiZXNwIikpOwoJJm1vdgkoImVzaSIsImVjeCIpOwoKCSZzaHIJKCJlY3giLDEpOwkjIGxvPj4xCgkmbW92CSgiZWRpIiwiZWR4Iik7Cgkmc2hyCSgiZWR4IiwxKTsJIyBoaT4+MQoJJm1vdgkoImVheCIsImVjeCIpOwoJJnNobAkoImVzaSIsMjQpOwkjIGxvPDwyNAoJJm1vdgkoImVieCIsImVkeCIpOwoJJnNobAkoImVkaSIsMjQpOwkjIGhpPDwyNAoJJnhvcgkoImVieCIsImVzaSIpOwoKCSZzaHIJKCJlY3giLDctMSk7CSMgbG8+PjcKCSZ4b3IJKCJlYXgiLCJlZGkiKTsKCSZzaHIJKCJlZHgiLDctMSk7CSMgaGk+PjcKCSZ4b3IJKCJlYXgiLCJlY3giKTsKCSZzaGwJKCJlc2kiLDMxLTI0KTsJIyBsbzw8MzEKCSZ4b3IJKCJlYngiLCJlZHgiKTsKCSZzaGwJKCJlZGkiLDI1LTI0KTsJIyBoaTw8MjUKCSZ4b3IJKCJlYngiLCJlc2kiKTsKCgkmc2hyCSgiZWN4Iiw4LTcpOwkjIGxvPj44CgkmeG9yCSgiZWF4IiwiZWRpIik7Cgkmc2hyCSgiZWR4Iiw4LTcpOwkjIGhpPj44CgkmeG9yCSgiZWF4IiwiZWN4Iik7Cgkmc2hsCSgiZWRpIiwzMS0yNSk7CSMgaGk8PDMxCgkmeG9yCSgiZWJ4IiwiZWR4Iik7CgkmeG9yCSgiZWF4IiwiZWRpIik7CQkJIyBUMSA9IHNpZ21hMChYWy0xNV0pCgoJJm1vdgkoJkRXUCgwLCJlc3AiKSwiZWF4Iik7CgkmbW92CSgmRFdQKDQsImVzcCIpLCJlYngiKTsJCSMgcHV0IFQxIGF3YXkKCgkjZGVmaW5lIHNpZ21hMSh4KQkoUk9UUigoeCksMTkpIF4gUk9UUigoeCksNjEpIF4gKCh4KT4+NikpCgkjCUxPCQlsbz4+MTleaGk8PDEzIF4gaGk+PjI5XmxvPDwzIF4gbG8+PjZeaGk8PDI2CgkjCUhJCQloaT4+MTlebG88PDEzIF4gbG8+PjI5XmhpPDwzIF4gaGk+PjYKCSZtb3YJKCJlY3giLCZEV1AoOCooOSsxNSsxNi0xNCkrMCwiZXNwIikpOwoJJm1vdgkoImVkeCIsJkRXUCg4Kig5KzE1KzE2LTE0KSs0LCJlc3AiKSk7CgkmbW92CSgiZXNpIiwiZWN4Iik7CgoJJnNocgkoImVjeCIsNik7CSMgbG8+PjYKCSZtb3YJKCJlZGkiLCJlZHgiKTsKCSZzaHIJKCJlZHgiLDYpOwkjIGhpPj42CgkmbW92CSgiZWF4IiwiZWN4Iik7Cgkmc2hsCSgiZXNpIiwzKTsJIyBsbzw8MwoJJm1vdgkoImVieCIsImVkeCIpOwoJJnNobAkoImVkaSIsMyk7CSMgaGk8PDMKCSZ4b3IJKCJlYXgiLCJlc2kiKTsKCgkmc2hyCSgiZWN4IiwxOS02KTsJIyBsbz4+MTkKCSZ4b3IJKCJlYngiLCJlZGkiKTsKCSZzaHIJKCJlZHgiLDE5LTYpOwkjIGhpPj4xOQoJJnhvcgkoImVheCIsImVjeCIpOwoJJnNobAkoImVzaSIsMTMtMyk7CSMgbG88PDEzCgkmeG9yCSgiZWJ4IiwiZWR4Iik7Cgkmc2hsCSgiZWRpIiwxMy0zKTsJIyBoaTw8MTMKCSZ4b3IJKCJlYngiLCJlc2kiKTsKCgkmc2hyCSgiZWN4IiwyOS0xOSk7CSMgbG8+PjI5CgkmeG9yCSgiZWF4IiwiZWRpIik7Cgkmc2hyCSgiZWR4IiwyOS0xOSk7CSMgaGk+PjI5CgkmeG9yCSgiZWJ4IiwiZWN4Iik7Cgkmc2hsCSgiZWRpIiwyNi0xMyk7CSMgaGk8PDI2CgkmeG9yCSgiZWF4IiwiZWR4Iik7CgkmeG9yCSgiZWF4IiwiZWRpIik7CQkJIyBzaWdtYTEoWFstMl0pCgoJJm1vdgkoImVjeCIsJkRXUCg4Kig5KzE1KzE2KSswLCJlc3AiKSk7CgkmbW92CSgiZWR4IiwmRFdQKDgqKDkrMTUrMTYpKzQsImVzcCIpKTsKCSZhZGQJKCJlYXgiLCZEV1AoMCwiZXNwIikpOwoJJmFkYwkoImVieCIsJkRXUCg0LCJlc3AiKSk7CQkjIFQxID0gc2lnbWExKFhbLTJdKStUMQoJJm1vdgkoImVzaSIsJkRXUCg4Kig5KzE1KzE2LTkpKzAsImVzcCIpKTsKCSZtb3YJKCJlZGkiLCZEV1AoOCooOSsxNSsxNi05KSs0LCJlc3AiKSk7CgkmYWRkCSgiZWF4IiwiZWN4Iik7CgkmYWRjCSgiZWJ4IiwiZWR4Iik7CQkJIyBUMSArPSBYWy0xNl0KCSZhZGQJKCJlYXgiLCJlc2kiKTsKCSZhZGMJKCJlYngiLCJlZGkiKTsJCQkjIFQxICs9IFhbLTddCgkmbW92CSgmRFdQKDgqKDkrMTUpKzAsImVzcCIpLCJlYXgiKTsKCSZtb3YJKCZEV1AoOCooOSsxNSkrNCwiZXNwIiksImVieCIpOwkjIHNhdmUgWFswXQoKCSZCT0RZXzAwXzE1X3g4NigpOwoKCSZjbXAJKCZMQigiZWR4IiksMHgxNyk7Cgkmam5lCSgmbGFiZWwoIjE2Xzc5X3g4NiIpKTsKCgkmbW92CSgiZXNpIiwmRFdQKDgqKDkrMTYrODApKzAsImVzcCIpKTsjIGN0eAoJJm1vdgkoImVkaSIsJkRXUCg4Kig5KzE2KzgwKSs0LCJlc3AiKSk7IyBpbnAKICAgIGZvcigkaT0wOyRpPDQ7JGkrKykgewoJJm1vdgkoImVheCIsJkRXUCgkaSoxNiswLCJlc2kiKSk7CgkmbW92CSgiZWJ4IiwmRFdQKCRpKjE2KzQsImVzaSIpKTsKCSZtb3YJKCJlY3giLCZEV1AoJGkqMTYrOCwiZXNpIikpOwoJJm1vdgkoImVkeCIsJkRXUCgkaSoxNisxMiwiZXNpIikpOwoJJmFkZAkoImVheCIsJkRXUCg4KygkaSoxNikrMCwiZXNwIikpOwoJJmFkYwkoImVieCIsJkRXUCg4KygkaSoxNikrNCwiZXNwIikpOwoJJm1vdgkoJkRXUCgkaSoxNiswLCJlc2kiKSwiZWF4Iik7CgkmbW92CSgmRFdQKCRpKjE2KzQsImVzaSIpLCJlYngiKTsKCSZhZGQJKCJlY3giLCZEV1AoOCsoJGkqMTYpKzgsImVzcCIpKTsKCSZhZGMJKCJlZHgiLCZEV1AoOCsoJGkqMTYpKzEyLCJlc3AiKSk7CgkmbW92CSgmRFdQKCRpKjE2KzgsImVzaSIpLCJlY3giKTsKCSZtb3YJKCZEV1AoJGkqMTYrMTIsImVzaSIpLCJlZHgiKTsKICAgIH0KCSZhZGQJKCJlc3AiLDgqKDkrMTYrODApKTsJCSMgZGVzdHJveSBmcmFtZQoJJnN1YgkoJEs1MTIsOCo4MCk7CQkJIyByZXdpbmQgSwoKCSZjbXAJKCJlZGkiLCZEV1AoOCwiZXNwIikpOwkJIyBhcmUgd2UgZG9uZSB5ZXQ/CgkmamIJKCZsYWJlbCgibG9vcF94ODYiKSk7CgoJJm1vdgkoImVzcCIsJkRXUCgxMiwiZXNwIikpOwkJIyByZXN0b3JlIHNwCiZmdW5jdGlvbl9lbmRfQSgpOwoKJnNldF9sYWJlbCgiSzUxMiIsNjQpOwkjIFllcyEgSSBrZWVwIGl0IGluIHRoZSBjb2RlIHNlZ21lbnQhCgkmZGF0YV93b3JkKDB4ZDcyOGFlMjIsMHg0MjhhMmY5OCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MjNlZjY1Y2QsMHg3MTM3NDQ5MSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZWM0ZDNiMmYsMHhiNWMwZmJjZik7CSMgdTY0CgkmZGF0YV93b3JkKDB4ODE4OWRiYmMsMHhlOWI1ZGJhNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZjM0OGI1MzgsMHgzOTU2YzI1Yik7CSMgdTY0CgkmZGF0YV93b3JkKDB4YjYwNWQwMTksMHg1OWYxMTFmMSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YWYxOTRmOWIsMHg5MjNmODJhNCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZGE2ZDgxMTgsMHhhYjFjNWVkNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YTMwMzAyNDIsMHhkODA3YWE5OCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NDU3MDZmYmUsMHgxMjgzNWIwMSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NGVlNGIyOGMsMHgyNDMxODViZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZDVmZmI0ZTIsMHg1NTBjN2RjMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZjI3Yjg5NmYsMHg3MmJlNWQ3NCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4M2IxNjk2YjEsMHg4MGRlYjFmZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MjVjNzEyMzUsMHg5YmRjMDZhNyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4Y2Y2OTI2OTQsMHhjMTliZjE3NCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OWVmMTRhZDIsMHhlNDliNjljMSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4Mzg0ZjI1ZTMsMHhlZmJlNDc4Nik7CSMgdTY0CgkmZGF0YV93b3JkKDB4OGI4Y2Q1YjUsMHgwZmMxOWRjNik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NzdhYzljNjUsMHgyNDBjYTFjYyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NTkyYjAyNzUsMHgyZGU5MmM2Zik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NmVhNmU0ODMsMHg0YTc0ODRhYSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YmQ0MWZiZDQsMHg1Y2IwYTlkYyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ODMxMTUzYjUsMHg3NmY5ODhkYSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZWU2NmRmYWIsMHg5ODNlNTE1Mik7CSMgdTY0CgkmZGF0YV93b3JkKDB4MmRiNDMyMTAsMHhhODMxYzY2ZCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OThmYjIxM2YsMHhiMDAzMjdjOCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YmVlZjBlZTQsMHhiZjU5N2ZjNyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4M2RhODhmYzIsMHhjNmUwMGJmMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OTMwYWE3MjUsMHhkNWE3OTE0Nyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZTAwMzgyNmYsMHgwNmNhNjM1MSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MGEwZTZlNzAsMHgxNDI5Mjk2Nyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NDZkMjJmZmMsMHgyN2I3MGE4NSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NWMyNmM5MjYsMHgyZTFiMjEzOCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NWFjNDJhZWQsMHg0ZDJjNmRmYyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OWQ5NWIzZGYsMHg1MzM4MGQxMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OGJhZjYzZGUsMHg2NTBhNzM1NCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4M2M3N2IyYTgsMHg3NjZhMGFiYik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NDdlZGFlZTYsMHg4MWMyYzkyZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MTQ4MjM1M2IsMHg5MjcyMmM4NSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NGNmMTAzNjQsMHhhMmJmZThhMSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YmM0MjMwMDEsMHhhODFhNjY0Yik7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZDBmODk3OTEsMHhjMjRiOGI3MCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MDY1NGJlMzAsMHhjNzZjNTFhMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZDZlZjUyMTgsMHhkMTkyZTgxOSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NTU2NWE5MTAsMHhkNjk5MDYyNCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NTc3MTIwMmEsMHhmNDBlMzU4NSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MzJiYmQxYjgsMHgxMDZhYTA3MCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YjhkMmQwYzgsMHgxOWE0YzExNik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NTE0MWFiNTMsMHgxZTM3NmMwOCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZGY4ZWViOTksMHgyNzQ4Nzc0Yyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZTE5YjQ4YTgsMHgzNGIwYmNiNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YzVjOTVhNjMsMHgzOTFjMGNiMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZTM0MThhY2IsMHg0ZWQ4YWE0YSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4Nzc2M2UzNzMsMHg1YjljY2E0Zik7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZDZiMmI4YTMsMHg2ODJlNmZmMyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NWRlZmIyZmMsMHg3NDhmODJlZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NDMxNzJmNjAsMHg3OGE1NjM2Zik7CSMgdTY0CgkmZGF0YV93b3JkKDB4YTFmMGFiNzIsMHg4NGM4NzgxNCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MWE2NDM5ZWMsMHg4Y2M3MDIwOCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MjM2MzFlMjgsMHg5MGJlZmZmYSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZGU4MmJkZTksMHhhNDUwNmNlYik7CSMgdTY0CgkmZGF0YV93b3JkKDB4YjJjNjc5MTUsMHhiZWY5YTNmNyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZTM3MjUzMmIsMHhjNjcxNzhmMik7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZWEyNjYxOWMsMHhjYTI3M2VjZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MjFjMGMyMDcsMHhkMTg2YjhjNyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4Y2RlMGViMWUsMHhlYWRhN2RkNik7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZWU2ZWQxNzgsMHhmNTdkNGY3Zik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NzIxNzZmYmEsMHgwNmYwNjdhYSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YTJjODk4YTYsMHgwYTYzN2RjNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4YmVmOTBkYWUsMHgxMTNmOTgwNCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MTMxYzQ3MWIsMHgxYjcxMGIzNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4MjMwNDdkODQsMHgyOGRiNzdmNSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4NDBjNzI0OTMsMHgzMmNhYWI3Yik7CSMgdTY0CgkmZGF0YV93b3JkKDB4MTVjOWJlYmMsMHgzYzllYmUwYSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4OWMxMDBkNGMsMHg0MzFkNjdjNCk7CSMgdTY0CgkmZGF0YV93b3JkKDB4Y2IzZTQyYjYsMHg0Y2M1ZDRiZSk7CSMgdTY0CgkmZGF0YV93b3JkKDB4ZmM2NTdlMmEsMHg1OTdmMjk5Yyk7CSMgdTY0CgkmZGF0YV93b3JkKDB4M2FkNmZhZWMsMHg1ZmNiNmZhYik7CSMgdTY0CgkmZGF0YV93b3JkKDB4NGE0NzU4MTcsMHg2YzQ0MTk4Yyk7CSMgdTY0CgoJJmRhdGFfd29yZCgweDA0MDUwNjA3LDB4MDAwMTAyMDMpOwkjIGJ5dGUgc3dhcAoJJmRhdGFfd29yZCgweDBjMGQwZTBmLDB4MDgwOTBhMGIpOwkjIG1hc2sKJmZ1bmN0aW9uX2VuZF9CKCJzaGE1MTJfYmxvY2tfZGF0YV9vcmRlciIpOwomYXNjaXooIlNIQTUxMiBibG9jayB0cmFuc2Zvcm0gZm9yIHg4NiwgQ1JZUFRPR0FNUyBieSA8YXBwcm9cQG9wZW5zc2wub3JnPiIpOwoKJmFzbV9maW5pc2goKTsK