From owner-freebsd-mips@FreeBSD.ORG Fri Jan 29 17:17:49 2010 Return-Path: Delivered-To: freebsd-mips@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0A411065693 for ; Fri, 29 Jan 2010 17:17:49 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 7A3EB8FC1F for ; Fri, 29 Jan 2010 17:17:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o0TH87dP032081; Fri, 29 Jan 2010 10:08:07 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Fri, 29 Jan 2010 10:09:02 -0700 (MST) Message-Id: <20100129.100902.775474398290145730.imp@bsdimp.com> To: rrs@lakerest.net From: "M. Warner Losh" In-Reply-To: <5C3F269A-8E9A-4356-B1A1-3D503962F106@lakerest.net> References: <5C3F269A-8E9A-4356-B1A1-3D503962F106@lakerest.net> X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=utf-8 Content-Transfer-Encoding: base64 Cc: freebsd-mips@FreeBSD.org, neelnatu@gmail.com Subject: Re: Code review: groundwork for SMP X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2010 17:17:50 -0000 SW4gbWVzc2FnZTogPDVDM0YyNjlBLThFOUEtNDM1Ni1CMUExLTNENTAzOTYyRjEwNkBsYWtlcmVz dC5uZXQ+DQogICAgICAgICAgICBSYW5kYWxsIFN0ZXdhcnQgPHJyc0BsYWtlcmVzdC5uZXQ+IHdy aXRlczoNCjogTmVlbA0KOiANCjogQ29tbWVudHMgaW4gbGluZQ0KOiANCjogDQo6IE9uIEphbiAy OSwgMjAxMCwgYXQgNzoyNSBBTSwgTmVlbCBOYXR1IHdyb3RlOg0KOiANCjogPiBUaGFua3MgSnVs aSwgUmFuZGFsbCBhbmQgSkMgZm9yIHRoZSBjb21tZW50cy4NCjogPg0KOiA+IEkgdGhpbmsgaXQg aXMgZmFpciB0byBhc2sgdGhhdCB3ZSBkb24ndCBidXJuIGFub3RoZXIgVExCIGVudHJ5IHRvDQo6 IA0KOiAoaXRzIGFjdHVhbGx5IDQgaWYgd2UgdHVybiBvbiBhbGwgNCB0aHJlYWRzIHRoYXQgYXJl IGluIGVhY2gNCjogIGNvcmUgZm9yIFJNSS4uIGVhY2ggdGhyZWFkIGhhcyBhIGNvbXBsZXRlIHJl Z2lzdGVyIHNldCBldGMgc28NCjogIGl0IGlzIGEgdmlydHVhbCBjcHUgOy1vICkNCg0KWWVzLiAg VGhhdCBtaWdodCBiZSBhIHByb2JsZW0uICBZb3UgYXJlIG1vZGVsaW5nIGEgcGFydGlhbCBDUFUg YXMgYQ0KZnVsbCBDUFUuLi4gIFRoYXQncyBvbmUgcmVhc29uIHR1cm5pbmcgb24gaHlwZXJ0aHJl YWRpbmcgZm9yIG1hbnkNCmFwcGxpY2F0aW9uIHdvcmsgbG9hZHMgb24gb2xkZXIgSW50ZWwgQ1BV cyBwcm9kdWNlZCB3b3JzZSByZXN1bHRzIHRoYW4NCndpdGggaXQgb2ZmLi4uDQoNCjogPiBzdG9y ZSB0aGUgcGNwdSBkYXRhLiBTbyBtYXliZSBpdCBtaWdodCBoZWxwIGlmIEkgd2VudCB0aHJvdWdo IHdoYXQNCjogPiBvcHRpb25zIEkgY29uc2lkZXJlZCBiZWZvcmUgc2V0dGxpbmcgb24gdGhpcyBv bmU6DQo6ID4NCjogPiAtIE9uZSBvZiB0aGUgZmlyc3QgdGhpbmdzIHRoYXQgSSBkaWQgaW52ZXN0 aWdhdGUgd2FzIHVzaW5nIHBlci1jcHUNCjogPiBzY3JhdGNoIHJlZ2lzdGVycyBidXQgdGhlIFNp Ynl0ZSBkaWQgbm90IGhhdmUgYW55IGFuZCB0aGV5IGFyZSBub3QNCjogPiBwYXJ0IG9mIHRoZSBN SVBTIGFyY2hpdGVjdHVyZS4NCjogDQo6IFdoaWNoIGlzIGEgc2hhbWUgdGhhdCB0aGV5IGFyZSBu b3QgcGFydCBvZiB0aGUgYXJjaC4uLiBidXQgYXJlDQo6IGp1c3Qgc2hvd2luZyB1cCBpbiByZWNl bnQgY29yZXMuLi4gYnV0IG9oIHdlbGwuLi4NCg0KWWVhLiAgV2UgaGF2ZSB0byB0YWtlIG91ciBt ZWRpY2luZSA6KQ0KDQo6ID4gLSBUaGUgc2Vjb25kIHRoaW5nIEkgY29uc2lkZXJlZCB3YXMgdXNp bmcgYSBwbGF0Zm9ybS1zcGVjaWZpYw0KOiA+IGdldGNwdWlkKCkgdG8gaW5kZXggaW50byB0aGUg c3RydWN0IHBjcHUgcGNwdVtNQVhDUFVdIGFycmF5IHRvIGNvbXB1dGUNCjogPiB0aGUgS1NFRzAg YWRkcmVzcyBvZiBwY3B1IGF0IHJ1bnRpbWUuIEhvd2V2ZXIgdGhpcyB0dXJuZWQgb3V0IHRvIGJl IGENCjogPiBiaXQgbWVzc3kgYmVjYXVzZSB0aGVyZSBhcmUgY29uc3VtZXJzIG9mIGdldGNwdWlk KCkgaW4gZXhjZXB0aW9uDQo6ID4gY29udGV4dCB3aGVyZSB3ZSBhcmUgcmVzdHJpY3RlZCB0byB1 c2luZyBvbmx5IGswIGFuZCBrMSAoYW5kIHNvbWV0aW1lcw0KOiA+IG9ubHkgb25lIG9mIHRoZW0p LiBBbHNvLCBsaWtlIEp1bGkgcG9pbnRlZCBvdXQgZ2V0Y3B1aWQoKSBpcyBzbG93IG9uDQo6ID4g c29tZSBjcHVzIGFuZCBJIGRpZCBub3Qgd2FudCB0byBtYWtlIHRoZSBhc3N1bXB0aW9uIHRoYXQg b25lIGNvdWxkDQo6ID4gd3JpdGUgZ2V0Y3B1aWQoKSB1c2luZyBhIHNpbmdsZSBrMC9rMSByZWdp c3Rlci4NCjogPg0KOiBZZXAuLiBzb3VuZHMgcmVhc29uYWJsZS4uLiBpZiBnZXRjcHVpZCBpcyBz bG93IHRoaXMgaXMgYW4gaXNzdWUgOy0wDQo6IA0KOiA+IFNvLCBoYXZpbmcgdGhlIHBjcHUgcG9p bnRlciBpbiBhIFRMQiBlbnRyeSBkaXZvcmNlcyB1cyBmcm9tIGFueQ0KOiA+IGFzc3VtcHRpb25z IGFib3V0IHRoZSBDUFUgd2UgYXJlIHJ1bm5pbmcgb24uDQo6IA0KOiANCjogVHJ1ZS4uDQo6ID4N CjogPiBJIHRoaW5rIHRoYXQgdGhlcmUgaXMgYSBsZWdpdGltYXRlIGNvbmNlcm4gYWJvdXQgdGhp cyBvbiB0aGUgWExSIC0gYnV0DQo6ID4gZ2l2ZW4gdGhhdCB5b3UgYXJlIHNoYXJpbmcgdGhlIFRM QiBhbW9uZyA0IHRocmVhZHMgSSB0aGluayB0aGVyZSBpcw0KOiA+IHRoZSBiaWdnZXIgaXNzdWUg b2YgdGhlIHdpcmVkIGtzdGFjayBlbnRyaWVzIHRoYXQgeW91IG5lZWQgdG8gc29sdmUNCjogPiBi ZWZvcmUgZXZlbiB0aGlua2luZyBhYm91dCBwY3B1IG1hcHBpbmcuDQo6ID4NCjogDQo6IEFjdHVh bGx5IHRoZSA0IHRocmVhZHMgYXJlIG5vdCBzaGFyaW5nLCBlYWNoIHRocmVhZCBnZXRzIGl0cyBv d24NCjogcGNwdS4uIHdoaWNoIG1lYW5zIEkgbmVlZCA0IFRMQiBlbnRyaWVzLi4gc2lnaC4uDQoN Ck1heWJlIHdlIG5lZWQgdG8gaGF2ZSBhIGJldHRlciBtb2RlbCBmb3IgdGhlIHRocmVhZHMgdGhl bj8gIEJ1dCB0aGF0J3MNCmJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBleGVyY2lzZSA6KQ0KDQo6 ID4gSSBkaWQgbm90IGNvbnNpZGVyIHRoZSBhcHByb2FjaCBzdWdnZXN0ZWQgYnkgSnVsaSB3aGVy ZSB0aGUgcGNwdSBhbmQNCjogPiBrc3RhY2sgcG9pbnRlcnMgY2FuIGJlIHN0YXNoZWQgaW4gYSBz aW5nbGUgd2lyZWQgVExCIGVudHJ5LiBJIG5lZWQNCjogPiBzb21lIHRpbWUgdG8gY2hldyBvbiBp dCBhbmQgcHJvdG90eXBlIGl0Lg0KOiANCjogWWVhaCwgSSBoYXZlIG5vdCBncm9ra2VkIHRoaXMg YXBwcm9hY2ggZWl0aGVyLi4gSSBoYXZlIHRvDQo6IHRoaW5rIGFib3V0IGlmIGl0IHdvdWxkIHdv cmsuLiBobW0gYnV0IHdvdWxkIHlvdSBub3QgaGF2ZSB0bw0KOiBzdGlsbCBpbmRleCB3aGljaCBj cHUgeW91IGFyZSBvbi4uIG9yIGFtIEkgbWlzc2luZyBzb21ldGhpbmcuLi4gbWF5YmUNCjogSSBu ZWVkIHNvbWUgbW9yZSBjb2ZmZWUgOy0pDQoNClRoZSBpZGVhIGhlcmUgaXMgdGhhdCB5b3UgbmVl ZCBhIGtzdGFjayBlbnRyeSBBTllXQVkgdG8gZG8gYW55dGhpbmcNCnVzZWZ1bCB3aXRoIHRoZSB0 aHJlYWQgaW4gdGhlIGtlcm5lbC4gIEp1c3QgZXhwYW5kIGl0IGEgbGl0dGxlIHRvDQppbmNsdWRl IHBjcHUuDQoNCjogSnVsaSdzIGlkZWEgYWJvdXQgdXNpbmcgdGhlIGJhZGFkZHIgcG9pbnRlciBt aWdodCBhY3R1YWxseSBoYXZlDQo6IG1lcml0Li4gSSBrbm93IGl0IHNvdW5kcyB3ZWlyZCBidXQg b25lIGNvdWxkIGhhcm1vbml6ZSB0aGlzIHdpdGgNCjogdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgaWRl YS4uLg0KDQpJIHRoaW5rIHRoYXQgdGhpcyBpZGVhIG5lZWRzIGEgbG90IG9mIHJlc2VhcmNoLiAg SXQgaXMgdW5jbGVhciB0byBtZQ0KdGhlIGV4dGVudCB0byB3aGljaCB2YWx1ZXMgdGhhdCBhcmUg d3JpdHRlbiB0byB0aGlzIHJlZ2lzdGVyIHBlcnNpc3QuDQpQbHVzLCBtb3ZpbmcgdG8gYW5kIGZy b20gQ1AwIHRha2VzIGEgYml0IG9mIGRvaW5nIGZvciB0aGUgQ1BVLCBhbmQNCmhpc3RvcmljYWxs eSBtb3N0IG9mIHRoZSBlcnJhdGEgZm9yIENQVXMgYXJlIGluIHRoZSBDUDAgaGFuZGxpbmcuDQoN CjogQmFzaWNhbGx5IGhhdmUgYSBtYXJjbyB0aGF0ICJ1cGRhdGVzIiB0aGUgcGNwdSBwb2ludGVy IG9uDQo6IGFueSBrZXJuZWwgZW50cnkuIEZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBhIHNjcmF0Y2gg cmVnaXN0ZXIgdGhhdA0KOiBpcyBzZXR1cCBhdCBjcHUgYm9vdCB0aGlzIGlzIGEgbm9wLiBGb3Ig c3lzdGVtcyB0aGF0IGRvbid0IGhhdmUNCjogc2NyYXRjaCByZWdpc3RlciB0aGlzIGRvZXMgdGhl IGNhbGN1bGF0aW9uIHRvIGdldCB0aGUgcGNwdVtjcHVpZF0gYW5kDQo6IHRocm93cyBpdCBpbiB0 aGUgYmFkZGFkciB2YXJpYWJsZS4uIG9mIGNvdXJzZSB0aGlzIHdvdWxkIGhhdmUgdG8NCjogYmUg YWZ0ZXIgcHVsbGluZyBvdXQgdGhlIGJhZGRhZGRyIDstKQ0KOiANCjogVGhlbiB3ZSBqdXN0IHVz ZSBhIG1hY3JvIHRvIGFjY2VzcyB0aGUgcGNwdSAoSSB0aGluayB0aGlzIGFscmVhZHkNCjogZXhp c3RzKS4uIG9uIHN5c3RlbXMgd2l0aCBhIHNjcmF0Y2ggcmVnaXN0ZXIgaXQgcmVmZXJzIHRvIHRo ZQ0KOiBwcm9wZXIgcmVnaXN0ZXIuLiBvbiBzeXN0ZW1zIHdpdGhvdXQgaXRzIHRoZSBiYWRhZGRy IHJlZ2lzdGVyLg0KOiANCjogRWl0aGVyIHdheSBpdHMgYSBzaW5nbGUgcmVnaXN0ZXIgYWNjZXNz IGFuZCBubyBUTEIgZW50cmllcyBidXJuZWQuLi4NCg0KV2VsbCwgdGhhdCdzIG5vdCBlbnRpcmVs eSB0cnVlLiAgVGhlIGluc3RhbnQgeW91IHRvdWNoIHRoZSBQQ1BVIGRhdGEsDQp5b3UnbGwgaGF2 ZSB0byBnbyB0aHJvdWdoIGVpdGhlciBhIEtTRUcwIG1hcHBpbmcsIG9yIGEgVExCIGVudHJ5Lg0K DQo6IEFuZCBJIGRvIHRoaW5rIHdlIFJFQUxMWSBuZWVkIHRvIGxvb2sgaW50byB3aGF0IGl0IHRh a2VzIHRvDQo6IGRvIHN1cGVycGFnZXMuIEkga25vdyBLaXJrIGdhdmUgYSBwcmVzZW50YXRpb24g b24gdGhlbSBhdA0KOiBFdXJvQlNEIGFuZCB0aGVyZSBpbiB0aGUga2VybmVsLi4gYW5kIEkga25v dyB3ZSBuZWVkIHRvDQo6IGRvIHNvbWV0aGluZyB0byBzdXBwb3J0IHRoZW0uIElmIHdlIGRpZCB0 aGF0IGl0IHdvdWxkIGZyZWUNCjogdXAgbG9hZHMgb2YgVExCJ3Mgc2luY2UgZXZlcnkgdGltZSBJ IGFtIGluIHRoZSBkZWJ1Z2dlciBhbmQNCjogbG9vayBhdCB0aGUgVExCIGxpc3QgSSBzZWUgdG9u J3Mgb2Yga2VybmVsIGFkZHJlc3Nlcy4uLi4NCg0KQWxhbiBDb3ggaGFkIGEgc3R1ZGVudCBpbnRl cmVzdGVkIGluIGltcGxlbWVudGluZyB0aGVtIGZvciBNaXBzIGJlZm9yZQ0KTm92YS9CU0Qgd2Fz IGNhbmNlbGxlZC4gIEl0IHNlZW1lZCB0byBiZSBnb29kIGZvciBhIG1hc3RlcidzIG9yIFBoRA0K dGhlc2lzLCBmcm9tIHdoYXQgSSByZWNhbGwgYXQgdGhlIHRpbWUuLi4NCg0KOiBXZSBjb3VsZCBl YXNpbHkgbWFwIG9uZSB3aXJlZCBUTEIgZW50cnkgdGhhdCBwdXRzIHRoZSBlbnRpcmUNCjoga2Vy bmVsIGluIHNvbWUgbGFyZ2UgYmxvY2sgd2l0aCBvbmUgVExCLi4gQW5kIGV2ZW4gb24gUk1JDQo6 IHRoaXMgd291bGQgYmUgImdvb2QiIHNpbmNlIHRoZXkgKGFsbCA0IHRocmVhZHMpIGNvdWxkIHNo YXJlIHRoYXQgb25lDQo6IFRMQiBlbnRyeSBmb3IgdGhlIGVudGlyZSBrZXJuZWwgOy0pDQoNCldl bGwsIHRoZSBlbnRpcmUga2VybmVsIENPREUgaXMgYWxyZWFkeSBpbiBvbmUgZ2lhbnQgVExCIGVu dHJ5IHRoYXQNCmRvZXNuJ3QgYnVybiBhIFRMQiBlbnRyeTogS1NFRzAgOikuICBUaGUgY29kZSwg ZGF0YSBhbmQgQlNTIGVudHJpZXMgaW4NCnRoYXQgYXJlYSBhcmUgYWxsIHJlZmVyZW5jZSB0aHJv dWdoIGtzZWcwLiAgYSBzaW1wbGUgcGNwdVtdIGFycmF5DQp3b3VsZCBsaXZlIGluIGtzZWcwLiAg QnV0IHdpdGggdGhlIG5ldyBkeW5hbWljIHBjcHUgc3R1ZmYsIHdlJ2QgaGF2ZQ0KdG8gYmUgY2Fy ZWZ1bCBzaW5jZSB0aGF0IGlzIG1hbGxvY2VkIGFuZCBkb2Vzbid0IGxvdmUgaW4ga3NlZzAgd2l0 aG91dA0Kc3BlY2lhbCBtYWdpYy4NCg0KV2FybmVyDQoNCjogSnVzdCBzb21lIGVhcmx5IG1vcm5p bmcgdGhvdWdodHMgOy0wDQo6IA0KOiBSDQo6IA0KOiA+DQo6ID4gSSB3b3VsZCBzdGlsbCBsaWtl IHRvIGNvbW1pdCB0aGlzIHNvIGFzIHRvIGtlZXAgbWFraW5nIHByb2dyZXNzIG9uIHRoZQ0KOiA+ IFNNUCBzdXBwb3J0LiBUaGlzIGlzIGEgc21hbGwgcGllY2Ugb2YgdGhlIGJpZ2dlciBnb2FsIG9m IGdldHRpbmcgU01QDQo6ID4gZnVuY3Rpb25hbCBhbmQgY2FuIGJlIHJlcGxhY2VkIGluIHRoZSBm dXR1cmUgaWYgbmVlZCBiZS4NCjogPg0KOiA+IGJlc3QNCjogPiBOZWVsDQo6ID4NCjogPiBPbiBU aHUsIEphbiAyOCwgMjAxMCBhdCAxMDo0MiBQTSwgSnVsaSBNYWxsZXR0IDxqbWFsbGV0dEBmcmVl YnNkLm9yZz4NCjogPiB3cm90ZToNCjogPj4gT24gVGh1LCBKYW4gMjgsIDIwMTAgYXQgMjE6Mjgs IFJhbmRhbGwgU3Rld2FydCA8cnJzQGxha2VyZXN0Lm5ldD4NCjogPj4gd3JvdGU6DQo6ID4+Pj4g WyBVc2luZyBhIHNpbmdsZSB3aXJlZCBUTEIgZW50cnkgZm9yIGtzdGFjayBhbmQgcGNwdSBdDQo6 ID4+Pg0KOiA+Pj4gV2hpY2ggbWVhbnMgeW91IGhhdmUgYSBiaWcgYXJyYXkgdGhhdCB5b3UgYXJl IG9mZnNldHRpbmcuDQo6ID4+DQo6ID4+IE5vdCByZWFsbHkg4oCUIHlvdSBjYW4gaGF2ZSBhIHN0 cnVjdHVyZSBhdCAweGMwMDAwMDAwMDAwMDAwMDB1IChvciB0aGUNCjogPj4gc2FtZSA+PiAzMikg d2l0aCB0d28gcG9pbnRlcnMgaW4gaXQsIGV2ZW4sIG9uZSB0byBwY3B1IGFuZCBvbmUgdG8NCjog Pj4gS1NUQUNLX1BBR0VTIGRpcmVjdC1tYXBwZWQsIGNvbnRpZ3VvdXMgcGFnZXMuICBUaGVuIHlv dSBjYW4gbG9hZCB0aGUNCjogPj4ga3N0YWNrIGFkZHJlc3Mgb3IgdGhlIHBjcHUgYmFzZSB2ZXJ5 IHF1aWNrbHkuICBPZiBjb3Vyc2UsIHlvdSBjYW4gZXZlbg0KOiA+PiBoYXZlIGEgc2luZ2xlIHdp cmVkIGVudHJ5IGNvbnNpc3Rpbmcgb2YgdGhlIHBjcHUgZGF0YSBhbmQgdGhlbiBwdXQgYQ0KOiA+ PiBwb2ludGVyIHRvIHRoZSB0b3Agb2YgdGhlIGtzdGFjayBpbiBpdC4gIEkgZG9uJ3QgdGhpbmsg eW91IGNhbiBnZXQgYnkNCjogPj4gd2l0aCBubyB3aXJlZCBUTEIgZW50cmllcywgYnV0IHlvdSBh bHNvIGRvbid0IGhhdmUgdG8gaW5kZXggYSBiaWcNCjogPj4gYXJyYXkuICBUaGUgbmljZSB0aGlu ZyBhYm91dCBzZXR0aW5nIHVwIGEgcGVyLUNQVSBUTEIgZW50cnkgKHlvdSBoYXZlDQo6ID4+IHRv IHNldCB1cCBhdCBsZWFzdCBvbmUsIHRoZSBrc3RhY2ssIGluIG9yZGVyIHRvIGJlIGFibGUgdG8g aGFuZGxlDQo6ID4+IGV4Y2VwdGlvbnMpIGlzIHRoYXQgdGhlbiB5b3UgbmVlZCBvbmx5IGFjY2Vz cyBvZmZzZXRzIGludG8gaXQgdGhhdCBhcmUNCjogPj4ga25vd24gYXQgY29tcGlsZSB0aW1lIGFu ZCBjb25zdGFudCBubyBtYXR0ZXIgd2hhdCBDUFUgeW91J3JlIHJ1bm5pbmcNCjogPj4gb24uICBM b2FkIHRoZSBrc3RhY2sgYnkgZG9pbmcgImxkIHNwLCAwKDB4Yy4uLikiIGFuZCBsb2FkIHRoZSBw Y3B1DQo6ID4+IGFkZHJlc3MgYnkgZG9pbmcgImxkIHQwLCA4KDB4Yy4uLi4pIi4gIFR3byB3aXJl ZCBlbnRyaWVzIGxldHMgeW91IGdldA0KOiA+PiByaWQgb2YgdGhlIGluZGlyZWN0aW9uLCBidXQg eW91IGNhbiBnZXQgYnkgd2l0aCBvbmUgYW5kIHN0aWxsIG5vdCBoYXZlDQo6ID4+IHRvIGRvICgx KSBydW4tdGltZSBjb21wdXRhdGlvbiBvZiB0aGUgaW5kZXggaW50byBzb21lIGFycmF5ICgyKQ0K OiA+PiBwb3NzaWJseSB2ZXJ5IGV4cGVuc2l2ZSBnZXR0aW5nIG9mIHRoZSBjcHVpZC4NCjogPj4N CjogPj4+IEkgd2FzIGV2ZW4gdGhpbmtpbmcgZ2V0IGEgTEFSR0UgZW50cnkuLiBvbmUgdGhhdCBp cyBzYXkgOCBNZWcNCjogPj4+IGZvciB0aGUga2VybmVsLi4gY292ZXJpbmcgYWxsIHRleHQvZGF0 YSBldGMuLi4gd2l0aCB0aGlzDQo6ID4+PiBuZXcgc3VwZXIgcGFnZSBzdHVmZi4gb2YgY291cnNl IEkgaGF2ZSBuZXZlciBsb29rZWQgaW50byBob3cNCjogPj4+IGl0cyBpbXBsZW1lbnRlZC4uDQo6 ID4+DQo6ID4+IFRoYXQgd291bGQgYmUgZWFzeSB0byBkbywgYnV0IHdoYXQgd291bGQgYmUgdGhl IGJlbmVmaXRzIG9mIGFjY2Vzc2luZw0KOiA+PiB0aGF0IGRhdGEgdGhyb3VnaCBhIHdpcmVkIFRM QiBlbnRyeSBpbnN0ZWFkIG9mIHRoZSBkaXJlY3QgbWFwPw0KOiA+Pg0KOiA+Pj4gWWVzLCB5b3Ug cGF5IGFuIGluZGV4IHJlZmVyZW5jZSBmb3IgZXZlcnkgYWNjZXNzIC4uIG9yIGF0DQo6ID4+PiBs ZWFzdCBvbmUgdG8gc2V0dXAgYSBwb2ludGVyLi4gYnV0IEkgdGhpbmsgdGhhdCBpdCBtdWNoIGNo ZWFwZXINCjogPj4+IHRoYW4gYSBUTEIgbWlzcyBpcy4uLiAod29yZHMgZm9yIGltcCB0byB0aGlu ayBhYm91dCkuLi4NCjogPj4NCjogPj4gWWVzLCBUTEIgbWlzc2VzIGFyZSB2ZXJ5IHNsb3cuICBZ b3VyIGRlc2lyZSB0byBhdm9pZCBhZGRpbmcgYW5vdGhlcg0KOiA+PiB3aXJlZCBlbnRyeSBzZWVt cyBwcmV0dHkgcmVhc29uYWJsZS4gIEkgdGhpbmsgdGhhdCB1c2luZyBhIHNpbmdsZQ0KOiA+PiB3 aXJlZCBUTEIgZW50cnkgZm9yIGEgbXV4IG9yIGZvciBib3RoIHRoZSBrc3RhY2sgYW5kIHBjcHUg aXMgZWFzeSBhbmQNCjogPj4gdXNhYmxlLiAgSSBmZWVsIGxpa2UganVzdCB3aXJpbmcgdGhlIGtz dGFjayBhbmQgcHV0dGluZyBhDQo6ID4+IGRpcmVjdC1tYXBwZWQsIHNvbWV0aW1lcy1yZWNvbXB1 dGVkIHBvaW50ZXIgdG8gdGhlIHBjcHUgaW50byBncCBpcyB0aGUNCjogPj4gYmVzdCBjb21iaW5h dGlvbiBpbiB0aGUgbG9uZyBydW4g4oCUIGV2ZW4ganVzdCBsb2FkaW5nIGFuIGltbWVkaWF0ZQ0K OiA+PiA2NC1iaXQgYWRkcmVzcyBpcyBwcmV0dHkgc2xvdyB3cnQgaG93IG9mdGVuIHRoaW5ncyBp biB0aGUgUENQVSBhcmUNCjogPj4gYWNjZXNzZWQgaW4gU01QIGtlcm5lbHMuDQo6ID4+DQo6ID4+ IEp1bGkuDQo6ID4+DQo6ID4NCjogDQo6IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K OiBSYW5kYWxsIFN0ZXdhcnQNCjogODAzLTMxNy00OTUyIChjZWxsKQ0KOiA4MDMtMzQ1LTAzOTEo ZGlyZWN0KQ0KOiANCjogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCjogZnJlZWJzZC1taXBzQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KOiBodHRwOi8v bGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLW1pcHMNCjogVG8gdW5z dWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8NCjogImZyZWVic2QtbWlwcy11bnN1YnNjcmliZUBm cmVlYnNkLm9yZyINCjogDQo6IA0K