IwojIE1ha2VmaWxlIGZvciBGcmVlVHlwZTIgbGluayBsaWJyYXJ5IHVzaW5nIGdjYyA0LjAuMyBmcm9tIHRoZQojIEFtaWdhT1M0IFNESwojCgoKIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMiBieQojIFdlcm5lciBMZW1iZXJnIGFuZCBEZXRsZWYgV/xya25lci4KIwojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgbW9kaWZpZWQsCiMgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRnJlZVR5cGUgcHJvamVjdCBsaWNlbnNlLAojIExJQ0VOU0UuVFhULiAgQnkgY29udGludWluZyB0byB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgeW91CiMgaW5kaWNhdGUgdGhhdCB5b3UgaGF2ZSByZWFkIHRoZSBsaWNlbnNlIGFuZCB1bmRlcnN0YW5kIGFuZCBhY2NlcHQgaXQKIyBmdWxseS4KCgojIHRvIGJ1aWxkIGZyb20gdGhlIGJ1aWxkcy9hbWlnYSBkaXJlY3RvcnkgY2FsbAojCiMgIG1ha2UgLWYgbWFrZWZpbGUub3M0CiMKIyBZb3VyIHByb2dyYW1zIHNvdXJjZSBjb2RlIHNob3VsZCBzdGFydCB3aXRoIHRoaXMKIyAodW5jb21tZW50IHRoZSBwYXJ0cyB5b3UgZG8gbm90IG5lZWQgdG8ga2VlcCB0aGUgcHJvZ3JhbSBzbWFsbCk6CiMgLS0tODwtLS0KI2RlZmluZSBGVF9VU0VfQVVUT0ZJVCAvLyBhdXRvZml0dGVyCiNkZWZpbmUgRlRfVVNFX1JBU1RFUiAgLy8gbW9ub2Nocm9tZSByYXN0ZXJpemVyCiNkZWZpbmUgRlRfVVNFX1NNT09USCAgLy8gYW50aS1hbGlhc2luZyByYXN0ZXJpemVyCiNkZWZpbmUgRlRfVVNFX1RUICAgICAgLy8gdHJ1ZXR5cGUgZm9udCBkcml2ZXIKI2RlZmluZSBGVF9VU0VfVDEgICAgICAvLyB0eXBlMSBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9UNDIgICAgIC8vIHR5cGU0MiBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9UMUNJRCAgIC8vIGNpZC1rZXllZCB0eXBlMSBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9DRkYgICAgIC8vIG9wZW50eXBlIGZvbnQgZHJpdmVyCiNkZWZpbmUgRlRfVVNFX0JERiAgICAgLy8gYmRmIGJpdG1hcCBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9QQ0YgICAgIC8vIHBjZiBiaXRtYXAgZm9udCBkcml2ZXIKI2RlZmluZSBGVF9VU0VfUEZSICAgICAvLyBwZnIgZm9udCBkcml2ZXIKI2RlZmluZSBGVF9VU0VfV0lORk5UICAvLyB3aW5kb3dzIC5mbnR8LmZvbiBiaXRtYXAgZm9udCBkcml2ZXIKI2RlZmluZSBGVF9VU0VfT1RWICAgICAvLyBvcGVudHlwZSB2YWxpZGF0b3IKI2RlZmluZSBGVF9VU0VfR1hWICAgICAvLyB0cnVldHlwZSBneCB2YWxpZGF0b3IKI2luY2x1ZGUgIkZUOnNyYy9iYXNlL2Z0aW5pdC5jIgojIC0tLTg8LS0tCiMKIyBsaW5rIHlvdXIgcHJvZ3JhbXMgd2l0aCBsaWJmdDJfcHBjLmEgYW5kIGVpdGhlciBmdHN5c3RlbS5wcGMubyBvciBmdHN5c3RlbXB1cmUucHBjLm8KIyAoYW5kIGVpdGhlciBmdGRlYnVnLnBwYy5vIG9yIGZ0ZGVidWdwdXJlLnBwYy5vIGlmIHlvdSBlbmFibGVkIEZUX0RFQlVHX0xFVkVMX0VSUk9SIG9yCiMgRlRfREVCVUdfTEVWRUxfVFJBQ0UgaW4gaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaCkuCgphbGw6CWFzc2lnbiBsaWJmdDJfcHBjLmEgZnRzeXN0ZW0ucHBjLm8gZnRzeXN0ZW1wdXJlLnBwYy5vCgphc3NpZ246Cglhc3NpZ24gRlQ6IC8vCgpDQyA9ICAgICBwcGMtYW1pZ2Fvcy1nY2MKQVIgPSAgICAgcHBjLWFtaWdhb3MtYXIKUkFOTElCID0gcHBjLWFtaWdhb3MtcmFubGliCgpESVJGTEFHUyAgPSAtSWluY2x1ZGUgLUkvRlQvc3JjIC1JL0ZUL2luY2x1ZGUgLUkvU0RLL2luY2x1ZGUKCldBUk5JTkdTID0gLVdhbGwgLVcgLVd1bmRlZiAtV3BvaW50ZXItYXJpdGggLVdiYWQtZnVuY3Rpb24tY2FzdCBcCgkgICAtV2FnZ3JlZ2F0ZS1yZXR1cm4gLVd3cml0ZS1zdHJpbmdzIC1Xc2hhZG93CgpPUFRJT05TICA9IC1ERlQyX0JVSUxEX0xJQlJBUlkgLUROREVCVUcgLWZuby1idWlsdGluCk9QVElNSVpFID0gLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyIC1mc3RyZW5ndGgtcmVkdWNlIC1maW5saW5lLWZ1bmN0aW9ucwoKQ0ZMQUdTICAgPSAtbWNydD1jbGliMiAkKERJUkZMQUdTKSAkKFdBUk5JTkdTKSAkKEZUMkZMQUdTKSAkKE9QVElPTlMpICQoT1BUSU1JWkUpCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgYmFzZQojCmZ0YmFzZS5wcGMubzogRlQ6c3JjL2Jhc2UvZnRiYXNlLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRiYXNlLmMKCmZ0aW5pdC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRpbml0LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRpbml0LmMKCmZ0c3lzdGVtLnBwYy5vOiBGVDpzcmMvYmFzZS9mdHN5c3RlbS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0c3lzdGVtLmMKCiMgcHVyZSB2ZXJzaW9uIGZvciB1c2UgaW4gcnVuLXRpbWUgbGlicmFyeSBldGMKZnRzeXN0ZW1wdXJlLnBwYy5vOiBzcmMvYmFzZS9mdHN5c3RlbS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgc3JjL2Jhc2UvZnRzeXN0ZW0uYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IGJhc2UgZXh0ZW5zaW9ucwojCmZ0YmJveC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRiYm94LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRiYm94LmMKCmZ0YmRmLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGJkZi5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0YmRmLmMKCmZ0Yml0bWFwLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGJpdG1hcC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0Yml0bWFwLmMKCmZ0Y2lkLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGNpZC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0Y2lkLmMKCmZ0ZGVidWcucHBjLm86IEZUOnNyYy9iYXNlL2Z0ZGVidWcuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGRlYnVnLmMKCiMgcHVyZSB2ZXJzaW9uIGZvciB1c2UgaW4gcnVuLXRpbWUgbGlicmFyeSBldGMKZnRkZWJ1Z3B1cmUucHBjLm86IHNyYy9iYXNlL2Z0ZGVidWcuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIHNyYy9iYXNlL2Z0ZGVidWcuYwoKZnRmc3R5cGUucHBjLm86IEZUOnNyYy9iYXNlL2Z0ZnN0eXBlLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRmc3R5cGUuYwoKZnRnYXNwLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGdhc3AuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGdhc3AuYwoKZnRnbHlwaC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRnbHlwaC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0Z2x5cGguYwoKZnRneHZhbC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRneHZhbC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0Z3h2YWwuYwoKZnRtbS5wcGMubzogRlQ6c3JjL2Jhc2UvZnRtbS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0bW0uYwoKZnRvdHZhbC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRvdHZhbC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0b3R2YWwuYwoKZnRwYXRlbnQucHBjLm86IEZUOnNyYy9iYXNlL2Z0cGF0ZW50LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRwYXRlbnQuYwoKZnRwZnIucHBjLm86IEZUOnNyYy9iYXNlL2Z0cGZyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRwZnIuYwoKZnRzdHJva2UucHBjLm86IEZUOnNyYy9iYXNlL2Z0c3Ryb2tlLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRzdHJva2UuYwoKZnRzeW50aC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRzeW50aC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0c3ludGguYwoKZnR0eXBlMS5wcGMubzogRlQ6c3JjL2Jhc2UvZnR0eXBlMS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0dHlwZTEuYwoKZnR3aW5mbnQucHBjLm86IEZUOnNyYy9iYXNlL2Z0d2luZm50LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnR3aW5mbnQuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IGF1dG9maXR0aW5nIG1vZHVsZQojCmF1dG9maXQucHBjLm86IEZUOnNyYy9hdXRvZml0L2F1dG9maXQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYXV0b2ZpdC9hdXRvZml0LmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBwb3N0c2NyaXB0IGhpbnRpbmcgbW9kdWxlCiMKcHNoaW50ZXIucHBjLm86IEZUOnNyYy9wc2hpbnRlci9wc2hpbnRlci5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9wc2hpbnRlci9wc2hpbnRlci5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgUFMgc3VwcG9ydCBtb2R1bGUKIwpwc2F1eC5wcGMubzogRlQ6c3JjL3BzYXV4L3BzYXV4LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3BzYXV4L3BzYXV4LmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBQUyBnbHlwaCBuYW1lcyBtb2R1bGUKIwpwc25hbWVzLnBwYy5vOiBGVDpzcmMvcHNuYW1lcy9wc25hbWVzLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3BzbmFtZXMvcHNuYW1lcy5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgbW9ub2Nocm9tZSByYXN0ZXIgbW9kdWxlCiMKcmFzdGVyLnBwYy5vOiBGVDpzcmMvcmFzdGVyL3Jhc3Rlci5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9yYXN0ZXIvcmFzdGVyLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBhbnRpLWFsaWFzaW5nIHJhc3RlciBtb2R1bGUKIwpzbW9vdGgucHBjLm86IEZUOnNyYy9zbW9vdGgvc21vb3RoLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3Ntb290aC9zbW9vdGguYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5ICdzZm50JyBtb2R1bGUKIwpzZm50LnBwYy5vOiBGVDpzcmMvc2ZudC9zZm50LmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3NmbnQvc2ZudC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgZ2x5cGggYW5kIGltYWdlIGNhY2hpbmcgc3lzdGVtCiMKZnRjYWNoZS5wcGMubzogRlQ6c3JjL2NhY2hlL2Z0Y2FjaGUuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvY2FjaGUvZnRjYWNoZS5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgT3BlblR5cGUgZm9udCBkcml2ZXIKIwpjZmYucHBjLm86IEZUOnNyYy9jZmYvY2ZmLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2NmZi9jZmYuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFRydWVUeXBlIGZvbnQgZHJpdmVyCiMKdHJ1ZXR5cGUucHBjLm86IEZUOnNyYy90cnVldHlwZS90cnVldHlwZS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy90cnVldHlwZS90cnVldHlwZS5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgVHlwZTEgZm9udCBkcml2ZXIKIwp0eXBlMS5wcGMubzogRlQ6c3JjL3R5cGUxL3R5cGUxLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3R5cGUxL3R5cGUxLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBUeXBlNDIgZm9udCBkcml2ZXIKIwp0eXBlNDIucHBjLm86IEZUOnNyYy90eXBlNDIvdHlwZTQyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3R5cGU0Mi90eXBlNDIuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IENJRC1rZXllZCBUeXBlMSBmb250IGRyaXZlcgojCnR5cGUxY2lkLnBwYy5vOiBGVDpzcmMvY2lkL3R5cGUxY2lkLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2NpZC90eXBlMWNpZC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgQkRGIGJpdG1hcCBmb250IGRyaXZlcgojCmJkZi5wcGMubzogRlQ6c3JjL2JkZi9iZGYuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmRmL2JkZi5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgUENGIGJpdG1hcCBmb250IGRyaXZlcgojCnBjZi5wcGMubzogRlQ6c3JjL3BjZi9wY2YuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvcGNmL3BjZi5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgZ3ppcCBzdXBwb3J0IGZvciBjb21wcmVzc2VkIFBDRiBiaXRtYXAgZm9udHMKIwpnemlwLnBwYy5vOiBGVDpzcmMvZ3ppcC9mdGd6aXAuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvZ3ppcC9mdGd6aXAuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IGJ6aXAyIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgUENGIGJpdG1hcCBmb250cwojCmJ6aXAyLnBwYy5vOiBGVDpzcmMvYnppcDIvZnRiemlwMi5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iemlwMi9mdGJ6aXAyLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBjb21wcmVzcyBzdXBwb3J0IGZvciBjb21wcmVzc2VkIFBDRiBiaXRtYXAgZm9udHMKIwpsencucHBjLm86IEZUOnNyYy9sencvZnRsencuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvbHp3L2Z0bHp3LmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBQRlIgZm9udCBkcml2ZXIKIwpwZnIucHBjLm86IEZUOnNyYy9wZnIvcGZyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3Bmci9wZnIuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFdpbmRvd3MgRk5UL0ZPTiBiaXRtYXAgZm9udCBkcml2ZXIKIwp3aW5mbnQucHBjLm86IEZUOnNyYy93aW5mb250cy93aW5mbnQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvd2luZm9udHMvd2luZm50LmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBUcnVlVHlwZUdYIFZhbGlkYXRvcgojCmd4dmFsaWQucHBjLm86IEZUOnNyYy9neHZhbGlkL2d4dmFsaWQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1Xbm8tYWdncmVnYXRlLXJldHVybiAtbyAkQCAvRlQvc3JjL2d4dmFsaWQvZ3h2YWxpZC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgT3BlblR5cGUgdmFsaWRhdG9yCiMKb3R2YWxpZC5wcGMubzogRlQ6c3JjL290dmFsaWQvb3R2YWxpZC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9vdHZhbGlkL290dmFsaWQuYwoKQkFTRSA9IGZ0YmFzZS5wcGMubyBmdGJib3gucHBjLm8gZnRiZGYucHBjLm8gZnRiaXRtYXAucHBjLm8gZnRjaWQucHBjLm8gXAogICAgICAgZnRmc3R5cGUucHBjLm8gZnRnYXNwLnBwYy5vIGZ0Z2x5cGgucHBjLm8gICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICBmdGd4dmFsLnBwYy5vIGZ0bW0ucHBjLm8gZnRvdHZhbC5wcGMubyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgIGZ0cGF0ZW50LnBwYy5vIGZ0cGZyLnBwYy5vIGZ0c3Ryb2tlLnBwYy5vIGZ0c3ludGgucHBjLm8gICAgICAgICAgXAogICAgICAgZnR0eXBlMS5wcGMubyBmdHdpbmZudC5wcGMubwoKREVCVUcgPSBmdGRlYnVnLnBwYy5vIGZ0ZGVidWdwdXJlLnBwYy5vCgpBRklUID0gYXV0b2ZpdC5wcGMubwoKR1hWID0gZ3h2YWxpZC5wcGMubwoKT1RWID0gb3R2YWxpZC5wcGMubwoKUFMgPSBwc2F1eC5wcGMubyBwc25hbWVzLnBwYy5vIHBzaGludGVyLnBwYy5vCgpSQVNURVIgPSByYXN0ZXIucHBjLm8gc21vb3RoLnBwYy5vCgpGT05URCA9IGNmZi5wcGMubyB0eXBlMS5wcGMubyB0eXBlNDIucHBjLm8gdHlwZTFjaWQucHBjLm8gdHJ1ZXR5cGUucHBjLm9cCgliZGYucHBjLm8gcGNmLnBwYy5vIHBmci5wcGMubyB3aW5mbnQucHBjLm8KCmxpYmZ0Ml9wcGMuYTogICAgICAkKEJBU0UpICQoQUZJVCkgJChHWFYpICQoT1RWKSAkKFBTKSAkKFJBU1RFUikgc2ZudC5wcGMubyBmdGNhY2hlLnBwYy5vICQoRk9OVEQpIGd6aXAucHBjLm8gbHp3LnBwYy5vCgkkKEFSKSByICRAICQoQkFTRSkgJChBRklUKSAkKEdYVikgJChPVFYpICQoUFMpICQoUkFTVEVSKSBzZm50LnBwYy5vIGZ0Y2FjaGUucHBjLm8gJChGT05URCkgZ3ppcC5wcGMubyBsencucHBjLm8KCSQoUkFOTElCKSAkQAoKI0xvY2FsIFZhcmlhYmxlczoKI2NvZGluZzogbGF0aW4tMQojRW5kOgo=