LyoKICogVW5pbnN0YWxsZXIgKHJzcmMucmMpCiAqCiAqIENvcHlyaWdodCAyMDAwIEFuZHJlYXMgTW9ociA8YW5kaUBsaXNhcy5kZT4KICogQ29weXJpZ2h0IDIwMDMgVmluY2VudCBC6XJvbgogKiBDb3B5cmlnaHQgMjAwMyBJdmFuIExlbyBNdXJyYXktU21pdGgKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKI2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgIm1haW4uaCIKCi8qIEJJTlJFUyB1bmluc3RhbGxlci5pY28gKi8KVU5JTlNUQUxMRVIgSUNPTiBNT1ZFQUJMRSB1bmluc3RhbGxlci5pY28KLyogewogJzAwIDAwIDAxIDAwIDAxIDAwIDIwIDIwIDEwIDAwIDAwIDAwIDAwIDAwIEU4IDAyJwogJzAwIDAwIDE2IDAwIDAwIDAwIDI4IDAwIDAwIDAwIDIwIDAwIDAwIDAwIDQwIDAwJwogJzAwIDAwIDAxIDAwIDA0IDAwIDAwIDAwIDAwIDAwIDAwIDAyIDAwIDAwIDAwIDAwJwogJzAwIDAwIDAwIDAwIDAwIDAwIDEwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIEZGIDE5JwogJzAwIDAwIDAwIDAwIDAwIDAwIDdGIDdGIDdGIDAwIEZGIEZGIEZGIDAwIDAwIDAwJwogJ0ZGIDAwIEQ2IEQ2IEQ2IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwJwogJzAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwJwogJzAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDQ0IDExJwogJzExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDQ0IDQ0IDQxJwogJzExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDE0IDQ0IDQ0IDQ0JwogJzAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDQ0IDQxIDE0IDQ0JwogJzQwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDA0IDQ0IDExIDExIDE0JwogJzQ0IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDQ0IDQxIDExIDExIDEwJwogJzQ0IDQzIDMzIDMzIDMzIDMzIDMzIDMzIDMzIDMzIDM0IDQ0IDAxIDExIDExIDEwJwogJzA0IDQ0IDMzIDMzIDMzIDMzIDMzIDMzIDMzIDMzIDQ0IDQwIDAxIDExIDExIDEwJwogJzAwIDQ0IDQyIDIyIDIyIDMzIDMyIDIyIDIyIDI0IDQ0IDAwIDAxIDExIDExIDEwJwogJzAwIDM0IDQ0IDMzIDMzIDMzIDMzIDMzIDMzIDQ0IDQzIDAwIDAxIDExIDExIDEwJwogJzAwIDMyIDQ0IDQyIDIyIDIyIDIyIDIyIDI0IDQ0IDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMzIDM0IDQ0IDMzIDMzIDMzIDMzIDQ0IDQzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMyIDIyIDQ0IDQyIDIzIDMyIDI0IDQ0IDIzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMzIDMzIDM0IDQ0IDMzIDMzIDQ0IDQzIDMzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMyIDIyIDIyIDQ0IDQzIDI0IDQ0IDIyIDIzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMzIDMzIDMzIDM0IDQ0IDQ0IDQzIDMzIDMzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMyIDIyIDIyIDIyIDQ0IDQ0IDMzIDMzIDMzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDMzIDMzIDMzIDMzIDQ0IDQ0IDMzIDMzIDMzIDMzIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDAwIDAwIDA0IDQ0IDQ0IDQwIDAwIDAwIDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDAwIDAwIDQ0IDQwIDA0IDQ0IDAwIDAwIDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDAwIDA0IDQ0IDAwIDAwIDQ0IDQwIDAwIDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDA1IDQ0IDQ1IDU1IDU1IDU0IDQ0IDAwIDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDA0IDQ0IDU1IDU1IDU1IDAwIDQ0IDQwIDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDAwIDQ0IDQ1IDU1IDU1IDU1IDAwIDA0IDQ0IDAwIDAwIDAxIDExIDExIDEwJwogJzAwIDA0IDQ0IDU1IDU1IDU1IDU1IDAwIDA1IDQ0IDQwIDAwIDAxIDExIDExIDEwJwogJzAwIDQ0IDQ1IDU1IDU1IDU1IDU1IDAwIDA1IDU0IDQ0IDAwIDAxIDExIDExIDEwJwogJzA0IDQ0IDA1IDU1IDU1IDU1IDU1IDAwIDA1IDUwIDQ0IDQwIDExIDExIDExIDEwJwogJzQ0IDQwIDA1IDU1IDU1IDU1IDU1IDAwIDA1IDUwIDA0IDQ0IDQxIDExIDExIDE0JwogJzQ0IDAwIDA1IDU1IDU1IDU1IDU1IDAwIDA1IDUwIDAwIDQ0IDQ0IDQxIDE0IDQ0JwogJzQwIDAwIDA1IDU1IDU1IDU1IDU1IDU1IDU1IDUwIDAxIDE0IDQ0IDQ0IDE0IDQ0JwogJzExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDQ0IDQ0IDQ0IDQxJwogJzExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDE0IDQ0IDQ0IDExJwogJzExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDExIDQ0IDNGIEZGJwogJ0ZGIEZDIDAwIDAwIDAwIDAwIDgwIDAwIDAwIDAxIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwJwogJzAwIDAzIEMwIDAwIDAwIDAzIEMwIDAwIDAwIDBGIEMwIDAwIDAwIDA3IEMwIDAwJwogJzAwIDAzIDgwIDAwIDAwIDMxIDFGIEZGIEZGIEY4IDNGIEZGIEZGIEZDJwp9ICovCgovKiBFbmdsaXNoLVVTIFJlc291cmNlcyAqLwpMQU5HVUFHRSBMQU5HX0VOR0xJU0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUgewogICAgIElEU19BUFBOQU1FLCAiVW5pbnN0YWxsZXIiCgp9Ci8qIEVuZCBvZiBFbmdsaXNoLVVTIFJlc291cmNlcyAqLwoKLyogRnJlbmNoIFJlc291cmNlcyAqLwpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRSB7CiAgICAgSURTX0FQUE5BTUUsICJE6XNpbnN0YWxsZXVyIgoKfQovKiBFbmQgb2YgRnJlbmNoIFJlc291cmNlcyAqLwoKLyogSXRhbGlhbiBSZXNvdXJjZXMgKi8KTEFOR1VBR0UgTEFOR19JVEFMSUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFIHsKICAgICBJRFNfQVBQTkFNRSwgIkRpc2luc3RhbGxhdG9yZSIKCn0KLyogRW5kIG9mIEl0YWxpYW4gUmVzb3VyY2VzICovCgovKiBQb3J0dWd1ZXNlIFJlc291cmNlcyAqLwpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUgewogICAgIElEU19BUFBOQU1FLCAiRGVzaW5zdGFsYWRvciIKCn0KLyogRW5kIG9mIFBvcnR1Z3Vlc2UgUmVzb3VyY2VzICovCg==