Oy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo7LyogICAgICAgICAgICAgICAoQykgRnVqaXRzdSBTZW1pY29uZHVjdG9yIEV1cm9wZSBHbWJIICAgICAgICAgICAgICAgICAgKi8NCjsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qIFRoZSBmb2xsb3dpbmcgc29mdHdhcmUgZGVsaXZlcmFibGUgaXMgaW50ZW5kZWQgZm9yIGFuZCBtdXN0IG9ubHkgYmUgICovDQo7LyogdXNlZCBmb3IgcmVmZXJlbmNlIGFuZCBpbiBhbiBldmFsdWF0aW9uIGxhYm9yYXRvcnkgZW52aXJvbm1lbnQuICAgICAgKi8NCjsvKiBJdCBpcyBwcm92aWRlZCBvbiBhbiBhcy1pcyBiYXNpcyB3aXRob3V0IGNoYXJnZSBhbmQgaXMgc3ViamVjdCB0byAgICAqLw0KOy8qIGFsdGVyYXRpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo7LyogSXQgaXMgdGhlIHVzZXKScyBvYmxpZ2F0aW9uIHRvIGZ1bGx5IHRlc3QgdGhlIHNvZnR3YXJlIGluIGl0cyAgICAgICAgKi8NCjsvKiBlbnZpcm9ubWVudCBhbmQgdG8gZW5zdXJlIHByb3BlciBmdW5jdGlvbmFsaXR5LCBxdWFsaWZpY2F0aW9uIGFuZCAgICAqLw0KOy8qIGNvbXBsaWFuY2Ugd2l0aCBjb21wb25lbnQgc3BlY2lmaWNhdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCjsvKiBJbiB0aGUgZXZlbnQgdGhlIHNvZnR3YXJlIGRlbGl2ZXJhYmxlIGluY2x1ZGVzIHRoZSB1c2Ugb2Ygb3BlbiAgICAgICAqLw0KOy8qIHNvdXJjZSBjb21wb25lbnRzLCB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgZ292ZXJuaW5nIG9wZW4gc291cmNlICAgICAgICovDQo7LyogbGljZW5zZSBhZ3JlZW1lbnQgc2hhbGwgYXBwbHkgd2l0aCByZXNwZWN0IHRvIHN1Y2ggc29mdHdhcmUgICAgICAgICAgKi8NCjsvKiBkZWxpdmVyYWJsZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qIEZTRVUgZG9lcyBub3Qgd2FycmFudCB0aGF0IHRoZSBkZWxpdmVyYWJsZXMgZG8gbm90IGluZnJpbmdlIGFueSAgICAgICovDQo7LyogdGhpcmQgcGFydHkgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0IChJUFIpLiBJbiB0aGUgZXZlbnQgdGhhdCAgICAgKi8NCjsvKiB0aGUgZGVsaXZlcmFibGVzIGluZnJpbmdlIGEgdGhpcmQgcGFydHkgSVBSIGl0IGlzIHRoZSBzb2xlICAgICAgICAgICAqLw0KOy8qIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjdXN0b21lciB0byBvYnRhaW4gbmVjZXNzYXJ5IGxpY2Vuc2VzIHRvICAgICAgICovDQo7LyogY29udGludWUgdGhlIHVzYWdlIG9mIHRoZSBkZWxpdmVyYWJsZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCjsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qIFRvIHRoZSBtYXhpbXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcgRlNFVSBkaXNjbGFpbXMgYWxsICovDQo7Lyogd2FycmFudGllcywgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQsIGluIHBhcnRpY3VsYXIsIGJ1dCBub3QgICAgICAgKi8NCjsvKiBsaW1pdGVkIHRvLCB3YXJyYW50aWVzIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSAgICAgICAgICAqLw0KOy8qIHBhcnRpY3VsYXIgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGRlbGl2ZXJhYmxlIGlzIG5vdCBkZXNpZ25hdGVkLiAgICAgICovDQo7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCjsvKiBUbyB0aGUgbWF4aW11bSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LCBGU0VVJ3MgbGlhYmlsaXR5ICAqLw0KOy8qIGlzIHJlc3RyaWN0ZWQgdG8gaW50ZW50aW9uIGFuZCBncm9zcyBuZWdsaWdlbmNlLiAgICAgICAgICAgICAgICAgICAgICovDQo7LyogRlNFVSBpcyBub3QgbGlhYmxlIGZvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMuICAgICAgICAgICAgICAgICAgICAgICAgKi8NCjsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qIChWMS40KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo7LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCjsvKiAgU3RhcnR1cCBmb3IgQVJNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qICBWZXJzaW9uICAgICBWMS4wMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo7LyogIERhdGUgICAgICAgIDIwMTEtMDEtMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCjsvKiAgVGFyZ2V0LW1jdSAgTUI5QjV4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCjsgU3RhY2sgQ29uZmlndXJhdGlvbg0KOyAgU3RhY2sgU2l6ZSAoaW4gQnl0ZXMpIDwweDAtMHhGRkZGRkZGRjo4Pg0KDQpTdGFja19TaXplICAgICAgRVFVICAgICAweDAwMDAwMjAwDQoNCiAgICAgICAgICAgICAgICBBUkVBICAgIFNUQUNLLCBOT0lOSVQsIFJFQURXUklURSwgQUxJR049Mw0KU3RhY2tfTWVtICAgICAgIFNQQUNFICAgU3RhY2tfU2l6ZQ0KX19pbml0aWFsX3NwDQoNCg0KOyBIZWFwIENvbmZpZ3VyYXRpb24NCjsgIEhlYXAgU2l6ZSAoaW4gQnl0ZXMpIDwweDAtMHhGRkZGRkZGRjo4Pg0KDQpIZWFwX1NpemUgICAgICAgRVFVICAgICAweDAwMDAwMDAwDQoNCiAgICAgICAgICAgICAgICBBUkVBICAgIEhFQVAsIE5PSU5JVCwgUkVBRFdSSVRFLCBBTElHTj0zDQpfX2hlYXBfYmFzZQ0KSGVhcF9NZW0gICAgICAgIFNQQUNFICAgSGVhcF9TaXplDQpfX2hlYXBfbGltaXQNCg0KDQogICAgICAgICAgICAgICAgUFJFU0VSVkU4DQogICAgICAgICAgICAgICAgVEhVTUINCg0KDQo7IFZlY3RvciBUYWJsZSBNYXBwZWQgdG8gQWRkcmVzcyAwIGF0IFJlc2V0DQoNCiAgICAgICAgICAgICAgICBBUkVBICAgIFJFU0VULCBEQVRBLCBSRUFET05MWQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgX19WZWN0b3JzDQogICAgICAgICAgICAgICAgRVhQT1JUICBfX1ZlY3RvcnNfRW5kDQogICAgICAgICAgICAgICAgRVhQT1JUICBfX1ZlY3RvcnNfU2l6ZQ0KDQpfX1ZlY3RvcnMgICAgICAgRENEICAgICBfX2luaXRpYWxfc3AgICAgICAgICAgICAgIDsgVG9wIG9mIFN0YWNrDQogICAgICAgICAgICAgICAgRENEICAgICBSZXNldF9IYW5kbGVyICAgICAgICAgICAgIDsgUmVzZXQgSGFuZGxlcg0KICAgICAgICAgICAgICAgIERDRCAgICAgTk1JX0hhbmRsZXIgICAgICAgICAgICAgICA7IE5NSSBIYW5kbGVyDQogICAgICAgICAgICAgICAgRENEICAgICBIYXJkRmF1bHRfSGFuZGxlciAgICAgICAgIDsgSGFyZCBGYXVsdCBIYW5kbGVyDQogICAgICAgICAgICAgICAgRENEICAgICBNZW1NYW5hZ2VfSGFuZGxlciAgICAgICAgIDsgTVBVIEZhdWx0IEhhbmRsZXINCiAgICAgICAgICAgICAgICBEQ0QgICAgIEJ1c0ZhdWx0X0hhbmRsZXIgICAgICAgICAgOyBCdXMgRmF1bHQgSGFuZGxlcg0KICAgICAgICAgICAgICAgIERDRCAgICAgVXNhZ2VGYXVsdF9IYW5kbGVyICAgICAgICA7IFVzYWdlIEZhdWx0IEhhbmRsZXINCiAgICAgICAgICAgICAgICBEQ0QgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgOyBSZXNlcnZlZA0KICAgICAgICAgICAgICAgIERDRCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICA7IFJlc2VydmVkDQogICAgICAgICAgICAgICAgRENEICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgIDsgUmVzZXJ2ZWQNCiAgICAgICAgICAgICAgICBEQ0QgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgOyBSZXNlcnZlZA0KICAgICAgICAgICAgICAgIERDRCAgICAgU1ZDX0hhbmRsZXIgICAgICAgICAgICAgICA7IFNWQ2FsbCBIYW5kbGVyDQogICAgICAgICAgICAgICAgRENEICAgICBEZWJ1Z01vbl9IYW5kbGVyICAgICAgICAgIDsgRGVidWcgTW9uaXRvciBIYW5kbGVyDQogICAgICAgICAgICAgICAgRENEICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgIDsgUmVzZXJ2ZWQNCiAgICAgICAgICAgICAgICBEQ0QgICAgIFBlbmRTVl9IYW5kbGVyICAgICAgICAgICAgOyBQZW5kU1YgSGFuZGxlcg0KICAgICAgICAgICAgICAgIERDRCAgICAgU3lzVGlja19IYW5kbGVyICAgICAgICAgICA7IFN5c1RpY2sgSGFuZGxlcg0KDQogICAgICAgICAgICAgICAgRENEICAgICBDU1ZfSGFuZGxlciAgICAgICAgICAgICAgIDsgMDogQ2xvY2sgU3VwZXIgVmlzb3INCiAgICAgICAgICAgICAgICBEQ0QgICAgIFNXRFRfSGFuZGxlciAgICAgICAgICAgICAgOyAxOiBTb2Z0d2FyZSBXYXRjaGRvZyBUaW1lcg0KICAgICAgICAgICAgICAgIERDRCAgICAgTFZEX0hhbmRsZXIgICAgICAgICAgICAgICA7IDI6IExvdyBWb2x0YWdlIERldGVjdG9yDQogICAgICAgICAgICAgICAgRENEICAgICBNRlRfV0dfSVJRSGFuZGxlciAgICAgICAgIDsgMzogV2F2ZSBGb3JtIEdlbmVyYXRvciAvIERUSUYNCiAgICAgICAgICAgICAgICBEQ0QgICAgIElOVDBfN19IYW5kbGVyICAgICAgICAgICAgOyA0OiBFeHRlcm5hbCBJbnRlcnJ1cHQgUmVxdWVzdCBjaC4wIHRvIGNoLjcNCiAgICAgICAgICAgICAgICBEQ0QgICAgIElOVDhfMTVfSGFuZGxlciAgICAgICAgICAgOyA1OiBFeHRlcm5hbCBJbnRlcnJ1cHQgUmVxdWVzdCBjaC44IHRvIGNoLjE1DQogICAgICAgICAgICAgICAgRENEICAgICBEVF9IYW5kbGVyICAgICAgICAgICAgICAgIDsgNjogRHVhbCBUaW1lciAvIFF1YWQgRGVjb2Rlcg0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTMFJYX0lSUUhhbmRsZXIgICAgICAgICA7IDc6IE11bHRpRnVuY3Rpb24gU2VyaWFsIGNoLjANCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GUzBUWF9JUlFIYW5kbGVyICAgICAgICAgOyA4OiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC4wDQogICAgICAgICAgICAgICAgRENEICAgICBNRlMxUlhfSVJRSGFuZGxlciAgICAgICAgIDsgOTogTXVsdGlGdW5jdGlvbiBTZXJpYWwgY2guMQ0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTMVRYX0lSUUhhbmRsZXIgICAgICAgICA7IDEwOiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC4xDQogICAgICAgICAgICAgICAgRENEICAgICBNRlMyUlhfSVJRSGFuZGxlciAgICAgICAgIDsgMTE6IE11bHRpRnVuY3Rpb24gU2VyaWFsIGNoLjINCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GUzJUWF9JUlFIYW5kbGVyICAgICAgICAgOyAxMjogTXVsdGlGdW5jdGlvbiBTZXJpYWwgY2guMg0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTM1JYX0lSUUhhbmRsZXIgICAgICAgICA7IDEzOiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC4zDQogICAgICAgICAgICAgICAgRENEICAgICBNRlMzVFhfSVJRSGFuZGxlciAgICAgICAgIDsgMTQ6IE11bHRpRnVuY3Rpb24gU2VyaWFsIGNoLjMNCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GUzRSWF9JUlFIYW5kbGVyICAgICAgICAgOyAxNTogTXVsdGlGdW5jdGlvbiBTZXJpYWwgY2guNA0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTNFRYX0lSUUhhbmRsZXIgICAgICAgICA7IDE2OiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC40DQogICAgICAgICAgICAgICAgRENEICAgICBNRlM1UlhfSVJRSGFuZGxlciAgICAgICAgIDsgMTc6IE11bHRpRnVuY3Rpb24gU2VyaWFsIGNoLjUNCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GUzVUWF9JUlFIYW5kbGVyICAgICAgICAgOyAxODogTXVsdGlGdW5jdGlvbiBTZXJpYWwgY2guNQ0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTNlJYX0lSUUhhbmRsZXIgICAgICAgICA7IDE5OiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC42DQogICAgICAgICAgICAgICAgRENEICAgICBNRlM2VFhfSVJRSGFuZGxlciAgICAgICAgIDsgMjA6IE11bHRpRnVuY3Rpb24gU2VyaWFsIGNoLjYNCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GUzdSWF9JUlFIYW5kbGVyICAgICAgICAgOyAyMTogTXVsdGlGdW5jdGlvbiBTZXJpYWwgY2guNw0KICAgICAgICAgICAgICAgIERDRCAgICAgTUZTN1RYX0lSUUhhbmRsZXIgICAgICAgICA7IDIyOiBNdWx0aUZ1bmN0aW9uIFNlcmlhbCBjaC43DQogICAgICAgICAgICAgICAgRENEICAgICBQUEdfSGFuZGxlciAgICAgICAgICAgICAgIDsgMjM6IFBQRw0KICAgICAgICAgICAgICAgIERDRCAgICAgVElNX0lSUUhhbmRsZXIgICAgICAgICAgICA7IDI0OiBPU0MgLyBQTEwgLyBXYXRjaCBDb3VudGVyDQogICAgICAgICAgICAgICAgRENEICAgICBBREMwX0lSUUhhbmRsZXIgICAgICAgICAgIDsgMjU6IEFEQzANCiAgICAgICAgICAgICAgICBEQ0QgICAgIEFEQzFfSVJRSGFuZGxlciAgICAgICAgICAgOyAyNjogQURDMQ0KICAgICAgICAgICAgICAgIERDRCAgICAgQURDMl9JUlFIYW5kbGVyICAgICAgICAgICA7IDI3OiBBREMyDQogICAgICAgICAgICAgICAgRENEICAgICBNRlRfRlJUX0lSUUhhbmRsZXIgICAgICAgIDsgMjg6IEZyZWUtcnVuIFRpbWVyDQogICAgICAgICAgICAgICAgRENEICAgICBNRlRfSVBDX0lSUUhhbmRsZXIgICAgICAgIDsgMjk6IElucHV0IENhcHR1cmUNCiAgICAgICAgICAgICAgICBEQ0QgICAgIE1GVF9PUENfSVJRSGFuZGxlciAgICAgICAgOyAzMDogT3V0cHV0IENvbXBhcmUNCiAgICAgICAgICAgICAgICBEQ0QgICAgIEJUX0lSUUhhbmRsZXIgICAgICAgICAgICAgOyAzMTogQmFzZSBUaW1lciBjaC4wIHRvIGNoLjcNCiAgICAgICAgICAgICAgICBEQ0QgICAgIENBTjBfSVJRSGFuZGxlciAgICAgICAgICAgOyAzMjogQ0FOIGNoLjANCiAgICAgICAgICAgICAgICBEQ0QgICAgIENBTjFfSVJRSGFuZGxlciAgICAgICAgICAgOyAzMzogQ0FOIGNoLjENCiAgICAgICAgICAgICAgICBEQ0QgICAgIFVTQkZfSGFuZGxlciAgICAgICAgICAgICAgOyAzNDogVVNCIEZ1bmN0aW9uDQogICAgICAgICAgICAgICAgRENEICAgICBVU0JfSGFuZGxlciAgICAgICAgICAgICAgIDsgMzU6IFVTQiBGdW5jdGlvbiAvIFVTQiBIT1NUDQogICAgICAgICAgICAgICAgRENEICAgICBEdW1teUhhbmRsZXIgICAgICAgICAgICAgIDsgMzY6IFJlc2VydmVkDQogICAgICAgICAgICAgICAgRENEICAgICBEdW1teUhhbmRsZXIgICAgICAgICAgICAgIDsgMzc6IFJlc2VydmVkDQogICAgICAgICAgICAgICAgRENEICAgICBETUFDMF9IYW5kbGVyICAgICAgICAgICAgIDsgMzg6IERNQUMgY2guMA0KICAgICAgICAgICAgICAgIERDRCAgICAgRE1BQzFfSGFuZGxlciAgICAgICAgICAgICA7IDM5OiBETUFDIGNoLjENCiAgICAgICAgICAgICAgICBEQ0QgICAgIERNQUMyX0hhbmRsZXIgICAgICAgICAgICAgOyA0MDogRE1BQyBjaC4yDQogICAgICAgICAgICAgICAgRENEICAgICBETUFDM19IYW5kbGVyICAgICAgICAgICAgIDsgNDE6IERNQUMgY2guMw0KICAgICAgICAgICAgICAgIERDRCAgICAgRE1BQzRfSGFuZGxlciAgICAgICAgICAgICA7IDQyOiBETUFDIGNoLjQNCiAgICAgICAgICAgICAgICBEQ0QgICAgIERNQUM1X0hhbmRsZXIgICAgICAgICAgICAgOyA0MzogRE1BQyBjaC41DQogICAgICAgICAgICAgICAgRENEICAgICBETUFDNl9IYW5kbGVyICAgICAgICAgICAgIDsgNDQ6IERNQUMgY2guNg0KICAgICAgICAgICAgICAgIERDRCAgICAgRE1BQzdfSGFuZGxlciAgICAgICAgICAgICA7IDQ1OiBETUFDIGNoLjcNCiAgICAgICAgICAgICAgICBEQ0QgICAgIER1bW15SGFuZGxlciAgICAgICAgICAgICAgOyA0NjogUmVzZXJ2ZWQNCiAgICAgICAgICAgICAgICBEQ0QgICAgIER1bW15SGFuZGxlciAgICAgICAgICAgICAgOyA0NzogUmVzZXJ2ZWQNCl9fVmVjdG9yc19FbmQNCg0KX19WZWN0b3JzX1NpemUgCUVRVSAJX19WZWN0b3JzX0VuZCAtIF9fVmVjdG9ycw0KDQogICAgICAgICAgICAgICAgQVJFQSAgICB8LnRleHR8LCBDT0RFLCBSRUFET05MWQ0KDQoNCjsgUmVzZXQgSGFuZGxlcg0KDQpSZXNldF9IYW5kbGVyICAgUFJPQw0KICAgICAgICAgICAgICAgIEVYUE9SVCAgUmVzZXRfSGFuZGxlciAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBJTVBPUlQgIFN5c3RlbUluaXQNCiAgICAgICAgICAgICAgICBJTVBPUlQgIF9fbWFpbg0KICAgICAgICAgICAgICAgIExEUiAgICAgUjAsID1TeXN0ZW1Jbml0DQogICAgICAgICAgICAgICAgQkxYICAgICBSMA0KICAgICAgICAgICAgICAgIExEUiAgICAgUjAsID1fX21haW4NCiAgICAgICAgICAgICAgICBCWCAgICAgIFIwDQogICAgICAgICAgICAgICAgRU5EUA0KDQoNCjsgRHVtbXkgRXhjZXB0aW9uIEhhbmRsZXJzIChpbmZpbml0ZSBsb29wcyB3aGljaCBjYW4gYmUgbW9kaWZpZWQpDQoNCk5NSV9IYW5kbGVyICAgICBQUk9DDQogICAgICAgICAgICAgICAgRVhQT1JUICBOTUlfSGFuZGxlciAgICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEIgICAgICAgLg0KICAgICAgICAgICAgICAgIEVORFANCkhhcmRGYXVsdF9IYW5kbGVyXA0KICAgICAgICAgICAgICAgIFBST0MNCiAgICAgICAgICAgICAgICBFWFBPUlQgIEhhcmRGYXVsdF9IYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgQiAgICAgICAuDQogICAgICAgICAgICAgICAgRU5EUA0KTWVtTWFuYWdlX0hhbmRsZXJcDQogICAgICAgICAgICAgICAgUFJPQw0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTWVtTWFuYWdlX0hhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBCICAgICAgIC4NCiAgICAgICAgICAgICAgICBFTkRQDQpCdXNGYXVsdF9IYW5kbGVyXA0KICAgICAgICAgICAgICAgIFBST0MNCiAgICAgICAgICAgICAgICBFWFBPUlQgIEJ1c0ZhdWx0X0hhbmRsZXIgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgQiAgICAgICAuDQogICAgICAgICAgICAgICAgRU5EUA0KVXNhZ2VGYXVsdF9IYW5kbGVyXA0KICAgICAgICAgICAgICAgIFBST0MNCiAgICAgICAgICAgICAgICBFWFBPUlQgIFVzYWdlRmF1bHRfSGFuZGxlciAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgQiAgICAgICAuDQogICAgICAgICAgICAgICAgRU5EUA0KU1ZDX0hhbmRsZXIgICAgIFBST0MNCiAgICAgICAgICAgICAgICBFWFBPUlQgIFNWQ19IYW5kbGVyICAgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgQiAgICAgICAuDQogICAgICAgICAgICAgICAgRU5EUA0KRGVidWdNb25fSGFuZGxlclwNCiAgICAgICAgICAgICAgICBQUk9DDQogICAgICAgICAgICAgICAgRVhQT1JUICBEZWJ1Z01vbl9IYW5kbGVyICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEIgICAgICAgLg0KICAgICAgICAgICAgICAgIEVORFANClBlbmRTVl9IYW5kbGVyICBQUk9DDQogICAgICAgICAgICAgICAgRVhQT1JUICBQZW5kU1ZfSGFuZGxlciAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEIgICAgICAgLg0KICAgICAgICAgICAgICAgIEVORFANClN5c1RpY2tfSGFuZGxlciBQUk9DDQogICAgICAgICAgICAgICAgRVhQT1JUICBTeXNUaWNrX0hhbmRsZXIgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEIgICAgICAgLg0KICAgICAgICAgICAgICAgIEVORFANCg0KRGVmYXVsdF9IYW5kbGVyIFBST0MNCg0KICAgICAgICAgICAgICAgIEVYUE9SVCAgQ1NWX0hhbmRsZXIJICAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIFNXRFRfSGFuZGxlciAgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBMVkRfSGFuZGxlciAgICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZUX1dHX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIElOVDBfN19IYW5kbGVyICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBJTlQ4XzE1X0hhbmRsZXIgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgRFRfSGFuZGxlciAgICAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzBSWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlMwVFhfSVJRSGFuZGxlciAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZTMVJYX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzFUWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlMyUlhfSVJRSGFuZGxlciAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZTMlRYX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzNSWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlMzVFhfSVJRSGFuZGxlciAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZTNFJYX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzRUWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlM1UlhfSVJRSGFuZGxlciAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZTNVRYX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzZSWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlM2VFhfSVJRSGFuZGxlciAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZTN1JYX0lSUUhhbmRsZXIgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GUzdUWF9JUlFIYW5kbGVyICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBQUEdfSGFuZGxlciAgICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgVElNX0lSUUhhbmRsZXIgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIEFEQzBfSVJRSGFuZGxlciAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBBREMxX0lSUUhhbmRsZXIgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgQURDMl9JUlFIYW5kbGVyICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIE1GVF9GUlRfSVJRSGFuZGxlciAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBNRlRfSVBDX0lSUUhhbmRsZXIgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgTUZUX09QQ19JUlFIYW5kbGVyICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIEJUX0lSUUhhbmRsZXIgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBDQU4wX0lSUUhhbmRsZXIgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgQ0FOMV9JUlFIYW5kbGVyICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIFVTQkZfSGFuZGxlciAgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBVU0JfSGFuZGxlciAgICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgRE1BQzBfSGFuZGxlciAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIERNQUMxX0hhbmRsZXIgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBETUFDMl9IYW5kbGVyICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgRE1BQzNfSGFuZGxlciAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIERNQUM0X0hhbmRsZXIgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBETUFDNV9IYW5kbGVyICAgICAgICAgICAgIFtXRUFLXQ0KICAgICAgICAgICAgICAgIEVYUE9SVCAgRE1BQzZfSGFuZGxlciAgICAgICAgICAgICBbV0VBS10NCiAgICAgICAgICAgICAgICBFWFBPUlQgIERNQUM3X0hhbmRsZXIgICAgICAgICAgICAgW1dFQUtdDQogICAgICAgICAgICAgICAgRVhQT1JUICBEdW1teUhhbmRsZXIgICAgICAgICAgICAgIFtXRUFLXQ0KDQpDU1ZfSGFuZGxlcg0KU1dEVF9IYW5kbGVyDQpMVkRfSGFuZGxlcg0KTUZUX1dHX0lSUUhhbmRsZXINCklOVDBfN19IYW5kbGVyDQpJTlQ4XzE1X0hhbmRsZXINCkRUX0hhbmRsZXINCk1GUzBSWF9JUlFIYW5kbGVyDQpNRlMwVFhfSVJRSGFuZGxlcg0KTUZTMVJYX0lSUUhhbmRsZXINCk1GUzFUWF9JUlFIYW5kbGVyDQpNRlMyUlhfSVJRSGFuZGxlcg0KTUZTMlRYX0lSUUhhbmRsZXINCk1GUzNSWF9JUlFIYW5kbGVyDQpNRlMzVFhfSVJRSGFuZGxlcg0KTUZTNFJYX0lSUUhhbmRsZXINCk1GUzRUWF9JUlFIYW5kbGVyDQpNRlM1UlhfSVJRSGFuZGxlcg0KTUZTNVRYX0lSUUhhbmRsZXINCk1GUzZSWF9JUlFIYW5kbGVyDQpNRlM2VFhfSVJRSGFuZGxlcg0KTUZTN1JYX0lSUUhhbmRsZXINCk1GUzdUWF9JUlFIYW5kbGVyDQpQUEdfSGFuZGxlcg0KVElNX0lSUUhhbmRsZXINCkFEQzBfSVJRSGFuZGxlcg0KQURDMV9JUlFIYW5kbGVyDQpBREMyX0lSUUhhbmRsZXINCk1GVF9GUlRfSVJRSGFuZGxlcg0KTUZUX0lQQ19JUlFIYW5kbGVyDQpNRlRfT1BDX0lSUUhhbmRsZXINCkJUX0lSUUhhbmRsZXINCkNBTjBfSVJRSGFuZGxlcg0KQ0FOMV9JUlFIYW5kbGVyDQpVU0JGX0hhbmRsZXINClVTQl9IYW5kbGVyDQpETUFDMF9IYW5kbGVyDQpETUFDMV9IYW5kbGVyDQpETUFDMl9IYW5kbGVyDQpETUFDM19IYW5kbGVyDQpETUFDNF9IYW5kbGVyDQpETUFDNV9IYW5kbGVyDQpETUFDNl9IYW5kbGVyDQpETUFDN19IYW5kbGVyDQpEdW1teUhhbmRsZXINCg0KICAgICAgICAgICAgICAgIEIgICAgICAgLg0KDQogICAgICAgICAgICAgICAgRU5EUA0KDQoNCiAgICAgICAgICAgICAgICBBTElHTg0KDQoNCjsgVXNlciBJbml0aWFsIFN0YWNrICYgSGVhcA0KDQogICAgICAgICAgICAgICAgSUYgICAgICA6REVGOl9fTUlDUk9MSUINCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBFWFBPUlQgIF9faW5pdGlhbF9zcA0KICAgICAgICAgICAgICAgIEVYUE9SVCAgX19oZWFwX2Jhc2UNCiAgICAgICAgICAgICAgICBFWFBPUlQgIF9faGVhcF9saW1pdA0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIEVMU0UNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBJTVBPUlQgIF9fdXNlX3R3b19yZWdpb25fbWVtb3J5DQogICAgICAgICAgICAgICAgRVhQT1JUICBfX3VzZXJfaW5pdGlhbF9zdGFja2hlYXANCl9fdXNlcl9pbml0aWFsX3N0YWNraGVhcA0KDQogICAgICAgICAgICAgICAgTERSICAgICBSMCwgPSAgSGVhcF9NZW0NCiAgICAgICAgICAgICAgICBMRFIgICAgIFIxLCA9KFN0YWNrX01lbSArIFN0YWNrX1NpemUpDQogICAgICAgICAgICAgICAgTERSICAgICBSMiwgPSAoSGVhcF9NZW0gKyAgSGVhcF9TaXplKQ0KICAgICAgICAgICAgICAgIExEUiAgICAgUjMsID0gU3RhY2tfTWVtDQogICAgICAgICAgICAgICAgQlggICAgICBMUg0KDQogICAgICAgICAgICAgICAgQUxJR04NCg0KICAgICAgICAgICAgICAgIEVORElGDQoNCg0KICAgICAgICAgICAgICAgIEVORA0K