LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CiAqCiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogT3JpZ2luYWxseSBkZXZlbG9wZWQgYW5kIGNvbnRyaWJ1dGVkIGJ5IEl0dGlhbSBTeXN0ZW1zIFB2dC4gTHRkLCBCYW5nYWxvcmUKKi8KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlICJpdl9kYXRhdHlwZWRlZi5oIgojaW5jbHVkZSAiaXYuaCIKI2luY2x1ZGUgImltcGVnMl9idWZfbWdyLmgiCiNpbmNsdWRlICJpbXBlZzJfZGlzcF9tZ3IuaCIKI2luY2x1ZGUgImltcGVnMl9kZWZzLmgiCiNpbmNsdWRlICJpbXBlZzJfcGxhdGZvcm1fbWFjcm9zLmgiCiNpbmNsdWRlICJpbXBlZzJfZ2xvYmFscy5oIgoKLyogVGFibGUgZm9yIGNvbnZlcnRpbmcgdGhlIHF1YW50aXplcl9zY2FsZV9jb2RlIHRvIHF1YW50aXplcl9zY2FsZSAqLwpjb25zdCBVV09SRDggZ2F1MV9pbXBlZzJfbm9uX2xpbmVhcl9xdWFudF9zY2FsZVtdID0KewogICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKICAgIDgsMTAsMTIsMTQsMTYsMTgsMjAsMjIsCiAgICAyNCwyOCwzMiwzNiw0MCw0NCw0OCw1MiwKICAgIDU2LDY0LDcyLDgwLDg4LDk2LDEwNCwxMTIKfTsKCgovKiBEZWZhdWx0IHF1YW50aXplciBtYXRyaXggdG8gYmUgdXNlZCBmb3IgaW50cmEgYmxvY2tzICovCmNvbnN0IFVXT1JEOCBnYXUxX2ltcGVnMl9pbnRyYV9xdWFudF9tYXRyaXhfZGVmYXVsdFtdID0KewogICAgOCwgMTYsIDE5LCAyMiwgMjYsIDI3LCAyOSwgMzQsCiAgICAxNiwgMTYsIDIyLCAyNCwgMjcsIDI5LCAzNCwgMzcsCiAgICAxOSwgMjIsIDI2LCAyNywgMjksIDM0LCAzNCwgMzgsCiAgICAyMiwgMjIsIDI2LCAyNywgMjksIDM0LCAzNywgNDAsCiAgICAyMiwgMjYsIDI3LCAyOSwgMzIsIDM1LCA0MCwgNDgsCiAgICAyNiwgMjcsIDI5LCAzMiwgMzUsIDQwLCA0OCwgNTgsCiAgICAyNiwgMjcsIDI5LCAzNCwgMzgsIDQ2LCA1NiwgNjksCiAgICAyNywgMjksIDM1LCAzOCwgNDYsIDU2LCA2OSwgODMKfTsKCi8qIERlZmF1bHQgcXVhbnRpemVyIG1hdHJpeCB0byBiZSB1c2VkIGZvciBpbnRlciBibG9ja3MgKi8KY29uc3QgVVdPUkQ4IGdhdTFfaW1wZWcyX2ludGVyX3F1YW50X21hdHJpeF9kZWZhdWx0W10gPQp7CiAgICAxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwKICAgIDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LAogICAgMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsCiAgICAxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwKICAgIDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LAogICAgMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsCiAgICAxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwKICAgIDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2Cn07CgovKiBUYWJsZSB0byBwZXJmb3JtIGludmVyc2Ugc2NhbiB3aGVuIHRoZSBzY2FuIGRpcmVjdGlvbiBpcyB6aWd6YWcgKi8KY29uc3QgVVdPUkQ4IGdhdTFfaW1wZWcyX2ludl9zY2FuX3ppZ196YWdbXSA9CnsKICAgICAwLCAgMSwgIDgsIDE2LCAgOSwgIDIsICAzLCAxMCwKICAgIDE3LCAyNCwgMzIsIDI1LCAxOCwgMTEsICA0LCAgNSwKICAgIDEyLCAxOSwgMjYsIDMzLCA0MCwgNDgsIDQxLCAzNCwKICAgIDI3LCAyMCwgMTMsICA2LCAgNywgMTQsIDIxLCAyOCwKICAgIDM1LCA0MiwgNDksIDU2LCA1NywgNTAsIDQzLCAzNiwKICAgIDI5LCAyMiwgMTUsIDIzLCAzMCwgMzcsIDQ0LCA1MSwKICAgIDU4LCA1OSwgNTIsIDQ1LCAzOCwgMzEsIDM5LCA0NiwKICAgIDUzLCA2MCwgNjEsIDU0LCA0NywgNTUsIDYyLCA2Mwp9OwoKLyogIFRhYmxlIHRvIHBlcmZvcm0gaW52ZXJzZSBzY2FuIHdoZW4gdGhlIGRpcmVjdGlvbiBvZiBzY2FubmluZyBpcyB2ZXJ0aWNhbCAqLwpjb25zdCBVV09SRDggZ2F1MV9pbXBlZzJfaW52X3NjYW5fdmVydGljYWxbXSA9CnsKICAgIDAsIDgsIDE2LCAyNCwgMSwgOSwgMiwgMTAsCiAgICAxNywgMjUsIDMyLCA0MCwgNDgsIDU2LCA1NywgNDksCiAgICA0MSwgMzMsIDI2LCAxOCwgMywgMTEsIDQsIDEyLAogICAgMTksIDI3LCAzNCwgNDIsIDUwLCA1OCwgMzUsIDQzLAogICAgNTEsIDU5LCAyMCwgMjgsIDUsIDEzLCA2LCAxNCwKICAgIDIxLCAyOSwgMzYsIDQ0LCA1MiwgNjAsIDM3LCA0NSwKICAgIDUzLCA2MSwgMjIsIDMwLCA3LCAxNSwgMjMsIDMxLAogICAgMzgsIDQ2LCA1NCwgNjIsIDM5LCA0NywgNTUsIDYzCn07CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIFRhYmxlIHRoYXQgaW5kaWNhdGUgd2hpY2ggaW50ZXJwb2xhdGlvbiAgdHlwZSBpcyB0byB1c2VkICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBDaHJvbWEgd2hlbiBtb3Rpb24gdmVjdG9yIGlzIHBvc2l0aXZlICovCmNvbnN0IFVXT1JEMTYgZ2F1Ml9pbXBlZzJfY2hyb21hX2ludGVycF9tdltdWzE2XSA9CnsKICAgIC8qIFBvcyBYIFBvcyBZICovCiAgICB7CiAgICAgICAgMCwgIDAsICAxLCAgMSwKICAgICAgICAwLCAgMCwgIDEsICAxLAogICAgICAgIDIsICAyLCAgMywgIDMsCiAgICAgICAgMiwgIDIsICAzLCAgMwogICAgfSwKICAgIC8qIE5lZyBYIFBvcyBZICovCiAgICB7CiAgICAgICAgMCwgIDEsICAxLCAgMCwKICAgICAgICAwLCAgMSwgIDEsICAwLAogICAgICAgIDIsICAzLCAgMywgIDIsCiAgICAgICAgMiwgIDMsICAzLCAgMgogICAgfSwKICAgIC8qIFBvcyBYIE5lZyBZICovCiAgICB7CiAgICAgICAgMCwgIDAsICAxLCAgMSwKICAgICAgICAyLCAgMiwgIDMsICAzLAogICAgICAgIDIsICAyLCAgMywgIDMsCiAgICAgICAgMCwgIDAsICAxLCAgMQogICAgfSwKICAgIC8qIE5lZyBYIE5lZyBZICovCiAgICB7CiAgICAgICAgMCwgIDEsICAxLCAwLAogICAgICAgIDIsICAzLCAgMywgMiwKICAgICAgICAyLCAgMywgIDMsIDIsCiAgICAgICAgMCwgIDEsICAxLCAwCiAgICB9Cn07Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogSW5wdXQgIzEgT2Zmc2V0IGluIGJ5dGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIENocm9tYSAqLwpjb25zdCBVV09SRDE2IGdhdTJfaW1wZWcyX2Nocm9tYV9pbnRlcnBfaW5wMVtdWzE2XSA9CnsKICAgIC8qIFBvcyBYIFBvcyBZICovCiAgICB7CiAgICAgICAgMCwgIDAsICAwLCAgMCwKICAgICAgICAwLCAgMCwgIDAsICAwLAogICAgICAgIDAsICAwLCAgMCwgIDAsCiAgICAgICAgMCwgIDAsICAwLCAgMAogICAgfSwKICAgIC8qIE5lZyBYIFBvcyBZICovCiAgICB7CiAgICAgICAgMCwgIDAsICAwLCAgNCwKICAgICAgICAwLCAgMCwgIDAsICA0LAogICAgICAgIDAsICAwLCAgMCwgIDQsCiAgICAgICAgMCwgIDAsICAwLCAgNAogICAgfSwKICAgIC8qIFBvcyBYIE5lZyBZICovCiAgICB7CiAgICAgICAgMCwgIDAsICAwLCAgMCwKICAgICAgICAwLCAgMCwgIDAsICAwLAogICAgICAgIDAsICAwLCAgMCwgIDAsCiAgICAgICAgNzIsIDcyLCA3MiwgNzIKICAgIH0sCiAgICAvKiBOZWcgWCBOZWcgWSAqLwogICAgewogICAgICAgIDAsICAwLCAgMCwgIDQsCiAgICAgICAgMCwgIDAsICAwLCAgNCwKICAgICAgICAwLCAgMCwgIDAsICA0LAogICAgICAgIDcyLCA3MiwgNzIsIDc2CiAgICB9Cn07Ci8qIEx1bWEgKi8KY29uc3QgVVdPUkQxNiBnYXUyX2ltcGVnMl9sdW1hX2ludGVycF9pbnAxW10gPQp7CiAgICAxLCAgMSwgIDMsICAzLAogICAgMSwgIDEsICAzLCAgMywKICAgIDM3LCAzNywgMzksIDM5LAogICAgMzcsIDM3LCAzOSwgMzkKfTsKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBJbnB1dCAjMiBPZmZzZXQgZnJvbSBJbnB1dCAjMSBpbiBieXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoKICAgIEZYRlkgIDAsCiAgICBIWEZZICAyLAogICAgRlhIWSAzNiwKICAgIEhYSFkgMzYKKi8KY29uc3QgVVdPUkQxNiBnYXUyX2ltcGVnMl9sdW1hX2ludGVycF9pbnAyW10gPQp7CiAgICAgIDAsICAyLCAgMCwgIDIsCiAgICAgMzYsIDM2LCAzNiwgMzYsCiAgICAgIDAsICAyLCAgMCwgIDIsCiAgICAgMzYsIDM2LCAzNiwgMzYKfTsKY29uc3QgVVdPUkQxNiBnYXUyX2ltcGVnMl9jaHJvbWFfaW50ZXJwX2lucDJbXSA9CnsKICAgIC8qIEZYRlkgKi8KICAgIDAsCiAgICAvKiBIWEZZICovCiAgICA0LAogICAgLyogRlhIWSAqLwogICAgNzIsCiAgICAvKiBIWEhZICovCiAgICA3Mgp9OwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBDb3JyZXNwb25kcyB0byBUYWJsZSA2LTQgZnJhbWVfcmF0ZV92YWx1ZSAgb2YgdGhlIHN0YW5kYXJkICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoKICAgIGZyYW1lX3JhdGVfY29kZSBmcmFtZV9yYXRlX3ZhbHVlCgogICAgMDAwMCAgICAgICAgICAgIEZvcmJpZGRlbgogICAgMDAwMSAgICAgICAgICAgIDI0IDAwMCD3IDEwMDEKICAgIDAwMTAgICAgICAgICAgICAyNAogICAgMDAxMSAgICAgICAgICAgIDI1CiAgICAwMTAwICAgICAgICAgICAgMzAgMDAwIPcgMTAwMQogICAgMDEwMSAgICAgICAgICAgIDMwCiAgICAwMTEwICAgICAgICAgICAgNTAKICAgIDAxMTEgICAgICAgICAgICA2MCAwMDAg9yAxMDAxCiAgICAxMDAwICAgICAgICAgICAgNjAKICAgIDEwMDEgICAgICAgICAgICBSZXNlcnZlZAogICAgLi4uLgogICAgMTExMSAgICAgICAgICAgIFJlc2VydmVkCiovCmNvbnN0IFVXT1JEMTYgZ2F1Ml9pbXBlZzJfZnJtX3JhdGVfY29kZVtdWzJdID0KewogICAgezEgICAgLCAgICAxfSwgLyogRm9yYmlkZGVuICovCiAgICB7MjQwMDAsIDEwMDF9LAogICAgezI0MDAwLCAxMDAwfSwKICAgIHsyNTAwMCwgMTAwMH0sCiAgICB7MzAwMDAsIDEwMDF9LAogICAgezMwMDAwLCAxMDAwfSwKICAgIHs1MDAwMCwgMTAwMH0sCiAgICB7NjAwMDAsIDEwMDF9LAogICAgezYwMDAwLCAxMDAwfQogICAgLyogUmVzdCByZXNlcnZlZCAqLwp9OwoKY29uc3QgV09SRDE2IGdhaTJfaW1wZWcyX2lkY3RfcTE1W10gPQp7CiAgICAyMzE3MCwgICAgMjMxNzAsICAgIDIzMTcwLCAgICAyMzE3MCwgICAgMjMxNzAsICAgIDIzMTcwLCAgICAyMzE3MCwgICAgMjMxNzAsCiAgICAzMjEzOCwgICAgMjcyNDYsICAgIDE4MjA1LCAgICAgNjM5MywgICAgLTYzOTMsICAgLTE4MjA1LCAgIC0yNzI0NiwgICAtMzIxMzgsCiAgICAzMDI3NCwgICAgMTI1NDAsICAgLTEyNTQwLCAgIC0zMDI3NCwgICAtMzAyNzQsICAgLTEyNTQwLCAgICAxMjU0MCwgICAgMzAyNzQsCiAgICAyNzI0NiwgICAgLTYzOTMsICAgLTMyMTM4LCAgIC0xODIwNSwgICAgMTgyMDUsICAgIDMyMTM4LCAgICAgNjM5MywgICAtMjcyNDYsCiAgICAyMzE3MCwgICAtMjMxNzAsICAgLTIzMTcwLCAgICAyMzE3MCwgICAgMjMxNzAsICAgLTIzMTcwLCAgIC0yMzE3MCwgICAgMjMxNzAsCiAgICAxODIwNSwgICAtMzIxMzgsICAgICA2MzkzLCAgICAyNzI0NiwgICAtMjcyNDYsICAgIC02MzkzLCAgICAzMjEzOCwgICAtMTgyMDUsCiAgICAxMjU0MCwgICAtMzAyNzQsICAgIDMwMjc0LCAgIC0xMjU0MCwgICAtMTI1NDAsICAgIDMwMjc0LCAgIC0zMDI3NCwgICAgMTI1NDAsCiAgICAgNjM5MywgICAtMTgyMDUsICAgIDI3MjQ2LCAgIC0zMjEzOCwgICAgMzIxMzgsICAgLTI3MjQ2LCAgICAxODIwNSwgICAgLTYzOTMsCn07Cgpjb25zdCBXT1JEMTYgZ2FpMl9pbXBlZzJfaWRjdF9xMTFbXSA9CnsKICAgIDE0NDgsICAgICAxNDQ4LCAgICAgMTQ0OCwgICAgIDE0NDgsICAgICAxNDQ4LCAgICAgMTQ0OCwgICAgIDE0NDgsICAgICAxNDQ4LAogICAgMjAwOSwgICAgIDE3MDMsICAgICAxMTM4LCAgICAgIDQwMCwgICAgIC00MDAsICAgIC0xMTM4LCAgICAtMTcwMywgICAgLTIwMDksCiAgICAxODkyLCAgICAgIDc4NCwgICAgIC03ODQsICAgIC0xODkyLCAgICAtMTg5MiwgICAgIC03ODQsICAgICAgNzg0LCAgICAgMTg5MiwKICAgIDE3MDMsICAgICAtNDAwLCAgICAtMjAwOSwgICAgLTExMzgsICAgICAxMTM4LCAgICAgMjAwOSwgICAgICA0MDAsICAgIC0xNzAzLAogICAgMTQ0OCwgICAgLTE0NDgsICAgIC0xNDQ4LCAgICAgMTQ0OCwgICAgIDE0NDgsICAgIC0xNDQ4LCAgICAtMTQ0OCwgICAgIDE0NDgsCiAgICAxMTM4LCAgICAtMjAwOSwgICAgICA0MDAsICAgICAxNzAzLCAgICAtMTcwMywgICAgIC00MDAsICAgICAyMDA5LCAgICAtMTEzOCwKICAgICA3ODQsICAgIC0xODkyLCAgICAgMTg5MiwgICAgIC03ODQsICAgICAtNzg0LCAgICAgMTg5MiwgICAgLTE4OTIsICAgICAgNzg0LAogICAgIDQwMCwgICAgLTExMzgsICAgICAxNzAzLCAgICAtMjAwOSwgICAgIDIwMDksICAgIC0xNzAzLCAgICAgMTEzOCwgICAgIC00MDAsCn07Cgpjb25zdCBXT1JEMTYgZ2FpMl9pbXBlZzJfaWRjdF9ldmVuXzhfcTE1W11bOF0gPQp7CiAgICB7ICAyMzE3MCwgIDIzMTcwLCAgMjMxNzAsICAyMzE3MCwgIDIzMTcwLCAgMjMxNzAsICAyMzE3MCwgIDIzMTcwICB9LAogICAgeyAgMTI1NDAsIC0zMDI3NCwgIDEyNTQwLCAtMzAyNzQsICAxMjU0MCwgLTMwMjc0LCAgMTI1NDAsIC0zMDI3NCAgfSwKICAgIHsgIDMwMjc0LCAgMTI1NDAsICAzMDI3NCwgIDEyNTQwLCAgMzAyNzQsICAxMjU0MCwgIDMwMjc0LCAgMTI1NDAgIH0sCiAgICB7ICAyMzE3MCwgLTIzMTcwLCAgMjMxNzAsIC0yMzE3MCwgIDIzMTcwLCAtMjMxNzAsICAyMzE3MCwgLTIzMTcwICB9Cn07CmNvbnN0IFdPUkQxNiBnYWkyX2ltcGVnMl9pZGN0X29kZF84X3ExNVtdWzhdID0KewogICAgeyAgMzIxMzgsICAyNzI0NiwgIDMyMTM4LCAgMjcyNDYsICAzMjEzOCwgIDI3MjQ2LCAgMzIxMzgsICAyNzI0NiB9LAogICAgeyAgMTgyMDUsICAgNjM5MywgIDE4MjA1LCAgIDYzOTMsICAxODIwNSwgICA2MzkzLCAgMTgyMDUsICAgNjM5MyB9LAogICAgeyAgMjcyNDYsICAtNjM5MywgIDI3MjQ2LCAgLTYzOTMsICAyNzI0NiwgIC02MzkzLCAgMjcyNDYsICAtNjM5MyB9LAogICAgeyAgMzIxMzgsICAxODIwNSwgIDMyMTM4LCAgMTgyMDUsICAzMjEzOCwgIDE4MjA1LCAgMzIxMzgsICAxODIwNSB9LAogICAgeyAgMTgyMDUsIC0zMjEzOCwgIDE4MjA1LCAtMzIxMzgsICAxODIwNSwgLTMyMTM4LCAgMTgyMDUsIC0zMjEzOCB9LAogICAgeyAgNjM5MywgICAyNzI0NiwgICA2MzkzLCAgMjcyNDYsICAgNjM5MywgIDI3MjQ2LCAgIDYzOTMsICAyNzI0NiB9LAogICAgeyAgNjM5MywgIC0xODIwNSwgICA2MzkzLCAtMTgyMDUsICAgNjM5MywgLTE4MjA1LCAgIDYzOTMsIC0xODIwNSB9LAogICAgeyAgMjcyNDYsIC0zMjEzOCwgIDI3MjQ2LCAtMzIxMzgsICAyNzI0NiwgLTMyMTM4LCAgMjcyNDYsIC0zMjEzOCB9LAp9OwoKY29uc3QgV09SRDE2IGdhaTJfaW1wZWcyX2lkY3RfZXZlbl84X3ExMVtdWzhdID0KewogICAgeyAgIDE0NDgsICAgMTQ0OCwgICAxNDQ4LCAgIDE0NDgsICAgMTQ0OCwgICAxNDQ4LCAgIDE0NDgsICAgMTQ0OCB9LAogICAgeyAgICA3ODQsICAtMTg5MiwgICAgNzg0LCAgLTE4OTIsICAgIDc4NCwgIC0xODkyLCAgICA3ODQsICAtMTg5MiB9LAogICAgeyAgIDE4OTIsICAgIDc4NCwgICAxODkyLCAgICA3ODQsICAgMTg5MiwgICAgNzg0LCAgIDE4OTIsICAgIDc4NCB9LAogICAgeyAgIDE0NDgsICAtMTQ0OCwgICAxNDQ4LCAgLTE0NDgsICAgMTQ0OCwgIC0xNDQ4LCAgIDE0NDgsICAtMTQ0OCB9Cn07CmNvbnN0IFdPUkQxNiBnYWkyX2ltcGVnMl9pZGN0X29kZF84X3ExMVtdWzhdID0KewogICAgeyAgIDIwMDksICAgMTcwMywgICAyMDA5LCAgIDE3MDMsICAgMjAwOSwgICAxNzAzLCAgIDIwMDksICAgMTcwMyB9LAogICAgeyAgIDExMzgsICAgIDQwMCwgICAxMTM4LCAgICA0MDAsICAgMTEzOCwgICAgNDAwLCAgIDExMzgsICAgIDQwMCB9LAogICAgeyAgIDE3MDMsICAgLTQwMCwgICAxNzAzLCAgIC00MDAsICAgMTcwMywgICAtNDAwLCAgIDE3MDMsICAgLTQwMCB9LAogICAgeyAgIDIwMDksICAgMTEzOCwgICAyMDA5LCAgIDExMzgsICAgMjAwOSwgICAxMTM4LCAgIDIwMDksICAgMTEzOCB9LAogICAgeyAgIDExMzgsICAtMjAwOSwgICAxMTM4LCAgLTIwMDksICAgMTEzOCwgIC0yMDA5LCAgIDExMzgsICAtMjAwOSB9LAogICAgeyAgICA0MDAsICAgMTcwMywgICAgNDAwLCAgIDE3MDMsICAgIDQwMCwgICAxNzAzLCAgICA0MDAsICAgMTcwMyB9LAogICAgeyAgICA0MDAsICAtMTEzOCwgICAgNDAwLCAgLTExMzgsICAgIDQwMCwgIC0xMTM4LCAgICA0MDAsICAtMTEzOCB9LAogICAgeyAgIDE3MDMsICAtMjAwOSwgICAxNzAzLCAgLTIwMDksICAgMTcwMywgIC0yMDA5LCAgIDE3MDMsICAtMjAwOSB9LAp9OwoKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIExhc3Qgcm93IElEQ1QgQ29lZmZpY2llbnRzIGluIFExMSBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpjb25zdCBXT1JEMTYgZ2FpMl9pbXBlZzJfaWRjdF9sYXN0X3Jvd19xMTFbXSA9CnsKICAgICA0MDAsICAgIC0xMTM4LCAgICAgMTcwMywgICAgLTIwMDksICAgICAyMDA5LCAgICAtMTcwMywgICAgIDExMzgsICAgICAtNDAwLAp9OwoKY29uc3QgV09SRDE2IGdhaTJfaW1wZWcyX2lkY3RfZmlyc3RfY29sX3ExNVtdID0KewogICAyMzE3MCwgICAgMzIxMzgsICAgIDMwMjc0LCAgICAyNzI0NiwgICAgMjMxNzAsICAgIDE4MjA1LCAgICAxMjU0MCwgICAgIDYzOTMsCn07Cgpjb25zdCBXT1JEMTYgZ2FpMl9pbXBlZzJfaWRjdF9maXJzdF9jb2xfcTExW10gPQp7CiAgICAgMTQ0OCwgICAgMjAwOSwgICAgIDE4OTIsICAgICAxNzAzLCAgICAgMTQ0OCwgICAgIDExMzgsICAgICAgNzg0LCAgICAgIDQwMCwKfTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogT3V0cHV0IG9mIGZpcnN0IHN0YWdlIGRjdCAodXNpbmcgZ2FpMl9pbXBlZzJfaWRjdF9xMTUgYXMgY29lZmZzKSAgICAgICAgICAqLwovKiBmb3IgYSAxRCBkYXRhICgwLCAwLCAwLCAwLCAwLCAwLCAwLCAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCmNvbnN0IFdPUkQxNiBnYWkyX2ltcGVnMl9taXNtYXRjaF9zdGcxX291dHBbXSA9CnsKICAgIDIsIC00LCA3LCAtOCwgOCwgLTcsIDQsIC0yCn07Cgpjb25zdCBXT1JEMTYgZ2FpMl9pbXBlZzJfbWlzbWF0Y2hfc3RnMl9hZGRpdGl2ZVtdID0KewogICAgIDgwMCwgICAtMjI3NiwgIDM0MDYsICAgLTQwMTgsICA0MDE4LCAgIC0zNDA2LCAgMjI3NiwgICAtODAwLAogICAgIC0xNjAwLCA0NTUyLCAgIC02ODEyLCAgODAzNiwgICAtODAzNiwgIDY4MTIsICAgLTQ1NTIsICAxNjAwLAogICAgIDI4MDAsICAtNzk2NiwgIDExOTIxLCAgLTE0MDYzLCAxNDA2MywgIC0xMTkyMSwgNzk2NiwgICAtMjgwMCwKICAgICAtMzIwMCwgOTEwNCwgICAtMTM2MjQsIDE2MDcyLCAgLTE2MDcyLCAxMzYyNCwgIC05MTA0LCAgMzIwMCwKICAgICAzMjAwLCAgLTkxMDQsICAxMzYyNCwgIC0xNjA3MiwgMTYwNzIsICAtMTM2MjQsIDkxMDQsICAgLTMyMDAsCiAgICAgLTI4MDAsIDc5NjYsICAgLTExOTIxLCAxNDA2MywgIC0xNDA2MywgMTE5MjEsICAtNzk2NiwgIDI4MDAsCiAgICAgMTYwMCwgIC00NTUyLCAgNjgxMiwgICAtODAzNiwgIDgwMzYsICAgLTY4MTIsICA0NTUyLCAgIC0xNjAwLAogICAgIC04MDAsICAyMjc2LCAgIC0zNDA2LCAgNDAxOCwgICAtNDAxOCwgIDM0MDYsICAgLTIyNzYsICA4MDAsCn07CgoKY29uc3QgVVdPUkQ4IGdhdTFfaW1wZWcyX3plcm9idWZbXSA9CnsKICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAp9OwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIFRhYmxlcyBvZiBvZmZzZXQgbmVlZGVkIHRvIGFkZHJlc3MgYmxvY2sgaW4gYW4gTUIgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpjb25zdCBXT1JEMTYgIGdhaTJfaW1wZWcyX2Jsa195X29mZl9mbGRbXSAgPSB7MCwwLDEsMX07CmNvbnN0IFdPUkQxNiAgZ2FpMl9pbXBlZzJfYmxrX3lfb2ZmX2ZybVtdICA9IHswLDAsOCw4fTsKY29uc3QgV09SRDE2ICBnYWkyX2ltcGVnMl9ibGtfeF9vZmZbXSAgICAgID0gezAsOCwwLDh9Owo=