From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id uMH2F0jhb2dMbwEAe85BDQ:P1 (envelope-from ) for ; Sat, 28 Dec 2024 11:30:16 +0000 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id uMH2F0jhb2dMbwEAe85BDQ (envelope-from ) for ; Sat, 28 Dec 2024 12:30:16 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=fSldprur; dkim=fail ("headers rsa verify failed") header.d=proton.me header.s=protonmail header.b=HA9bPe5j; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1735385416; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post:dkim-signature; bh=JZmPUEoCUJES116tqqgcmvGEf9SOprFTkASg1J0HXr8=; b=VGHc8c8canLVBQoQBWLN2gqKDXLJOb0Iq1a5rwDT8aYKYPnL8U1qYPcKbnA45XeqGplFkE ikFQS98q/eOV/uD/wDvDpLU/4eEr/2om5HhX51GxufBGpfyeW9/kgEqNYOjidSxIgHygyk 1gAujsCdJbKbkzFmrziDIvwmAj+wOWA68pk9DBmmm3r3ys+yBwZgH/xC8VQq9nuLMjy+7N Zdq7HMwRxvzWRgpRwYfB67J9vCtZGgFFdUevYj1k3mkaoebeMfshUeaJURXWyp2ror2UjG Q9jbWVurQKxehQzUTU9NQUto4ejqIac4QJPqsABtdj/NAqx4fIyL0BlP8GK+/g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=fSldprur; dkim=fail ("headers rsa verify failed") header.d=proton.me header.s=protonmail header.b=HA9bPe5j; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1735385416; a=rsa-sha256; cv=none; b=EU7NQZLDtM3Z7RJ6TF8qjOzq9vzmuliYkV899l5sVd6Qp7eg/4Ql5gQXTxPDB3fvBr2lia eFVNrk2KhTPHar9+FVjVKps1FUSGQ4h7PhyvNeDUSmqP001rPAKB/fukSk+JF4rmDtGzsa 9EH457RSzmAWGnOcQlUFTZYwRO3/zAt9xKtzZFZ/L43tnPs5jDHd2xRRvw5d0dnYLL8BII eXMonkFGgwexcvcqkstAHKKu++A8rq7hl99TCuSeqy0MimTMe17tZlREPKZ1ONIZnWsrBf Q2ixrBeaZ/yI9lVr0P9xx99kq7dsy856deM6L4jfzHoN7KRu3SituV4wbi+MWg== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D61C630A48 for ; Sat, 28 Dec 2024 12:30:15 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tRV1D-0002Sh-09; Sat, 28 Dec 2024 06:30:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRV18-0002Py-T9 for guix-patches@gnu.org; Sat, 28 Dec 2024 06:30:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tRV18-0007O7-KL for guix-patches@gnu.org; Sat, 28 Dec 2024 06:30:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:From:Date:To:Subject; bh=JZmPUEoCUJES116tqqgcmvGEf9SOprFTkASg1J0HXr8=; b=fSldprurKQQqZ+XiDtVYz4WGvt9iiK8DjtxXgRJDje0xCBfaOVSB0ooY2Kbzo0ylmpFscY3YcsHXT11aKVyqhiRucKFYqk43itrxrLBIEh8NAGmvaywg0ax0wvxfmE1Ph2ErOtMDV/uglDlZ2MHhFyalP5d65hOdaosXyq0b4/3DN6qHVo0R2Z/iROs7byfsybEubv+4ZEipgkZobSJmO45TksPrYUKPYMOics7KalAqu52aN2swJrzwIDxCjp1HEkxnc0z8DjEW9yfJ0lpYoX/fdjXoxprDeoRxOHKtk0UUHfrukgYpqAM0xcTNe09xbFqnV1zHhyjH+EEvEVrzSQ==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tRV18-0007wI-Df for guix-patches@gnu.org; Sat, 28 Dec 2024 06:30:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75161] [PATCH guix-artwork] bootstrapping-mono blog post Resent-From: unmush Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Dec 2024 11:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 75161 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75161@debbugs.gnu.org X-Debbugs-Original-To: "guix-patches@gnu.org" Received: via spool by submit@debbugs.gnu.org id=B.173538535730418 (code B ref -1); Sat, 28 Dec 2024 11:30:02 +0000 Received: (at submit) by debbugs.gnu.org; 28 Dec 2024 11:29:17 +0000 Received: from localhost ([127.0.0.1]:49442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRV0N-0007uV-L5 for submit@debbugs.gnu.org; Sat, 28 Dec 2024 06:29:17 -0500 Received: from lists.gnu.org ([209.51.188.17]:55936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRUCC-0004yL-DW for submit@debbugs.gnu.org; Sat, 28 Dec 2024 05:37:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRUCB-0006wj-B5 for guix-patches@gnu.org; Sat, 28 Dec 2024 05:37:24 -0500 Received: from mail-4319.protonmail.ch ([185.70.43.19]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRUC7-0005Py-4P for guix-patches@gnu.org; Sat, 28 Dec 2024 05:37:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1735382232; x=1735641432; bh=JZmPUEoCUJES116tqqgcmvGEf9SOprFTkASg1J0HXr8=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=HA9bPe5jVNrK8KXrzx8WZ6/UUe4+3zFXveoXJ8Bo9gZj6su0oNTZl6vXvt/4Ug3rq kRP3uUNMgksKffMyq2yOiAtfnT8bCML2S6lo3gmpnC9J79GRzGDHjg5Rnjl1ZvXSIC ReduV928eZ+D+tkv5UGDB7OICB0hnD06Xo8+Di7yz7Agc8Us1ohhs7ZLT0oXPG8J9X Z2c8vplZAPjSBzFATK6hHd2rVWw5vt1iKCp3ey1ixBcR/eqRDCG+Q9xKKKFh5JU3qC Brp/hDBBsgu5hDJ4brMnUZkiUps/AKr+i/B4vr2YhydEjet6iCPndzX5cFK6/OpXvz e71fQ1G+13i+Q== Date: Sat, 28 Dec 2024 10:37:07 +0000 Message-ID: <_CHN47igaF89yOE8_04bA-etmBaLyUK6VrVdI3aJup71WphNJCorP6ud0nsqWnzLOsN9ooCO7nMnrJq6hafo5dtoY-KyCvpuCzzXkA0OqDI=@proton.me> Feedback-ID: 126986417:user:proton X-Pm-Message-ID: a0cbc82f1399840f00852d549b76908bba7653ac MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1=_eSibTKumWlmMGfBngjWf5nPNXJBzqwGekZkUu9FMU" Received-SPF: pass client-ip=185.70.43.19; envelope-from=unmush@proton.me; helo=mail-4319.protonmail.ch X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1, URI_DOTEDU=1.999 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 28 Dec 2024 06:29:14 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: unmush X-ACL-Warn: , unmush via Guix-patches From: unmush via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx12.migadu.com X-Migadu-Spam-Score: -0.00 X-Spam-Score: -0.00 X-Migadu-Queue-Id: D61C630A48 X-TUID: kU1LzMKVNvWT --b1=_eSibTKumWlmMGfBngjWf5nPNXJBzqwGekZkUu9FMU Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I have been told that my writeup on the subject may make a good blog post, so here it is (attached), with some revisions to update formatting and add some discussion of portability issues. - unmush --b1=_eSibTKumWlmMGfBngjWf5nPNXJBzqwGekZkUu9FMU Content-Type: text/x-patch; name=0001-website-add-bootstrapping-mono-blog-post.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-website-add-bootstrapping-mono-blog-post.patch RnJvbSA5MTJhMzBmYTBlNjA0OTVjYjE0YjI4YWQ1Y2YyZWE5YzM5OTRmNDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB1bm11c2ggPHVubXVzaEBoYXNoYmFuZy5zaD4KRGF0ZTogU2F0 LCAyOCBEZWMgMjAyNCAwNDoyNDowNwpTdWJqZWN0OiBbUEFUQ0hdIHdlYnNpdGU6IGFkZCBib290 c3RyYXBwaW5nLW1vbm8gYmxvZyBwb3N0CgoqIHdlYnNpdGUvcG9zdHMvYm9vdHN0cmFwcGluZy1t b25vLm1kOiBuZXcgZmlsZS4KLS0tCiB3ZWJzaXRlL3Bvc3RzL2Jvb3RzdHJhcHBpbmctbW9uby5t ZCB8IDM2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzY5 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWJzaXRlL3Bvc3RzL2Jvb3RzdHJh cHBpbmctbW9uby5tZAoKZGlmZiAtLWdpdCBhL3dlYnNpdGUvcG9zdHMvYm9vdHN0cmFwcGluZy1t b25vLm1kIGIvd2Vic2l0ZS9wb3N0cy9ib290c3RyYXBwaW5nLW1vbm8ubWQKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVkZWZmNAotLS0gL2Rldi9udWxsCisrKyBiL3dlYnNp dGUvcG9zdHMvYm9vdHN0cmFwcGluZy1tb25vLm1kCkBAIC0wLDAgKzEsMzY5IEBACit0aXRsZTog QWRkaW5nIGEgZnVsbHktYm9vdHN0cmFwcGVkIE1vbm8KK2RhdGU6IDIwMjQtMTItMjggMDQ6MTcK K2F1dGhvcjogdW5tdXNoCit0YWdzOiBCb290c3RyYXBwaW5nLCBSZXByb2R1Y2libGUgYnVpbGRz LCBDIywgLk5FVCwgU2VjdXJpdHkKKy0tLQorCitXZSB1c2VkIHRvIGhhdmUgYSBNb25vIHBhY2th Z2UuICBJdCB3YXMgaW50cm9kdWNlZCBvbiBBdWd1c3QgOCAyMDE2IGJ5IGNvbW1pdAorNzYzYjNk NTBiNjI0OWI0M2ZjZWRhNTE0NDViYmViMWY1ZjVmZDdkMCwgYXQgTW9ubyB2ZXJzaW9uIDQuNC4x LjAsIGJ1dCBpdCB3YXMKK2xhdGVyIFtkaXNjb3ZlcmVkXShodHRwczovL2lzc3Vlcy5ndWl4Lmdu dS5vcmcvNTUwMjYpIGluIEFwcmlsIG9mIDIwMjIgdGhhdCB0aGUKK3JlbGVhc2UgdGFyYmFsbCB0 aGF0IGl0IHdhcyBidWlsdCBmcm9tIGluY2x1ZGVkIHByZWJ1aWx0IGJpbmFyaWVzLiAgRnVydGhl cgorcmVzZWFyY2ggcmV2ZWFsZWQgdGhhdCB0aGVzZSBiaW5hcmllcyB3ZXJlIG5vdCBvcHRpb25h bC4gIER1ZSB0byB0aGlzLCBhCitkZWNpc2lvbiB3YXMgbWFkZSB0byByZW1vdmUgdGhlIE1vbm8g cGFja2FnZSwgY2FycmllZCBvdXQgb24gU2VwdGVtYmVyIDEsIDIwMjIuCisKK1dlIG5vdyBvbmNl IGFnYWluIGhhdmUgYSBNb25vIHBhY2thZ2UsIGR1ZSB0byBhIFtwYXRjaAorc2VyaWVzXShodHRw czovL2lzc3Vlcy5ndWl4LmdudS5vcmcvNzQ2MDkpIEkgc3VibWl0dGVkIG9uIE5vdmVtYmVyIDI5 LCB3aGljaAorYWZ0ZXIgc29tZSByZXZpc2lvbnMgd2FzIGNvbW1pdHRlZCBvbiBEZWNlbWJlciAy Mi4gIFRoaXMgcGF0Y2ggc2VyaWVzIGludHJvZHVjZWQKK2EgZnVsbCwgMTctbW9uby1wYWNrYWdl IHNlcXVlbmNlIHRoYXQgdGFrZXMgdXMgZnJvbSBhIG1vbm8tMS4yLjYgYnVpbHQgZnVsbHkKK2Zy b20gc291cmNlIHRvIG1vbm8tNi4xMi4wIGJ1aWx0IGZ1bGx5IGZyb20gc291cmNlLCB1c2luZyBv bmx5IHBhY2thZ2VzIHRoYXQKK2FscmVhZHkgaGF2ZSBmdWxsIGJvb3RzdHJhcCBwYXRocy4gIEkg bWFrZSBubyBwcm9taXNlIHRoYXQgdGhpcyBpcyB0aGUgc2hvcnRlc3QKK29yIG1vc3Qgb3B0aW1h bCBwYXRoLCBidXQgaXQgZXhpc3RzIGFuZCBJIGhhdmUgdmVyaWZpZWQgaXQgd29ya3MuCisKK0Fz IEkndmUgc3BlbnQgd2hhdCBpcyBwcm9iYWJseSBhbiB1bnJlYXNvbmFibGUgYW1vdW50IG9mIHRp bWUgd29ya2luZyB0b3dhcmQKK3RoaXMsIEkgdGhvdWdodCBJJ2Qgc2hhcmUgc29tZSBvZiBteSB0 aG91Z2h0cywgZXhwZXJpZW5jZXMsIGFuZCBjb21tZW50YXJ5LgorU29ycnkgaW4gYWR2YW5jZSBp ZiBpdCBnZXRzIGEgYml0IHJhbWJseSBvciBsZWN0dXJlLWlzaC4KKworIyBQcm9sb2d1ZQorCitJ IHN0YXJ0ZWQgZG93biB0aGlzIHJvYWQgYmVjYXVzZSBzb21lb25lIEknbSB3b3JraW5nIG9uIGEg cHJvamVjdCB3aXRoIGRlY2lkZWQKK3RvIGRlcGVuZCBvbiBhIEMjIHBhY2thZ2UgdGhhdCByZXF1 aXJlcyBDIyAxMi4wIGZlYXR1cmVzLCBhbmQgbXkgcGVyc29uYWwgTW9ubworcGFja2FnZSBiYXNl ZCBvbiB0aGUgdGFyYmFsbCByZWxlYXNlcyAod2hpY2ggaW5jbHVkZSBib290c3RyYXAgYmluYXJp ZXMpIG9ubHkKK3dlbnQgdXAgdG8gQyMgNy4wLiAgVGhpcyBtZWFudCB0aGF0IHRoZSBDIyBwYWNr YWdlIGluIHF1ZXN0aW9uIGRlIGZhY3RvIHJlcXVpcmVkCitzdHJpY3RseSBNaWNyb3NvZnQncyAo ZXIsIEkgbWVhbiwgInRoZSAuTkVUIGZvdW5kYXRpb24iJ3MpIC5ORVQgaW1wbGVtZW50YXRpb24g LQoraGVyZWFmdGVyIHJlZmVycmVkIHRvIGFzICJkb3RuZXQiIC0gYW5kIGEgdmVyeSByZWNlbnQg dmVyc2lvbiBubyBsZXNzLiAgVGhlCitib290c3RyYXBwaW5nIHN0b3J5IHdpdGggZG90bmV0IGlz IFt2ZXJ5CitiYWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb3RuZXQvc291cmNlLWJ1aWxkL2lzc3Vl cy8xOTMwKTsgZXZlbiBiZWdpbm5pbmcgdG8KK3VudGFuZ2xlIGl0IHdvdWxkIHByb2JhYmx5IHJl cXVpcmUgYSByZWxhdGl2ZWx5IG1vZGVybiBDIyBjb21waWxlciwgYW5kCitzb21ldGhpbmcgdGhh dCBhdCBsZWFzdCBzb3J0IG9mIHVuZGVyc3RhbmRzIE1TQnVpbGQuICBBbmQgdGhlcmUncyBub3Qg bXVjaCBwb2ludAordG8gImJvb3RzdHJhcHBpbmciIGRvdG5ldCBmcm9tIHNvbWV0aGluZyB0aGF0 IGlzbid0IGJvb3RzdHJhcHBlZCBpdHNlbGYuICBTbyBJCitmaWd1cmVkIEkgbWF5IGFzIHdlbGwg c3RhcnQgd2l0aCBNb25vLgorCisjIEhpc3RvcnkKKworV2hpbGUgTW9ubyBpcyB0b2RheSBwcm9i YWJseSB0aGUgbW9zdCB3ZWxsLWtub3duIGFsdGVybmF0aXZlIHRvIE1pY3Jvc29mdCdzIC5ORVQK K29mZmVyaW5ncywgaXQgaXMgbm90IHRoZSBvbmx5IG9uZS4gIEluZGVlZCwgaW4gdGhlIGVhcmx5 IDIwMDBzIHRoZXJlIHdlcmUgYXQKK2xlYXN0IDIgY29tcGV0aW5nIGZyZWUgc29mdHdhcmUgaW1w bGVtZW50YXRpb25zOiBNb25vLCBhbmQgRG90R05VJ3MgUG9ydGFibGUuTkVUCisoYWJicmV2aWF0 ZWQgcG5ldCkuICBUaGV5IGRpZmZlcmVkIGluIGdvYWxzLCBsaWNlbnNlcywgYW5kIG1ldGhvZHM6 IFBvcnRhYmxlLk5FVAord2FzIGEgR05VIHByb2plY3QgY29uY2VybmVkIHdpdGgsIGFtb25nIG90 aGVyIHRoaW5ncywgbGltaXRpbmcgdGhlIGFiaWxpdHkgb2YKK01pY3Jvc29mdCB0byBpbXBvc2Ug dmVuZG9yIGxvY2staW4gdmlhIGl0cyBwcm9wcmlldGFyeSAuTkVUIGltcGxlbWVudGF0aW9uIGFu ZAorc29mdHdhcmUgcGF0ZW50cy4gIEFzIGEgR05VIHByb2plY3QsIGl0IHVzZWQgdGhlIEdQTCBm b3IgaXRzIHJ1bnRpbWUgYW5kCitjb21waWxlciwgYW5kIHRoZSBHUEwgd2l0aCBhIGxpbmtpbmcg ZXhjZXB0aW9uIGZvciBpdHMgc3RhbmRhcmQgbGlicmFyeSwKK3BuZXRsaWIuICBNb25vLCBvbiB0 aGUgb3RoZXIgaGFuZCwgdXNlZCBhIG1peCBvZiBtYW55IGNvcHlsZWZ0IGFuZCBwZXJtaXNzaXZl CitsaWNlbnNlczogWDExIGZvciB0aGUgc3RhbmRhcmQgbGlicmFyeSwgR1BMIGZvciB0aGUgY29t cGlsZXIgKGxhdGVyCitkdWFsLWxpY2Vuc2VkIHRvIGFkZCBhbiBYMTEgb3B0aW9uKSwgYW5kIExH UEwgZm9yIHRoZSBydW50aW1lLCB3aXRoIEdQTCBhbmQgTEdQTAorY29kZSBhbHNvIG9mZmVyZWQg InVuZGVyIGNvbW1lcmNpYWwgdGVybXMgZm9yIHdoZW4gdGhlIEdQTCBhbmQgdGhlIExHUEwgYXJl IG5vdAorc3VpdGFibGUiLiAgSW4gMjAxNiBhZnRlciBpdHMgYWNxdWlzaXRpb24gYnkgTWljcm9z b2Z0LCB0aGUgcnVudGltZSB3YXMKK3JlbGljZW5zZWQgdG8gdXNlIHRoZSBFeHBhdCAoTUlUKSBs aWNlbnNlLgorCitCdXQgcGVyaGFwcyBtb3N0IGltcG9ydGFudGx5IHRvIHVzLCB3aGlsZSBNb25v IG9wdGVkIHRvIHdyaXRlIGl0cyBDIyBjb21waWxlciwKK21jcywgaW4uLi4gQyMsIFBvcnRhYmxl Lk5FVCdzIHJ1bnRpbWUgYW5kIEMjIGNvbXBpbGVyIHdlcmUgYm90aCB3cml0dGVuIGluIEMuCitQ b3J0YWJsZS5ORVQgYWxvbmcgd2l0aCB0aGUgZW50aXJlIERvdEdOVSBwcm9qZWN0IChleGNlcHQg Zm9yIExpYkpJVCkgd2FzCitkZWNvbW1pc3Npb25lZCBpbiAyMDEyLCBidXQgdGhlIHNvdXJjZSBp cyBzdGlsbCBhdmFpbGFibGUsIGFuZCBpdCBzdGlsbCB3b3JrcworZmluZSAod2l0aCBhIGZldyBt b2RpZmljYXRpb25zIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgaXRz CitkZXBlbmRlbmNpZXMpLiAgSW4gU2VwdGVtYmVyIG9mIDIwMjIsIEFkYW0gRmFpeiBbc3VibWl0 dGVkCitwYXRjaGVzXShodHRwczovL2lzc3Vlcy5ndWl4LmdudS5vcmcvNTc2MjUpIHRvIHBhY2th Z2UgcG5ldCBhbmQgcG5ldGxpYiwgYWxvbmcKK3dpdGggb25lIG9mIHRoZWlyIGRlcGVuZGVuY2ll cyBuYW1lZCB0cmVlY2MuICBUaGVzZSBwYWNrYWdlcyB3ZXJlIGJhc2VkIG9uIHRoZQorbGFzdCBy ZWxlYXNlIG9mIFBvcnRhYmxlLk5FVCwgdmVyc2lvbiAwLjguMCwgcmVsZWFzZWQgaW4gMjAwNy4g IEkgaW5pdGlhbGx5IHVzZWQKK3RoZXNlIHBhY2thZ2VzIGFzIHRoZSBiYXNpcyBmb3IgbXkgYm9v dHN0cmFwIGVmZm9ydHMsIGFuZCBldmVuIG1hbmFnZWQgdG8gZ2V0Cittb25vLTEuMi42IGJ1aWx0 IHVzaW5nIHRoZW0sIGJ1dCBsYXRlciBkaXNjb3ZlcmVkIHRoYXQgdXNpbmcgYSBtb3JlIHJlY2Vu dAordmVyc2lvbiBmcm9tIGdpdCBtYWRlIGl0IG11Y2ggZWFzaWVyLiAgRm9yIGV4YW1wbGUsIHdo aWxlIHBuZXQtMC44LjAgY2FuIGRvCitwb2ludGVyIGFyaXRobWV0aWMgaW5zaWRlIHVuc2FmZSBj b2RlIGJsb2NrcywgaXQgZG9lc24ndCBzdXBwb3J0IHRoZSBgKz1gIG9yCitgLT1gIG9wZXJhdG9y cyBzcGVjaWZpY2FsbHksIHdoaWNoIHJlcXVpcmVzIGxvdHMgb2YgcGF0Y2hpbmcgKGFmdGVyIGFs bCwgd2hvCit3b3VsZCB1c2UgYHggPSB4ICsgeWAgd2hlbiB5b3UgY291bGQgZG8gYHggKz0geWA/ KS4gIFRoZXJlIGFyZSBtYW55IG90aGVyCitzaW1pbGFyIGltcHJvdmVtZW50cyBpbiB0aGUgZ2l0 IHZlcnNpb24sIHNvIGZvciB0aGlzIHBhdGNoIHNlcmllcyBJJ3ZlIGRlY2lkZWQKK3RvIGdvIHdp dGggcG5ldC1naXQuCisKKyMgVGhlIHN0YXJ0CisKK0FmdGVyIGJ1aWxkaW5nIG1vbm8tMS4yLjYs IEkgdHJpZWQgYSBmZXcgbGF0ZXIgdmVyc2lvbnMsIGFuZCB0aGUgdGhpcmQgb3IgZm91cnRoCitv bmUgd291bGQgYWx3YXlzIGZhaWwgd2l0aCBlcnJvcnMgYWJvdXQgbWlzc2luZyBtZXRob2RzLiAg SXQgdHVybnMgb3V0IHRoYXQgdGhlCityZWFzb24gZm9yIHRoaXMgaXMgdGhhdCwgY29udHJhcnkg dG8gd2hhdCB0aGVpciBtYXJrZXRpbmcgc3VnZ2VzdHMsIEMjIGFuZCBKYXZhCithcmUgbm90ICJ3 cml0ZSBvbmNlLCBydW4gZXZlcnl3aGVyZSIuICBUaGlzIGlzIGJlY2F1c2UgdGhlaXIgY29tcGls ZXJzIHJlbHkgb24KK3RoZSBkZXRhaWxzIG9mIHRoZSBsaWJyYXJpZXMgdGhhdCB0aGUgcHJvZ3Jh bSB3aWxsIGJlIHJ1biB3aXRoIGF0IGNvbXBpbGUtdGltZS4KK1RoaXMgaXMgdXNlZCwgZm9yIGV4 YW1wbGUsIHRvIGRvIG92ZXJsb2FkIHJlc29sdXRpb24uICBTdXBwb3NlLCBmb3IgZXhhbXBsZSwK K3RoYXQgYSBjZXJ0YWluIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgPT1gIG9wZXJhdG9yIGlzIHBy ZXNlbnQgaW4gdmVyc2lvbiAxLjAgb2YKK2EgbGlicmFyeSwgYW5kIHRoZW4gaW4gdmVyc2lvbiAy LjAgb2YgYSBsaWJyYXJ5IGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbgoraXMgaW50cm9k dWNlZC4gIE5vdyBjb2RlIHRoYXQgaXMgY29tcGlsZWQgYWdhaW5zdCB2ZXJzaW9uIDIuMCBtYXkg aW5zdGVhZAorYXV0b21hdGljYWxseSByZWZlcmVuY2UgdGhlIG1vcmUtc3BlY2lmaWMgaW1wbGVt ZW50YXRpb24sIGFzIGlzIGluIGFjY29yZGFuY2UKK3dpdGggdGhlIHJ1bGVzIG9mIEMjLiAgQnV0 IHdoZW4gaXQgaXMgcnVuIHdpdGggdmVyc2lvbiAxLjAsIGl0IHdpbGwgZmFpbCBiZWNhdXNlCit0 aGF0IGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgZXhpc3QuICBJbiBteSBjYXNlLCBmb3Igc29tZSBy ZWFzb24gdGhlIGluaXRpYWwgbWNzCithbmQgY29yZSBsaWJyYXJpZXMgYmVpbmcgYnVpbHQgdG8g Y29tcGlsZSB0aGUgcmVzdCBvZiBNb25vIHdlcmUgYmVpbmcgY29tcGlsZWQKK2FnYWluc3QgYSAy LjAgbGlicmFyeSBhbmQgdGhlbiBydW4gd2l0aCBhIDEuMCBsaWJyYXJ5LiAgSXQgdHVybnMgb3V0 IHRoYXQgdGhpcword2FzIGJlY2F1c2UgbWNzIHVzZXMgbW9ubydzIGNvZGUgZm9yIHByb2R1Y2lu ZyBhc3NlbWJsaWVzICguTkVUIGRsbHMgYW5kIGV4ZXMpLAorYW5kIG1vbm8gZGVjaWRlcyB3aGlj aCB2ZXJzaW9uIHRvIHB1dCBpbiBhbiBhc3NlbWJseSBpdCB3cml0ZXMgYmFzZWQgb24gIndoaWNo CitydW50aW1lIHZlcnNpb24iIGlzIGJlaW5nIHVzZWQsIGFuZCB0aGF0IHZlcnNpb24gaXMgZGVj aWRlZCBhdCBzdGFydHVwIGJhc2VkCitvbi4uLiB0aGUgdmVyc2lvbiB0aGF0IHdhcyBwdXQgaW4g dGhlIGFzc2VtYmx5IGl0IGlzIHJ1bm5pbmcuICBTbyBmb3IgZXhhbXBsZSwKK21vbm8tMS45LjEg d291bGQgcHJvZHVjZSAyLjAgYXNzZW1ibGllcyBiZWNhdXNlIG1vbm8tMS4yLjYgcHJvZHVjZWQg Mi4wCithc3NlbWJsaWVzIGJlY2F1c2UgcG5ldCBwcm9kdWNlZCAyLjAgYXNzZW1ibGllcy4gIFNv IEkgbW9kaWZpZWQgTW9ubydzIHJ1bnRpbWUKK2luIG1vbm8tMS45LjEgdG8gYWxsb3cgZm9yIHRo aXMgdmVyc2lvbiB0byBiZSBvdmVycmlkZGVuIHZpYSBlbnZpcm9ubWVudAordmFyaWFibGUsIGFu ZCBzZXQgaXQgdG8gYHYxLjEuNDMyMmAsIGFuZCB0aGluZ3Mgd2VudCBhIGxvdCBtb3JlIHNtb290 aGx5IGFmdGVyCit0aGF0LgorCitGcm9tIHRoZXJlIG9uIGl0IHdhcyBtb3N0bHkgdGhlIHVzdWFs IHRyaWFsLWFuZC1lcnJvciBwcm9jZXNzIG9mIGlkZW50aWZ5aW5nCit3aGVyZSB0aGluZ3MgaGFk IGJpdHJvdHRlZC4gIEkgbWFkZSBzdXJlIHRvIHVudmVuZG9yIGxpYmdjIHdoZXJldmVyIHBvc3Np YmxlLAordGhvdWdoIGV2ZW50dWFsbHkgYnkgbW9uby00LjkuMCB0aGV5IGV4cGxpY2l0bHkgZHJv cHBlZCBzdXBwb3J0IGluIHRoZWlyCitjb25maWd1cmUgc2NyaXB0IGZvciB1c2luZyBhbnkgbGli Z2Mgb3RoZXIgdGhhbiB3aGF0IHdhcyBidW5kbGVkLCBzbyBhdCB0aGF0Citwb2ludCBJIHN3aXRj aGVkIHRvIHVzaW5nIHRoZWlyIGhvbWVicmV3ZWQgc2dlbiBnYXJiYWdlIGNvbGxlY3Rvci4KKwor IyBBIGNvbmNlcm5pbmcgZGV2ZWxvcG1lbnQKKworT25jZSBJIGdvdCB0byBtb25vLTIuMTEuNCwg dGhvdWdoLCB0aGluZ3MgdG9vayBhIHR1cm4gZm9yIHRoZSBpbnRlcmVzdGluZzogTW9ubworc3Rh cnRlZCB1c2luZyBnaXQgc3VibW9kdWxlcywgYW5kIHRoZSBgKHJlY3Vyc2l2ZT8gI3QpYCBjbG9u ZXMgd2VyZSBhbGwgZmFpbGluZy4KK0l0IHR1cm5zIG91dCB0aGF0IHRoaXMgaXMgYmVjYXVzZSB0 aGVpciBzdWJtb2R1bGVzIHJlZmVyZW5jZSBnaXRodWIuY29tIHVzaW5nCit0aGUgYGdpdDovL2Ag cHJvdG9jb2wuCisKK1RoaXMgaXMgbm90YWJsZSBmb3IgYSBmZXcgcmVhc29ucy4KKworRmlyc3Qs IGdpdGh1YiBkcm9wcGVkIHN1cHBvcnQgZm9yIHRoZSBgZ2l0Oi8vYCBwcm90b2NvbCBpbiAyMDIx LCBzbworcmVjdXJzaXZlIGNsb25lcyB3b24ndCB3b3JrIG5vdy4gIFRoaXMgbWVhbnMgSSBoYXZl IHRvIGV4cGxpY2l0bHkgbGlzdAorb3V0IGV2ZXJ5IHN1Ym1vZHVsZSwgaXRzIGNvbW1pdCwgYW5k IGl0cyBzaGEyNTYgaGFzaCwgZm9yIGV2ZXJ5IE1vbm8KK3ZlcnNpb24gdW50aWwgdGhleSBzd2l0 Y2hlZCB0byB1c2luZyBodHRwIG9yIGh0dHBzLiAgbW9uby0yLjExLjQgaGFzCitvbmx5IDQgc3Vi bW9kdWxlcywgYnV0IHRoYXQgZG9lc24ndCBsYXN0IGZvciBsb25nOiBieSBtb25vLTQuOS4wIGl0 IGhhcworMTQgc3VibW9kdWxlcy4gIEEgc2lnbmlmaWNhbnQgcG9ydGlvbiBvZiB0aGVzZSBwYXRj aGVzIGlzIGp1c3QgbGlzdGluZwordGhlc2Ugc3VibW9kdWxlcyBhbmQgdGhlaXIgaGFzaGVzLiAg SXQncyBhIGJpdCBhbm5veWluZy4KKworVGhlIG1vcmUgY29uY2VybmluZyByZWFzb24sIHRob3Vn aCwgaXMgKndoeSogZ2l0aHViIGRyb3BwZWQgc3VwcG9ydCBmb3IgdGhlCitgZ2l0Oi8vYCBwcm90 b2NvbDogaXQgaXMgdW5lbmNyeXB0ZWQgYW5kIHVuYXV0aGVudGljYXRlZC4gIFRoaXMgaXMgbWl0 aWdhdGVkCitzb21ld2hhdCBieSB0aGUgdXNlIG9mIHNoYS0xIGhhc2hlcyB0byBpZGVudGlmeSBj b21taXRzIGluIHRoZSByZWZlcmVuY2VkCitzdWJtb2R1bGVzLCBwdXR0aW5nIGEgc2lnbmlmaWNh bnQgY29tcHV0YXRpb25hbCBidXJkZW4gb24gYW55b25lIHdobyB3b3VsZCB0cnkKK3RvIGFsdGVy IHdoYXQgd2FzIGZldGNoZWQgY29ycmVzcG9uZGluZyB0byBhIGdpdmVuIHN1Ym1vZHVsZS4gIFNp Z25pZmljYW50bHkKK21vcmUgcmlza3ksIHRob3VnaCwgaXMgdGhlIHByb2Nlc3Mgb2YgKnVwZGF0 aW5nKiBzdWJtb2R1bGVzIHRoYXQgdXNlIGBnaXQ6Ly9gCitVUkxzLiAgSXQgaXMgcXVpdGUgdW5s aWtlbHkgdGhhdCBhIGRldmVsb3BlciBpcyBnb2luZyB0byBpbmRlcGVuZGVudGx5IGNsb25lIG9u ZQorb2YgdGhlIHN1Ym1vZHVsZXMgb3ZlciBodHRwcywgbmF2aWdhdGUgdG8gYSBkZXNpcmFibGUg Y29tbWl0LCBjb3B5IHRoZSBzaGEtMQoraGFzaCwgYW5kIG1hbnVhbGx5IHVwZGF0ZSB0aGUgc3Vi bW9kdWxlIHJlZmVyZW5jZSdzIGNvbW1pdC4gIFRoZXkncmUgZmFyIG1vcmUKK2xpa2VseSB0byBy dW4gYGNkIHN1Ym1vZHVsZTsgZ2l0IHB1bGw7IGNkIC4uOyBnaXQgYWRkIHN1Ym1vZHVsZTsgZ2l0 IGNvbW1pdCAuLi5gCitvciBhbiBlcXVpdmFsZW50LgorCitPZiBjb3Vyc2UsIGFueSBjaGFuZ2Vz IGEgbmV0d29yayBtYW4taW4tdGhlLW1pZGRsZSBtaWdodCB0cnkgdG8gbWFrZSBoZXJlIHdvdWxk CitzdGlsbCBiZSByZWZsZWN0ZWQgaW4gdGhlIGNvbW1pdCBoaXN0b3J5LCBzbyBldmVuIGlmIGEg ZGV2ZWxvcGVyIGRpZCB0aGF0LCB0aGV5CitvciBhbnkgb2YgdGhlaXIgZmVsbG93IGNvbW1pdHRl cnMgY291bGQgc3BvdCBhbnl0aGluZyBzdHJhbmdlIG9yIG1hbGljaW91cyBhbmQKK3BvaW50IGl0 IG91dC4gIEFsc28sIHRoZSBjaGFuZ2VzIGNvdWxkbid0IGJlIHByb3BhZ2F0ZWQgdG8gb3RoZXJz IHRyeWluZyB0byBwdWxsCit0aGVtIHdobyB3ZXJlbid0IG9uIGEgbmV0d29yayBwYXRoIGNvbnRh aW5pbmcgdGhlIE1JVE0gYmVjYXVzZSB0aGUKK3BvdGVudGlhbGx5LW1hbGljaW91cyBjb21taXQg d291bGRuJ3QgYmUgcHJlc2VudCBpbiB0aGUgcmVhbCBzdWJtb2R1bGUncworcmVwb3NpdG9yeS4g IFNvIHRoZSB0cmFuc3BhcmVuY3kgb2YgZ2l0IGNsZWFybHkgc2hvd2luZyBjaGFuZ2VzIHRvIHRl eHQgZmlsZXMsCitjb21iaW5lZCB3aXRoIHRoZSBmYWN0IHRoYXQgc3VyZWx5IG5vIGdpdCBob3N0 aW5nIHBsYXRmb3JtIHdvdWxkIGp1c3QgYWxsb3cKK2FyYml0cmFyeSBlbnRpdGllcyB0byBtYWtl IHdoYXRldmVyIGNvbW1pdHMgdGhleSB3YW50IGFjY2Vzc2libGUgdW5kZXIgYW55CithcmJpdHJh cnkgcmVwb3NpdG9yeSBVUkwsIHJhdGhlciBtaXRpZ2F0ZSB0aGlzIHNlY3VyaXR5IGlzc3VlLgor CitUaGlzIHVzYWdlIG9mIGBnaXQ6Ly9gIFVSTHMgbGFzdGVkIGFsbCB0aGUgd2F5IHVudGlsIFNl cHRlbWJlciAyOCwgMjAyMSwgd2hlbgorZ2l0aHViJ3MgcmVtb3ZhbCBvZiBzdXBwb3J0IGZvciBp dCBmb3JjZWQgdGhlIGRldmVsb3BlcnMgdG8gY2hhbmdlIHRoZW0gdG8KK2h0dHBzLgorCisjIE1l YW53aGlsZSwgaW4gcmVhbGl0eQorCitPbiBOb3ZlbWJlciAyOCwgMjAxNiwgTW9ubyBhZGRlZCBh IHN1Ym1vZHVsZSBuYW1lZCByb3NseW4tYmluYXJpZXMuCitVbnN1cnByaXNpbmdseSwgaXQgaW5j bHVkZWQgYmluYXJ5IGJsb2JzIGZvciBNaWNyb3NvZnQncyBSb3NseW4gY29tcGlsZXIgKHdoaWNo CitJIGJlbGlldmUgaGFkIGJlZW4gb3Blbi1zb3VyY2VkIHNob3J0bHkgcHJpb3IpLiAgRnJvbSBo ZXJlIG9uLCBNb25vJ3MgYnVpbGQKK3N5c3RlbSB3b3VsZCBkZWZhdWx0IHRvIHVzaW5nIHRoZXNl IGJpbmFyaWVzIGZvciBidWlsZGluZyBvbiBsaXR0bGUtZW5kaWFuCitzeXN0ZW1zICh0aG91Z2gg YW5vdGhlciBjb21waWxlciBjb3VsZCBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgYC0td2l0aC1jc2Ng Citjb25maWd1cmUgZmxhZykuICBJIGhhcHBlbiB0byBrbm93IHRoYXQgaXQgaXMgZXh0cmVtZWx5 IHVubGlrZWx5IHRoYXQgbWFueSBNb25vCitkZXZlbG9wZXJzIHVzZWQgdGhpcyBjb25maWd1cmUg ZmxhZy4gIEkga25vdyB0aGlzIGJlY2F1c2UgdGhlIDUuMCBzZXJpZXMgaXMgYW4KK2Fic29sdXRl IHBhaW4gaW4gdGhlIG5lY2sgdG8gYnVpbGQgZnJvbSBzb3VyY2UsIGJlY2F1c2UgdGhleSBjb25z aXN0ZW50bHkgZGVwZW5kCitvbiBuZXcgQyMgZmVhdHVyZXMgKmJlZm9yZSogdGhleSBpbXBsZW1l bnQgdGhlbS4KKworVG8gZ28gb24gYSBicmllZiB0YW5nZW50OiBkb2VzIGFueW9uZSByZW1lbWJl ciBiYWNrIHdoZW4geW91dHViZS1kbCB3YXMKK3RlbXBvcmFyaWx5IHRha2VuIGRvd24gZnJvbSBn aXRodWIgZHVlIHRvIHRoZSBSSUFBJ3MgRE1DQSByZXF1ZXN0PyAgTWFueSB3ZXJlCit1bmhhcHB5 IGFib3V0IHRoYXQuICBPbmUgc3VjaCB1bmhhcHB5IHBlcnNvbiBtYWRlIG5ld3Mgd2hlbiB0aGV5 IFttYWRlIHRoZSBmdWxsCitjb250ZW50cyBvZiB5b3V0dWJlLWRsJ3MgcmVwb3NpdG9yeSBhdmFp bGFibGUgdG8gYWNjZXNzIHRocm91Z2ggdGhlIERNQ0EgcmVxdWVzdAorcmVwb3NpdG9yeV0oaHR0 cHM6Ly9naXN0LmdpdGh1Yi5jb20vbHJ2aWNrLzAyMDg4ZWU1NDY2Y2E1MTExNmJkYWYxZTcwOWRk ZDdjKS4KK0l0IHR1cm5zIG91dCB0aGF0IHRoZXJlIGFyZSBtYW55IGFjdGlvbnMgdGhhdCBvbmUg Y2FuIHRha2Ugb24gZ2l0aHViIHRoYXQgd2lsbAorbWFrZSBhcmJpdHJhcnkgY29tbWl0cyBhdmFp bGFibGUgdW5kZXIgYXJiaXRyYXJ5IHJlcG9zaXRvcnkgVVJMcy4KKworU28sIGluIHJlYWxpdHks IGZvciB0aGUgc3BhbiBvZiB0aW1lIGZyb20gTm92ZW1iZXIgMjgsIDIwMTYgdG8KK1NlcHRlbWJl ciAyOCwgMjAyMSwgYW55Ym9keSBzaXR0aW5nIG9uIHRoZSBuZXR3b3JrIHBhdGggYmV0d2VlbiBn aXRodWIKK2FuZCBhbnkgTW9ubyBkZXZlbG9wZXIgdXBkYXRpbmcgdGhlIHJvc2x5bi1iaW5hcmll cyBzdWJtb2R1bGUgY291bGQKK2RlY2lkZSBvbiBhbnkgYXJiaXRyYXJ5IG5ldyBjb21taXQgdG8g YmUgdXNlZC4gIE9mIGNvdXJzZSwgbWVyZWx5CitpbnNwZWN0aW5nIHRoZSBkaWZmIGZvciB0aGUg Y29tbWl0IHdpbGwgcmV2ZWFsIG5vdGhpbmcgb2YgdXNlLCBiZWNhdXNlCit0aGUgY29udGVudHMg YXJlIGJpbmFyeSBibG9icy4gIEFuZCBub3Qgb25seSBhcmUgdGhlc2UgYmxvYnMgdGhvc2Ugb2Yg YQorY29tcGlsZXIsIHRoZXkgYXJlIHRoZSBibG9icyBvZiBhIGNvbXBpbGVyIHRoYXQgaXMgc3Vy ZSB0byBiZSB1c2VkIHRvCitjb21waWxlIGFub3RoZXIgY29tcGlsZXIsIHdoaWNoIHdpbGwgdGhl biBiZSByZWRpc3RyaWJ1dGVkIGFzIGFuIG9wYXF1ZSwKK25vbi1ib290c3RyYXBwYWJsZSBiaW5h cnkgYmxvYiB0byBiZSB1c2VkIGZvciBjb21waWxpbmcgb3RoZXIgY29tcGlsZXJzLgorCitZb3Ug d291bGQgYmUgaGFyZC1wcmVzc2VkIHRvIGZpbmQgYSBtb3JlIGZlcnRpbGUgYnJlZWRpbmcgZ3Jv dW5kIGZvciBbS2VuCitUaG9tcHNvbiAvIFRydXN0aW5nIFRydXN0CithdHRhY2tzXShodHRwczov L3VzZXJzLmVjZS5jbXUuZWR1L35nYW5nZXIvNzEyLmZhbGwwMi9wYXBlcnMvcDc2MS10aG9tcHNv bi5wZGYpLgorSWYgZXZlcnkgYWdlbnQgb2YgdGhlIE5TQSAoYW5kIHdoYXRldmVyIG90aGVyIGFn ZW5jaWVzLCBpbmNsdWRpbmcgdGhvc2Ugb2Ygb3RoZXIKK2NvdW50cmllcywgaGFkIGFjY2VzcyB0 byB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayB0cmFmZmljKSBzb21laG93IGZhaWxlZCB0bworY2Fw aXRhbGl6ZSBvbiA2IHllYXJzIG9mIG9wcG9ydHVuaXR5IHRvIGNvbXByb21pc2UgYW4gZW50aXJl IHNvZnR3YXJlIGVjb3N5c3RlbQordXNpbmcgb25seSBhIGJhc2ljIE1JVE0gb2YgdW5lbmNyeXB0 ZWQgdHJhZmZpYywgdGhleSBkZXNlcnZlIHRvIGJlIHNhY2tlZC4KK1doZXRoZXIgc3VjaCBhbiBh dHRhY2sgYWN0dWFsbHkgb2NjdXJyZWQgb3Igbm90LCB0aGlzIGlzIGEgY2FzZSBzdHVkeSBpbgor Y2FyZWxlc3NuZXNzIGFuZCB3aHkgYm9vdHN0cmFwcGFiaWxpdHkgaXMgc28gaW1wb3J0YW50OyBk aXNjb3ZlcmluZyBhbGwgdGhpcworbWFkZSBtZSBxdWl0ZSB3b3JyaWVkIGFib3V0IGhhdmluZyB1 c2VkIGEgTW9ubyB2ZXJzaW9uIGJ1aWx0IGZyb20gYmxvYnMKK3ByZXZpb3VzbHksIGFuZCBoYXMg Y29udmluY2VkIG1lIHRoYXQsIGFzIHRpbWUtd2FzdGluZyBhbmQgdGVkaW91cyBhcyB0aGlzCitw cm9qZWN0IGhhcyBiZWVuLCBpdCBpcyBuZXZlcnRoZWxlc3MgcHJvYmFibHkgYW4gaW1wb3J0YW50 IG9uZS4KKworIyBBbm90aGVyIG5vdGUgb24gcm9zbHluLWJpbmFyaWVzCisKK0lmIHlvdSdyZSBn b2luZyB0byB3cml0ZSBhIHNlbGYtaG9zdGluZyBjb21waWxlciwgdGhlIGxlYXN0IHlvdSBjYW4g ZG8gaXMga2VlcAoraXQgc2VsZi1ob3N0aW5nLiAgRGVjaWRpbmcgdG8gd3JpdGUgYSBzZWxmLWhv c3RpbmcgY29tcGlsZXIgaXMgYSB2YWxpZCBjaG9pY2UsCitvZiBjb3Vyc2UsIHdpdGggaXRzIG93 biBtZXJpdHMgYW5kIGRlbWVyaXRzLCBidXQgdGhlcmUgaXMgc29tZXRoaW5nIGJpdHRlcmx5Citw b2V0aWMgYWJvdXQgTW9ubyBzdGFydGluZyBvdXQgcmVxdWlyaW5nIHNwZWNpZmljYWxseSBNaWNy b3NvZnQncyBDIyBjb21waWxlciBpbgorb3JkZXIgdG8gYnVpbGQgKE1vbm8gZGlkIGl0cyBpbml0 aWFsIGJvb3RzdHJhcHBpbmcgdXNpbmcgTWljcm9zb2Z0J3MgcHJvcHJpZXRhcnkKK2NzYyksIGFj aGlldmluZyBpbmRlcGVuZGVuY2UgdGhyb3VnaCBzZWxmLWhvc3RpbmcsIGJlaW5nIGFjcXVpcmVk IGJ5IE1pY3Jvc29mdCwKK2FuZCB0aGVyZWFmdGVyIGNvbWluZyBjcmF3bGluZyBiYWNrIHRvIE1p Y3Jvc29mdCdzIEMjIGNvbXBpbGVyIG9uY2UgbW9yZSBiZWZvcmUKK2V2ZW50dWFsbHkgZHlpbmcu CisKK1RoZSBmdW5ueSB0aGluZyBpcyB0aGF0IGl0J3Mgbm90IGV2ZW4gbmVjZXNzYXJ5LiAgVGhl IGRlcGVuZGVuY2llcyBvbiBuZXcgQyMKK2ZlYXR1cmVzIGFyZSBhbGwgaW4gTW9ubydzIHN0YW5k YXJkIGxpYnJhcnkgKHdoaWNoIGluY3JlYXNpbmdseSBib3Jyb3dlZCBjb2RlCitmcm9tIE1pY3Jv c29mdCdzIGNvcmVmeCBsaWJyYXJ5KSwgbm90IGluIE1vbm8ncyBjb21waWxlci4KKworIyBNb3Jl IGJpbmFyeSBzdWJtb2R1bGVzPworCitFdmVuIGJlZm9yZSByb3NseW4tYmluYXJpZXMsIHRoZXJl IHdhcyBiaW5hcnktcmVmZXJlbmNlLWFzc2VtYmxpZXMsIHdoaWNoCitjb250YWluZWQgcHJlYnVp bHQgInJlZmVyZW5jZSIgYmxvYnMgZm9yIHRoZSB2YXJpb3VzIHZlcnNpb25zIG9mIHRoZSBzdGFu ZGFyZAorbGlicmFyaWVzLiAgVGhlc2UgZXhpc3QsIEkgYXNzdW1lLCBwcmVjaXNlbHkgYmVjYXVz ZSBvZiB0aGUgbGlicmFyeQoraW5jb21wYXRpYmlsaXR5IHByb2JsZW1zIHJlZ2FyZGluZyBvdmVy bG9hZGluZyB0aGF0IEkgbWVudGlvbmVkIGVhcmxpZXIuICBXaGlsZQorbGF0ZXIgdmVyc2lvbnMg b2YgTW9ubyBpbmNsdWRlZCBzb3VyY2VzIGFuZCBhIGJ1aWxkIHN5c3RlbSBmb3IgcHJvZHVjaW5n IHRoZXNlCityZWZlcmVuY2UgYmluYXJpZXMsIG1vbm8tNC45LjAgYW5kIGVhcmxpZXIgZGlkIG5v dC4gIE1vbm8ncyBidWlsZCBzeXN0ZW0gc3RpbGwKK2RlbWFuZGVkICpzb21ldGhpbmcqIHRvIGlu c3RhbGwsIHRob3VnaCwgc28gSSB0b2xkIGl0IHRvIHVzZSB0aGUgcmVhbCBzdGFuZGFyZAorbGli cmFyeSBvZiB0aGUgaW5wdXQgTW9ubyB2ZXJzaW9uLiAgV2hlbiBJIGRpZCBnZXQgdG8gYSBNb25v IHZlcnNpb24gdGhhdCBhdAorbGVhc3QgY2xhaW1lZCB0byBzdXBwb3J0IHJlZ2VuZXJhdGluZyB0 aGUgcmVmZXJlbmNlIGJpbmFyaWVzLCBJIGZvdW5kIHRoYXQgaXQKK2RpZG4ndCB3b3JrIHdpdGgg bWNzIGR1ZSB0byBkaWZmZXJlbmNlcyBpbiB3aGljaCBsaWJyYXJpZXMgaGFkIHRvIGJlIHJlZmVy ZW5jZWQsCitzbyBJIGhhZCB0byBwYXRjaCBpdCB0byBhZGQgYSBidW5jaCBvZiByZWZlcmVuY2Vz IGRldGVybWluZWQgdGhyb3VnaCB0cmlhbCBhbmQKK2Vycm9yLgorCitUaGUgeHVuaXQtYmluYXJp ZXMgc3VibW9kdWxlIHdhcyBhbHNvIGFkZGVkIHNvbWV0aW1lIGJlZm9yZSBtb25vLTUuMS4wLiAg VGhpcworZGVwZW5kZW5jeSBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHJ1biB0aGUgZnVsbCB0ZXN0 IHN1aXRlIHdpdGhvdXQgYmluYXJ5IGJsb2JzLgorUHJlc3VtYWJseSBmb3IgdGhpcyByZWFzb24s IERlYmlhbiBlbGVjdHMgdG8gb25seSBydW4gdGVzdHMgd2l0aGluIHRoZQorYG1vbm8vbWluaS9g IGFuZCBgbW9uby90ZXN0cy9gIHN1YmRpcmVjdG9yaWVzLiAgRm9yIG15IHBhcnQsIEkndmUgZGlz YWJsZWQgYWxsCit0ZXN0cyBleGNlcHQgZm9yIHRob3NlIG9mIG1vbm8tNi4xMi4wLCB0aGUgZmlu YWwgdmVyc2lvbiwgbGltaXRlZCB0byB0aGUgdHdvCithZm9yZW1lbnRpb25lZCBzdWJkaXJlY3Rv cmllcy4gIFRoaXMgaXMgYmVjYXVzZSBpdCB3b3VsZCB0YWtlIGV4dHJhIHRpbWUgZm9yIHRoZQor YnVpbGRzLCBiZWNhdXNlIHNldmVyYWwgb2YgdGhlIHRlc3RzIGRlcGVuZCBvbiBiaW5hcnkgYmxv YnMgYnVuZGxlZCBpbnRvIHRoZQorTW9ubyByZXBvc2l0b3J5IGl0c2VsZiAod2hpY2ggbXkgdGhv cm91Z2ggY2xlYW5pbmcgb2YgYWxsIGRsbHMgYW5kIGV4ZXMgZnJvbSB0aGUKK3NvdXJjZXMgcmVt b3ZlcyksIGJlY2F1c2UgYSBsYXJnZSBjaHVuayBvZiB0aGUgdGVzdHMgZGVwZW5kIG9uIGJpbmFy eSBibG9icyBpbgoreHVuaXQtYmluYXJpZXMgaW4gbGF0ZXIgdmVyc2lvbnMsIGFuZCBiZWNhdXNl ICJleHBlY3Qgc29tZSB0ZXN0IGZhaWx1cmVzIiBpcworcGFydCBvZiB0aGUgTW9ubyBkb2N1bWVu dGF0aW9uIGFuZCBJIGRvbid0IGhhdmUgdGhlIHRpbWUgdG8gZmlndXJlIG91dCBmb3IgdGhlCitN b25vIGRldmVsb3BlcnMgZXZlcnkgcmVhc29uIHdoeSBlYWNoIG9mIDE3IHZlcnNpb25zIG9mIHRo ZWlyIHRlc3Qgc3VpdGUgaXMKK2Jyb2tlbi4KKworIyBUaGUgbG9uZyBtYXJjaCB0aHJvdWdoIHRo ZSA1LjBzCisKK1RoZSA1LjAgc2VyaWVzIHdhcyB3aGVuIE1pY3Jvc29mdCBhY3F1aXJlZCBNb25v LCBhbmQgaXQgc2hvd3MuICBZb3UnbGwgbm90aWNlIEkKK25lZWRlZCB0byBpbnRyb2R1Y2UgYHBy ZS1gIHBhY2thZ2VzIGZvciB2YXJpb3VzIHZlcnNpb25zIGJlY2F1c2UgaW4gc2V2ZXJhbAorY2Fz ZXMgYSB0YWdnZWQgcmVsZWFzZSBjb3VsZCBub3QgYnVpbGQgdGhlIGZvbGxvd2luZyB0YWdnZWQg cmVsZWFzZS4gIEZvciB0aGF0CittYXR0ZXIsIHRoZXkgY291bGRuJ3QgYnVpbGQgdGhlIGBwcmUt YCBwYWNrYWdlIGVpdGhlciwgYnV0IGl0IGF0IGxlYXN0IHRvb2sKK2Zld2VyIHBhdGNoZXMgdG8g Z2V0IHRoZW0gd29ya2luZy4gIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBNb25vIGFkZGVk IGEKK2RlcGVuZGVuY3kgb24gTWljcm9zb2Z0J3MgY29yZWZ4IGxpYnJhcnkgc291cmNlIGNvZGUs IGFuZCBpdCB1c3VhbGx5IHN0YXJ0ZWQKK3VzaW5nIEMjIGZlYXR1cmVzIHdlbGwgYmVmb3JlIG1j cyB3YXMgYWJsZSB0byBjb21waWxlIHRoZW0uICBCZWNhdXNlIG9mIHRoaXMsCitkZXNwaXRlIHRh a2luZyA4IHZlcnNpb25zIHRvIGdldCBmcm9tIDEuMi42IHRvIDQuOS4wLCBpdCB0b29rIGFub3Ro ZXIgOCB2ZXJzaW9ucwordG8gZ2V0IHRocm91Z2ggdGhlIDUuMCBzZXJpZXMsIGFuZCA1IG9mIHRo ZW0gcmVxdWlyZWQgbm9udHJpdmlhbCBwYXRjaGluZyB0bworbWFzc2FnZSB0aGUgc291cmNlIGlu dG8gYSBmb3JtIGNvbXBpbGFibGUgYnkgbWNzLgorCisjIFRoZSBmaW5hbCBzdHJldGNoCisKK0V2 ZW50dWFsbHkgSSByZWFsaXplZCB0aGF0IHRoZSBkZXBlbmRlbmNpZXMgb24gbmV3IGZlYXR1cmVz IHdlcmUgYWxsIGNvbWluZyBmcm9tCitjb3JlZngsIG5vdCBmcm9tIE1vbm8ncyBjb21waWxlci4g IENvbnNlcXVlbnRseSwgdGhlIG9ubHkgcmVhc29uIGZvciB0aGlzCitwYXJ0aWN1bGFyIGJvb3Rz dHJhcC1ob3N0aWxlIG9yZGVyaW5nIG9mIGJ1aWxkcyBpcyB0aGF0IGl0IGhhcHBlbmVkIHRvIGJl IHRoZQorb3JkZXIgdGhlIE1vbm8gZGV2cyBjb21taXR0ZWQgdGhpbmdzLiAgU28gSSBqdXN0IGNo ZXJyeS1waWNrZWQgZXZlcnkgY29tbWl0IEkKK2NvdWxkIGZpbmQgdG91Y2hpbmcgYG1jcy9tY3Ng IChtYWdpdCB3YXMgcXVpdGUgdXNlZnVsIGZvciB0aGlzKSBhbmQgYXBwbGllZCBpdAordG8gNS4x MC4wIHRvIHByb2R1Y2Ugd2hhdCBpcyBlc3NlbnRpYWxseSB0aGUgNi4xMi4wIGNvbXBpbGVyLCB0 aGVuIHVzZWQgaXQgdG8KK2p1bXAgc3RyYWlnaHQgdG8gYnVpbGRpbmcgNi4xMi4wLgorCitVc2Ug b2YgdGhpcyB0ZWNobmlxdWUgZWFybGllciBvbiBpbiB0aGUgYm9vdHN0cmFwIHByb2Nlc3MgbWF5 IGJlIG9mIGludGVyZXN0IHRvCithbnlvbmUgbG9va2luZyB0byBzaG9ydGVuIHRoZSBjaGFpbiBv ZiBwYWNrYWdlcy4KKworIyBUaGUgZmluaXNoaW5nIHRvdWNoZXMKKworTXkgaW5pdGlhbCBnb2Fs IHdhcyB0byBwYWNrYWdlIGRvdG5ldCwgYW5kIEkgaGFkIHRyaWVkIHRvIHByb2dyZXNzIHRvd2Fy ZCB0aGF0Citmcm9tIG1vbm8tNC45LjAgZm9yIGEgcGVyaW9kLCBidXQgd2l0aCBubyBzdWNjZXNz LiAgRHVyaW5nIHRoYXQgdGltZSwgdGhvdWdoLCBJCitkaWQgZW5jb3VudGVyIGEgYnVnIGluIE1v bm8ncyB4YnVpbGQgY29uZGl0aW9uIHBhcnNlciwgd2hpY2ggSSB3cm90ZSBhIHBhdGNoCitmb3Is IGFuZCBpbmNsdWRlZCBpbiBtb25vLTYuMTIuMC4KKworSSBhbHNvIGRpc2NvdmVyZWQgdGhhdCB4 YnVpbGQgd291bGQgd3JvbmdseSBjb21wbGFpbiBhYm91dCBtaXNzaW5nIHJlZmVyZW5jZXMKK2V2 ZW4gd2hlbiB0aGUgcHJvcGVyIGFzc2VtYmxpZXMgd2VyZSBpbiBgTU9OT19QQVRIYCBvciBgTU9O T19HQUNfUFJFRklYYCwKK2JlY2F1c2UgeGJ1aWxkIHdvdWxkIGVycm9uZW91c2x5IG9ubHkgY29u c2lkZXIgdGhlIHBhdGgKK2AvZ251L3N0b3JlLy4uLm1vbm8tNi4xMi4wL2xpYi9tb25vL2dhY2Ag d2hlbiBsb29raW5nIGZvciBnbG9iYWwgYXNzZW1ibHkKK2NhY2hlcywgY29tcGxldGVseSBpZ25v cmluZyBgTU9OT19HQUNfUFJFRklYYC4gIFNvIEkgd3JvdGUgYSBwYXRjaCB0byBmaXggdGhhdCwK K2FuZCBpbmNsdWRlZCBpdCBpbiBtb25vLTYuMTIuMC4KKworSGF2aW5nIHdpdG5lc3NlZCBob3cg bXVjaCBuaWNlciBpdCBpcyB0byBwYWNrYWdlIHRoaW5ncyB0aGF0IHVzZSBycGF0aCAvIHJ1bnBh dGgKK3RoYW4gdGhpbmdzIHRoYXQgdXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyAobGlrZSBweXRo b24pIGFuZCB0aGVyZWZvcmUgcmVxdWlyZQorY29uc3RhbnQgd3JhcHBpbmcgb2YgZXhlY3V0YWJs ZXMgYW5kIHVzZSBvZiBwcm9wYWdhdGVkLWlucHV0cywgSSBkZXZpc2VkIGEgcGF0Y2gKK3RoYXQg d291bGQgZXh0ZW5kIE1vbm8ncyBwZXItYXNzZW1ibHkgY29uZmlnIGZpbGVzIHRvIHN1cHBvcnQg YSBgPHJ1bnBhdGg+YAorZWxlbWVudC4gIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhIGZpbGUg YC90bXAvZGlyMi90ZXN0Mi5leGVgLCBhbmQgdGhlcmUgaXMKK2Fsc28gYSBmaWxlIGAvdG1wL2Rp cjIvdGVzdDIuZXhlLmNvbmZpZ2AsIGFuZCBpdHMgY29udGVudHMgYXJlCisKK2BgYCB4bWwKKzw/ eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8Y29uZmlndXJhdGlvbj4KKyAg PHJ1bnBhdGggcGF0aD0iL3RtcC9kaXIxIi8+Cis8L2NvbmZpZ3VyYXRpb24+CitgYGAKKworYW5k IGl0IHJlZmVyZW5jZXMgYHRlc3QxLmRsbGAsIGl0IHdpbGwgZmlyc3QgbG9vayBmb3IgaXQgYXQK K2AvdG1wL2RpcjEvdGVzdDEuZGxsYC4gIE5vdGUgdGhhdCwgb2YgY291cnNlLCBgdGVzdDEuZGxs YCBzdGlsbCBuZWVkcyB0byBiZQorYWNjZXNzaWJsZSB0byB0aGUgY29tcGlsZXIgYXQgY29tcGls ZS10aW1lIHRocm91Z2ggYE1PTk9fUEFUSGAgb3IgYW4KK2V4cGxpY2l0bHktc3BlY2lmaWVkIHBh dGggcGFzc2VkIG9uIHRoZSBtY3MgY29tbWFuZCBsaW5lLgorCitJdCBpcyBteSBob3BlIHRoYXQg dGhpcyBmZWF0dXJlIHdpbGwgYmUgb2YgdXNlIHRvIGFueWJvZHkgaW50ZXJlc3RlZCBpbgorZGV2 ZWxvcGluZyBhIGJ1aWxkIHN5c3RlbS4KKworIyBGdXR1cmUgd29yaworCitNb25vIGhhZCBzZXZl cmFsIGRpZmZpY3VsdCBwb2ludHMgaW4gYm9vdHN0cmFwcGluZyBhbmQgcGFja2FnaW5nLCBidXQg YXQgdGhlIGVuZAorb2YgdGhlIGRheSBpdCBzdGlsbCBtZXQgdGhlIGJhc2ljIGRlc2NyaXB0aW9u IG9mIGEgc29mdHdhcmUgcGFja2FnZToKK3dlbGwtZGVmaW5lZCBlbnZpcm9ubWVudC1zdXBwbGll ZCBpbnB1dHMgYW5kIHNvdXJjZXMsIGEgdXNlci1zdXBwbGllZCBpbnN0YWxsCitwcmVmaXgsIGFu ZCBmaWxlcyBpbnN0YWxsZWQgdW5kZXIgdGhhdCBwcmVmaXguCisKK1RoZSBkb3RuZXQgd29ybGQg aXMgYW4gZW50aXJlbHkgZGlmZmVyZW50IGJlYXN0LiAgVGhlIGZpcnN0IHN0ZXAgb2YgbW9zdCBi dWlsZAorc3lzdGVtcyBJIGhhdmUgZW5jb3VudGVyZWQgZnJvbSB0aGF0IHJlYWxtIGlzIGRvd25s b2FkaW5nIGFuIGVudGlyZSB0b29sY2hhaW4sCithbW9uZyBvdGhlciBkZXBlbmRlbmNpZXMsIGFz IGEgYmluYXJ5IGJsb2IuICBUaGV5IGhlYXZpbHkgZGVwZW5kIG9uIHRoZSBleGFjdAorcGFja2Fn ZXMgdGhleSBzcGVjaWZ5IGJlaW5nIGF2YWlsYWJsZSBleGFjdGx5IHdoZXJlIHRoZXkgc2F5IHRv IGluc3RhbGwgdGhlbS4KK1RoZXJlIGlzIG5vICJpbnN0YWxsIiwgdGhlcmUgYXJlIG5vICJpbnN0 YWxsIGRpcmVjdG9yaWVzIiB0byBteSBrbm93bGVkZ2UuICBBCitidWlsZCB0aGF0IGRvZXNuJ3Qg Y29udGFjdCBudWdldC5vcmcgaXMgYW4gYWJlcnJhdGlvbi4gIEkgYW0gYXQgYSBsb3NzIGhvdyB0 bworYnVpbGQgdGhlc2UgdGhpbmdzLCBtdWNoIGxlc3MgcGFja2FnZSB0aGVtLiAgSSBiYWRseSBu ZWVkIGhlbHAuCisKK1RoZXJlIGFyZSBhbHNvIHNvbWUgcG9ydGFiaWxpdHkgaXNzdWVzIHdpdGgg dGhlIGN1cnJlbnQgYm9vdHN0cmFwIHBhdGguICBXaGlsZQorUG9ydGFibGUuTkVUIGNhbiBmYWxs IGJhY2sgdG8gYW4gaW50ZXJwcmV0ZXIgd3JpdHRlbiBpbiBDIHdoZXJlIExpYkpJVCBpc24ndAor c3VwcG9ydGVkLCBvbGQgdmVyc2lvbnMgb2YgTW9ubyBoYXZlIG5vIHN1Y2ggY2FwYWJpbGl0eS4g IFN0cmljdGx5IHNwZWFraW5nLAordGhlcmUgaXMgc29tZSBiaXRyb3R0ZWQgY29kZSBmb3IgYW4g aW50ZXJwcmV0ZXIgdGhhdCB1c2VkIHRvIHdvcmssIGJ1dCBoYXMKK3N0b3BwZWQgd29ya2luZyBi eSBtb25vLTEuMi42LiAgSXQgd2FzIGxlZnQgdW5tYWludGFpbmVkIHVudGlsIGl0IHdhcyBldmVu dHVhbGx5CityZW1vdmVkIGluIDIwMTQsIG9ubHkgdG8gYmUgW3Jldml2ZWQgaW4KKzIwMTddKGh0 dHBzOi8vd3d3Lm1vbm8tcHJvamVjdC5jb20vbmV3cy8yMDE3LzExLzEzL21vbm8taW50ZXJwcmV0 ZXIvKS4gIFRoaXMKK3Bvc2VzIGEgZGlsZW1tYSBmb3IgYW55Ym9keSB3YW50aW5nIHRvIGJvb3Rz dHJhcCBNb25vIG9uIGEgcGxhdGZvcm0gdGhhdCB3YXNuJ3QKK3N1cHBvcnRlZCBieSBtb25vLTEu Mi42J3MgSklUIGNvbXBpbGVyLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHdheXMg dG8KK3RyeSByZXNvbHZpbmcgdGhpcywgcmFuZ2luZyBmcm9tIGJhY2twb3J0aW5nIHRoZSBuZXcg aW50ZXJwcmV0ZXIsIHRvIGZpeGluZyB1cAordGhlIG9sZCBvbmUgZm9yIGV2ZXJ5IHZlcnNpb24g cHJpb3IgdG8gdGhlIG5ldyBpbnRlcnByZXRlciwgdG8gZm9yd2FyZC1wb3J0aW5nCit0aGUgb2xk IGNvbXBpbGVyIGFuZCBjbGFzcyBsaWJyYXJpZXMgdG8gdGhlIG5ldyBpbnRlcnByZXRlciwgZXRj LgorCitUaGUgbW9zdCBpbnRlcmVzdGluZyBvcHRpb24sIHRob3VnaCwgaW4gbXkgb3Bpbmlvbiwg d291bGQgYmUgdG8gcG9ydCBtY3MgdG8KK1BvcnRhYmxlLk5FVC4gIFRoaXMgd291bGQgYWNoaWV2 ZSB0aGUgaW50ZW5kZWQgcG9ydGFiaWxpdHksIHdoaWxlIGFsc28gYWxsb3dpbmcKK2luZGl2aWR1 YWwgYnVpbGRzIHRvIGJlIG11Y2ggZmFzdGVyIHNpbmNlIHdlJ3JlIG9ubHkgYnVpbGRpbmcgbWNz LCBub3QgdGhlCitydW50aW1lIGFuZCBjbGFzcyBsaWJyYXJ5IGVhY2ggdGltZS4gIEl0IHdvdWxk IGFsc28gYWxsb3cgdXMgdG8gbWFrZSBtdWNoIGJpZ2dlcgordmVyc2lvbiBqdW1wcywgc2luY2Us IGFzIHdlIGRpc2NvdmVyZWQgZWFybGllciwgbWFueSBvZiB0aGUgbmV3IEMjIGZlYXR1cmUKK2Rl cGVuZGVuY2llcyBpbiBNb25vIGNvbWUgZnJvbSB0aGUgY2xhc3MgbGlicmFyeSByYXRoZXIgdGhh biB0aGUgY29tcGlsZXIuICBTdWNoCithIHNob3J0ZW5lZCBib290c3RyYXAgY291bGQgYWxzbyBt YWtlIHRoZSBib290c3RyYXAgcGF0aCBtb3JlIGFwcGVhbGluZyBmb3IKK290aGVyIGRpc3RyaWJ1 dGlvbnMgdG8gdXNlIGluc3RlYWQgb2YgYmluYXJpZXMuCisKKyMgQ2xvc2luZyB0aG91Z2h0cwor Cis+ICJZb3Ugd2lzaCBub3cgdGhhdCBvdXIgcGxhY2VzIGhhZCBiZWVuIGV4Y2hhbmdlZC4gIFRo YXQgSSBoYWQgZGllZCwgYW5kIERvdEdOVQorPiBoYWQgbGl2ZWQ/IgorPgorPiAiLi4uIFllcy4g IEkgd2lzaCB0aGF0LiIKKworTWFpbnRlbmFuY2Ugb2YgTW9ubyB3YXMgcmVjZW50bHkgdHJhbnNm ZXJyZWQgb3ZlciB0byBXaW5lSFEuICBXaXRoIHRoYXQKK2Fubm91bmNlbWVudCB0aGlzIHN0YXRl bWVudCB3YXMgcGxhY2VkIGF0IGh0dHBzOi8vd3d3Lm1vbm8tcHJvamVjdC5jb206CisKKz4gIldl IHdhbnQgdG8gcmVjb2duaXplIHRoYXQgdGhlIE1vbm8gUHJvamVjdCB3YXMgdGhlIGZpcnN0IC5O RVQgaW1wbGVtZW50YXRpb24KKz4gb24gQW5kcm9pZCwgaU9TLCBMaW51eCwgYW5kIG90aGVyIG9w ZXJhdGluZyBzeXN0ZW1zLiBUaGUgTW9ubyBQcm9qZWN0IHdhcyBhCis+IHRyYWlsYmxhemVyIGZv ciB0aGUgLk5FVCBwbGF0Zm9ybSBhY3Jvc3MgbWFueSBvcGVyYXRpbmcgc3lzdGVtcy4gSXQgaGVs cGVkCis+IG1ha2UgY3Jvc3MtcGxhdGZvcm0gLk5FVCBhIHJlYWxpdHkgYW5kIGVuYWJsZWQgLk5F VCBpbiBtYW55IG5ldyBwbGFjZXMgYW5kIHdlCis+IGFwcHJlY2lhdGUgdGhlIHdvcmsgb2YgdGhv c2Ugd2hvIGNhbWUgYmVmb3JlIHVzLiIKKworSSB3b3VsZCBsaWtlIHRvIGNsYXJpZnkgdGhhdCwg W2FjY29yZGluZyB0byBNaWd1ZWwgZGUgSWNhemEKK2hpbXNlbGZdKGh0dHBzOi8vd3d3Lm1vbm8t cHJvamVjdC5jb20vYXJjaGl2ZWQvbWFpbHBvc3RlYXJseXN0b3J5LyksIERvdEdOVQorInN0YXJ0 ZWQgd29ya2luZyBvbiB0aGUgc3lzdGVtIGFib3V0IHRoZSBzYW1lIHRpbWUiLiAgQWNjb3JkaW5n IHRvIFt0aGlzIERvdEdOVQorbmV3c2xldHRlcl0oaHR0cHM6Ly9sd24ubmV0LzIwMDIvMDEwMy9h L2RvdGdudS5waHAzKSwgUG9ydGFibGUuTkVUIGJlZ2FuICJpbgorSmFudWFyeSAyMDAxIi4gIFdo aWxlIGl0J3MgdW5jbGVhciBleGFjdGx5IHdoZW4gUG9ydGFibGUuTkVUIHJlYWNoZWQgdmFyaW91 cworbWlsZXN0b25lcywgYW5kIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHZhcmlvdXMgbWlsZXN0 b25lcyB2YXJpZXMgc29tZXdoYXQgKGZvcgorZXhhbXBsZSwgTW9ubyBwcm9iYWJseSBkb2VzIG5v dCBjYXJlIHRoYXQgUG9ydGFibGUuTkVUIGFsc28gaW5jbHVkZXMgYSBKYXZhIGFuZAorQyBjb21w aWxlciksIEkgdGhpbmsgdGhhdCB0aGVyZSBpcyBjYXVzZSB0byBkaXNwdXRlIHRoZSBjbGFpbSB0 aGF0IE1vbm8gd2FzICJ0aGUKK2ZpcnN0IiAuTkVUIGltcGxlbWVudGF0aW9uIG9uIExpbnV4Lgor CitPbiBhIHJlbGF0ZWQgbm90ZSwgaWYgd2UgaGF2ZW4ndCBsb29rZWQgYXQgdGhlIHBvc3NpYmls aXR5IG9mIHVzaW5nIFBvcnRhYmxlLk5FVAoraW4gdGhlIEphdmEgYm9vdHN0cmFwIHByb2Nlc3Ms IGl0IG1heSBiZSB3b3J0aCB2aXNpdGluZyBhdCBzb21lIHBvaW50LgorCitUaGFuayB5b3UgdG8g dGhlIERvdEdOVSBwcm9qZWN0LCBmb3IgdGhlIC5ORVQgaW1wbGVtZW50YXRpb24gdGhhdCBtYWRl IHRoaXMKK2Jvb3RzdHJhcCBwb3NzaWJsZSwgQWRhbSBGYWl6LCBmb3IgdGhlIGluaXRpYWwgcGFj a2FnaW5nIG9mIGl0IHRoYXQgbGV0IG1lIGp1bXAKK3N0cmFpZ2h0IGluLCB0aGUgTW9ubyBwcm9q ZWN0LCBmb3IuLi4gTW9ubywgYW5kIHlvdSwgZm9yIHlvdXIgdGltZS4KLS0gCjIuNDUuMgoK --b1=_eSibTKumWlmMGfBngjWf5nPNXJBzqwGekZkUu9FMU--