From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rusty Russell Subject: [RFC] cpualloc: improvements to per-cpu allocation Date: Wed, 31 Dec 2008 09:38:09 +1030 Message-ID: <200812310938.09912.rusty@rustcorp.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: catalin.marinas@arm.com, Christoph Lameter , Mathieu Desnoyers To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Return-path: Received: from ozlabs.org ([203.10.76.45]:54920 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751351AbYL3XIS (ORCPT ); Tue, 30 Dec 2008 18:08:18 -0500 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org List-ID: VGhpcyBmaW5hbGx5IHVzZXMgdGhlICJzdGF0aWMiIHBlci1jcHUgcmVnaW9uIGZvciBhbGxvY19w ZXJjcHUuICBJdCBpbmNsdWRlcwphIG51bWJlciBvZiBjbGVhbnVwcyByZXF1aXJlZCB0byBtYWtl IHRoYXQgaGFwcGVuLCBhbmQgc29tZSBjbGVhbnVwcyBhcmUgZG9uZQphZnRlcndhcmRzLCB3aXRo IG1hbnkgbW9yZSB0byBjb21lIChlZy4gbG9jYWxfdCBpcyBub3cgbW9yZSB1c2VmdWwsIGlmIHdl IHNvcnQKdGhlIHNlbWFudGljcyBvZiB3aGF0IGl0IHNob3VsZCBsb29rIGxpa2UpLgoKICBodHRw Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3J1c3R5L2xpbnV4LTIu Ni1jcHVhbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAoKY29tbWl0IDZiMjQxNDEzOTZjNDI0ZGQzYjk5NzlmYzFiOTE1YTUxNjM2 ZjZhZDYKQXV0aG9yOiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6 ICAgV2VkIERlYyAzMSAwOToyMTo0NiAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBiaWdf cGVyY3B1X2FsbG9jCiAgICAKICAgIEltcGFjdDogTmV3IEFQSQogICAgCiAgICBXZSBuZXZlciBh bGxvd2VkIHRoZSBkeW5hbWljIHBlci1jcHUgYWxsb2NhdG9yIHRvIHVzZSB0aGUgcGVyLWNwdSBy ZWdpb24sCiAgICB3YWl0aW5nIHVudGlsIHRoYXQgcmVnaW9uIGJlY2FtZSByZXNpemFibGUuICBU aGF0IHdhcyBvdmVyIDUgeWVhcnMgYWdvLgogICAgCiAgICBDaHJpc3RvcGggTGFtZXRlciBoYXMg ZGVtb25zdHJhdGVkIHRoYXQgc21hbGwgZHluYW1pYyBwZXItY3B1IGFsbG9jYXRpb25zCiAgICBt YWtlIHNlbnNlLCBhbmQgbW9zdCBhbGxvY2F0aW9ucyBhcmUgc21hbGwuICBTbyB3ZSB3YW50IHRv IHVzZSB0aGUgc2FtZQogICAgZWZmaWNpZW50IHBlci1jcHUgYWNjZXNzIHBhdGhzIGZvciBhbGxv Y19wZXJjcHUoKSBtZW1vcnkuCiAgICAKICAgIEJ1dCBzb21lIHBsYWNlcyByZWFsbHkgZG8gYWxs b2NhdGUgbGFyZ2UgYW1vdW50cyBvZiBwZXJjcHUgbWVtb3J5LiAgV2UKICAgIGdpdmUgdGhlbSBh IHNlcGFyYXRlIEFQSSAoZXF1aXZhbGVudCB0byB0aGUgY3VycmVudCBpbmVmZmljaWVudCBvbmUp LgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5j b20uYXU+Cgpjb21taXQgYjliNjdmM2M4MThiNjE3YmI0NzM0NGE4NTc0ZGU4YmNkNWY2YjI5NApB dXRob3I6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQg RGVjIDMxIDA5OjIxOjQ2IDIwMDggKzEwMzAKCiAgICBhbGxvY19wZXJjcHU6IE1vdmUgU05NUCBh bmQgaXBfcnRfYWNjdCB0byBiaWdfcGVyY3B1CiAgICAKICAgIElmIHdlIGxvb2sgYXQgcGVyY3B1 IGFsbG9jYXRpb25zIHRvIGJvb3QgYW4geDg2LzMyICJhbGx5ZXNjb25maWciCiAgICBrZXJuZWws IHdlIHNlZSB0aGUgZm9sbG93aW5nOgogICAgCiAgICBGaWxlIGFuZCBsaW5lCQkJTnVtYmVyCQlT aXplCQlUb3RhbAogICAgbmV0L2lwdjQvYWZfaW5ldC5jOjEyODcJCSAyMQkJMjA0OAkJIDQzMDA4 CiAgICBuZXQvaXB2NC9hZl9pbmV0LmM6MTI5MAkJIDIxCQkyMDQ4CQkgNDMwMDgKICAgIG5ldC9p cHY0L2FmX2luZXQuYzoxMjg3CQkgNDgJCSAxMjgJCSAgNjE0NAogICAgbmV0L2lwdjQvYWZfaW5l dC5jOjEyOTAJCSA0OAkJIDEyOAkJICA2MTQ0CiAgICBuZXQvaXB2NC9yb3V0ZS5jOjMyNTgJCSAg MQkJNDA5NgkJICA0MDk2CiAgICBuZXQvaXB2NC9hZl9pbmV0LmM6MTI4NwkJICAxCQkgMjg4CQkg ICAyODgKICAgIG5ldC9pcHY0L2FmX2luZXQuYzoxMjkwCQkgIDEJCSAyODgJCSAgIDI4OAogICAg bmV0L2lwdjQvYWZfaW5ldC5jOjEyODcJCSAgMQkJIDI1NgkJICAgMjU2CiAgICBuZXQvaXB2NC9h Zl9pbmV0LmM6MTI5MAkJICAxCQkgMjU2CQkgICAyNTYKICAgIG5ldC9pcHY0L2FmX2luZXQuYzox Mjg3CQkgIDEJCSAxMDQJCSAgIDEwNAogICAgbmV0L2lwdjQvYWZfaW5ldC5jOjEyOTAJCSAgMQkJ IDEwNAkJICAgMTA0CiAgICBTdWJ0b3RhbDoJCQkJCQkJMTAzNjk2CiAgICAKICAgIFRvdGFsIChp bmNsdWRpbmcgb3RoZXIgY2FsbGVycyB1bnRvdWNoZWQgYnkgdGhpcyBwYXRjaCkJCTExNzIyOAog ICAgCiAgICBTbyBuZXR3b3JraW5nIGlzIGNodWJieTogd29yc3QgY2FzZSBhYm91dCAxMDBrIHBl ciBjcHUgZm9yIFNOTVAgc3RhdHMuCiAgICBUaGlzIGNhbiBiZSByZWR1Y2VkLCBidXQgaXQncyBz dGlsbCA4OCUgb2YgdGhlIHBlcmNwdSBtZW1vcnksIGFuZCBJQTY0CiAgICBoYXMgYSBoYXJkY29k ZWQgbGltaXQgb2YgNjRrIGF0IHRoZSBtb21lbnQuCiAgICAKICAgIFRoYXQncyB3aHkgdGhlc2Ug dHdvIGNhbGxlcnMgZ2V0IG1vdmVkIHRvIGJpZ19wZXJjcHVfYWxsb2MuCiAgICAKICAgIE5vdGU6 IGlwX3J0X2FjY3QgY291bGQgYmUgc2ltcGxpZmllZCBhbmQgbWFkZSBtb3JlIGVmZmljaWVudCBi eSBtYWtpbmcKICAgIGl0IGEgREVGSU5FX1BFUl9DUFUuICBCdXQgRGF2ZU0gbWFkZSBzb21lIGFy Z3VtZW50IGFib3V0IGltYWdlIHNpemUKICAgIGFuZCBJIGhhdmUgZmFyIHRvbyBtdWNoIHJlc3Bl Y3QgdG8gYXJndWUgd2l0aCBCbG9hdEJveSA6KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBSdXN0 eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CiAgICBDYzogbmV0ZGV2QHZnZXIua2Vy bmVsLm9yZwoKY29tbWl0IGQ3ODI4MjRjZGVhY2M1MzA4MzY2NjFkOTgwMTRhMzg3Mjc3MmQzYTAK QXV0aG9yOiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2Vk IERlYyAzMSAwOToyMTo0NyAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiByZW1vdmUgYWxp Z25tZW50IG9uIGNwdV93b3JrcXVldWVfc3RydWN0LgogICAgCiAgICBTaW5jZSB3ZSdyZSBpbXBy b3ZpbmcgYWxsb2NfcGVyY3B1LCB3ZSBkb24ndCBuZWVkIHRvIHdhc3RlIHNwYWNlLgogICAgT24g MzItYml0IHRoaXMgZHJvcHMgc3RydWN0IGNwdV93b3JrcXVldWVfc3RydWN0IGZyb20gMTI4IHRv IDY0IGJ5dGVzLgogICAgCiAgICBGaWxlIGFuZCBsaW5lCQkJTnVtYmVyCQlTaXplCQlUb3RhbAog ICAgQmVmb3JlOgogICAgICBrZXJuZWwvd29ya3F1ZXVlLmM6ODE5CSA3MgkJIDEyOAkJIDkxMjYK ICAgIEFmdGVyOgogICAgICBrZXJuZWwvd29ya3F1ZXVlLmM6ODE5CSA3MgkJICA2NAkJIDQ2MDgK ICAgIAogICAgSXQncyBzdGlsbCB0aGUgYmlnZ2VzdCBkeW5hbWljIHBlcmNwdSB1c2VyIHRob3Vn aC4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAu Y29tLmF1PgoKY29tbWl0IDllYWM5ZDA3NzQ0ODgyYjUyNjUzZDQ3ZmVmNmZhY2Q5M2Q0NjliMzUK QXV0aG9yOiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2Vk IERlYyAzMSAwOToyMTo0NyAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBjaGFuZ2UgcGVy Y3B1X3B0ciB0byBwZXJfY3B1X3B0cgogICAgCiAgICBJbXBhY3Q6IGNsZWFudXAKICAgIAogICAg VGhlcmUgYXJlIHR3byBhbGxvY2F0ZWQgcGVyLWNwdSBhY2Nlc3NvciBtYWNyb3Mgd2l0aCBhbG1v c3QgaWRlbnRpY2FsCiAgICBzcGVsbGluZy4gIFRoZSBvcmlnaW5hbCBhbmQgZmFyIG1vcmUgcG9w dWxhciBpcyBwZXJfY3B1X3B0ciAoNDQKICAgIGZpbGVzKSwgc28gY2hhbmdlIG92ZXIgdGhlIG90 aGVyIDQgZmlsZXMuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5 QHJ1c3Rjb3JwLmNvbS5hdT4KICAgIENjOiBtaW5nb0ByZWRoYXQuY29tCiAgICBDYzogbGVuYkBr ZXJuZWwub3JnCiAgICBDYzogY3B1ZnJlcUB2Z2VyLmtlcm5lbC5vcmcKCmNvbW1pdCAxYWViZGU2 NzZkNWExZTQ5NjVlOThkZTQwMWNmNjBlOWE4ZTM1MzUxCkF1dGhvcjogUnVzdHkgUnVzc2VsbCA8 cnVzdHlAcnVzdGNvcnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NDggMjAwOCAr MTAzMAoKICAgIGFsbG9jX3BlcmNwdTogYWRkIGFsaWduIGFyZ3VtZW50IHRvIF9fYWxsb2NfcGVy Y3B1LgogICAgCiAgICBUaGlzIHByZXBhcmVzIGZvciBhIHJlYWwgX19hbGxvY19wZXJjcHUsIGJ5 IGFkZGluZyBhbiBhbGlnbm1lbnQgYXJndW1lbnQuCiAgICBPbmx5IG9uZSBwbGFjZSB1c2VzIF9f YWxsb2NfcGVyY3B1IGRpcmVjdGx5LCBhbmQgdGhhdCdzIGZvciBhIHN0cmluZy4KICAgIAogICAg U2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgogICAg Q2M6IENocmlzdG9waCBMYW1ldGVyIDxjbEBsaW51eC1mb3VuZGF0aW9uLm9yZz4KICAgIENjOiBK ZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+Cgpjb21taXQgYmEyNmM4NjBkNWQ0Nzg5NmFlZTQ1 ZWM1ZjEzYzBkN2JkMjFhNzg0YQpBdXRob3I6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3Jw LmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5OjIxOjQ4IDIwMDggKzEwMzAKCiAgICBhbGxv Y19wZXJjcHU6IG1ha2UgdGhlIHBlciBjcHUgcmVzZXJ2ZSBjb25maWd1cmFibGUgYW5kIGxhcmdl ci4KICAgIAogICAgVGhpcyBpcyBiYXNlZCBvbiBDaHJpc3RvcGggTGFtZXRlcidzICJjcHVhbGxv YzogbWFrZSB0aGUgcGVyIGNwdQogICAgcmVzZXJ2ZSBjb25maWd1cmFibGUiIHBhdGNoLCBhbmQg aGlzICJJbmNyZWFzZSBkZWZhdWx0IHJlc2VydmUgcGVyY3B1CiAgICBhcmVhIiBwYXRjaC4KICAg IAogICAgQ2hyaXN0b3BoIGRpZCB0aGUgaGFyZCB3b3JrIG9mIGZpZ3VyaW5nIG91dCB3aGF0IHRo ZSBudW1iZXIgc2hvdWxkIGJlCiAgICAoYmFzZWQgb24gY29udmVydGluZyB0aGUgc2x1YiBhbGxv Y2F0b3IpLiAgYWxseWVzY29uZmlnIG9uIHg4Ni0zMiB1c2VzCiAgICA3ayBiZWZvcmUgbW91bnRp bmcgcm9vdCwgc28gMTBrIHNlZW1zIHJlYXNvbmFibGUuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6 IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KICAgIENjOiBDaHJpc3RvcGgg TGFtZXRlciA8Y2xAbGludXgtZm91bmRhdGlvbi5vcmc+Cgpjb21taXQgZjM5YjgwZDEwMDljMTYx MWY3OTFiNjY1NjQwZThiNDExOTE3MzNmMgpBdXRob3I6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1 c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5OjIxOjQ5IDIwMDggKzEwMzAKCiAg ICBhbGxvY19wZXJjcHU6IG1ha2UgcGVyY3B1X21vZGFsbG9jL21vZGZyZWUgbW9yZSBnZW5lcmlj CiAgICAKICAgIFJlbW92ZSB0aGUgIm5hbWUiIGFyZyB0byBwZXJjcHVfbW9kYWxsb2MsIGFuZCBt YWtlIGl0IHplcm8gbWVtb3J5LgogICAgTWFrZSBwZXJjcHVfbW9kZnJlZSB0YWtlIE5VTEwgd2l0 aG91dCBiYXJmaW5nLgogICAgTWFrZSBub24tU01QIHZlcnNpb25zIGRvIGt6YWxsb2Mva2ZyZWUu CiAgICAKICAgIFRoZXNlIHRyaXZpYWwgY2hhbmdlcyBtYWtlIGl0IHN1aXRhYmxlIGZvciB1c2Ug YXMgYSBnZW5lcmFsIHBlci1jcHUKICAgIGFsbG9jYXRvci4KICAgIAogICAgU2lnbmVkLW9mZi1i eTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgogICAgQ2M6IENocmlzdG9w aCBMYW1ldGVyIDxjbEBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCA5OGJkMTUxOTUzNmVm NjJkMjgzY2VlMjIxMjMyYzNjMmQ2MTU3MjE4CkF1dGhvcjogUnVzdHkgUnVzc2VsbCA8cnVzdHlA cnVzdGNvcnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NDkgMjAwOCArMTAzMAoK ICAgIGFsbG9jX3BlcmNwdTogZXhwb3NlIHBlcmNwdV9tb2RhbGxvYyBhbmQgcGVyY3B1X21vZGZy ZWUKICAgIAogICAgVGhpcyBzaW1wbHkgbW92ZXMgdGhlIHBlcmNwdSBhbGxvY2F0b3IgZnVuY3Rp b25zIGZyb20gdGhlIG1vZHVsZSBjb2RlCiAgICB0byBtbS9hbGxvY3BlcmNwdS5jLiAgcGVyY3B1 X21vZGluaXQgaXMgcmVuYW1lZCBwZXJjcHVfYWxsb2NfaW5pdCBhbmQKICAgIGNhbGxlZCBmcm9t IGluaXQvbWFpbi5jLgogICAgCiAgICAoTm90ZTogdGhpcyBhbGxvY2F0b3Igd2lsbCBuZWVkIHRv IGJlIHdlYW5lZCBvZmYga3JlYWxsb2MgZm9yIHVzZSBpbgogICAgdGhlIHNsYWIgYWxsb2NhdG9y IGl0c2VsZiBhcyBDaHJpc3RvcGggZG9lcyBpbiBvbmUgb2YgaGlzIHBhdGNoZXMpLgogICAgCiAg ICBTaWduZWQtb2ZmLWJ5OiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CiAg ICBDYzogQ2hyaXN0b3BoIExhbWV0ZXIgPGNsQGxpbnV4LWZvdW5kYXRpb24ub3JnPgoKY29tbWl0 IDVmZTYzM2EzNDMyMDIxZDBjZjcxOWFiMjM4ZjZjOTM2ZWY5OWQ1ZWUKQXV0aG9yOiBSdXN0eSBS dXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2VkIERlYyAzMSAwOToyMTo1 MCAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBzd2l0Y2ggb3ZlciB0byAocmVuYW1lZCkg cGVyY3B1X21vZGZyZWUuCiAgICAKICAgIE5vdyB0aGUgc3dpdGNoOiByZW5hbWUgcGVyY3B1X21v ZGFsbG9jIHRvIF9fYWxsb2NfcGVyY3B1LCBhbmQKICAgIHBlcmNwdV9tb2RmcmVlIHRvIGZyZWVf cGVyY3B1IGFuZCBleHBvcnQgdGhlbS4KICAgIAogICAgV2UgZGVsZXRlIHRoZSBvbGQgb25lcywg aW5jbHVkaW5nIHRoZSB1bnVzZWQgcGVyY3B1X2FsbG9jLAogICAgcGVyY3B1X2FsbG9jX21hc2sg YW5kIHBlcmNwdV9wdHIuCiAgICAKICAgIHBlcl9jcHVfcHRyIG5vdyB1c2VzIFJFTE9DX0hJREUg b24gcGVyX2NwdV9vZmZzZXQsIGp1c3QgbGlrZSBzdGF0aWMKICAgIHBlci1jcHUgdmFyaWFibGVz IChub3QgU0hJRlRfUEVSQ1BVX1BUUjogdGhpcyBoYXMgc2lkZSBlZmZlY3RzIG9uCiAgICBTLzM5 MCBhbmQgQWxwaGEpLgogICAgCiAgICBUaGUgQWxwaGEgY2hhbmdlcyBhcmUgdW50ZXN0ZWQuCiAg ICAKICAgIFNpZ25lZC1vZmYtYnk6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5h dT4KICAgIENjOiBDaHJpc3RvcGggTGFtZXRlciA8Y2xAbGludXgtZm91bmRhdGlvbi5vcmc+Cgpj b21taXQgNWY5MzA1NDE1NzFhZTc1MWI1YjA2MzljMDI5NGMzMTA5Zjc2OTMzZgpBdXRob3I6IFJ1 c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5 OjIxOjUwIDIwMDggKzEwMzAKCiAgICBhbGxvY19wZXJjcHU6IGRvY3VtZW50YXRpb24KICAgIAog ICAgU2luY2Ugd2UgY2FuIG5vdyBlbmRvcnNlIHRoaXMgaW50ZXJmYWNlIHdpdGhvdXQgd2luY2lu Zywgd2Ugc2hvdWxkCiAgICBkb2N1bWVudCBpdC4gICBOb3RoaW5nIGhhcyBjaGFuZ2VkIEFQSS13 aXNlLCBidXQgaXQncyBhIG5pY2UgY2xlYW51cC4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVz dHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgogICAgQ2M6IENocmlzdG9waCBMYW1l dGVyIDxjbEBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCA5ODdhZmNiNjQzNDg1MjU4NTY4 ZTAyY2Q5NGUyYjkwNjk2OWUwODBlCkF1dGhvcjogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNv cnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NTEgMjAwOCArMTAzMAoKICAgIGFs bG9jX3BlcmNwdTogX19nZXRfY3B1X3B0ci9nZXRfY3B1X3B0ci9wdXRfY3B1X3B0cgogICAgCiAg ICBOb3cgd2UgaGF2ZSBhIGRlY2VudCBpbXBsZW1lbnRhdGlvbiBpdCBtYWtlcyBzZW5zZSB0byBo YXZlIGFuCiAgICBpbnRlcmZhY2UgZm9yICJ0aGlzIGNwdSIsIGFuYWxvZ291cyB0byBfX2dldF9j cHVfdmFyLgogICAgCiAgICBBbHBoYSBpcyB1bnRlc3RlZC4KICAgIAogICAgU2lnbmVkLW9mZi1i eTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgogICAgQ2M6IENocmlzdG9w aCBMYW1ldGVyIDxjbEBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCBhZTZmODZhMTQ5MmRk NjI1MjNlZjhjNzU0NTViM2I3ODQ3OTljZWZhCkF1dGhvcjogUnVzdHkgUnVzc2VsbCA8cnVzdHlA cnVzdGNvcnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NTIgMjAwOCArMTAzMAoK ICAgIGFsbG9jX3BlcmNwdTogcmVhZF9wZXJjcHVfdmFyIC8gcmVhZF9wZXJjcHVfcHRyCiAgICAK ICAgIEltcGFjdDogTmV3IEFQSQogICAgCiAgICBnZXRfY3B1X3Zhci9nZXRfY3B1X3B0ciByZXR1 cm4gbHZhbHVlcywgYnV0IGZvciBpYTY0IGFuZCB4ODYvMzIgKGFuZCBvbmUKICAgIGRheSB4ODYv NjQpIHRoZXJlIGFyZSBtb3JlIGVmZmljaWVudCB3YXlzIGlmIHlvdSBqdXN0IHdhbnQgYW4gcnZh bHVlLgogICAgCiAgICBUaGUgeDg2LXNwZWNpZmljIHZlcnNpb25zIGhhdmUgcHJvdmVuIHBvcHVs YXIgaW4gdGhhdCBhcmNoLCBzbyBJIGV4cGVjdAogICAgdGhleSdsbCBiZSBwb3B1bGFyIGdlbmVy YWxseS4KICAgIAogICAgU28gaW50cm9kdWNlIHJlYWRfcGVyY3B1X3ZhciBhbmQgcmVhZF9wZXJj cHVfcHRyLiAgVGhleSBhcmUgc2VwYXJhdGUsCiAgICBiZWNhdXNlIHdoZW4gd2UgZW5sYXJnZSBw ZXJjcHUgYXJlYXMgSUE2NCBpcyBub3QgZ29pbmcgdG8gYmUgYWJsZSB0bwogICAgZG8gaXRzIHRy aWNrIG9uIGFiaXRyYXJ5IHBlci1jcHUgcG9pbnRlcnMsIG9ubHkgdmFycyAod2hpY2ggYXJlIGlu IHRoZQogICAgZmlyc3QgNjRrKS4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2Vs bCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgoKY29tbWl0IGRlZmJkZWNjMmI5NzEwNjNjNjMxMWRi OTFmMGJlNjAwNzMwNmE5YmQKQXV0aG9yOiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5j b20uYXU+CkRhdGU6ICAgV2VkIERlYyAzMSAwOToyMTo1MiAyMDA4ICsxMDMwCgogICAgYWxsb2Nf cGVyY3B1OiByZW5hbWUgcGVyY3B1IHZhcnMgd2hpY2ggY2F1c2UgbmFtZSBjbGFzaGVzLgogICAg CiAgICBDdXJyZW50bHkgREVDTEFSRV9QRVJfQ1BVIHZhcnMgaGF2ZSBwZXJfY3B1X18gcHJlZml4 ZWQgdG8gdGhlbSwgYW5kCiAgICB0aGlzIGVmZmVjdGl2ZWx5IHB1dHMgdGhlbSBpbiBhIHNlcGFy YXRlIG5hbWVzcGFjZS4gIE5vIHN1cnByaXNlIHRoYXQKICAgIHRoZXkgY2xhc2ggd2l0aCBvdGhl ciBuYW1lcyB3aGVuIHRoYXQgcHJlZml4IGlzIHJlbW92ZWQuCiAgICAKICAgIFRoZXJlIG1heSBi ZSBvdGhlcnMgSSd2ZSBtaXNzZWQsIGJ1dCBpZiBzbyB0aGUgdHJhbnNmb3JtIGlzIHNpbXBsZS4K ICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29t LmF1PgoKY29tbWl0IGE1NmYzMGU4YTA3NWU4Y2UxNWI0ZGZmOGUzZmUwZWRiOWJhZmY3ZWEKQXV0 aG9yOiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2VkIERl YyAzMSAwOToyMTo1MyAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiByZW1vdmUgcGVyX2Nw dV9fIHByZWZpeC4KICAgIAogICAgTm93IHRoYXQgdGhlIHJldHVybiBmcm9tIGFsbG9jX3BlcmNw dSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGFkZHJlc3MKICAgIG9mIHBlci1jcHUgdmFycywgaXQg bWFrZXMgc2Vuc2UgdG8gaGFuZCBhcm91bmQgdGhlIGFkZHJlc3Mgb2YgcGVyLWNwdQogICAgdmFy aWFibGVzLiAgVG8gbWFrZSB0aGlzIHNhbmUsIHdlIHJlbW92ZSB0aGUgcGVyX2NwdV9fIHByZWZp eCB3ZSB1c2VkCiAgICBjcmVhdGVkIHRvIHN0b3AgcGVvcGxlIGFjY2lkZW50YWxseSB1c2luZyB0 aGVzZSB2YXJzIGRpcmVjdGx5LgogICAgCiAgICBOb3cgd2UgaGF2ZSBzcGFyc2UsIHdlIGNhbiB1 c2UgdGhhdCAobmV4dCBwYXRjaCkuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFJ1c3R5IFJ1c3Nl bGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KCmNvbW1pdCBhM2M0NWU1OWJiNzFkYTFhMDEzZTAw NjM0NjljNTIzZmNhNTAyOTViCkF1dGhvcjogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAu Y29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NTMgMjAwOCArMTAzMAoKICAgIGFsbG9j X3BlcmNwdTogdXNlIF9fcGVyY3B1IGFubm90YXRpb24gZm9yIHNwYXJzZS4KICAgIAogICAgQWRk IF9fcGVyY3B1IGZvciBzcGFyc2UuCiAgICAKICAgIFdlIGhhdmUgdG8gbWFrZSBfX2tlcm5lbCAi X19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSgwKSkpIiBzbyB3ZSBjYW4KICAgIGNhc3QgdG8g aXQuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3Jw LmNvbS5hdT4KICAgIENjOiBBbCBWaXJvIDx2aXJvQHplbml2LmxpbnV4Lm9yZy51az4KCmNvbW1p dCAxZDhlNGJkMDQ0MzZkMDhkNjY4MDdiZmM3NzJmNmFkYWRmMGVhZGY4CkF1dGhvcjogUnVzdHkg UnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6 NTQgMjAwOCArMTAzMAoKICAgIGFsbG9jX3BlcmNwdTogVXNlIF9fZ2V0X2NwdV9wdHIgaW4gYmxv Y2svCiAgICAKICAgIEltcGFjdDogc2xpZ2h0IGVmZmljaWVuY3kgaW1wcm92ZW1lbnQgb24gc29t ZSBhcmNocy4KICAgIAogICAgTGV0J3MgdXNlIF9fZ2V0X2NwdV9wdHIgYW5kIGdldF9jcHVfcHRy IG5vdywgcmF0aGVyIHRoYW4KICAgIHBlcl9jcHVfcHRyKC4uLiwgc21wX3Byb2Nlc3Nvcl9pZCgp KS4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAu Y29tLmF1PgogICAgQ2M6IEplbnMgQXhib2UgPGF4Ym9lQGtlcm5lbC5kaz4KCmNvbW1pdCA3ZGU4 ODM2YTRjNTRiYjk1MDkzMjUwOGEyMzk2YjgyMmJjNDFmOTM5CkF1dGhvcjogUnVzdHkgUnVzc2Vs bCA8cnVzdHlAcnVzdGNvcnAuY29tLmF1PgpEYXRlOiAgIFdlZCBEZWMgMzEgMDk6MjE6NTQgMjAw OCArMTAzMAoKICAgIGFsbG9jX3BlcmNwdTogVXNlIF9fZ2V0X2NwdV9wdHIgaW4gY3J5cHRvLwog ICAgCiAgICBJbXBhY3Q6IHNsaWdodCBlZmZpY2llbmN5IGltcHJvdmVtZW50IG9uIHNvbWUgYXJj aHMuCiAgICAKICAgIExldCdzIHVzZSBfX2dldF9jcHVfcHRyIGFuZCBnZXRfY3B1X3B0ciBub3cs IHJhdGhlciB0aGFuCiAgICBwZXJfY3B1X3B0ciguLi4sIHNtcF9wcm9jZXNzb3JfaWQoKSkuCiAg ICAKICAgIFNpZ25lZC1vZmYtYnk6IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5h dT4KICAgIENjOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+Cgpjb21t aXQgMjEzMDcxMTRhYjc4MmM5OGFlMTcyZjRiZDFkYjY2ODVkZThmMDI2OQpBdXRob3I6IFJ1c3R5 IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5OjIx OjU1IDIwMDggKzEwMzAKCiAgICBhbGxvY19wZXJjcHU6IFVzZSBfX2dldF9jcHVfcHRyIGluIGRy aXZlcnMvZG1hCiAgICAKICAgIEltcGFjdDogc2xpZ2h0IGVmZmljaWVuY3kgaW1wcm92ZW1lbnQg b24gc29tZSBhcmNocy4KICAgIAogICAgTGV0J3MgdXNlIF9fZ2V0X2NwdV9wdHIgYW5kIGdldF9j cHVfcHRyIG5vdywgcmF0aGVyIHRoYW4KICAgIHBlcl9jcHVfcHRyKC4uLiwgc21wX3Byb2Nlc3Nv cl9pZCgpKS4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVz dGNvcnAuY29tLmF1PgogICAgQ2M6IE1hY2llaiBTb3Nub3dza2kgPG1hY2llai5zb3Nub3dza2lA aW50ZWwuY29tPgogICAgQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29t PgoKY29tbWl0IGM4OGMzZDhlZDdlZWE2YmMwNmQxZjEyOGM4NmJjNWYzMDlkNzEyMzUKQXV0aG9y OiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2VkIERlYyAz MSAwOToyMTo1NSAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBVc2UgX19yYXdfZ2V0X2Nw dV9wdHIgaW4gZnMvZXh0NAogICAgCiAgICBJbXBhY3Q6IHNsaWdodCBlZmZpY2llbmN5IGltcHJv dmVtZW50IG9uIHNvbWUgYXJjaHMuCiAgICAKICAgIExldCdzIHVzZSBfX3Jhd19nZXRfY3B1X3B0 ciBub3csIHJhdGhlciB0aGFuIHBlcl9jcHVfcHRyKC4uLiwKICAgIHJhd19zbXBfcHJvY2Vzc29y X2lkKCkpLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0 Y29ycC5jb20uYXU+CiAgICBDYzogVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KICAgIENj OiBhZGlsZ2VyQHN1bi5jb20KICAgIENjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwoKY29t bWl0IDAxMDY3NDg3NjQ1MDcwMWQ0NThjZmIxNWQ4ZDRjNzAzODg2MDNjZjYKQXV0aG9yOiBSdXN0 eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2VkIERlYyAzMSAwOToy MTo1NiAyMDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBVc2UgZ2V0X2NwdV9wdHIgaW4gZnMv bmZzCiAgICAKICAgIEltcGFjdDogc2xpZ2h0IGVmZmljaWVuY3kgaW1wcm92ZW1lbnQgb24gc29t ZSBhcmNocy4KICAgIAogICAgTGV0J3MgdXNlIGdldF9jcHVfcHRyX3B0ciBub3csIHJhdGhlciB0 aGFuIHBlcl9jcHVfcHRyKC4uLiwgc21wX3Byb2Nlc3Nvcl9pZCgpKS4KICAgIAogICAgTm90ZSB0 aGF0IG5vdyB3ZSBoYXZlIHJlYWwgZHluYW1pYyBwZXItY3B1IGFsbG9jYXRpb25zLCBjYWNoZWxp bmUgYWxpZ25pbmcKICAgIHNob3VsZCBub3Qgd2luIGFueXRoaW5nLCBhbmQgaXMgYSBsaXR0bGUg YW50aXNvY2lhbC4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogUnVzdHkgUnVzc2VsbCA8cnVzdHlA cnVzdGNvcnAuY29tLmF1PgogICAgQ2M6IFRyb25kIE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0 QG5ldGFwcC5jb20+CiAgICBDYzogbGludXgtbmZzQHZnZXIua2VybmVsLm9yZwoKY29tbWl0IGI0 NTYyODJhZjA3MTViZDk4NmQ1N2NiYTZhNjI5YTViNzFjYTc2OTIKQXV0aG9yOiBSdXN0eSBSdXNz ZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CkRhdGU6ICAgV2VkIERlYyAzMSAwOToyMTo1NiAy MDA4ICsxMDMwCgogICAgYWxsb2NfcGVyY3B1OiBVc2UgX19nZXRfY3B1X3B0ciBpbiBmcy94ZnMK ICAgIAogICAgSW1wYWN0OiBzbGlnaHQgZWZmaWNpZW5jeSBpbXByb3ZlbWVudCBvbiBzb21lIGFy Y2hzLgogICAgCiAgICBMZXQncyB1c2UgZ2V0X2NwdV9wdHIgbm93LCByYXRoZXIgdGhhbiBwZXJf Y3B1X3B0ciguLi4sIHNtcF9wcm9jZXNzb3JfaWQoKSkuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6 IFJ1c3R5IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KICAgIENjOiBUaW0gU2hpbW1p biA8eGZzLW1hc3RlcnNAb3NzLnNnaS5jb20+CiAgICBDYzogeGZzQG9zcy5zZ2kuY29tCgpjb21t aXQgZWE1OTM4NGNkYThjYmViNDBjNTc0OWYzYjA3MGRmMzQ2NjY3ZjdhNwpBdXRob3I6IFJ1c3R5 IFJ1c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5OjIx OjU3IDIwMDggKzEwMzAKCiAgICBhbGxvY19wZXJjcHU6IFVzZSBfX2dldF9jcHVfcHRyIC8gZ2V0 X2NwdV9wdHIgLyBnZXRfY3B1X3ZhciBpbiBrZXJuZWwKICAgIAogICAgSW1wYWN0OiBzbGlnaHQg ZWZmaWNpZW5jeSBpbXByb3ZlbWVudCBvbiBzb21lIGFyY2hzLgogICAgCiAgICBMZXQncyB1c2Ug X19nZXRfY3B1X3B0ciBhbmQgZ2V0X2NwdV9wdHIgbm93LCByYXRoZXIgdGhhbgogICAgcGVyX2Nw dV9wdHIoLi4uLCBzbXBfcHJvY2Vzc29yX2lkKCkpLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBS dXN0eSBSdXNzZWxsIDxydXN0eUBydXN0Y29ycC5jb20uYXU+CiAgICBDYzogVGhvbWFzIEdsZWl4 bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CiAgICBDYzogSW5nbyBNb2xuYXIgPG1pbmdvQGVsdGUu aHU+CiAgICBDYzogRGlwYW5rYXIgU2FybWEgPGRpcGFua2FyQGluLmlibS5jb20+Cgpjb21taXQg OWJhNzAyM2ZkZWJjYTU4ZDM1Zjk3MGJiNjZmYmNkOTE0MDNhOWFiNwpBdXRob3I6IFJ1c3R5IFJ1 c3NlbGwgPHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KRGF0ZTogICBXZWQgRGVjIDMxIDA5OjIxOjU3 IDIwMDggKzEwMzAKCiAgICBhbGxvY19wZXJjcHU6IFVzZSBfX2dldF9jcHVfcHRyIGluIG5ldHdv cmtpbmcKICAgIAogICAgSW1wYWN0OiBzbGlnaHQgZWZmaWNpZW5jeSBpbXByb3ZlbWVudCBvbiBz b21lIGFyY2hzLgogICAgCiAgICBMZXQncyB1c2UgX19nZXRfY3B1X3B0ciBhbmQgZ2V0X2NwdV9w dHIgbm93LCByYXRoZXIgdGhhbgogICAgcGVyX2NwdV9wdHIoLi4uLCBzbXBfcHJvY2Vzc29yX2lk KCkpLgogICAgCiAgICAoVGhlIG5mY29ubnRyYWNrIGNvZGUgc2VlbXMgYSBiaXQgY29uZnVzZWQg b3ZlciB3aGVuIHJhd19zbXBfcHJvY2Vzc29yX2lkKCkKICAgICBzaG91bGQgYmUgdXNlZDogbm90 IGhlcmUpLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBSdXN0eSBSdXNzZWxsIDxydXN0eUBydXN0 Y29ycC5jb20uYXU+CiAgICBDYzogSG9hbmctTmFtIE5ndXllbiA8aG5ndXllbkBkZS5pYm0uY29t PgogICAgQ2M6IENocmlzdG9waCBSYWlzY2ggPHJhaXNjaEBkZS5pYm0uY29tPgogICAgQ2M6IG5l dGRldkB2Z2VyLmtlcm5lbC5vcmcKAAoKIERvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMu dHh0ICAgICAgICAgfCAgICA4ICsKIGFyY2gvYWxwaGEvaW5jbHVkZS9hc20vcGVyY3B1LmggICAg ICAgICAgICAgfCAgIDIxICsrLQogYXJjaC9jcmlzL2FyY2gtdjEwL2tlcm5lbC9lbnRyeS5TICAg ICAgICAgICB8ICAgIDIgKy0gCiBhcmNoL2NyaXMvYXJjaC12MzIvbW0vbW11LlMgICAgICAgICAg ICAgICAgIHwgICAgMiArLSAKIGFyY2gvaWE2NC9pbmNsdWRlL2FzbS9wZXJjcHUuaCAgICAgICAg ICAgICAgfCAgICA1ICstIAogYXJjaC9pYTY0L2tlcm5lbC9pYTY0X2tzeW1zLmMgICAgICAgICAg ICAgICB8ICAgIDQgKy0gCiBhcmNoL2lhNjQvbW0vZGlzY29udGlnLmMgICAgICAgICAgICAgICAg ICAgIHwgICAgMiArLSAKIGFyY2gvcGFyaXNjL2xpYi9maXh1cC5TICAgICAgICAgICAgICAgICAg ICAgfCAgICA4ICstIAogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2h2Q2FsbC5TICAg ICB8ICAgIDIgKy0gCiBhcmNoL3NwYXJjNjQva2VybmVsL3J0cmFwLlMgICAgICAgICAgICAgICAg IHwgICAgOCArLSAKIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oICAgICAgICAgICAgICAg fCAgIDI0ICsrLQogYXJjaC94ODYvaW5jbHVkZS9hc20vdGltZXIuaCAgICAgICAgICAgICAgICB8 ICAgIDUgKy0gCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvYWNwaS1jcHVmcmVxLmMgIHwg ICAgMiArLSAKIGFyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TICAgICAgICAgICAgICAgICAgfCAg ICA0ICstIAogYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUyAgICAgICAgICAgICAgICAgICB8ICAg IDIgKy0gCiBhcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TICAgICAgICAgICAgICAgICAgIHwgICAg MiArLSAKIGFyY2gveDg2L2tlcm5lbC90c2MuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0 ICstIAogYXJjaC94ODYveGVuL3hlbi1hc21fMzIuUyAgICAgICAgICAgICAgICAgICB8ICAgIDQg Ky0gCiBibG9jay9ibGt0cmFjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr LSAKIGNyeXB0by9hc3luY190eC9hc3luY190eC5jICAgICAgICAgICAgICAgICAgfCAgICA1ICst IAogZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9wZXJmbGliLmMgICAgICAgICAgICB8ICAgIDQgKy0g CiBkcml2ZXJzL2RtYS9kbWFlbmdpbmUuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzMiArKy0t CiBkcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2lycS5jICAgICAgIHwgICAgMyArLSAg CiBkcml2ZXJzL25ldC9jaGVsc2lvL3NnZS5jICAgICAgICAgICAgICAgICAgIHwgICAgNSArLSAg CiBkcml2ZXJzL25ldC9sb29wYmFjay5jICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLSAg CiBkcml2ZXJzL25ldC92ZXRoLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQog ZnMvZXh0NC9tYmFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIGZz L25mcy9pb3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCiBmcy94 ZnMveGZzX21vdW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArLQogaW5jbHVk ZS9hc20tZ2VuZXJpYy9wZXJjcHUuaCAgICAgICAgICAgICAgICB8ICAgNjAgKysrKysrLQogaW5j bHVkZS9saW51eC9jb21waWxlci5oICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGluY2x1 ZGUvbGludXgvcGVyY3B1LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTE3ICsrKysrKystLS0t LQogaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFjay5oICAgICAgICB8ICAgIDQgKy0K IGluY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZWNhY2hlLmggfCAgICAyICstCiBp bmNsdWRlL25ldC9zbm1wLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArLQogaW5p dC9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwoga2VybmVs L2xvY2tkZXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKy0KIGtlcm5lbC9t b2R1bGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTU0ICstLS0tLS0tLS0tLS0t LS0KIGtlcm5lbC9wb3NpeC1jcHUtdGltZXJzLmMgICAgICAgICAgICAgICAgICAgfCAgICAyICst CiBrZXJuZWwvc2NoZWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArLQog a2VybmVsL3NjaGVkX3N0YXRzLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGtl cm5lbC9zb2Z0aXJxLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBrZXJu ZWwvc29mdGxvY2t1cC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArLQoga2VybmVs L3NyY3UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGtlcm5lbC9z dG9wX21hY2hpbmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBrZXJuZWwvd29y a3F1ZXVlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogbW0vYWxsb2NwZXJj cHUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNjUgKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tCiBtbS92bXN0YXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgNiArLQogbmV0L2NvcmUvc29jay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDMgKy0KIG5ldC9pcHY0L2FmX2luZXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0 ICstCiBuZXQvaXB2NC9pcF9pbnB1dC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyAr LQogbmV0L2lwdjQvcm91dGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K IG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2VjYWNoZS5jICAgICAgICAgfCAgICA0ICstCiBu ZXQveGZybS94ZnJtX2lwY29tcC5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCArLS0KIDU0 IGZpbGVzIGNoYW5nZWQsIDQ2OSBpbnNlcnRpb25zKCspLCA0NjYgZGVsZXRpb25zKC0pCgo=