From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 1/3] drm: Update GEM refcounting docs Date: Thu, 22 Oct 2015 19:11:27 +0200 Message-ID: <1445533889-7661-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EF956E1C7 for ; Thu, 22 Oct 2015 10:11:44 -0700 (PDT) Received: by wicfv8 with SMTP id fv8so130000477wic.0 for ; Thu, 22 Oct 2015 10:11:43 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SSBqdXN0IHJlYWxpemVkIHRoYXQgSSd2ZSBmb3Jnb3R0ZW4gdG8gdXBkYXRlIGFsbCB0aGUgZ2Vt IHJlZmNvdW50aW5nCmRvY3MuIEZvciBwZW5uYW5jZSBhbHNvIGFkZCBwcmV0dHkgZG9jcyBmb3Ig dGhlIG92ZXJhbGwgZHJtX2dlbV9vYmplY3QKc3RydWN0dXJlLCB3aXRoIGEgZmV3IGxpbmtzIHRo cm93biBpbiBmb3JlIGdvb2QuCgpBcyB1c3VhbGx5IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBr ZXJuZWxkb2MgcmVmZXJlbmNlIGlzIGF0IG1vc3QgYQpzZWN0MiBmb3Igb3RoZXJ3aXNlIGl0IHdv bid0IGJlIGxpc3RlZC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAaW50ZWwuY29tPgotLS0KIERvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbCB8ICAxNSAr KystLS0KIGluY2x1ZGUvZHJtL2RybV9nZW0uaCAgICAgICAgICB8IDEwNiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0 aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NC b29rL2dwdS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCmluZGV4IDkwYzJh YWIzMTI2OS4uNmM1ODY1YmI1ZWU4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2sv Z3B1LnRtcGwKKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCkBAIC02MzUsMTAg KzYzNSwxMCBAQCBjaGFyICpkYXRlOzwvc3lub3BzaXM+CiAgICAgICAgICAgYWNxdWlyZWQgYW5k IHJlbGVhc2UgYnkgPGZ1bmN0aW9uPmNhbGxpbmcgZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlPC9m dW5jdGlvbj4KICAgICAgICAgICBhbmQgPGZ1bmN0aW9uPmRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlPC9mdW5jdGlvbj4gcmVzcGVjdGl2ZWx5LiBUaGUKICAgICAgICAgICBjYWxsZXIgbXVzdCBo b2xkIHRoZSA8c3RydWN0bmFtZT5kcm1fZGV2aWNlPC9zdHJ1Y3RuYW1lPgotICAgICAgICAgIDxz dHJ1Y3RmaWVsZD5zdHJ1Y3RfbXV0ZXg8L3N0cnVjdGZpZWxkPiBsb2NrLiBBcyBhIGNvbnZlbmll bmNlLCBHRU0KLSAgICAgICAgICBwcm92aWRlcyB0aGUgPGZ1bmN0aW9uPmRybV9nZW1fb2JqZWN0 X3JlZmVyZW5jZV91bmxvY2tlZDwvZnVuY3Rpb24+IGFuZAotICAgICAgICAgIDxmdW5jdGlvbj5k cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZDwvZnVuY3Rpb24+IGZ1bmN0aW9ucyB0 aGF0Ci0gICAgICAgICAgY2FuIGJlIGNhbGxlZCB3aXRob3V0IGhvbGRpbmcgdGhlIGxvY2suCisJ ICA8c3RydWN0ZmllbGQ+c3RydWN0X211dGV4PC9zdHJ1Y3RmaWVsZD4gbG9jayB3aGVuIGNhbGxp bmcKKwkgIDxmdW5jdGlvbj5kcm1fZ2VtX29iamVjdF9yZWZlcmVuY2U8L2Z1bmN0aW9uPi4gQXMg YSBjb252ZW5pZW5jZSwgR0VNCisJICBwcm92aWRlcyA8ZnVuY3Rpb24+ZHJtX2dlbV9vYmplY3Rf dW5yZWZlcmVuY2VfdW5sb2NrZWQ8L2Z1bmN0aW9uPgorCSAgZnVuY3Rpb25zIHRoYXQgY2FuIGJl IGNhbGxlZCB3aXRob3V0IGhvbGRpbmcgdGhlIGxvY2suCiAgICAgICAgIDwvcGFyYT4KICAgICAg ICAgPHBhcmE+CiAgICAgICAgICAgV2hlbiB0aGUgbGFzdCByZWZlcmVuY2UgdG8gYSBHRU0gb2Jq ZWN0IGlzIHJlbGVhc2VkIHRoZSBHRU0gY29yZSBjYWxscwpAQCAtODM2LDEwICs4MzYsMTEgQEAg Y2hhciAqZGF0ZTs8L3N5bm9wc2lzPgogICAgICAgICAgIGFic3RyYWN0ZWQgZnJvbSB0aGUgY2xp ZW50IGluIGxpYmRybS4KICAgICAgICAgPC9wYXJhPgogICAgICAgPC9zZWN0Mz4KLSAgICAgIDxz ZWN0Mz4KLSAgICAgICAgPHRpdGxlPkdFTSBGdW5jdGlvbiBSZWZlcmVuY2U8L3RpdGxlPgorICAg IDwvc2VjdDI+CisgICAgPHNlY3QyPgorICAgICAgPHRpdGxlPkdFTSBGdW5jdGlvbiBSZWZlcmVu Y2U8L3RpdGxlPgogIUVkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCi0gICAgICA8L3NlY3QzPgor IUlpbmNsdWRlL2RybS9kcm1fZ2VtLmgKICAgICA8L3NlY3QyPgogICAgIDxzZWN0Mj4KICAgICAg IDx0aXRsZT5WTUEgT2Zmc2V0IE1hbmFnZXI8L3RpdGxlPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2dlbS5oIGIvaW5jbHVkZS9kcm0vZHJtX2dlbS5oCmluZGV4IDE1ZTdmMDA3MzgwZi4u MGIzZTExYWI4NzU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2dlbS5oCkBAIC0zNSw3NiArMzUsMTI5IEBACiAgKi8KIAogLyoqCi0gKiBU aGlzIHN0cnVjdHVyZSBkZWZpbmVzIHRoZSBkcm1fbW0gbWVtb3J5IG9iamVjdCwgd2hpY2ggd2ls bCBiZSB1c2VkIGJ5IHRoZQotICogRFJNIGZvciBpdHMgYnVmZmVyIG9iamVjdHMuCisgKiBzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgLSBHRU0gYnVmZmVyIG9iamVjdAorICoKKyAqIFRoaXMgc3RydWN0 dXJlIGRlZmluZXMgdGhlIGdlbmVyaWMgcGFydHMgZm9yIEdFTSBidWZmZXIgb2JqZWN0cywgd2hp Y2ggYXJlCisgKiBtb3N0bHkgYXJvdW5kIGhhbmRsaW5nIG1tYXAgYW5kIHVzZXJzcGFjZSBoYW5k bGVzLgorICoKKyAqIEJ1ZmZlciBvYmplY3RzIGFyZSBvZnRlbiBhYmJyZXZpYXRlZCB0byBCTy4K ICAqLwogc3RydWN0IGRybV9nZW1fb2JqZWN0IHsKLQkvKiogUmVmZXJlbmNlIGNvdW50IG9mIHRo aXMgb2JqZWN0ICovCisJLyoqCisJICogQHJlZmNvdW50OgorCSAqCisJICogUmVmZXJlbmNlIGNv dW50IG9mIHRoaXMgb2JqZWN0CisJICoKKwkgKiBQbGVhc2UgdXNlIGRybV9nZW1fb2JqZWN0X3Jl ZmVyZW5jZSgpIHRvIGFjcXVpcmUgYW5kCisJICogZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo KSBvciBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgpCisJICogdG8gcmVsZWFz ZSBhIHJlZmVyZW5jZSB0byBhIEdFTSBidWZmZXIgb2JqZWN0LgorCSAqLwogCXN0cnVjdCBrcmVm IHJlZmNvdW50OwogCiAJLyoqCi0JICogaGFuZGxlX2NvdW50IC0gZ2VtIGZpbGVfcHJpdiBoYW5k bGUgY291bnQgb2YgdGhpcyBvYmplY3QKKwkgKiBAaGFuZGxlX2NvdW50OgorCSAqCisJICogVGhp cyBpcyB0aGUgR0VNIGZpbGVfcHJpdiBoYW5kbGUgY291bnQgb2YgdGhpcyBvYmplY3QuCiAJICoK IAkgKiBFYWNoIGhhbmRsZSBhbHNvIGhvbGRzIGEgcmVmZXJlbmNlLiBOb3RlIHRoYXQgd2hlbiB0 aGUgaGFuZGxlX2NvdW50CiAJICogZHJvcHMgdG8gMCBhbnkgZ2xvYmFsIG5hbWVzIChlLmcuIHRo ZSBpZCBpbiB0aGUgZmxpbmsgbmFtZXNwYWNlKSB3aWxsCiAJICogYmUgY2xlYXJlZC4KIAkgKgog CSAqIFByb3RlY3RlZCBieSBkZXYtPm9iamVjdF9uYW1lX2xvY2suCi0JICogKi8KKwkgKi8KIAl1 bnNpZ25lZCBoYW5kbGVfY291bnQ7CiAKLQkvKiogUmVsYXRlZCBkcm0gZGV2aWNlICovCisJLyoq CisJICogQGRldjogRFJNIGRldiB0aGlzIG9iamVjdCBiZWxvbmdzIHRvLgorCSAqLwogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXY7CiAKLQkvKiogRmlsZSByZXByZXNlbnRpbmcgdGhlIHNobWVtIHN0 b3JhZ2UgKi8KKwkvKioKKwkgKiBAZmlscDoKKwkgKgorCSAqIFNITUVNIGZpbGUgbm9kZSB1c2Vk IGFzIGJhY2tpbmcgc3RvcmFnZSBmb3Igc3dhcHBhYmxlIGJ1ZmZlciBvYmplY3RzLgorCSAqIEdF TSBhbHNvIHN1cHBvcnRzIGRyaXZlciBwcml2YXRlIG9iamVjdHMgd2l0aCBkcml2ZXItc3BlY2lm aWMgYmFja2luZworCSAqIHN0b3JhZ2UgKGNvbnRpZ3VvdXMgQ01BIG1lbW9yeSwgc3BlY2lhbCBy ZXNlcnZlZCBibG9ja3MpLiBJbiB0aGlzCisJICogY2FzZSBAZmlscCBpcyBOVUxMLgorCSAqLwog CXN0cnVjdCBmaWxlICpmaWxwOwogCi0JLyogTWFwcGluZyBpbmZvIGZvciB0aGlzIG9iamVjdCAq LworCS8qKgorCSAqIEB2bWFfbm9kZToKKwkgKgorCSAqIE1hcHBpbmcgaW5mbyBmb3IgdGhpcyBv YmplY3QgdG8gc3VwcG9ydCBtbWFwLiBEcml2ZXJzIGFyZSBzdXBwb3NlZCB0bworCSAqIGFsbG9j YXRlIHRoZSBtbWFwIG9mZnNldCB1c2luZyBkcm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNldCgpLiBU aGUKKwkgKiBvZmZzZXQgaXRzZWxmIGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcgZHJtX3ZtYV9ub2Rl X29mZnNldF9hZGRyKCkuCisJICoKKwkgKiBNZW1vcnkgbWFwcGluZyBpdHNlbGYgaXMgaGFuZGxl ZCBieSBkcm1fZ2VtX21tYXAoKSwgd2hpY2ggYWxzbyBjaGVja3MKKwkgKiB0aGF0IHVzZXJzcGFj ZSBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgb2JqZWN0LgorCSAqLwogCXN0cnVjdCBkcm1fdm1h X29mZnNldF9ub2RlIHZtYV9ub2RlOwogCiAJLyoqCisJICogQHNpemU6CisJICoKIAkgKiBTaXpl IG9mIHRoZSBvYmplY3QsIGluIGJ5dGVzLiAgSW1tdXRhYmxlIG92ZXIgdGhlIG9iamVjdCdzCiAJ ICogbGlmZXRpbWUuCiAJICovCiAJc2l6ZV90IHNpemU7CiAKIAkvKioKKwkgKiBAbmFtZToKKwkg KgogCSAqIEdsb2JhbCBuYW1lIGZvciB0aGlzIG9iamVjdCwgc3RhcnRzIGF0IDEuIDAgbWVhbnMg dW5uYW1lZC4KLQkgKiBBY2Nlc3MgaXMgY292ZXJlZCBieSB0aGUgb2JqZWN0X25hbWVfbG9jayBp biB0aGUgcmVsYXRlZCBkcm1fZGV2aWNlCisJICogQWNjZXNzIGlzIGNvdmVyZWQgYnkgZGV2LT5v YmplY3RfbmFtZV9sb2NrLiBUaGlzIGlzIHVzZWQgYnkgdGhlIEdFTV9GTElOSworCSAqIGFuZCBH RU1fT1BFTiBpb2N0bHMuCiAJICovCiAJaW50IG5hbWU7CiAKIAkvKioKLQkgKiBNZW1vcnkgZG9t YWlucy4gVGhlc2UgbW9uaXRvciB3aGljaCBjYWNoZXMgY29udGFpbiByZWFkL3dyaXRlIGRhdGEK KwkgKiBAcmVhZF9kb21haW5zOgorCSAqCisJICogUmVhZCBtZW1vcnkgZG9tYWlucy4gVGhlc2Ug bW9uaXRvciB3aGljaCBjYWNoZXMgY29udGFpbiByZWFkL3dyaXRlIGRhdGEKIAkgKiByZWxhdGVk IHRvIHRoZSBvYmplY3QuIFdoZW4gdHJhbnNpdGlvbmluZyBmcm9tIG9uZSBzZXQgb2YgZG9tYWlu cwogCSAqIHRvIGFub3RoZXIsIHRoZSBkcml2ZXIgaXMgY2FsbGVkIHRvIGVuc3VyZSB0aGF0IGNh Y2hlcyBhcmUgc3VpdGFibHkKLQkgKiBmbHVzaGVkIGFuZCBpbnZhbGlkYXRlZAorCSAqIGZsdXNo ZWQgYW5kIGludmFsaWRhdGVkLgogCSAqLwogCXVpbnQzMl90IHJlYWRfZG9tYWluczsKKworCS8q KgorCSAqIEB3cml0ZV9kb21haW46IENvcnJlc3BvbmRpbmcgdW5pcXVlIHdyaXRlIG1lbW9yeSBk b21haW4uCisJICovCiAJdWludDMyX3Qgd3JpdGVfZG9tYWluOwogCiAJLyoqCisJICogQHBlbmRp bmdfcmVhZF9kb21haW5zOgorCSAqCiAJICogV2hpbGUgdmFsaWRhdGluZyBhbiBleGVjIG9wZXJh dGlvbiwgdGhlCiAJICogbmV3IHJlYWQvd3JpdGUgZG9tYWluIHZhbHVlcyBhcmUgY29tcHV0ZWQg aGVyZS4KIAkgKiBUaGV5IHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIGFib3ZlIHZhbHVlcwog CSAqIGF0IHRoZSBwb2ludCB0aGF0IGFueSBjYWNoZSBmbHVzaGluZyBvY2N1cnMKIAkgKi8KIAl1 aW50MzJfdCBwZW5kaW5nX3JlYWRfZG9tYWluczsKKworCS8qKgorCSAqIEBwZW5kaW5nX3dyaXRl X2RvbWFpbjogV3JpdGUgZG9tYWluIHNpbWlsYXIgdG8gQHBlbmRpbmdfcmVhZF9kb21haW5zLgor CSAqLwogCXVpbnQzMl90IHBlbmRpbmdfd3JpdGVfZG9tYWluOwogCiAJLyoqCi0JICogZG1hX2J1 ZiAtIGRtYSBidWYgYXNzb2NpYXRlZCB3aXRoIHRoaXMgR0VNIG9iamVjdAorCSAqIEBkbWFfYnVm OgorCSAqCisJICogZG1hLWJ1ZiBhc3NvY2lhdGVkIHdpdGggdGhpcyBHRU0gb2JqZWN0LgogCSAq CiAJICogUG9pbnRlciB0byB0aGUgZG1hLWJ1ZiBhc3NvY2lhdGVkIHdpdGggdGhpcyBnZW0gb2Jq ZWN0IChlaXRoZXIKIAkgKiB0aHJvdWdoIGltcG9ydGluZyBvciBleHBvcnRpbmcpLiBXZSBicmVh ayB0aGUgcmVzdWx0aW5nIHJlZmVyZW5jZQogCSAqIGxvb3Agd2hlbiB0aGUgbGFzdCBnZW0gaGFu ZGxlIGZvciB0aGlzIG9iamVjdCBpcyByZWxlYXNlZC4KIAkgKgotCSAqIFByb3RlY3RlZCBieSBv YmotPm9iamVjdF9uYW1lX2xvY2sKKwkgKiBQcm90ZWN0ZWQgYnkgb2JqLT5vYmplY3RfbmFtZV9s b2NrLgogCSAqLwogCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmOwogCiAJLyoqCi0JICogaW1wb3J0 X2F0dGFjaCAtIGRtYSBidWYgYXR0YWNobWVudCBiYWNraW5nIHRoaXMgb2JqZWN0CisJICogQGlt cG9ydF9hdHRhY2g6CisJICoKKwkgKiBkbWEtYnVmIGF0dGFjaG1lbnQgYmFja2luZyB0aGlzIG9i amVjdC4KIAkgKgogCSAqIEFueSBmb3JlaWduIGRtYV9idWYgaW1wb3J0ZWQgYXMgYSBnZW0gb2Jq ZWN0IGhhcyB0aGlzIHNldCB0byB0aGUKIAkgKiBhdHRhY2htZW50IHBvaW50IGZvciB0aGUgZGV2 aWNlLiBUaGlzIGlzIGludmFyaWFudCBvdmVyIHRoZSBsaWZldGltZQpAQCAtMTMzLDEyICsxODYs MzAgQEAgaW50IGRybV9nZW1fbW1hcF9vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHVu c2lnbmVkIGxvbmcgb2JqX3NpemUsCiAJCSAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp OwogaW50IGRybV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpOwogCisvKioKKyAqIGRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSAtIGFjcXVpcmUg YSBHRU0gQk8gcmVmZXJlbmNlCisgKiBAb2JqOiBHRU0gYnVmZmVyIG9iamVjdAorICoKKyAqIFRo aXMgYWNxdWlyZXMgYWRkaXRpb25hbCByZWZlcmVuY2UgdG8gQG9iai4gSXQgaXMgaWxsZWdhbCB0 byBjYWxsIHRoaXMKKyAqIHdpdGhvdXQgYWxyZWFkeSBob2xkaW5nIGEgcmVmZXJlbmNlLiBObyBs b2NrcyByZXF1aXJlZC4KKyAqLwogc3RhdGljIGlubGluZSB2b2lkCiBkcm1fZ2VtX29iamVjdF9y ZWZlcmVuY2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJa3JlZl9nZXQoJm9iai0+ cmVmY291bnQpOwogfQogCisvKioKKyAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlIC0gcmVs ZWFzZSBhIEdFTSBCTyByZWZlcmVuY2UKKyAqIEBvYmo6IEdFTSBidWZmZXIgb2JqZWN0CisgKgor ICogVGhpcyByZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBAb2JqLiBDYWxsZXJzIG11c3QgaG9sZCB0 aGUgZGV2LT5zdHJ1Y3RfbXV0ZXgKKyAqIGxvY2sgd2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24s IGV2ZW4gd2hlbiB0aGUgZHJpdmVyIGRvZXNuJ3QgdXNlCisgKiBkZXYtPnN0cnVjdF9tdXRleCBm b3IgYW55dGhpbmcuCisgKgorICogRm9yIGRyaXZlcnMgbm90IGVuY3VtYmVyZWQgd2l0aCBsZWdh Y3kgbG9ja2luZyB1c2UKKyAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCkg aW5zdGVhZC4KKyAqLwogc3RhdGljIGlubGluZSB2b2lkCiBkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKQEAgLTE0OSw2ICsyMjAsMTMgQEAg ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJ fQogfQogCisvKioKKyAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkIC0gcmVs ZWFzZSBhIEdFTSBCTyByZWZlcmVuY2UKKyAqIEBvYmo6IEdFTSBidWZmZXIgb2JqZWN0CisgKgor ICogVGhpcyByZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBAb2JqLiBDYWxsZXJzIG11c3Qgbm90IGhv bGQgdGhlCisgKiBkZXYtPnN0cnVjdF9tdXRleCBsb2NrIHdoZW4gY2FsbGluZyB0aGlzIGZ1bmN0 aW9uLgorICovCiBzdGF0aWMgaW5saW5lIHZvaWQKIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl X3VubG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewotLSAKMi41LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==