From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id yJmkCNWTUmUduwAAG6o9tA:P1 (envelope-from ) for ; Mon, 13 Nov 2023 22:23:33 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id yJmkCNWTUmUduwAAG6o9tA (envelope-from ) for ; Mon, 13 Nov 2023 22:23:33 +0100 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 BE86D46F74 for ; Mon, 13 Nov 2023 22:23:32 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=MkLT0weH; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); 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" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1699910613; a=rsa-sha256; cv=none; b=EIqdQwp/ozwYy3NP7Ho1mNcRiePBfQOi4/XrRqM9kZzhwbOcU4AUFyl0ien/Mf2584vHlY JnyA9CueGS/K3ITb6WR+xkcngZC9a7NSlkzqNiyxTfbWDMnO5E4pYAuJlOObvh2d4cBYcC vBLTxeUKXNmGW0yCH6EmopTOHdAaW98yFDEY6NN8yYzFgAWa/Q7/FtyIC6B+S2c5t2bX6K o+uXL84HpF0IQK57Yu+9esK2X535Mf5HZa25aUymz/9zEgFcOyBZvHrVGhIfZhG9tzdIw4 Ldg1PM8YHGKAbmcr1kCCNB0jgw4+bU3hdw30q4GDgPTxa3RlMFtr58XVNZ5IMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1699910613; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=mkBe5/5aVbvpeYOj/jFT95dZ0X+oXH5ZlAoJf9GKgno=; b=Q6PHAJuqsC4uAnUGIXvJl/keLXeAY1lzCXa0ot6BCEWxkCPCuWLnt25s6hmLrwP1S+9VE8 hXDClxyfMpnxVnzy9WYFD9VkkPn1m93bYmHBfhw5qOgRG7FayZv+uEcqabSF1qW7hVCWQr jFE77iESy52Qs3dmwUT2G7/J+SzKhDPvEi3fgLSufFFAU+w1jgikul3xnYw926FqRvJOO7 7peabNW9mLpw7AqNB1OStXytiJMFOYbjkD4lt1wWWbetnkJ3gldBwoDNAUgI3hRtd8MkgF /dRFhac7XLFWE83y/yLrHYU07VXR/ItYxEp6mMTP+dV91GmoH2WBBhoKBs+wwA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=MkLT0weH; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r2eOv-0001aq-Rb; Mon, 13 Nov 2023 16:23:21 -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 1r2eOu-0001aY-HT for guix-patches@gnu.org; Mon, 13 Nov 2023 16:23:20 -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 1r2eOu-0007Eu-9f for guix-patches@gnu.org; Mon, 13 Nov 2023 16:23:20 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r2ePZ-0003pX-L3 for guix-patches@gnu.org; Mon, 13 Nov 2023 16:24:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Nov 2023 21:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169991062914695 (code B ref 66801); Mon, 13 Nov 2023 21:24:01 +0000 Received: (at 66801) by debbugs.gnu.org; 13 Nov 2023 21:23:49 +0000 Received: from localhost ([127.0.0.1]:59441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2ePL-0003op-Bw for submit@debbugs.gnu.org; Mon, 13 Nov 2023 16:23:48 -0500 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]:48450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2ePH-0003oM-Jv for 66801@debbugs.gnu.org; Mon, 13 Nov 2023 16:23:46 -0500 Received: by mail-ed1-x542.google.com with SMTP id 4fb4d7f45d1cf-53e08b60febso7572865a12.1 for <66801@debbugs.gnu.org>; Mon, 13 Nov 2023 13:23:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699910576; x=1700515376; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=mkBe5/5aVbvpeYOj/jFT95dZ0X+oXH5ZlAoJf9GKgno=; b=MkLT0weHA0t2wWfWfnfT6qCJ1n+tc0daMA3SYrNjMYeC/r5leHEPiUFwxL5C+4oxrj s9lLrPeinUyJ3lxPQJd/rbGBHA87N17q9w0T7VXJljaoPKbeNx+bbLARe5KLos6yxMpu z2ZfgyBtShtPE3efq9jt+Dl2amh5r5CLBbQvrOfoLFTbKg47nMZFkjBInOjRn6eO2Its soq/jXuojsrbWwxWf380zUOKkYjnZ0n9C8O7M5yxUDJZAUDcesx6uHtr5T7oroIIaQcs /9OcL4tp6bA4wKllFuvPlj1GegLJMlhwMlRrJgwyZF1DI7tJrpTFij9EBC7LLrQ3IhkK cS8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699910576; x=1700515376; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mkBe5/5aVbvpeYOj/jFT95dZ0X+oXH5ZlAoJf9GKgno=; b=fosfRz5u89PluZ4UdwoIEvwuu0r7uvQesDb4gg2B0JhvjDxEcuVq9swgaXJjpD1zMq joGfnEsJKngummOJNZPTv7qxBE78fKfvJ8dRp6sUwXZwb5gDL4ziEHEziNqDFn23GkjM /0wOk+v6CMK/woM9t5o/cSpT+OBYAvrxAJ3zUXmiyCP2K9+Iv1NkS7pQBH8Us8ZKeZ4P IGzFMSQsVHTT2mUrdS9Cn10lbT4b6DUANI61sciK5DihN0YL2dx2uiWJd5rPu1uD1GFA EOJu76jg5C9E98RKO2nqIMNiXvimyd+tFeEh7H52qEMSSJRatyJljvYsbG+/1U/Ofwmn nwjw== X-Gm-Message-State: AOJu0Yyk24E0pw5NFJGXfgPzyJDn2DrLBe/VhAZko/kXLTh+SbkMdkF5 lCXxs2TxS4QLn7/KqNpT4i006qw2JwslhA== X-Google-Smtp-Source: AGHT+IESOQDXA4UtU2CPFBKQdtgBC4DolQZqCNK+xBFkJEYKhfulB5qLI1o6bn6j4oATOBftbdLETw== X-Received: by 2002:a17:907:764f:b0:9e5:2c72:9409 with SMTP id kj15-20020a170907764f00b009e52c729409mr5051598ejc.43.1699910575084; Mon, 13 Nov 2023 13:22:55 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id y19-20020a170906525300b009a13fdc139fsm4554189ejm.183.2023.11.13.13.22.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Nov 2023 13:22:53 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Mon, 13 Nov 2023 22:22:52 +0100 In-Reply-To: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 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: , 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: mx11.migadu.com X-Spam-Score: 3.01 X-Migadu-Queue-Id: BE86D46F74 X-Migadu-Spam-Score: 3.01 X-TUID: TIddStdQNgg6 QW0gTW9udGFnLCBkZW0gMTMuMTEuMjAyMyB1bSAyMToyNiArMDEwMCBzY2hyaWViIFBpZXJyZS1I ZW5yeSBGcsO2aHJpbmc6Cj4gKiBndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtLAo+ICogZ3VpeC9i dWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbTogTmV3IG1vZHVsZXMuCj4gCj4gQ2hhbmdlLUlkOiBJ MmNiZjZjOTYzYTUzMGU3MzQyMGRhMGViMTdmZmFmOTI4Mjc0NTFiZgo+IC0tLQo+IMKgZ3VpeC9i dWlsZC1zeXN0ZW0vbWl4LnNjbcKgwqDCoMKgwqDCoCB8IDIzNyArKysrKysrKysrKysrKysrKysr KysrKysrCj4gwqBndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtIHwgMzAzCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiDCoDIgZmlsZXMgY2hhbmdlZCwgNTQwIGluc2Vy dGlvbnMoKykKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taXguc2Nt Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9idWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbQo+ IAo+IGRpZmYgLS1naXQgYS9ndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtIGIvZ3VpeC9idWlsZC1z eXN0ZW0vbWl4LnNjbQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmFl NDQwN2M5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2d1aXgvYnVpbGQtc3lzdGVtL21peC5zY20K PiBAQCAtMCwwICsxLDIzNyBAQAo+ICs7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2Fn ZSBtYW5hZ2VtZW50IGZvciBHTlUKPiArOzs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5y eSBGcsO2aHJpbmcKPiA8cGhmcm9ocmluZ0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQKPiBieQo+ICs7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArOzs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7 IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBT ZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lgo+ICs7OzsKPiArOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vuc2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAg SWYgbm90LCBzZWUKPiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBD b21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBTdGFuZGFyZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVsaXhp ciBwYWNrYWdlcyB1c2luZyAnbWl4Jy7CoCBUaGlzCj4gaXMKPiArOzsgaW1wbGVtZW50ZWQgYXMg YW4gZXh0ZW5zaW9uIG9mICdnbnUtYnVpbGQtc3lzdGVtJy4KPiArOzsKPiArOzsgQ29kZToKPiAr Cj4gKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBtaXgpCj4gK8KgICM6dXNlLW1v ZHVsZSAoZ251IHBhY2thZ2VzIGJhc2UpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2Vz IGVsaXhpcikKPiArwqAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZWxpeGlyLXh5eikKPiAr wqAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZXJsYW5nKQpZb3UgcHJvYmFibHkgd2FudCB0 byByZXNvbHZlIHRob3NlIGltcG9ydHMgcmF0aGVyIHRoYW4gdXNlLW1vZHVsZXMKdGhlbS4KPiAr wqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkIG1peC1idWlsZC1zeXN0ZW0pCj4gK8KgICM6dXNl LW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXgg YnVpbGQtc3lzdGVtKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggZ2V4cCkKPiArwqAgIzp1c2Ut bW9kdWxlIChndWl4IG1vbmFkcykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQo+ ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQo+ICvCoCAjOnVzZS1tb2R1bGUg KGd1aXggc3RvcmUpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKPiArwqAgIzp1c2Ut bW9kdWxlIChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiAr wqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCj4gK8KgICM6ZXhwb3J0IChtaXgtYnVpbGQt c3lzdGVtIGhleHBtLXVyaSkpCj4gKwo+ICsoZGVmaW5lIChoZXhwbS11cmkgbmFtZSB2ZXJzaW9u KQo+ICvCoCAiUmV0dXJuIHRoZSBVUkkgd2hlcmUgdG8gZmV0Y2ggdGhlIHNvdXJjZXMgb2YgYSBI ZXggcGFja2FnZSBOQU1FCj4gYXQgVkVSU0lPTi4KPiArU2VlOiBodHRwczovL2dpdGh1Yi5jb20v aGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYWluL2VuZHBvaW50cy5tZCIKPiArwqAgKHN0cmlu Zy1hcHBlbmQgImh0dHBzOi8vcmVwby5oZXgucG0vdGFyYmFsbHMvIgo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5nLXJlcGxhY2Utc3Vic3RyaW5nIChzdHJpcC1lbGl4 aXItcHJlZml4Cj4gbmFtZSkgIi0iICJfIikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIi0iIHZlcnNpb24gIi50YXIiKSkKPiArCj4gKyhkZWZpbmUgZ2xpYmMtdXRmOC1sb2Nh bGVzCj4gK8KgIChtYWtlLWdsaWJjLXV0ZjgtbG9jYWxlcyBnbGliYwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6bG9jYWxlcyAobGlzdCAi ZW5fVVMiKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6bmFtZSAiZ2xpYmMtdXRmOC1sb2NhbGVzIikpCj4gKwo+ICsoZGVmaW5lIChkZWZh dWx0LWVsaXhpcikKPiArwqAgIlJldHVybiB0aGUgZGVmYXVsdCBFbGl4aXIgcGFja2FnZS4iCj4g K8KgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2lyY3VsYXIgZGVw ZW5kZW5jeS4KPiArwqAgKGxldCAoKGVsaXhpciAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFj a2FnZXMgZWxpeGlyKSkpKQo+ICvCoMKgwqAgKG1vZHVsZS1yZWYgZWxpeGlyICdlbGl4aXIpKSkK PiArCj4gKyhkZWZpbmUgaW1wb3J0ZWQtbW9kdWxlcwo+ICvCoCBgKChndWl4IGJ1aWxkIG1peC1i dWlsZC1zeXN0ZW0pCj4gK8KgwqDCoCAsQCVnbnUtYnVpbGQtc3lzdGVtLW1vZHVsZXMpKQo+ICsK PiArKGRlZmluZSBtb2R1bGVzCj4gK8KgICcoKGd1aXggYnVpbGQgbWl4LWJ1aWxkLXN5c3RlbSkK PiArwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpCj4gKwo+ICs7OyBUaGUgcHJlZml4IG9mIEVs aXhpciBwYWNrYWdlcy4KPiArKGRlZmluZSAlZWxpeGlyLXByZWZpeCAiZWxpeGlyLSIpCj4gKwo+ ICs7OyBUaGUgcHJlZml4IG9mIEVybGFuZyBwYWNrYWdlcy4KPiArKGRlZmluZSAlZXJsYW5nLXBy ZWZpeCAiZXJsYW5nLSIpCj4gKwo+ICsoZGVmaW5lIChlcmxhbmctcGFja2FnZT8gcGFja2FnZSkK PiArwqAgIlRlbGwgd2hldGhlciBQQUNLQUdFIGlzIGFuIEVybGFuZyBwYWNrYWdlLiIKPiArwqAg KHN0cmluZy1wcmVmaXg/ICVlcmxhbmctcHJlZml4IChwYWNrYWdlLW5hbWUgcGFja2FnZSkpKQo+ ICsKPiArKGRlZmluZSAoZWxpeGlyLXBhY2thZ2U/IHBhY2thZ2UpCj4gK8KgICJUZWxsIHdoZXRo ZXIgUEFDS0FHRSBpcyBhbiBFbGl4aXIgcGFja2FnZS4iCj4gK8KgIChzdHJpbmctcHJlZml4PyAl ZWxpeGlyLXByZWZpeCAocGFja2FnZS1uYW1lIHBhY2thZ2UpKSkKPiArCj4gKyhkZWZpbmUgKGVy bGFuZy1vci1lbGl4aXItcGtnPyBwYWNrYWdlKQo+ICvCoCAiVGVsbCB3aGV0aGVyIFBBQ0tBR0Ug aXMgYW4gRWxpeGlyIG9yIGFuIEVybGFuZyBwYWNrYWdlLiIKPiArwqAgKG9yIChlcmxhbmctcGFj a2FnZT8gcGFja2FnZSkKPiArwqDCoMKgwqDCoCAoZWxpeGlyLXBhY2thZ2U/IHBhY2thZ2UpKSkK WW91IGNhbiBzaW1wbGlmeSB0aGVzZSBmaXZlIHZhcmlhYmxlcyBpbnRvIG9uZSB0byB0aHJlZSAo dGhyZWUgYmVpbmcKcXVpdGUgbWFueSBhbHJlYWR5IGRlcGVuZGluZyBvbiB3aGV0aGVyIHlvdSds bCBhY3R1YWxseSB1c2UgdGhlIHNtYWxsZXIKb25lcykuCgo+ICsoZGVmaW5lIChlcmxhbmctb3It ZWxpeGlyLWlucHV0PyBpbnB1dCkKPiArwqAgIlRlbGwgd2hldGhlciBJTlBVVCBpcyBhbiBFbGl4 aXIgb3IgYW4gRXJsYW5nIGlucHV0LiIKPiArwqAgKG1hdGNoIGlucHV0Cj4gK8KgwqDCoCAoKF8g cGFja2FnZSkKPiArwqDCoMKgwqAgKGVybGFuZy1vci1lbGl4aXItcGtnPyBwYWNrYWdlKSkpKQpT a2lwLgoKPiArKGRlZmluZSAoaW5wdXQ9PyBpbnB1dDEgaW5wdXQyKQo+ICvCoCAiVGVsbCB3aGV0 aGVyIGlucHV0cyBJTlBVVDEgYW5kIElOUFVUMiBhcmUgZXF1YWwuIgo+ICvCoCAoZGVmaW5lIHBr ZzEgKG1hdGNoIGlucHV0MSAoKF8gcGtnKSBwa2cpKSkKPiArwqAgKGRlZmluZSBwa2cyIChtYXRj aCBpbnB1dDIgKChfIHBrZykgcGtnKSkpCj4gK8KgIChzdHJpbmc9PyAocGFja2FnZS1uYW1lIHBr ZzEpIChwYWNrYWdlLW5hbWUgcGtnMikpKQpBZ2FpbiwgY2hlY2tpbmcgZm9yIGxhYmVsIGVxdWl2 YWxlbmNlIGlzIGEgYmFkIGlkZWEuCgo+ICs7OyBBIG51bWJlciBvZiBlbnZpcm9ubWVudCB2YXJp YWJsZXMgc3BlY2lmaWMgdG8gdGhlIE1peCBidWlsZAo+IHN5c3RlbSBhcmUgcmVmbGVjdGVkIGhl cmUuCj4gKzs7IFRoZXkgYXJlIGRvY3VtZW50ZWQgaGVyZToKPiBodHRwczovL2hleGRvY3MucG0v bWl4LzEuMTUuNy9NaXguaHRtbCNtb2R1bGUtZW52aXJvbm1lbnQtdmFyaWFibGVzLgo+ICs7OyBP dGhlciBwYXJhbWV0ZXJzIGxvY2F0ZWQgaW4gbWl4LmV4cyBhcmUgZGVmaW5lZCBoZXJlOgo+ICs7 Owo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5Qcm9qZWN0Lmh0bWwjbW9kdWxl LWNvbmZpZ3VyYXRpb24KPiArKGRlZmluZSogKG1peC1idWlsZCBuYW1lCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzb3VyY2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZWxpeGlyLVguWSA7VGhlIG1ham9yIGFuZCBtaW5vciBvZiBFbGl4aXIuCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtaXgtcGF0aCAjZikgO1NlZSBNSVhfUEFUSC4K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1peC1leHMgIm1peC5l eHMiKSA7U2VlIE1JWF9FWFMuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChidWlsZC1wZXItZW52aXJvbm1lbnQgI3QpIDtTZWUKPiA6YnVpbGRfcGVyX2Vudmlyb25t ZW50Lgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocGhhc2VzICcl c3RhbmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAob3V0cHV0cyAnKCJvdXQiKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWlsZSAjZikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcykKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZHVsZXMgbW9kdWxlcykp Cj4gK8KgICJCdWlsZCBTT1VSQ0UgdXNpbmcgRWxpeGlyLCBhbmQgd2l0aCBJTlBVVFMuIgo+ICsK PiArwqAgOzsgQ2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb2YgOmJ1aWxkX3Blcl9lbnZpcm9ubWVu dCBoZXJlOgo+ICvCoCA7Owo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5Qcm9q ZWN0Lmh0bWwjbW9kdWxlLWNvbmZpZ3VyYXRpb27CoEEKPiBuZAo+ICvCoCA7OyAiRW52aXJvbm1l bnRzIiBoZXJlOgo+ICvCoCA7OyBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguaHRt bCNtb2R1bGUtZW52aXJvbm1lbnRzCj4gK8KgIChkZWZpbmUgbWl4LWVudmlyb25tZW50cwo+ICvC oMKgwqAgKGlmIGJ1aWxkLXBlci1lbnZpcm9ubWVudAo+ICvCoMKgwqDCoMKgwqDCoCBgKCJwcm9k IiAsQChpZiB0ZXN0cz8gJygidGVzdCIpICcoKSkpCj4gK8KgwqDCoMKgwqDCoMKgICcoInNoYXJl ZCIpKSkKPiArCj4gK8KgIChkZWZpbmUgYnVpbGRlcgo+ICvCoMKgwqAgKHdpdGgtaW1wb3J0ZWQt bW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCj4gK8KgwqDCoMKgwqAgI34oYmVnaW4KPiArCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoCAodXNlLW1vZHVsZXMgIyRAKHNleHAtPmdleHAgbW9kdWxlcykpCj4g Kwo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12YXJpYWJsZXMgaW5wdXRzIG91 dHB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgI34obWl4LWJ1aWxkICM6bmFtZSAj JG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAjOnNvdXJjZSAjK3NvdXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6c3lzdGVtICMkc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0cz8gIyR0ZXN0cz8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAj Om1peC1wYXRoICMkbWl4LXBhdGgKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOm1peC1leHMgIyRtaXgtZXhzCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzplbGl4aXItWC5ZICMkZWxp eGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6bWl4LWVudmlyb25tZW50cyAnIyRtaXgtZW52aXJvbm1lbnRzCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpidWlsZC1wZXIt ZW52aXJvbm1lbnQgIyRidWlsZC1wZXItCj4gZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFp cj8gcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZXhwLT5nZXhwIHBoYXNl cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRzICVvdXRwdXRz Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzpzZWFyY2gtcGF0aHMgJyMkKHNleHAtPmdleHAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2Vh cmNoLXBhdGgtCj4gc3BlY2lmaWNhdGlvbi0+c2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aHMpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJWJ1aWxkLWlucHV0cykpKSkpCj4g Kwo+ICvCoCAobWxldCAlc3RvcmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAo b3IgZ3VpbGUKPiAoZGVmYXVsdC1ndWlsZSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAjOmdyYWZ0PyAjZikpKQo+ICvCoMKgwqAgKGdleHAtPmRlcml2YXRpb24gbmFt ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVpbGRlcgo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gc3lz dGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0 PyAjZsKgwqDCoMKgwqDCoCA7Y29uc2lzdGVudCB3aXRoICdnbnUtYnVpbGQnCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRhcmdldCAjZgo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpndWlsZS1mb3ItYnVpbGQgZ3Vp bGUpKSkKPiArCj4gKyhkZWZpbmUqIChsb3dlciBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNl Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5wdXRzICcoKSkKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAobmF0aXZlLWlucHV0cyAnKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAocHJvcGFnYXRlZC1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3lz dGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0YXJnZXQKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChlbGl4aXIgKGRlZmF1bHQtZWxpeGlyKSkKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cyAjOnJlc3QgYXJndW1l bnRzKQo+ICvCoCAiUmV0dXJuIGEgYmFnIGZvciBOQU1FLiIKPiArwqAgKGRlZmluZSBwcml2YXRl LWtleXdvcmRzCj4gK8KgwqDCoCAnKCM6aW5wdXRzICM6bmF0aXZlLWlucHV0cyAjOm91dHB1dHMg IzpzeXN0ZW0gIzp0YXJnZXQKPiAjOmVsaXhpcikpCj4gKwo+ICvCoCA7OyBMaWJyYXJpZXMgYXJl IGNvbXBpbGVkIHVzaW5nIGEgZ2l2ZW4gdmVyc2lvbiBvZiBFbGl4aXIuIFRoaXMKPiBmYWN0IGlz Cj4gK8KgIDs7IGVuY29kZWQgYnkgdGhlIG5hbWUgb2YgYSBzdWItZGlyZWN0b3J5IGxpa2UgbGli L2VsaXhpci9YLlkuIFdlCj4gY29tcHV0ZQo+ICvCoCA7OyB0aGUgdmFsdWUgb2YgWC5ZIGhlcmUg d2hpY2ggaXMgdmFsaWQgZm9yIHRoZSB3aG9sZSBidWlsZC4KPiArwqAgKGRlZmluZSBlbGl4aXIt WC5ZICh2ZXJzaW9uLW1ham9yK21pbm9yIChwYWNrYWdlLXZlcnNpb24gZWxpeGlyKSkpCj4gKwo+ ICvCoCA7OyBFbGl4aXIgZGVwZW5kcyBvbiBhIHNwZWNpZmljIHZlcnNpb24gb2YgRXJsYW5nLCB0 aGlzIG9uZS4KPiArwqAgKGRlZmluZSBlcmxhbmcgKGxvb2t1cC1wYWNrYWdlLWlucHV0IGVsaXhp ciAiZXJsYW5nIikpCj4gKwo+ICvCoCA7OyBGb3IgbWl4IHRvIGNvbXBpbGUgYW5kIHRlc3QgYSBw YWNrYWdlLCBpdCBuZWVkcyB0byBmaW5kIGFsbAo+IGlucHV0cywKPiArwqAgOzsgbmF0aXZlLWlu cHV0cyBhbmQgcHJvcGFnYXRlZC1pbnB1dHMgKGluY2x1ZGluZyB0aGUgdHJhbnNpdGl2ZQo+IG9u ZXMpIHVuZGVyCj4gK8KgIDs7IF9idWlsZCBkaXJlY3RvcmllcyBsaWtlIF9idWlsZC9wcm9kL2xp Yi4KPiArwqAgOzsKPiArwqAgOzsgR2l2ZW4gaW5wdXRzIGFuZCBuYXRpdmUtaW5wdXRzIG9mIHRo ZSBwYWNrYWdlLCB3ZSBuZWVkIHRvCj4gY29tcHV0ZSB0aGUKPiArwqAgOzsgdHJhbnNpdGl2ZSBj bG9zdXJlIG9mIGFsbCBFcmxhbmcgYW5kIEVsaXhpciBwcm9wYWdhdGVkIGlucHV0cwo+IGFuZCBh ZGQKPiArwqAgOzsgdGhlbSB0byB0aGUgYnVpbGQgaW5wdXRzLgo+ICvCoCAoZGVmaW5lIGFsbC1w cm9wYWdhdGVkLWlucHV0cwo+ICvCoMKgwqAgKChjb21wb3NlCj4gK8KgwqDCoMKgwqAgKGN1dCBk ZWxldGUtZHVwbGljYXRlcyA8PiBpbnB1dD0/KQo+ICvCoMKgwqDCoMKgIChjdXQgZmlsdGVyIGVy bGFuZy1vci1lbGl4aXItaW5wdXQ/IDw+KQo+ICvCoMKgwqDCoMKgIChjdXQgYXBwZW5kLW1hcCBw YWNrYWdlLXRyYW5zaXRpdmUtcHJvcGFnYXRlZC1pbnB1dHMgPD4pCj4gK8KgwqDCoMKgwqAgKGN1 dCBtYXAgY2FkciA8PikpCj4gK8KgwqDCoMKgIChhcHBlbmQgaW5wdXRzIG5hdGl2ZS1pbnB1dHMp KSkKPiArCj4gK8KgIChkZWZpbmUgYnVpbGQtaW5wdXRzCj4gK8KgwqDCoCBgKCxAKHN0YW5kYXJk LXBhY2thZ2VzKQo+ICvCoMKgwqDCoMKgICgiZ2xpYmMtdXRmOC1sb2NhbGVzIiAsZ2xpYmMtdXRm OC1sb2NhbGVzKQo+ICvCoMKgwqDCoMKgICgiZXJsYW5nIiAsZXJsYW5nKQo+ICvCoMKgwqDCoMKg ICgicmViYXIzIiAscmViYXIzKQo+ICvCoMKgwqDCoMKgICgiZWxpeGlyIiAsZWxpeGlyKQo+ICvC oMKgwqDCoMKgICgiZWxpeGlyLWhleCIgLGVsaXhpci1oZXgpCj4gK8KgwqDCoMKgwqAgLEBhbGwt cHJvcGFnYXRlZC1pbnB1dHMKPiArwqDCoMKgwqDCoCAsQGlucHV0cwo+ICvCoMKgwqDCoMKgICxA bmF0aXZlLWlucHV0cykpCj4gKwo+ICvCoCA7OyBTb21lIGlucHV0cywgc3VjaCBhcyBDIHByb2dy YW1zLCBtYXkgYmUgYXJjaGl0ZWN0dXJlIGRlcGVuZGVudC4KPiArwqAgKGRlZmluZSBob3N0LWlu cHV0cyAoaWYgdGFyZ2V0IGlucHV0cyAnKCkpKQo+ICsKPiArwqAgKGJhZyAobmFtZSBuYW1lKQo+ ICvCoMKgwqDCoMKgwqAgKHN5c3RlbSBzeXN0ZW0pCj4gK8KgwqDCoMKgwqDCoCAoYnVpbGQtaW5w dXRzIGJ1aWxkLWlucHV0cykKPiArwqDCoMKgwqDCoMKgIChob3N0LWlucHV0cyBob3N0LWlucHV0 cykKPiArwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoCAoYnVp bGQgbWl4LWJ1aWxkKQo+ICvCoMKgwqDCoMKgwqAgKGFyZ3VtZW50cyAoYXBwZW5kIGAoIzplbGl4 aXItWC5ZICxlbGl4aXItWC5ZKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAoc3RyaXAta2V5d29yZC1hcmd1bWVudHMgcHJpdmF0ZS1rZXl3b3Jk cwo+IGFyZ3VtZW50cykpKSkpCj4gKwo+ICsoZGVmaW5lIG1peC1idWlsZC1zeXN0ZW0KPiArwqAg KGJ1aWxkLXN5c3RlbSAobmFtZSAnbWl4KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGRlc2NyaXB0aW9uICJUaGUgc3RhbmRhcmQgTWl4IGJ1aWxkIHN5c3RlbSIpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobG93ZXIgbG93ZXIpKSkKPiArCj4gKzs7OyBtaXgu c2NtIGVuZHMgaGVyZQo+IGRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0u c2NtIGIvZ3VpeC9idWlsZC9taXgtYnVpbGQtCj4gc3lzdGVtLnNjbQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjg2YTVkYjUxCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2d1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20KPiBAQCAtMCwwICsxLDMwMyBAQAo+ICs7 OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKPiAr Ozs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcKPiA8cGhmcm9ocmlu Z0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBH dWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKPiBieQo+ICs7Ozsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiAr Ozs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICs7OzsKPiArOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vu c2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAgSWYgbm90LCBzZWUKPiA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBDb21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBD b2RlOgo+ICsKPiArKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWl4LWJ1aWxkLXN5c3RlbSkK PiArwqAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnByZWZp eCBnbnU6KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCj4gK8KgICM6dXNl LW1vZHVsZSAoaWNlLTkgZnR3KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQo+ICvC oCAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IHN0 cmluZy1mdW4pCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCj4gK8KgICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTI2KQo+ICvCoCAjOmV4cG9ydCAobWl4LWJ1aWxkCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RyaXAtZWxpeGlyLXByZWZpeAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICVzdGFuZGFyZC1waGFzZXMpKQo+ICsKPiArKGRlZmluZSAoZi1qb2luIC4gcGF0aHMpCj4g K8KgICJSZXR1cm4gYSBwYXRoIChhIHN0cmluZykgZm9ybWVkIGZyb20gam9pbmluZyBlYWNoIGNv bXBvbmVudCBpbgo+IFBBVEhTIChsaXN0IG9mIHN0cmluZ3MpLgo+ICtFeGFtcGxlOiBcImFcIiBc ImJcIiBcImNcIiDihpIgXCJhL2IvY1wiIgo+ICvCoCAoc3RyaW5nLWpvaW4gcGF0aHMgZmlsZS1u YW1lLXNlcGFyYXRvci1zdHJpbmcpKQpJdCBpcyB3aXNlciB0byB3cml0ZSB0aGVzZSBvdXQgYXMg cmVndWxhciBzdHJpbmctYXBwZW5kcy4KCj4gKyhkZWZpbmUgKHN0cmlwLXByZWZpeCBwcmVmaXgg bmFtZSkKPiArwqAgIlJldHVybiBOQU1FIHdpdGhvdXQgdGhlIHByZWZpeCBQUkVGSVguIgo+ICvC oCAoaWYgKHN0cmluZy1wcmVmaXg/IHByZWZpeCBuYW1lKQo+ICvCoMKgwqDCoMKgIChzdHJpbmct ZHJvcCBuYW1lIChzdHJpbmctbGVuZ3RoIHByZWZpeCkpCj4gK8KgwqDCoMKgwqAgbmFtZSkpCkkn bSBwcmV0dHkgc3VyZSB3ZSBoYXZlIGEgZnVuY3Rpb24gbG9va2luZyBsaWtlIHRoaXMgc29tZXdo ZXJlLCBidXQgSQpjYW4ndCByZWNhbGwgaXRzIG5hbWUgYXRtLiAgCgo+ICs7OyBBbGwgRWxpeGly IHBhY2thZ2UgbmFtZXMgc3RhcnQgd2l0aCB0aGlzIHByZWZpeC4gSWYgYSBwYWNrYWdlCj4gbmFt ZSBzdGFydHMKPiArOzsgd2l0aCB0aGlzIHByZWZpeCwgdGhlbiBpdCBpcyBhbiBFbGl4aXIgcGFj a2FnZS4KPiArKGRlZmluZSAlZWxpeGlyLXByZWZpeCAiZWxpeGlyLSIpClVzZWxlc3MgbWFnaWMg Y29uc3RhbnQuCj4gKwo+ICsoZGVmaW5lIChwYXRoLT5lbGl4aXItbGliIHBhdGggWC5ZKQo+ICvC oCAiUmV0dXJuIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aGluIFBBVEggd2hlcmUgbGli cmFyaWVzIG9mCj4gYW4gRWxpeGlyCj4gK3BhY2thZ2UgYXJlIGluc3RhbGxlZC4gSGVyZSwgWC5Z IHJlcHJlc2VudHMgdGhlIG1ham9yIGFuZCBtaW5vcgo+IHZlcnNpb24KPiArbnVtYmVycyBvZiBF bGl4aXIgdXNlZCBmb3IgY29tcGlsYXRpb24uIgo+ICvCoCAoZi1qb2luIHBhdGggImxpYiIgImVs aXhpciIgWC5ZKSkKSXMgcGF0aCBpdHNlbGYgZXZlciB1c2VmdWwgaGVyZSBvciBkb2VzIGl0IHNp bXBseSBwb2ludCB0byB0aGUgc3RvcmU/ClRoaXMgY2FuIGxpa2VseSBiZSBzaW1wbGlmaWVkIHRv wqAKKGRlZmluZSAoZWxpeGlyLWxpYiB2ZXJzaW9uKQogIChzdHJpbmctYXBwZW5kICIvbGliL2Vs aXhpci8iIHZlcnNpb24pKQoKPiArKGRlZmluZSAoZWxpeGlyLW5hbWU/IG5hbWUpCj4gK8KgICJE ZXRlcm1pbmVzIGlmIE5BTUUgaXMgdGhlIG5hbWUgb3IgdGhlIGxhYmVsIGFzc29jaWF0ZWQgdG8g YW4KPiBFbGl4aXIKPiArcGFja2FnZS4iCj4gK8KgIChzdHJpbmctcHJlZml4PyAlZWxpeGlyLXBy ZWZpeCBuYW1lKSkKVXNlbGVzcyB1c2Ugb2YgbWFnaWMgY29uc3RhbnQuCj4gKwo+ICsoZGVmaW5l IChlbGl4aXItaW5wdXQ/IFguWSBpbnB1dCkKPiArwqAgIkRldGVybWluZXMgaWYgdGhlIGdpdmVu IElOUFVUIGlzIGFuIEVsaXhpciBpbnB1dC4iCj4gK8KgIChtYXRjaCBpbnB1dAo+ICvCoMKgwqAg KChsYWJlbCAuIHBhdGgpCj4gK8KgwqDCoMKgIDs7IFhYWDogVGhlIHNlY29uZCBjb25kaXRpb24g bWF5IGJlIGVub3VnaC4KPiArwqDCoMKgwqAgKGFuZCAoZWxpeGlyLW5hbWU/IGxhYmVsKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqAgKGRpcmVjdG9yeS1leGlzdHM/IChwYXRoLT5lbGl4aXItbGliIHBh dGggWC5ZKSkpKSkpCkFoZW0sIHNlYXJjaC1wYXRoLWFzLWxpc3QuCkFsc28sIGxlYWtpbmcgdGhl IHZlcnNpb24gaXMga2luZGEgYmFkLCBBUEktd2lzZS4KCj4gKyhkZWZpbmUgKHN0cmlwLWVsaXhp ci1wcmVmaXggbmFtZSkKPiArwqAgIlN0cmlwICVlbGl4aXItcHJlZml4IGZyb20gTkFNRS4iCj4g K8KgIChzdHJpcC1wcmVmaXggJWVsaXhpci1wcmVmaXggbmFtZSkpCj4gCj4gKzs7IEFsbCBFcmxh bmcgcGFja2FnZSBuYW1lcyBzdGFydCB3aXRoIHRoaXMgcHJlZml4LiBJZiBhIHBhY2thZ2UKPiBu YW1lIHN0YXJ0cwo+ICs7OyB3aXRoIHRoaXMgcHJlZml4LCB0aGVuIGl0IGlzIGFuIEVybGFuZyBw YWNrYWdlLgo+ICsoZGVmaW5lICVlcmxhbmctcHJlZml4ICJlcmxhbmctIikKPiArCj4gKyhkZWZp bmUgKHBhdGgtPmVybGFuZy1saWIgcGF0aCkKPiArwqAgIlJldHVybiB0aGUgcGF0aCBvZiB0aGUg ZGlyZWN0b3J5IHdoZXJlIGxpYnJhcmllcyBvZiBhbiBFcmxhbmcKPiBwYWNrYWdlIGFyZQo+ICtp bnN0YWxsZWQgaW4gdGhlIHN0b3JlLiIKPiArwqAgKGYtam9pbiBwYXRoICJsaWIiICJlcmxhbmci ICJsaWIiKSkKPiArCj4gKyhkZWZpbmUgKGVybGFuZy1uYW1lPyBuYW1lKQo+ICvCoCAiRGV0ZXJt aW5lcyBpZiBOQU1FIGlzIHRoZSBuYW1lIG9yIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHRvIGFuCj4g RXJsYW5nCj4gK3BhY2thZ2UuIgo+ICvCoCAoc3RyaW5nLXByZWZpeD8gJWVybGFuZy1wcmVmaXgg bmFtZSkpCj4gKwo+ICsoZGVmaW5lIChlcmxhbmctaW5wdXQ/IGlucHV0KQo+ICvCoCAiRGV0ZXJt aW5lcyBpZiB0aGUgZ2l2ZW4gSU5QVVQgaXMgYW4gRXJsYW5nIGlucHV0LiIKPiArwqAgKG1hdGNo IGlucHV0Cj4gK8KgwqDCoCAoKGxhYmVsIC4gcGF0aCkKPiArwqDCoMKgwqAgOzsgWFhYOiBvbmUg Y29uZGl0aW9uIG1heSBiZSBlbm91Z2guIFdpdGhvdXQgdGhlIGZpcnN0IG9uZSwgdGhlCj4gZXJs YW5nCj4gK8KgwqDCoMKgIDs7IGlucHV0IGlzIGNvbnNpZGVyZWQgYW4gaW5wdXQgd2hlbiB3ZSBq dXN0IHdhbnQgRXJsYW5nCj4gcGFja2FnZXMuCj4gK8KgwqDCoMKgIChhbmQgKGVybGFuZy1uYW1l PyBsYWJlbCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChkaXJlY3RvcnktZXhpc3RzPyAocGF0aC0+ ZXJsYW5nLWxpYiBwYXRoKSkpKSkpCj4gKwo+ICsoZGVmaW5lIChzdHJpcC1lcmxhbmctcHJlZml4 IG5hbWUpCj4gK8KgICJTdHJpcCAlZXJsYW5nLXByZWZpeCBmcm9tIE5BTUUuIgo+ICvCoCAoc3Ry aXAtcHJlZml4ICVlcmxhbmctcHJlZml4IG5hbWUpKQpEdXBsaWNhdGVkIGJvaWxlcnBsYXRlIGZv ciBuZWl0aGVyIGZ1biBub3IgcHJvZml0LgoKPiArKGRlZmluZSAoZXJsYW5nLW9yLWVsaXhpci1p bnB1dD8gWC5ZIGlucHV0KQo+ICvCoCAiRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gSU5QVVQgaXMg YW4gRXJsYW5nIG9yIEVsaXhpciBpbnB1dC4iCj4gK8KgIChvciAoZXJsYW5nLWlucHV0PyBpbnB1 dCkKPiArwqDCoMKgwqDCoCAoZWxpeGlyLWlucHV0PyBYLlkgaW5wdXQpKSkKTGVhaywgbGVhaywg bGVhay4KPiArCj4gKyhkZWZpbmUgKHNuYWtlY2FzZS1uYW1lIG5hbWUpCj4gK8KgICJSZXR1cm4g YSBzbmFrZWNhc2UgdmVyc2lvbiBvZiBOQU1FLiIKPiArwqAgKHN0cmluZy1yZXBsYWNlLXN1YnN0 cmluZyAoc3RyaW5nLWRvd25jYXNlIG5hbWUpICItIiAiXyIpKQo+ICsKPiArKGRlZmluZSAobGFi ZWwtPmxpYnJhcnktbmFtZSBsYWJlbCkKPiArwqAgIlJldHVybiB0aGUgbGlicmFyeSBuYW1lIGFz c29jaWF0ZWQgdG8gYW4gaW5wdXQgbGFiZWwgTEFCRUwuIgo+ICvCoCAoZGVmaW5lIHN0cmlwcGVk LWxhYmVsCj4gK8KgwqDCoCAoY29uZAo+ICvCoMKgwqDCoCAoKGVybGFuZy1uYW1lPyBsYWJlbCkK PiArwqDCoMKgwqDCoCAoc3RyaXAtZXJsYW5nLXByZWZpeCBsYWJlbCkpCj4gK8KgwqDCoMKgICgo ZWxpeGlyLW5hbWU/IGxhYmVsKQo+ICvCoMKgwqDCoMKgIChzdHJpcC1lbGl4aXItcHJlZml4IGxh YmVsKSkKPiArwqDCoMKgwqAgKCN0IChlcnJvciAiSW52YWxpZCBsYWJlbDogZXhwZWN0ZWQgYW4g RXJsYW5nIG9yIEVsaXhpciBsYWJlbC4iCj4gJ2xhYmVsIGxhYmVsKSkpKQo+ICvCoCAoc25ha2Vj YXNlLW5hbWUgc3RyaXBwZWQtbGFiZWwpKQpEb24ndCByZWx5IG9uIGxhYmVscy4KCj4gKyhkZWZp bmUgKHBrZy1uYW1lLT5saWJyYXJ5LW5hbWUgbmFtZSkKPiArwqAgIlJldHVybiB0aGUgbmFtZSBv ZiB0aGUgbGlicmFyeSBkZWR1Y2VkIGZyb20gdGhlIG5hbWUgb2YgdGhlIEd1aXgKPiBwYWNrYWdl Lgo+ICtFeGFtcGxlOiBlbGl4aXItYS1wa2ctMS4wLjIg4oaSIGFfcGtnCj4gK1NlZTogaHR0cHM6 Ly93d3cuZXJsYW5nLm9yZy9kb2MvbWFuL2NvZGUjY29kZS1wYXRoIgo+ICvCoCAoKGNvbXBvc2UK PiArwqDCoMKgIGxhYmVsLT5saWJyYXJ5LW5hbWUKPiArwqDCoMKgIChjdXQgc3RyaW5nLWpvaW4g PD4gIi0iKQo+ICvCoMKgwqAgKGN1dCBkcm9wLXJpZ2h0IDw+IDEpCj4gK8KgwqDCoCAoY3V0IHN0 cmluZy1zcGxpdCA8PiAjXC0pKQo+ICvCoMKgIG5hbWUpKQo+ICsKPiArOzsgV2UgZml4IGFzIG1h bnkgdmFyaWFibGVzIGFzIHBvc3NpYmxlLgo+ICs7OyBTZWU6Cj4gaHR0cHM6Ly9oZXhkb2NzLnBt L21peC8xLjE1LjcvTWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50LXZhcmlhYmxlcwo+ICsoZGVm aW5lIE1JWF9IT01FICJNSVhfSE9NRSIpCj4gKwo+ICsoZGVmaW5lIE1JWF9BUkNISVZFUyAiTUlY X0FSQ0hJVkVTIikKPiArKGRlZmluZSAoJW1peC1hcmNoaXZlcyBtaXgtaG9tZSkgKGYtam9pbiBt aXgtaG9tZSAiYXJjaGl2ZXMiKSkKPiArKGRlZmluZSBNSVhfQlVJTERfUk9PVCAiTUlYX0JVSUxE X1JPT1QiKQo+ICsoZGVmaW5lICVtaXgtYnVpbGQtcm9vdCAiX2J1aWxkIikKPiArKGRlZmluZSBN SVhfREVQU19QQVRIICJNSVhfREVQU19QQVRIIikKPiArKGRlZmluZSAlbWl4LWRlcHMtcGF0aCAi ZGVwcyIpCj4gKyhkZWZpbmUgTUlYX1BBVEggIk1JWF9QQVRIIikKPiArKGRlZmluZSBNSVhfUkVC QVIzICJNSVhfUkVCQVIzIikKPiArKGRlZmluZSBNSVhfRVhTICJNSVhfRVhTIikKPiArKGRlZmlu ZSAlbWl4LWV4cyAibWl4LmV4cyIpCj4gKzs7IFhYWDogaWYgZGlmZmVyZW50IGFyY2hpdGVjdHVy ZSBhcmUgbmVlZGVkLCB0aGVuIHVzZSB0aGlzCj4gdmFyaWFibGUuCj4gKyhkZWZpbmUgTUlYX1RB UkdFVCAiTUlYX1RBUkdFVCIpCj4gKyhkZWZpbmUgTUlYX0VOViAiTUlYX0VOViIpCj4gKyhkZWZp bmUgJW1peC1lbnYtcHJvZCAicHJvZCIpCj4gKyhkZWZpbmUgJW1peC1lbnYtdGVzdCAidGVzdCIp Cj4gKyhkZWZpbmUgJW1peC1lbnYtc2hhcmVkICJzaGFyZWQiKQpHcmF0dWl0b3VzIGRlZmluaXRp b25zIGFyZSBncmF0dWl0b3VzLgoKPiArOzsgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB3aGVy ZSBjb21waWxlZCBsaWJyYXJpZXMgYnkgbWl4IGFyZQo+IHN0b3JlZC4KPiArKGRlZmluZSAlbWl4 LWxpYiAibGliIikKPiArCj4gKzs7IFVzZWZ1bCBiZWNhdXNlIEVsaXhpciBleHBlY3RzIGEgVVRG LTggbG9jYWxlLgo+ICsoZGVmaW5lIExDX0FMTCAiTENfQUxMIikKPiArCj4gKyhkZWZpbmUgKG1p eC1idWlsZC1kaXIgbWl4LWVudikKPiArwqAgIlJldHVybiB0aGUgZGlyZWN0b3J5IHdoZXJlIGJ1 aWxkIGFydGlmYWN0cyBhcmUgdG8gYmUgaW5zdGFsbGVkCj4gYWNjb3JkaW5nIHRvCj4gK2VuIGVu dmlyb25tZW50IE1JWC1FTlYgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiIKPiArwqAgKGYtam9p biAlbWl4LWJ1aWxkLXJvb3QgbWl4LWVudiAlbWl4LWxpYikpCj4gKwo+ICsoZGVmaW5lKiAodW5w YWNrICM6a2V5IHNvdXJjZSBtaXgtcGF0aCAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgICJVbnBh Y2sgU09VUkNFIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgYW5kIGNoYW5nZSBkaXJlY3RvcnkK PiB3aXRoaW4gdGhlCj4gK3NvdXJjZS7CoCBXaGVuIFNPVVJDRSBpcyBhIGRpcmVjdG9yeSwgY29w eSBpdCBpbiBhIHN1Yi1kaXJlY3Rvcnkgb2YKPiB0aGUgY3VycmVudAo+ICt3b3JraW5nIGRpcmVj dG9yeS4iCj4gK8KgIChsZXQgKChnbnUtdW5wYWNrIChhc3NvYy1yZWYgZ251OiVzdGFuZGFyZC1w aGFzZXMgJ3VucGFjaykpKQo+ICvCoMKgwqAgKGdudS11bnBhY2sgIzpzb3VyY2Ugc291cmNlKQo+ ICvCoMKgwqAgKGxldCAoKGNvbnRlbnRzICJjb250ZW50cy50YXIuZ3oiKSkKPiArwqDCoMKgwqDC oCAod2hlbiAoZmlsZS1leGlzdHM/IGNvbnRlbnRzKQo+ICvCoMKgwqDCoMKgwqDCoCAoaW52b2tl ICJ0YXIiICJ4dmYiIGNvbnRlbnRzKSkpKSkKPiArCj4gKyhkZWZpbmUqIChjb25maWd1cmUgIzpr ZXkgaW5wdXRzIG1peC1wYXRoIG1peC1leHMgIzphbGxvdy1vdGhlci0KPiBrZXlzKQo+ICvCoCAi U2V0IGVudmlyb25tZW50IHZhcmlhYmxlcy4iCj4gK8KgIChzZXRlbnYgTENfQUxMICJlbl9VUy5V VEYtOCIpCj4gK8KgIChzZXRlbnYgTUlYX0hPTUUgKGdldGN3ZCkpCj4gK8KgIChzZXRlbnYgTUlY X0FSQ0hJVkVTICglbWl4LWFyY2hpdmVzIChnZXRlbnYgTUlYX0hPTUUpKSkKPiArwqAgKHNldGVu diBNSVhfQlVJTERfUk9PVCAlbWl4LWJ1aWxkLXJvb3QpCj4gK8KgIChzZXRlbnYgTUlYX0RFUFNf UEFUSCAlbWl4LWRlcHMtcGF0aCkKPiArwqAgKHNldGVudiBNSVhfUEFUSCAob3IgbWl4LXBhdGgg IiIpKQo+ICvCoCAoc2V0ZW52IE1JWF9SRUJBUjMgKGYtam9pbiAoYXNzb2MtcmVmIGlucHV0cyAi cmViYXIzIikgImJpbiIKPiAicmViYXIzIikpCj4gK8KgIChzZXRlbnYgTUlYX0VYUyBtaXgtZXhz KSkKPiArCj4gKyhkZWZpbmUqIChpbnN0YWxsLWhleCAjOmtleSBpbnB1dHMgbmFtZSBlbGl4aXIt WC5ZICM6YWxsb3ctb3RoZXItCj4ga2V5cykKPiArwqAgIkluc3RhbGwgSGV4LiIKPiArwqAgKGRl ZmluZSBoZXgtbmFtZSAiaGV4IikKPiArwqAgKGRlZmluZSBoZXgtcGF0aCAoYXNzb2MtcmVmIGlu cHV0cyAiZWxpeGlyLWhleCIpKQo+ICvCoCAoZGVmaW5lIGhleC1saWIgKGYtam9pbiAocGF0aC0+ ZWxpeGlyLWxpYiBoZXgtcGF0aCBlbGl4aXItWC5ZKQo+IGhleC1uYW1lKSkKPiArwqAgKGRlZmlu ZSBoZXgtYXJjaGl2ZS1wYXRoIChmLWpvaW4gKGdldGVudiBNSVhfQVJDSElWRVMpIGhleC1uYW1l KSkKPiArwqAgKG1rZGlyLXAgaGV4LWFyY2hpdmUtcGF0aCkKPiArwqAgKHN5bWxpbmsgaGV4LWxp YiAoZi1qb2luIGhleC1hcmNoaXZlLXBhdGggaGV4LW5hbWUpKSkKPiArCj4gKyhkZWZpbmUqIChp bnN0YWxsLWRlcGVuZGVuY2llcyAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFtZQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVzdHM/Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBidWlsZC1wZXItZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5hdGl2 ZS1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxpeGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWl4LWVudmlyb25tZW50cwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIzphbGxvdy1vdGhlci1rZXlzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnJlc3QgcmVzdCkKPiArwqAgIkluc3Rh bGwgZGVwZW5kZW5jaWVzLgo+ICtHaXZlbiBhbiBlbnZpcm9ubWVudCBtaXgtZW52LCB3ZSBkZWZp bmUgYWxsLWlucHV0cyhtaXgtZW52KSBhcyB0aGUKPiBzZXQgb2YgYWxsCj4gK25lY2Vzc2FyeSBF cmxhbmcgYW5kIEVsaXhpciBpbnB1dHMgYW5kIGFzc29jaWF0ZWQgcHJvcGFnYXRlZCBpbnB1dHMK PiAoYW5kCj4gK3RyYW5zaXRpdmUgcHJvcGFnYXRlZCBpbnB1dHMpLgo+ICsKPiArRm9yIGV4YW1w bGUsIGFsbC1pbnB1dHMocHJvZCkgcmVwcmVzZW50cyBhbGwgdGhlIEVybGFuZyBhbmQgRWxpeGly Cj4gaW5wdXRzIGFuZAo+ICtwcm9wYWdhdGVkIGlucHV0cyBuZWNlc3NhcnkgdG8gY29tcGlsZSB0 aGUgTWl4IHByb2plY3QgZm9yIHRoZSBwcm9kCj4gK2Vudmlyb25tZW50Lgo+ICsKPiArSWYgZGVw IGJlbG9uZ3MgdG8gYWxsLWlucHV0cyhtaXgtZW52KSBhbmQgaXRzIGxpYnJhcnkgbmFtZSBpcyBk ZXAtCj4gbmFtZSwgdGhlbgo+ICtpdCBpcyBpbnN0YWxsZWQgdW5kZXIgKGYtam9pbiAobWl4LWJ1 aWxkLWRpciBtaXgtZW52KSBkZXAtbmFtZSkgYXMgYQo+IHN5bWJvbGljCj4gK2xpbmsuIgpUaGUg ZG9jc3RyaW5nIGRpdnVsZ2VzIGltcGxlbWVudGF0aW9uIGRldGFpbHMgd2l0aG91dCByZWFsbHkg ZXhwbGFpbmluZwp3aGF0IHRoZSBmdW5jdGlvbiBpdHNlbGYgZG9lcy4gIAo+ICvCoCAoZGVmaW5l IChhbGwtaW5wdXRzIG1peC1lbnYpCj4gK8KgwqDCoCAoZGVmaW5lIGVudi1pbnB1dHMKPiArwqDC oMKgwqDCoCAoY29uZAo+ICvCoMKgwqDCoMKgwqAgKChzdHJpbmc9PyBtaXgtZW52ICVtaXgtZW52 LXByb2QpCj4gK8KgwqDCoMKgwqDCoMKgIGlucHV0cykKPiArwqDCoMKgwqDCoMKgICgobWVtYmVy IG1peC1lbnYgKGxpc3QgJW1peC1lbnYtdGVzdCAlbWl4LWVudi1zaGFyZWQpKQo+ICvCoMKgwqDC oMKgwqDCoCAoYXBwZW5kIGlucHV0cyBuYXRpdmUtaW5wdXRzKSkKPiArwqDCoMKgwqDCoMKgICgj dCAoZXJyb3IgIlVuZXhwZWN0ZWQgTWl4IGVudmlyb25tZW50LiIgJ21peC1lbnYgbWl4LWVudikp KSkKWW91IHByb2JhYmx5IHdhbnQgYW5kIGljZS05IG1hdGNoIGhlcmUsIHdoaWNoIGhhcyBhbiBp bXBsaWNpdCBlcnJvciBvbgpmYWlsZWQgbWF0Y2hlcy4KPiArwqDCoMKgIChmaWx0ZXIgKGN1dCBl cmxhbmctb3ItZWxpeGlyLWlucHV0PyBlbGl4aXItWC5ZIDw+KSBlbnYtaW5wdXRzKSkKPiArCj4g K8KgIChkZWZpbmUgKGluc3RhbGwtaW5wdXQgbWl4LWVudiBpbnB1dCkKPiArwqDCoMKgIChsZXQg KChkaXIgKG1peC1idWlsZC1kaXIgbWl4LWVudikpKQo+ICvCoMKgwqDCoMKgIChta2Rpci1wIGRp cikKPiArwqDCoMKgwqDCoCAobWF0Y2ggaW5wdXQKPiArwqDCoMKgwqDCoMKgwqAgKChsYWJlbCAu IHBhdGgpCj4gK8KgwqDCoMKgwqDCoMKgwqAgKGxldCAoKGxpYi1uYW1lIChsYWJlbC0+bGlicmFy eS1uYW1lIGxhYmVsKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChzeW1saW5rCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGYtam9pbiAocGF0aC0+ZWxpeGlyLWxpYiBwYXRoIGVsaXhpci1Y LlkpIGxpYi1uYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmLWpvaW4gZGlyIGxpYi1u YW1lKSkpKSkpKQo+ICsKPiArwqAgKGRlZmluZSAoaW5zdGFsbC1pbnB1dHMgbWl4LWVudikKPiAr wqDCoMKgIChmb3ItZWFjaCAoY3V0IGluc3RhbGwtaW5wdXQgbWl4LWVudiA8PikKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFsbC1pbnB1dHMgbWl4LWVudikpKQo+ICsKPiArwqAgKGZv ci1lYWNoIGluc3RhbGwtaW5wdXRzIG1peC1lbnZpcm9ubWVudHMpKQo+ICsKPiArKGRlZmluZSog KGJ1aWxkICM6a2V5IG1peC1lbnZpcm9ubWVudHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAi QnVpbGRzIHRoZSBNaXggcHJvamVjdC4iCj4gK8KgIChkZWZpbmUgKGNvbXBpbGUgbWl4LWVudikK PiArwqDCoMKgIChzZXRlbnYgTUlYX0VOViBtaXgtZW52KQo+ICvCoMKgwqAgKGludm9rZSAibWl4 IiAiY29tcGlsZSIgIi0tbm8tZGVwcy1jaGVjayIpKQo+ICvCoCAoZm9yLWVhY2ggY29tcGlsZSBt aXgtZW52aXJvbm1lbnRzKSkKPiArCj4gKyhkZWZpbmUqIChjaGVjayAjOmtleSAodGVzdHM/ICN0 KSAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgICJUZXN0IHRoZSBNaXggcHJvamVjdC4iCj4gK8Kg IChpZiB0ZXN0cz8KPiArwqDCoMKgwqDCoCAoaW52b2tlICJtaXgiICJ0ZXN0IiAiLS1uby1kZXBz LWNoZWNrIikKPiArwqDCoMKgwqDCoCAoZm9ybWF0ICN0ICJ0ZXN0cz8gPSB+YX4lIiB0ZXN0cz8p KSkKPiArCj4gKyhkZWZpbmUqIChyZW1vdmUtbWl4LWRpcnMgLiBfKQo+ICvCoCAiUmVtb3ZlIGFs bCAubWl4LyBkaXJlY3Rvcmllcy4KPiArV2UgZG8gbm90IHdhbnQgdG8gY29weSB0aGVtIHRvIHRo ZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LiIKPiArwqAgKGRlZmluZSBtaXgtZGlycwo+ICvCoMKg wqAgKGZpbmQtZmlsZXMgIi4iCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZmls ZS1uYW1lLXByZWRpY2F0ZSAiXFwubWl4JCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAjOmRpcmVjdG9yaWVzPyAjdCkpCj4gK8KgIChmb3ItZWFjaCBkZWxldGUtZmlsZS1yZWN1 cnNpdmVseSBtaXgtZGlycykpCj4gKwo+ICsoZGVmaW5lKiAoaW5zdGFsbCAjOmtleQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVpbGQt cGVyLWVudmlyb25tZW50Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxp eGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6YWxsb3ctb3Ro ZXIta2V5cykKPiArwqAgIkluc3RhbGwgYnVpbGQgYXJ0aWZhY3RzIGluIHRoZSBzdG9yZS4iCj4g K8KgIChkZWZpbmUgbGliLW5hbWUgKHBrZy1uYW1lLT5saWJyYXJ5LW5hbWUgbmFtZSkpCj4gKwo+ ICvCoCAoZGVmaW5lIGRpci1idWlsZAo+ICvCoMKgwqAgKGYtam9pbiAobWl4LWJ1aWxkLWRpciAo aWYgYnVpbGQtcGVyLWVudmlyb25tZW50ICVtaXgtZW52LXByb2QKPiAlbWl4LWVudi1zaGFyZWQp KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxpYi1uYW1lKSkKPiArCj4gK8KgIChkZWZpbmUg ZGlyLWluc3RhbGwKPiArwqDCoMKgIChmLWpvaW4gKHBhdGgtPmVsaXhpci1saWIgKGFzc29jLXJl ZiBvdXRwdXRzICJvdXQiKSBlbGl4aXItWC5ZKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxp Yi1uYW1lKSkKPiArwqAgKG1rZGlyLXAgZGlyLWluc3RhbGwpCj4gKwo+ICvCoCAoY29weS1yZWN1 cnNpdmVseSBkaXItYnVpbGQgZGlyLWluc3RhbGwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgIzpmb2xsb3ctc3ltbGlua3M/ICN0KSkKPiArCj4gKyhkZWZpbmUgJXN0 YW5kYXJkLXBoYXNlcwo+ICvCoCAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwo+ ICvCoMKgwqAgKGRlbGV0ZSAnYm9vdHN0cmFwKQo+ICvCoMKgwqAgKHJlcGxhY2UgJ2NvbmZpZ3Vy ZSBjb25maWd1cmUpCj4gK8KgwqDCoCAocmVwbGFjZSAndW5wYWNrIHVucGFjaykKPiArwqDCoMKg IChhZGQtYWZ0ZXIgJ3BhdGNoLWdlbmVyYXRlZC1maWxlLXNoZWJhbmdzICdpbnN0YWxsLWhleCBp bnN0YWxsLQo+IGhleCkKPiArwqDCoMKgIChhZGQtYWZ0ZXIgJ2luc3RhbGwtaGV4ICdpbnN0YWxs LWRlcGVuZGVuY2llcyBpbnN0YWxsLQo+IGRlcGVuZGVuY2llcykKPiArwqDCoMKgIChyZXBsYWNl ICdidWlsZCBidWlsZCkKPiArwqDCoMKgIChyZXBsYWNlICdjaGVjayBjaGVjaykKPiArwqDCoMKg IChhZGQtYmVmb3JlICdpbnN0YWxsICdyZW1vdmUtbWl4LWRpcnMgcmVtb3ZlLW1peC1kaXJzKQo+ ICvCoMKgwqAgKHJlcGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkpKQo+ICsKPiArKGRlZmluZSogKG1p eC1idWlsZCAjOmtleSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3MpCj4gK8KgICJCdWlsZCB0aGUgZ2l2ZW4gTWl4IHBhY2thZ2UsIGFwcGx5aW5nIGFsbCBv ZiBQSEFTRVMgaW4gb3JkZXIuIgo+ICvCoCAoYXBwbHkgZ251OmdudS1idWlsZCAjOmlucHV0cyBp bnB1dHMgIzpwaGFzZXMgcGhhc2VzIGFyZ3MpKQo+ICsKPiArOzs7IG1peC1idWlsZC1zeXN0ZW0u c2NtIGVuZHMgaGVyZQo+IAo+IGJhc2UtY29tbWl0OiBhMGQzMzdlNzljODdkN2MzOGM3OWQwMjkx OTc0ZjQ5MGNiMTM3YTUyCkkgcHJvYmFibHkgbWlzc2VkIHNvbWUsIGJ1dCBJIHRoaW5rIHlvdSBn ZXQgdGhlIGdpc3QuICBXaGlsZSB0aGlzIGlzbid0CmV4YWN0bHkgY29kZSBnb2xmLCB0cnkgdG8g ZXhwcmVzcyB5b3Vyc2VsZiBpbiB0ZXJtcyBvZiB0aGUgbGVhc3QKdmVyYm9zZSBwcmltaXRpdmVz IGFuZCBkb24ndCBhZGQgbWVhbmluZ2xlc3MgbGF5ZXJzIG9mIGluZGlyZWN0aW9uIOKAkyB3ZQph bHJlYWR5IGhhdmUgZW5vdWdoIGFjdHVhbCBtZWFuaW5nZnVsIG9uZXMuCgpDaGVlcnMK