IwojIE1ha2VmaWxlIGZvciBGcmVlVHlwZTIgbGluayBsaWJyYXJ5IHVzaW5nIGdjYyA0LjAuMyBmcm9tIHRoZQojIEFtaWdhT1M0IFNESwojCgoKIyBDb3B5cmlnaHQgMjAwNS0yMDE1IGJ5CiMgV2VybmVyIExlbWJlcmcgYW5kIERldGxlZiBX/HJrbmVyLgojCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCBtb2RpZmllZCwKIyBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0IGxpY2Vuc2UsCiMgTElDRU5TRS5UWFQuICBCeSBjb250aW51aW5nIHRvIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgZmlsZSB5b3UKIyBpbmRpY2F0ZSB0aGF0IHlvdSBoYXZlIHJlYWQgdGhlIGxpY2Vuc2UgYW5kIHVuZGVyc3RhbmQgYW5kIGFjY2VwdCBpdAojIGZ1bGx5LgoKCiMgdG8gYnVpbGQgZnJvbSB0aGUgYnVpbGRzL2FtaWdhIGRpcmVjdG9yeSBjYWxsCiMKIyAgbWFrZSAtZiBtYWtlZmlsZS5vczQKIwojIFlvdXIgcHJvZ3JhbXMgc291cmNlIGNvZGUgc2hvdWxkIHN0YXJ0IHdpdGggdGhpcwojICh1bmNvbW1lbnQgdGhlIHBhcnRzIHlvdSBkbyBub3QgbmVlZCB0byBrZWVwIHRoZSBwcm9ncmFtIHNtYWxsKToKIyAtLS04PC0tLQojZGVmaW5lIEZUX1VTRV9BVVRPRklUIC8vIGF1dG9maXR0ZXIKI2RlZmluZSBGVF9VU0VfUkFTVEVSICAvLyBtb25vY2hyb21lIHJhc3Rlcml6ZXIKI2RlZmluZSBGVF9VU0VfU01PT1RIICAvLyBhbnRpLWFsaWFzaW5nIHJhc3Rlcml6ZXIKI2RlZmluZSBGVF9VU0VfVFQgICAgICAvLyB0cnVldHlwZSBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9UMSAgICAgIC8vIHR5cGUxIGZvbnQgZHJpdmVyCiNkZWZpbmUgRlRfVVNFX1Q0MiAgICAgLy8gdHlwZTQyIGZvbnQgZHJpdmVyCiNkZWZpbmUgRlRfVVNFX1QxQ0lEICAgLy8gY2lkLWtleWVkIHR5cGUxIGZvbnQgZHJpdmVyCiNkZWZpbmUgRlRfVVNFX0NGRiAgICAgLy8gb3BlbnR5cGUgZm9udCBkcml2ZXIKI2RlZmluZSBGVF9VU0VfQkRGICAgICAvLyBiZGYgYml0bWFwIGZvbnQgZHJpdmVyCiNkZWZpbmUgRlRfVVNFX1BDRiAgICAgLy8gcGNmIGJpdG1hcCBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9QRlIgICAgIC8vIHBmciBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9XSU5GTlQgIC8vIHdpbmRvd3MgLmZudHwuZm9uIGJpdG1hcCBmb250IGRyaXZlcgojZGVmaW5lIEZUX1VTRV9PVFYgICAgIC8vIG9wZW50eXBlIHZhbGlkYXRvcgojZGVmaW5lIEZUX1VTRV9HWFYgICAgIC8vIHRydWV0eXBlIGd4IHZhbGlkYXRvcgojaW5jbHVkZSAiRlQ6c3JjL2Jhc2UvZnRpbml0LmMiCiMgLS0tODwtLS0KIwojIGxpbmsgeW91ciBwcm9ncmFtcyB3aXRoIGxpYmZ0Ml9wcGMuYSBhbmQgZWl0aGVyIGZ0c3lzdGVtLnBwYy5vIG9yIGZ0c3lzdGVtcHVyZS5wcGMubwojIChhbmQgZWl0aGVyIGZ0ZGVidWcucHBjLm8gb3IgZnRkZWJ1Z3B1cmUucHBjLm8gaWYgeW91IGVuYWJsZWQgRlRfREVCVUdfTEVWRUxfRVJST1Igb3IKIyBGVF9ERUJVR19MRVZFTF9UUkFDRSBpbiBpbmNsdWRlL2NvbmZpZy9mdG9wdGlvbi5oKS4KCmFsbDoJYXNzaWduIGxpYmZ0Ml9wcGMuYSBmdHN5c3RlbS5wcGMubyBmdHN5c3RlbXB1cmUucHBjLm8KCmFzc2lnbjoKCWFzc2lnbiBGVDogLy8KCkNDID0gICAgIHBwYy1hbWlnYW9zLWdjYwpBUiA9ICAgICBwcGMtYW1pZ2Fvcy1hcgpSQU5MSUIgPSBwcGMtYW1pZ2Fvcy1yYW5saWIKCkRJUkZMQUdTICA9IC1JaW5jbHVkZSAtSS9GVC9zcmMgLUkvRlQvaW5jbHVkZSAtSS9TREsvaW5jbHVkZQoKV0FSTklOR1MgPSAtV2FsbCAtVyAtV3VuZGVmIC1XcG9pbnRlci1hcml0aCAtV2JhZC1mdW5jdGlvbi1jYXN0IFwKCSAgIC1XYWdncmVnYXRlLXJldHVybiAtV3dyaXRlLXN0cmluZ3MgLVdzaGFkb3cKCk9QVElPTlMgID0gLURGVDJfQlVJTERfTElCUkFSWSAtRE5ERUJVRyAtZm5vLWJ1aWx0aW4KT1BUSU1JWkUgPSAtTzIgLWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZzdHJlbmd0aC1yZWR1Y2UgLWZpbmxpbmUtZnVuY3Rpb25zCgpDRkxBR1MgICA9IC1tY3J0PWNsaWIyICQoRElSRkxBR1MpICQoV0FSTklOR1MpICQoRlQyRkxBR1MpICQoT1BUSU9OUykgJChPUFRJTUlaRSkKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBiYXNlCiMKZnRiYXNlLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGJhc2UuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGJhc2UuYwoKZnRpbml0LnBwYy5vOiBGVDpzcmMvYmFzZS9mdGluaXQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGluaXQuYwoKZnRzeXN0ZW0ucHBjLm86IEZUOnNyYy9iYXNlL2Z0c3lzdGVtLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRzeXN0ZW0uYwoKIyBwdXJlIHZlcnNpb24gZm9yIHVzZSBpbiBydW4tdGltZSBsaWJyYXJ5IGV0YwpmdHN5c3RlbXB1cmUucHBjLm86IHNyYy9iYXNlL2Z0c3lzdGVtLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCBzcmMvYmFzZS9mdHN5c3RlbS5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgYmFzZSBleHRlbnNpb25zCiMKZnRiYm94LnBwYy5vOiBGVDpzcmMvYmFzZS9mdGJib3guYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGJib3guYwoKZnRiZGYucHBjLm86IEZUOnNyYy9iYXNlL2Z0YmRmLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRiZGYuYwoKZnRiaXRtYXAucHBjLm86IEZUOnNyYy9iYXNlL2Z0Yml0bWFwLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRiaXRtYXAuYwoKZnRjaWQucHBjLm86IEZUOnNyYy9iYXNlL2Z0Y2lkLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRjaWQuYwoKZnRkZWJ1Zy5wcGMubzogRlQ6c3JjL2Jhc2UvZnRkZWJ1Zy5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0ZGVidWcuYwoKIyBwdXJlIHZlcnNpb24gZm9yIHVzZSBpbiBydW4tdGltZSBsaWJyYXJ5IGV0YwpmdGRlYnVncHVyZS5wcGMubzogc3JjL2Jhc2UvZnRkZWJ1Zy5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgc3JjL2Jhc2UvZnRkZWJ1Zy5jCgpmdGZudGZtdC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRmbnRmbXQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGZudGZtdC5jCgpmdGZzdHlwZS5wcGMubzogRlQ6c3JjL2Jhc2UvZnRmc3R5cGUuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGZzdHlwZS5jCgpmdGdhc3AucHBjLm86IEZUOnNyYy9iYXNlL2Z0Z2FzcC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iYXNlL2Z0Z2FzcC5jCgpmdGdseXBoLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGdseXBoLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRnbHlwaC5jCgpmdGd4dmFsLnBwYy5vOiBGVDpzcmMvYmFzZS9mdGd4dmFsLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRneHZhbC5jCgpmdGxjZGZpbC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRsY2RmaWwuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdGxjZGZpbC5jCgpmdG1tLnBwYy5vOiBGVDpzcmMvYmFzZS9mdG1tLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRtbS5jCgpmdG90dmFsLnBwYy5vOiBGVDpzcmMvYmFzZS9mdG90dmFsLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRvdHZhbC5jCgpmdHBhdGVudC5wcGMubzogRlQ6c3JjL2Jhc2UvZnRwYXRlbnQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdHBhdGVudC5jCgpmdHBmci5wcGMubzogRlQ6c3JjL2Jhc2UvZnRwZnIuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdHBmci5jCgpmdHN0cm9rZS5wcGMubzogRlQ6c3JjL2Jhc2UvZnRzdHJva2UuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdHN0cm9rZS5jCgpmdHN5bnRoLnBwYy5vOiBGVDpzcmMvYmFzZS9mdHN5bnRoLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnRzeW50aC5jCgpmdHR5cGUxLnBwYy5vOiBGVDpzcmMvYmFzZS9mdHR5cGUxLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2Jhc2UvZnR0eXBlMS5jCgpmdHdpbmZudC5wcGMubzogRlQ6c3JjL2Jhc2UvZnR3aW5mbnQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvYmFzZS9mdHdpbmZudC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgYXV0b2ZpdHRpbmcgbW9kdWxlCiMKYXV0b2ZpdC5wcGMubzogRlQ6c3JjL2F1dG9maXQvYXV0b2ZpdC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9hdXRvZml0L2F1dG9maXQuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IHBvc3RzY3JpcHQgaGludGluZyBtb2R1bGUKIwpwc2hpbnRlci5wcGMubzogRlQ6c3JjL3BzaGludGVyL3BzaGludGVyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3BzaGludGVyL3BzaGludGVyLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBQUyBzdXBwb3J0IG1vZHVsZQojCnBzYXV4LnBwYy5vOiBGVDpzcmMvcHNhdXgvcHNhdXguYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvcHNhdXgvcHNhdXguYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFBTIGdseXBoIG5hbWVzIG1vZHVsZQojCnBzbmFtZXMucHBjLm86IEZUOnNyYy9wc25hbWVzL3BzbmFtZXMuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvcHNuYW1lcy9wc25hbWVzLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBtb25vY2hyb21lIHJhc3RlciBtb2R1bGUKIwpyYXN0ZXIucHBjLm86IEZUOnNyYy9yYXN0ZXIvcmFzdGVyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3Jhc3Rlci9yYXN0ZXIuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IGFudGktYWxpYXNpbmcgcmFzdGVyIG1vZHVsZQojCnNtb290aC5wcGMubzogRlQ6c3JjL3Ntb290aC9zbW9vdGguYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvc21vb3RoL3Ntb290aC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgJ3NmbnQnIG1vZHVsZQojCnNmbnQucHBjLm86IEZUOnNyYy9zZm50L3NmbnQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvc2ZudC9zZm50LmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBnbHlwaCBhbmQgaW1hZ2UgY2FjaGluZyBzeXN0ZW0KIwpmdGNhY2hlLnBwYy5vOiBGVDpzcmMvY2FjaGUvZnRjYWNoZS5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9jYWNoZS9mdGNhY2hlLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBPcGVuVHlwZSBmb250IGRyaXZlcgojCmNmZi5wcGMubzogRlQ6c3JjL2NmZi9jZmYuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvY2ZmL2NmZi5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgVHJ1ZVR5cGUgZm9udCBkcml2ZXIKIwp0cnVldHlwZS5wcGMubzogRlQ6c3JjL3RydWV0eXBlL3RydWV0eXBlLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL3RydWV0eXBlL3RydWV0eXBlLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBUeXBlMSBmb250IGRyaXZlcgojCnR5cGUxLnBwYy5vOiBGVDpzcmMvdHlwZTEvdHlwZTEuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvdHlwZTEvdHlwZTEuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFR5cGU0MiBmb250IGRyaXZlcgojCnR5cGU0Mi5wcGMubzogRlQ6c3JjL3R5cGU0Mi90eXBlNDIuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvdHlwZTQyL3R5cGU0Mi5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgQ0lELWtleWVkIFR5cGUxIGZvbnQgZHJpdmVyCiMKdHlwZTFjaWQucHBjLm86IEZUOnNyYy9jaWQvdHlwZTFjaWQuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvY2lkL3R5cGUxY2lkLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBCREYgYml0bWFwIGZvbnQgZHJpdmVyCiMKYmRmLnBwYy5vOiBGVDpzcmMvYmRmL2JkZi5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9iZGYvYmRmLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBQQ0YgYml0bWFwIGZvbnQgZHJpdmVyCiMKcGNmLnBwYy5vOiBGVDpzcmMvcGNmL3BjZi5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9wY2YvcGNmLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBnemlwIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgUENGIGJpdG1hcCBmb250cwojCmd6aXAucHBjLm86IEZUOnNyYy9nemlwL2Z0Z3ppcC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9nemlwL2Z0Z3ppcC5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgYnppcDIgc3VwcG9ydCBmb3IgY29tcHJlc3NlZCBQQ0YgYml0bWFwIGZvbnRzCiMKYnppcDIucHBjLm86IEZUOnNyYy9iemlwMi9mdGJ6aXAyLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL2J6aXAyL2Z0YnppcDIuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IGNvbXByZXNzIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgUENGIGJpdG1hcCBmb250cwojCmx6dy5wcGMubzogRlQ6c3JjL2x6dy9mdGx6dy5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy9sencvZnRsencuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFBGUiBmb250IGRyaXZlcgojCnBmci5wcGMubzogRlQ6c3JjL3Bmci9wZnIuYwoJJChDQykgLWMgJChDRkxBR1MpIC1vICRAIC9GVC9zcmMvcGZyL3Bmci5jCgojCiMgRnJlZVR5cGUyIGxpYnJhcnkgV2luZG93cyBGTlQvRk9OIGJpdG1hcCBmb250IGRyaXZlcgojCndpbmZudC5wcGMubzogRlQ6c3JjL3dpbmZvbnRzL3dpbmZudC5jCgkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgL0ZUL3NyYy93aW5mb250cy93aW5mbnQuYwoKIwojIEZyZWVUeXBlMiBsaWJyYXJ5IFRydWVUeXBlR1ggVmFsaWRhdG9yCiMKZ3h2YWxpZC5wcGMubzogRlQ6c3JjL2d4dmFsaWQvZ3h2YWxpZC5jCgkkKENDKSAtYyAkKENGTEFHUykgLVduby1hZ2dyZWdhdGUtcmV0dXJuIC1vICRAIC9GVC9zcmMvZ3h2YWxpZC9neHZhbGlkLmMKCiMKIyBGcmVlVHlwZTIgbGlicmFyeSBPcGVuVHlwZSB2YWxpZGF0b3IKIwpvdHZhbGlkLnBwYy5vOiBGVDpzcmMvb3R2YWxpZC9vdHZhbGlkLmMKCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtbyAkQCAvRlQvc3JjL290dmFsaWQvb3R2YWxpZC5jCgpCQVNFID0gZnRiYXNlLnBwYy5vIGZ0YmJveC5wcGMubyBmdGJkZi5wcGMubyBmdGJpdG1hcC5wcGMubyBmdGNpZC5wcGMubyBcCiAgICAgICBmdGZudGZtdC5wcGMubyBmdGZzdHlwZS5wcGMubyBmdGdhc3AucHBjLm8gZnRnbHlwaC5wcGMubyAgICAgICAgIFwKICAgICAgIGZ0Z3h2YWwucHBjLm8gZnRsY2RmaWwucHBjLm8gZnRtbS5wcGMubyBmdG90dmFsLnBwYy5vICAgICAgICAgICAgXAogICAgICAgZnRwYXRlbnQucHBjLm8gZnRwZnIucHBjLm8gZnRzdHJva2UucHBjLm8gZnRzeW50aC5wcGMubyAgICAgICAgICBcCiAgICAgICBmdHR5cGUxLnBwYy5vIGZ0d2luZm50LnBwYy5vCgpERUJVRyA9IGZ0ZGVidWcucHBjLm8gZnRkZWJ1Z3B1cmUucHBjLm8KCkFGSVQgPSBhdXRvZml0LnBwYy5vCgpHWFYgPSBneHZhbGlkLnBwYy5vCgpPVFYgPSBvdHZhbGlkLnBwYy5vCgpQUyA9IHBzYXV4LnBwYy5vIHBzbmFtZXMucHBjLm8gcHNoaW50ZXIucHBjLm8KClJBU1RFUiA9IHJhc3Rlci5wcGMubyBzbW9vdGgucHBjLm8KCkZPTlREID0gY2ZmLnBwYy5vIHR5cGUxLnBwYy5vIHR5cGU0Mi5wcGMubyB0eXBlMWNpZC5wcGMubyB0cnVldHlwZS5wcGMub1wKCWJkZi5wcGMubyBwY2YucHBjLm8gcGZyLnBwYy5vIHdpbmZudC5wcGMubwoKbGliZnQyX3BwYy5hOiAgICAgICQoQkFTRSkgJChBRklUKSAkKEdYVikgJChPVFYpICQoUFMpICQoUkFTVEVSKSBzZm50LnBwYy5vIGZ0Y2FjaGUucHBjLm8gJChGT05URCkgZ3ppcC5wcGMubyBsencucHBjLm8KCSQoQVIpIHIgJEAgJChCQVNFKSAkKEFGSVQpICQoR1hWKSAkKE9UVikgJChQUykgJChSQVNURVIpIHNmbnQucHBjLm8gZnRjYWNoZS5wcGMubyAkKEZPTlREKSBnemlwLnBwYy5vIGx6dy5wcGMubwoJJChSQU5MSUIpICRACgojTG9jYWwgVmFyaWFibGVzOgojY29kaW5nOiBsYXRpbi0xCiNFbmQ6Cg==