Lyogdmk6c2V0IHRzPTggc3RzPTQgc3c9NDoKICoKICogVklNIC0gVmkgSU1wcm92ZWQJYnkgQnJhbSBNb29sZW5hYXIKICoKICogRG8gIjpoZWxwIHVnYW5kYSIgIGluIFZpbSB0byByZWFkIGNvcHlpbmcgYW5kIHVzYWdlIGNvbmRpdGlvbnMuCiAqIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgogKiBTZWUgUkVBRE1FLnR4dCBmb3IgYW4gb3ZlcnZpZXcgb2YgdGhlIFZpbSBzb3VyY2UgY29kZS4KICovCgovKgogKiBkaWdyYXBoLmM6IGNvZGUgZm9yIGRpZ3JhcGhzCiAqLwoKI2luY2x1ZGUgInZpbS5oIgoKI2lmIGRlZmluZWQoRkVBVF9ESUdSQVBIUykgfHwgZGVmaW5lZChQUk9UTykKCiNpZmRlZiBGRUFUX01CWVRFCnR5cGVkZWYgaW50IHJlc3VsdF9UOwojZWxzZQp0eXBlZGVmIGNoYXJfdSByZXN1bHRfVDsKI2VuZGlmCgp0eXBlZGVmIHN0cnVjdCBkaWdyYXBoCnsKICAgIGNoYXJfdQljaGFyMTsKICAgIGNoYXJfdQljaGFyMjsKICAgIHJlc3VsdF9UCXJlc3VsdDsKfSBkaWdyX1Q7CgpzdGF0aWMgaW50IGdldGV4YWN0ZGlncmFwaCBfX0FSR1MoKGludCwgaW50LCBpbnQpKTsKc3RhdGljIHZvaWQgcHJpbnRkaWdyYXBoIF9fQVJHUygoZGlncl9UICopKTsKCi8qIGRpZ3JhcGhzIGFkZGVkIGJ5IHRoZSB1c2VyICovCnN0YXRpYyBnYXJyYXlfVAl1c2VyX2RpZ3JhcGhzID0gezAsIDAsIHNpemVvZihkaWdyX1QpLCAxMCwgTlVMTH07CgovKgogKiBOb3RlOiBDaGFyYWN0ZXJzIG1hcmtlZCB3aXRoIFhYIGFyZSBub3QgaW5jbHVkZWQgbGl0ZXJhbGx5LCBiZWNhdXNlIHNvbWUKICogY29tcGlsZXJzIGNhbm5vdCBoYW5kbGUgdGhlbSAoQW1pZ2EgU0FTL0MgaXMgdGhlIG1vc3QgcGlja3kgb25lKS4KICovCiNpZiBkZWZpbmVkKE1TRE9TKSB8fCBkZWZpbmVkKE9TMikKCS8qCgkgKiBNU0RPUyBkaWdyYXBocy4KCSAqLwpkaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICB7eydDJywgJywnLCAxMjh9LAkvKiB+QCBYWCAqLwoJeyd1JywgJyInLCAxMjl9LAkvKiCBICovCgl7J2UnLCAnXCcnLCAxMzB9LAkvKiCCICovCgl7J2EnLCAnXicsIDEzMX0sCS8qIIMgKi8KCXsnYScsICciJywgMTMyfSwJLyoghCAqLwoJeydhJywgJ2AnLCAxMzN9LAkvKiCFICovCgl7J2EnLCAnQCcsIDEzNH0sCS8qIIYgKi8KCXsnYycsICcsJywgMTM1fSwJLyogfkcgWFggKi8KCXsnZScsICdeJywgMTM2fSwJLyogfkggWFggKi8KCXsnZScsICciJywgMTM3fSwJLyogiSAqLwoJeydlJywgJ2AnLCAxMzh9LAkvKiCKICovCgl7J2knLCAnIicsIDEzOX0sCS8qIIsgKi8KCXsnaScsICdeJywgMTQwfSwJLyogjCAqLwoJeydpJywgJ2AnLCAxNDF9LAkvKiCNICovCgl7J0EnLCAnIicsIDE0Mn0sCS8qIH5OIFhYICovCgl7J0EnLCAnQCcsIDE0M30sCS8qII8gKi8KCXsnRScsICdcJycsIDE0NH0sCS8qIJAgKi8KCXsnYScsICdlJywgMTQ1fSwJLyogkSAqLwoJeydBJywgJ0UnLCAxNDZ9LAkvKiCSICovCgl7J28nLCAnXicsIDE0N30sCS8qIJMgKi8KCXsnbycsICciJywgMTQ4fSwJLyoglCAqLwoJeydvJywgJ2AnLCAxNDl9LAkvKiCVICovCgl7J3UnLCAnXicsIDE1MH0sCS8qIJYgKi8KCXsndScsICdgJywgMTUxfSwJLyoglyAqLwoJeyd5JywgJyInLCAxNTJ9LAkvKiCYICovCgl7J08nLCAnIicsIDE1M30sCS8qIJkgKi8KCXsnVScsICciJywgMTU0fSwJLyogmiAqLwoJeydjJywgJ3wnLCAxNTV9LAkvKiCbICovCgl7JyQnLCAnJCcsIDE1Nn0sCS8qIJwgKi8KCXsnWScsICctJywgMTU3fSwJLyogfl0gWFggKi8KCXsnUCcsICd0JywgMTU4fSwJLyogniAqLwoJeydmJywgJ2YnLCAxNTl9LAkvKiCfICovCgl7J2EnLCAnXCcnLCAxNjB9LAkvKiCgICovCgl7J2knLCAnXCcnLCAxNjF9LAkvKiChICovCgl7J28nLCAnXCcnLCAxNjJ9LAkvKiCiICovCgl7J3UnLCAnXCcnLCAxNjN9LAkvKiB4IFhYICovCgl7J24nLCAnficsIDE2NH0sCS8qIKQgKi8KCXsnTicsICd+JywgMTY1fSwJLyogpSAqLwoJeydhJywgJ2EnLCAxNjZ9LAkvKiCmICovCgl7J28nLCAnbycsIDE2N30sCS8qIKcgKi8KCXsnficsICc/JywgMTY4fSwJLyogqCAqLwoJeyctJywgJ2EnLCAxNjl9LAkvKiCpICovCgl7J2EnLCAnLScsIDE3MH0sCS8qIKogKi8KCXsnMScsICcyJywgMTcxfSwJLyogqyAqLwoJeycxJywgJzQnLCAxNzJ9LAkvKiCsICovCgl7J34nLCAnIScsIDE3M30sCS8qIK0gKi8KCXsnPCcsICc8JywgMTc0fSwJLyogriAqLwoJeyc+JywgJz4nLCAxNzV9LAkvKiCvICovCgoJeydzJywgJ3MnLCAyMjV9LAkvKiDhICovCgl7J2onLCAndScsIDIzMH0sCS8qIOYgKi8KCXsnbycsICcvJywgMjM3fSwJLyog7SAqLwoJeycrJywgJy0nLCAyNDF9LAkvKiDxICovCgl7Jz4nLCAnPScsIDI0Mn0sCS8qIPIgKi8KCXsnPCcsICc9JywgMjQzfSwJLyog8yAqLwoJeyc6JywgJy0nLCAyNDZ9LAkvKiD2ICovCgl7J34nLCAnficsIDI0N30sCS8qIPcgKi8KCXsnficsICdvJywgMjQ4fSwJLyog+CAqLwoJeycyJywgJzInLCAyNTN9LAkvKiD9ICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojZWxzZQkvKiAhTVNET1MgJiYgIU9TMiAqLwojIGlmZGVmIF9fTUlOVF9fCgoJLyoKCSAqIEFUQVJJIGRpZ3JhcGhzCgkgKi8KZGlncl9UCWRpZ3JhcGhkZWZhdWx0W10gPQogICAgICAge3snQycsICcsJywgMTI4fSwJLyogfkAgWFggKi8KCXsndScsICciJywgMTI5fSwJLyoggSAqLwoJeydlJywgJ1wnJywgMTMwfSwJLyoggiAqLwoJeydhJywgJ14nLCAxMzF9LAkvKiCDICovCgl7J2EnLCAnIicsIDEzMn0sCS8qIIQgKi8KCXsnYScsICdgJywgMTMzfSwJLyoghSAqLwoJeydhJywgJ0AnLCAxMzR9LAkvKiCGICovCgl7J2MnLCAnLCcsIDEzNX0sCS8qIH5HIFhYICovCgl7J2UnLCAnXicsIDEzNn0sCS8qIH5IIFhYICovCgl7J2UnLCAnIicsIDEzN30sCS8qIIkgKi8KCXsnZScsICdgJywgMTM4fSwJLyogiiAqLwoJeydpJywgJyInLCAxMzl9LAkvKiCLICovCgl7J2knLCAnXicsIDE0MH0sCS8qIIwgKi8KCXsnaScsICdgJywgMTQxfSwJLyogjSAqLwoJeydBJywgJyInLCAxNDJ9LAkvKiCOICovCgl7J0EnLCAnQCcsIDE0M30sCS8qII8gKi8KCXsnRScsICdcJycsIDE0NH0sCS8qIJAgKi8KCXsnYScsICdlJywgMTQ1fSwJLyogkSAqLwoJeydBJywgJ0UnLCAxNDZ9LAkvKiCSICovCgl7J28nLCAnXicsIDE0N30sCS8qIJMgKi8KCXsnbycsICciJywgMTQ4fSwJLyoglCAqLwoJeydvJywgJ2AnLCAxNDl9LAkvKiCVICovCgl7J3UnLCAnXicsIDE1MH0sCS8qIJYgKi8KCXsndScsICdgJywgMTUxfSwJLyoglyAqLwoJeyd5JywgJyInLCAxNTJ9LAkvKiCYICovCgl7J08nLCAnIicsIDE1M30sCS8qIJkgKi8KCXsnVScsICciJywgMTU0fSwJLyogmiAqLwoJeydjJywgJ3wnLCAxNTV9LAkvKiCbICovCgl7JyQnLCAnJCcsIDE1Nn0sCS8qIJwgKi8KCXsnWScsICctJywgMTU3fSwJLyogfl0gWFggKi8KCXsncycsICdzJywgMTU4fSwJLyogniAqLwoJeydmJywgJ2YnLCAxNTl9LAkvKiCfICovCgl7J2EnLCAnXCcnLCAxNjB9LAkvKiCgICovCgl7J2knLCAnXCcnLCAxNjF9LAkvKiChICovCgl7J28nLCAnXCcnLCAxNjJ9LAkvKiCiICovCgl7J3UnLCAnXCcnLCAxNjN9LAkvKiCjICovCgl7J24nLCAnficsIDE2NH0sCS8qIKQgKi8KCXsnTicsICd+JywgMTY1fSwJLyogpSAqLwoJeydhJywgJ2EnLCAxNjZ9LAkvKiCmICovCgl7J28nLCAnbycsIDE2N30sCS8qIKcgKi8KCXsnficsICc/JywgMTY4fSwJLyogqCAqLwoJeyctJywgJ2EnLCAxNjl9LAkvKiCpICovCgl7J2EnLCAnLScsIDE3MH0sCS8qIKogKi8KCXsnMScsICcyJywgMTcxfSwJLyogqyAqLwoJeycxJywgJzQnLCAxNzJ9LAkvKiCsICovCgl7J34nLCAnIScsIDE3M30sCS8qIK0gKi8KCXsnPCcsICc8JywgMTc0fSwJLyogriAqLwoJeyc+JywgJz4nLCAxNzV9LAkvKiCvICovCgl7J2onLCAndScsIDIzMH0sCS8qIOYgKi8KCXsnbycsICcvJywgMjM3fSwJLyog7SAqLwoJeycrJywgJy0nLCAyNDF9LAkvKiDxICovCgl7Jz4nLCAnPScsIDI0Mn0sCS8qIPIgKi8KCXsnPCcsICc9JywgMjQzfSwJLyog8yAqLwoJeyc6JywgJy0nLCAyNDZ9LAkvKiD2ICovCgl7J34nLCAnficsIDI0N30sCS8qIPcgKi8KCXsnficsICdvJywgMjQ4fSwJLyog+CAqLwoJeycyJywgJzInLCAyNTN9LAkvKiD9ICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojIGVsc2UJLyogIV9fTUlOVF9fICovCiMgIGlmZGVmIEhQVVhfRElHUkFQSFMKCgkvKgoJICogZGlmZmVyZW50IEhQVVggZGlncmFwaHMKCSAqLwpkaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICB7eydBJywgJ2AnLCAxNjF9LAkvKiChICovCgl7J0EnLCAnXicsIDE2Mn0sCS8qIKIgKi8KCXsnRScsICdgJywgMTYzfSwJLyogoyAqLwoJeydFJywgJ14nLCAxNjR9LAkvKiCkICovCgl7J0UnLCAnIicsIDE2NX0sCS8qIKUgKi8KCXsnSScsICdeJywgMTY2fSwJLyogpiAqLwoJeydJJywgJyInLCAxNjd9LAkvKiCnICovCgl7J1wnJywgJ1wnJywgMTY4fSwJLyogqCAqLwoJeydgJywgJ2AnLCAxNjl9LAkvKiCpICovCgl7J14nLCAnXicsIDE3MH0sCS8qIKogKi8KCXsnIicsICciJywgMTcxfSwJLyogqyAqLwoJeyd+JywgJ34nLCAxNzJ9LAkvKiCsICovCgl7J1UnLCAnYCcsIDE3M30sCS8qIK0gKi8KCXsnVScsICdeJywgMTc0fSwJLyogriAqLwoJeydMJywgJz0nLCAxNzV9LAkvKiCvICovCgl7J34nLCAnXycsIDE3Nn0sCS8qILAgKi8KCXsnWScsICdcJycsIDE3N30sCS8qILEgKi8KCXsneScsICdcJycsIDE3OH0sCS8qILIgKi8KCXsnficsICdvJywgMTc5fSwJLyogsyAqLwoJeydDJywgJywnLCAxODB9LAkvKiC0ICovCgl7J2MnLCAnLCcsIDE4MX0sCS8qILUgKi8KCXsnTicsICd+JywgMTgyfSwJLyogtiAqLwoJeyduJywgJ34nLCAxODN9LAkvKiC3ICovCgl7J34nLCAnIScsIDE4NH0sCS8qILggKi8KCXsnficsICc/JywgMTg1fSwJLyoguSAqLwoJeydvJywgJ3gnLCAxODZ9LAkvKiC6ICovCgl7J0wnLCAnLScsIDE4N30sCS8qILsgKi8KCXsnWScsICc9JywgMTg4fSwJLyogvCAqLwoJeydwJywgJ3AnLCAxODl9LAkvKiC9ICovCgl7J2YnLCAnbCcsIDE5MH0sCS8qIL4gKi8KCXsnYycsICd8JywgMTkxfSwJLyogvyAqLwoJeydhJywgJ14nLCAxOTJ9LAkvKiDAICovCgl7J2UnLCAnXicsIDE5M30sCS8qIMEgKi8KCXsnbycsICdeJywgMTk0fSwJLyogwiAqLwoJeyd1JywgJ14nLCAxOTV9LAkvKiDDICovCgl7J2EnLCAnXCcnLCAxOTZ9LAkvKiDEICovCgl7J2UnLCAnXCcnLCAxOTd9LAkvKiDFICovCgl7J28nLCAnXCcnLCAxOTh9LAkvKiDGICovCgl7J3UnLCAnXCcnLCAxOTl9LAkvKiDHICovCgl7J2EnLCAnYCcsIDIwMH0sCS8qIMggKi8KCXsnZScsICdgJywgMjAxfSwJLyogySAqLwoJeydvJywgJ2AnLCAyMDJ9LAkvKiDKICovCgl7J3UnLCAnYCcsIDIwM30sCS8qIMsgKi8KCXsnYScsICciJywgMjA0fSwJLyogzCAqLwoJeydlJywgJyInLCAyMDV9LAkvKiDNICovCgl7J28nLCAnIicsIDIwNn0sCS8qIM4gKi8KCXsndScsICciJywgMjA3fSwJLyogzyAqLwoJeydBJywgJ28nLCAyMDh9LAkvKiDQICovCgl7J2knLCAnXicsIDIwOX0sCS8qINEgKi8KCXsnTycsICcvJywgMjEwfSwJLyog0iAqLwoJeydBJywgJ0UnLCAyMTF9LAkvKiDTICovCgl7J2EnLCAnbycsIDIxMn0sCS8qINQgKi8KCXsnaScsICdcJycsIDIxM30sCS8qINUgKi8KCXsnbycsICcvJywgMjE0fSwJLyog1iAqLwoJeydhJywgJ2UnLCAyMTV9LAkvKiDXICovCgl7J0EnLCAnIicsIDIxNn0sCS8qINggKi8KCXsnaScsICdgJywgMjE3fSwJLyog2SAqLwoJeydPJywgJyInLCAyMTh9LAkvKiDaICovCgl7J1UnLCAnIicsIDIxOX0sCS8qINsgKi8KCXsnRScsICdcJycsIDIyMH0sCS8qINwgKi8KCXsnaScsICciJywgMjIxfSwJLyog3SAqLwoJeydzJywgJ3MnLCAyMjJ9LAkvKiDeICovCgl7J08nLCAnXicsIDIyM30sCS8qIN8gKi8KCXsnQScsICdcJycsIDIyNH0sCS8qIOAgKi8KCXsnQScsICd+JywgMjI1fSwJLyog4SAqLwoJeydhJywgJ34nLCAyMjZ9LAkvKiDiICovCgl7J0QnLCAnLScsIDIyN30sCS8qIOMgKi8KCXsnZCcsICctJywgMjI4fSwJLyog5CAqLwoJeydJJywgJ1wnJywgMjI5fSwJLyog5SAqLwoJeydJJywgJ2AnLCAyMzB9LAkvKiDmICovCgl7J08nLCAnXCcnLCAyMzF9LAkvKiDnICovCgl7J08nLCAnYCcsIDIzMn0sCS8qIOggKi8KCXsnTycsICd+JywgMjMzfSwJLyog6SAqLwoJeydvJywgJ34nLCAyMzR9LAkvKiDqICovCgl7J1MnLCAnficsIDIzNX0sCS8qIOsgKi8KCXsncycsICd+JywgMjM2fSwJLyog7CAqLwoJeydVJywgJ1wnJywgMjM3fSwJLyog7SAqLwoJeydZJywgJyInLCAyMzh9LAkvKiDuICovCgl7J3knLCAnIicsIDIzOX0sCS8qIO8gKi8KCXsncCcsICctJywgMjQwfSwJLyog8CAqLwoJeydwJywgJ34nLCAyNDF9LAkvKiDxICovCgl7J34nLCAnLicsIDI0Mn0sCS8qIPIgKi8KCXsnaicsICd1JywgMjQzfSwJLyog8yAqLwoJeydQJywgJ3AnLCAyNDR9LAkvKiD0ICovCgl7JzMnLCAnNCcsIDI0NX0sCS8qIPUgKi8KCXsnLScsICctJywgMjQ2fSwJLyog9iAqLwoJeycxJywgJzQnLCAyNDd9LAkvKiD3ICovCgl7JzEnLCAnMicsIDI0OH0sCS8qIPggKi8KCXsnYScsICdfJywgMjQ5fSwJLyog+SAqLwoJeydvJywgJ18nLCAyNTB9LAkvKiD6ICovCgl7JzwnLCAnPCcsIDI1MX0sCS8qIPsgKi8KCXsneCcsICd4JywgMjUyfSwJLyog/CAqLwoJeyc+JywgJz4nLCAyNTN9LAkvKiD9ICovCgl7JysnLCAnLScsIDI1NH0sCS8qIP4gKi8KCXsnbicsICd1JywgMjU1fSwJLyogeCBYWCAqLwoJe05VTCwgTlVMLCBOVUx9Cgl9OwoKIyAgZWxzZQkvKiAhSFBVWF9ESUdSQVBIUyAqLwoKIyAgIGlmZGVmIEVCQ0RJQwoKCS8qCgkgKiBFQkNESUMgLSBJU08gZGlncmFwaHMKCSAqIFRPRE86IEVCQ0RJQyBUYWJsZSBpcyBDb2RlLVBhZ2UgMTA0NwoJICovCmRpZ3JfVAlkaWdyYXBoZGVmYXVsdFtdID0KICAgICAgIHt7J2EnLCAnXicsICAgIDY2fSwJLyog4iAqLwoJeydhJywgJyInLCAgICA2N30sCS8qIOQgKi8KCXsnYScsICdgJywgICAgNjh9LAkvKiDgICovCgl7J2EnLCAnXCcnLCAgIDY5fSwJLyog4SAqLwoJeydhJywgJ34nLCAgICA3MH0sCS8qIOMgKi8KCXsnYScsICdAJywgICAgNzF9LAkvKiDlICovCgl7J2EnLCAnYScsICAgIDcxfSwJLyog5SAqLwoJeydjJywgJywnLCAgICA3Mn0sCS8qIOcgKi8KCXsnbicsICd+JywgICAgNzN9LAkvKiDxICovCgl7J2MnLCAnfCcsICAgIDc0fSwJLyogoiAqLwoJeydlJywgJ1wnJywgICA4MX0sCS8qIOkgKi8KCXsnZScsICdeJywgICAgODJ9LAkvKiDqICovCgl7J2UnLCAnIicsICAgIDgzfSwJLyog6yAqLwoJeydlJywgJ2AnLCAgICA4NH0sCS8qIOggKi8KCXsnaScsICdcJycsICAgODV9LAkvKiDtICovCgl7J2knLCAnXicsICAgIDg2fSwJLyog7iAqLwoJeydpJywgJyInLCAgICA4N30sCS8qIO8gKi8KCXsnaScsICdgJywgICAgODh9LAkvKiDsICovCgl7J3MnLCAncycsICAgIDg5fSwJLyog3yAqLwoJeydBJywgJ14nLCAgICA5OH0sCS8qIMIgKi8KCXsnQScsICciJywgICAgOTl9LAkvKiDEICovCgl7J0EnLCAnYCcsICAgMTAwfSwJLyogwCAqLwoJeydBJywgJ1wnJywgIDEwMX0sCS8qIMEgKi8KCXsnQScsICd+JywgICAxMDJ9LAkvKiDDICovCgl7J0EnLCAnQCcsICAgMTAzfSwJLyogxSAqLwoJeydBJywgJ0EnLCAgIDEwM30sCS8qIMUgKi8KCXsnQycsICcsJywgICAxMDR9LAkvKiDHICovCgl7J04nLCAnficsICAgMTA1fSwJLyog0SAqLwoJeyd8JywgJ3wnLCAgIDEwNn0sCS8qIKYgKi8KCXsnbycsICcvJywgICAxMTJ9LAkvKiD4ICovCgl7J0UnLCAnXCcnLCAgMTEzfSwJLyogySAqLwoJeydFJywgJ14nLCAgIDExNH0sCS8qIMogKi8KCXsnRScsICciJywgICAxMTV9LAkvKiDLICovCgl7J0UnLCAnYCcsICAgMTE2fSwJLyogyCAqLwoJeydJJywgJ1wnJywgIDExN30sCS8qIM0gKi8KCXsnSScsICdeJywgICAxMTh9LAkvKiDOICovCgl7J0knLCAnIicsICAgMTE5fSwJLyogzyAqLwoJeydJJywgJ2AnLCAgIDEyMH0sCS8qIMwgKi8KCXsnTycsICcvJywgICAxMjh9LAkvKiAwLyBYWCAqLwoJeyc8JywgJzwnLCAgIDEzOH0sCS8qIKsgKi8KCXsnPicsICc+JywgICAxMzl9LAkvKiC7ICovCgl7J2QnLCAnLScsICAgMTQwfSwJLyog8CAqLwoJeyd5JywgJ1wnJywgIDE0MX0sCS8qIP0gKi8KCXsnaScsICdwJywgICAxNDJ9LAkvKiD+ICovCgl7JysnLCAnLScsICAgMTQzfSwJLyogsSAqLwoJeyd+JywgJ28nLCAgIDE0NH0sCS8qILAgKi8KCXsnYScsICctJywgICAxNTR9LAkvKiCqICovCgl7J28nLCAnLScsICAgMTU1fSwJLyoguiAqLwoJeydhJywgJ2UnLCAgIDE1Nn0sCS8qIOYgKi8KCXsnLCcsICcsJywgICAxNTd9LAkvKiAsIFhYICovCgl7J0EnLCAnRScsICAgMTU4fSwJLyogxiAqLwoJeydvJywgJ3gnLCAgIDE1OX0sCS8qIKQgLSBjdXJyZW5jeSBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydlJywgJz0nLCAgIDE1OX0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydqJywgJ3UnLCAgIDE2MH0sCS8qILUgKi8KCXsneScsICciJywgICAxNjd9LAkvKiB4IFhYICovCgl7J34nLCAnIScsICAgMTcwfSwJLyogoSAqLwoJeyd+JywgJz8nLCAgIDE3MX0sCS8qIL8gKi8KCXsnRCcsICctJywgICAxNzJ9LAkvKiDQICovCgl7J0knLCAncCcsICAgMTc0fSwJLyog3iAqLwoJeydyJywgJ08nLCAgIDE3NX0sCS8qIK4gKi8KCXsnLScsICcsJywgICAxNzZ9LAkvKiCsICovCgl7JyQnLCAnJCcsICAgMTc3fSwJLyogoyAqLwoJeydZJywgJy0nLCAgIDE3OH0sCS8qIKUgKi8KCXsnficsICcuJywgICAxNzl9LAkvKiC3ICovCgl7J2MnLCAnTycsICAgMTgwfSwJLyogqSAqLwoJeydwJywgJ2EnLCAgIDE4MX0sCS8qIKcgKi8KCXsncCcsICdwJywgICAxODJ9LAkvKiC2ICovCgl7JzEnLCAnNCcsICAgMTgzfSwJLyogvCAqLwoJeycxJywgJzInLCAgIDE4NH0sCS8qIL0gKi8KCXsnMycsICc0JywgICAxODV9LAkvKiC+ICovCgl7J1knLCAnXCcnLCAgMTg2fSwJLyog3SAqLwoJeyciJywgJyInLCAgIDE4N30sCS8qIKggKi8KCXsnLScsICc9JywgICAxODh9LAkvKiCvICovCgl7J1wnJywgJ1wnJywgMTkwfSwJLyogtCAqLwoJeydPJywgJ0UnLCAgIDE5MX0sCS8qINcgLSBPRSBpbiBJU08gODg1OS0xNSAqLwoJeycvJywgJ1xcJywgIDE5MX0sCS8qINcgLSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeyctJywgJy0nLCAgIDIwMn0sCS8qIK0gKi8KCXsnbycsICdeJywgICAyMDN9LAkvKiD0ICovCgl7J28nLCAnIicsICAgMjA0fSwJLyog9iAqLwoJeydvJywgJ2AnLCAgIDIwNX0sCS8qIPIgKi8KCXsnbycsICdcJycsICAyMDZ9LAkvKiDzICovCgl7J28nLCAnficsICAgMjA3fSwJLyog9SAqLwoJeycxJywgJzEnLCAgIDIxOH0sCS8qILkgKi8KCXsndScsICdeJywgICAyMTl9LAkvKiD7ICovCgl7J3UnLCAnIicsICAgMjIwfSwJLyog/CAqLwoJeyd1JywgJ2AnLCAgIDIyMX0sCS8qIPkgKi8KCXsndScsICdcJycsICAyMjJ9LAkvKiD6ICovCgl7JzonLCAnLScsICAgMjI1fSwJLyog9yAtIGRpdmlzaW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J28nLCAnZScsICAgMjI1fSwJLyog9yAtIG9lIGluIElTTyA4ODU5LTE1ICovCgl7JzInLCAnMicsICAgMjM0fSwJLyogsiAqLwoJeydPJywgJ14nLCAgIDIzNX0sCS8qINQgKi8KCXsnTycsICciJywgICAyMzZ9LAkvKiDWICovCgl7J08nLCAnYCcsICAgMjM3fSwJLyog0iAqLwoJeydPJywgJ1wnJywgIDIzOH0sCS8qINMgKi8KCXsnTycsICd+JywgICAyMzl9LAkvKiDVICovCgl7JzMnLCAnMycsICAgMjUwfSwJLyogsyAqLwoJeydVJywgJ14nLCAgIDI1MX0sCS8qINsgKi8KCXsnVScsICciJywgICAyNTJ9LAkvKiDcICovCgl7J1UnLCAnYCcsICAgMjUzfSwJLyog2SAqLwoJeydVJywgJ1wnJywgIDI1NH0sCS8qINogKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiMgICBlbHNlCiMgICAgaWYgZGVmaW5lZChNQUNPUykgJiYgIWRlZmluZWQoRkVBVF9NQllURSkKCgkvKgoJICogTWFjaW50b3NoIGRpZ3JhcGhzCgkgKi8KZGlncl9UCWRpZ3JhcGhkZWZhdWx0W10gPQogICAgICAge3snYScsICd0JywgNjR9LAkJLyogQCAqLwoJeydBJywgJyInLCAxMjh9LAkvKiB+QCBYWCAqLwoJeydBJywgJ28nLCAxMjl9LAkvKiDFICovCgl7J0MnLCAnLCcsIDEzMH0sCS8qIMcgKi8KCXsnRScsICdcJycsIDEzMX0sCS8qIMkgKi8KCXsnTicsICd+JywgMTMyfSwJLyog0SAqLwoJeydPJywgJyInLCAxMzN9LAkvKiDWICovCgl7J1UnLCAnIicsIDEzNH0sCS8qINwgKi8KCXsnYScsICdcJycsIDEzNX0sCS8qIH5HIFhYICovCgl7J2EnLCAnYCcsIDEzNn0sCS8qIH5IIFhYICovCgl7J2EnLCAnXicsIDEzN30sCS8qIOIgKi8KCXsnYScsICciJywgMTM4fSwJLyog5CAqLwoJeydhJywgJ34nLCAxMzl9LAkvKiDjICovCgl7J2EnLCAnbycsIDE0MH0sCS8qIOUgKi8KCXsnYycsICcsJywgMTQxfSwJLyog5yAqLwoJeydlJywgJ1wnJywgMTQyfSwJLyog6SAqLwoJeydlJywgJ2AnLCAxNDN9LAkvKiDoICovCgl7J2UnLCAnXicsIDE0NH0sCS8qIOogKi8KCXsnZScsICciJywgMTQ1fSwJLyog6yAqLwoJeydpJywgJ1wnJywgMTQ2fSwJLyog7SAqLwoJeydpJywgJ2AnLCAxNDd9LAkvKiDsICovCgl7J2knLCAnXicsIDE0OH0sCS8qIO4gKi8KCXsnaScsICciJywgMTQ5fSwJLyog7yAqLwoJeyduJywgJ34nLCAxNTB9LAkvKiDxICovCgl7J28nLCAnXCcnLCAxNTF9LAkvKiDzICovCgl7J28nLCAnYCcsIDE1Mn0sCS8qIPIgKi8KCXsnbycsICdeJywgMTUzfSwJLyog9CAqLwoJeydvJywgJyInLCAxNTR9LAkvKiD2ICovCgl7J28nLCAnficsIDE1NX0sCS8qIG8gKi8KCXsndScsICdcJycsIDE1Nn0sCS8qIPogKi8KCXsndScsICdgJywgMTU3fSwJLyogfl0gWFggKi8KCXsndScsICdeJywgMTU4fSwJLyog+yAqLwoJeyd1JywgJyInLCAxNTl9LAkvKiD8ICovCgl7JysnLCAnXycsIDE2MH0sCS8qIN0gKi8KCXsnficsICdvJywgMTYxfSwJLyogsCAqLwoJeydjJywgJ3wnLCAxNjJ9LAkvKiCiICovCgl7JyQnLCAnJCcsIDE2M30sCS8qIKMgKi8KCXsncCcsICdhJywgMTY0fSwJLyogpyAqLwoJeycuJywgJy4nLCAxNjV9LAkvKiAqICovCgl7J1AnLCAnUCcsIDE2Nn0sCS8qILYgKi8KCXsncycsICdzJywgMTY3fSwJLyog3yAqLwoJeydyJywgJ08nLCAxNjh9LAkvKiCuICovCgl7J2MnLCAnTycsIDE2OX0sCS8qIKkgKi8KCXsnVCcsICdNJywgMTcwfSwJLyoggSAqLwoJeyc9JywgJy8nLCAxNzN9LAkvKiCCICovCgl7J0EnLCAnRScsIDE3NH0sCS8qIMYgKi8KCXsnTycsICcvJywgMTc1fSwJLyog2CAqLwoJeycwJywgJzAnLCAxNzZ9LAkvKiCDICovCgl7JysnLCAnLScsIDE3N30sCS8qILEgKi8KCXsnPCcsICc9JywgMTc4fSwJLyogviAqLwoJeyc+JywgJz0nLCAxNzl9LAkvKiCEICovCgl7J1knLCAnLScsIDE4MH0sCS8qIKUgKi8KCXsnaicsICd1JywgMTgxfSwJLyogtSAqLwoJeydtJywgJ3UnLCAxODF9LAkvKiC1ICovCgl7J2QnLCAnZCcsIDE4Mn0sCS8qII8gKi8KCXsnUycsICdTJywgMTgzfSwJLyoghSAqLwoJeydTJywgJ0knLCAxODN9LAkvKiCFICovCgl7J1AnLCAnSScsIDE4NH0sCS8qIL0gKi8KCXsncCcsICdpJywgMTg1fSwJLyogvCAqLwoJeydJJywgJ0knLCAxODZ9LAkvKiCGICovCgl7J2EnLCAnLScsIDE4N30sCS8qILsgKi8KCXsnbycsICctJywgMTg4fSwJLyoguiAqLwoJeydPJywgJ00nLCAxODl9LAkvKiC9ICovCgl7J2EnLCAnZScsIDE5MH0sCS8qIOYgKi8KCXsnbycsICcvJywgMTkxfSwJLyog+CAqLwoJeyd+JywgJz8nLCAxOTJ9LAkvKiC/ICovCgl7J34nLCAnIScsIDE5M30sCS8qIKEgKi8KCXsnLScsICcsJywgMTk0fSwJLyogrCAqLwoJeyd2JywgJy0nLCAxOTV9LAkvKiB+SCBYWCAqLwoJeydmJywgJy0nLCAxOTZ9LAkvKiCfICovCgl7J34nLCAnficsIDE5N30sCS8qIIkgKi8KCXsnRCcsICdFJywgMTk4fSwJLyogkCAqLwoJeyc8JywgJzwnLCAxOTl9LAkvKiCrICovCgl7Jz4nLCAnPicsIDIwMH0sCS8qILsgKi8KCXsnLicsICc6JywgMjAxfSwJLyogiiAqLwoJeydBJywgJ2AnLCAyMDN9LAkvKiDAICovCgl7J0EnLCAnficsIDIwNH0sCS8qIMMgKi8KCXsnTycsICd+JywgMjA1fSwJLyog1SAqLwoJeydPJywgJ0UnLCAyMDZ9LAkvKiCRICovCgl7J28nLCAnZScsIDIwN30sCS8qIKYgKi8KCXsnLScsICcuJywgMjA4fSwJLyogLSAqLwoJeyctJywgJy0nLCAyMDl9LAkvKiAtICovCgl7J2AnLCAnYCcsIDIxMH0sCS8qICIgKi8KCXsnXCcnLCAnXCcnLCAyMTF9LAkvKiAiICovCgl7J2AnLCAnICcsIDIxMn0sCS8qICcgKi8KCXsnXCcnLCAnICcsIDIxM30sCS8qICcgKi8KCXsnLScsICc6JywgMjE0fSwJLyog9yAqLwoJeydEJywgJ0knLCAyMTV9LAkvKiDXICovCgl7J3knLCAnOicsIDIxNn0sCS8qIP8gKi8KCXsnWScsICc6JywgMjE3fSwJLyogjSAqLwoJeycvJywgJy8nLCAyMTh9LAkvKiCOICovCgl7J0UnLCAnPScsIDIxOX0sCS8qIKQgRXVybyBTeXN0ZW0gPj04LjUgKi8KCXsnbycsICd4JywgMjE5fSwJLyogpCBDdXJyZW5jeSBTeXN0ZW0gPD04LjEqLwoJeyc8JywgJyAnLCAyMjB9LAkvKiDQICovCgl7Jz4nLCAnICcsIDIyMX0sCS8qIPAgKi8KCXsnZicsICdpJywgMjIyfSwJLyog3iAqLwoJeydmJywgJ2wnLCAyMjN9LAkvKiD+ICovCgl7JysnLCAnKycsIDIyNH0sCS8qIP0gKi8KCXsnficsICcuJywgMjI1fSwJLyogtyAqLwoJeycsJywgJyAnLCAyMjZ9LAkvKiCSICovCgl7JywnLCAnLCcsIDIyN30sCS8qIJMgKi8KCXsnJScsICcuJywgMjI4fSwJLyoglCAqLwoJeyclJywgJzAnLCAyMjh9LAkvKiCUICovCgl7J0EnLCAnXicsIDIyOX0sCS8qIMIgKi8KCXsnRScsICdeJywgMjMwfSwJLyogyiAqLwoJeydBJywgJ1wnJywgMjMxfSwJLyogwSAqLwoJeydFJywgJyInLCAyMzJ9LAkvKiDLICovCgl7J0UnLCAnYCcsIDIzM30sCS8qIMggKi8KCXsnSScsICdcJycsIDIzNH0sCS8qIM0gKi8KCXsnSScsICdeJywgMjM1fSwJLyogziAqLwoJeydJJywgJyInLCAyMzZ9LAkvKiDPICovCgl7J0knLCAnYCcsIDIzN30sCS8qIMwgKi8KCXsnTycsICdcJycsIDIzOH0sCS8qINMgKi8KCXsnTycsICdeJywgMjM5fSwJLyog1CAqLwoJeydBJywgJ1AnLCAyNDB9LAkvKiCVICovCgl7J08nLCAnYCcsIDI0MX0sCS8qINIgKi8KCXsnVScsICdcJycsIDI0Mn0sCS8qINogKi8KCXsnVScsICdeJywgMjQzfSwJLyog2yAqLwoJeydVJywgJ2AnLCAyNDR9LAkvKiDZICovCgl7J2knLCAnLicsIDI0NX0sCS8qIJ4gKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiMgICAgZWxzZQkvKiAhTUFDT1MgKi8KCiMgICAgIGlmZGVmIE9MRF9ESUdSQVBIUwoKCS8qCgkgKiBkaWdyYXBocyBjb21wYXRpYmxlIHdpdGggVmltIDUueAoJICovCmRpZ3JfVAlkaWdyYXBoZGVmYXVsdFtdID0KICAgICAgIHt7J34nLCAnIScsIDE2MX0sCS8qIKEgKi8KCXsnYycsICd8JywgMTYyfSwJLyogoiAqLwoJeyckJywgJyQnLCAxNjN9LAkvKiCjICovCgl7J28nLCAneCcsIDE2NH0sCS8qIKQgLSBjdXJyZW5jeSBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydlJywgJz0nLCAxNjR9LAkvKiCkIC0gZXVybyBzeW1ib2wgaW4gSVNPIDg4NTktMTUgKi8KCXsnWScsICctJywgMTY1fSwJLyogpSAqLwoJeyd8JywgJ3wnLCAxNjZ9LAkvKiCmICovCgl7J3AnLCAnYScsIDE2N30sCS8qIKcgKi8KCXsnIicsICciJywgMTY4fSwJLyogqCAqLwoJeydjJywgJ08nLCAxNjl9LAkvKiCpICovCgl7J2EnLCAnLScsIDE3MH0sCS8qIKogKi8KCXsnPCcsICc8JywgMTcxfSwJLyogqyAqLwoJeyctJywgJywnLCAxNzJ9LAkvKiCsICovCgl7Jy0nLCAnLScsIDE3M30sCS8qIK0gKi8KCXsncicsICdPJywgMTc0fSwJLyogriAqLwoJeyctJywgJz0nLCAxNzV9LAkvKiCvICovCgl7J34nLCAnbycsIDE3Nn0sCS8qILAgKi8KCXsnKycsICctJywgMTc3fSwJLyogsSAqLwoJeycyJywgJzInLCAxNzh9LAkvKiCyICovCgl7JzMnLCAnMycsIDE3OX0sCS8qILMgKi8KCXsnXCcnLCAnXCcnLCAxODB9LAkvKiC0ICovCgl7J2onLCAndScsIDE4MX0sCS8qILUgKi8KCXsncCcsICdwJywgMTgyfSwJLyogtiAqLwoJeyd+JywgJy4nLCAxODN9LAkvKiC3ICovCgl7JywnLCAnLCcsIDE4NH0sCS8qILggKi8KCXsnMScsICcxJywgMTg1fSwJLyoguSAqLwoJeydvJywgJy0nLCAxODZ9LAkvKiC6ICovCgl7Jz4nLCAnPicsIDE4N30sCS8qILsgKi8KCXsnMScsICc0JywgMTg4fSwJLyogvCAqLwoJeycxJywgJzInLCAxODl9LAkvKiC9ICovCgl7JzMnLCAnNCcsIDE5MH0sCS8qIL4gKi8KCXsnficsICc/JywgMTkxfSwJLyogvyAqLwoJeydBJywgJ2AnLCAxOTJ9LAkvKiDAICovCgl7J0EnLCAnXCcnLCAxOTN9LAkvKiDBICovCgl7J0EnLCAnXicsIDE5NH0sCS8qIMIgKi8KCXsnQScsICd+JywgMTk1fSwJLyogwyAqLwoJeydBJywgJyInLCAxOTZ9LAkvKiDEICovCgl7J0EnLCAnQCcsIDE5N30sCS8qIMUgKi8KCXsnQScsICdBJywgMTk3fSwJLyogxSAqLwoJeydBJywgJ0UnLCAxOTh9LAkvKiDGICovCgl7J0MnLCAnLCcsIDE5OX0sCS8qIMcgKi8KCXsnRScsICdgJywgMjAwfSwJLyogyCAqLwoJeydFJywgJ1wnJywgMjAxfSwJLyogySAqLwoJeydFJywgJ14nLCAyMDJ9LAkvKiDKICovCgl7J0UnLCAnIicsIDIwM30sCS8qIMsgKi8KCXsnSScsICdgJywgMjA0fSwJLyogzCAqLwoJeydJJywgJ1wnJywgMjA1fSwJLyogzSAqLwoJeydJJywgJ14nLCAyMDZ9LAkvKiDOICovCgl7J0knLCAnIicsIDIwN30sCS8qIM8gKi8KCXsnRCcsICctJywgMjA4fSwJLyog0CAqLwoJeydOJywgJ34nLCAyMDl9LAkvKiDRICovCgl7J08nLCAnYCcsIDIxMH0sCS8qINIgKi8KCXsnTycsICdcJycsIDIxMX0sCS8qINMgKi8KCXsnTycsICdeJywgMjEyfSwJLyog1CAqLwoJeydPJywgJ34nLCAyMTN9LAkvKiDVICovCgl7J08nLCAnIicsIDIxNH0sCS8qINYgKi8KCXsnLycsICdcXCcsIDIxNX0sCS8qINcgLSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydPJywgJ0UnLCAyMTV9LAkvKiDXIC0gT0UgaW4gSVNPIDg4NTktMTUgKi8KCXsnTycsICcvJywgMjE2fSwJLyog2CAqLwoJeydVJywgJ2AnLCAyMTd9LAkvKiDZICovCgl7J1UnLCAnXCcnLCAyMTh9LAkvKiDaICovCgl7J1UnLCAnXicsIDIxOX0sCS8qINsgKi8KCXsnVScsICciJywgMjIwfSwJLyog3CAqLwoJeydZJywgJ1wnJywgMjIxfSwJLyog3SAqLwoJeydJJywgJ3AnLCAyMjJ9LAkvKiDeICovCgl7J3MnLCAncycsIDIyM30sCS8qIN8gKi8KCXsnYScsICdgJywgMjI0fSwJLyog4CAqLwoJeydhJywgJ1wnJywgMjI1fSwJLyog4SAqLwoJeydhJywgJ14nLCAyMjZ9LAkvKiDiICovCgl7J2EnLCAnficsIDIyN30sCS8qIOMgKi8KCXsnYScsICciJywgMjI4fSwJLyog5CAqLwoJeydhJywgJ0AnLCAyMjl9LAkvKiDlICovCgl7J2EnLCAnYScsIDIyOX0sCS8qIOUgKi8KCXsnYScsICdlJywgMjMwfSwJLyog5iAqLwoJeydjJywgJywnLCAyMzF9LAkvKiDnICovCgl7J2UnLCAnYCcsIDIzMn0sCS8qIOggKi8KCXsnZScsICdcJycsIDIzM30sCS8qIOkgKi8KCXsnZScsICdeJywgMjM0fSwJLyog6iAqLwoJeydlJywgJyInLCAyMzV9LAkvKiDrICovCgl7J2knLCAnYCcsIDIzNn0sCS8qIOwgKi8KCXsnaScsICdcJycsIDIzN30sCS8qIO0gKi8KCXsnaScsICdeJywgMjM4fSwJLyog7iAqLwoJeydpJywgJyInLCAyMzl9LAkvKiDvICovCgl7J2QnLCAnLScsIDI0MH0sCS8qIPAgKi8KCXsnbicsICd+JywgMjQxfSwJLyog8SAqLwoJeydvJywgJ2AnLCAyNDJ9LAkvKiDyICovCgl7J28nLCAnXCcnLCAyNDN9LAkvKiDzICovCgl7J28nLCAnXicsIDI0NH0sCS8qIPQgKi8KCXsnbycsICd+JywgMjQ1fSwJLyog9SAqLwoJeydvJywgJyInLCAyNDZ9LAkvKiD2ICovCgl7JzonLCAnLScsIDI0N30sCS8qIPcgLSBkaXZpc2lvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydvJywgJ2UnLCAyNDd9LAkvKiD3IC0gb2UgaW4gSVNPIDg4NTktMTUgKi8KCXsnbycsICcvJywgMjQ4fSwJLyog+CAqLwoJeyd1JywgJ2AnLCAyNDl9LAkvKiD5ICovCgl7J3UnLCAnXCcnLCAyNTB9LAkvKiD6ICovCgl7J3UnLCAnXicsIDI1MX0sCS8qIPsgKi8KCXsndScsICciJywgMjUyfSwJLyog/CAqLwoJeyd5JywgJ1wnJywgMjUzfSwJLyog/SAqLwoJeydpJywgJ3AnLCAyNTR9LAkvKiD+ICovCgl7J3knLCAnIicsIDI1NX0sCS8qIHggWFggKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKIyAgICAgZWxzZSAvKiBPTERfRElHUkFQSFMgKi8KCgkvKgoJICogZGlncmFwaHMgZm9yIFVuaWNvZGUgZnJvbSBSRkMxMzQ1CgkgKiAoYWxzbyB3b3JrIGZvciBJU08tODg1OS0xIGFrYSBsYXRpbjEpCgkgKi8KZGlncl9UCWRpZ3JhcGhkZWZhdWx0W10gPQogICAgICAgewoJeydOJywgJ1UnLCAweDBhfSwJLyogTEYgZm9yIE5VTCAqLwoJeydTJywgJ0gnLCAweDAxfSwKCXsnUycsICdYJywgMHgwMn0sCgl7J0UnLCAnWCcsIDB4MDN9LAoJeydFJywgJ1QnLCAweDA0fSwKCXsnRScsICdRJywgMHgwNX0sCgl7J0EnLCAnSycsIDB4MDZ9LAoJeydCJywgJ0wnLCAweDA3fSwKCXsnQicsICdTJywgMHgwOH0sCgl7J0gnLCAnVCcsIDB4MDl9LAoJeydMJywgJ0YnLCAweDBhfSwKCXsnVicsICdUJywgMHgwYn0sCgl7J0YnLCAnRicsIDB4MGN9LAoJeydDJywgJ1InLCAweDBkfSwKCXsnUycsICdPJywgMHgwZX0sCgl7J1MnLCAnSScsIDB4MGZ9LAoJeydEJywgJ0wnLCAweDEwfSwKCXsnRCcsICcxJywgMHgxMX0sCgl7J0QnLCAnMicsIDB4MTJ9LAoJeydEJywgJzMnLCAweDEzfSwKCXsnRCcsICc0JywgMHgxNH0sCgl7J04nLCAnSycsIDB4MTV9LAoJeydTJywgJ1knLCAweDE2fSwKCXsnRScsICdCJywgMHgxN30sCgl7J0MnLCAnTicsIDB4MTh9LAoJeydFJywgJ00nLCAweDE5fSwKCXsnUycsICdCJywgMHgxYX0sCgl7J0UnLCAnQycsIDB4MWJ9LAoJeydGJywgJ1MnLCAweDFjfSwKCXsnRycsICdTJywgMHgxZH0sCgl7J1InLCAnUycsIDB4MWV9LAoJeydVJywgJ1MnLCAweDFmfSwKCXsnUycsICdQJywgMHgyMH0sCgl7J04nLCAnYicsIDB4MjN9LAoJeydEJywgJ08nLCAweDI0fSwKCXsnQScsICd0JywgMHg0MH0sCgl7JzwnLCAnKCcsIDB4NWJ9LAoJeycvJywgJy8nLCAweDVjfSwKCXsnKScsICc+JywgMHg1ZH0sCgl7J1wnJywgJz4nLCAweDVlfSwKCXsnXCcnLCAnIScsIDB4NjB9LAoJeycoJywgJyEnLCAweDdifSwKCXsnIScsICchJywgMHg3Y30sCgl7JyEnLCAnKScsIDB4N2R9LAoJeydcJycsICc/JywgMHg3ZX0sCgl7J0QnLCAnVCcsIDB4N2Z9LAoJeydQJywgJ0EnLCAweDgwfSwKCXsnSCcsICdPJywgMHg4MX0sCgl7J0InLCAnSCcsIDB4ODJ9LAoJeydOJywgJ0gnLCAweDgzfSwKCXsnSScsICdOJywgMHg4NH0sCgl7J04nLCAnTCcsIDB4ODV9LAoJeydTJywgJ0EnLCAweDg2fSwKCXsnRScsICdTJywgMHg4N30sCgl7J0gnLCAnUycsIDB4ODh9LAoJeydIJywgJ0onLCAweDg5fSwKCXsnVicsICdTJywgMHg4YX0sCgl7J1AnLCAnRCcsIDB4OGJ9LAoJeydQJywgJ1UnLCAweDhjfSwKCXsnUicsICdJJywgMHg4ZH0sCgl7J1MnLCAnMicsIDB4OGV9LAoJeydTJywgJzMnLCAweDhmfSwKCXsnRCcsICdDJywgMHg5MH0sCgl7J1AnLCAnMScsIDB4OTF9LAoJeydQJywgJzInLCAweDkyfSwKCXsnVCcsICdTJywgMHg5M30sCgl7J0MnLCAnQycsIDB4OTR9LAoJeydNJywgJ1cnLCAweDk1fSwKCXsnUycsICdHJywgMHg5Nn0sCgl7J0UnLCAnRycsIDB4OTd9LAoJeydTJywgJ1MnLCAweDk4fSwKCXsnRycsICdDJywgMHg5OX0sCgl7J1MnLCAnQycsIDB4OWF9LAoJeydDJywgJ0knLCAweDlifSwKCXsnUycsICdUJywgMHg5Y30sCgl7J08nLCAnQycsIDB4OWR9LAoJeydQJywgJ00nLCAweDllfSwKCXsnQScsICdDJywgMHg5Zn0sCgl7J04nLCAnUycsIDB4YTB9LAoJeychJywgJ0knLCAweGExfSwKCXsnQycsICd0JywgMHhhMn0sCgl7J1AnLCAnZCcsIDB4YTN9LAoJeydDJywgJ3UnLCAweGE0fSwKCXsnWScsICdlJywgMHhhNX0sCgl7J0InLCAnQicsIDB4YTZ9LAoJeydTJywgJ0UnLCAweGE3fSwKCXsnXCcnLCAnOicsIDB4YTh9LAoJeydDJywgJ28nLCAweGE5fSwKCXsnLScsICdhJywgMHhhYX0sCgl7JzwnLCAnPCcsIDB4YWJ9LAoJeydOJywgJ08nLCAweGFjfSwKCXsnLScsICctJywgMHhhZH0sCgl7J1InLCAnZycsIDB4YWV9LAoJeydcJycsICdtJywgMHhhZn0sCgl7J0QnLCAnRycsIDB4YjB9LAoJeycrJywgJy0nLCAweGIxfSwKCXsnMicsICdTJywgMHhiMn0sCgl7JzMnLCAnUycsIDB4YjN9LAoJeydcJycsICdcJycsIDB4YjR9LAoJeydNJywgJ3knLCAweGI1fSwKCXsnUCcsICdJJywgMHhiNn0sCgl7Jy4nLCAnTScsIDB4Yjd9LAoJeydcJycsICcsJywgMHhiOH0sCgl7JzEnLCAnUycsIDB4Yjl9LAoJeyctJywgJ28nLCAweGJhfSwKCXsnPicsICc+JywgMHhiYn0sCgl7JzEnLCAnNCcsIDB4YmN9LAoJeycxJywgJzInLCAweGJkfSwKCXsnMycsICc0JywgMHhiZX0sCgl7Jz8nLCAnSScsIDB4YmZ9LAoJeydBJywgJyEnLCAweGMwfSwKCXsnQScsICdcJycsIDB4YzF9LAoJeydBJywgJz4nLCAweGMyfSwKCXsnQScsICc/JywgMHhjM30sCgl7J0EnLCAnOicsIDB4YzR9LAoJeydBJywgJ0EnLCAweGM1fSwKCXsnQScsICdFJywgMHhjNn0sCgl7J0MnLCAnLCcsIDB4Yzd9LAoJeydFJywgJyEnLCAweGM4fSwKCXsnRScsICdcJycsIDB4Yzl9LAoJeydFJywgJz4nLCAweGNhfSwKCXsnRScsICc6JywgMHhjYn0sCgl7J0knLCAnIScsIDB4Y2N9LAoJeydJJywgJ1wnJywgMHhjZH0sCgl7J0knLCAnPicsIDB4Y2V9LAoJeydJJywgJzonLCAweGNmfSwKCXsnRCcsICctJywgMHhkMH0sCgl7J04nLCAnPycsIDB4ZDF9LAoJeydPJywgJyEnLCAweGQyfSwKCXsnTycsICdcJycsIDB4ZDN9LAoJeydPJywgJz4nLCAweGQ0fSwKCXsnTycsICc/JywgMHhkNX0sCgl7J08nLCAnOicsIDB4ZDZ9LAoJeycqJywgJ1gnLCAweGQ3fSwKCXsnTycsICcvJywgMHhkOH0sCgl7J1UnLCAnIScsIDB4ZDl9LAoJeydVJywgJ1wnJywgMHhkYX0sCgl7J1UnLCAnPicsIDB4ZGJ9LAoJeydVJywgJzonLCAweGRjfSwKCXsnWScsICdcJycsIDB4ZGR9LAoJeydUJywgJ0gnLCAweGRlfSwKCXsncycsICdzJywgMHhkZn0sCgl7J2EnLCAnIScsIDB4ZTB9LAoJeydhJywgJ1wnJywgMHhlMX0sCgl7J2EnLCAnPicsIDB4ZTJ9LAoJeydhJywgJz8nLCAweGUzfSwKCXsnYScsICc6JywgMHhlNH0sCgl7J2EnLCAnYScsIDB4ZTV9LAoJeydhJywgJ2UnLCAweGU2fSwKCXsnYycsICcsJywgMHhlN30sCgl7J2UnLCAnIScsIDB4ZTh9LAoJeydlJywgJ1wnJywgMHhlOX0sCgl7J2UnLCAnPicsIDB4ZWF9LAoJeydlJywgJzonLCAweGVifSwKCXsnaScsICchJywgMHhlY30sCgl7J2knLCAnXCcnLCAweGVkfSwKCXsnaScsICc+JywgMHhlZX0sCgl7J2knLCAnOicsIDB4ZWZ9LAoJeydkJywgJy0nLCAweGYwfSwKCXsnbicsICc/JywgMHhmMX0sCgl7J28nLCAnIScsIDB4ZjJ9LAoJeydvJywgJ1wnJywgMHhmM30sCgl7J28nLCAnPicsIDB4ZjR9LAoJeydvJywgJz8nLCAweGY1fSwKCXsnbycsICc6JywgMHhmNn0sCgl7Jy0nLCAnOicsIDB4Zjd9LAoJeydvJywgJy8nLCAweGY4fSwKCXsndScsICchJywgMHhmOX0sCgl7J3UnLCAnXCcnLCAweGZhfSwKCXsndScsICc+JywgMHhmYn0sCgl7J3UnLCAnOicsIDB4ZmN9LAoJeyd5JywgJ1wnJywgMHhmZH0sCgl7J3QnLCAnaCcsIDB4ZmV9LAoJeyd5JywgJzonLCAweGZmfSwKCiMgICAgICBpZmRlZiBGRUFUX01CWVRFCiMJZGVmaW5lIFVTRV9VTklDT0RFX0RJR1JBUEhTCgoJeydBJywgJy0nLCAweDAxMDB9LAoJeydhJywgJy0nLCAweDAxMDF9LAoJeydBJywgJygnLCAweDAxMDJ9LAoJeydhJywgJygnLCAweDAxMDN9LAoJeydBJywgJzsnLCAweDAxMDR9LAoJeydhJywgJzsnLCAweDAxMDV9LAoJeydDJywgJ1wnJywgMHgwMTA2fSwKCXsnYycsICdcJycsIDB4MDEwN30sCgl7J0MnLCAnPicsIDB4MDEwOH0sCgl7J2MnLCAnPicsIDB4MDEwOX0sCgl7J0MnLCAnLicsIDB4MDEwYX0sCgl7J2MnLCAnLicsIDB4MDEwYn0sCgl7J0MnLCAnPCcsIDB4MDEwY30sCgl7J2MnLCAnPCcsIDB4MDEwZH0sCgl7J0QnLCAnPCcsIDB4MDEwZX0sCgl7J2QnLCAnPCcsIDB4MDEwZn0sCgl7J0QnLCAnLycsIDB4MDExMH0sCgl7J2QnLCAnLycsIDB4MDExMX0sCgl7J0UnLCAnLScsIDB4MDExMn0sCgl7J2UnLCAnLScsIDB4MDExM30sCgl7J0UnLCAnKCcsIDB4MDExNH0sCgl7J2UnLCAnKCcsIDB4MDExNX0sCgl7J0UnLCAnLicsIDB4MDExNn0sCgl7J2UnLCAnLicsIDB4MDExN30sCgl7J0UnLCAnOycsIDB4MDExOH0sCgl7J2UnLCAnOycsIDB4MDExOX0sCgl7J0UnLCAnPCcsIDB4MDExYX0sCgl7J2UnLCAnPCcsIDB4MDExYn0sCgl7J0cnLCAnPicsIDB4MDExY30sCgl7J2cnLCAnPicsIDB4MDExZH0sCgl7J0cnLCAnKCcsIDB4MDExZX0sCgl7J2cnLCAnKCcsIDB4MDExZn0sCgl7J0cnLCAnLicsIDB4MDEyMH0sCgl7J2cnLCAnLicsIDB4MDEyMX0sCgl7J0cnLCAnLCcsIDB4MDEyMn0sCgl7J2cnLCAnLCcsIDB4MDEyM30sCgl7J0gnLCAnPicsIDB4MDEyNH0sCgl7J2gnLCAnPicsIDB4MDEyNX0sCgl7J0gnLCAnLycsIDB4MDEyNn0sCgl7J2gnLCAnLycsIDB4MDEyN30sCgl7J0knLCAnPycsIDB4MDEyOH0sCgl7J2knLCAnPycsIDB4MDEyOX0sCgl7J0knLCAnLScsIDB4MDEyYX0sCgl7J2knLCAnLScsIDB4MDEyYn0sCgl7J0knLCAnKCcsIDB4MDEyY30sCgl7J2knLCAnKCcsIDB4MDEyZH0sCgl7J0knLCAnOycsIDB4MDEyZX0sCgl7J2knLCAnOycsIDB4MDEyZn0sCgl7J0knLCAnLicsIDB4MDEzMH0sCgl7J2knLCAnLicsIDB4MDEzMX0sCgl7J0knLCAnSicsIDB4MDEzMn0sCgl7J2knLCAnaicsIDB4MDEzM30sCgl7J0onLCAnPicsIDB4MDEzNH0sCgl7J2onLCAnPicsIDB4MDEzNX0sCgl7J0snLCAnLCcsIDB4MDEzNn0sCgl7J2snLCAnLCcsIDB4MDEzN30sCgl7J2snLCAnaycsIDB4MDEzOH0sCgl7J0wnLCAnXCcnLCAweDAxMzl9LAoJeydsJywgJ1wnJywgMHgwMTNhfSwKCXsnTCcsICcsJywgMHgwMTNifSwKCXsnbCcsICcsJywgMHgwMTNjfSwKCXsnTCcsICc8JywgMHgwMTNkfSwKCXsnbCcsICc8JywgMHgwMTNlfSwKCXsnTCcsICcuJywgMHgwMTNmfSwKCXsnbCcsICcuJywgMHgwMTQwfSwKCXsnTCcsICcvJywgMHgwMTQxfSwKCXsnbCcsICcvJywgMHgwMTQyfSwKCXsnTicsICdcJycsIDB4MDE0M30sCgl7J24nLCAnXCcnLCAweDAxNDR9LAoJeydOJywgJywnLCAweDAxNDV9LAoJeyduJywgJywnLCAweDAxNDZ9LAoJeydOJywgJzwnLCAweDAxNDd9LAoJeyduJywgJzwnLCAweDAxNDh9LAoJeydcJycsICduJywgMHgwMTQ5fSwKCXsnTicsICdHJywgMHgwMTRhfSwKCXsnbicsICdnJywgMHgwMTRifSwKCXsnTycsICctJywgMHgwMTRjfSwKCXsnbycsICctJywgMHgwMTRkfSwKCXsnTycsICcoJywgMHgwMTRlfSwKCXsnbycsICcoJywgMHgwMTRmfSwKCXsnTycsICciJywgMHgwMTUwfSwKCXsnbycsICciJywgMHgwMTUxfSwKCXsnTycsICdFJywgMHgwMTUyfSwKCXsnbycsICdlJywgMHgwMTUzfSwKCXsnUicsICdcJycsIDB4MDE1NH0sCgl7J3InLCAnXCcnLCAweDAxNTV9LAoJeydSJywgJywnLCAweDAxNTZ9LAoJeydyJywgJywnLCAweDAxNTd9LAoJeydSJywgJzwnLCAweDAxNTh9LAoJeydyJywgJzwnLCAweDAxNTl9LAoJeydTJywgJ1wnJywgMHgwMTVhfSwKCXsncycsICdcJycsIDB4MDE1Yn0sCgl7J1MnLCAnPicsIDB4MDE1Y30sCgl7J3MnLCAnPicsIDB4MDE1ZH0sCgl7J1MnLCAnLCcsIDB4MDE1ZX0sCgl7J3MnLCAnLCcsIDB4MDE1Zn0sCgl7J1MnLCAnPCcsIDB4MDE2MH0sCgl7J3MnLCAnPCcsIDB4MDE2MX0sCgl7J1QnLCAnLCcsIDB4MDE2Mn0sCgl7J3QnLCAnLCcsIDB4MDE2M30sCgl7J1QnLCAnPCcsIDB4MDE2NH0sCgl7J3QnLCAnPCcsIDB4MDE2NX0sCgl7J1QnLCAnLycsIDB4MDE2Nn0sCgl7J3QnLCAnLycsIDB4MDE2N30sCgl7J1UnLCAnPycsIDB4MDE2OH0sCgl7J3UnLCAnPycsIDB4MDE2OX0sCgl7J1UnLCAnLScsIDB4MDE2YX0sCgl7J3UnLCAnLScsIDB4MDE2Yn0sCgl7J1UnLCAnKCcsIDB4MDE2Y30sCgl7J3UnLCAnKCcsIDB4MDE2ZH0sCgl7J1UnLCAnMCcsIDB4MDE2ZX0sCgl7J3UnLCAnMCcsIDB4MDE2Zn0sCgl7J1UnLCAnIicsIDB4MDE3MH0sCgl7J3UnLCAnIicsIDB4MDE3MX0sCgl7J1UnLCAnOycsIDB4MDE3Mn0sCgl7J3UnLCAnOycsIDB4MDE3M30sCgl7J1cnLCAnPicsIDB4MDE3NH0sCgl7J3cnLCAnPicsIDB4MDE3NX0sCgl7J1knLCAnPicsIDB4MDE3Nn0sCgl7J3knLCAnPicsIDB4MDE3N30sCgl7J1knLCAnOicsIDB4MDE3OH0sCgl7J1onLCAnXCcnLCAweDAxNzl9LAoJeyd6JywgJ1wnJywgMHgwMTdhfSwKCXsnWicsICcuJywgMHgwMTdifSwKCXsneicsICcuJywgMHgwMTdjfSwKCXsnWicsICc8JywgMHgwMTdkfSwKCXsneicsICc8JywgMHgwMTdlfSwKCXsnTycsICc5JywgMHgwMWEwfSwKCXsnbycsICc5JywgMHgwMWExfSwKCXsnTycsICdJJywgMHgwMWEyfSwKCXsnbycsICdpJywgMHgwMWEzfSwKCXsneScsICdyJywgMHgwMWE2fSwKCXsnVScsICc5JywgMHgwMWFmfSwKCXsndScsICc5JywgMHgwMWIwfSwKCXsnWicsICcvJywgMHgwMWI1fSwKCXsneicsICcvJywgMHgwMWI2fSwKCXsnRScsICdEJywgMHgwMWI3fSwKCXsnQScsICc8JywgMHgwMWNkfSwKCXsnYScsICc8JywgMHgwMWNlfSwKCXsnSScsICc8JywgMHgwMWNmfSwKCXsnaScsICc8JywgMHgwMWQwfSwKCXsnTycsICc8JywgMHgwMWQxfSwKCXsnbycsICc8JywgMHgwMWQyfSwKCXsnVScsICc8JywgMHgwMWQzfSwKCXsndScsICc8JywgMHgwMWQ0fSwKCXsnQScsICcxJywgMHgwMWRlfSwKCXsnYScsICcxJywgMHgwMWRmfSwKCXsnQScsICc3JywgMHgwMWUwfSwKCXsnYScsICc3JywgMHgwMWUxfSwKCXsnQScsICczJywgMHgwMWUyfSwKCXsnYScsICczJywgMHgwMWUzfSwKCXsnRycsICcvJywgMHgwMWU0fSwKCXsnZycsICcvJywgMHgwMWU1fSwKCXsnRycsICc8JywgMHgwMWU2fSwKCXsnZycsICc8JywgMHgwMWU3fSwKCXsnSycsICc8JywgMHgwMWU4fSwKCXsnaycsICc8JywgMHgwMWU5fSwKCXsnTycsICc7JywgMHgwMWVhfSwKCXsnbycsICc7JywgMHgwMWVifSwKCXsnTycsICcxJywgMHgwMWVjfSwKCXsnbycsICcxJywgMHgwMWVkfSwKCXsnRScsICdaJywgMHgwMWVlfSwKCXsnZScsICd6JywgMHgwMWVmfSwKCXsnaicsICc8JywgMHgwMWYwfSwKCXsnRycsICdcJycsIDB4MDFmNH0sCgl7J2cnLCAnXCcnLCAweDAxZjV9LAoJeyc7JywgJ1MnLCAweDAyYmZ9LAoJeydcJycsICc8JywgMHgwMmM3fSwKCXsnXCcnLCAnKCcsIDB4MDJkOH0sCgl7J1wnJywgJy4nLCAweDAyZDl9LAoJeydcJycsICcwJywgMHgwMmRhfSwKCXsnXCcnLCAnOycsIDB4MDJkYn0sCgl7J1wnJywgJyInLCAweDAyZGR9LAoJeydBJywgJyUnLCAweDAzODZ9LAoJeydFJywgJyUnLCAweDAzODh9LAoJeydZJywgJyUnLCAweDAzODl9LAoJeydJJywgJyUnLCAweDAzOGF9LAoJeydPJywgJyUnLCAweDAzOGN9LAoJeydVJywgJyUnLCAweDAzOGV9LAoJeydXJywgJyUnLCAweDAzOGZ9LAoJeydpJywgJzMnLCAweDAzOTB9LAoJeydBJywgJyonLCAweDAzOTF9LAoJeydCJywgJyonLCAweDAzOTJ9LAoJeydHJywgJyonLCAweDAzOTN9LAoJeydEJywgJyonLCAweDAzOTR9LAoJeydFJywgJyonLCAweDAzOTV9LAoJeydaJywgJyonLCAweDAzOTZ9LAoJeydZJywgJyonLCAweDAzOTd9LAoJeydIJywgJyonLCAweDAzOTh9LAoJeydJJywgJyonLCAweDAzOTl9LAoJeydLJywgJyonLCAweDAzOWF9LAoJeydMJywgJyonLCAweDAzOWJ9LAoJeydNJywgJyonLCAweDAzOWN9LAoJeydOJywgJyonLCAweDAzOWR9LAoJeydDJywgJyonLCAweDAzOWV9LAoJeydPJywgJyonLCAweDAzOWZ9LAoJeydQJywgJyonLCAweDAzYTB9LAoJeydSJywgJyonLCAweDAzYTF9LAoJeydTJywgJyonLCAweDAzYTN9LAoJeydUJywgJyonLCAweDAzYTR9LAoJeydVJywgJyonLCAweDAzYTV9LAoJeydGJywgJyonLCAweDAzYTZ9LAoJeydYJywgJyonLCAweDAzYTd9LAoJeydRJywgJyonLCAweDAzYTh9LAoJeydXJywgJyonLCAweDAzYTl9LAoJeydKJywgJyonLCAweDAzYWF9LAoJeydWJywgJyonLCAweDAzYWJ9LAoJeydhJywgJyUnLCAweDAzYWN9LAoJeydlJywgJyUnLCAweDAzYWR9LAoJeyd5JywgJyUnLCAweDAzYWV9LAoJeydpJywgJyUnLCAweDAzYWZ9LAoJeyd1JywgJzMnLCAweDAzYjB9LAoJeydhJywgJyonLCAweDAzYjF9LAoJeydiJywgJyonLCAweDAzYjJ9LAoJeydnJywgJyonLCAweDAzYjN9LAoJeydkJywgJyonLCAweDAzYjR9LAoJeydlJywgJyonLCAweDAzYjV9LAoJeyd6JywgJyonLCAweDAzYjZ9LAoJeyd5JywgJyonLCAweDAzYjd9LAoJeydoJywgJyonLCAweDAzYjh9LAoJeydpJywgJyonLCAweDAzYjl9LAoJeydrJywgJyonLCAweDAzYmF9LAoJeydsJywgJyonLCAweDAzYmJ9LAoJeydtJywgJyonLCAweDAzYmN9LAoJeyduJywgJyonLCAweDAzYmR9LAoJeydjJywgJyonLCAweDAzYmV9LAoJeydvJywgJyonLCAweDAzYmZ9LAoJeydwJywgJyonLCAweDAzYzB9LAoJeydyJywgJyonLCAweDAzYzF9LAoJeycqJywgJ3MnLCAweDAzYzJ9LAoJeydzJywgJyonLCAweDAzYzN9LAoJeyd0JywgJyonLCAweDAzYzR9LAoJeyd1JywgJyonLCAweDAzYzV9LAoJeydmJywgJyonLCAweDAzYzZ9LAoJeyd4JywgJyonLCAweDAzYzd9LAoJeydxJywgJyonLCAweDAzYzh9LAoJeyd3JywgJyonLCAweDAzYzl9LAoJeydqJywgJyonLCAweDAzY2F9LAoJeyd2JywgJyonLCAweDAzY2J9LAoJeydvJywgJyUnLCAweDAzY2N9LAoJeyd1JywgJyUnLCAweDAzY2R9LAoJeyd3JywgJyUnLCAweDAzY2V9LAoJeydcJycsICdHJywgMHgwM2Q4fSwKCXsnLCcsICdHJywgMHgwM2Q5fSwKCXsnVCcsICczJywgMHgwM2RhfSwKCXsndCcsICczJywgMHgwM2RifSwKCXsnTScsICczJywgMHgwM2RjfSwKCXsnbScsICczJywgMHgwM2RkfSwKCXsnSycsICczJywgMHgwM2RlfSwKCXsnaycsICczJywgMHgwM2RmfSwKCXsnUCcsICczJywgMHgwM2UwfSwKCXsncCcsICczJywgMHgwM2UxfSwKCXsnXCcnLCAnJScsIDB4MDNmNH0sCgl7J2onLCAnMycsIDB4MDNmNX0sCgl7J0knLCAnTycsIDB4MDQwMX0sCgl7J0QnLCAnJScsIDB4MDQwMn0sCgl7J0cnLCAnJScsIDB4MDQwM30sCgl7J0knLCAnRScsIDB4MDQwNH0sCgl7J0QnLCAnUycsIDB4MDQwNX0sCgl7J0knLCAnSScsIDB4MDQwNn0sCgl7J1knLCAnSScsIDB4MDQwN30sCgl7J0onLCAnJScsIDB4MDQwOH0sCgl7J0wnLCAnSicsIDB4MDQwOX0sCgl7J04nLCAnSicsIDB4MDQwYX0sCgl7J1QnLCAncycsIDB4MDQwYn0sCgl7J0snLCAnSicsIDB4MDQwY30sCgl7J1YnLCAnJScsIDB4MDQwZX0sCgl7J0QnLCAnWicsIDB4MDQwZn0sCgl7J0EnLCAnPScsIDB4MDQxMH0sCgl7J0InLCAnPScsIDB4MDQxMX0sCgl7J1YnLCAnPScsIDB4MDQxMn0sCgl7J0cnLCAnPScsIDB4MDQxM30sCgl7J0QnLCAnPScsIDB4MDQxNH0sCgl7J0UnLCAnPScsIDB4MDQxNX0sCgl7J1onLCAnJScsIDB4MDQxNn0sCgl7J1onLCAnPScsIDB4MDQxN30sCgl7J0knLCAnPScsIDB4MDQxOH0sCgl7J0onLCAnPScsIDB4MDQxOX0sCgl7J0snLCAnPScsIDB4MDQxYX0sCgl7J0wnLCAnPScsIDB4MDQxYn0sCgl7J00nLCAnPScsIDB4MDQxY30sCgl7J04nLCAnPScsIDB4MDQxZH0sCgl7J08nLCAnPScsIDB4MDQxZX0sCgl7J1AnLCAnPScsIDB4MDQxZn0sCgl7J1InLCAnPScsIDB4MDQyMH0sCgl7J1MnLCAnPScsIDB4MDQyMX0sCgl7J1QnLCAnPScsIDB4MDQyMn0sCgl7J1UnLCAnPScsIDB4MDQyM30sCgl7J0YnLCAnPScsIDB4MDQyNH0sCgl7J0gnLCAnPScsIDB4MDQyNX0sCgl7J0MnLCAnPScsIDB4MDQyNn0sCgl7J0MnLCAnJScsIDB4MDQyN30sCgl7J1MnLCAnJScsIDB4MDQyOH0sCgl7J1MnLCAnYycsIDB4MDQyOX0sCgl7Jz0nLCAnIicsIDB4MDQyYX0sCgl7J1knLCAnPScsIDB4MDQyYn0sCgl7JyUnLCAnIicsIDB4MDQyY30sCgl7J0onLCAnRScsIDB4MDQyZH0sCgl7J0onLCAnVScsIDB4MDQyZX0sCgl7J0onLCAnQScsIDB4MDQyZn0sCgl7J2EnLCAnPScsIDB4MDQzMH0sCgl7J2InLCAnPScsIDB4MDQzMX0sCgl7J3YnLCAnPScsIDB4MDQzMn0sCgl7J2cnLCAnPScsIDB4MDQzM30sCgl7J2QnLCAnPScsIDB4MDQzNH0sCgl7J2UnLCAnPScsIDB4MDQzNX0sCgl7J3onLCAnJScsIDB4MDQzNn0sCgl7J3onLCAnPScsIDB4MDQzN30sCgl7J2knLCAnPScsIDB4MDQzOH0sCgl7J2onLCAnPScsIDB4MDQzOX0sCgl7J2snLCAnPScsIDB4MDQzYX0sCgl7J2wnLCAnPScsIDB4MDQzYn0sCgl7J20nLCAnPScsIDB4MDQzY30sCgl7J24nLCAnPScsIDB4MDQzZH0sCgl7J28nLCAnPScsIDB4MDQzZX0sCgl7J3AnLCAnPScsIDB4MDQzZn0sCgl7J3InLCAnPScsIDB4MDQ0MH0sCgl7J3MnLCAnPScsIDB4MDQ0MX0sCgl7J3QnLCAnPScsIDB4MDQ0Mn0sCgl7J3UnLCAnPScsIDB4MDQ0M30sCgl7J2YnLCAnPScsIDB4MDQ0NH0sCgl7J2gnLCAnPScsIDB4MDQ0NX0sCgl7J2MnLCAnPScsIDB4MDQ0Nn0sCgl7J2MnLCAnJScsIDB4MDQ0N30sCgl7J3MnLCAnJScsIDB4MDQ0OH0sCgl7J3MnLCAnYycsIDB4MDQ0OX0sCgl7Jz0nLCAnXCcnLCAweDA0NGF9LAoJeyd5JywgJz0nLCAweDA0NGJ9LAoJeyclJywgJ1wnJywgMHgwNDRjfSwKCXsnaicsICdlJywgMHgwNDRkfSwKCXsnaicsICd1JywgMHgwNDRlfSwKCXsnaicsICdhJywgMHgwNDRmfSwKCXsnaScsICdvJywgMHgwNDUxfSwKCXsnZCcsICclJywgMHgwNDUyfSwKCXsnZycsICclJywgMHgwNDUzfSwKCXsnaScsICdlJywgMHgwNDU0fSwKCXsnZCcsICdzJywgMHgwNDU1fSwKCXsnaScsICdpJywgMHgwNDU2fSwKCXsneScsICdpJywgMHgwNDU3fSwKCXsnaicsICclJywgMHgwNDU4fSwKCXsnbCcsICdqJywgMHgwNDU5fSwKCXsnbicsICdqJywgMHgwNDVhfSwKCXsndCcsICdzJywgMHgwNDVifSwKCXsnaycsICdqJywgMHgwNDVjfSwKCXsndicsICclJywgMHgwNDVlfSwKCXsnZCcsICd6JywgMHgwNDVmfSwKCXsnWScsICczJywgMHgwNDYyfSwKCXsneScsICczJywgMHgwNDYzfSwKCXsnTycsICczJywgMHgwNDZhfSwKCXsnbycsICczJywgMHgwNDZifSwKCXsnRicsICczJywgMHgwNDcyfSwKCXsnZicsICczJywgMHgwNDczfSwKCXsnVicsICczJywgMHgwNDc0fSwKCXsndicsICczJywgMHgwNDc1fSwKCXsnQycsICczJywgMHgwNDgwfSwKCXsnYycsICczJywgMHgwNDgxfSwKCXsnRycsICczJywgMHgwNDkwfSwKCXsnZycsICczJywgMHgwNDkxfSwKCXsnQScsICcrJywgMHgwNWQwfSwKCXsnQicsICcrJywgMHgwNWQxfSwKCXsnRycsICcrJywgMHgwNWQyfSwKCXsnRCcsICcrJywgMHgwNWQzfSwKCXsnSCcsICcrJywgMHgwNWQ0fSwKCXsnVycsICcrJywgMHgwNWQ1fSwKCXsnWicsICcrJywgMHgwNWQ2fSwKCXsnWCcsICcrJywgMHgwNWQ3fSwKCXsnVCcsICdqJywgMHgwNWQ4fSwKCXsnSicsICcrJywgMHgwNWQ5fSwKCXsnSycsICclJywgMHgwNWRhfSwKCXsnSycsICcrJywgMHgwNWRifSwKCXsnTCcsICcrJywgMHgwNWRjfSwKCXsnTScsICclJywgMHgwNWRkfSwKCXsnTScsICcrJywgMHgwNWRlfSwKCXsnTicsICclJywgMHgwNWRmfSwKCXsnTicsICcrJywgMHgwNWUwfSwKCXsnUycsICcrJywgMHgwNWUxfSwKCXsnRScsICcrJywgMHgwNWUyfSwKCXsnUCcsICclJywgMHgwNWUzfSwKCXsnUCcsICcrJywgMHgwNWU0fSwKCXsnWicsICdqJywgMHgwNWU1fSwKCXsnWicsICdKJywgMHgwNWU2fSwKCXsnUScsICcrJywgMHgwNWU3fSwKCXsnUicsICcrJywgMHgwNWU4fSwKCXsnUycsICdoJywgMHgwNWU5fSwKCXsnVCcsICcrJywgMHgwNWVhfSwKCXsnLCcsICcrJywgMHgwNjBjfSwKCXsnOycsICcrJywgMHgwNjFifSwKCXsnPycsICcrJywgMHgwNjFmfSwKCXsnSCcsICdcJycsIDB4MDYyMX0sCgl7J2EnLCAnTScsIDB4MDYyMn0sCgl7J2EnLCAnSCcsIDB4MDYyM30sCgl7J3cnLCAnSCcsIDB4MDYyNH0sCgl7J2EnLCAnaCcsIDB4MDYyNX0sCgl7J3knLCAnSCcsIDB4MDYyNn0sCgl7J2EnLCAnKycsIDB4MDYyN30sCgl7J2InLCAnKycsIDB4MDYyOH0sCgl7J3QnLCAnbScsIDB4MDYyOX0sCgl7J3QnLCAnKycsIDB4MDYyYX0sCgl7J3QnLCAnaycsIDB4MDYyYn0sCgl7J2cnLCAnKycsIDB4MDYyY30sCgl7J2gnLCAnaycsIDB4MDYyZH0sCgl7J3gnLCAnKycsIDB4MDYyZX0sCgl7J2QnLCAnKycsIDB4MDYyZn0sCgl7J2QnLCAnaycsIDB4MDYzMH0sCgl7J3InLCAnKycsIDB4MDYzMX0sCgl7J3onLCAnKycsIDB4MDYzMn0sCgl7J3MnLCAnKycsIDB4MDYzM30sCgl7J3MnLCAnbicsIDB4MDYzNH0sCgl7J2MnLCAnKycsIDB4MDYzNX0sCgl7J2QnLCAnZCcsIDB4MDYzNn0sCgl7J3QnLCAnaicsIDB4MDYzN30sCgl7J3onLCAnSCcsIDB4MDYzOH0sCgl7J2UnLCAnKycsIDB4MDYzOX0sCgl7J2knLCAnKycsIDB4MDYzYX0sCgl7JysnLCAnKycsIDB4MDY0MH0sCgl7J2YnLCAnKycsIDB4MDY0MX0sCgl7J3EnLCAnKycsIDB4MDY0Mn0sCgl7J2snLCAnKycsIDB4MDY0M30sCgl7J2wnLCAnKycsIDB4MDY0NH0sCgl7J20nLCAnKycsIDB4MDY0NX0sCgl7J24nLCAnKycsIDB4MDY0Nn0sCgl7J2gnLCAnKycsIDB4MDY0N30sCgl7J3cnLCAnKycsIDB4MDY0OH0sCgl7J2onLCAnKycsIDB4MDY0OX0sCgl7J3knLCAnKycsIDB4MDY0YX0sCgl7JzonLCAnKycsIDB4MDY0Yn0sCgl7JyInLCAnKycsIDB4MDY0Y30sCgl7Jz0nLCAnKycsIDB4MDY0ZH0sCgl7Jy8nLCAnKycsIDB4MDY0ZX0sCgl7J1wnJywgJysnLCAweDA2NGZ9LAoJeycxJywgJysnLCAweDA2NTB9LAoJeyczJywgJysnLCAweDA2NTF9LAoJeycwJywgJysnLCAweDA2NTJ9LAoJeydhJywgJ1MnLCAweDA2NzB9LAoJeydwJywgJysnLCAweDA2N2V9LAoJeyd2JywgJysnLCAweDA2YTR9LAoJeydnJywgJ2YnLCAweDA2YWZ9LAoJeycwJywgJ2EnLCAweDA2ZjB9LAoJeycxJywgJ2EnLCAweDA2ZjF9LAoJeycyJywgJ2EnLCAweDA2ZjJ9LAoJeyczJywgJ2EnLCAweDA2ZjN9LAoJeyc0JywgJ2EnLCAweDA2ZjR9LAoJeyc1JywgJ2EnLCAweDA2ZjV9LAoJeyc2JywgJ2EnLCAweDA2ZjZ9LAoJeyc3JywgJ2EnLCAweDA2Zjd9LAoJeyc4JywgJ2EnLCAweDA2Zjh9LAoJeyc5JywgJ2EnLCAweDA2Zjl9LAoJeydCJywgJy4nLCAweDFlMDJ9LAoJeydiJywgJy4nLCAweDFlMDN9LAoJeydCJywgJ18nLCAweDFlMDZ9LAoJeydiJywgJ18nLCAweDFlMDd9LAoJeydEJywgJy4nLCAweDFlMGF9LAoJeydkJywgJy4nLCAweDFlMGJ9LAoJeydEJywgJ18nLCAweDFlMGV9LAoJeydkJywgJ18nLCAweDFlMGZ9LAoJeydEJywgJywnLCAweDFlMTB9LAoJeydkJywgJywnLCAweDFlMTF9LAoJeydGJywgJy4nLCAweDFlMWV9LAoJeydmJywgJy4nLCAweDFlMWZ9LAoJeydHJywgJy0nLCAweDFlMjB9LAoJeydnJywgJy0nLCAweDFlMjF9LAoJeydIJywgJy4nLCAweDFlMjJ9LAoJeydoJywgJy4nLCAweDFlMjN9LAoJeydIJywgJzonLCAweDFlMjZ9LAoJeydoJywgJzonLCAweDFlMjd9LAoJeydIJywgJywnLCAweDFlMjh9LAoJeydoJywgJywnLCAweDFlMjl9LAoJeydLJywgJ1wnJywgMHgxZTMwfSwKCXsnaycsICdcJycsIDB4MWUzMX0sCgl7J0snLCAnXycsIDB4MWUzNH0sCgl7J2snLCAnXycsIDB4MWUzNX0sCgl7J0wnLCAnXycsIDB4MWUzYX0sCgl7J2wnLCAnXycsIDB4MWUzYn0sCgl7J00nLCAnXCcnLCAweDFlM2V9LAoJeydtJywgJ1wnJywgMHgxZTNmfSwKCXsnTScsICcuJywgMHgxZTQwfSwKCXsnbScsICcuJywgMHgxZTQxfSwKCXsnTicsICcuJywgMHgxZTQ0fSwKCXsnbicsICcuJywgMHgxZTQ1fSwKCXsnTicsICdfJywgMHgxZTQ4fSwKCXsnbicsICdfJywgMHgxZTQ5fSwKCXsnUCcsICdcJycsIDB4MWU1NH0sCgl7J3AnLCAnXCcnLCAweDFlNTV9LAoJeydQJywgJy4nLCAweDFlNTZ9LAoJeydwJywgJy4nLCAweDFlNTd9LAoJeydSJywgJy4nLCAweDFlNTh9LAoJeydyJywgJy4nLCAweDFlNTl9LAoJeydSJywgJ18nLCAweDFlNWV9LAoJeydyJywgJ18nLCAweDFlNWZ9LAoJeydTJywgJy4nLCAweDFlNjB9LAoJeydzJywgJy4nLCAweDFlNjF9LAoJeydUJywgJy4nLCAweDFlNmF9LAoJeyd0JywgJy4nLCAweDFlNmJ9LAoJeydUJywgJ18nLCAweDFlNmV9LAoJeyd0JywgJ18nLCAweDFlNmZ9LAoJeydWJywgJz8nLCAweDFlN2N9LAoJeyd2JywgJz8nLCAweDFlN2R9LAoJeydXJywgJyEnLCAweDFlODB9LAoJeyd3JywgJyEnLCAweDFlODF9LAoJeydXJywgJ1wnJywgMHgxZTgyfSwKCXsndycsICdcJycsIDB4MWU4M30sCgl7J1cnLCAnOicsIDB4MWU4NH0sCgl7J3cnLCAnOicsIDB4MWU4NX0sCgl7J1cnLCAnLicsIDB4MWU4Nn0sCgl7J3cnLCAnLicsIDB4MWU4N30sCgl7J1gnLCAnLicsIDB4MWU4YX0sCgl7J3gnLCAnLicsIDB4MWU4Yn0sCgl7J1gnLCAnOicsIDB4MWU4Y30sCgl7J3gnLCAnOicsIDB4MWU4ZH0sCgl7J1knLCAnLicsIDB4MWU4ZX0sCgl7J3knLCAnLicsIDB4MWU4Zn0sCgl7J1onLCAnPicsIDB4MWU5MH0sCgl7J3onLCAnPicsIDB4MWU5MX0sCgl7J1onLCAnXycsIDB4MWU5NH0sCgl7J3onLCAnXycsIDB4MWU5NX0sCgl7J2gnLCAnXycsIDB4MWU5Nn0sCgl7J3QnLCAnOicsIDB4MWU5N30sCgl7J3cnLCAnMCcsIDB4MWU5OH0sCgl7J3knLCAnMCcsIDB4MWU5OX0sCgl7J0EnLCAnMicsIDB4MWVhMn0sCgl7J2EnLCAnMicsIDB4MWVhM30sCgl7J0UnLCAnMicsIDB4MWViYX0sCgl7J2UnLCAnMicsIDB4MWViYn0sCgl7J0UnLCAnPycsIDB4MWViY30sCgl7J2UnLCAnPycsIDB4MWViZH0sCgl7J0knLCAnMicsIDB4MWVjOH0sCgl7J2knLCAnMicsIDB4MWVjOX0sCgl7J08nLCAnMicsIDB4MWVjZX0sCgl7J28nLCAnMicsIDB4MWVjZn0sCgl7J1UnLCAnMicsIDB4MWVlNn0sCgl7J3UnLCAnMicsIDB4MWVlN30sCgl7J1knLCAnIScsIDB4MWVmMn0sCgl7J3knLCAnIScsIDB4MWVmM30sCgl7J1knLCAnMicsIDB4MWVmNn0sCgl7J3knLCAnMicsIDB4MWVmN30sCgl7J1knLCAnPycsIDB4MWVmOH0sCgl7J3knLCAnPycsIDB4MWVmOX0sCgl7JzsnLCAnXCcnLCAweDFmMDB9LAoJeycsJywgJ1wnJywgMHgxZjAxfSwKCXsnOycsICchJywgMHgxZjAyfSwKCXsnLCcsICchJywgMHgxZjAzfSwKCXsnPycsICc7JywgMHgxZjA0fSwKCXsnPycsICcsJywgMHgxZjA1fSwKCXsnIScsICc6JywgMHgxZjA2fSwKCXsnPycsICc6JywgMHgxZjA3fSwKCXsnMScsICdOJywgMHgyMDAyfSwKCXsnMScsICdNJywgMHgyMDAzfSwKCXsnMycsICdNJywgMHgyMDA0fSwKCXsnNCcsICdNJywgMHgyMDA1fSwKCXsnNicsICdNJywgMHgyMDA2fSwKCXsnMScsICdUJywgMHgyMDA5fSwKCXsnMScsICdIJywgMHgyMDBhfSwKCXsnLScsICcxJywgMHgyMDEwfSwKCXsnLScsICdOJywgMHgyMDEzfSwKCXsnLScsICdNJywgMHgyMDE0fSwKCXsnLScsICczJywgMHgyMDE1fSwKCXsnIScsICcyJywgMHgyMDE2fSwKCXsnPScsICcyJywgMHgyMDE3fSwKCXsnXCcnLCAnNicsIDB4MjAxOH0sCgl7J1wnJywgJzknLCAweDIwMTl9LAoJeycuJywgJzknLCAweDIwMWF9LAoJeyc5JywgJ1wnJywgMHgyMDFifSwKCXsnIicsICc2JywgMHgyMDFjfSwKCXsnIicsICc5JywgMHgyMDFkfSwKCXsnOicsICc5JywgMHgyMDFlfSwKCXsnOScsICciJywgMHgyMDFmfSwKCXsnLycsICctJywgMHgyMDIwfSwKCXsnLycsICc9JywgMHgyMDIxfSwKCXsnLicsICcuJywgMHgyMDI1fSwKCXsnJScsICcwJywgMHgyMDMwfSwKCXsnMScsICdcJycsIDB4MjAzMn0sCgl7JzInLCAnXCcnLCAweDIwMzN9LAoJeyczJywgJ1wnJywgMHgyMDM0fSwKCXsnMScsICciJywgMHgyMDM1fSwKCXsnMicsICciJywgMHgyMDM2fSwKCXsnMycsICciJywgMHgyMDM3fSwKCXsnQycsICdhJywgMHgyMDM4fSwKCXsnPCcsICcxJywgMHgyMDM5fSwKCXsnPicsICcxJywgMHgyMDNhfSwKCXsnOicsICdYJywgMHgyMDNifSwKCXsnXCcnLCAnLScsIDB4MjAzZX0sCgl7Jy8nLCAnZicsIDB4MjA0NH0sCgl7JzAnLCAnUycsIDB4MjA3MH0sCgl7JzQnLCAnUycsIDB4MjA3NH0sCgl7JzUnLCAnUycsIDB4MjA3NX0sCgl7JzYnLCAnUycsIDB4MjA3Nn0sCgl7JzcnLCAnUycsIDB4MjA3N30sCgl7JzgnLCAnUycsIDB4MjA3OH0sCgl7JzknLCAnUycsIDB4MjA3OX0sCgl7JysnLCAnUycsIDB4MjA3YX0sCgl7Jy0nLCAnUycsIDB4MjA3Yn0sCgl7Jz0nLCAnUycsIDB4MjA3Y30sCgl7JygnLCAnUycsIDB4MjA3ZH0sCgl7JyknLCAnUycsIDB4MjA3ZX0sCgl7J24nLCAnUycsIDB4MjA3Zn0sCgl7JzAnLCAncycsIDB4MjA4MH0sCgl7JzEnLCAncycsIDB4MjA4MX0sCgl7JzInLCAncycsIDB4MjA4Mn0sCgl7JzMnLCAncycsIDB4MjA4M30sCgl7JzQnLCAncycsIDB4MjA4NH0sCgl7JzUnLCAncycsIDB4MjA4NX0sCgl7JzYnLCAncycsIDB4MjA4Nn0sCgl7JzcnLCAncycsIDB4MjA4N30sCgl7JzgnLCAncycsIDB4MjA4OH0sCgl7JzknLCAncycsIDB4MjA4OX0sCgl7JysnLCAncycsIDB4MjA4YX0sCgl7Jy0nLCAncycsIDB4MjA4Yn0sCgl7Jz0nLCAncycsIDB4MjA4Y30sCgl7JygnLCAncycsIDB4MjA4ZH0sCgl7JyknLCAncycsIDB4MjA4ZX0sCgl7J0wnLCAnaScsIDB4MjBhNH0sCgl7J1AnLCAndCcsIDB4MjBhN30sCgl7J1cnLCAnPScsIDB4MjBhOX0sCgl7Jz0nLCAnZScsIDB4MjBhY30sIC8qIGV1cm8gKi8KCXsnbycsICdDJywgMHgyMTAzfSwKCXsnYycsICdvJywgMHgyMTA1fSwKCXsnbycsICdGJywgMHgyMTA5fSwKCXsnTicsICcwJywgMHgyMTE2fSwKCXsnUCcsICdPJywgMHgyMTE3fSwKCXsnUicsICd4JywgMHgyMTFlfSwKCXsnUycsICdNJywgMHgyMTIwfSwKCXsnVCcsICdNJywgMHgyMTIyfSwKCXsnTycsICdtJywgMHgyMTI2fSwKCXsnQScsICdPJywgMHgyMTJifSwKCXsnMScsICczJywgMHgyMTUzfSwKCXsnMicsICczJywgMHgyMTU0fSwKCXsnMScsICc1JywgMHgyMTU1fSwKCXsnMicsICc1JywgMHgyMTU2fSwKCXsnMycsICc1JywgMHgyMTU3fSwKCXsnNCcsICc1JywgMHgyMTU4fSwKCXsnMScsICc2JywgMHgyMTU5fSwKCXsnNScsICc2JywgMHgyMTVhfSwKCXsnMScsICc4JywgMHgyMTVifSwKCXsnMycsICc4JywgMHgyMTVjfSwKCXsnNScsICc4JywgMHgyMTVkfSwKCXsnNycsICc4JywgMHgyMTVlfSwKCXsnMScsICdSJywgMHgyMTYwfSwKCXsnMicsICdSJywgMHgyMTYxfSwKCXsnMycsICdSJywgMHgyMTYyfSwKCXsnNCcsICdSJywgMHgyMTYzfSwKCXsnNScsICdSJywgMHgyMTY0fSwKCXsnNicsICdSJywgMHgyMTY1fSwKCXsnNycsICdSJywgMHgyMTY2fSwKCXsnOCcsICdSJywgMHgyMTY3fSwKCXsnOScsICdSJywgMHgyMTY4fSwKCXsnYScsICdSJywgMHgyMTY5fSwKCXsnYicsICdSJywgMHgyMTZhfSwKCXsnYycsICdSJywgMHgyMTZifSwKCXsnMScsICdyJywgMHgyMTcwfSwKCXsnMicsICdyJywgMHgyMTcxfSwKCXsnMycsICdyJywgMHgyMTcyfSwKCXsnNCcsICdyJywgMHgyMTczfSwKCXsnNScsICdyJywgMHgyMTc0fSwKCXsnNicsICdyJywgMHgyMTc1fSwKCXsnNycsICdyJywgMHgyMTc2fSwKCXsnOCcsICdyJywgMHgyMTc3fSwKCXsnOScsICdyJywgMHgyMTc4fSwKCXsnYScsICdyJywgMHgyMTc5fSwKCXsnYicsICdyJywgMHgyMTdhfSwKCXsnYycsICdyJywgMHgyMTdifSwKCXsnPCcsICctJywgMHgyMTkwfSwKCXsnLScsICchJywgMHgyMTkxfSwKCXsnLScsICc+JywgMHgyMTkyfSwKCXsnLScsICd2JywgMHgyMTkzfSwKCXsnPCcsICc+JywgMHgyMTk0fSwKCXsnVScsICdEJywgMHgyMTk1fSwKCXsnPCcsICc9JywgMHgyMWQwfSwKCXsnPScsICc+JywgMHgyMWQyfSwKCXsnPScsICc9JywgMHgyMWQ0fSwKCXsnRicsICdBJywgMHgyMjAwfSwKCXsnZCcsICdQJywgMHgyMjAyfSwKCXsnVCcsICdFJywgMHgyMjAzfSwKCXsnLycsICcwJywgMHgyMjA1fSwKCXsnRCcsICdFJywgMHgyMjA2fSwKCXsnTicsICdCJywgMHgyMjA3fSwKCXsnKCcsICctJywgMHgyMjA4fSwKCXsnLScsICcpJywgMHgyMjBifSwKCXsnKicsICdQJywgMHgyMjBmfSwKCXsnKycsICdaJywgMHgyMjExfSwKCXsnLScsICcyJywgMHgyMjEyfSwKCXsnLScsICcrJywgMHgyMjEzfSwKCXsnKicsICctJywgMHgyMjE3fSwKCXsnTycsICdiJywgMHgyMjE4fSwKCXsnUycsICdiJywgMHgyMjE5fSwKCXsnUicsICdUJywgMHgyMjFhfSwKCXsnMCcsICcoJywgMHgyMjFkfSwKCXsnMCcsICcwJywgMHgyMjFlfSwKCXsnLScsICdMJywgMHgyMjFmfSwKCXsnLScsICdWJywgMHgyMjIwfSwKCXsnUCcsICdQJywgMHgyMjI1fSwKCXsnQScsICdOJywgMHgyMjI3fSwKCXsnTycsICdSJywgMHgyMjI4fSwKCXsnKCcsICdVJywgMHgyMjI5fSwKCXsnKScsICdVJywgMHgyMjJhfSwKCXsnSScsICduJywgMHgyMjJifSwKCXsnRCcsICdJJywgMHgyMjJjfSwKCXsnSScsICdvJywgMHgyMjJlfSwKCXsnLicsICc6JywgMHgyMjM0fSwKCXsnOicsICcuJywgMHgyMjM1fSwKCXsnOicsICdSJywgMHgyMjM2fSwKCXsnOicsICc6JywgMHgyMjM3fSwKCXsnPycsICcxJywgMHgyMjNjfSwKCXsnQycsICdHJywgMHgyMjNlfSwKCXsnPycsICctJywgMHgyMjQzfSwKCXsnPycsICc9JywgMHgyMjQ1fSwKCXsnPycsICcyJywgMHgyMjQ4fSwKCXsnPScsICc/JywgMHgyMjRjfSwKCXsnSCcsICdJJywgMHgyMjUzfSwKCXsnIScsICc9JywgMHgyMjYwfSwKCXsnPScsICczJywgMHgyMjYxfSwKCXsnPScsICc8JywgMHgyMjY0fSwKCXsnPicsICc9JywgMHgyMjY1fSwKCXsnPCcsICcqJywgMHgyMjZhfSwKCXsnKicsICc+JywgMHgyMjZifSwKCXsnIScsICc8JywgMHgyMjZlfSwKCXsnIScsICc+JywgMHgyMjZmfSwKCXsnKCcsICdDJywgMHgyMjgyfSwKCXsnKScsICdDJywgMHgyMjgzfSwKCXsnKCcsICdfJywgMHgyMjg2fSwKCXsnKScsICdfJywgMHgyMjg3fSwKCXsnMCcsICcuJywgMHgyMjk5fSwKCXsnMCcsICcyJywgMHgyMjlhfSwKCXsnLScsICdUJywgMHgyMmE1fSwKCXsnLicsICdQJywgMHgyMmM1fSwKCXsnOicsICczJywgMHgyMmVlfSwKCXsnLicsICczJywgMHgyMmVmfSwKCXsnRScsICdoJywgMHgyMzAyfSwKCXsnPCcsICc3JywgMHgyMzA4fSwKCXsnPicsICc3JywgMHgyMzA5fSwKCXsnNycsICc8JywgMHgyMzBhfSwKCXsnNycsICc+JywgMHgyMzBifSwKCXsnTicsICdJJywgMHgyMzEwfSwKCXsnKCcsICdBJywgMHgyMzEyfSwKCXsnVCcsICdSJywgMHgyMzE1fSwKCXsnSScsICd1JywgMHgyMzIwfSwKCXsnSScsICdsJywgMHgyMzIxfSwKCXsnPCcsICcvJywgMHgyMzI5fSwKCXsnLycsICc+JywgMHgyMzJhfSwKCXsnVicsICdzJywgMHgyNDIzfSwKCXsnMScsICdoJywgMHgyNDQwfSwKCXsnMycsICdoJywgMHgyNDQxfSwKCXsnMicsICdoJywgMHgyNDQyfSwKCXsnNCcsICdoJywgMHgyNDQzfSwKCXsnMScsICdqJywgMHgyNDQ2fSwKCXsnMicsICdqJywgMHgyNDQ3fSwKCXsnMycsICdqJywgMHgyNDQ4fSwKCXsnNCcsICdqJywgMHgyNDQ5fSwKCXsnMScsICcuJywgMHgyNDg4fSwKCXsnMicsICcuJywgMHgyNDg5fSwKCXsnMycsICcuJywgMHgyNDhhfSwKCXsnNCcsICcuJywgMHgyNDhifSwKCXsnNScsICcuJywgMHgyNDhjfSwKCXsnNicsICcuJywgMHgyNDhkfSwKCXsnNycsICcuJywgMHgyNDhlfSwKCXsnOCcsICcuJywgMHgyNDhmfSwKCXsnOScsICcuJywgMHgyNDkwfSwKCXsnaCcsICdoJywgMHgyNTAwfSwKCXsnSCcsICdIJywgMHgyNTAxfSwKCXsndicsICd2JywgMHgyNTAyfSwKCXsnVicsICdWJywgMHgyNTAzfSwKCXsnMycsICctJywgMHgyNTA0fSwKCXsnMycsICdfJywgMHgyNTA1fSwKCXsnMycsICchJywgMHgyNTA2fSwKCXsnMycsICcvJywgMHgyNTA3fSwKCXsnNCcsICctJywgMHgyNTA4fSwKCXsnNCcsICdfJywgMHgyNTA5fSwKCXsnNCcsICchJywgMHgyNTBhfSwKCXsnNCcsICcvJywgMHgyNTBifSwKCXsnZCcsICdyJywgMHgyNTBjfSwKCXsnZCcsICdSJywgMHgyNTBkfSwKCXsnRCcsICdyJywgMHgyNTBlfSwKCXsnRCcsICdSJywgMHgyNTBmfSwKCXsnZCcsICdsJywgMHgyNTEwfSwKCXsnZCcsICdMJywgMHgyNTExfSwKCXsnRCcsICdsJywgMHgyNTEyfSwKCXsnTCcsICdEJywgMHgyNTEzfSwKCXsndScsICdyJywgMHgyNTE0fSwKCXsndScsICdSJywgMHgyNTE1fSwKCXsnVScsICdyJywgMHgyNTE2fSwKCXsnVScsICdSJywgMHgyNTE3fSwKCXsndScsICdsJywgMHgyNTE4fSwKCXsndScsICdMJywgMHgyNTE5fSwKCXsnVScsICdsJywgMHgyNTFhfSwKCXsnVScsICdMJywgMHgyNTFifSwKCXsndicsICdyJywgMHgyNTFjfSwKCXsndicsICdSJywgMHgyNTFkfSwKCXsnVicsICdyJywgMHgyNTIwfSwKCXsnVicsICdSJywgMHgyNTIzfSwKCXsndicsICdsJywgMHgyNTI0fSwKCXsndicsICdMJywgMHgyNTI1fSwKCXsnVicsICdsJywgMHgyNTI4fSwKCXsnVicsICdMJywgMHgyNTJifSwKCXsnZCcsICdoJywgMHgyNTJjfSwKCXsnZCcsICdIJywgMHgyNTJmfSwKCXsnRCcsICdoJywgMHgyNTMwfSwKCXsnRCcsICdIJywgMHgyNTMzfSwKCXsndScsICdoJywgMHgyNTM0fSwKCXsndScsICdIJywgMHgyNTM3fSwKCXsnVScsICdoJywgMHgyNTM4fSwKCXsnVScsICdIJywgMHgyNTNifSwKCXsndicsICdoJywgMHgyNTNjfSwKCXsndicsICdIJywgMHgyNTNmfSwKCXsnVicsICdoJywgMHgyNTQyfSwKCXsnVicsICdIJywgMHgyNTRifSwKCXsnRicsICdEJywgMHgyNTcxfSwKCXsnQicsICdEJywgMHgyNTcyfSwKCXsnVCcsICdCJywgMHgyNTgwfSwKCXsnTCcsICdCJywgMHgyNTg0fSwKCXsnRicsICdCJywgMHgyNTg4fSwKCXsnbCcsICdCJywgMHgyNThjfSwKCXsnUicsICdCJywgMHgyNTkwfSwKCXsnLicsICdTJywgMHgyNTkxfSwKCXsnOicsICdTJywgMHgyNTkyfSwKCXsnPycsICdTJywgMHgyNTkzfSwKCXsnZicsICdTJywgMHgyNWEwfSwKCXsnTycsICdTJywgMHgyNWExfSwKCXsnUicsICdPJywgMHgyNWEyfSwKCXsnUicsICdyJywgMHgyNWEzfSwKCXsnUicsICdGJywgMHgyNWE0fSwKCXsnUicsICdZJywgMHgyNWE1fSwKCXsnUicsICdIJywgMHgyNWE2fSwKCXsnUicsICdaJywgMHgyNWE3fSwKCXsnUicsICdLJywgMHgyNWE4fSwKCXsnUicsICdYJywgMHgyNWE5fSwKCXsncycsICdCJywgMHgyNWFhfSwKCXsnUycsICdSJywgMHgyNWFjfSwKCXsnTycsICdyJywgMHgyNWFkfSwKCXsnVScsICdUJywgMHgyNWIyfSwKCXsndScsICdUJywgMHgyNWIzfSwKCXsnUCcsICdSJywgMHgyNWI2fSwKCXsnVCcsICdyJywgMHgyNWI3fSwKCXsnRCcsICd0JywgMHgyNWJjfSwKCXsnZCcsICdUJywgMHgyNWJkfSwKCXsnUCcsICdMJywgMHgyNWMwfSwKCXsnVCcsICdsJywgMHgyNWMxfSwKCXsnRCcsICdiJywgMHgyNWM2fSwKCXsnRCcsICd3JywgMHgyNWM3fSwKCXsnTCcsICdaJywgMHgyNWNhfSwKCXsnMCcsICdtJywgMHgyNWNifSwKCXsnMCcsICdvJywgMHgyNWNlfSwKCXsnMCcsICdNJywgMHgyNWNmfSwKCXsnMCcsICdMJywgMHgyNWQwfSwKCXsnMCcsICdSJywgMHgyNWQxfSwKCXsnUycsICduJywgMHgyNWQ4fSwKCXsnSScsICdjJywgMHgyNWQ5fSwKCXsnRicsICdkJywgMHgyNWUyfSwKCXsnQicsICdkJywgMHgyNWUzfSwKCXsnKicsICcyJywgMHgyNjA1fSwKCXsnKicsICcxJywgMHgyNjA2fSwKCXsnPCcsICdIJywgMHgyNjFjfSwKCXsnPicsICdIJywgMHgyNjFlfSwKCXsnMCcsICd1JywgMHgyNjNhfSwKCXsnMCcsICdVJywgMHgyNjNifSwKCXsnUycsICdVJywgMHgyNjNjfSwKCXsnRicsICdtJywgMHgyNjQwfSwKCXsnTScsICdsJywgMHgyNjQyfSwKCXsnYycsICdTJywgMHgyNjYwfSwKCXsnYycsICdIJywgMHgyNjYxfSwKCXsnYycsICdEJywgMHgyNjYyfSwKCXsnYycsICdDJywgMHgyNjYzfSwKCXsnTScsICdkJywgMHgyNjY5fSwKCXsnTScsICc4JywgMHgyNjZhfSwKCXsnTScsICcyJywgMHgyNjZifSwKCXsnTScsICdiJywgMHgyNjZkfSwKCXsnTScsICd4JywgMHgyNjZlfSwKCXsnTScsICdYJywgMHgyNjZmfSwKCXsnTycsICdLJywgMHgyNzEzfSwKCXsnWCcsICdYJywgMHgyNzE3fSwKCXsnLScsICdYJywgMHgyNzIwfSwKCXsnSScsICdTJywgMHgzMDAwfSwKCXsnLCcsICdfJywgMHgzMDAxfSwKCXsnLicsICdfJywgMHgzMDAyfSwKCXsnKycsICciJywgMHgzMDAzfSwKCXsnKycsICdfJywgMHgzMDA0fSwKCXsnKicsICdfJywgMHgzMDA1fSwKCXsnOycsICdfJywgMHgzMDA2fSwKCXsnMCcsICdfJywgMHgzMDA3fSwKCXsnPCcsICcrJywgMHgzMDBhfSwKCXsnPicsICcrJywgMHgzMDBifSwKCXsnPCcsICdcJycsIDB4MzAwY30sCgl7Jz4nLCAnXCcnLCAweDMwMGR9LAoJeyc8JywgJyInLCAweDMwMGV9LAoJeyc+JywgJyInLCAweDMwMGZ9LAoJeycoJywgJyInLCAweDMwMTB9LAoJeycpJywgJyInLCAweDMwMTF9LAoJeyc9JywgJ1QnLCAweDMwMTJ9LAoJeyc9JywgJ18nLCAweDMwMTN9LAoJeycoJywgJ1wnJywgMHgzMDE0fSwKCXsnKScsICdcJycsIDB4MzAxNX0sCgl7JygnLCAnSScsIDB4MzAxNn0sCgl7JyknLCAnSScsIDB4MzAxN30sCgl7Jy0nLCAnPycsIDB4MzAxY30sCgl7J0EnLCAnNScsIDB4MzA0MX0sCgl7J2EnLCAnNScsIDB4MzA0Mn0sCgl7J0knLCAnNScsIDB4MzA0M30sCgl7J2knLCAnNScsIDB4MzA0NH0sCgl7J1UnLCAnNScsIDB4MzA0NX0sCgl7J3UnLCAnNScsIDB4MzA0Nn0sCgl7J0UnLCAnNScsIDB4MzA0N30sCgl7J2UnLCAnNScsIDB4MzA0OH0sCgl7J08nLCAnNScsIDB4MzA0OX0sCgl7J28nLCAnNScsIDB4MzA0YX0sCgl7J2snLCAnYScsIDB4MzA0Yn0sCgl7J2cnLCAnYScsIDB4MzA0Y30sCgl7J2snLCAnaScsIDB4MzA0ZH0sCgl7J2cnLCAnaScsIDB4MzA0ZX0sCgl7J2snLCAndScsIDB4MzA0Zn0sCgl7J2cnLCAndScsIDB4MzA1MH0sCgl7J2snLCAnZScsIDB4MzA1MX0sCgl7J2cnLCAnZScsIDB4MzA1Mn0sCgl7J2snLCAnbycsIDB4MzA1M30sCgl7J2cnLCAnbycsIDB4MzA1NH0sCgl7J3MnLCAnYScsIDB4MzA1NX0sCgl7J3onLCAnYScsIDB4MzA1Nn0sCgl7J3MnLCAnaScsIDB4MzA1N30sCgl7J3onLCAnaScsIDB4MzA1OH0sCgl7J3MnLCAndScsIDB4MzA1OX0sCgl7J3onLCAndScsIDB4MzA1YX0sCgl7J3MnLCAnZScsIDB4MzA1Yn0sCgl7J3onLCAnZScsIDB4MzA1Y30sCgl7J3MnLCAnbycsIDB4MzA1ZH0sCgl7J3onLCAnbycsIDB4MzA1ZX0sCgl7J3QnLCAnYScsIDB4MzA1Zn0sCgl7J2QnLCAnYScsIDB4MzA2MH0sCgl7J3QnLCAnaScsIDB4MzA2MX0sCgl7J2QnLCAnaScsIDB4MzA2Mn0sCgl7J3QnLCAnVScsIDB4MzA2M30sCgl7J3QnLCAndScsIDB4MzA2NH0sCgl7J2QnLCAndScsIDB4MzA2NX0sCgl7J3QnLCAnZScsIDB4MzA2Nn0sCgl7J2QnLCAnZScsIDB4MzA2N30sCgl7J3QnLCAnbycsIDB4MzA2OH0sCgl7J2QnLCAnbycsIDB4MzA2OX0sCgl7J24nLCAnYScsIDB4MzA2YX0sCgl7J24nLCAnaScsIDB4MzA2Yn0sCgl7J24nLCAndScsIDB4MzA2Y30sCgl7J24nLCAnZScsIDB4MzA2ZH0sCgl7J24nLCAnbycsIDB4MzA2ZX0sCgl7J2gnLCAnYScsIDB4MzA2Zn0sCgl7J2InLCAnYScsIDB4MzA3MH0sCgl7J3AnLCAnYScsIDB4MzA3MX0sCgl7J2gnLCAnaScsIDB4MzA3Mn0sCgl7J2InLCAnaScsIDB4MzA3M30sCgl7J3AnLCAnaScsIDB4MzA3NH0sCgl7J2gnLCAndScsIDB4MzA3NX0sCgl7J2InLCAndScsIDB4MzA3Nn0sCgl7J3AnLCAndScsIDB4MzA3N30sCgl7J2gnLCAnZScsIDB4MzA3OH0sCgl7J2InLCAnZScsIDB4MzA3OX0sCgl7J3AnLCAnZScsIDB4MzA3YX0sCgl7J2gnLCAnbycsIDB4MzA3Yn0sCgl7J2InLCAnbycsIDB4MzA3Y30sCgl7J3AnLCAnbycsIDB4MzA3ZH0sCgl7J20nLCAnYScsIDB4MzA3ZX0sCgl7J20nLCAnaScsIDB4MzA3Zn0sCgl7J20nLCAndScsIDB4MzA4MH0sCgl7J20nLCAnZScsIDB4MzA4MX0sCgl7J20nLCAnbycsIDB4MzA4Mn0sCgl7J3knLCAnQScsIDB4MzA4M30sCgl7J3knLCAnYScsIDB4MzA4NH0sCgl7J3knLCAnVScsIDB4MzA4NX0sCgl7J3knLCAndScsIDB4MzA4Nn0sCgl7J3knLCAnTycsIDB4MzA4N30sCgl7J3knLCAnbycsIDB4MzA4OH0sCgl7J3InLCAnYScsIDB4MzA4OX0sCgl7J3InLCAnaScsIDB4MzA4YX0sCgl7J3InLCAndScsIDB4MzA4Yn0sCgl7J3InLCAnZScsIDB4MzA4Y30sCgl7J3InLCAnbycsIDB4MzA4ZH0sCgl7J3cnLCAnQScsIDB4MzA4ZX0sCgl7J3cnLCAnYScsIDB4MzA4Zn0sCgl7J3cnLCAnaScsIDB4MzA5MH0sCgl7J3cnLCAnZScsIDB4MzA5MX0sCgl7J3cnLCAnbycsIDB4MzA5Mn0sCgl7J24nLCAnNScsIDB4MzA5M30sCgl7J3YnLCAndScsIDB4MzA5NH0sCgl7JyInLCAnNScsIDB4MzA5Yn0sCgl7JzAnLCAnNScsIDB4MzA5Y30sCgl7JyonLCAnNScsIDB4MzA5ZH0sCgl7JysnLCAnNScsIDB4MzA5ZX0sCgl7J2EnLCAnNicsIDB4MzBhMX0sCgl7J0EnLCAnNicsIDB4MzBhMn0sCgl7J2knLCAnNicsIDB4MzBhM30sCgl7J0knLCAnNicsIDB4MzBhNH0sCgl7J3UnLCAnNicsIDB4MzBhNX0sCgl7J1UnLCAnNicsIDB4MzBhNn0sCgl7J2UnLCAnNicsIDB4MzBhN30sCgl7J0UnLCAnNicsIDB4MzBhOH0sCgl7J28nLCAnNicsIDB4MzBhOX0sCgl7J08nLCAnNicsIDB4MzBhYX0sCgl7J0snLCAnYScsIDB4MzBhYn0sCgl7J0cnLCAnYScsIDB4MzBhY30sCgl7J0snLCAnaScsIDB4MzBhZH0sCgl7J0cnLCAnaScsIDB4MzBhZX0sCgl7J0snLCAndScsIDB4MzBhZn0sCgl7J0cnLCAndScsIDB4MzBiMH0sCgl7J0snLCAnZScsIDB4MzBiMX0sCgl7J0cnLCAnZScsIDB4MzBiMn0sCgl7J0snLCAnbycsIDB4MzBiM30sCgl7J0cnLCAnbycsIDB4MzBiNH0sCgl7J1MnLCAnYScsIDB4MzBiNX0sCgl7J1onLCAnYScsIDB4MzBiNn0sCgl7J1MnLCAnaScsIDB4MzBiN30sCgl7J1onLCAnaScsIDB4MzBiOH0sCgl7J1MnLCAndScsIDB4MzBiOX0sCgl7J1onLCAndScsIDB4MzBiYX0sCgl7J1MnLCAnZScsIDB4MzBiYn0sCgl7J1onLCAnZScsIDB4MzBiY30sCgl7J1MnLCAnbycsIDB4MzBiZH0sCgl7J1onLCAnbycsIDB4MzBiZX0sCgl7J1QnLCAnYScsIDB4MzBiZn0sCgl7J0QnLCAnYScsIDB4MzBjMH0sCgl7J1QnLCAnaScsIDB4MzBjMX0sCgl7J0QnLCAnaScsIDB4MzBjMn0sCgl7J1QnLCAnVScsIDB4MzBjM30sCgl7J1QnLCAndScsIDB4MzBjNH0sCgl7J0QnLCAndScsIDB4MzBjNX0sCgl7J1QnLCAnZScsIDB4MzBjNn0sCgl7J0QnLCAnZScsIDB4MzBjN30sCgl7J1QnLCAnbycsIDB4MzBjOH0sCgl7J0QnLCAnbycsIDB4MzBjOX0sCgl7J04nLCAnYScsIDB4MzBjYX0sCgl7J04nLCAnaScsIDB4MzBjYn0sCgl7J04nLCAndScsIDB4MzBjY30sCgl7J04nLCAnZScsIDB4MzBjZH0sCgl7J04nLCAnbycsIDB4MzBjZX0sCgl7J0gnLCAnYScsIDB4MzBjZn0sCgl7J0InLCAnYScsIDB4MzBkMH0sCgl7J1AnLCAnYScsIDB4MzBkMX0sCgl7J0gnLCAnaScsIDB4MzBkMn0sCgl7J0InLCAnaScsIDB4MzBkM30sCgl7J1AnLCAnaScsIDB4MzBkNH0sCgl7J0gnLCAndScsIDB4MzBkNX0sCgl7J0InLCAndScsIDB4MzBkNn0sCgl7J1AnLCAndScsIDB4MzBkN30sCgl7J0gnLCAnZScsIDB4MzBkOH0sCgl7J0InLCAnZScsIDB4MzBkOX0sCgl7J1AnLCAnZScsIDB4MzBkYX0sCgl7J0gnLCAnbycsIDB4MzBkYn0sCgl7J0InLCAnbycsIDB4MzBkY30sCgl7J1AnLCAnbycsIDB4MzBkZH0sCgl7J00nLCAnYScsIDB4MzBkZX0sCgl7J00nLCAnaScsIDB4MzBkZn0sCgl7J00nLCAndScsIDB4MzBlMH0sCgl7J00nLCAnZScsIDB4MzBlMX0sCgl7J00nLCAnbycsIDB4MzBlMn0sCgl7J1knLCAnQScsIDB4MzBlM30sCgl7J1knLCAnYScsIDB4MzBlNH0sCgl7J1knLCAnVScsIDB4MzBlNX0sCgl7J1knLCAndScsIDB4MzBlNn0sCgl7J1knLCAnTycsIDB4MzBlN30sCgl7J1knLCAnbycsIDB4MzBlOH0sCgl7J1InLCAnYScsIDB4MzBlOX0sCgl7J1InLCAnaScsIDB4MzBlYX0sCgl7J1InLCAndScsIDB4MzBlYn0sCgl7J1InLCAnZScsIDB4MzBlY30sCgl7J1InLCAnbycsIDB4MzBlZH0sCgl7J1cnLCAnQScsIDB4MzBlZX0sCgl7J1cnLCAnYScsIDB4MzBlZn0sCgl7J1cnLCAnaScsIDB4MzBmMH0sCgl7J1cnLCAnZScsIDB4MzBmMX0sCgl7J1cnLCAnbycsIDB4MzBmMn0sCgl7J04nLCAnNicsIDB4MzBmM30sCgl7J1YnLCAndScsIDB4MzBmNH0sCgl7J0snLCAnQScsIDB4MzBmNX0sCgl7J0snLCAnRScsIDB4MzBmNn0sCgl7J1YnLCAnYScsIDB4MzBmN30sCgl7J1YnLCAnaScsIDB4MzBmOH0sCgl7J1YnLCAnZScsIDB4MzBmOX0sCgl7J1YnLCAnbycsIDB4MzBmYX0sCgl7Jy4nLCAnNicsIDB4MzBmYn0sCgl7Jy0nLCAnNicsIDB4MzBmY30sCgl7JyonLCAnNicsIDB4MzBmZH0sCgl7JysnLCAnNicsIDB4MzBmZX0sCgl7J2InLCAnNCcsIDB4MzEwNX0sCgl7J3AnLCAnNCcsIDB4MzEwNn0sCgl7J20nLCAnNCcsIDB4MzEwN30sCgl7J2YnLCAnNCcsIDB4MzEwOH0sCgl7J2QnLCAnNCcsIDB4MzEwOX0sCgl7J3QnLCAnNCcsIDB4MzEwYX0sCgl7J24nLCAnNCcsIDB4MzEwYn0sCgl7J2wnLCAnNCcsIDB4MzEwY30sCgl7J2cnLCAnNCcsIDB4MzEwZH0sCgl7J2snLCAnNCcsIDB4MzEwZX0sCgl7J2gnLCAnNCcsIDB4MzEwZn0sCgl7J2onLCAnNCcsIDB4MzExMH0sCgl7J3EnLCAnNCcsIDB4MzExMX0sCgl7J3gnLCAnNCcsIDB4MzExMn0sCgl7J3onLCAnaCcsIDB4MzExM30sCgl7J2MnLCAnaCcsIDB4MzExNH0sCgl7J3MnLCAnaCcsIDB4MzExNX0sCgl7J3InLCAnNCcsIDB4MzExNn0sCgl7J3onLCAnNCcsIDB4MzExN30sCgl7J2MnLCAnNCcsIDB4MzExOH0sCgl7J3MnLCAnNCcsIDB4MzExOX0sCgl7J2EnLCAnNCcsIDB4MzExYX0sCgl7J28nLCAnNCcsIDB4MzExYn0sCgl7J2UnLCAnNCcsIDB4MzExY30sCgl7J2EnLCAnaScsIDB4MzExZX0sCgl7J2UnLCAnaScsIDB4MzExZn0sCgl7J2EnLCAndScsIDB4MzEyMH0sCgl7J28nLCAndScsIDB4MzEyMX0sCgl7J2EnLCAnbicsIDB4MzEyMn0sCgl7J2UnLCAnbicsIDB4MzEyM30sCgl7J2EnLCAnTicsIDB4MzEyNH0sCgl7J2UnLCAnTicsIDB4MzEyNX0sCgl7J2UnLCAncicsIDB4MzEyNn0sCgl7J2knLCAnNCcsIDB4MzEyN30sCgl7J3UnLCAnNCcsIDB4MzEyOH0sCgl7J2knLCAndScsIDB4MzEyOX0sCgl7J3YnLCAnNCcsIDB4MzEyYX0sCgl7J24nLCAnRycsIDB4MzEyYn0sCgl7J2cnLCAnbicsIDB4MzEyY30sCgl7JzEnLCAnYycsIDB4MzIyMH0sCgl7JzInLCAnYycsIDB4MzIyMX0sCgl7JzMnLCAnYycsIDB4MzIyMn0sCgl7JzQnLCAnYycsIDB4MzIyM30sCgl7JzUnLCAnYycsIDB4MzIyNH0sCgl7JzYnLCAnYycsIDB4MzIyNX0sCgl7JzcnLCAnYycsIDB4MzIyNn0sCgl7JzgnLCAnYycsIDB4MzIyN30sCgl7JzknLCAnYycsIDB4MzIyOH0sCgl7JyAnLCAnICcsIDB4ZTAwMH0sCgl7Jy8nLCAnYycsIDB4ZTAwMX0sCgl7J1UnLCAnQScsIDB4ZTAwMn0sCgl7J1UnLCAnQicsIDB4ZTAwM30sCgl7JyInLCAnMycsIDB4ZTAwNH0sCgl7JyInLCAnMScsIDB4ZTAwNX0sCgl7JyInLCAnIScsIDB4ZTAwNn0sCgl7JyInLCAnXCcnLCAweGUwMDd9LAoJeyciJywgJz4nLCAweGUwMDh9LAoJeyciJywgJz8nLCAweGUwMDl9LAoJeyciJywgJy0nLCAweGUwMGF9LAoJeyciJywgJygnLCAweGUwMGJ9LAoJeyciJywgJy4nLCAweGUwMGN9LAoJeyciJywgJzonLCAweGUwMGR9LAoJeyciJywgJzAnLCAweGUwMGV9LAoJeyciJywgJyInLCAweGUwMGZ9LAoJeyciJywgJzwnLCAweGUwMTB9LAoJeyciJywgJywnLCAweGUwMTF9LAoJeyciJywgJzsnLCAweGUwMTJ9LAoJeyciJywgJ18nLCAweGUwMTN9LAoJeyciJywgJz0nLCAweGUwMTR9LAoJeyciJywgJy8nLCAweGUwMTV9LAoJeyciJywgJ2knLCAweGUwMTZ9LAoJeyciJywgJ2QnLCAweGUwMTd9LAoJeyciJywgJ3AnLCAweGUwMTh9LAoJeyc7JywgJzsnLCAweGUwMTl9LAoJeycsJywgJywnLCAweGUwMWF9LAoJeydiJywgJzMnLCAweGUwMWJ9LAoJeydDJywgJ2knLCAweGUwMWN9LAoJeydmJywgJygnLCAweGUwMWR9LAoJeydlJywgJ2QnLCAweGUwMWV9LAoJeydhJywgJ20nLCAweGUwMWZ9LAoJeydwJywgJ20nLCAweGUwMjB9LAoJeydGJywgJ2wnLCAweGUwMjN9LAoJeydHJywgJ0YnLCAweGUwMjR9LAoJeyc+JywgJ1YnLCAweGUwMjV9LAoJeychJywgJyonLCAweGUwMjZ9LAoJeyc/JywgJyonLCAweGUwMjd9LAoJeydKJywgJzwnLCAweGUwMjh9LAoJeydmJywgJ2YnLCAweGZiMDB9LAoJeydmJywgJ2knLCAweGZiMDF9LAoJeydmJywgJ2wnLCAweGZiMDJ9LAoJeydmJywgJ3QnLCAweGZiMDV9LAoJeydzJywgJ3QnLCAweGZiMDZ9LAojICAgICAgZW5kaWYgLyogRkVBVF9NQllURSAqLwoJe05VTCwgTlVMLCBOVUx9CiAgICAgICB9OwoKIyAgICAgZW5kaWYgLyogT0xEX0RJR1JBUEhTICovCgojICAgIGVuZGlmIC8qIE1hY2ludG9zaCAqLwojICAgZW5kaWYgLyogRUJDRElDICovCiMgIGVuZGlmICAgIC8qICFIUFVYX0RJR1JBUEhTICovCiMgZW5kaWYJLyogIV9fTUlOVF9fICovCiNlbmRpZgkvKiAhTVNET1MgJiYgIU9TMiAqLwoKLyoKICogaGFuZGxlIGRpZ3JhcGhzIGFmdGVyIHR5cGluZyBhIGNoYXJhY3RlcgogKi8KICAgIGludApkb19kaWdyYXBoKGMpCiAgICBpbnQJICAgIGM7CnsKICAgIHN0YXRpYyBpbnQJYmFja3NwYWNlZDsJLyogY2hhcmFjdGVyIGJlZm9yZSBLX0JTICovCiAgICBzdGF0aWMgaW50CWxhc3RjaGFyOwkvKiBsYXN0IHR5cGVkIGNoYXJhY3RlciAqLwoKICAgIGlmIChjID09IC0xKQkJLyogaW5pdCB2YWx1ZXMgKi8KICAgIHsKCWJhY2tzcGFjZWQgPSAtMTsKICAgIH0KICAgIGVsc2UgaWYgKHBfZGcpCiAgICB7CglpZiAoYmFja3NwYWNlZCA+PSAwKQoJICAgIGMgPSBnZXRkaWdyYXBoKGJhY2tzcGFjZWQsIGMsIEZBTFNFKTsKCWJhY2tzcGFjZWQgPSAtMTsKCWlmICgoYyA9PSBLX0JTIHx8IGMgPT0gQ3RybF9IKSAmJiBsYXN0Y2hhciA+PSAwKQoJICAgIGJhY2tzcGFjZWQgPSBsYXN0Y2hhcjsKICAgIH0KICAgIGxhc3RjaGFyID0gYzsKICAgIHJldHVybiBjOwp9CgovKgogKiBHZXQgYSBkaWdyYXBoLiAgVXNlZCBhZnRlciB0eXBpbmcgQ1RSTC1LIG9uIHRoZSBjb21tYW5kIGxpbmUgb3IgaW4gbm9ybWFsCiAqIG1vZGUuCiAqIFJldHVybnMgY29tcG9zZWQgY2hhcmFjdGVyLCBvciBOVUwgd2hlbiBFU0Mgd2FzIHVzZWQuCiAqLwogICAgaW50CmdldF9kaWdyYXBoKGNtZGxpbmUpCiAgICBpbnQJCWNtZGxpbmU7CS8qIFRSVUUgd2hlbiBjYWxsZWQgZnJvbSB0aGUgY21kbGluZSAqLwp7CiAgICBpbnQJCWMsIGNjOwoKICAgICsrbm9fbWFwcGluZzsKICAgICsrYWxsb3dfa2V5czsKICAgIGMgPSBzYWZlX3ZnZXRjKCk7CiAgICAtLW5vX21hcHBpbmc7CiAgICAtLWFsbG93X2tleXM7CiAgICBpZiAoYyAhPSBFU0MpCQkvKiBFU0MgY2FuY2VscyBDVFJMLUsgKi8KICAgIHsKCWlmIChJU19TUEVDSUFMKGMpKQkvKiBpbnNlcnQgc3BlY2lhbCBrZXkgY29kZSAqLwoJICAgIHJldHVybiBjOwoJaWYgKGNtZGxpbmUpCgl7CgkgICAgaWYgKGNoYXIyY2VsbHMoYykgPT0gMQojaWYgZGVmaW5lZChGRUFUX0NSWVBUKSB8fCBkZWZpbmVkKEZFQVRfRVZBTCkKCQkgICAgJiYgY21kbGluZV9zdGFyID09IDAKI2VuZGlmCgkJICAgICkKCQlwdXRjbWRsaW5lKGMsIFRSVUUpOwoJfQojaWZkZWYgRkVBVF9DTURMX0lORk8KCWVsc2UKCSAgICBhZGRfdG9fc2hvd2NtZChjKTsKI2VuZGlmCgkrK25vX21hcHBpbmc7CgkrK2FsbG93X2tleXM7CgljYyA9IHNhZmVfdmdldGMoKTsKCS0tbm9fbWFwcGluZzsKCS0tYWxsb3dfa2V5czsKCWlmIChjYyAhPSBFU0MpCSAgICAvKiBFU0MgY2FuY2VscyBDVFJMLUsgKi8KCSAgICByZXR1cm4gZ2V0ZGlncmFwaChjLCBjYywgVFJVRSk7CiAgICB9CiAgICByZXR1cm4gTlVMOwp9CgovKgogKiBMb29rdXAgdGhlIHBhaXIgImNoYXIxIiwgImNoYXIyIiBpbiB0aGUgZGlncmFwaCB0YWJsZXMuCiAqIElmIG5vIG1hdGNoLCByZXR1cm4gImNoYXIyIi4KICogSWYgIm1ldGEiIGlzIFRSVUUgYW5kICJjaGFyMSIgaXMgYSBzcGFjZSwgcmV0dXJuICJjaGFyMiIgfCAweDgwLgogKi8KICAgIHN0YXRpYyBpbnQKZ2V0ZXhhY3RkaWdyYXBoKGNoYXIxLCBjaGFyMiwgbWV0YSkKICAgIGludAkJY2hhcjE7CiAgICBpbnQJCWNoYXIyOwogICAgaW50CQltZXRhOwp7CiAgICBpbnQJCWk7CiAgICBpbnQJCXJldHZhbCA9IDA7CiAgICBkaWdyX1QJKmRwOwoKICAgIGlmIChJU19TUEVDSUFMKGNoYXIxKSB8fCBJU19TUEVDSUFMKGNoYXIyKSkKCXJldHVybiBjaGFyMjsKCiAgICAvKgogICAgICogU2VhcmNoIHVzZXIgZGlncmFwaHMgZmlyc3QuCiAgICAgKi8KICAgIGRwID0gKGRpZ3JfVCAqKXVzZXJfZGlncmFwaHMuZ2FfZGF0YTsKICAgIGZvciAoaSA9IDA7IGkgPCB1c2VyX2RpZ3JhcGhzLmdhX2xlbjsgKytpKQogICAgewoJaWYgKChpbnQpZHAtPmNoYXIxID09IGNoYXIxICYmIChpbnQpZHAtPmNoYXIyID09IGNoYXIyKQoJewoJICAgIHJldHZhbCA9IGRwLT5yZXN1bHQ7CgkgICAgYnJlYWs7Cgl9CgkrK2RwOwogICAgfQoKICAgIC8qCiAgICAgKiBTZWFyY2ggZGVmYXVsdCBkaWdyYXBocy4KICAgICAqLwogICAgaWYgKHJldHZhbCA9PSAwKQogICAgewoJZHAgPSBkaWdyYXBoZGVmYXVsdDsKCWZvciAoaSA9IDA7IGRwLT5jaGFyMSAhPSAwOyArK2kpCgl7CgkgICAgaWYgKChpbnQpZHAtPmNoYXIxID09IGNoYXIxICYmIChpbnQpZHAtPmNoYXIyID09IGNoYXIyKQoJICAgIHsKCQlyZXR2YWwgPSBkcC0+cmVzdWx0OwoJCWJyZWFrOwoJICAgIH0KCSAgICArK2RwOwoJfQogICAgfQojaWZkZWYgRkVBVF9NQllURQojIGlmZGVmIFVTRV9VTklDT0RFX0RJR1JBUEhTCiAgICBpZiAocmV0dmFsICE9IDAgJiYgIWVuY191dGY4KQogICAgewoJY2hhcl91CSAgICBidWZbNl0sICp0bzsKCXZpbWNvbnZfVCAgIHZjOwoKCS8qCgkgKiBDb252ZXJ0IHRoZSBVbmljb2RlIGRpZ3JhcGggdG8gJ2VuY29kaW5nJy4KCSAqLwoJaSA9IHV0Zl9jaGFyMmJ5dGVzKHJldHZhbCwgYnVmKTsKCXJldHZhbCA9IDA7Cgl2Yy52Y190eXBlID0gQ09OVl9OT05FOwoJaWYgKGNvbnZlcnRfc2V0dXAoJnZjLCAoY2hhcl91ICopInV0Zi04IiwgcF9lbmMpID09IE9LKQoJewoJICAgIHZjLnZjX2ZhaWwgPSBUUlVFOwoJICAgIHRvID0gc3RyaW5nX2NvbnZlcnQoJnZjLCBidWYsICZpKTsKCSAgICBpZiAodG8gIT0gTlVMTCkKCSAgICB7CgkJcmV0dmFsID0gKCptYl9wdHIyY2hhcikodG8pOwoJCXZpbV9mcmVlKHRvKTsKCSAgICB9CgkgICAgKHZvaWQpY29udmVydF9zZXR1cCgmdmMsIE5VTEwsIE5VTEwpOwoJfQogICAgfQojIGVuZGlmCgogICAgLyogSWdub3JlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyB3aGVuIG5vdCBpbiBtdWx0aS1ieXRlIG1vZGUuICovCiAgICBpZiAoIWhhc19tYnl0ZSAmJiByZXR2YWwgPiAweGZmKQoJcmV0dmFsID0gMDsKI2VuZGlmCgogICAgaWYgKHJldHZhbCA9PSAwKQkJLyogZGlncmFwaCBkZWxldGVkIG9yIG5vdCBmb3VuZCAqLwogICAgewoJaWYgKGNoYXIxID09ICcgJyAmJiBtZXRhKQkvKiA8c3BhY2U+IDxjaGFyPiAtLT4gbWV0YS1jaGFyICovCgkgICAgcmV0dXJuIChjaGFyMiB8IDB4ODApOwoJcmV0dXJuIGNoYXIyOwogICAgfQogICAgcmV0dXJuIHJldHZhbDsKfQoKLyoKICogR2V0IGRpZ3JhcGguCiAqIEFsbG93IGZvciBib3RoIGNoYXIxLWNoYXIyIGFuZCBjaGFyMi1jaGFyMQogKi8KICAgIGludApnZXRkaWdyYXBoKGNoYXIxLCBjaGFyMiwgbWV0YSkKICAgIGludAljaGFyMTsKICAgIGludAljaGFyMjsKICAgIGludAltZXRhOwp7CiAgICBpbnQJICAgIHJldHZhbDsKCiAgICBpZiAoKChyZXR2YWwgPSBnZXRleGFjdGRpZ3JhcGgoY2hhcjEsIGNoYXIyLCBtZXRhKSkgPT0gY2hhcjIpCgkgICAgJiYgKGNoYXIxICE9IGNoYXIyKQoJICAgICYmICgocmV0dmFsID0gZ2V0ZXhhY3RkaWdyYXBoKGNoYXIyLCBjaGFyMSwgbWV0YSkpID09IGNoYXIxKSkKCXJldHVybiBjaGFyMjsKICAgIHJldHVybiByZXR2YWw7Cn0KCi8qCiAqIEFkZCB0aGUgZGlncmFwaHMgaW4gdGhlIGFyZ3VtZW50IHRvIHRoZSBkaWdyYXBoIHRhYmxlLgogKiBmb3JtYXQ6IHtjMX17YzJ9IGNoYXIge2MxfXtjMn0gY2hhciAuLi4KICovCiAgICB2b2lkCnB1dGRpZ3JhcGgoc3RyKQogICAgY2hhcl91ICpzdHI7CnsKICAgIGludAkJY2hhcjEsIGNoYXIyLCBuOwogICAgaW50CQlpOwogICAgZGlncl9UCSpkcDsKCiAgICB3aGlsZSAoKnN0ciAhPSBOVUwpCiAgICB7CglzdHIgPSBza2lwd2hpdGUoc3RyKTsKCWlmICgqc3RyID09IE5VTCkKCSAgICByZXR1cm47CgljaGFyMSA9ICpzdHIrKzsKCWNoYXIyID0gKnN0cisrOwoJaWYgKGNoYXIyID09IDApCgl7CgkgICAgRU1TRyhfKGVfaW52YXJnKSk7CgkgICAgcmV0dXJuOwoJfQoJaWYgKGNoYXIxID09IEVTQyB8fCBjaGFyMiA9PSBFU0MpCgl7CgkgICAgRU1TRyhfKCJFMTA0OiBFc2NhcGUgbm90IGFsbG93ZWQgaW4gZGlncmFwaCIpKTsKCSAgICByZXR1cm47Cgl9CglzdHIgPSBza2lwd2hpdGUoc3RyKTsKCWlmICghVklNX0lTRElHSVQoKnN0cikpCgl7CgkgICAgRU1TRyhfKGVfbnVtYmVyX2V4cCkpOwoJICAgIHJldHVybjsKCX0KCW4gPSBnZXRkaWdpdHMoJnN0cik7CgoJLyogSWYgdGhlIGRpZ3JhcGggYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgdGhlIHJlc3VsdC4gKi8KCWRwID0gKGRpZ3JfVCAqKXVzZXJfZGlncmFwaHMuZ2FfZGF0YTsKCWZvciAoaSA9IDA7IGkgPCB1c2VyX2RpZ3JhcGhzLmdhX2xlbjsgKytpKQoJewoJICAgIGlmICgoaW50KWRwLT5jaGFyMSA9PSBjaGFyMSAmJiAoaW50KWRwLT5jaGFyMiA9PSBjaGFyMikKCSAgICB7CgkJZHAtPnJlc3VsdCA9IG47CgkJYnJlYWs7CgkgICAgfQoJICAgICsrZHA7Cgl9CgoJLyogQWRkIGEgbmV3IGRpZ3JhcGggdG8gdGhlIHRhYmxlLiAqLwoJaWYgKGkgPT0gdXNlcl9kaWdyYXBocy5nYV9sZW4pCgl7CgkgICAgaWYgKGdhX2dyb3coJnVzZXJfZGlncmFwaHMsIDEpID09IE9LKQoJICAgIHsKCQlkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGEgKyB1c2VyX2RpZ3JhcGhzLmdhX2xlbjsKCQlkcC0+Y2hhcjEgPSBjaGFyMTsKCQlkcC0+Y2hhcjIgPSBjaGFyMjsKCQlkcC0+cmVzdWx0ID0gbjsKCQkrK3VzZXJfZGlncmFwaHMuZ2FfbGVuOwoJICAgIH0KCX0KICAgIH0KfQoKICAgIHZvaWQKbGlzdGRpZ3JhcGhzKCkKewogICAgaW50CQlpOwogICAgZGlncl9UCSpkcDsKCiAgICBtc2dfcHV0Y2hhcignXG4nKTsKCiAgICBkcCA9IGRpZ3JhcGhkZWZhdWx0OwogICAgZm9yIChpID0gMDsgZHAtPmNoYXIxICE9IE5VTCAmJiAhZ290X2ludDsgKytpKQogICAgewojaWYgZGVmaW5lZChVU0VfVU5JQ09ERV9ESUdSQVBIUykgJiYgZGVmaW5lZChGRUFUX01CWVRFKQoJZGlncl9UIHRtcDsKCgkvKiBNYXkgbmVlZCB0byBjb252ZXJ0IHRoZSByZXN1bHQgdG8gJ2VuY29kaW5nJy4gKi8KCXRtcC5jaGFyMSA9IGRwLT5jaGFyMTsKCXRtcC5jaGFyMiA9IGRwLT5jaGFyMjsKCXRtcC5yZXN1bHQgPSBnZXRleGFjdGRpZ3JhcGgodG1wLmNoYXIxLCB0bXAuY2hhcjIsIEZBTFNFKTsKCWlmICh0bXAucmVzdWx0ICE9IDAgJiYgdG1wLnJlc3VsdCAhPSB0bXAuY2hhcjIKCQkJCQkgICYmIChoYXNfbWJ5dGUgfHwgdG1wLnJlc3VsdCA8PSAyNTUpKQoJICAgIHByaW50ZGlncmFwaCgmdG1wKTsKI2Vsc2UKCglpZiAoZ2V0ZXhhY3RkaWdyYXBoKGRwLT5jaGFyMSwgZHAtPmNoYXIyLCBGQUxTRSkgPT0gZHAtPnJlc3VsdAojIGlmZGVmIEZFQVRfTUJZVEUKCQkmJiAoaGFzX21ieXRlIHx8IGRwLT5yZXN1bHQgPD0gMjU1KQojIGVuZGlmCgkJKQoJICAgIHByaW50ZGlncmFwaChkcCk7CiNlbmRpZgoJKytkcDsKCXVpX2JyZWFrY2hlY2soKTsKICAgIH0KCiAgICBkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGE7CiAgICBmb3IgKGkgPSAwOyBpIDwgdXNlcl9kaWdyYXBocy5nYV9sZW4gJiYgIWdvdF9pbnQ7ICsraSkKICAgIHsKCXByaW50ZGlncmFwaChkcCk7Cgl1aV9icmVha2NoZWNrKCk7CgkrK2RwOwogICAgfQogICAgbXVzdF9yZWRyYXcgPSBDTEVBUjsgICAgLyogY2xlYXIgc2NyZWVuLCBiZWNhdXNlIHNvbWUgZGlncmFwaHMgbWF5IGJlCgkJCSAgICAgICB3cm9uZywgaW4gd2hpY2ggY2FzZSB3ZSBtZXNzZWQgdXAgU2NyZWVuTGluZXMgKi8KfQoKICAgIHN0YXRpYyB2b2lkCnByaW50ZGlncmFwaChkcCkKICAgIGRpZ3JfVAkqZHA7CnsKICAgIGNoYXJfdQlidWZbMzBdOwogICAgY2hhcl91CSpwOwoKICAgIGludAkJbGlzdF93aWR0aDsKCiAgICBpZiAoKGR5X2ZsYWdzICYgRFlfVUhFWCkKI2lmZGVmIEZFQVRfTUJZVEUKCSAgICB8fCBoYXNfbWJ5dGUKI2VuZGlmCgkgICAgKQoJbGlzdF93aWR0aCA9IDEzOwogICAgZWxzZQoJbGlzdF93aWR0aCA9IDExOwoKICAgIGlmIChkcC0+cmVzdWx0ICE9IDApCiAgICB7CglpZiAobXNnX2NvbCA+IENvbHVtbnMgLSBsaXN0X3dpZHRoKQoJICAgIG1zZ19wdXRjaGFyKCdcbicpOwoJaWYgKG1zZ19jb2wpCgkgICAgd2hpbGUgKG1zZ19jb2wgJSBsaXN0X3dpZHRoICE9IDApCgkJbXNnX3B1dGNoYXIoJyAnKTsKCglwID0gYnVmOwoJKnArKyA9IGRwLT5jaGFyMTsKCSpwKysgPSBkcC0+Y2hhcjI7CgkqcCsrID0gJyAnOwojaWZkZWYgRkVBVF9NQllURQoJaWYgKGhhc19tYnl0ZSkKCXsKCSAgICAvKiBhZGQgYSBzcGFjZSB0byBkcmF3IGEgY29tcG9zaW5nIGNoYXIgb24gKi8KCSAgICBpZiAoZW5jX3V0ZjggJiYgdXRmX2lzY29tcG9zaW5nKGRwLT5yZXN1bHQpKQoJCSpwKysgPSAnICc7CgkgICAgcCArPSAoKm1iX2NoYXIyYnl0ZXMpKGRwLT5yZXN1bHQsIHApOwoJfQoJZWxzZQojZW5kaWYKCSAgICAqcCsrID0gZHAtPnJlc3VsdDsKCWlmIChjaGFyMmNlbGxzKGRwLT5yZXN1bHQpID09IDEpCgkgICAgKnArKyA9ICcgJzsKCXNwcmludGYoKGNoYXIgKilwLCAiICUzZCIsIGRwLT5yZXN1bHQpOwoJbXNnX291dHRyYW5zKGJ1Zik7CiAgICB9Cn0KCiNlbmRpZiAvKiBGRUFUX0RJR1JBUEhTICovCgojaWYgZGVmaW5lZChGRUFUX0tFWU1BUCkgfHwgZGVmaW5lZChQUk9UTykKCi8qIHN0cnVjdHVyZSB1c2VkIGZvciBiX2ttYXBfZ2EuZ2FfZGF0YSAqLwp0eXBlZGVmIHN0cnVjdAp7CiAgICBjaGFyX3UJKmZyb207CiAgICBjaGFyX3UJKnRvOwp9IGttYXBfVDsKCiNkZWZpbmUgS01BUF9NQVhMRU4gMjAJICAgIC8qIG1heGltdW0gbGVuZ3RoIG9mICJmcm9tIiBvciAidG8iICovCgpzdGF0aWMgdm9pZCBrZXltYXBfdW5sb2FkIF9fQVJHUygodm9pZCkpOwoKLyoKICogU2V0IHVwIGtleSBtYXBwaW5nIHRhYmxlcyBmb3IgdGhlICdrZXltYXAnIG9wdGlvbgogKi8KICAgIGNoYXJfdSAqCmtleW1hcF9pbml0KCkKewogICAgY3VyYnVmLT5iX2ttYXBfc3RhdGUgJj0gfktFWU1BUF9JTklUOwoKICAgIGlmICgqY3VyYnVmLT5iX3Bfa2V5bWFwID09IE5VTCkKICAgIHsKCS8qIFN0b3AgYW55IGFjdGl2ZSBrZXltYXAgYW5kIGNsZWFyIHRoZSB0YWJsZS4gKi8KCWtleW1hcF91bmxvYWQoKTsKICAgIH0KICAgIGVsc2UKICAgIHsKCWNoYXJfdQkqYnVmOwoKCS8qIFNvdXJjZSB0aGUga2V5bWFwIGZpbGUuICBJdCB3aWxsIGNvbnRhaW4gYSAiOmxvYWRrZXltYXAiIGNvbW1hbmQKCSAqIHdoaWNoIHdpbGwgY2FsbCBleF9sb2Fka2V5bWFwKCkgYmVsb3cuICovCglidWYgPSBhbGxvYygodW5zaWduZWQpKFNUUkxFTihjdXJidWYtPmJfcF9rZXltYXApCiMgaWZkZWYgRkVBVF9NQllURQoJCQkJCQkgICAgICAgKyBTVFJMRU4ocF9lbmMpCiMgZW5kaWYKCQkJCQkJICAgICAgICsgMTQpKTsKCWlmIChidWYgPT0gTlVMTCkKCSAgICByZXR1cm4gZV9vdXRvZm1lbTsKCiMgaWZkZWYgRkVBVF9NQllURQoJLyogdHJ5IGZpbmRpbmcgImtleW1hcC8na2V5bWFwJ18nZW5jb2RpbmcnLnZpbSIgIGluICdydW50aW1lcGF0aCcgKi8KCXNwcmludGYoKGNoYXIgKilidWYsICJrZXltYXAvJXNfJXMudmltIiwgY3VyYnVmLT5iX3Bfa2V5bWFwLCBwX2VuYyk7CglpZiAoY21kX3J1bnRpbWUoYnVmLCBGQUxTRSkgPT0gRkFJTCkKIyBlbmRpZgoJewoJICAgIC8qIHRyeSBmaW5kaW5nICJrZXltYXAvJ2tleW1hcCcudmltIiBpbiAncnVudGltZXBhdGgnICAqLwoJICAgIHNwcmludGYoKGNoYXIgKilidWYsICJrZXltYXAvJXMudmltIiwgY3VyYnVmLT5iX3Bfa2V5bWFwKTsKCSAgICBpZiAoY21kX3J1bnRpbWUoYnVmLCBGQUxTRSkgPT0gRkFJTCkKCSAgICB7CgkJdmltX2ZyZWUoYnVmKTsKCQlyZXR1cm4gKGNoYXJfdSAqKU5fKCJFNTQ0OiBLZXltYXAgZmlsZSBub3QgZm91bmQiKTsKCSAgICB9Cgl9Cgl2aW1fZnJlZShidWYpOwogICAgfQoKICAgIHJldHVybiBOVUxMOwp9CgovKgogKiAiOmxvYWRrZXltYXAiIGNvbW1hbmQ6IGxvYWQgdGhlIGZvbGxvd2luZyBsaW5lcyBhcyB0aGUga2V5bWFwLgogKi8KICAgIHZvaWQKZXhfbG9hZGtleW1hcChlYXApCiAgICBleGFyZ19UCSplYXA7CnsKICAgIGNoYXJfdQkqbGluZTsKICAgIGNoYXJfdQkqcDsKICAgIGNoYXJfdQkqczsKICAgIGttYXBfVAkqa3A7CiNkZWZpbmUgS01BUF9MTEVOICAgMjAwCSAgICAvKiBtYXggbGVuZ3RoIG9mICJ0byIgYW5kICJmcm9tIiB0b2dldGhlciAqLwogICAgY2hhcl91CWJ1ZltLTUFQX0xMRU4gKyAxMV07CiAgICBpbnQJCWk7CiAgICBjaGFyX3UJKnNhdmVfY3BvID0gcF9jcG87CgogICAgaWYgKCFnZXRsaW5lX2VxdWFsKGVhcC0+Z2V0bGluZSwgZWFwLT5jb29raWUsIGdldHNvdXJjZWxpbmUpKQogICAgewoJRU1TRyhfKCJFMTA1OiBVc2luZyA6bG9hZGtleW1hcCBub3QgaW4gYSBzb3VyY2VkIGZpbGUiKSk7CglyZXR1cm47CiAgICB9CgogICAgLyoKICAgICAqIFN0b3AgYW55IGFjdGl2ZSBrZXltYXAgYW5kIGNsZWFyIHRoZSB0YWJsZS4KICAgICAqLwogICAga2V5bWFwX3VubG9hZCgpOwoKICAgIGN1cmJ1Zi0+Yl9rbWFwX3N0YXRlID0gMDsKICAgIGdhX2luaXQyKCZjdXJidWYtPmJfa21hcF9nYSwgKGludClzaXplb2Yoa21hcF9UKSwgMjApOwoKICAgIC8qIFNldCAnY3BvcHRpb25zJyB0byAiQyIgdG8gYXZvaWQgbGluZSBjb250aW51YXRpb24uICovCiAgICBwX2NwbyA9IChjaGFyX3UgKikiQyI7CgogICAgLyoKICAgICAqIEdldCBlYWNoIGxpbmUgb2YgdGhlIHNvdXJjZWQgZmlsZSwgYnJlYWsgYXQgdGhlIGVuZC4KICAgICAqLwogICAgZm9yICg7OykKICAgIHsKCWxpbmUgPSBlYXAtPmdldGxpbmUoMCwgZWFwLT5jb29raWUsIDApOwoJaWYgKGxpbmUgPT0gTlVMTCkKCSAgICBicmVhazsKCglwID0gc2tpcHdoaXRlKGxpbmUpOwoJaWYgKCpwICE9ICciJyAmJiAqcCAhPSBOVUwgJiYgZ2FfZ3JvdygmY3VyYnVmLT5iX2ttYXBfZ2EsIDEpID09IE9LKQoJewoJICAgIGtwID0gKGttYXBfVCAqKWN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2RhdGEgKyBjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47CgkgICAgcyA9IHNraXB0b3doaXRlKHApOwoJICAgIGtwLT5mcm9tID0gdmltX3N0cm5zYXZlKHAsIChpbnQpKHMgLSBwKSk7CgkgICAgcCA9IHNraXB3aGl0ZShzKTsKCSAgICBzID0gc2tpcHRvd2hpdGUocCk7CgkgICAga3AtPnRvID0gdmltX3N0cm5zYXZlKHAsIChpbnQpKHMgLSBwKSk7CgoJICAgIGlmIChrcC0+ZnJvbSA9PSBOVUxMIHx8IGtwLT50byA9PSBOVUxMCgkJICAgIHx8IFNUUkxFTihrcC0+ZnJvbSkgKyBTVFJMRU4oa3AtPnRvKSA+PSBLTUFQX0xMRU4pCgkgICAgewoJCXZpbV9mcmVlKGtwLT5mcm9tKTsKCQl2aW1fZnJlZShrcC0+dG8pOwoJICAgIH0KCSAgICBlbHNlCgkJKytjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47Cgl9Cgl2aW1fZnJlZShsaW5lKTsKICAgIH0KCiAgICAvKgogICAgICogc2V0dXAgIjpsbm9yZW1hcCIgdG8gbWFwIHRoZSBrZXlzCiAgICAgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47ICsraSkKICAgIHsKCXNwcmludGYoKGNoYXIgKilidWYsICI8YnVmZmVyPiAlcyAlcyIsCgkJCQkoKGttYXBfVCAqKWN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2RhdGEpW2ldLmZyb20sCgkJCQkgKChrbWFwX1QgKiljdXJidWYtPmJfa21hcF9nYS5nYV9kYXRhKVtpXS50byk7Cgkodm9pZClkb19tYXAoMiwgYnVmLCBMQU5HTUFQLCBGQUxTRSk7CiAgICB9CgogICAgcF9jcG8gPSBzYXZlX2NwbzsKCiAgICBjdXJidWYtPmJfa21hcF9zdGF0ZSB8PSBLRVlNQVBfTE9BREVEOwojaWZkZWYgRkVBVF9XSU5ET1dTCiAgICBzdGF0dXNfcmVkcmF3X2N1cmJ1ZigpOwojZW5kaWYKfQoKLyoKICogU3RvcCB1c2luZyAna2V5bWFwJy4KICovCiAgICBzdGF0aWMgdm9pZAprZXltYXBfdW5sb2FkKCkKewogICAgY2hhcl91CWJ1ZltLTUFQX01BWExFTiArIDEwXTsKICAgIGludAkJaTsKICAgIGNoYXJfdQkqc2F2ZV9jcG8gPSBwX2NwbzsKCiAgICBpZiAoIShjdXJidWYtPmJfa21hcF9zdGF0ZSAmIEtFWU1BUF9MT0FERUQpKQoJcmV0dXJuOwoKICAgIC8qIFNldCAnY3BvcHRpb25zJyB0byAiQyIgdG8gYXZvaWQgbGluZSBjb250aW51YXRpb24uICovCiAgICBwX2NwbyA9IChjaGFyX3UgKikiQyI7CgogICAgLyogY2xlYXIgdGhlICI6bG1hcCJzICovCiAgICBmb3IgKGkgPSAwOyBpIDwgY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfbGVuOyArK2kpCiAgICB7CglzcHJpbnRmKChjaGFyICopYnVmLCAiPGJ1ZmZlcj4gJXMiLAoJCSgoa21hcF9UICopY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfZGF0YSlbaV0uZnJvbSk7Cgkodm9pZClkb19tYXAoMSwgYnVmLCBMQU5HTUFQLCBGQUxTRSk7CiAgICB9CgogICAgcF9jcG8gPSBzYXZlX2NwbzsKCiAgICBnYV9jbGVhcigmY3VyYnVmLT5iX2ttYXBfZ2EpOwogICAgY3VyYnVmLT5iX2ttYXBfc3RhdGUgJj0gfktFWU1BUF9MT0FERUQ7CiNpZmRlZiBGRUFUX1dJTkRPV1MKICAgIHN0YXR1c19yZWRyYXdfY3VyYnVmKCk7CiNlbmRpZgp9CgojZW5kaWYgLyogRkVBVF9LRVlNQVAgKi8KCg==