LyogY29uZmlnLmgtdm1zLiBHZW5lcmF0ZWQgYnkgaGFuZCBieSBLbGF1cyBL5G1wZiA8a2thZW1wZkBkaWR5bXVzLnJtaS5kZT4gKi8KLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBjb25maWd1cmUuICAqLwovKiBjb25maWcuaC5pbi4gIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gY29uZmlndXJlLmluIGJ5IGF1dG9oZWFkZXIuICAqLwoKLyogRGVmaW5lIGlmIG9uIEFJWCAzLgogICBTeXN0ZW0gaGVhZGVycyBzb21ldGltZXMgZGVmaW5lIHRoaXMuCiAgIFdlIGp1c3Qgd2FudCB0byBhdm9pZCBhIHJlZGVmaW5pdGlvbiBlcnJvciBtZXNzYWdlLiAgKi8KI2lmbmRlZiBfQUxMX1NPVVJDRQovKiAjdW5kZWYgX0FMTF9TT1VSQ0UgKi8KI2VuZGlmCgovKiBEZWZpbmUgaWYgdXNpbmcgYWxsb2NhLmMuICAqLwovKiAjdW5kZWYgQ19BTExPQ0EgKi8KCi8qIERlZmluZSB0byBlbXB0eSBpZiB0aGUga2V5d29yZCBkb2VzIG5vdCB3b3JrLiAgKi8KLyogI3VuZGVmIGNvbnN0ICovCgovKiBEZWZpbmUgdG8gb25lIG9mIF9nZXRiNjcsIEdFVEI2NywgZ2V0YjY3IGZvciBDcmF5LTIgYW5kIENyYXktWU1QIHN5c3RlbXMuCiAgIFRoaXMgZnVuY3Rpb24gaXMgcmVxdWlyZWQgZm9yIGFsbG9jYS5jIHN1cHBvcnQgb24gdGhvc2Ugc3lzdGVtcy4gICovCi8qICN1bmRlZiBDUkFZX1NUQUNLU0VHX0VORCAqLwoKLyogRGVmaW5lIGZvciBER1VYIHdpdGggPHN5cy9kZ19zeXNfaW5mby5oPi4gICovCi8qICN1bmRlZiBER1VYICovCgovKiBEZWZpbmUgaWYgdGhlIGBnZXRsb2FkYXZnJyBmdW5jdGlvbiBuZWVkcyB0byBiZSBydW4gc2V0dWlkIG9yIHNldGdpZC4gICovCi8qICN1bmRlZiBHRVRMT0FEQVZHX1BSSVZJTEVHRUQgMSAqLwoKLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICAqLwovKiAjdW5kZWYgZ2lkX3QgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSBhbGxvY2EsIGFzIGEgZnVuY3Rpb24gb3IgbWFjcm8uICAqLwojZGVmaW5lIEhBVkVfQUxMT0NBIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBpdCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuICAqLwovKiAjdW5kZWYgSEFWRV9BTExPQ0FfSCAxICovCgovKiBEZWZpbmUgaWYgeW91IGRvbid0IGhhdmUgdnByaW50ZiBidXQgZG8gaGF2ZSBfZG9wcm50LiAgKi8KLyogI3VuZGVmIEhBVkVfRE9QUk5UICovCgovKiBEZWZpbmUgaWYgeW91ciBzeXN0ZW0gaGFzIGl0cyBvd24gYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIEhBVkVfR0VUTE9BREFWRyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXRtbnRlbnQgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgSEFWRV9HRVRNTlRFTlQgKi8KCi8qIERlZmluZSBpZiB0aGUgYGxvbmcgZG91YmxlJyB0eXBlIHdvcmtzLiAgKi8KLyogI3VuZGVmIEhBVkVfTE9OR19ET1VCTEUgKi8KCi8qIERlZmluZSBpZiB5b3Ugc3VwcG9ydCBmaWxlIG5hbWVzIGxvbmdlciB0aGFuIDE0IGNoYXJhY3RlcnMuICAqLwojZGVmaW5lIEhBVkVfTE9OR19GSUxFX05BTUVTIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIHdvcmtpbmcgYG1tYXAnIHN5c3RlbSBjYWxsLiAgKi8KLyogI3VuZGVmIEhBVkVfTU1BUCAqLwoKLyogRGVmaW5lIGlmIHN5c3RlbSBjYWxscyBhdXRvbWF0aWNhbGx5IHJlc3RhcnQgYWZ0ZXIgaW50ZXJydXB0aW9uCiAgIGJ5IGEgc2lnbmFsLiAgKi8KLyogI3VuZGVmIEhBVkVfUkVTVEFSVEFCTEVfU1lTQ0FMTFMgKi8KCi8qIERlZmluZSBpZiB5b3VyIHN0cnVjdCBzdGF0IGhhcyBzdF9ibGtzaXplLiAgKi8KLyogI3VuZGVmIEhBVkVfU1RfQkxLU0laRSAqLwoKLyogRGVmaW5lIGlmIHlvdXIgc3RydWN0IHN0YXQgaGFzIHN0X2Jsb2Nrcy4gICovCi8qICN1bmRlZiBIQVZFX1NUX0JMT0NLUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJjb2xsIGZ1bmN0aW9uIGFuZCBpdCBpcyBwcm9wZXJseSBkZWZpbmVkLiAgKi8KLyogI3VuZGVmIEhBVkVfU1RSQ09MTCAxICovCgovKiBEZWZpbmUgaWYgeW91ciBzdHJ1Y3Qgc3RhdCBoYXMgc3RfcmRldi4gICovCi8qICN1bmRlZiBIQVZFX1NUX1JERVYJICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmZ0aW1lIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIEhBVkVfU1RSRlRJTUUgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSA8c3lzL3dhaXQuaD4gdGhhdCBpcyBQT1NJWC4xIGNvbXBhdGlibGUuICAqLwovKiAjdW5kZWYgSEFWRV9TWVNfV0FJVF9IIDEgKi8KCi8qIERlZmluZSBpZiB5b3VyIHN0cnVjdCB0bSBoYXMgdG1fem9uZS4gICovCi8qICN1bmRlZiBIQVZFX1RNX1pPTkUgKi8KCi8qIERlZmluZSBpZiB5b3UgZG9uJ3QgaGF2ZSB0bV96b25lIGJ1dCBkbyBoYXZlIHRoZSBleHRlcm5hbCBhcnJheQogICB0em5hbWUuICAqLwovKiAjdW5kZWYgSEFWRV9UWk5BTUUgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSA8dW5pc3RkLmg+LiAgKi8KI2lmZGVmIF9fREVDQwojZGVmaW5lIEhBVkVfVU5JU1REX0ggMQojZW5kaWYKCi8qIERlZmluZSBpZiB1dGltZShmaWxlLCBOVUxMKSBzZXRzIGZpbGUncyB0aW1lc3RhbXAgdG8gdGhlIHByZXNlbnQuICAqLwovKiAjdW5kZWYgSEFWRV9VVElNRV9OVUxMICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgPHZmb3JrLmg+LiAgKi8KLyogI3VuZGVmIEhBVkVfVkZPUktfSCAxICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHZwcmludGYgZnVuY3Rpb24uICAqLwojZGVmaW5lIEhBVkVfVlBSSU5URiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdhaXQzIHN5c3RlbSBjYWxsLiAgKi8KLyogI3VuZGVmIEhBVkVfV0FJVDMgMSAqLwoKLyogRGVmaW5lIGlmIG9uIE1JTklYLiAgKi8KLyogI3VuZGVmIF9NSU5JWCAqLwoKLyogRGVmaW5lIGlmIHlvdXIgc3RydWN0IG5saXN0IGhhcyBhbiBuX3VuIG1lbWJlci4gICovCi8qICN1bmRlZiBOTElTVF9OQU1FX1VOSU9OICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgPG5saXN0Lmg+LiAgKi8KLyogI3VuZGVmIE5MSVNUX1NUUlVDVCAxICovCgovKiBEZWZpbmUgaWYgeW91ciBDIGNvbXBpbGVyIGRvZXNuJ3QgYWNjZXB0IC1jIGFuZCAtbyB0b2dldGhlci4gICovCi8qICN1bmRlZiBOT19NSU5VU19DX01JTlVTX08gKi8KCi8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAgKi8KI2RlZmluZSBwaWRfdCBpbnQKCi8qIERlZmluZSBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IHByb3ZpZGUgUE9TSVguMSBmZWF0dXJlcyBleGNlcHQKICAgd2l0aCB0aGlzIGRlZmluZWQuICAqLwovKiAjdW5kZWYgX1BPU0lYXzFfU09VUkNFICovCgovKiBEZWZpbmUgaWYgeW91IG5lZWQgdG8gaW4gb3JkZXIgZm9yIHN0YXQgYW5kIG90aGVyIHRoaW5ncyB0byB3b3JrLiAgKi8KLyogI3VuZGVmIF9QT1NJWF9TT1VSQ0UgKi8KCi8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChpbnQgb3Igdm9pZCkuICAqLwojZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAoKLyogRGVmaW5lIGlmIHRoZSBzZXR2YnVmIGZ1bmN0aW9uIHRha2VzIHRoZSBidWZmZXJpbmcgdHlwZSBhcyBpdHMgc2Vjb25kCiAgIGFyZ3VtZW50IGFuZCB0aGUgYnVmZmVyIHBvaW50ZXIgYXMgdGhlIHRoaXJkLCBhcyBvbiBTeXN0ZW0gVgogICBiZWZvcmUgcmVsZWFzZSAzLiAgKi8KLyogI3VuZGVmIFNFVFZCVUZfUkVWRVJTRUQgMSAqLwoKLyogSWYgdXNpbmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBkZWZpbmUgaWYgeW91IGtub3cgdGhlCiAgIGRpcmVjdGlvbiBvZiBzdGFjayBncm93dGggZm9yIHlvdXIgc3lzdGVtOyBvdGhlcndpc2UgaXQgd2lsbCBiZQogICBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgYXQgcnVuLXRpbWUuCglTVEFDS19ESVJFQ1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPCAwID0+IGdyb3dzIHRvd2FyZCBsb3dlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA9IDAgPT4gZGlyZWN0aW9uIG9mIGdyb3d0aCB1bmtub3duCiAqLwovKiAjdW5kZWYgU1RBQ0tfRElSRUNUSU9OICovCgovKiBEZWZpbmUgaWYgdGhlIGBTX0lTKicgbWFjcm9zIGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gICovCi8qICN1bmRlZiBTVEFUX01BQ1JPU19CUk9LRU4gKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gICovCi8qICN1bmRlZiBTVERDX0hFQURFUlMgKi8KCi8qIERlZmluZSBvbiBTeXN0ZW0gViBSZWxlYXNlIDQuICAqLwovKiAjdW5kZWYgU1ZSNCAqLwoKLyogRGVmaW5lIGlmIGBzeXNfc2lnbGlzdCcgaXMgZGVjbGFyZWQgYnkgPHNpZ25hbC5oPi4gICovCi8qICN1bmRlZiBTWVNfU0lHTElTVF9ERUNMQVJFRCAqLwoKLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICAqLwojZGVmaW5lIHVpZF90IGludAoKLyogRGVmaW5lIGZvciBFbmNvcmUgVU1BWC4gICovCi8qICN1bmRlZiBVTUFYICovCgovKiBEZWZpbmUgZm9yIEVuY29yZSBVTUFYIDQuMyB0aGF0IGhhcyA8aW5xX3N0YXR1cy9jcHVzdGF0cy5oPgogICBpbnN0ZWFkIG9mIDxzeXMvY3B1c3RhdHMuaD4uICAqLwovKiAjdW5kZWYgVU1BWDRfMyAqLwoKLyogRGVmaW5lIHZmb3JrIGFzIGZvcmsgaWYgdmZvcmsgZG9lcyBub3Qgd29yay4gICovCi8qICN1bmRlZiB2Zm9yayAqLwoKLyogRGVmaW5lIHRvIHRoZSBuYW1lIG9mIHRoZSBTQ0NTIGBnZXQnIGNvbW1hbmQuICAqLwovKiAjdW5kZWYgU0NDU19HRVQgIi91c3Ivc2Njcy9nZXQiICovCgovKiBEZWZpbmUgdGhpcyBpZiB0aGUgU0NDUyBgZ2V0JyBjb21tYW5kIHVuZGVyc3RhbmRzIHRoZSBgLUc8ZmlsZT4nIG9wdGlvbi4gICovCi8qICN1bmRlZiBTQ0NTX0dFVF9NSU5VU19HIDEgKi8KCi8qIERlZmluZSB0aGlzIGlmIHRoZSBDIGxpYnJhcnkgZGVmaW5lcyB0aGUgdmFyaWFibGUgYHN5c19zaWdsaXN0Jy4gICovCi8qICN1bmRlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEgKi8KCi8qIERlZmluZSB0aGlzIGlmIHRoZSBDIGxpYnJhcnkgZGVmaW5lcyB0aGUgdmFyaWFibGUgYF9zeXNfc2lnbGlzdCcuICAqLwovKiAjdW5kZWYgSEFWRV9fU1lTX1NJR0xJU1QgKi8KCi8qIERlZmluZSB0aGlzIGlmIHlvdSBoYXZlIHRoZSBgdW5pb24gd2FpdCcgdHlwZSBpbiA8c3lzL3dhaXQuaD4uICAqLwovKiAjdW5kZWYgSEFWRV9VTklPTl9XQUlUICovCgovKiBEZWZpbmUgdGhpcyBpZiB0aGUgUE9TSVguMSBjYWxsIGBzeXNjb25mIChfU0NfT1BFTl9NQVgpJyB3b3JrcyBwcm9wZXJseS4gICovCi8qICN1bmRlZiBIQVZFX1NZU0NPTkZfT1BFTl9NQVggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZHVwMiBmdW5jdGlvbi4gICovCiNkZWZpbmUgSEFWRV9EVVAyIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0Y3dkIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBIQVZFX0dFVENXRCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGR0YWJsZXNpemUgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgSEFWRV9HRVREVEFCTEVTSVpFIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0Z3JvdXBzIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIEhBVkVfR0VUR1JPVVBTIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbWt0ZW1wIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBIQVZFX01LVEVNUCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHBzaWduYWwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgSEFWRV9QU0lHTkFMIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0ZWdpZCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBIQVZFX1NFVEVHSUQgMSAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzZXRldWlkIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIEhBVkVfU0VURVVJRCAxICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldGxpbmVidWYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgSEFWRV9TRVRMSU5FQlVGIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0cmVnaWQgZnVuY3Rpb24uICAqLwovKiAjdW5kZWZpbmUgSEFWRV9TRVRSRUdJRCAxICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldHJldWlkIGZ1bmN0aW9uLiAgKi8KLyogI2RlZmluZSBIQVZFX1NFVFJFVUlEIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2lnc2V0bWFzayBmdW5jdGlvbi4gICovCiNkZWZpbmUgSEFWRV9TSUdTRVRNQVNLIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3RyZXJyb3IgZnVuY3Rpb24uICAqLwojZGVmaW5lIEhBVkVfU1RSRVJST1IgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJzaWduYWwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgSEFWRV9TVFJTSUdOQUwgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2FpdDMgZnVuY3Rpb24uICAqLwovKiAjZGVmaW5lIEhBVkVfV0FJVDMgMSAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3YWl0cGlkIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIEhBVkVfV0FJVFBJRCAxICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZGVmIEhBVkVfRElSRU5UX0ggMSAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICAqLwojaWZkZWYgX19ERUNDCiNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKI2VuZGlmCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHMuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIEhBVkVfTElNSVRTX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bWFjaC9tYWNoLmg+IGhlYWRlciBmaWxlLiAgKi8KLyogI3VuZGVmIEhBVkVfTUFDSF9NQUNIX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBIQVZFX01FTU9SWV9IIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgSEFWRV9ORElSX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gICovCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxwd2QuaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgSEFWRV9QV0RfSCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBIQVZFX1NZU19ESVJfSCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgSEFWRV9TWVNfTkRJUl9IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgSEFWRV9TWVNfUEFSQU1fSCAxICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZWIuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIEhBVkVfU1lTX1RJTUVCX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3dhaXQuaD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgSEFWRV9TWVNfV0FJVF9IIDEgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZGdjIGxpYnJhcnkgKC1sZGdjKS4gICovCi8qICN1bmRlZiBIQVZFX0xJQkRHQyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdW4gbGlicmFyeSAoLWxzdW4pLiAgKi8KLyogI3VuZGVmIEhBVkVfTElCU1VOICovCgovKiBWTVMgc3BlY2lmaWMgKi8KCiNkZWZpbmUgSEFWRV9WTVNESVJfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUgSU5DTFVERURJUiAic3lzJHN5c3Jvb3Q6W3N5c2xpYl0iCiNkZWZpbmUgTElCRElSICJzeXMkc3lzcm9vdDpbc3lzbGliXSIKCiNpZiBkZWZpbmVkIChfX2NwbHVzcGx1cykgfHwgKGRlZmluZWQgKF9fU1REQ19fKSAmJiBfX1NURENfXykKI3VuZGVmICBQQVJBTVMKI2RlZmluZSBQQVJBTVMocHJvdG9zKSAgcHJvdG9zCiNlbHNlIC8qIE5vdCBDKysgb3IgQU5TSSBDLiAgKi8KI3VuZGVmICBQQVJBTVMKI2RlZmluZSBQQVJBTVMocHJvdG9zKSAgKCkgICAKI2VuZGlmIC8qIEMrKyBvciBBTlNJIEMuICAqLwoK