From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 01/15] drm/kms-helpers: Use recommened kerneldoc for struct member refs Date: Wed, 25 Jan 2017 07:26:43 +0100 Message-ID: <20170125062657.19270-2-daniel.vetter@ffwll.ch> References: <20170125062657.19270-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170125062657.19270-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Daniel Vetter , Daniel Vetter , Intel Graphics Development List-Id: dri-devel@lists.freedesktop.org SSBqdXN0IGxlYXJuZWQgdGhhdCAmc3RydWN0X25hbWUubWVtYmVyX25hbWUgd29ya3MgYW5kIGxv b2tzIHByZXR0eQpldmVuLiBJdCBkb2Vzbid0ICh5ZXQpIGxpbmsgdG8gdGhlIG1lbWJlciBkaXJl Y3RseSB0aG91Z2gsIHdoaWNoIHdvdWxkCmJlIHJlYWxseSBnb29kIGZvciBiaWcgc3RydWN0dXJl cyBvciB2ZnVuYyB0YWJsZXMgKHdoZXJlIHRoZQpwZXItbWVtYmVyIGtlcm5lbGRvYyB0ZW5kcyB0 byBiZSBsb25nKS4KCkFsc28gc29tZSBtaW5vciBkcml2ZS1ieSBwb2xpc2ggd2hlcmUgaXQgbWFr ZXMgc2Vuc2UsIEkgcmVhZCBhIGxvdApvZiBkb2NzIC4uLgoKQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICB8 ICA5NyArKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBl ci5jICAgICAgICB8ICAyOCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMg ICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAg ICAgfCAgNDggKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYyAg ICAgICB8ICAgOSArLQogZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyAgICAgICB8 ICAxNCArLS0KIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgICAgICAgfCAgMTMg Ky0tCiBpbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oICAgICAgICAgIHwgICA3ICstCiBp bmNsdWRlL2RybS9kcm1fZmxpcF93b3JrLmggICAgICAgICAgICAgIHwgICAyICstCiBpbmNsdWRl L2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIHwgMTQ2ICsrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oICAgICAg fCAgMTIgKy0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKSwgMTgxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggMWYwY2Q3ZTcxNWM5 Li41ZTUxMmRkM2EyYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC00NTgs MjIgKzQ1OCwyNSBAQCBtb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK ICAqIENoZWNrIHRoZSBzdGF0ZSBvYmplY3QgdG8gc2VlIGlmIHRoZSByZXF1ZXN0ZWQgc3RhdGUg aXMgcGh5c2ljYWxseSBwb3NzaWJsZS4KICAqIFRoaXMgZG9lcyBhbGwgdGhlIGNydGMgYW5kIGNv bm5lY3RvciByZWxhdGVkIGNvbXB1dGF0aW9ucyBmb3IgYW4gYXRvbWljCiAgKiB1cGRhdGUgYW5k IGFkZHMgYW55IGFkZGl0aW9uYWwgY29ubmVjdG9ycyBuZWVkZWQgZm9yIGZ1bGwgbW9kZXNldHMg YW5kIGNhbGxzCi0gKiBkb3duIGludG8gLT5tb2RlX2ZpeHVwIGZ1bmN0aW9ucyBvZiB0aGUgZHJp dmVyIGJhY2tlbmQuCi0gKgotICogY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGlzIHNldCB3aGVu IHRoZSBpbnB1dCBtb2RlIGlzIGNoYW5nZWQuCi0gKiBjcnRjX3N0YXRlLT5jb25uZWN0b3JzX2No YW5nZWQgaXMgc2V0IHdoZW4gYSBjb25uZWN0b3IgaXMgYWRkZWQgb3IKLSAqIHJlbW92ZWQgZnJv bSB0aGUgY3J0Yy4KLSAqIGNydGNfc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkIGlzIHNldCB3aGVuIGNy dGNfc3RhdGUtPmFjdGl2ZSBjaGFuZ2VzLAotICogd2hpY2ggaXMgdXNlZCBmb3IgZHBtcy4KKyAq IGRvd24gaW50byAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLm1vZGVfZml4dXAgYW5kCisgKiAmZHJt X2VuY29kZXJfaGVscGVyX2Z1bmNzLm1vZGVfZml4dXAgb3IKKyAqICZkcm1fZW5jb2Rlcl9oZWxw ZXJfZnVuY3MuYXRvbWljX2NoZWNrIGZ1bmN0aW9ucyBvZiB0aGUgZHJpdmVyIGJhY2tlbmQuCisg KgorICogJmRybV9jcnRjX3N0YXRlLm1vZGVfY2hhbmdlZCBpcyBzZXQgd2hlbiB0aGUgaW5wdXQg bW9kZSBpcyBjaGFuZ2VkLgorICogJmRybV9jcnRjX3N0YXRlLmNvbm5lY3RvcnNfY2hhbmdlZCBp cyBzZXQgd2hlbiBhIGNvbm5lY3RvciBpcyBhZGRlZCBvcgorICogcmVtb3ZlZCBmcm9tIHRoZSBj cnRjLiAgJmRybV9jcnRjX3N0YXRlLmFjdGl2ZV9jaGFuZ2VkIGlzIHNldCB3aGVuCisgKiAmZHJt X2NydGNfc3RhdGUuYWN0aXZlIGNoYW5nZXMsIHdoaWNoIGlzIHVzZWQgZm9yIERQTVMuCiAgKiBT ZWUgYWxzbzogZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoKQogICoKICAqIElNUE9SVEFO VDoKICAqCi0gKiBEcml2ZXJzIHdoaWNoIHNldCAtPm1vZGVfY2hhbmdlZCAoZS5nLiBpbiB0aGVp ciAtPmF0b21pY19jaGVjayBob29rcyBpZiBhCi0gKiBwbGFuZSB1cGRhdGUgY2FuJ3QgYmUgZG9u ZSB3aXRob3V0IGEgZnVsbCBtb2Rlc2V0KSBfbXVzdF8gY2FsbCB0aGlzIGZ1bmN0aW9uCi0gKiBh ZnRlcndhcmRzIGFmdGVyIHRoYXQgY2hhbmdlLiBJdCBpcyBwZXJtaXR0ZWQgdG8gY2FsbCB0aGlz IGZ1bmN0aW9uIG11bHRpcGxlCi0gKiB0aW1lcyBmb3IgdGhlIHNhbWUgdXBkYXRlLCBlLmcuIHdo ZW4gdGhlIC0+YXRvbWljX2NoZWNrIGZ1bmN0aW9ucyBkZXBlbmQgdXBvbgotICogdGhlIGFkanVz dGVkIGRvdGNsb2NrIGZvciBmaWZvIHNwYWNlIGFsbG9jYXRpb24gYW5kIHdhdGVybWFyayBjb21w dXRhdGlvbi4KKyAqIERyaXZlcnMgd2hpY2ggc2V0ICZkcm1fY3J0Y19zdGF0ZS5tb2RlX2NoYW5n ZWQgKGUuZy4gaW4gdGhlaXIKKyAqICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLmF0b21pY19jaGVj ayBob29rcyBpZiBhIHBsYW5lIHVwZGF0ZSBjYW4ndCBiZSBkb25lCisgKiB3aXRob3V0IGEgZnVs bCBtb2Rlc2V0KSBfbXVzdF8gY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyd2FyZHMgYWZ0ZXIgdGhh dAorICogY2hhbmdlLiBJdCBpcyBwZXJtaXR0ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIG11bHRp cGxlIHRpbWVzIGZvciB0aGUgc2FtZQorICogdXBkYXRlLCBlLmcuIHdoZW4gdGhlICZkcm1fY3J0 Y19oZWxwZXJfZnVuY3MuYXRvbWljX2NoZWNrIGZ1bmN0aW9ucyBkZXBlbmQKKyAqIHVwb24gdGhl IGFkanVzdGVkIGRvdGNsb2NrIGZvciBmaWZvIHNwYWNlIGFsbG9jYXRpb24gYW5kIHdhdGVybWFy aworICogY29tcHV0YXRpb24uCiAgKgogICogUkVUVVJOUzoKICAqIFplcm8gZm9yIHN1Y2Nlc3Mg b3IgLWVycm5vCkBAIC01ODQsOSArNTg3LDEwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfbW9kZXNldCk7CiAgKgogICogQ2hlY2sgdGhlIHN0YXRlIG9iamVjdCB0byBz ZWUgaWYgdGhlIHJlcXVlc3RlZCBzdGF0ZSBpcyBwaHlzaWNhbGx5IHBvc3NpYmxlLgogICogVGhp cyBkb2VzIGFsbCB0aGUgcGxhbmUgdXBkYXRlIHJlbGF0ZWQgY2hlY2tzIHVzaW5nIGJ5IGNhbGxp bmcgaW50byB0aGUKLSAqIC0+YXRvbWljX2NoZWNrIGhvb2tzIHByb3ZpZGVkIGJ5IHRoZSBkcml2 ZXIuCisgKiAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLmF0b21pY19jaGVjayBhbmQgJmRybV9wbGFu ZV9oZWxwZXJfZnVuY3MuYXRvbWljX2NoZWNrCisgKiBob29rcyBwcm92aWRlZCBieSB0aGUgZHJp dmVyLgogICoKLSAqIEl0IGFsc28gc2V0cyBjcnRjX3N0YXRlLT5wbGFuZXNfY2hhbmdlZCB0byBp bmRpY2F0ZSB0aGF0IGEgY3J0YyBoYXMKKyAqIEl0IGFsc28gc2V0cyAmZHJtX2NydGNfc3RhdGUu cGxhbmVzX2NoYW5nZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGNydGMgaGFzCiAgKiB1cGRhdGVkIHBs YW5lcy4KICAqCiAgKiBSRVRVUk5TOgpAQCAtNjQ4LDE0ICs2NTIsMTUgQEAgRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZXMpOwogICogQ2hlY2sgdGhlIHN0YXRlIG9i amVjdCB0byBzZWUgaWYgdGhlIHJlcXVlc3RlZCBzdGF0ZSBpcyBwaHlzaWNhbGx5IHBvc3NpYmxl LgogICogT25seSBjcnRjcyBhbmQgcGxhbmVzIGhhdmUgY2hlY2sgY2FsbGJhY2tzLCBzbyBmb3Ig YW55IGFkZGl0aW9uYWwgKGdsb2JhbCkKICAqIGNoZWNraW5nIHRoYXQgYSBkcml2ZXIgbmVlZHMg aXQgY2FuIHNpbXBseSB3cmFwIHRoYXQgYXJvdW5kIHRoaXMgZnVuY3Rpb24uCi0gKiBEcml2ZXJz IHdpdGhvdXQgc3VjaCBuZWVkcyBjYW4gZGlyZWN0bHkgdXNlIHRoaXMgYXMgdGhlaXIgLT5hdG9t aWNfY2hlY2soKQotICogY2FsbGJhY2suCisgKiBEcml2ZXJzIHdpdGhvdXQgc3VjaCBuZWVkcyBj YW4gZGlyZWN0bHkgdXNlIHRoaXMgYXMgdGhlaXIKKyAqICZkcm1fbW9kZV9jb25maWdfZnVuY3Mu YXRvbWljX2NoZWNrIGNhbGxiYWNrLgogICoKICAqIFRoaXMganVzdCB3cmFwcyB0aGUgdHdvIHBh cnRzIG9mIHRoZSBzdGF0ZSBjaGVja2luZyBmb3IgcGxhbmVzIGFuZCBtb2Rlc2V0CiAgKiBzdGF0 ZSBpbiB0aGUgZGVmYXVsdCBvcmRlcjogRmlyc3QgaXQgY2FsbHMgZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfbW9kZXNldCgpCiAgKiBhbmQgdGhlbiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFu ZXMoKS4gVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB0aGUKLSAqIC0+YXRvbWljX2NoZWNrIGZ1bmN0 aW9ucyBkZXBlbmQgdXBvbiBhbiB1cGRhdGVkIGFkanVzdGVkX21vZGUuY2xvY2sgdG8KLSAqIGUu Zy4gcHJvcGVybHkgY29tcHV0ZSB3YXRlcm1hcmtzLgorICogQGRybV9wbGFuZV9oZWxwZXJfZnVu Y3MuYXRvbWljX2NoZWNrIGFuZCBAZHJtX2NydGNfaGVscGVyX2Z1bmNzLmF0b21pY19jaGVjawor ICogZnVuY3Rpb25zIGRlcGVuZCB1cG9uIGFuIHVwZGF0ZWQgYWRqdXN0ZWRfbW9kZS5jbG9jayB0 byBlLmcuIHByb3Blcmx5IGNvbXB1dGUKKyAqIHdhdGVybWFya3MuCiAgKgogICogUkVUVVJOUzoK ICAqIFplcm8gZm9yIHN1Y2Nlc3Mgb3IgLWVycm5vCkBAIC0xMTI1LDggKzExMzAsOCBAQCBFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MpOwogICogZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X3RhaWwgLSBjb21taXQgYXRvbWljIHVwZGF0ZSB0byBoYXJkd2Fy ZQogICogQG9sZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1 Y3R1cmVzCiAgKgotICogVGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbmF0aW9uIGZvciB0aGUg LT5hdG9taWNfY29tbWl0X3RhaWwoKSBob29rIG9mIHRoZQotICogJmRybV9tb2RlX2NvbmZpZ19o ZWxwZXJfZnVuY3MgdnRhYmxlLgorICogVGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbmF0aW9u IGZvciB0aGUKKyAqICZkcm1fbW9kZV9jb25maWdfaGVscGVyX2Z1bmNzLmF0b21pY19jb21taXRf dGFpbCBob29rLgogICoKICAqIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBvcmRlcmluZyBvZiBob3cg dGhlIHZhcmlvdXMgc3RhZ2VzIGFyZSBjYWxsZWQgaXMgdG8KICAqIG1hdGNoIHRoZSBsZWdhY3kg bW9kZXNldCBoZWxwZXIgbGlicmFyeSBjbG9zZXN0LiBPbmUgcGVjdWxpYXJpdHkgb2YgdGhhdCBp cwpAQCAtMTIwMyw4ICsxMjA4LDggQEAgc3RhdGljIHZvaWQgY29tbWl0X3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogICogZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KCkgYW5k IHJlbGF0ZWQgZnVuY3Rpb25zLgogICoKICAqIENvbW1pdHRpbmcgdGhlIGFjdHVhbCBoYXJkd2Fy ZSBzdGF0ZSBpcyBkb25lIHRocm91Z2ggdGhlCi0gKiAtPmF0b21pY19jb21taXRfdGFpbCgpIGNh bGxiYWNrIG9mIHRoZSAmZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2dGFibGUsCi0gKiBv ciBpdCdzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3Rh aWwoKS4KKyAqICZkcm1fbW9kZV9jb25maWdfaGVscGVyX2Z1bmNzLmF0b21pY19jb21taXRfdGFp bCBjYWxsYmFjaywgb3IgaXQncyBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfdGFpbCgpLgogICoKICAqIFJFVFVSTlM6CiAgKiBaZXJvIGZvciBzdWNj ZXNzIG9yIC1lcnJuby4KQEAgLTEzNzMsMTQgKzEzNzgsMTUgQEAgc3RhdGljIHZvaWQgcmVsZWFz ZV9jcnRjX2NvbW1pdChzdHJ1Y3QgY29tcGxldGlvbiAqY29tcGxldGlvbikKICAqCiAgKiBUaGlz IGZ1bmN0aW9uIHByZXBhcmVzIEBzdGF0ZSB0byBiZSB1c2VkIGJ5IHRoZSBhdG9taWMgaGVscGVy J3Mgc3VwcG9ydCBmb3IKICAqIG5vbmJsb2NraW5nIGNvbW1pdHMuIERyaXZlcnMgdXNpbmcgdGhl IG5vbmJsb2NraW5nIGNvbW1pdCBpbmZyYXN0cnVjdHVyZQotICogc2hvdWxkIGFsd2F5cyBjYWxs IHRoaXMgZnVuY3Rpb24gZnJvbSB0aGVpciAtPmF0b21pY19jb21taXQgaG9vay4KKyAqIHNob3Vs ZCBhbHdheXMgY2FsbCB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlaXIKKyAqICZkcm1fbW9kZV9jb25m aWdfZnVuY3MuYXRvbWljX2NvbW1pdCBob29rLgogICoKICAqIFRvIGJlIGFibGUgdG8gdXNlIHRo aXMgc3VwcG9ydCBkcml2ZXJzIG5lZWQgdG8gdXNlIGEgZmV3IG1vcmUgaGVscGVyCiAgKiBmdW5j dGlvbnMuIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcygpIG11c3QgYmUg Y2FsbGVkIGJlZm9yZQogICogYWN0dWFsbHkgY29tbWl0dGluZyB0aGUgaGFyZHdhcmUgc3RhdGUs IGFuZCBmb3Igbm9uYmxvY2tpbmcgY29tbWl0cyB0aGlzIGNhbGwKICAqIG11c3QgYmUgcGxhY2Vk IGluIHRoZSBhc3luYyB3b3JrZXIuIFNlZSBhbHNvIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3Rh dGUoKQogICogYW5kIGl0J3Mgc3RhbGwgcGFyYW1ldGVyLCBmb3Igd2hlbiBhIGRyaXZlcidzIGNv bW1pdCBob29rcyBsb29rIGF0IHRoZQotICogLT5zdGF0ZSBwb2ludGVycyBvZiAmc3RydWN0IGRy bV9jcnRjLCAmZHJtX3BsYW5lIG9yICZkcm1fY29ubmVjdG9yIGRpcmVjdGx5LgorICogJmRybV9j cnRjLnN0YXRlLCAmZHJtX3BsYW5lLnN0YXRlIG9yICZkcm1fY29ubmVjdG9yLnN0YXRlIHBvaW50 ZXIgZGlyZWN0bHkuCiAgKgogICogQ29tcGxldGlvbiBvZiB0aGUgaGFyZHdhcmUgY29tbWl0IHN0 ZXAgbXVzdCBiZSBzaWduYWxsZWQgdXNpbmcKICAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9o d19kb25lKCkuIEFmdGVyIHRoaXMgc3RlcCB0aGUgZHJpdmVyIGlzIG5vdCBhbGxvd2VkCkBAIC0x NDg5LDggKzE0OTUsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqcHJlY2VlZGlu Z19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogICogVGhpcyBmdW5jdGlvbiB3YWl0cyBm b3IgYWxsIHByZWNlZWRpbmcgY29tbWl0cyB0aGF0IHRvdWNoIHRoZSBzYW1lIENSVEMgYXMKICAq IEBvbGRfc3RhdGUgdG8gYm90aCBiZSBjb21taXR0ZWQgdG8gdGhlIGhhcmR3YXJlIChhcyBzaWdu YWxsZWQgYnkKICAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKSBhbmQgZXhlY3V0 ZWQgYnkgdGhlIGhhcmR3YXJlIChhcyBzaWduYWxsZWQKLSAqIGJ5IGNhbGxpbmcgZHJtX2NydGNf dmJsYW5rX3NlbmRfZXZlbnQgb24gdGhlIGV2ZW50IG1lbWJlciBvZgotICogJmRybV9jcnRjX3N0 YXRlKS4KKyAqIGJ5IGNhbGxpbmcgZHJtX2NydGNfdmJsYW5rX3NlbmRfZXZlbnQgb24gdGhlICZk cm1fY3J0Y19zdGF0ZS5ldmVudCkuCiAgKgogICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9taWMg aGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQogICogZHJtX2F0b21p Y19oZWxwZXJfc2V0dXBfY29tbWl0KCkgZm9yIGFuIG92ZXJ2aWV3LgpAQCAtMTYyNyw4ICsxNjMy LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25l KTsKICAqIEBzdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRoIG5ldyBzdGF0ZSBzdHJ1Y3R1 cmVzCiAgKgogICogVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBwbGFuZSBzdGF0ZSwgc3BlY2lmaWNh bGx5IGZyYW1lYnVmZmVycywgZm9yIHRoZSBuZXcKLSAqIGNvbmZpZ3VyYXRpb24uIElmIGFueSBm YWlsdXJlIGlzIGVuY291bnRlcmVkIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsCi0gKiAtPmNsZWFu dXBfZmIgb24gYW55IGFscmVhZHkgc3VjY2Vzc2Z1bGx5IHByZXBhcmVkIGZyYW1lYnVmZmVyLgor ICogY29uZmlndXJhdGlvbiwgYnkgY2FsbGluZyAmZHJtX3BsYW5lX2hlbHBlcl9mdW5jcy5wcmVw YXJlX2ZiLiBJZiBhbnkgZmFpbHVyZQorICogaXMgZW5jb3VudGVyZWQgdGhpcyBmdW5jdGlvbiB3 aWxsIGNhbGwgJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MuY2xlYW51cF9mYiBvbgorICogYW55IGFs cmVhZHkgc3VjY2Vzc2Z1bGx5IHByZXBhcmVkIGZyYW1lYnVmZmVyLgogICoKICAqIFJldHVybnM6 CiAgKiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KQEAgLTE3 MDgsMTAgKzE3MTQsMTAgQEAgc3RhdGljIGJvb2wgcGxhbmVfY3J0Y19hY3RpdmUoY29uc3Qgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAgKgogICogRHJpdmVycyBtYXkgc2V0IHRoZSBO T19ESVNBQkxFX0FGVEVSX01PREVTRVQgZmxhZyBpbiBAZmxhZ3MgaWYgdGhlIHJlbGV2YW50CiAg KiBkaXNwbGF5IGNvbnRyb2xsZXJzIHJlcXVpcmUgdG8gZGlzYWJsZSBhIENSVEMncyBwbGFuZXMg d2hlbiB0aGUgQ1JUQyBpcwotICogZGlzYWJsZWQuIFRoaXMgZnVuY3Rpb24gd291bGQgc2tpcCB0 aGUgLT5hdG9taWNfZGlzYWJsZSBjYWxsIGZvciBhIHBsYW5lIGlmCi0gKiB0aGUgQ1JUQyBvZiB0 aGUgb2xkIHBsYW5lIHN0YXRlIG5lZWRzIGEgbW9kZXNldHRpbmcgb3BlcmF0aW9uLiBPZiBjb3Vy c2UsCi0gKiB0aGUgZHJpdmVycyBuZWVkIHRvIGRpc2FibGUgdGhlIHBsYW5lcyBpbiB0aGVpciBD UlRDIGRpc2FibGUgY2FsbGJhY2tzCi0gKiBzaW5jZSBubyBvbmUgZWxzZSB3b3VsZCBkbyB0aGF0 LgorICogZGlzYWJsZWQuIFRoaXMgZnVuY3Rpb24gd291bGQgc2tpcCB0aGUgJmRybV9wbGFuZV9o ZWxwZXJfZnVuY3MuYXRvbWljX2Rpc2FibGUKKyAqIGNhbGwgZm9yIGEgcGxhbmUgaWYgdGhlIENS VEMgb2YgdGhlIG9sZCBwbGFuZSBzdGF0ZSBuZWVkcyBhIG1vZGVzZXR0aW5nCisgKiBvcGVyYXRp b24uIE9mIGNvdXJzZSwgdGhlIGRyaXZlcnMgbmVlZCB0byBkaXNhYmxlIHRoZSBwbGFuZXMgaW4g dGhlaXIgQ1JUQworICogZGlzYWJsZSBjYWxsYmFja3Mgc2luY2Ugbm8gb25lIGVsc2Ugd291bGQg ZG8gdGhhdC4KICAqCiAgKiBUaGUgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0KCkgZGVmYXVsdCBp bXBsZW1lbnRhdGlvbiBkb2Vzbid0IHNldCB0aGUKICAqIEFDVElWRV9PTkxZIGZsYWcgdG8gbW9z dCBjbG9zZWx5IG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YgdGhlIGxlZ2FjeSBoZWxwZXJzLgpAQCAt MTg3NCw3ICsxODgwLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf cGxhbmVzX29uX2NydGMpOwogICogcGxhbmVzLgogICoKICAqIEl0IGlzIGEgYnVnIHRvIGNhbGwg dGhpcyBmdW5jdGlvbiB3aXRob3V0IGhhdmluZyBpbXBsZW1lbnRlZCB0aGUKLSAqIC0+YXRvbWlj X2Rpc2FibGUoKSBwbGFuZSBob29rLgorICogJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MuYXRvbWlj X2Rpc2FibGUgcGxhbmUgaG9vay4KICAqLwogdm9pZAogZHJtX2F0b21pY19oZWxwZXJfZGlzYWJs ZV9wbGFuZXNfb25fY3J0YyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLApA QCAtMTk2MSw4ICsxOTY3LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jbGVh bnVwX3BsYW5lcyk7CiAgKiBjb250YWlucyB0aGUgb2xkIHN0YXRlLiBBbHNvIGRvIGFueSBvdGhl ciBjbGVhbnVwIHJlcXVpcmVkIHdpdGggdGhhdCBzdGF0ZS4KICAqCiAgKiBAc3RhbGwgbXVzdCBi ZSBzZXQgd2hlbiBub25ibG9ja2luZyBjb21taXRzIGZvciB0aGlzIGRyaXZlciBkaXJlY3RseSBh Y2Nlc3MKLSAqIHRoZSAtPnN0YXRlIHBvaW50ZXIgb2YgJmRybV9wbGFuZSwgJmRybV9jcnRjIG9y ICZkcm1fY29ubmVjdG9yLiBXaXRoIHRoZQotICogY3VycmVudCBhdG9taWMgaGVscGVycyB0aGlz IGlzIGFsbW9zdCBhbHdheXMgdGhlIGNhc2UsIHNpbmNlIHRoZSBoZWxwZXJzCisgKiB0aGUgJmRy bV9wbGFuZS5zdGF0ZSwgJmRybV9jcnRjLnN0YXRlIG9yICZkcm1fY29ubmVjdG9yLnN0YXRlIHBv aW50ZXIuIFdpdGgKKyAqIHRoZSBjdXJyZW50IGF0b21pYyBoZWxwZXJzIHRoaXMgaXMgYWxtb3N0 IGFsd2F5cyB0aGUgY2FzZSwgc2luY2UgdGhlIGhlbHBlcnMKICAqIGRvbid0IHBhc3MgdGhlIHJp Z2h0IHN0YXRlIHN0cnVjdHVyZXMgdG8gdGhlIGNhbGxiYWNrcy4KICAqLwogdm9pZCBkcm1fYXRv bWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKQEAg LTI4OTIsOCArMjg5OCw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcGFnZV9m bGlwX3RhcmdldCk7CiAgKgogICogVGhpcyBpcyB0aGUgbWFpbiBoZWxwZXIgZnVuY3Rpb24gcHJv dmlkZWQgYnkgdGhlIGF0b21pYyBoZWxwZXIgZnJhbWV3b3JrIGZvcgogICogaW1wbGVtZW50aW5n IHRoZSBsZWdhY3kgRFBNUyBjb25uZWN0b3IgaW50ZXJmYWNlLiBJdCBjb21wdXRlcyB0aGUgbmV3 IGRlc2lyZWQKLSAqIC0+YWN0aXZlIHN0YXRlIGZvciB0aGUgY29ycmVzcG9uZGluZyBDUlRDIChp ZiB0aGUgY29ubmVjdG9yIGlzIGVuYWJsZWQpIGFuZAotICogdXBkYXRlcyBpdC4KKyAqICZkcm1f Y3J0Y19zdGF0ZS5hY3RpdmUgc3RhdGUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIENSVEMgKGlmIHRo ZSBjb25uZWN0b3IgaXMKKyAqIGVuYWJsZWQpIGFuZCB1cGRhdGVzIGl0LgogICoKICAqIFJldHVy bnM6CiAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gbnVtYmVycyBvbiBm YWlsdXJlLgpAQCAtMjk2NSwxMSArMjk3MSwxMSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfY29u bmVjdG9yX2RwbXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIEVYUE9SVF9TWU1C T0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMpOwogCiAvKioKLSAqIGRybV9hdG9t aWNfaGVscGVyX2Jlc3RfZW5jb2RlciAtIEhlbHBlciBmb3IgJmRybV9jb25uZWN0b3JfaGVscGVy X2Z1bmNzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPmJlc3RfZW5jb2Rl ciBjYWxsYmFjaworICogZHJtX2F0b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyIC0gSGVscGVyIGZv cgorICogCSZkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcy5iZXN0X2VuY29kZXIgY2FsbGJhY2sK ICAqIEBjb25uZWN0b3I6IENvbm5lY3RvciBjb250cm9sIHN0cnVjdHVyZQogICoKLSAqIFRoaXMg aXMgYSAmZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgLT5iZXN0X2VuY29kZXIgY2FsbGJhY2sg aGVscGVyIGZvcgorICogVGhpcyBpcyBhICZkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcy5iZXN0 X2VuY29kZXIgY2FsbGJhY2sgaGVscGVyIGZvcgogICogY29ubmVjdG9ycyB0aGF0IHN1cHBvcnQg ZXhhY3RseSAxIGVuY29kZXIsIHN0YXRpY2FsbHkgZGV0ZXJtaW5lZCBhdCBkcml2ZXIKICAqIGlu aXQgdGltZS4KICAqLwpAQCAtMzAwMyw3ICszMDA5LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRv bWljX2hlbHBlcl9iZXN0X2VuY29kZXIpOwogICovCiAKIC8qKgotICogZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19yZXNldCAtIGRlZmF1bHQgLT5yZXNldCBob29rIGZvciBDUlRDcworICogZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19yZXNldCAtIGRlZmF1bHQgJmRybV9jcnRjX2Z1bmNzLnJlc2V0IGhv b2sgZm9yIENSVENzCiAgKiBAY3J0YzogZHJtIENSVEMKICAqCiAgKiBSZXNldHMgdGhlIGF0b21p YyBzdGF0ZSBmb3IgQGNydGMgYnkgZnJlZWluZyB0aGUgc3RhdGUgcG9pbnRlciAod2hpY2ggbWln aHQKQEAgLTMxMTAsNyArMzExNiw3IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0 cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKTsKIAogLyoqCi0gKiBkcm1fYXRvbWljX2hlbHBl cl9wbGFuZV9yZXNldCAtIGRlZmF1bHQgLT5yZXNldCBob29rIGZvciBwbGFuZXMKKyAqIGRybV9h dG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0IC0gZGVmYXVsdCAmZHJtX3BsYW5lX2Z1bmNzLnJlc2V0 IGhvb2sgZm9yIHBsYW5lcwogICogQHBsYW5lOiBkcm0gcGxhbmUKICAqCiAgKiBSZXNldHMgdGhl IGF0b21pYyBzdGF0ZSBmb3IgQHBsYW5lIGJ5IGZyZWVpbmcgdGhlIHN0YXRlIHBvaW50ZXIgKHdo aWNoIG1pZ2h0CkBAIC0zMjE0LDggKzMyMjAsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNf aGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUpOwogICogQGNvbm5fc3RhdGU6IGNvbm5lY3RvciBz dGF0ZSB0byBhc3NpZ24KICAqCiAgKiBJbml0aWFsaXplcyB0aGUgbmV3bHkgYWxsb2NhdGVkIEBj b25uX3N0YXRlIGFuZCBhc3NpZ25zIGl0IHRvCi0gKiAjY29ubmVjdG9yIC0+c3RhdGUsIHVzdWFs bHkgcmVxdWlyZWQgd2hlbiBpbml0aWFsaXppbmcgdGhlIGRyaXZlcnMKLSAqIG9yIHdoZW4gY2Fs bGVkIGZyb20gdGhlIC0+cmVzZXQgaG9vay4KKyAqIHRoZSAmZHJtX2NvbmVjdG9yLT5zdGF0ZSBw b2ludGVyIG9mIEBjb25uZWN0b3IsIHVzdWFsbHkgcmVxdWlyZWQgd2hlbgorICogaW5pdGlhbGl6 aW5nIHRoZSBkcml2ZXJzIG9yIHdoZW4gY2FsbGVkIGZyb20gdGhlICZkcm1fY29ubmVjdG9yX2Z1 bmNzLnJlc2V0CisgKiBob29rLgogICoKICAqIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRo YXQgc3ViY2xhc3MgdGhlIGNvbm5lY3RvciBzdGF0ZS4KICAqLwpAQCAtMzIzMSw3ICszMjM4LDcg QEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfcmVzZXQpOwogCiAvKioKLSAqIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCAt IGRlZmF1bHQgLT5yZXNldCBob29rIGZvciBjb25uZWN0b3JzCisgKiBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfcmVzZXQgLSBkZWZhdWx0ICZkcm1fY29ubmVjdG9yX2Z1bmNzLnJlc2V0IGhv b2sgZm9yIGNvbm5lY3RvcnMKICAqIEBjb25uZWN0b3I6IGRybSBjb25uZWN0b3IKICAqCiAgKiBS ZXNldHMgdGhlIGF0b21pYyBzdGF0ZSBmb3IgQGNvbm5lY3RvciBieSBmcmVlaW5nIHRoZSBzdGF0 ZSBwb2ludGVyICh3aGljaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCmluZGV4IDFlMjgxZGQ0 MmU0Yi4uOGMxZTRkOTNhNGY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCkBAIC01Myw5 ICs1Myw5IEBACiAgKiBjb25maWd1cmF0aW9uIG9uIHJlc3VtZSB3aXRoIGRybV9oZWxwZXJfcmVz dW1lX2ZvcmNlX21vZGUoKS4KICAqCiAgKiBOb3RlIHRoYXQgdGhpcyBoZWxwZXIgbGlicmFyeSBk b2Vzbid0IHRyYWNrIHRoZSBjdXJyZW50IHBvd2VyIHN0YXRlIG9mIENSVENzCi0gKiBhbmQgZW5j b2RlcnMuIEl0IGNhbiBjYWxsIGNhbGxiYWNrcyBsaWtlIC0+ZHBtcygpIGV2ZW4gdGhvdWdoIHRo ZSBoYXJkd2FyZSBpcwotICogYWxyZWFkeSBpbiB0aGUgZGVzaXJlZCBzdGF0ZS4gVGhpcyBkZWZp Y2llbmN5IGhhcyBiZWVuIGZpeGVkIGluIHRoZSBhdG9taWMKLSAqIGhlbHBlcnMuCisgKiBhbmQg ZW5jb2RlcnMuIEl0IGNhbiBjYWxsIGNhbGxiYWNrcyBsaWtlICZkcm1fZW5jb2Rlcl9oZWxwZXJf ZnVuY3MuZHBtcyBldmVuCisgKiB0aG91Z2ggdGhlIGhhcmR3YXJlIGlzIGFscmVhZHkgaW4gdGhl IGRlc2lyZWQgc3RhdGUuIFRoaXMgZGVmaWNpZW5jeSBoYXMgYmVlbgorICogZml4ZWQgaW4gdGhl IGF0b21pYyBoZWxwZXJzLgogICoKICAqIFRoZSBkcml2ZXIgY2FsbGJhY2tzIGFyZSBtb3N0bHkg Y29tcGF0aWJsZSB3aXRoIHRoZSBhdG9taWMgbW9kZXNldCBoZWxwZXJzLAogICogZXhjZXB0IGZv ciB0aGUgaGFuZGxpbmcgb2YgdGhlIHByaW1hcnkgcGxhbmU6IEF0b21pYyBoZWxwZXJzIHJlcXVp cmUgdGhhdCB0aGUKQEAgLTQ3NywxMiArNDc3LDEyIEBAIGRybV9jcnRjX2hlbHBlcl9kaXNhYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKICAqIGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnIC0g c2V0IGEgbmV3IGNvbmZpZyBmcm9tIHVzZXJzcGFjZQogICogQHNldDogbW9kZSBzZXQgY29uZmln dXJhdGlvbgogICoKLSAqIFRoZSBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZygpIGhlbHBlciBm dW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBzZXRfY29uZmlnCi0gKiBjYWxsYmFjayBvZiAmc3RydWN0 IGRybV9jcnRjX2Z1bmNzIGZvciBkcml2ZXJzIHVzaW5nIHRoZSBsZWdhY3kgQ1JUQyBoZWxwZXJz LgorICogVGhlIGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnKCkgaGVscGVyIGZ1bmN0aW9uIGlt cGxlbWVudHMgdGhlIG9mCisgKiAmZHJtX2NydGNfZnVuY3Muc2V0X2NvbmZpZyBjYWxsYmFjayBm b3IgZHJpdmVycyB1c2luZyB0aGUgbGVnYWN5IENSVEMKKyAqIGhlbHBlcnMuCiAgKgogICogSXQg Zmlyc3QgdHJpZXMgdG8gbG9jYXRlIHRoZSBiZXN0IGVuY29kZXIgZm9yIGVhY2ggY29ubmVjdG9y IGJ5IGNhbGxpbmcgdGhlCi0gKiBjb25uZWN0b3IgLT5iZXN0X2VuY29kZXIoKSAoJnN0cnVjdCBk cm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcykgaGVscGVyCi0gKiBvcGVyYXRpb24uCisgKiBjb25u ZWN0b3IgQGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzLmJlc3RfZW5jb2RlciBoZWxwZXIgb3Bl cmF0aW9uLgogICoKICAqIEFmdGVyIGxvY2F0aW5nIHRoZSBhcHByb3ByaWF0ZSBlbmNvZGVycywg dGhlIGhlbHBlciBmdW5jdGlvbiB3aWxsIGNhbGwgdGhlCiAgKiBtb2RlX2ZpeHVwIGVuY29kZXIg YW5kIENSVEMgaGVscGVyIG9wZXJhdGlvbnMgdG8gYWRqdXN0IHRoZSByZXF1ZXN0ZWQgbW9kZSwK QEAgLTQ5Myw4ICs0OTMsNyBAQCBkcm1fY3J0Y19oZWxwZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCiAgKgogICogSWYgdGhlIGFkanVzdGVkIG1vZGUgaXMgaWRlbnRpY2FsIHRvIHRo ZSBjdXJyZW50IG1vZGUgYnV0IGNoYW5nZXMgdG8gdGhlCiAgKiBmcmFtZSBidWZmZXIgbmVlZCB0 byBiZSBhcHBsaWVkLCB0aGUgZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcoKSBmdW5jdGlvbgot ICogd2lsbCBjYWxsIHRoZSBDUlRDIC0+bW9kZV9zZXRfYmFzZSgpICgmc3RydWN0IGRybV9jcnRj X2hlbHBlcl9mdW5jcykgaGVscGVyCi0gKiBvcGVyYXRpb24uCisgKiB3aWxsIGNhbGwgdGhlIENS VEMgJmRybV9jcnRjX2hlbHBlcl9mdW5jcy5tb2RlX3NldF9iYXNlIGhlbHBlciBvcGVyYXRpb24u CiAgKgogICogSWYgdGhlIGFkanVzdGVkIG1vZGUgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IG1v ZGUsIG9yIGlmIHRoZQogICogLT5tb2RlX3NldF9iYXNlKCkgaGVscGVyIG9wZXJhdGlvbiBpcyBu b3QgcHJvdmlkZWQsIHRoZSBoZWxwZXIgZnVuY3Rpb24KQEAgLTg1MSwxNCArODUwLDE1IEBAIHN0 YXRpYyBpbnQgZHJtX2hlbHBlcl9jaG9vc2VfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKICAqIEBjb25uZWN0b3I6IGFmZmVjdGVkIGNvbm5lY3RvcgogICogQG1vZGU6IERQTVMgbW9k ZQogICoKLSAqIFRoZSBkcm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1zKCkgaGVscGVyIGZ1bmN0aW9u IGltcGxlbWVudHMgdGhlIC0+ZHBtcygpCi0gKiBjYWxsYmFjayBvZiAmc3RydWN0IGRybV9jb25u ZWN0b3JfZnVuY3MgZm9yIGRyaXZlcnMgdXNpbmcgdGhlIGxlZ2FjeSBDUlRDIGhlbHBlcnMuCisg KiBUaGUgZHJtX2hlbHBlcl9jb25uZWN0b3JfZHBtcygpIGhlbHBlciBmdW5jdGlvbiBpbXBsZW1l bnRzIHRoZQorICogJmRybV9jb25uZWN0b3JfZnVuY3MuZHBtcygpIGNhbGxiYWNrIGZvciBkcml2 ZXJzIHVzaW5nIHRoZSBsZWdhY3kgQ1JUQworICogaGVscGVycy4KICAqCiAgKiBUaGlzIGlzIHRo ZSBtYWluIGhlbHBlciBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgQ1JUQyBoZWxwZXIgZnJhbWV3 b3JrIGZvcgogICogaW1wbGVtZW50aW5nIHRoZSBEUE1TIGNvbm5lY3RvciBhdHRyaWJ1dGUuIEl0 IGNvbXB1dGVzIHRoZSBuZXcgZGVzaXJlZCBEUE1TCi0gKiBzdGF0ZSBmb3IgYWxsIGVuY29kZXJz IGFuZCBDUlRDcyBpbiB0aGUgb3V0cHV0IG1lc2ggYW5kIGNhbGxzIHRoZSAtPmRwbXMoKQotICog Y2FsbGJhY2tzIHByb3ZpZGVkIGJ5IHRoZSBkcml2ZXIgaW4gJnN0cnVjdCBkcm1fY3J0Y19oZWxw ZXJfZnVuY3MgYW5kIHN0cnVjdAotICogJmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBhcHByb3By aWF0ZWx5LgorICogc3RhdGUgZm9yIGFsbCBlbmNvZGVycyBhbmQgQ1JUQ3MgaW4gdGhlIG91dHB1 dCBtZXNoIGFuZCBjYWxscyB0aGUKKyAqICZkcm1fY3J0Y19oZWxwZXJfZnVuY3MuZHBtcyBhbmQg JmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5kcG1zIGNhbGxiYWNrcworICogcHJvdmlkZWQgYnkg dGhlIGRyaXZlci4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuICBOZXcgZHJp dmVycyBtdXN0IGltcGxlbWVudCBhdG9taWMgbW9kZXNldAogICogc3VwcG9ydCwgZm9yIHdoaWNo IHRoaXMgZnVuY3Rpb24gaXMgdW5zdWl0YWJsZS4gSW5zdGVhZCBkcml2ZXJzIHNob3VsZCB1c2UK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2RwX2hlbHBlci5jCmluZGV4IDNlNmZlODJjNmQ2NC4uNjg5MDhjMWQ1Y2ExIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHBfaGVscGVyLmMKQEAgLTcyNSw3ICs3MjUsNyBAQCBNT0RVTEVfUEFSTV9E RVNDKGRwX2F1eF9pMmNfc3BlZWRfa2h6LAogLyoKICAqIFRyYW5zZmVyIGEgc2luZ2xlIEkyQy1v dmVyLUFVWCBtZXNzYWdlIGFuZCBoYW5kbGUgdmFyaW91cyBlcnJvciBjb25kaXRpb25zLAogICog cmV0cnlpbmcgdGhlIHRyYW5zYWN0aW9uIGFzIGFwcHJvcHJpYXRlLiAgSXQgaXMgYXNzdW1lZCB0 aGF0IHRoZQotICogYXV4LT50cmFuc2ZlciBmdW5jdGlvbiBkb2VzIG5vdCBtb2RpZnkgYW55dGhp bmcgaW4gdGhlIG1zZyBvdGhlciB0aGFuIHRoZQorICogJmRybV9kcF9hdXgudHJhbnNmZXIgZnVu Y3Rpb24gZG9lcyBub3QgbW9kaWZ5IGFueXRoaW5nIGluIHRoZSBtc2cgb3RoZXIgdGhhbiB0aGUK ICAqIHJlcGx5IGZpZWxkLgogICoKICAqIFJldHVybnMgYnl0ZXMgdHJhbnNmZXJyZWQgb24gc3Vj Y2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYwppbmRleCAwYWI2YWFhY2I3ZDYuLmM3ZmFmYTE3NTc1NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zi X2hlbHBlci5jCkBAIC02NiwxMSArNjYsMTEgQEAgc3RhdGljIERFRklORV9NVVRFWChrZXJuZWxf ZmJfaGVscGVyX2xvY2spOwogICogVGVhcmRvd24gaXMgZG9uZSB3aXRoIGRybV9mYl9oZWxwZXJf ZmluaSgpLgogICoKICAqIEF0IHJ1bnRpbWUgZHJpdmVycyBzaG91bGQgcmVzdG9yZSB0aGUgZmJk ZXYgY29uc29sZSBieSBjYWxsaW5nCi0gKiBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9k ZV91bmxvY2tlZCgpIGZyb20gdGhlaXIgLT5sYXN0Y2xvc2UgY2FsbGJhY2suCi0gKiBUaGV5IHNo b3VsZCBhbHNvIG5vdGlmeSB0aGUgZmIgaGVscGVyIGNvZGUgZnJvbSB1cGRhdGVzIHRvIHRoZSBv dXRwdXQKLSAqIGNvbmZpZ3VyYXRpb24gYnkgY2FsbGluZyBkcm1fZmJfaGVscGVyX2hvdHBsdWdf ZXZlbnQoKS4gRm9yIGVhc2llcgorICogZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVf dW5sb2NrZWQoKSBmcm9tIHRoZWlyICZkcm1fZHJpdmVyLmxhc3RjbG9zZQorICogY2FsbGJhY2su ICBUaGV5IHNob3VsZCBhbHNvIG5vdGlmeSB0aGUgZmIgaGVscGVyIGNvZGUgZnJvbSB1cGRhdGVz IHRvIHRoZQorICogb3V0cHV0IGNvbmZpZ3VyYXRpb24gYnkgY2FsbGluZyBkcm1fZmJfaGVscGVy X2hvdHBsdWdfZXZlbnQoKS4gRm9yIGVhc2llcgogICogaW50ZWdyYXRpb24gd2l0aCB0aGUgb3V0 cHV0IHBvbGxpbmcgY29kZSBpbiBkcm1fY3J0Y19oZWxwZXIuYyB0aGUgbW9kZXNldAotICogY29k ZSBwcm92aWRlcyBhIC0+b3V0cHV0X3BvbGxfY2hhbmdlZCBjYWxsYmFjay4KKyAqIGNvZGUgcHJv dmlkZXMgYSAmZHJtX21vZGVfY29uZmlnX2Z1bmNzLm91dHB1dF9wb2xsX2NoYW5nZWQgY2FsbGJh Y2suCiAgKgogICogQWxsIG90aGVyIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGUgZmIgaGVscGVy IGxpYnJhcnkgY2FuIGJlIHVzZWQgdG8KICAqIGltcGxlbWVudCB0aGUgZmJkZXYgZHJpdmVyIGlu dGVyZmFjZSBieSB0aGUgZHJpdmVyLgpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgREVGSU5FX01V VEVYKGtlcm5lbF9mYl9oZWxwZXJfbG9jayk7CiAgKiBob3RwbHVnIGRldGVjdGlvbiB1c2luZyB0 aGUgZmJkZXYgaGVscGVycy4gVGhlIGRybV9mYl9oZWxwZXJfcHJlcGFyZSgpCiAgKiBoZWxwZXIg bXVzdCBiZSBjYWxsZWQgZmlyc3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWluaW11bSByZXF1aXJlZCB0 byBtYWtlCiAgKiBob3RwbHVnIGRldGVjdGlvbiB3b3JrLiBEcml2ZXJzIGFsc28gbmVlZCB0byBt YWtlIHN1cmUgdG8gcHJvcGVybHkgc2V0IHVwCi0gKiB0aGUgZGV2LT5tb2RlX2NvbmZpZy5mdW5j cyBtZW1iZXIuIEFmdGVyIGNhbGxpbmcgZHJtX2ttc19oZWxwZXJfcG9sbF9pbml0KCkKKyAqIHRo ZSAmZHJtX21vZGVfY29uZmlnLmZ1bmNzIG1lbWJlci4gQWZ0ZXIgY2FsbGluZyBkcm1fa21zX2hl bHBlcl9wb2xsX2luaXQoKQogICogaXQgaXMgc2FmZSB0byBlbmFibGUgaW50ZXJydXB0cyBhbmQg c3RhcnQgcHJvY2Vzc2luZyBob3RwbHVnIGV2ZW50cy4gQXQgdGhlCiAgKiBzYW1lIHRpbWUsIGRy aXZlcnMgc2hvdWxkIGluaXRpYWxpemUgYWxsIG1vZGVzZXQgb2JqZWN0cyBzdWNoIGFzIENSVENz LAogICogZW5jb2RlcnMgYW5kIGNvbm5lY3RvcnMuIFRvIGZpbmlzaCB1cCB0aGUgZmJkZXYgaGVs cGVyIGluaXRpYWxpemF0aW9uLCB0aGUKQEAgLTg4LDkgKzg4LDkgQEAgc3RhdGljIERFRklORV9N VVRFWChrZXJuZWxfZmJfaGVscGVyX2xvY2spOwogICogc2hvdWxkIGNhbGwgZHJtX2ZiX2hlbHBl cl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCkgZm9sbG93ZWQgYnkKICAqIGRybV9mYl9oZWxw ZXJfaW5pdGlhbF9jb25maWcoKS4KICAqCi0gKiBJZiAmZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIC0+ ZGlydHkgaXMgc2V0LCB0aGUKKyAqIElmICZkcm1fZnJhbWVidWZmZXJfZnVuY3MuZGlydHkgaXMg c2V0LCB0aGUKICAqIGRybV9mYl9oZWxwZXJfe2NmYixzeXN9X3t3cml0ZSxmaWxscmVjdCxjb3B5 YXJlYSxpbWFnZWJsaXR9IGZ1bmN0aW9ucyB3aWxsCi0gKiBhY2N1bXVsYXRlIGNoYW5nZXMgYW5k IHNjaGVkdWxlICZkcm1fZmJfaGVscGVyIC0+ZGlydHlfd29yayB0byBydW4gcmlnaHQKKyAqIGFj Y3VtdWxhdGUgY2hhbmdlcyBhbmQgc2NoZWR1bGUgJmRybV9mYl9oZWxwZXIuZGlydHlfd29yayB0 byBydW4gcmlnaHQKICAqIGF3YXkuIFRoaXMgd29ya2VyIHRoZW4gY2FsbHMgdGhlIGRpcnR5KCkg ZnVuY3Rpb24gZW5zdXJpbmcgdGhhdCBpdCB3aWxsCiAgKiBhbHdheXMgcnVuIGluIHByb2Nlc3Mg Y29udGV4dCBzaW5jZSB0aGUgZmJfKigpIGZ1bmN0aW9uIGNvdWxkIGJlIHJ1bm5pbmcgaW4KICAq IGF0b21pYyBjb250ZXh0LiBJZiBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvKCkgaXMgdXNlZCBh cyB0aGUgZGVmZXJyZWRfaW8KQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgdm9pZCBkcm1fZmJf aGVscGVyX3Jlc3RvcmVfbHV0X2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiAKIC8q KgotICogZHJtX2ZiX2hlbHBlcl9kZWJ1Z19lbnRlciAtIGltcGxlbWVudGF0aW9uIGZvciAtPmZi X2RlYnVnX2VudGVyCisgKiBkcm1fZmJfaGVscGVyX2RlYnVnX2VudGVyIC0gaW1wbGVtZW50YXRp b24gZm9yICZmYl9vcHMuZmJfZGVidWdfZW50ZXIKICAqIEBpbmZvOiBmYmRldiByZWdpc3RlcmVk IGJ5IHRoZSBoZWxwZXIKICAqLwogaW50IGRybV9mYl9oZWxwZXJfZGVidWdfZW50ZXIoc3RydWN0 IGZiX2luZm8gKmluZm8pCkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmRybV9tb2RlX2NvbmZpZ19mYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiAK IC8qKgotICogZHJtX2ZiX2hlbHBlcl9kZWJ1Z19sZWF2ZSAtIGltcGxlbWVudGF0aW9uIGZvciAt PmZiX2RlYnVnX2xlYXZlCisgKiBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlIC0gaW1wbGVtZW50 YXRpb24gZm9yICZmYl9vcHMuZmJfZGVidWdfbGVhdmUKICAqIEBpbmZvOiBmYmRldiByZWdpc3Rl cmVkIGJ5IHRoZSBoZWxwZXIKICAqLwogaW50IGRybV9mYl9oZWxwZXJfZGVidWdfbGVhdmUoc3Ry dWN0IGZiX2luZm8gKmluZm8pCkBAIC00NDUsNyArNDQ1LDcgQEAgc3RhdGljIGludCByZXN0b3Jl X2ZiZGV2X21vZGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKICAqIGRybV9mYl9o ZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkIC0gcmVzdG9yZSBmYmRldiBjb25maWd1 cmF0aW9uCiAgKiBAZmJfaGVscGVyOiBmYmNvbiB0byByZXN0b3JlCiAgKgotICogVGhpcyBzaG91 bGQgYmUgY2FsbGVkIGZyb20gZHJpdmVyJ3MgZHJtIC0+bGFzdGNsb3NlIGNhbGxiYWNrCisgKiBU aGlzIHNob3VsZCBiZSBjYWxsZWQgZnJvbSBkcml2ZXIncyBkcm0gJmRybV9kcml2ZXIubGFzdGNs b3NlIGNhbGxiYWNrCiAgKiB3aGVuIGltcGxlbWVudGluZyBhbiBmYmNvbiBvbiB0b3Agb2Yga21z IHVzaW5nIHRoaXMgaGVscGVyLiBUaGlzIGVuc3VyZXMgdGhhdAogICogdGhlIHVzZXIgaXNuJ3Qg Z3JlZXRlZCB3aXRoIGEgYmxhY2sgc2NyZWVuIHdoZW4gZS5nLiBYIGRpZXMuCiAgKgpAQCAtNTg1 LDcgKzU4NSw3IEBAIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5m byAqaW5mbywgaW50IGRwbXNfbW9kZSkKIH0KIAogLyoqCi0gKiBkcm1fZmJfaGVscGVyX2JsYW5r IC0gaW1wbGVtZW50YXRpb24gZm9yIC0+ZmJfYmxhbmsKKyAqIGRybV9mYl9oZWxwZXJfYmxhbmsg LSBpbXBsZW1lbnRhdGlvbiBmb3IgJmZiX29wcy5mYl9ibGFuawogICogQGJsYW5rOiBkZXNpcmVk IGJsYW5raW5nIHN0YXRlCiAgKiBAaW5mbzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVy CiAgKi8KQEAgLTkxMiw3ICs5MTIsNyBAQCBzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RpcnR5 KHN0cnVjdCBmYl9pbmZvICppbmZvLCB1MzIgeCwgdTMyIHksCiAgKiBAaW5mbzogZmJfaW5mbyBz dHJ1Y3QgcG9pbnRlcgogICogQHBhZ2VsaXN0OiBsaXN0IG9mIGRpcnR5IG1tYXAgZnJhbWVidWZm ZXIgcGFnZXMKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlICZmYl9kZWZlcnJl ZF9pbyAtPmRlZmVycmVkX2lvCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlICZmYl9k ZWZlcnJlZF9pby5kZWZlcnJlZF9pbwogICogY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGZsdXNoaW5n IHRoZSBmYmRldiBtbWFwIHdyaXRlcy4KICAqLwogdm9pZCBkcm1fZmJfaGVscGVyX2RlZmVycmVk X2lvKHN0cnVjdCBmYl9pbmZvICppbmZvLApAQCAtMTEwMyw3ICsxMTAzLDcgQEAgRVhQT1JUX1NZ TUJPTChkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKTsKICAqIGR1ZSB0byBhbGwgdGhlIHByaW50 ayBhY3Rpdml0eS4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUg dGltZXMgd2l0aCB0aGUgc2FtZSBzdGF0ZSBzaW5jZQotICogJmZiX2luZm8tPnN0YXRlIGlzIGNo ZWNrZWQgdG8gc2VlIGlmIGZiZGV2IGlzIHJ1bm5pbmcgb3Igbm90IGJlZm9yZSBsb2NraW5nLgor ICogJmZiX2luZm8uc3RhdGUgaXMgY2hlY2tlZCB0byBzZWUgaWYgZmJkZXYgaXMgcnVubmluZyBv ciBub3QgYmVmb3JlIGxvY2tpbmcuCiAgKgogICogVXNlIGRybV9mYl9oZWxwZXJfc2V0X3N1c3Bl bmQoKSBpZiB5b3UgbmVlZCB0byB0YWtlIHRoZSBsb2NrIHlvdXJzZWxmLgogICovCkBAIC0xMTgx LDcgKzExODEsNyBAQCBzdGF0aWMgaW50IHNldGNvbHJlZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IHUxNiByZWQsIHUxNiBncmVlbiwKIH0KIAogLyoqCi0gKiBkcm1fZmJfaGVscGVyX3NldGNtYXAg LSBpbXBsZW1lbnRhdGlvbiBmb3IgLT5mYl9zZXRjbWFwCisgKiBkcm1fZmJfaGVscGVyX3NldGNt YXAgLSBpbXBsZW1lbnRhdGlvbiBmb3IgJmZiX29wcy5mYl9zZXRjbWFwCiAgKiBAY21hcDogY21h cCB0byBzZXQKICAqIEBpbmZvOiBmYmRldiByZWdpc3RlcmVkIGJ5IHRoZSBoZWxwZXIKICAqLwpA QCAtMTIzOCw3ICsxMjM4LDcgQEAgaW50IGRybV9mYl9oZWxwZXJfc2V0Y21hcChzdHJ1Y3QgZmJf Y21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pCiBFWFBPUlRfU1lNQk9MKGRybV9mYl9o ZWxwZXJfc2V0Y21hcCk7CiAKIC8qKgotICogZHJtX2ZiX2hlbHBlcl9jaGVja192YXIgLSBpbXBs ZW1lbnRhdGlvbiBmb3IgLT5mYl9jaGVja192YXIKKyAqIGRybV9mYl9oZWxwZXJfY2hlY2tfdmFy IC0gaW1wbGVtZW50YXRpb24gZm9yICZmYl9vcHMuZmJfY2hlY2tfdmFyCiAgKiBAdmFyOiBzY3Jl ZW5pbmZvIHRvIGNoZWNrCiAgKiBAaW5mbzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVy CiAgKi8KQEAgLTEzMzgsNyArMTMzOCw3IEBAIGludCBkcm1fZmJfaGVscGVyX2NoZWNrX3Zhcihz dHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwKIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBl cl9jaGVja192YXIpOwogCiAvKioKLSAqIGRybV9mYl9oZWxwZXJfc2V0X3BhciAtIGltcGxlbWVu dGF0aW9uIGZvciAtPmZiX3NldF9wYXIKKyAqIGRybV9mYl9oZWxwZXJfc2V0X3BhciAtIGltcGxl bWVudGF0aW9uIGZvciAmZmJfb3BzLmZiX3NldF9wYXIKICAqIEBpbmZvOiBmYmRldiByZWdpc3Rl cmVkIGJ5IHRoZSBoZWxwZXIKICAqCiAgKiBUaGlzIHdpbGwgbGV0IGZiY29uIGRvIHRoZSBtb2Rl IGluaXQgYW5kIGlzIGNhbGxlZCBhdCBpbml0aWFsaXphdGlvbiB0aW1lIGJ5CkBAIC0xNDIyLDcg KzE0MjIsNyBAQCBzdGF0aWMgaW50IHBhbl9kaXNwbGF5X2F0b21pYyhzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gKnZhciwKIH0KIAogLyoqCi0gKiBkcm1fZmJfaGVscGVyX3Bhbl9kaXNwbGF5IC0g aW1wbGVtZW50YXRpb24gZm9yIC0+ZmJfcGFuX2Rpc3BsYXkKKyAqIGRybV9mYl9oZWxwZXJfcGFu X2Rpc3BsYXkgLSBpbXBsZW1lbnRhdGlvbiBmb3IgJmZiX29wcy5mYl9wYW5fZGlzcGxheQogICog QHZhcjogdXBkYXRlZCBzY3JlZW4gaW5mb3JtYXRpb24KICAqIEBpbmZvOiBmYmRldiByZWdpc3Rl cmVkIGJ5IHRoZSBoZWxwZXIKICAqLwpAQCAtMTYwNyw3ICsxNjA3LDcgQEAgc3RhdGljIGludCBk cm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyLAogICogYWRkaXRpb25hbCBjb25zdHJhaW50cyBuZWVkIHRvIHNldCB1cCB0aGVpciBvd24g bGltaXRzLgogICoKICAqIERyaXZlcnMgc2hvdWxkIGNhbGwgdGhpcyAob3IgdGhlaXIgZXF1aXZh bGVudCBzZXR1cCBjb2RlKSBmcm9tIHRoZWlyCi0gKiAtPmZiX3Byb2JlIGNhbGxiYWNrLgorICog JmRybV9mYl9oZWxwZXJfZnVuY3MuZmJfcHJvYmUgY2FsbGJhY2suCiAgKi8KIHZvaWQgZHJtX2Zi X2hlbHBlcl9maWxsX2ZpeChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdWludDMyX3QgcGl0Y2gsCiAJ CQkgICAgdWludDMyX3QgZGVwdGgpCkBAIC0xNjM2LDExICsxNjM2LDExIEBAIEVYUE9SVF9TWU1C T0woZHJtX2ZiX2hlbHBlcl9maWxsX2ZpeCk7CiAgKiBAZmJfaGVpZ2h0OiBkZXNpcmVkIGZiIGhl aWdodAogICoKICAqIFNldHMgdXAgdGhlIHZhcmlhYmxlIGZiZGV2IG1ldGFpbmZvcm1hdGlvbiBm cm9tIHRoZSBnaXZlbiBmYiBoZWxwZXIgaW5zdGFuY2UKLSAqIGFuZCB0aGUgZHJtIGZyYW1lYnVm ZmVyIGFsbG9jYXRlZCBpbiBmYl9oZWxwZXItPmZiLgorICogYW5kIHRoZSBkcm0gZnJhbWVidWZm ZXIgYWxsb2NhdGVkIGluICZkcm1fZmJfaGVscGVyLmZiLgogICoKICAqIERyaXZlcnMgc2hvdWxk IGNhbGwgdGhpcyAob3IgdGhlaXIgZXF1aXZhbGVudCBzZXR1cCBjb2RlKSBmcm9tIHRoZWlyCi0g KiAtPmZiX3Byb2JlIGNhbGxiYWNrIGFmdGVyIGhhdmluZyBhbGxvY2F0ZWQgdGhlIGZiZGV2IGJh Y2tpbmcKLSAqIHN0b3JhZ2UgZnJhbWVidWZmZXIuCisgKiAmZHJtX2ZiX2hlbHBlcl9mdW5jcy5m Yl9wcm9iZSBjYWxsYmFjayBhZnRlciBoYXZpbmcgYWxsb2NhdGVkIHRoZSBmYmRldgorICogYmFj a2luZyBzdG9yYWdlIGZyYW1lYnVmZmVyLgogICovCiB2b2lkIGRybV9mYl9oZWxwZXJfZmlsbF92 YXIoc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIs CiAJCQkgICAgdWludDMyX3QgZmJfd2lkdGgsIHVpbnQzMl90IGZiX2hlaWdodCkKQEAgLTIyMDcs OSArMjIwNyw5IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyLAogICogTm90ZSB0aGF0IHRoaXMgYWxzbyByZWdpc3RlcnMgdGhlIGZi ZGV2IGFuZCBzbyBhbGxvd3MgdXNlcnNwYWNlIHRvIGNhbGwgaW50bwogICogdGhlIGRyaXZlciB0 aHJvdWdoIHRoZSBmYmRldiBpbnRlcmZhY2VzLgogICoKLSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBj YWxsIGRvd24gaW50byB0aGUgLT5mYl9wcm9iZSBjYWxsYmFjayB0byBsZXQKLSAqIHRoZSBkcml2 ZXIgYWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIGZiZGV2IGluZm8gc3RydWN0dXJlIGFuZCB0 aGUgZHJtCi0gKiBmcmFtZWJ1ZmZlciB1c2VkIHRvIGJhY2sgdGhlIGZiZGV2LiBkcm1fZmJfaGVs cGVyX2ZpbGxfdmFyKCkgYW5kCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2FsbCBkb3duIGludG8g dGhlICZkcm1fZmJfaGVscGVyX2Z1bmNzLmZiX3Byb2JlIGNhbGxiYWNrCisgKiB0byBsZXQgdGhl IGRyaXZlciBhbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgZmJkZXYgaW5mbyBzdHJ1Y3R1cmUg YW5kIHRoZQorICogZHJtIGZyYW1lYnVmZmVyIHVzZWQgdG8gYmFjayB0aGUgZmJkZXYuIGRybV9m Yl9oZWxwZXJfZmlsbF92YXIoKSBhbmQKICAqIGRybV9mYl9oZWxwZXJfZmlsbF9maXgoKSBhcmUg cHJvdmlkZWQgYXMgaGVscGVycyB0byBzZXR1cCBzaW1wbGUgZGVmYXVsdAogICogdmFsdWVzIGZv ciB0aGUgZmJkZXYgaW5mbyBzdHJ1Y3R1cmUuCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9wbGFuZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVy LmMKaW5kZXggMzVkNDM2MDdhNDdkLi4xNDg2ODhmYjkyMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFu ZV9oZWxwZXIuYwpAQCAtMzksOSArMzksOSBAQAogICoKICAqIFRoaXMgaGVscGVyIGxpYnJhcnkg aGFzIHR3byBwYXJ0cy4gVGhlIGZpcnN0IHBhcnQgaGFzIHN1cHBvcnQgdG8gaW1wbGVtZW50CiAg KiBwcmltYXJ5IHBsYW5lIHN1cHBvcnQgb24gdG9wIG9mIHRoZSBub3JtYWwgQ1JUQyBjb25maWd1 cmF0aW9uIGludGVyZmFjZS4KLSAqIFNpbmNlIHRoZSBsZWdhY3kgLT5zZXRfY29uZmlnIGludGVy ZmFjZSB0aWVzIHRoZSBwcmltYXJ5IHBsYW5lIHRvZ2V0aGVyIHdpdGgKLSAqIHRoZSBDUlRDIHN0 YXRlIHRoaXMgZG9lcyBub3QgYWxsb3cgdXNlcnNwYWNlIHRvIGRpc2FibGUgdGhlIHByaW1hcnkg cGxhbmUKLSAqIGl0c2VsZi4gIFRvIGF2b2lkIHRvbyBtdWNoIGR1cGxpY2F0ZWQgY29kZSB1c2UK KyAqIFNpbmNlIHRoZSBsZWdhY3kgJmRybV9tb2RlX2NvbmZpZ19mdW5jcy5zZXRfY29uZmlnIGlu dGVyZmFjZSB0aWVzIHRoZSBwcmltYXJ5CisgKiBwbGFuZSB0b2dldGhlciB3aXRoIHRoZSBDUlRD IHN0YXRlIHRoaXMgZG9lcyBub3QgYWxsb3cgdXNlcnNwYWNlIHRvIGRpc2FibGUKKyAqIHRoZSBw cmltYXJ5IHBsYW5lIGl0c2VsZi4gIFRvIGF2b2lkIHRvbyBtdWNoIGR1cGxpY2F0ZWQgY29kZSB1 c2UKICAqIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgd2hpY2ggY2FuIGJlIHVzZWQg dG8gZW5mb3JjZSB0aGUgc2FtZQogICogcmVzdHJpY3Rpb25zIGFzIHByaW1hcnkgcGxhbmVzIGhh ZCB0aHVzLiBUaGUgZGVmYXVsdCBwcmltYXJ5IHBsYW5lIG9ubHkKICAqIGV4cG9zZSBYUkJHODg4 OCBhbmQgQVJHQjg4ODggYXMgdmFsaWQgcGl4ZWwgZm9ybWF0cyBmb3IgdGhlIGF0dGFjaGVkCkBA IC0zODQsNyArMzg0LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJpbWFyeV9oZWxwZXJfdXBkYXRl KTsKICAqIGlzIGNhbGxlZCBpbiByZXNwb25zZSB0byBhIHVzZXJzcGFjZSBTZXRQbGFuZSBvcGVy YXRpb24gb24gdGhlIHBsYW5lIHdpdGggYQogICogTlVMTCBmcmFtZWJ1ZmZlciBwYXJhbWV0ZXIu ICBJdCB1bmNvbmRpdGlvbmFsbHkgZmFpbHMgdGhlIGRpc2FibGUgY2FsbCB3aXRoCiAgKiAtRUlO VkFMIHRoZSBvbmx5IHdheSB0byBkaXNhYmxlIHRoZSBwcmltYXJ5IHBsYW5lIHdpdGhvdXQgZHJp dmVyIHN1cHBvcnQgaXMKLSAqIHRvIGRpc2FibGUgdGhlIGVudGllciBDUlRDLiBXaGljaCBkb2Vz IG5vdCBtYXRjaCB0aGUgcGxhbmUgLT5kaXNhYmxlIGhvb2suCisgKiB0byBkaXNhYmxlIHRoZSBl bnRpcmUgQ1JUQy4gV2hpY2ggZG9lcyBub3QgbWF0Y2ggdGhlIHBsYW5lCisgKiAmZHJtX3BsYW5l X2Z1bmNzLmRpc2FibGVfcGxhbmUgaG9vay4KICAqCiAgKiBOb3RlIHRoYXQgc29tZSBoYXJkd2Fy ZSBtYXkgYmUgYWJsZSB0byBkaXNhYmxlIHRoZSBwcmltYXJ5IHBsYW5lIHdpdGhvdXQKICAqIGRp c2FibGluZyB0aGUgd2hvbGUgQ1JUQy4gIERyaXZlcnMgZm9yIHN1Y2ggaGFyZHdhcmUgc2hvdWxk IHByb3ZpZGUgdGhlaXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCmluZGV4IDA0MWE1NTA0 NzgwZi4uOTMzODE0NTRiZGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2Jl X2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKQEAgLTQz LDcgKzQzLDcgQEAKICAqIERPQzogb3V0cHV0IHByb2JpbmcgaGVscGVyIG92ZXJ2aWV3CiAgKgog ICogVGhpcyBsaWJyYXJ5IHByb3ZpZGVzIHNvbWUgaGVscGVyIGNvZGUgZm9yIG91dHB1dCBwcm9i aW5nLiBJdCBwcm92aWRlcyBhbgotICogaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvcmUgY29ubmVj dG9yLT5maWxsX21vZGVzIGludGVyZmFjZSB3aXRoCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg Y29yZSAmZHJtX2Nvbm5lY3Rvcl9mdW5jcy5maWxsX21vZGVzIGludGVyZmFjZSB3aXRoCiAgKiBk cm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMuCiAgKgogICogSXQgYWxzbyBw cm92aWRlcyBzdXBwb3J0IGZvciBwb2xsaW5nIGNvbm5lY3RvcnMgd2l0aCBhIHdvcmsgaXRlbSBh bmQgZm9yCkBAIC0xODcsOSArMTg3LDkgQEAgZHJtX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKICAqIGJlIGFkZGVkIHRvIHRoZSBj b25uZWN0b3IncyBwcm9iZWRfbW9kZXMgbGlzdCwgdGhlbiBjdWxsZWQgKGJhc2VkIG9uIHZhbGlk aXR5CiAgKiBhbmQgdGhlIEBtYXhYLCBAbWF4WSBwYXJhbWV0ZXJzKSBhbmQgcHV0IGludG8gdGhl IG5vcm1hbCBtb2RlcyBsaXN0LgogICoKLSAqIEludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBnZW5l cmljIGltcGxlbWVudGF0aW9uIG9mIHRoZSAtPmZpbGxfbW9kZXMoKQotICogQGNvbm5lY3RvciB2 ZnVuYyBmb3IgZHJpdmVycyB0aGF0IHVzZSB0aGUgQ1JUQyBoZWxwZXJzIGZvciBvdXRwdXQgbW9k ZQotICogZmlsdGVyaW5nIGFuZCBkZXRlY3Rpb24uCisgKiBJbnRlbmRlZCB0byBiZSB1c2VkIGFz IGEgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAqICZkcm1fY29ubmVjdG9yX2Z1bmNz LmZpbGxfbW9kZXMoKSB2ZnVuYyBmb3IgZHJpdmVycyB0aGF0IHVzZSB0aGUgQ1JUQyBoZWxwZXJz CisgKiBmb3Igb3V0cHV0IG1vZGUgZmlsdGVyaW5nIGFuZCBkZXRlY3Rpb24uCiAgKgogICogVGhl IGJhc2ljIHByb2NlZHVyZSBpcyBhcyBmb2xsb3dzCiAgKgpAQCAtMjAxLDcgKzIwMSw3IEBAIGRy bV9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wg Zm9yY2UpCiAgKgogICogICAgLSBkZWJ1Z2ZzICdvdmVycmlkZV9lZGlkJyAodXNlZCBmb3IgdGVz dGluZyBvbmx5KQogICogICAgLSBmaXJtd2FyZSBFRElEIChkcm1fbG9hZF9lZGlkX2Zpcm13YXJl KCkpCi0gKiAgICAtIGNvbm5lY3RvciBoZWxwZXIgLT5nZXRfbW9kZXMoKSB2ZnVuYworICogICAg LSAmZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MuZ2V0X21vZGVzIHZmdW5jCiAgKiAgICAtIGlm IHRoZSBjb25uZWN0b3Igc3RhdHVzIGlzIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkLCBzdGFu ZGFyZAogICogICAgICBWRVNBIERNVCBtb2RlcyB1cCB0byAxMDI0eDc2OCBhcmUgYXV0b21hdGlj YWxseSBhZGRlZAogICogICAgICAoZHJtX2FkZF9tb2Rlc19ub2VkaWQoKSkKQEAgLTIyMiw4ICsy MjIsOCBAQCBkcm1fY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLCBib29sIGZvcmNlKQogICogICAgICAoaWYgc3BlY2lmaWVkKQogICogICAgLSBkcm1fbW9k ZV92YWxpZGF0ZV9mbGFnKCkgY2hlY2tzIHRoZSBtb2RlcyBhZ2FpbnQgYmFzaWMgY29ubmVjdG9y CiAgKiAgICAgIGNhcGFiaWxpdGVzIChpbnRlcmxhY2VfYWxsb3dlZCxkb3VibGVzY2FuX2FsbG93 ZWQsc3RlcmVvX2FsbG93ZWQpCi0gKiAgICAtIHRoZSBvcHRpb25hbCBjb25uZWN0b3IgLT5tb2Rl X3ZhbGlkKCkgaGVscGVyIGNhbiBwZXJmb3JtIGRyaXZlciBhbmQvb3IKLSAqICAgICAgaGFyZHdh cmUgc3BlY2lmaWMgY2hlY2tzCisgKiAgICAtIHRoZSBvcHRpb25hbCAmZHJtX2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3MubW9kZV92YWxpZCBoZWxwZXIgY2FuIHBlcmZvcm0KKyAqICAgICAgZHJpdmVy IGFuZC9vciBoYXJkd2FyZSBzcGVjaWZpYyBjaGVja3MKICAqCiAgKiA1LiBBbnkgbW9kZSB3aG9z ZSBzdGF0dXMgaXMgbm90IE9LIGlzIHBydW5lZCBmcm9tIHRoZSBjb25uZWN0b3IncyBtb2RlcyBs aXN0LAogICogICAgYWNjb21wYW5pZWQgYnkgYSBkZWJ1ZyBtZXNzYWdlIGluZGljYXRpbmcgdGhl IHJlYXNvbiBmb3IgdGhlIG1vZGUncwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKaW5kZXggOWFmY2Qz ODEwNzg1Li5kMDY2ZTk0OTFhZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNf aGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaApAQCAtMTc3LDcg KzE3Nyw4IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKICAqCiAgKiBUaGlzIGl0ZXJhdGVzIG92ZXIgdGhlIGN1cnJlbnQgc3Rh dGUsIHVzZWZ1bCAoZm9yIGV4YW1wbGUpIHdoZW4gYXBwbHlpbmcKICAqIGF0b21pYyBzdGF0ZSBh ZnRlciBpdCBoYXMgYmVlbiBjaGVja2VkIGFuZCBzd2FwcGVkLiAgVG8gaXRlcmF0ZSBvdmVyIHRo ZQotICogcGxhbmVzIHdoaWNoICp3aWxsKiBiZSBhdHRhY2hlZCAoZm9yIC0+YXRvbWljX2NoZWNr KCkpIHNlZQorICogcGxhbmVzIHdoaWNoICp3aWxsKiBiZSBhdHRhY2hlZCAobW9yZSB1c2VmdWwg aW4gY29kZSBjYWxsZWQgZnJvbQorICogJmRybV9tb2RlX2NvbmZpZ19mdW5jcy5hdG9taWNfY2hl Y2spIHNlZQogICogZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lKCkuCiAgKi8K ICNkZWZpbmUgZHJtX2F0b21pY19jcnRjX2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCBjcnRjKSBcCkBA IC0xODksOCArMTkwLDkgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQo c3RydWN0IGRybV9jcnRjICpjcnRjLAogICogQGNydGNfc3RhdGU6IHRoZSBpbmNvbWluZyBjcnRj LXN0YXRlCiAgKgogICogU2ltaWxhciB0byBkcm1fY3J0Y19mb3JfZWFjaF9wbGFuZSgpLCBidXQg aXRlcmF0ZXMgdGhlIHBsYW5lcyB0aGF0IHdpbGwgYmUKLSAqIGF0dGFjaGVkIGlmIHRoZSBzcGVj aWZpZWQgc3RhdGUgaXMgYXBwbGllZC4gIFVzZWZ1bCBkdXJpbmcgKGZvciBleGFtcGxlKQotICog LT5hdG9taWNfY2hlY2soKSBvcGVyYXRpb25zLCB0byB2YWxpZGF0ZSB0aGUgaW5jb21pbmcgc3Rh dGUuCisgKiBhdHRhY2hlZCBpZiB0aGUgc3BlY2lmaWVkIHN0YXRlIGlzIGFwcGxpZWQuICBVc2Vm dWwgZHVyaW5nIGZvciBleGFtcGxlCisgKiBpbiBjb2RlIGNhbGxlZCBmcm9tICZkcm1fbW9kZV9j b25maWdfZnVuY3MuYXRvbWljX2NoZWNrIG9wZXJhdGlvbnMsIHRvCisgKiB2YWxpZGF0ZSB0aGUg aW5jb21pbmcgc3RhdGUuCiAgKi8KICNkZWZpbmUgZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9l YWNoX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlKSBcCiAJZHJtX2Zvcl9lYWNoX3BsYW5lX21hc2so cGxhbmUsIChjcnRjX3N0YXRlKS0+c3RhdGUtPmRldiwgKGNydGNfc3RhdGUpLT5wbGFuZV9tYXNr KQpAQCAtMjAyLDggKzIwNCw5IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFf c2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKICAqIEBjcnRjX3N0YXRlOiB0aGUgaW5jb21pbmcg Y3J0Yy1zdGF0ZQogICoKICAqIFNpbWlsYXIgdG8gZHJtX2NydGNfZm9yX2VhY2hfcGxhbmUoKSwg YnV0IGl0ZXJhdGVzIHRoZSBwbGFuZXMgdGhhdCB3aWxsIGJlCi0gKiBhdHRhY2hlZCBpZiB0aGUg c3BlY2lmaWVkIHN0YXRlIGlzIGFwcGxpZWQuICBVc2VmdWwgZHVyaW5nIChmb3IgZXhhbXBsZSkK LSAqIC0+YXRvbWljX2NoZWNrKCkgb3BlcmF0aW9ucywgdG8gdmFsaWRhdGUgdGhlIGluY29taW5n IHN0YXRlLgorICogYXR0YWNoZWQgaWYgdGhlIHNwZWNpZmllZCBzdGF0ZSBpcyBhcHBsaWVkLiAg VXNlZnVsIGR1cmluZyBmb3IgZXhhbXBsZQorICogaW4gY29kZSBjYWxsZWQgZnJvbSAmZHJtX21v ZGVfY29uZmlnX2Z1bmNzLmF0b21pY19jaGVjayBvcGVyYXRpb25zLCB0bworICogdmFsaWRhdGUg dGhlIGluY29taW5nIHN0YXRlLgogICoKICAqIENvbXBhcmVkIHRvIGp1c3QgZHJtX2F0b21pY19j cnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lKCkgdGhpcyBhbHNvIGZpbGxzIGluIGEKICAqIGNvbnN0 IHBsYW5lX3N0YXRlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGEgZHJpdmVyIGp1c3Qgd2FudHMgdG8g cGVlayBhdCBvdGhlcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIu aCBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKaW5kZXggMDAzMjA3NjcwNTk3Li41 NTFmNTE5ZDg0YTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaApAQCAtNDkzLDggKzQ5Myw4IEBA IHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciB7CiAJaW50IHRvdGFsX3BibjsKIAogCS8q KgotCSAqIEBxbG9jazogcHJvdGVjdHMgQHR4X21zZ19kb3ducSwgdGhlIHR4X3Nsb3RzIGluIHN0 cnVjdAotCSAqICZkcm1fZHBfbXN0X2JyYW5jaCBhbmQgdHhtc2ctPnN0YXRlIG9uY2UgdGhleSBh cmUgcXVldWVkCisJICogQHFsb2NrOiBwcm90ZWN0cyBAdHhfbXNnX2Rvd25xLCB0aGUgJmRybV9k cF9tc3RfYnJhbmNoLnR4c2xvc3QgYW5kCisJICogJmRybV9kcF9zaWRlYmFuZF9tc2dfdHguc3Rh dGUgb25jZSB0aGV5IGFyZSBxdWV1ZWQKIAkgKi8KIAlzdHJ1Y3QgbXV0ZXggcWxvY2s7CiAJLyoq CkBAIC01MDgsOCArNTA4LDcgQEAgc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyIHsKIAlz dHJ1Y3QgbXV0ZXggcGF5bG9hZF9sb2NrOwogCS8qKgogCSAqIEBwcm9wb3NlZF92Y3BpczogQXJy YXkgb2YgcG9pbnRlcnMgZm9yIHRoZSBuZXcgVkNQSSBhbGxvY2F0aW9uLiBUaGUKLQkgKiBWQ1BJ IHN0cnVjdHVyZSBpdHNlbGYgaXMgZW1iZWRkZWQgaW50byB0aGUgY29ycmVzcG9uZGluZwotCSAq ICZkcm1fZHBfbXN0X3BvcnQgc3RydWN0dXJlLgorCSAqIFZDUEkgc3RydWN0dXJlIGl0c2VsZiBp cyAmZHJtX2RwX21zdF9wb3J0LnZjcGkuCiAJICovCiAJc3RydWN0IGRybV9kcF92Y3BpICoqcHJv cG9zZWRfdmNwaXM7CiAJLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmxpcF93b3Jr LmggYi9pbmNsdWRlL2RybS9kcm1fZmxpcF93b3JrLmgKaW5kZXggZDM4N2NmMDZhZTA1Li4yMWMz ZDUxMmQyNWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9mbGlwX3dvcmsuaAorKysgYi9p bmNsdWRlL2RybS9kcm1fZmxpcF93b3JrLmgKQEAgLTU0LDcgKzU0LDcgQEAgdHlwZWRlZiB2b2lk ICgqZHJtX2ZsaXBfZnVuY190KShzdHJ1Y3QgZHJtX2ZsaXBfd29yayAqd29yaywgdm9pZCAqdmFs KTsKIC8qKgogICogc3RydWN0IGRybV9mbGlwX3Rhc2sgLSBmbGlwIHdvcmsgdGFzawogICogQG5v ZGU6IGxpc3QgZW50cnkgZWxlbWVudAotICogQGRhdGE6IGRhdGEgdG8gcGFzcyB0byB3b3JrLT5m dW5jCisgKiBAZGF0YTogZGF0YSB0byBwYXNzIHRvICZkcm1fZmxpcF93b3JrLmZ1bmMKICAqLwog c3RydWN0IGRybV9mbGlwX3Rhc2sgewogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmggYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCmluZGV4IDQ2ZjViMzQ5ZjA1OS4uMDkxYzQy MjA1NjY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxl cy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKQEAgLTEx MSw5ICsxMTEsOSBAQCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHsKIAkgKiBUaGlzIGNh bGxiYWNrIGlzIHVzZWQgdG8gdmFsaWRhdGUgYSBtb2RlLiBUaGUgcGFyYW1ldGVyIG1vZGUgaXMg dGhlCiAJICogZGlzcGxheSBtb2RlIHRoYXQgdXNlcnNwYWNlIHJlcXVlc3RlZCwgYWRqdXN0ZWRf bW9kZSBpcyB0aGUgbW9kZSB0aGUKIAkgKiBlbmNvZGVycyBuZWVkIHRvIGJlIGZlZCB3aXRoLiBO b3RlIHRoYXQgdGhpcyBpcyB0aGUgaW52ZXJzZSBzZW1hbnRpY3MKLQkgKiBvZiB0aGUgbWVhbmlu ZyBmb3IgdGhlICZkcm1fZW5jb2RlciBhbmQgJmRybV9icmlkZ2UKLQkgKiAtPm1vZGVfZml4dXAo KSBmdW5jdGlvbnMuIElmIHRoZSBDUlRDIGNhbm5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQKLQkg KiBjb252ZXJzaW9uIGZyb20gbW9kZSB0byBhZGp1c3RlZF9tb2RlIGl0IHNob3VsZCByZWplY3Qg dGhlIG1vZGVzZXQuCisJICogb2YgdGhlIG1lYW5pbmcgZm9yIHRoZSAmZHJtX2VuY29kZXIgYW5k ICZkcm1fYnJpZGdlX2Z1bmNzLm1vZGVfZml4dXAKKwkgKiB2ZnVuYy4gSWYgdGhlIENSVEMgY2Fu bm90IHN1cHBvcnQgdGhlIHJlcXVlc3RlZCBjb252ZXJzaW9uIGZyb20gbW9kZQorCSAqIHRvIGFk anVzdGVkX21vZGUgaXQgc2hvdWxkIHJlamVjdCB0aGUgbW9kZXNldC4KIAkgKgogCSAqIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCBieSBib3RoIGxlZ2FjeSBDUlRDIGhlbHBlcnMgYW5kIGF0b21pYyBo ZWxwZXJzLgogCSAqIFdpdGggYXRvbWljIGhlbHBlcnMgaXQgaXMgb3B0aW9uYWwuCkBAIC0xMzQs MTcgKzEzNCwxOCBAQCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHsKIAkgKgogCSAqIEFs c28gYmV3YXJlIHRoYXQgbmVpdGhlciBjb3JlIG5vciBoZWxwZXJzIGZpbHRlciBtb2RlcyBiZWZv cmUKIAkgKiBwYXNzaW5nIHRoZW0gdG8gdGhlIGRyaXZlcjogV2hpbGUgdGhlIGxpc3Qgb2YgbW9k ZXMgdGhhdCBpcwotCSAqIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGlzIGZpbHRlcmVkIHVzaW5n IHRoZSBjb25uZWN0b3IncwotCSAqIC0+bW9kZV92YWxpZCgpIGNhbGxiYWNrLCBuZWl0aGVyIHRo ZSBjb3JlIG5vciB0aGUgaGVscGVycyBkbyBhbnkKLQkgKiBmaWx0ZXJpbmcgb24gbW9kZXMgcGFz c2VkIGluIGZyb20gdXNlcnNwYWNlIHdoZW4gc2V0dGluZyBhIG1vZGUuIEl0Ci0JICogaXMgdGhl cmVmb3JlIHBvc3NpYmxlIGZvciB1c2Vyc3BhY2UgdG8gcGFzcyBpbiBhIG1vZGUgdGhhdCB3YXMK LQkgKiBwcmV2aW91c2x5IGZpbHRlcmVkIG91dCB1c2luZyAtPm1vZGVfdmFsaWQoKSBvciBhZGQg YSBjdXN0b20gbW9kZQotCSAqIHRoYXQgd2Fzbid0IHByb2JlZCBmcm9tIEVESUQgb3Igc2ltaWxh ciB0byBiZWdpbiB3aXRoLiAgRXZlbiB0aG91Z2gKLQkgKiB0aGlzIGlzIGFuIGFkdmFuY2VkIGZl YXR1cmUgYW5kIHJhcmVseSB1c2VkIG5vd2FkYXlzLCBzb21lIHVzZXJzIHJlbHkKLQkgKiBvbiBi ZWluZyBhYmxlIHRvIHNwZWNpZnkgbW9kZXMgbWFudWFsbHkgc28gZHJpdmVycyBtdXN0IGJlIHBy ZXBhcmVkCi0JICogdG8gZGVhbCB3aXRoIGl0LiBTcGVjaWZpY2FsbHkgdGhpcyBtZWFucyB0aGF0 IGFsbCBkcml2ZXJzIG5lZWQgbm90Ci0JICogb25seSB2YWxpZGF0ZSBtb2RlcyBpbiAtPm1vZGVf dmFsaWQoKSBidXQgYWxzbyBpbiAtPm1vZGVfZml4dXAoKSB0bwotCSAqIG1ha2Ugc3VyZSBpbnZh bGlkIG1vZGVzIHBhc3NlZCBpbiBmcm9tIHVzZXJzcGFjZSBhcmUgcmVqZWN0ZWQuCisJICogYWR2 ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgaXMgZmlsdGVyZWQgdXNpbmcgdGhlCisJICogJmRybV9jb25u ZWN0b3IubW9kZV92YWxpZCBjYWxsYmFjaywgbmVpdGhlciB0aGUgY29yZSBub3IgdGhlIGhlbHBl cnMKKwkgKiBkbyBhbnkgZmlsdGVyaW5nIG9uIG1vZGVzIHBhc3NlZCBpbiBmcm9tIHVzZXJzcGFj ZSB3aGVuIHNldHRpbmcgYQorCSAqIG1vZGUuIEl0IGlzIHRoZXJlZm9yZSBwb3NzaWJsZSBmb3Ig dXNlcnNwYWNlIHRvIHBhc3MgaW4gYSBtb2RlIHRoYXQKKwkgKiB3YXMgcHJldmlvdXNseSBmaWx0 ZXJlZCBvdXQgdXNpbmcgJmRybV9jb25uZWN0b3IubW9kZV92YWxpZCBvciBhZGQgYQorCSAqIGN1 c3RvbSBtb2RlIHRoYXQgd2Fzbid0IHByb2JlZCBmcm9tIEVESUQgb3Igc2ltaWxhciB0byBiZWdp biB3aXRoLgorCSAqIEV2ZW4gdGhvdWdoIHRoaXMgaXMgYW4gYWR2YW5jZWQgZmVhdHVyZSBhbmQg cmFyZWx5IHVzZWQgbm93YWRheXMsCisJICogc29tZSB1c2VycyByZWx5IG9uIGJlaW5nIGFibGUg dG8gc3BlY2lmeSBtb2RlcyBtYW51YWxseSBzbyBkcml2ZXJzCisJICogbXVzdCBiZSBwcmVwYXJl ZCB0byBkZWFsIHdpdGggaXQuIFNwZWNpZmljYWxseSB0aGlzIG1lYW5zIHRoYXQgYWxsCisJICog ZHJpdmVycyBuZWVkIG5vdCBvbmx5IHZhbGlkYXRlIG1vZGVzIGluICZkcm1fY29ubmVjdG9yLm1v ZGVfdmFsaWQgYnV0CisJICogYWxzbyBpbiB0aGlzIG9yIGluIHRoZSAmZHJtX2VuY29kZXJfaGVs cGVyX2Z1bmNzLm1vZGVfZml4dXAgY2FsbGJhY2sKKwkgKiB0byBtYWtlIHN1cmUgaW52YWxpZCBt b2RlcyBwYXNzZWQgaW4gZnJvbSB1c2Vyc3BhY2UgYXJlIHJlamVjdGVkLgogCSAqCiAJICogUkVU VVJOUzoKIAkgKgpAQCAtMjA1LDcgKzIwNiw3IEBAIHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3MgewogCSAqIG9wdGltaXplZCBmYXN0LXBhdGggaW5zdGVhZCBvZiBhIGZ1bGwgbW9kZSBzZXQg b3BlcmF0aW9uIHdpdGggYWxsIHRoZQogCSAqIHJlc3VsdGluZyBmbGlja2VyaW5nLiBJZiBpdCBp cyBub3QgcHJlc2VudAogCSAqIGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnKCkgd2lsbCBmYWxs IGJhY2sgdG8gYSBmdWxsIG1vZGVzZXQsIHVzaW5nCi0JICogdGhlIC0+bW9kZV9zZXQoKSBjYWxs YmFjay4gU2luY2UgaXQgY2FuJ3QgdXBkYXRlIG90aGVyIHBsYW5lcyBpdCdzCisJICogdGhlIEBt b2RlX3NldCBjYWxsYmFjay4gU2luY2UgaXQgY2FuJ3QgdXBkYXRlIG90aGVyIHBsYW5lcyBpdCdz CiAJICogaW5jb21wYXRpYmxlIHdpdGggYXRvbWljIG1vZGVzZXQgc3VwcG9ydC4KIAkgKgogCSAq IFRoaXMgY2FsbGJhY2sgaXMgb25seSB1c2VkIGJ5IHRoZSBDUlRDIGhlbHBlcnMgYW5kIGRlcHJl Y2F0ZWQuCkBAIC0yMzgsOCArMjM5LDcgQEAgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB7 CiAJLyoqCiAJICogQGxvYWRfbHV0OgogCSAqCi0JICogTG9hZCBhIExVVCBwcmVwYXJlZCB3aXRo IHRoZSBAZ2FtbWFfc2V0IGZ1bmN0aW9ucyBmcm9tCi0JICogJmRybV9mYl9oZWxwZXJfZnVuY3Mu CisJICogTG9hZCBhIExVVCBwcmVwYXJlZCB3aXRoIHRoZSAmZHJtX2ZiX2hlbHBlcl9mdW5jcy5n YW1tYV9zZXQgdmZ1bmMuCiAJICoKIAkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsIGFuZCBp cyBvbmx5IHVzZWQgYnkgdGhlIGZiZGV2IGVtdWxhdGlvbgogCSAqIGhlbHBlcnMuCkBAIC0yNTcs MTAgKzI1NywxMSBAQCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHsKIAkgKgogCSAqIFRo aXMgY2FsbGJhY2sgc2hvdWxkIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgQ1JUQy4gV2l0aCB0aGUg YXRvbWljCiAJICogZHJpdmVycyBpdCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIGVuY29kZXJzIGNvbm5l Y3RlZCB0byB0aGlzIENSVEMgaGF2ZQotCSAqIGJlZW4gc2h1dCBvZmYgYWxyZWFkeSB1c2luZyB0 aGVpciBvd24gLT5kaXNhYmxlIGhvb2suIElmIHRoYXQKLQkgKiBzZXF1ZW5jZSBpcyB0b28gc2lt cGxlIGRyaXZlcnMgY2FuIGp1c3QgYWRkIHRoZWlyIG93biBob29rcyBhbmQgY2FsbAotCSAqIGl0 IGZyb20gdGhpcyBDUlRDIGNhbGxiYWNrIGhlcmUgYnkgbG9vcGluZyBvdmVyIGFsbCBlbmNvZGVy cwotCSAqIGNvbm5lY3RlZCB0byBpdCB1c2luZyBmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoKS4K KwkgKiBiZWVuIHNodXQgb2ZmIGFscmVhZHkgdXNpbmcgdGhlaXIgb3duCisJICogJmRybV9lbmNv ZGVyX2hlbHBlcl9mdW5jcy5kaXNhYmxlIGhvb2suIElmIHRoYXQgc2VxdWVuY2UgaXMgdG9vCisJ ICogc2ltcGxlIGRyaXZlcnMgY2FuIGp1c3QgYWRkIHRoZWlyIG93biBob29rcyBhbmQgY2FsbCBp dCBmcm9tIHRoaXMKKwkgKiBDUlRDIGNhbGxiYWNrIGhlcmUgYnkgbG9vcGluZyBvdmVyIGFsbCBl bmNvZGVycyBjb25uZWN0ZWQgdG8gaXQgdXNpbmcKKwkgKiBmb3JfZWFjaF9lbmNvZGVyX29uX2Ny dGMoKS4KIAkgKgogCSAqIFRoaXMgaG9vayBpcyB1c2VkIGJvdGggYnkgbGVnYWN5IENSVEMgaGVs cGVycyBhbmQgYXRvbWljIGhlbHBlcnMuCiAJICogQXRvbWljIGRyaXZlcnMgZG9uJ3QgbmVlZCB0 byBpbXBsZW1lbnQgaXQgaWYgdGhlcmUncyBubyBuZWVkIHRvCkBAIC0yODksMTAgKzI5MCwxMCBA QCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHsKIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sg c2hvdWxkIGJlIHVzZWQgdG8gZW5hYmxlIHRoZSBDUlRDLiBXaXRoIHRoZSBhdG9taWMKIAkgKiBk cml2ZXJzIGl0IGlzIGNhbGxlZCBiZWZvcmUgYWxsIGVuY29kZXJzIGNvbm5lY3RlZCB0byB0aGlz IENSVEMgYXJlCi0JICogZW5hYmxlZCB0aHJvdWdoIHRoZSBlbmNvZGVyJ3Mgb3duIC0+ZW5hYmxl IGhvb2suICBJZiB0aGF0IHNlcXVlbmNlIGlzCi0JICogdG9vIHNpbXBsZSBkcml2ZXJzIGNhbiBq dXN0IGFkZCB0aGVpciBvd24gaG9va3MgYW5kIGNhbGwgaXQgZnJvbSB0aGlzCi0JICogQ1JUQyBj YWxsYmFjayBoZXJlIGJ5IGxvb3Bpbmcgb3ZlciBhbGwgZW5jb2RlcnMgY29ubmVjdGVkIHRvIGl0 IHVzaW5nCi0JICogZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKCkuCisJICogZW5hYmxlZCB0aHJv dWdoIHRoZSBlbmNvZGVyJ3Mgb3duICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuZW5hYmxlCisJ ICogaG9vay4gIElmIHRoYXQgc2VxdWVuY2UgaXMgdG9vIHNpbXBsZSBkcml2ZXJzIGNhbiBqdXN0 IGFkZCB0aGVpciBvd24KKwkgKiBob29rcyBhbmQgY2FsbCBpdCBmcm9tIHRoaXMgQ1JUQyBjYWxs YmFjayBoZXJlIGJ5IGxvb3Bpbmcgb3ZlciBhbGwKKwkgKiBlbmNvZGVycyBjb25uZWN0ZWQgdG8g aXQgdXNpbmcgZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKCkuCiAJICoKIAkgKiBUaGlzIGhvb2sg aXMgdXNlZCBvbmx5IGJ5IGF0b21pYyBoZWxwZXJzLCBmb3Igc3ltbWV0cnkgd2l0aCBAZGlzYWJs ZS4KIAkgKiBBdG9taWMgZHJpdmVycyBkb24ndCBuZWVkIHRvIGltcGxlbWVudCBpdCBpZiB0aGVy ZSdzIG5vIG5lZWQgdG8KQEAgLTMxNiwxNiArMzE3LDE2IEBAIHN0cnVjdCBkcm1fY3J0Y19oZWxw ZXJfZnVuY3MgewogCSAqIGJlZm9yZWhhbmQuIFRoaXMgaXMgY2FsbGluZyBvcmRlciB1c2VkIGJ5 IHRoZSBkZWZhdWx0IGhlbHBlcgogCSAqIGltcGxlbWVudGF0aW9uIGluIGRybV9hdG9taWNfaGVs cGVyX2NoZWNrKCkuCiAJICoKLQkgKiBXaGVuIHVzaW5nIGRybV9hdG9taWNfaGVscGVyX2NoZWNr X3BsYW5lcygpIENSVENzJyAtPmF0b21pY19jaGVjaygpCi0JICogaG9va3MgYXJlIGNhbGxlZCBh ZnRlciB0aGUgb25lcyBmb3IgcGxhbmVzLCB3aGljaCBhbGxvd3MgZHJpdmVycyB0bwotCSAqIGFz c2lnbiBzaGFyZWQgcmVzb3VyY2VzIHJlcXVlc3RlZCBieSBwbGFuZXMgaW4gdGhlIENSVEMgY2Fs bGJhY2sKLQkgKiBoZXJlLiBGb3IgbW9yZSBjb21wbGljYXRlZCBkZXBlbmRlbmNpZXMgdGhlIGRy aXZlciBjYW4gY2FsbCB0aGUgcHJvdmlkZWQKLQkgKiBjaGVjayBoZWxwZXJzIG11bHRpcGxlIHRp bWVzIHVudGlsIHRoZSBjb21wdXRlZCBzdGF0ZSBoYXMgYSBmaW5hbAotCSAqIGNvbmZpZ3VyYXRp b24gYW5kIGV2ZXJ5dGhpbmcgaGFzIGJlZW4gY2hlY2tlZC4KKwkgKiBXaGVuIHVzaW5nIGRybV9h dG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcygpIHRoaXMgaG9vayBpcyBjYWxsZWQKKwkgKiBhZnRl ciB0aGUgJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MuYXRvbWNfY2hlY2sgaG9vayBmb3IgcGxhbmVz LCB3aGljaAorCSAqIGFsbG93cyBkcml2ZXJzIHRvIGFzc2lnbiBzaGFyZWQgcmVzb3VyY2VzIHJl cXVlc3RlZCBieSBwbGFuZXMgaW4gdGhpcworCSAqIGNhbGxiYWNrIGhlcmUuIEZvciBtb3JlIGNv bXBsaWNhdGVkIGRlcGVuZGVuY2llcyB0aGUgZHJpdmVyIGNhbiBjYWxsCisJICogdGhlIHByb3Zp ZGVkIGNoZWNrIGhlbHBlcnMgbXVsdGlwbGUgdGltZXMgdW50aWwgdGhlIGNvbXB1dGVkIHN0YXRl CisJICogaGFzIGEgZmluYWwgY29uZmlndXJhdGlvbiBhbmQgZXZlcnl0aGluZyBoYXMgYmVlbiBj aGVja2VkLgogCSAqCiAJICogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGFsbG93ZWQgdG8gaW5zcGVj dCBhbnkgb3RoZXIgb2JqZWN0J3Mgc3RhdGUgYW5kCiAJICogY2FuIGFkZCBtb3JlIHN0YXRlIG9i amVjdHMgdG8gdGhlIGF0b21pYyBjb21taXQgaWYgbmVlZGVkLiBDYXJlIG11c3QKLQkgKiBiZSB0 YWtlbiB0aG91Z2ggdG8gZW5zdXJlIHRoYXQgc3RhdGUgY2hlY2smY29tcHV0ZSBmdW5jdGlvbnMg Zm9yCisJICogYmUgdGFrZW4gdGhvdWdoIHRvIGVuc3VyZSB0aGF0IHN0YXRlIGNoZWNrIGFuZCBj b21wdXRlIGZ1bmN0aW9ucyBmb3IKIAkgKiB0aGVzZSBhZGRlZCBzdGF0ZXMgYXJlIGFsbCBjYWxs ZWQsIGFuZCBkZXJpdmVkIHN0YXRlIGluIG90aGVyIG9iamVjdHMKIAkgKiBhbGwgdXBkYXRlZC4g QWdhaW4gdGhlIHJlY29tbWVuZGF0aW9uIGlzIHRvIGp1c3QgY2FsbCBjaGVjayBoZWxwZXJzCiAJ ICogdW50aWwgYSBtYXhpbWFsIGNvbmZpZ3VyYXRpb24gaXMgcmVhY2hlZC4KQEAgLTQwMCwxMCAr NDAxLDExIEBAIHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgewogCSAqCiAJICogVGhpcyBj YWxsYmFjayBzaG91bGQgYmUgdXNlZCB0byBkaXNhYmxlIHRoZSBDUlRDLiBXaXRoIHRoZSBhdG9t aWMKIAkgKiBkcml2ZXJzIGl0IGlzIGNhbGxlZCBhZnRlciBhbGwgZW5jb2RlcnMgY29ubmVjdGVk IHRvIHRoaXMgQ1JUQyBoYXZlCi0JICogYmVlbiBzaHV0IG9mZiBhbHJlYWR5IHVzaW5nIHRoZWly IG93biAtPmRpc2FibGUgaG9vay4gSWYgdGhhdAotCSAqIHNlcXVlbmNlIGlzIHRvbyBzaW1wbGUg ZHJpdmVycyBjYW4ganVzdCBhZGQgdGhlaXIgb3duIGhvb2tzIGFuZCBjYWxsCi0JICogaXQgZnJv bSB0aGlzIENSVEMgY2FsbGJhY2sgaGVyZSBieSBsb29waW5nIG92ZXIgYWxsIGVuY29kZXJzCi0J ICogY29ubmVjdGVkIHRvIGl0IHVzaW5nIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0YygpLgorCSAq IGJlZW4gc2h1dCBvZmYgYWxyZWFkeSB1c2luZyB0aGVpciBvd24KKwkgKiAmZHJtX2VuY29kZXJf aGVscGVyX2Z1bmNzLmRpc2FibGUgaG9vay4gSWYgdGhhdCBzZXF1ZW5jZSBpcyB0b28KKwkgKiBz aW1wbGUgZHJpdmVycyBjYW4ganVzdCBhZGQgdGhlaXIgb3duIGhvb2tzIGFuZCBjYWxsIGl0IGZy b20gdGhpcworCSAqIENSVEMgY2FsbGJhY2sgaGVyZSBieSBsb29waW5nIG92ZXIgYWxsIGVuY29k ZXJzIGNvbm5lY3RlZCB0byBpdCB1c2luZworCSAqIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0Yygp LgogCSAqCiAJICogVGhpcyBob29rIGlzIHVzZWQgb25seSBieSBhdG9taWMgaGVscGVycy4gQXRv bWljIGRyaXZlcnMgZG9uJ3QKIAkgKiBuZWVkIHRvIGltcGxlbWVudCBpdCBpZiB0aGVyZSdzIG5v IG5lZWQgdG8gZGlzYWJsZSBhbnl0aGluZyBhdCB0aGUKQEAgLTQ4MywxNiArNDg1LDE4IEBAIHN0 cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgewogCSAqIEFsc28gYmV3YXJlIHRoYXQgbmVp dGhlciBjb3JlIG5vciBoZWxwZXJzIGZpbHRlciBtb2RlcyBiZWZvcmUKIAkgKiBwYXNzaW5nIHRo ZW0gdG8gdGhlIGRyaXZlcjogV2hpbGUgdGhlIGxpc3Qgb2YgbW9kZXMgdGhhdCBpcwogCSAqIGFk dmVydGlzZWQgdG8gdXNlcnNwYWNlIGlzIGZpbHRlcmVkIHVzaW5nIHRoZSBjb25uZWN0b3Incwot CSAqIC0+bW9kZV92YWxpZCgpIGNhbGxiYWNrLCBuZWl0aGVyIHRoZSBjb3JlIG5vciB0aGUgaGVs cGVycyBkbyBhbnkKLQkgKiBmaWx0ZXJpbmcgb24gbW9kZXMgcGFzc2VkIGluIGZyb20gdXNlcnNw YWNlIHdoZW4gc2V0dGluZyBhIG1vZGUuIEl0Ci0JICogaXMgdGhlcmVmb3JlIHBvc3NpYmxlIGZv ciB1c2Vyc3BhY2UgdG8gcGFzcyBpbiBhIG1vZGUgdGhhdCB3YXMKLQkgKiBwcmV2aW91c2x5IGZp bHRlcmVkIG91dCB1c2luZyAtPm1vZGVfdmFsaWQoKSBvciBhZGQgYSBjdXN0b20gbW9kZQotCSAq IHRoYXQgd2Fzbid0IHByb2JlZCBmcm9tIEVESUQgb3Igc2ltaWxhciB0byBiZWdpbiB3aXRoLiAg RXZlbiB0aG91Z2gKLQkgKiB0aGlzIGlzIGFuIGFkdmFuY2VkIGZlYXR1cmUgYW5kIHJhcmVseSB1 c2VkIG5vd2FkYXlzLCBzb21lIHVzZXJzIHJlbHkKLQkgKiBvbiBiZWluZyBhYmxlIHRvIHNwZWNp ZnkgbW9kZXMgbWFudWFsbHkgc28gZHJpdmVycyBtdXN0IGJlIHByZXBhcmVkCi0JICogdG8gZGVh bCB3aXRoIGl0LiBTcGVjaWZpY2FsbHkgdGhpcyBtZWFucyB0aGF0IGFsbCBkcml2ZXJzIG5lZWQg bm90Ci0JICogb25seSB2YWxpZGF0ZSBtb2RlcyBpbiAtPm1vZGVfdmFsaWQoKSBidXQgYWxzbyBp biAtPm1vZGVfZml4dXAoKSB0bwotCSAqIG1ha2Ugc3VyZSBpbnZhbGlkIG1vZGVzIHBhc3NlZCBp biBmcm9tIHVzZXJzcGFjZSBhcmUgcmVqZWN0ZWQuCisJICogJmRybV9jb25uZWN0b3JfaGVscGVy X2Z1bmNzLm1vZGVfdmFsaWQgY2FsbGJhY2ssIG5laXRoZXIgdGhlIGNvcmUgbm9yCisJICogdGhl IGhlbHBlcnMgZG8gYW55IGZpbHRlcmluZyBvbiBtb2RlcyBwYXNzZWQgaW4gZnJvbSB1c2Vyc3Bh Y2Ugd2hlbgorCSAqIHNldHRpbmcgYSBtb2RlLiBJdCBpcyB0aGVyZWZvcmUgcG9zc2libGUgZm9y IHVzZXJzcGFjZSB0byBwYXNzIGluIGEKKwkgKiBtb2RlIHRoYXQgd2FzIHByZXZpb3VzbHkgZmls dGVyZWQgb3V0IHVzaW5nCisJICogJmRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzLm1vZGVfdmFs aWQgb3IgYWRkIGEgY3VzdG9tIG1vZGUgdGhhdAorCSAqIHdhc24ndCBwcm9iZWQgZnJvbSBFRElE IG9yIHNpbWlsYXIgdG8gYmVnaW4gd2l0aC4gIEV2ZW4gdGhvdWdoIHRoaXMKKwkgKiBpcyBhbiBh ZHZhbmNlZCBmZWF0dXJlIGFuZCByYXJlbHkgdXNlZCBub3dhZGF5cywgc29tZSB1c2VycyByZWx5 IG9uCisJICogYmVpbmcgYWJsZSB0byBzcGVjaWZ5IG1vZGVzIG1hbnVhbGx5IHNvIGRyaXZlcnMg bXVzdCBiZSBwcmVwYXJlZCB0bworCSAqIGRlYWwgd2l0aCBpdC4gU3BlY2lmaWNhbGx5IHRoaXMg bWVhbnMgdGhhdCBhbGwgZHJpdmVycyBuZWVkIG5vdCBvbmx5CisJICogdmFsaWRhdGUgbW9kZXMg aW4gJmRybV9jb25uZWN0b3IubW9kZV92YWxpZCBidXQgYWxzbyBpbiB0aGlzIG9yIGluCisJICog dGhlICZkcm1fY3J0Y19oZWxwZXJfZnVuY3MubW9kZV9maXh1cCBjYWxsYmFjayB0byBtYWtlIHN1 cmUKKwkgKiBpbnZhbGlkIG1vZGVzIHBhc3NlZCBpbiBmcm9tIHVzZXJzcGFjZSBhcmUgcmVqZWN0 ZWQuCiAJICoKIAkgKiBSRVRVUk5TOgogCSAqCkBAIC01NDQsNyArNTQ4LDcgQEAgc3RydWN0IGRy bV9lbmNvZGVyX2hlbHBlcl9mdW5jcyB7CiAJICogdXNlIHRoaXMgaG9vaywgYmVjYXVzZSB0aGUg aGVscGVyIGxpYnJhcnkgY2FsbHMgaXQgb25seSBvbmNlIGFuZCBub3QKIAkgKiBldmVyeSB0aW1l IHRoZSBkaXNwbGF5IHBpcGVsaW5lIGlzIHN1c3BlbmQgdXNpbmcgZWl0aGVyIERQTVMgb3IgdGhl CiAJICogbmV3ICJBQ1RJVkUiIHByb3BlcnR5LiBTdWNoIGRyaXZlcnMgc2hvdWxkIGluc3RlYWQg bW92ZSBhbGwgdGhlaXIKLQkgKiBlbmNvZGVyIHNldHVwIGludG8gdGhlIC0+ZW5hYmxlKCkgY2Fs bGJhY2suCisJICogZW5jb2RlciBzZXR1cCBpbnRvIHRoZSBAZW5hYmxlIGNhbGxiYWNrLgogCSAq CiAJICogVGhpcyBjYWxsYmFjayBpcyB1c2VkIGJvdGggYnkgdGhlIGxlZ2FjeSBDUlRDIGhlbHBl cnMgYW5kIHRoZSBhdG9taWMKIAkgKiBtb2Rlc2V0IGhlbHBlcnMuIEl0IGlzIG9wdGlvbmFsIGlu IHRoZSBhdG9taWMgaGVscGVycy4KQEAgLTU3MCw3ICs1NzQsNyBAQCBzdHJ1Y3QgZHJtX2VuY29k ZXJfaGVscGVyX2Z1bmNzIHsKIAkgKiB1c2UgdGhpcyBob29rLCBiZWNhdXNlIHRoZSBoZWxwZXIg bGlicmFyeSBjYWxscyBpdCBvbmx5IG9uY2UgYW5kIG5vdAogCSAqIGV2ZXJ5IHRpbWUgdGhlIGRp c3BsYXkgcGlwZWxpbmUgaXMgc3VzcGVuZGVkIHVzaW5nIGVpdGhlciBEUE1TIG9yIHRoZQogCSAq IG5ldyAiQUNUSVZFIiBwcm9wZXJ0eS4gU3VjaCBkcml2ZXJzIHNob3VsZCBpbnN0ZWFkIG1vdmUg YWxsIHRoZWlyCi0JICogZW5jb2RlciBzZXR1cCBpbnRvIHRoZSAtPmVuYWJsZSgpIGNhbGxiYWNr LgorCSAqIGVuY29kZXIgc2V0dXAgaW50byB0aGUgQGVuYWJsZSBjYWxsYmFjay4KIAkgKgogCSAq IFRoaXMgY2FsbGJhY2sgaXMgdXNlZCBieSB0aGUgYXRvbWljIG1vZGVzZXQgaGVscGVycyBpbiBw bGFjZSBvZiB0aGUKIAkgKiBAbW9kZV9zZXQgY2FsbGJhY2ssIGlmIHNldCBieSB0aGUgZHJpdmVy LiBJdCBpcyBvcHRpb25hbCBhbmQgc2hvdWxkCkBAIC02MjEsMTAgKzYyNSwxMCBAQCBzdHJ1Y3Qg ZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIHsKIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxk IGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgZW5jb2Rlci4gV2l0aCB0aGUgYXRvbWljCiAJICogZHJp dmVycyBpdCBpcyBjYWxsZWQgYmVmb3JlIHRoaXMgZW5jb2RlcidzIENSVEMgaGFzIGJlZW4gc2h1 dCBvZmYKLQkgKiB1c2luZyB0aGUgQ1JUQydzIG93biAtPmRpc2FibGUgaG9vay4gIElmIHRoYXQg c2VxdWVuY2UgaXMgdG9vIHNpbXBsZQotCSAqIGRyaXZlcnMgY2FuIGp1c3QgYWRkIHRoZWlyIG93 biBkcml2ZXIgcHJpdmF0ZSBlbmNvZGVyIGhvb2tzIGFuZCBjYWxsCi0JICogdGhlbSBmcm9tIENS VEMncyBjYWxsYmFjayBieSBsb29waW5nIG92ZXIgYWxsIGVuY29kZXJzIGNvbm5lY3RlZCB0bwot CSAqIGl0IHVzaW5nIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0YygpLgorCSAqIHVzaW5nIHRoZWly IG93biAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLmRpc2FibGUgaG9vay4gIElmIHRoYXQKKwkgKiBz ZXF1ZW5jZSBpcyB0b28gc2ltcGxlIGRyaXZlcnMgY2FuIGp1c3QgYWRkIHRoZWlyIG93biBkcml2 ZXIgcHJpdmF0ZQorCSAqIGVuY29kZXIgaG9va3MgYW5kIGNhbGwgdGhlbSBmcm9tIENSVEMncyBj YWxsYmFjayBieSBsb29waW5nIG92ZXIgYWxsCisJICogZW5jb2RlcnMgY29ubmVjdGVkIHRvIGl0 IHVzaW5nIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0YygpLgogCSAqCiAJICogVGhpcyBob29rIGlz IHVzZWQgYm90aCBieSBsZWdhY3kgQ1JUQyBoZWxwZXJzIGFuZCBhdG9taWMgaGVscGVycy4KIAkg KiBBdG9taWMgZHJpdmVycyBkb24ndCBuZWVkIHRvIGltcGxlbWVudCBpdCBpZiB0aGVyZSdzIG5v IG5lZWQgdG8KQEAgLTY1MSwxMCArNjU1LDEwIEBAIHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJf ZnVuY3MgewogCSAqCiAJICogVGhpcyBjYWxsYmFjayBzaG91bGQgYmUgdXNlZCB0byBlbmFibGUg dGhlIGVuY29kZXIuIFdpdGggdGhlIGF0b21pYwogCSAqIGRyaXZlcnMgaXQgaXMgY2FsbGVkIGFm dGVyIHRoaXMgZW5jb2RlcidzIENSVEMgaGFzIGJlZW4gZW5hYmxlZCB1c2luZwotCSAqIHRoZSBD UlRDJ3Mgb3duIC0+ZW5hYmxlIGhvb2suICBJZiB0aGF0IHNlcXVlbmNlIGlzIHRvbyBzaW1wbGUg ZHJpdmVycwotCSAqIGNhbiBqdXN0IGFkZCB0aGVpciBvd24gZHJpdmVyIHByaXZhdGUgZW5jb2Rl ciBob29rcyBhbmQgY2FsbCB0aGVtCi0JICogZnJvbSBDUlRDJ3MgY2FsbGJhY2sgYnkgbG9vcGlu ZyBvdmVyIGFsbCBlbmNvZGVycyBjb25uZWN0ZWQgdG8gaXQKLQkgKiB1c2luZyBmb3JfZWFjaF9l bmNvZGVyX29uX2NydGMoKS4KKwkgKiB0aGVpciBvd24gJmRybV9jcnRjX2hlbHBlcl9mdW5jcy5l bmFibGUgaG9vay4gIElmIHRoYXQgc2VxdWVuY2UgaXMKKwkgKiB0b28gc2ltcGxlIGRyaXZlcnMg Y2FuIGp1c3QgYWRkIHRoZWlyIG93biBkcml2ZXIgcHJpdmF0ZSBlbmNvZGVyCisJICogaG9va3Mg YW5kIGNhbGwgdGhlbSBmcm9tIENSVEMncyBjYWxsYmFjayBieSBsb29waW5nIG92ZXIgYWxsIGVu Y29kZXJzCisJICogY29ubmVjdGVkIHRvIGl0IHVzaW5nIGZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YygpLgogCSAqCiAJICogVGhpcyBob29rIGlzIHVzZWQgb25seSBieSBhdG9taWMgaGVscGVycywg Zm9yIHN5bW1ldHJ5IHdpdGggQGRpc2FibGUuCiAJICogQXRvbWljIGRyaXZlcnMgZG9uJ3QgbmVl ZCB0byBpbXBsZW1lbnQgaXQgaWYgdGhlcmUncyBubyBuZWVkIHRvCkBAIC03MTYsNyArNzIwLDcg QEAgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHsKIAkgKiBAZ2V0X21vZGVzOgog CSAqCiAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgZmlsbCBpbiBhbGwgbW9kZXMgY3VycmVudGx5 IHZhbGlkIGZvciB0aGUgc2luawotCSAqIGludG8gdGhlIGNvbm5lY3Rvci0+cHJvYmVkX21vZGVz IGxpc3QuIEl0IHNob3VsZCBhbHNvIHVwZGF0ZSB0aGUKKwkgKiBpbnRvIHRoZSAmZHJtX2Nvbm5l Y3Rvci5wcm9iZWRfbW9kZXMgbGlzdC4gSXQgc2hvdWxkIGFsc28gdXBkYXRlIHRoZQogCSAqIEVE SUQgcHJvcGVydHkgYnkgY2FsbGluZyBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJv cGVydHkoKS4KIAkgKgogCSAqIFRoZSB1c3VhbCB3YXkgdG8gaW1wbGVtZW50IHRoaXMgaXMgdG8g Y2FjaGUgdGhlIEVESUQgcmV0cmlldmVkIGluIHRoZQpAQCAtNzI1LDggKzcyOSw5IEBAIHN0cnVj dCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB7CiAJICogdGhlbSBieSBjYWxsaW5nIGRybV9h ZGRfZWRpZF9tb2RlcygpLiBCdXQgY29ubmVjdG9ycyB0aGF0IGRyaXZlciBhCiAJICogZml4ZWQg cGFuZWwgY2FuIGFsc28gbWFudWFsbHkgYWRkIHNwZWNpZmljIG1vZGVzIHVzaW5nCiAJICogZHJt X21vZGVfcHJvYmVkX2FkZCgpLiBEcml2ZXJzIHdoaWNoIG1hbnVhbGx5IGFkZCBtb2RlcyBzaG91 bGQgYWxzbwotCSAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBAZGlzcGxheV9pbmZvLCBAd2lkdGhfbW0g YW5kIEBoZWlnaHRfbW0gZmllbGRzIG9mIHRoZQotCSAqICZzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBh cmUgZmlsbGVkIGluLgorCSAqIG1ha2Ugc3VyZSB0aGF0IHRoZSAmZHJtX2Nvbm5lY3Rvci5kaXNw bGF5X2luZm8sCisJICogJmRybV9jb25uZWN0b3Iud2lkdGhfbW0gYW5kICZkcm1fY29ubmVjdG9y LmhlaWdodF9tbSBmaWVsZHMgYXJlCisJICogZmlsbGVkIGluLgogCSAqCiAJICogVmlydHVhbCBk cml2ZXJzIHRoYXQganVzdCB3YW50IHNvbWUgc3RhbmRhcmQgVkVTQSBtb2RlIHdpdGggYSBnaXZl bgogCSAqIHJlc29sdXRpb24gY2FuIGNhbGwgZHJtX2FkZF9tb2Rlc19ub2VkaWQoKSwgYW5kIG1h cmsgdGhlIHByZWZlcnJlZApAQCAtNzM1LDcgKzc0MCw3IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jcyB7CiAJICogRmluYWxseSBkcml2ZXJzIHRoYXQgc3VwcG9ydCBhdWRpbyBw cm9iYWJseSB3YW50IHRvIHVwZGF0ZSB0aGUgRUxECiAJICogZGF0YSwgdG9vLCB1c2luZyBkcm1f ZWRpZF90b19lbGQoKS4KIAkgKgotCSAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgYWZ0 ZXIgdGhlIC0+ZGV0ZWN0KCkgaG9vayBoYXMgaW5kaWNhdGVkCisJICogVGhpcyBmdW5jdGlvbiBp cyBvbmx5IGNhbGxlZCBhZnRlciB0aGUgQGRldGVjdCBob29rIGhhcyBpbmRpY2F0ZWQKIAkgKiB0 aGF0IGEgc2luayBpcyBjb25uZWN0ZWQgYW5kIHdoZW4gdGhlIEVESUQgaXNuJ3Qgb3ZlcnJpZGRl biB0aHJvdWdoCiAJICogc3lzZnMgb3IgdGhlIGtlcm5lbCBjb21tYW5kbGluZS4KIAkgKgpAQCAt NzY4LDggKzc3Myw4IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB7CiAJICoK IAkgKiBSRVRVUk5TOgogCSAqCi0JICogRWl0aGVyIE1PREVfT0sgb3Igb25lIG9mIHRoZSBmYWls dXJlIHJlYXNvbnMgaW4gZW51bQotCSAqICZkcm1fbW9kZV9zdGF0dXMuCisJICogRWl0aGVyICZk cm1fbW9kZV9zdGF0dXMuTU9ERV9PSyBvciBvbmUgb2YgdGhlIGZhaWx1cmUgcmVhc29ucyBpbiAm ZW51bQorCSAqIGRybV9tb2RlX3N0YXR1cy4KIAkgKi8KIAllbnVtIGRybV9tb2RlX3N0YXR1cyAo Km1vZGVfdmFsaWQpKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJCSAgIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKQEAgLTg3NSw3ICs4ODAsNyBAQCBzdHJ1Y3Qg ZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyB7CiAJICogUkVUVVJOUzoKIAkgKgogCSAqIDAgb24gc3Vj Y2VzcyBvciBvbmUgb2YgdGhlIGZvbGxvd2luZyBuZWdhdGl2ZSBlcnJvciBjb2RlcyBhbGxvd2Vk IGJ5Ci0JICogdGhlIGF0b21pY19jb21taXQgaG9vayBpbiAmZHJtX21vZGVfY29uZmlnX2Z1bmNz LiBXaGVuIHVzaW5nIGhlbHBlcnMKKwkgKiB0aGUgJmRybV9tb2RlX2NvbmZpZ19mdW5jcy5hdG9t aWNfY29tbWl0IHZmdW5jLiBXaGVuIHVzaW5nIGhlbHBlcnMKIAkgKiB0aGlzIGNhbGxiYWNrIGlz IHRoZSBvbmx5IG9uZSB3aGljaCBjYW4gZmFpbCBhbiBhdG9taWMgY29tbWl0LAogCSAqIGV2ZXJ5 dGhpbmcgZWxzZSBtdXN0IGNvbXBsZXRlIHN1Y2Nlc3NmdWxseS4KIAkgKi8KQEAgLTg5OCw3ICs5 MDMsNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyB7CiAJICoKIAkgKiBEcml2ZXJz IHNob3VsZCBjaGVjayBwbGFuZSBzcGVjaWZpYyBjb25zdHJhaW50cyBpbiB0aGlzIGhvb2suCiAJ ICoKLQkgKiBXaGVuIHVzaW5nIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcygpIHBsYW5l J3MgLT5hdG9taWNfY2hlY2soKQorCSAqIFdoZW4gdXNpbmcgZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfcGxhbmVzKCkgcGxhbmUncyBAYXRvbWljX2NoZWNrCiAJICogaG9va3MgYXJlIGNhbGxlZCBi ZWZvcmUgdGhlIG9uZXMgZm9yIENSVENzLCB3aGljaCBhbGxvd3MgZHJpdmVycyB0bwogCSAqIHJl cXVlc3Qgc2hhcmVkIHJlc291cmNlcyB0aGF0IHRoZSBDUlRDIGNvbnRyb2xzIGhlcmUuIEZvciBt b3JlCiAJICogY29tcGxpY2F0ZWQgZGVwZW5kZW5jaWVzIHRoZSBkcml2ZXIgY2FuIGNhbGwgdGhl IHByb3ZpZGVkIGNoZWNrIGhlbHBlcnMKQEAgLTkwNyw3ICs5MTIsNyBAQCBzdHJ1Y3QgZHJtX3Bs YW5lX2hlbHBlcl9mdW5jcyB7CiAJICoKIAkgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYWxsb3dl ZCB0byBpbnNwZWN0IGFueSBvdGhlciBvYmplY3QncyBzdGF0ZSBhbmQKIAkgKiBjYW4gYWRkIG1v cmUgc3RhdGUgb2JqZWN0cyB0byB0aGUgYXRvbWljIGNvbW1pdCBpZiBuZWVkZWQuIENhcmUgbXVz dAotCSAqIGJlIHRha2VuIHRob3VnaCB0byBlbnN1cmUgdGhhdCBzdGF0ZSBjaGVjayZjb21wdXRl IGZ1bmN0aW9ucyBmb3IKKwkgKiBiZSB0YWtlbiB0aG91Z2ggdG8gZW5zdXJlIHRoYXQgc3RhdGUg Y2hlY2sgYW5kIGNvbXB1dGUgZnVuY3Rpb25zIGZvcgogCSAqIHRoZXNlIGFkZGVkIHN0YXRlcyBh cmUgYWxsIGNhbGxlZCwgYW5kIGRlcml2ZWQgc3RhdGUgaW4gb3RoZXIgb2JqZWN0cwogCSAqIGFs bCB1cGRhdGVkLiBBZ2FpbiB0aGUgcmVjb21tZW5kYXRpb24gaXMgdG8ganVzdCBjYWxsIGNoZWNr IGhlbHBlcnMKIAkgKiB1bnRpbCBhIG1heGltYWwgY29uZmlndXJhdGlvbiBpcyByZWFjaGVkLgpA QCAtOTM2LDggKzk0MSw4IEBAIHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHsKIAkgKiBA YXRvbWljX3VwZGF0ZToKIAkgKgogCSAqIERyaXZlcnMgc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9u IHRvIHVwZGF0ZSB0aGUgcGxhbmUgc3RhdGUuICBUaGlzCi0JICogaG9vayBpcyBjYWxsZWQgaW4t YmV0d2VlbiB0aGUgLT5hdG9taWNfYmVnaW4oKSBhbmQKLQkgKiAtPmF0b21pY19mbHVzaCgpIG9m ICZkcm1fY3J0Y19oZWxwZXJfZnVuY3MuCisJICogaG9vayBpcyBjYWxsZWQgaW4tYmV0d2VlbiB0 aGUgJmRybV9jcnRjX2hlbHBlcl9mdW5jcy5hdG9taWNfYmVnaW4gYW5kCisJICogZHJtX2NydGNf aGVscGVyX2Z1bmNzLmF0b21pY19mbHVzaCBjYWxsYmFja3MuCiAJICoKIAkgKiBOb3RlIHRoYXQg dGhlIHBvd2VyIHN0YXRlIG9mIHRoZSBkaXNwbGF5IHBpcGUgd2hlbiB0aGlzIGZ1bmN0aW9uIGlz CiAJICogY2FsbGVkIGRlcGVuZHMgdXBvbiB0aGUgZXhhY3QgaGVscGVycyBhbmQgY2FsbGluZyBz ZXF1ZW5jZSB0aGUgZHJpdmVyCkBAIC05NTMsMTQgKzk1OCwxNSBAQCBzdHJ1Y3QgZHJtX3BsYW5l X2hlbHBlcl9mdW5jcyB7CiAJICogQGF0b21pY19kaXNhYmxlOgogCSAqCiAJICogRHJpdmVycyBz aG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gdG8gdW5jb25kaXRpb25hbGx5IGRpc2FibGUgYSBwbGFu ZS4KLQkgKiBUaGlzIGhvb2sgaXMgY2FsbGVkIGluLWJldHdlZW4gdGhlIC0+YXRvbWljX2JlZ2lu KCkgYW5kCi0JICogLT5hdG9taWNfZmx1c2goKSBvZiAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLiBJ dCBpcyBhbiBhbHRlcm5hdGl2ZSB0bworCSAqIFRoaXMgaG9vayBpcyBjYWxsZWQgaW4tYmV0d2Vl biB0aGUKKwkgKiAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLmF0b21pY19iZWdpbiBhbmQKKwkgKiBk cm1fY3J0Y19oZWxwZXJfZnVuY3MuYXRvbWljX2ZsdXNoIGNhbGxiYWNrcy4gSXQgaXMgYW4gYWx0 ZXJuYXRpdmUgdG8KIAkgKiBAYXRvbWljX3VwZGF0ZSwgd2hpY2ggd2lsbCBiZSBjYWxsZWQgZm9y IGRpc2FibGluZyBwbGFuZXMsIHRvbywgaWYKIAkgKiB0aGUgQGF0b21pY19kaXNhYmxlIGhvb2sg aXNuJ3QgaW1wbGVtZW50ZWQuCiAJICoKIAkgKiBUaGlzIGhvb2sgaXMgYWxzbyB1c2VmdWwgdG8g ZGlzYWJsZSBwbGFuZXMgaW4gcHJlcGFyYXRpb24gb2YgYSBtb2Rlc2V0LAogCSAqIGJ5IGNhbGxp bmcgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZXNfb25fY3J0YygpIGZyb20gdGhlCi0J ICogLT5kaXNhYmxlKCkgaG9vayBpbiAmZHJtX2NydGNfaGVscGVyX2Z1bmNzLgorCSAqICZkcm1f Y3J0Y19oZWxwZXJfZnVuY3MuZGlzYWJsZSBob29rLgogCSAqCiAJICogTm90ZSB0aGF0IHRoZSBw b3dlciBzdGF0ZSBvZiB0aGUgZGlzcGxheSBwaXBlIHdoZW4gdGhpcyBmdW5jdGlvbiBpcwogCSAq IGNhbGxlZCBkZXBlbmRzIHVwb24gdGhlIGV4YWN0IGhlbHBlcnMgYW5kIGNhbGxpbmcgc2VxdWVu Y2UgdGhlIGRyaXZlcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaAppbmRleCBkMTM4ZDA4 YTQ4YzEuLmZmZmJiOTVhMDkxNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9r bXNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgKQEAg LTc3LDkgKzc3LDkgQEAgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHsKIAkv KioKIAkgKiBAcHJlcGFyZV9mYjoKIAkgKgotCSAqIE9wdGlvbmFsLCBjYWxsZWQgYnkgJnN0cnVj dCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIC0+cHJlcGFyZV9mYiAuCi0JICogUGxlYXNlIHJlYWQg dGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAtPnByZXBhcmVfZmIgaG9vayBpbgotCSAqICZzdHJ1 Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBmb3IgbW9yZSBkZXRhaWxzLgorCSAqIE9wdGlvbmFs LCBjYWxsZWQgYnkgJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MucHJlcGFyZV9mYi4gIFBsZWFzZSBy ZWFkCisJICogdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAmZHJtX3BsYW5lX2hlbHBlcl9mdW5j cy5wcmVwYXJlX2ZiIGhvb2sgZm9yCisJICogbW9yZSBkZXRhaWxzLgogCSAqLwogCWludCAoKnBy ZXBhcmVfZmIpKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCSAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwpAQCAtODcsOSArODcsOSBAQCBzdHJ1 Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgewogCS8qKgogCSAqIEBjbGVhbnVwX2Zi OgogCSAqCi0JICogT3B0aW9uYWwsIGNhbGxlZCBieSAmc3RydWN0IGRybV9wbGFuZV9oZWxwZXJf ZnVuY3MgLT5jbGVhbnVwX2ZiIC4KLQkgKiBQbGVhc2UgcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBm b3IgdGhlIC0+Y2xlYW51cF9mYiBob29rIGluCi0JICogJnN0cnVjdCBkcm1fcGxhbmVfaGVscGVy X2Z1bmNzIGZvciBtb3JlIGRldGFpbHMuCisJICogT3B0aW9uYWwsIGNhbGxlZCBieSAmZHJtX3Bs YW5lX2hlbHBlcl9mdW5jcy5jbGVhbnVwX2ZiLiAgUGxlYXNlIHJlYWQKKwkgKiB0aGUgZG9jdW1l bnRhdGlvbiBmb3IgdGhlICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLmNsZWFudXBfZmIgaG9vayBm b3IKKwkgKiBtb3JlIGRldGFpbHMuCiAJICovCiAJdm9pZCAoKmNsZWFudXBfZmIpKHN0cnVjdCBk cm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKTsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==