From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH 5/5] gcov: split out gcc version specific stuff Date: Fri, 2 Sep 2016 12:47:09 +0100 Message-ID: <1472816829-15551-6-git-send-email-wei.liu2@citrix.com> References: <1472816829-15551-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bfmwl-0000rp-8V for xen-devel@lists.xenproject.org; Fri, 02 Sep 2016 11:47:47 +0000 In-Reply-To: <1472816829-15551-1-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org R2NvdiByZWNvcmQgZm9ybWF0IGlzIHRpZWQgdG8gc3BlY2lmaWMgZ2NjIHZlcnNpb25zLiBUaGUg Y3VycmVudCBjb2RlIGluCnRyZWUgY29uZm9ybXMgdG8gZ2NjIDMuNCBmb3JtYXQuCgpNb3ZlIHN0 cnVjdHVyZSBkZWZpbml0aW9ucyB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGZhY3RvciBvdXQgc29t ZQp2ZXJzaW9uIHNwZWNpZmljIGZ1bmN0aW9ucy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2ln bmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2Vv cmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1 LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBLb25y YWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVu Lm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2NvbW1vbi9n Y292L2djb3YuYyAgICAgfCA2NCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog eGVuL2NvbW1vbi9nY292L2djb3ZfM180LmggfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vZ2Nvdi5oICAgICB8IDgwIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgMTI1IGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB4ZW4vY29tbW9uL2djb3YvZ2Nvdl8zXzQuaAoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ2Nv di9nY292LmMgYi94ZW4vY29tbW9uL2djb3YvZ2Nvdi5jCmluZGV4IDZkMTg3MjkuLjJjMmYwNWEg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ2Nvdi9nY292LmMKKysrIGIveGVuL2NvbW1vbi9nY292 L2djb3YuYwpAQCAtMjIsNiArMjIsMTEgQEAKICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+ CiAjaW5jbHVkZSA8cHVibGljL3hlbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9nY292Lmg+CisjaWYg ZGVmaW5lZChDT05GSUdfR0NPVl9GT1JNQVRfM180KQorI2luY2x1ZGUgImdjb3ZfM180LmgiCisj ZWxzZQorIyBlcnJvciBHY292IGZvcm1hdCBub3Qgc3VwcG9ydGVkCisjZW5kaWYKIAogY29uc3Qg Y2hhciBfX2luaXRjb25zdCB3YXJuaW5nX2djb3ZbXSA9CiAgICAgIldBUk5JTkc6IEdDT1YgU1VQ UE9SVCBJUyBFTkFCTEVEXG4iCkBAIC02OSwxMCArNzQsMTMgQEAgdm9pZCBfX2djb3ZfbWVyZ2Vf ZGVsdGEoZ2Nvdl90eXBlICpjb3VudGVycywgdW5zaWduZWQgaW50IG5fY291bnRlcnMpCiAgICAg LyogVW51c2VkLiAqLwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjb3VudGVyX2FjdGl2ZShjb25z dCBzdHJ1Y3QgZ2Nvdl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgdHlwZSkKKyNpZiBkZWZpbmVk KENPTkZJR19HQ09WX0ZPUk1BVF8zXzQpCitzdGF0aWMgaW5saW5lIGludCBjb3VudGVyX2FjdGl2 ZShjb25zdCBzdHJ1Y3QgZ2Nvdl9pbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IHR5cGUpCiB7CiAgICAgcmV0dXJuICgxIDw8IHR5cGUpICYg aW5mby0+Y3RyX21hc2s7CiB9CisjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3Qgd3JpdGVfaXRlcl90 CiB7CkBAIC0xMjIsNiArMTMwLDM3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhbGlnbl9pdGVyKHdy aXRlX2l0ZXJfdCAqaXRlcikKICAgICAgICAgKGl0ZXItPndyaXRlX29mZnNldCArIHNpemVvZih1 aW50NjRfdCkgLSAxKSAmIC1zaXplb2YodWludDY0X3QpOwogfQogCisjaWYgZGVmaW5lZChDT05G SUdfR0NPVl9GT1JNQVRfM180KQorc3RhdGljIGludCBkdW1wKHdyaXRlX2l0ZXJfdCAqaXRlciwg Y29uc3Qgc3RydWN0IGdjb3ZfaW5mbyAqaW5mbykKK3sKKyAgICBjb25zdCBzdHJ1Y3QgZ2Nvdl9j dHJfaW5mbyAqY3RyOworICAgIHNpemVfdCBzaXplX2ZuID0gc2l6ZW9mKHN0cnVjdCBnY292X2Zu X2luZm8pOworICAgIGludCB0eXBlOworICAgIGludCByZXQ7CisKKyAgICAvKiBkdW1wIGNvdW50 ZXJzICovCisgICAgY3RyID0gaW5mby0+Y291bnRzOworICAgIGZvciAoIHR5cGUgPSAtMTsgbmV4 dF90eXBlKGluZm8sICZ0eXBlKSA8IFhFTkNPVl9DT1VOVEVSUzsgKytjdHIgKQorICAgIHsKKyAg ICAgICAgYWxpZ25faXRlcihpdGVyKTsKKyAgICAgICAgY2hrKHdyaXRlMzIoaXRlciwgWEVOQ09W X1RBR19DT1VOVEVSKHR5cGUpKSk7CisgICAgICAgIGNoayh3cml0ZTMyKGl0ZXIsIGN0ci0+bnVt KSk7CisgICAgICAgIGNoayh3cml0ZV9yYXcoaXRlciwgY3RyLT52YWx1ZXMsCisgICAgICAgICAg ICAgICAgICAgICAgY3RyLT5udW0gKiBzaXplb2YoY3RyLT52YWx1ZXNbMF0pKSk7CisKKyAgICAg ICAgc2l6ZV9mbiArPSBzaXplb2YodW5zaWduZWQpOworICAgIH0KKworICAgIC8qIGR1bXAgYWxs IGZ1bmN0aW9ucyB0b2dldGhlciAqLworICAgIGFsaWduX2l0ZXIoaXRlcik7CisgICAgY2hrKHdy aXRlMzIoaXRlciwgWEVOQ09WX1RBR19GVU5DKSk7CisgICAgY2hrKHdyaXRlMzIoaXRlciwgaW5m by0+bl9mdW5jdGlvbnMpKTsKKyAgICBjaGsod3JpdGVfcmF3KGl0ZXIsIGluZm8tPmZ1bmN0aW9u cywgaW5mby0+bl9mdW5jdGlvbnMgKiBzaXplX2ZuKSk7CisKKyAgICByZXR1cm4gMDsKK30KKyNl bmRpZgorCiBzdGF0aWMgaW50IHdyaXRlX2djb3Yod3JpdGVfaXRlcl90ICppdGVyKQogewogICAg IHN0cnVjdCBnY292X2luZm8gKmluZm87CkBAIC0xMzMsMzQgKzE3MiwxMyBAQCBzdGF0aWMgaW50 IHdyaXRlX2djb3Yod3JpdGVfaXRlcl90ICppdGVyKQogICAgIC8qIGR1bXAgYWxsIGZpbGVzICov CiAgICAgZm9yICggaW5mbyA9IGluZm9fbGlzdCA7IGluZm87IGluZm8gPSBpbmZvLT5uZXh0ICkK ICAgICB7Ci0gICAgICAgIGNvbnN0IHN0cnVjdCBnY292X2N0cl9pbmZvICpjdHI7Ci0gICAgICAg IGludCB0eXBlOwotICAgICAgICBzaXplX3Qgc2l6ZV9mbiA9IHNpemVvZihzdHJ1Y3QgZ2Nvdl9m bl9pbmZvKTsKLQogICAgICAgICBhbGlnbl9pdGVyKGl0ZXIpOwogICAgICAgICBjaGsod3JpdGUz MihpdGVyLCBYRU5DT1ZfVEFHX0ZJTEUpKTsKICAgICAgICAgY2hrKHdyaXRlMzIoaXRlciwgaW5m by0+dmVyc2lvbikpOwogICAgICAgICBjaGsod3JpdGUzMihpdGVyLCBpbmZvLT5zdGFtcCkpOwog ICAgICAgICBjaGsod3JpdGVfc3RyaW5nKGl0ZXIsIGluZm8tPmZpbGVuYW1lKSk7CiAKLSAgICAg ICAgLyogZHVtcCBjb3VudGVycyAqLwotICAgICAgICBjdHIgPSBpbmZvLT5jb3VudHM7Ci0gICAg ICAgIGZvciAoIHR5cGUgPSAtMTsgbmV4dF90eXBlKGluZm8sICZ0eXBlKSA8IFhFTkNPVl9DT1VO VEVSUzsgKytjdHIgKQotICAgICAgICB7Ci0gICAgICAgICAgICBhbGlnbl9pdGVyKGl0ZXIpOwot ICAgICAgICAgICAgY2hrKHdyaXRlMzIoaXRlciwgWEVOQ09WX1RBR19DT1VOVEVSKHR5cGUpKSk7 Ci0gICAgICAgICAgICBjaGsod3JpdGUzMihpdGVyLCBjdHItPm51bSkpOwotICAgICAgICAgICAg Y2hrKHdyaXRlX3JhdyhpdGVyLCBjdHItPnZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgY3RyLT5udW0gKiBzaXplb2YoY3RyLT52YWx1ZXNbMF0pKSk7Ci0KLSAgICAgICAgICAgIHNp emVfZm4gKz0gc2l6ZW9mKHVuc2lnbmVkKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGR1bXAg YWxsIGZ1bmN0aW9ucyB0b2dldGhlciAqLwotICAgICAgICBhbGlnbl9pdGVyKGl0ZXIpOwotICAg ICAgICBjaGsod3JpdGUzMihpdGVyLCBYRU5DT1ZfVEFHX0ZVTkMpKTsKLSAgICAgICAgY2hrKHdy aXRlMzIoaXRlciwgaW5mby0+bl9mdW5jdGlvbnMpKTsKLSAgICAgICAgY2hrKHdyaXRlX3Jhdyhp dGVyLCBpbmZvLT5mdW5jdGlvbnMsIGluZm8tPm5fZnVuY3Rpb25zICogc2l6ZV9mbikpOworICAg ICAgICBjaGsoZHVtcChpdGVyLCBpbmZvKSk7CiAgICAgfQogCiAgICAgLyogc3RvcCB0YWcgKi8K ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ2Nvdi9nY292XzNfNC5oIGIveGVuL2NvbW1vbi9nY292 L2djb3ZfM180LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEwYzU2OAot LS0gL2Rldi9udWxsCisrKyBiL3hlbi9jb21tb24vZ2Nvdi9nY292XzNfNC5oCkBAIC0wLDAgKzEs ODQgQEAKKy8qCisgKiAgUHJvZmlsaW5nIGluZnJhc3RydWN0dXJlIGRlY2xhcmF0aW9ucy4KKyAq CisgKiAgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGdjYy1pbnRlcm5hbCBkZWZpbml0aW9ucy4gRGF0 YSBzdHJ1Y3R1cmVzIGFyZQorICogIGRlZmluZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGdjYyBj b3VudGVycGFydHMuIEZvciBhIGJldHRlcgorICogIHVuZGVyc3RhbmRpbmcsIHJlZmVyIHRvIGdj YyBzb3VyY2U6IGdjYy9nY292LWlvLmguCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAy MDA5CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPG9iZXJwYXJAbGludXgu dm5ldC5pYm0uY29tPgorICoKKyAqICAgIFVzZXMgZ2NjLWludGVybmFsIGRhdGEgZGVmaW5pdGlv bnMuCisgKi8KKworI2lmbmRlZiBfX1hFTl9HQ09WXzNfNF9IX18KKyNkZWZpbmUgX19YRU5fR0NP Vl8zXzRfSF9fCisKKy8qCisgKiBQcm9maWxpbmcgZGF0YSB0eXBlcyB1c2VkIGZvciBnY2MgMy40 IGFuZCBhYm92ZSAtIHRoZXNlIGFyZSBkZWZpbmVkIGJ5CisgKiBnY2MgYW5kIG5lZWQgdG8gYmUg a2VwdCBhcyBjbG9zZSB0byB0aGUgb3JpZ2luYWwgZGVmaW5pdGlvbiBhcyBwb3NzaWJsZSB0bwor ICogcmVtYWluIGNvbXBhdGlibGUuCisgKi8KKwordHlwZWRlZiB1aW50NjRfdCBnY292X3R5cGU7 CisKKy8qKgorICogc3RydWN0IGdjb3ZfZm5faW5mbyAtIHByb2ZpbGluZyBtZXRhIGRhdGEgcGVy IGZ1bmN0aW9uCisgKiBAaWRlbnQ6IG9iamVjdCBmaWxlLXVuaXF1ZSBmdW5jdGlvbiBpZGVudGlm aWVyCisgKiBAY2hlY2tzdW06IGZ1bmN0aW9uIGNoZWNrc3VtCisgKiBAbl9jdHJzOiBudW1iZXIg b2YgdmFsdWVzIHBlciBjb3VudGVyIHR5cGUgYmVsb25naW5nIHRvIHRoaXMgZnVuY3Rpb24KKyAq CisgKiBUaGlzIGRhdGEgaXMgZ2VuZXJhdGVkIGJ5IGdjYyBkdXJpbmcgY29tcGlsYXRpb24gYW5k IGRvZXNuJ3QgY2hhbmdlCisgKiBhdCBydW4tdGltZS4KKyAqLworc3RydWN0IGdjb3ZfZm5faW5m bworeworICAgIHVuc2lnbmVkIGludCBpZGVudDsKKyAgICB1bnNpZ25lZCBpbnQgY2hlY2tzdW07 CisgICAgdW5zaWduZWQgaW50IG5fY3Ryc1swXTsKK307CisKKy8qKgorICogc3RydWN0IGdjb3Zf Y3RyX2luZm8gLSBwcm9maWxpbmcgZGF0YSBwZXIgY291bnRlciB0eXBlCisgKiBAbnVtOiBudW1i ZXIgb2YgY291bnRlciB2YWx1ZXMgZm9yIHRoaXMgdHlwZQorICogQHZhbHVlczogYXJyYXkgb2Yg Y291bnRlciB2YWx1ZXMgZm9yIHRoaXMgdHlwZQorICogQG1lcmdlOiBtZXJnZSBmdW5jdGlvbiBm b3IgY291bnRlciB2YWx1ZXMgb2YgdGhpcyB0eXBlICh1bnVzZWQpCisgKgorICogVGhpcyBkYXRh IGlzIGdlbmVyYXRlZCBieSBnY2MgZHVyaW5nIGNvbXBpbGF0aW9uIGFuZCBkb2Vzbid0IGNoYW5n ZQorICogYXQgcnVuLXRpbWUgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSB2YWx1ZXMgYXJyYXku CisgKi8KK3N0cnVjdCBnY292X2N0cl9pbmZvCit7CisgICAgdW5zaWduZWQgaW50IG51bTsKKyAg ICBnY292X3R5cGUgKnZhbHVlczsKKyAgICB2b2lkICgqbWVyZ2UpKGdjb3ZfdHlwZSAqLCB1bnNp Z25lZCBpbnQpOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZ2Nvdl9pbmZvIC0gcHJvZmlsaW5nIGRh dGEgcGVyIG9iamVjdCBmaWxlCisgKiBAdmVyc2lvbjogZ2NvdiB2ZXJzaW9uIG1hZ2ljIGluZGlj YXRpbmcgdGhlIGdjYyB2ZXJzaW9uIHVzZWQgZm9yIGNvbXBpbGF0aW9uCisgKiBAbmV4dDogbGlz dCBoZWFkIGZvciBhIHNpbmdseS1saW5rZWQgbGlzdAorICogQHN0YW1wOiB0aW1lIHN0YW1wCisg KiBAZmlsZW5hbWU6IG5hbWUgb2YgdGhlIGFzc29jaWF0ZWQgZ2NvdiBkYXRhIGZpbGUKKyAqIEBu X2Z1bmN0aW9uczogbnVtYmVyIG9mIGluc3RydW1lbnRlZCBmdW5jdGlvbnMKKyAqIEBmdW5jdGlv bnM6IGZ1bmN0aW9uIGRhdGEKKyAqIEBjdHJfbWFzazogbWFzayBzcGVjaWZ5aW5nIHdoaWNoIGNv dW50ZXIgdHlwZXMgYXJlIGFjdGl2ZQorICogQGNvdW50czogY291bnRlciBkYXRhIHBlciBjb3Vu dGVyIHR5cGUKKyAqCisgKiBUaGlzIGRhdGEgaXMgZ2VuZXJhdGVkIGJ5IGdjYyBkdXJpbmcgY29t cGlsYXRpb24gYW5kIGRvZXNuJ3QgY2hhbmdlCisgKiBhdCBydW4tdGltZSB3aXRoIHRoZSBleGNl cHRpb24gb2YgdGhlIG5leHQgcG9pbnRlci4KKyAqLworc3RydWN0IGdjb3ZfaW5mbworeworICAg IHVuc2lnbmVkIGludCAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBzdHJ1Y3QgZ2Nvdl9pbmZv ICAgICAgICAgICpuZXh0OworICAgIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgc3RhbXA7Cisg ICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAqZmlsZW5hbWU7CisgICAgdW5zaWduZWQgaW50 ICAgICAgICAgICAgICBuX2Z1bmN0aW9uczsKKyAgICBjb25zdCBzdHJ1Y3QgZ2Nvdl9mbl9pbmZv ICpmdW5jdGlvbnM7CisgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgICBjdHJfbWFzazsKKyAg ICBzdHJ1Y3QgZ2Nvdl9jdHJfaW5mbyAgICAgIGNvdW50c1swXTsKK307CisKKworI2VuZGlmIC8q IF9fWEVOX0dDT1ZfM180X0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2djb3Yu aCBiL3hlbi9pbmNsdWRlL3hlbi9nY292LmgKaW5kZXggYTdkNGEzNS4uZjZhMWFjNyAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL2djb3YuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vZ2Nvdi5o CkBAIC0xLDg4ICsxLDggQEAKLS8qCi0gKiAgUHJvZmlsaW5nIGluZnJhc3RydWN0dXJlIGRlY2xh cmF0aW9ucy4KLSAqCi0gKiAgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGdjYy1pbnRlcm5hbCBkZWZp bml0aW9ucy4gRGF0YSBzdHJ1Y3R1cmVzIGFyZQotICogIGRlZmluZWQgdG8gYmUgY29tcGF0aWJs ZSB3aXRoIGdjYyBjb3VudGVycGFydHMuIEZvciBhIGJldHRlcgotICogIHVuZGVyc3RhbmRpbmcs IHJlZmVyIHRvIGdjYyBzb3VyY2U6IGdjYy9nY292LWlvLmguCi0gKgotICogICAgQ29weXJpZ2h0 IElCTSBDb3JwLiAyMDA5Ci0gKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPG9i ZXJwYXJAbGludXgudm5ldC5pYm0uY29tPgotICoKLSAqICAgIFVzZXMgZ2NjLWludGVybmFsIGRh dGEgZGVmaW5pdGlvbnMuCi0gKi8KLQogI2lmbmRlZiBfX1hFTl9HQ09WX0hfXwogI2RlZmluZSBf X1hFTl9HQ09WX0hfXyBfX1hFTl9HQ09WX0hfXwogCiAjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5o PgogCi0vKgotICogUHJvZmlsaW5nIGRhdGEgdHlwZXMgdXNlZCBmb3IgZ2NjIDMuNCBhbmQgYWJv dmUgLSB0aGVzZSBhcmUgZGVmaW5lZCBieQotICogZ2NjIGFuZCBuZWVkIHRvIGJlIGtlcHQgYXMg Y2xvc2UgdG8gdGhlIG9yaWdpbmFsIGRlZmluaXRpb24gYXMgcG9zc2libGUgdG8KLSAqIHJlbWFp biBjb21wYXRpYmxlLgotICovCi0KLXR5cGVkZWYgdWludDY0X3QgZ2Nvdl90eXBlOwotCi0vKioK LSAqIHN0cnVjdCBnY292X2ZuX2luZm8gLSBwcm9maWxpbmcgbWV0YSBkYXRhIHBlciBmdW5jdGlv bgotICogQGlkZW50OiBvYmplY3QgZmlsZS11bmlxdWUgZnVuY3Rpb24gaWRlbnRpZmllcgotICog QGNoZWNrc3VtOiBmdW5jdGlvbiBjaGVja3N1bQotICogQG5fY3RyczogbnVtYmVyIG9mIHZhbHVl cyBwZXIgY291bnRlciB0eXBlIGJlbG9uZ2luZyB0byB0aGlzIGZ1bmN0aW9uCi0gKgotICogVGhp cyBkYXRhIGlzIGdlbmVyYXRlZCBieSBnY2MgZHVyaW5nIGNvbXBpbGF0aW9uIGFuZCBkb2Vzbid0 IGNoYW5nZQotICogYXQgcnVuLXRpbWUuCi0gKi8KLXN0cnVjdCBnY292X2ZuX2luZm8KLXsKLSAg ICB1bnNpZ25lZCBpbnQgaWRlbnQ7Ci0gICAgdW5zaWduZWQgaW50IGNoZWNrc3VtOwotICAgIHVu c2lnbmVkIGludCBuX2N0cnNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBnY292X2N0cl9pbmZv IC0gcHJvZmlsaW5nIGRhdGEgcGVyIGNvdW50ZXIgdHlwZQotICogQG51bTogbnVtYmVyIG9mIGNv dW50ZXIgdmFsdWVzIGZvciB0aGlzIHR5cGUKLSAqIEB2YWx1ZXM6IGFycmF5IG9mIGNvdW50ZXIg dmFsdWVzIGZvciB0aGlzIHR5cGUKLSAqIEBtZXJnZTogbWVyZ2UgZnVuY3Rpb24gZm9yIGNvdW50 ZXIgdmFsdWVzIG9mIHRoaXMgdHlwZSAodW51c2VkKQotICoKLSAqIFRoaXMgZGF0YSBpcyBnZW5l cmF0ZWQgYnkgZ2NjIGR1cmluZyBjb21waWxhdGlvbiBhbmQgZG9lc24ndCBjaGFuZ2UKLSAqIGF0 IHJ1bi10aW1lIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgdmFsdWVzIGFycmF5LgotICovCi1z dHJ1Y3QgZ2Nvdl9jdHJfaW5mbwotewotICAgIHVuc2lnbmVkIGludCBudW07Ci0gICAgZ2Nvdl90 eXBlICp2YWx1ZXM7Ci0gICAgdm9pZCAoKm1lcmdlKShnY292X3R5cGUgKiwgdW5zaWduZWQgaW50 KTsKLX07Ci0KLS8qKgotICogc3RydWN0IGdjb3ZfaW5mbyAtIHByb2ZpbGluZyBkYXRhIHBlciBv YmplY3QgZmlsZQotICogQHZlcnNpb246IGdjb3YgdmVyc2lvbiBtYWdpYyBpbmRpY2F0aW5nIHRo ZSBnY2MgdmVyc2lvbiB1c2VkIGZvciBjb21waWxhdGlvbgotICogQG5leHQ6IGxpc3QgaGVhZCBm b3IgYSBzaW5nbHktbGlua2VkIGxpc3QKLSAqIEBzdGFtcDogdGltZSBzdGFtcAotICogQGZpbGVu YW1lOiBuYW1lIG9mIHRoZSBhc3NvY2lhdGVkIGdjb3YgZGF0YSBmaWxlCi0gKiBAbl9mdW5jdGlv bnM6IG51bWJlciBvZiBpbnN0cnVtZW50ZWQgZnVuY3Rpb25zCi0gKiBAZnVuY3Rpb25zOiBmdW5j dGlvbiBkYXRhCi0gKiBAY3RyX21hc2s6IG1hc2sgc3BlY2lmeWluZyB3aGljaCBjb3VudGVyIHR5 cGVzIGFyZSBhY3RpdmUKLSAqIEBjb3VudHM6IGNvdW50ZXIgZGF0YSBwZXIgY291bnRlciB0eXBl Ci0gKgotICogVGhpcyBkYXRhIGlzIGdlbmVyYXRlZCBieSBnY2MgZHVyaW5nIGNvbXBpbGF0aW9u IGFuZCBkb2Vzbid0IGNoYW5nZQotICogYXQgcnVuLXRpbWUgd2l0aCB0aGUgZXhjZXB0aW9uIG9m IHRoZSBuZXh0IHBvaW50ZXIuCi0gKi8KLXN0cnVjdCBnY292X2luZm8KLXsKLSAgICB1bnNpZ25l ZCBpbnQgICAgICAgICAgICAgIHZlcnNpb247Ci0gICAgc3RydWN0IGdjb3ZfaW5mbyAgICAgICAg ICAqbmV4dDsKLSAgICB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgIHN0YW1wOwotICAgIGNvbnN0 IGNoYXIgICAgICAgICAgICAgICAgKmZpbGVuYW1lOwotICAgIHVuc2lnbmVkIGludCAgICAgICAg ICAgICAgbl9mdW5jdGlvbnM7Ci0gICAgY29uc3Qgc3RydWN0IGdjb3ZfZm5faW5mbyAqZnVuY3Rp b25zOwotICAgIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgY3RyX21hc2s7Ci0gICAgc3RydWN0 IGdjb3ZfY3RyX2luZm8gICAgICBjb3VudHNbMF07Ci19OwotCi0KIC8qKgogICogU3lzY3RsIG9w ZXJhdGlvbnMgZm9yIGNvdmVyYWdlCiAgKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==