Received: by 2002:ab2:7855:0:b0:1f9:5764:f03e with SMTP id m21csp959594lqp; Thu, 23 May 2024 05:28:10 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUU3Q7ECf4hNykiGsSo2/9Wp3VslkH2SaFwtFX78bWOdn27uk5I0/hN+8jIF96ZoizILrb29UGYW+Wc0dgqp79Djr4pyKtrZ+eI869HAw== X-Google-Smtp-Source: AGHT+IE0W1VkSjYoSL8+Edu088veREuAbZ8Yfo4rYD3M/d6aq5OSGQLtiknkpNjPB3CQTILZzxOk X-Received: by 2002:a2e:86c8:0:b0:2e7:1e4a:31e0 with SMTP id 38308e7fff4ca-2e949467bf2mr37061731fa.18.1716467290736; Thu, 23 May 2024 05:28:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716467290; cv=pass; d=google.com; s=arc-20160816; b=A82tAk+h/R4Fkg2HhvdfIyMrDBIaen/yLM1N1+KyV8qHG52vQ5p0MUWeQqhNViJyFK bwzF5sOqSI7mjk8igfu8Nz0OroyBaMe8NMcQqXCJLn8jsvAyc8/e3kEFxTlbBC8n/aAn 22M8m3vQhh2EId/G3p4DJ2lTuwj9YavBylbcHmEZPpYUJAZ9AiRVNEZOYT62Ky9T8vmv TBi46Y//AHGkGZL0QC3zV+X+HyDWHnphj+9rz1CeWM0k7f/nYTrhQwU85Y5S2aO2kuD6 2x51gSuTv9E09bvmsHjrSeLCmBKbxlVN0vSf1MV3rxEItry95dk9CF+PLWJ4O98Fnk17 beXQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:subject:to:from:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=4mpd3rsYb7UmzvguPICYDKuBt0Fs6WptU6RkoC0GtXI=; fh=ypwVjMCKlfYnA09HBDxHyYkY4S68+VTbwrkLKuV7zjk=; b=HXP1vC28u1rkYGhLfPvAJfZWGEgdIxTr3K8Qr5vpjM7jNaPtJAKNxklVIyoqkHYD8M GTm8szl3qq5ID/Z48KXAm942r0Iz8UIj8+Pf6Iw+88FVg++kzzkWgofSdb3WdDbq4Vzw yEM3PpWNvp92X5tzy7uNq+5DwxyTeq2yFu9Yc6PSfmMFfYRGLmGZWGAjt3IdU5I9ZdUH on0IeqjdlMi3GMYASzea4swr+VAh4y276hgDOFonoK7QGlg5Nqg6FKjFOhEHMShoGH0L Bz1FeurQIB4v7qRx6vmlBbRgjRATGjFIcFgiSG70YdiQqDPc5PzEck+fM03PFVlX0j0C 1vVQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=YolcwkOq; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4891-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4891-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id a640c23a62f3a-a6206c9408bsi367171566b.423.2024.05.23.05.28.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 05:28:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-4891-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=YolcwkOq; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4891-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4891-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 0A5BB1F216BB for ; Thu, 23 May 2024 12:28:10 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6FBE913D61E; Thu, 23 May 2024 12:28:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YolcwkOq" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B752713BC02 for ; Thu, 23 May 2024 12:28:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716467283; cv=none; b=UQPk+BBoqAZp5D9v89Lb5b8ub7Bj2/q7jcttFp3omwaKtc60xq2u9VBkrYU+VFO1btyU7l59SgNAb1RxSt4jO6rzeT1SweWINwM9eP6ZKRpiRD4kJ/z7PR6oeJDFlSZ/ASnWe69ziRHRrPNmMTM3/NujlzcuFE1gQcQnZwFVNxs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716467283; c=relaxed/simple; bh=4mpd3rsYb7UmzvguPICYDKuBt0Fs6WptU6RkoC0GtXI=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=P4Y0qK5pJTP9UX5LXhd9uYTtZMHYbTRjHpqi2NnWDoaihF/UMgQZbtZt0oyYLf4xV0a59bEx69kURjsbTlyett/VVwL/Kef1ebEVnWel9NGJtIWRFPfxQVMAA5xNqa1y0Bf+bNPg5Erig5G5P28rfTyWt2SW1jEqs/xjUc7qErE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YolcwkOq; arc=none smtp.client-ip=209.85.160.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-2454156db8bso3015045fac.3 for ; Thu, 23 May 2024 05:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716467279; x=1717072079; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=4mpd3rsYb7UmzvguPICYDKuBt0Fs6WptU6RkoC0GtXI=; b=YolcwkOq1qMH94Cy2b6pgwKzDO1iMYRwnvVZwS7JUCCkUsVR1vGoQ4dHYS0Bp1gIEi pHk5pwZEgUC08R26UKypD6+VJnp2eFLvlcxuWrhgVkupYlwkKMiORZIfRDkUX4PzC6gX TKTBjH7m7g1gWfM55X2Eh1wisILF37z8K2i9E4GFnly8Ib0bnyW8Q60Q0/k0t8XQ6UOm q4PQpAyrMWNB+wcyDXNXp/shjnME3t7xJDIGB+sMRFFkMC1dv6RYtTDVasLrpPpm9fzg 8Uc4BHBXczA1k0yJOevK/3AFHq+jV5VayI012HT1keJhoJf5ejjRh6opeRjxGADFCJrf VBtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716467279; x=1717072079; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4mpd3rsYb7UmzvguPICYDKuBt0Fs6WptU6RkoC0GtXI=; b=oXkF0nqm0Ev+NeEP50Ol6mHLwNYpQ1Xcvd7Zin66nXM5CSFX6qihdDaHPI+z7tXCch 40wWXu7Sme4Qagc5CKoWlRSOqqBvTwKZ3MNrFRm8085ZT8xgf+93VMaAhX3UVbacDfoZ pU5/q6qgdtF5syZ496WLrHDtfwSxdccupRk7mwk4vRlD4Ad2pXkN+hFMHPl/gX+vJLyv goRbHs8aRaGPnL/GJz5m/IelZkN/YMP9Irh2+plbcNTeIDViiauz6bB0GzlB5bN9M4Mt +YPdlm3cjtqcJ7ECyZtuZNfJ8ckXJOtZ1wZxormn+Yfrn3FUsDHV+F71tor0MT032sXP ssfQ== X-Gm-Message-State: AOJu0YzMOMj2/+Lbs5GDv2muz6h1pVon+NUMQW8Ib67jBvzj9k0JD5o3 OBl6AXlSJ/jRnHR8aL2A5wGOh+107v2Um0hBO2L1fdQkSiSEzllAhC5Y5g== X-Received: by 2002:a05:6870:23a4:b0:23f:6353:a928 with SMTP id 586e51a60fabf-24c68e06f8cmr5257182fac.33.1716467278286; Thu, 23 May 2024 05:27:58 -0700 (PDT) Received: from [172.17.0.2] ([172.190.111.240]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-43e4bcde036sm75581751cf.38.2024.05.23.05.27.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 05:27:57 -0700 (PDT) Message-ID: <664f364d.050a0220.7975e.919a@mx.google.com> Date: Thu, 23 May 2024 05:27:57 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============7977466212570552521==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, arun@asymptotic.io Subject: RE: ASHA plugin In-Reply-To: <20240523102929.37761-2-arun@asymptotic.io> References: <20240523102929.37761-2-arun@asymptotic.io> Reply-To: linux-bluetooth@vger.kernel.org --===============7977466212570552521== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODU1Mjg0CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBGQUlMICAgICAgMy43MCBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAxLjk1IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDI0LjQ1IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDE2NjYuODcgc2Vjb25kcwpNYWtlQ2hlY2sgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MjIuMzAgc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBQQVNTICAgICAgMTc5 Ljc5IHNlY29uZHMKQ2hlY2tWYWxncmluZCAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE4Mi42 MiBzZWNvbmRzCkNoZWNrU21hdGNoICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAzNDAuMzUg c2Vjb25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgMTEwLjUxIHNl Y29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgRkFJTCAgICAgIDI5ODcuMTYgc2Vj b25kcwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgOTc5LjE3IHNlY29u ZHMKCkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrUGF0 Y2ggLSBGQUlMCkRlc2M6IFJ1biBjaGVja3BhdGNoLnBsIHNjcmlwdApPdXRwdXQ6CltCbHVlWix2 NywxLzZdIHNyYy9zaGFyZWQ6IEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBhbiBBU0hB IHByb2ZpbGUKV0FSTklORzpCTE9DS19DT01NRU5UX1NUWUxFOiBCbG9jayBjb21tZW50cyB1c2Ug YSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzE5NDogRklMRTogc3JjL3NoYXJlZC9h c2hhLmM6NTE6CisJCQkJCQkgKiB3b3JrICovCgovZ2l0aHViL3dvcmtzcGFjZS9zcmMvc3JjLzEz NjcxNTk0LnBhdGNoIHRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgNTkwIGxpbmVzIGNoZWNr ZWQKCk5PVEU6IEZvciBzb21lIG9mIHRoZSByZXBvcnRlZCBkZWZlY3RzLCBjaGVja3BhdGNoIG1h eSBiZSBhYmxlIHRvCiAgICAgIG1lY2hhbmljYWxseSBjb252ZXJ0IHRvIHRoZSB0eXBpY2FsIHN0 eWxlIHVzaW5nIC0tZml4IG9yIC0tZml4LWlucGxhY2UuCgovZ2l0aHViL3dvcmtzcGFjZS9zcmMv c3JjLzEzNjcxNTk0LnBhdGNoIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4KCk5P VEU6IElnbm9yZWQgbWVzc2FnZSB0eXBlczogQ09NTUlUX01FU1NBR0UgQ09NUExFWF9NQUNSTyBD T05TVF9TVFJVQ1QgRklMRV9QQVRIX0NIQU5HRVMgTUlTU0lOR19TSUdOX09GRiBQUkVGRVJfUEFD S0VEIFNQRFhfTElDRU5TRV9UQUcgU1BMSVRfU1RSSU5HIFNTQ0FORl9UT19LU1RSVE8KCk5PVEU6 IElmIGFueSBvZiB0aGUgZXJyb3JzIGFyZSBmYWxzZSBwb3NpdGl2ZXMsIHBsZWFzZSByZXBvcnQK ICAgICAgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlIENIRUNLUEFUQ0ggaW4gTUFJTlRBSU5F UlMuCgoKW0JsdWVaLHY3LDIvNl0gcHJvZmlsZXMvYXVkaW86IEFkZCBhbiBBU0hBIHBsdWdpbgpF UlJPUjpTUEFDSU5HOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzQy OTogRklMRTogcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjI4MzoKKwlpZiAoIWJ0X2FzaGFfcHJvYmUo YXNoYV9kZXYtPmFzaGEsZGIsIGNsaWVudCkpCiAJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgoKL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy8xMzY3MTU5Ni5wYXRjaCB0b3RhbDog MSBlcnJvcnMsIDAgd2FybmluZ3MsIDY3OSBsaW5lcyBjaGVja2VkCgpOT1RFOiBGb3Igc29tZSBv ZiB0aGUgcmVwb3J0ZWQgZGVmZWN0cywgY2hlY2twYXRjaCBtYXkgYmUgYWJsZSB0bwogICAgICBt ZWNoYW5pY2FsbHkgY29udmVydCB0byB0aGUgdHlwaWNhbCBzdHlsZSB1c2luZyAtLWZpeCBvciAt LWZpeC1pbnBsYWNlLgoKL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy8xMzY3MTU5Ni5wYXRjaCBo YXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuCgpOT1RFOiBJZ25vcmVkIG1lc3NhZ2Ug dHlwZXM6IENPTU1JVF9NRVNTQUdFIENPTVBMRVhfTUFDUk8gQ09OU1RfU1RSVUNUIEZJTEVfUEFU SF9DSEFOR0VTIE1JU1NJTkdfU0lHTl9PRkYgUFJFRkVSX1BBQ0tFRCBTUERYX0xJQ0VOU0VfVEFH IFNQTElUX1NUUklORyBTU0NBTkZfVE9fS1NUUlRPCgpOT1RFOiBJZiBhbnkgb2YgdGhlIGVycm9y cyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgcmVwb3J0CiAgICAgIHRoZW0gdG8gdGhlIG1h aW50YWluZXIsIHNlZSBDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKCltCbHVlWix2NywzLzZd IHRlc3Q6IEFkZCBhIHNjcmlwdCB0byB0ZXN0IEFTSEEKRVJST1I6RVhFQ1VURV9QRVJNSVNTSU9O UzogZG8gbm90IHNldCBleGVjdXRlIHBlcm1pc3Npb25zIGZvciBzb3VyY2UgZmlsZXMKIzEwNDog RklMRTogdGVzdC9zaW1wbGUtYXNoYQoKL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy8xMzY3MTU5 NS5wYXRjaCB0b3RhbDogMSBlcnJvcnMsIDAgd2FybmluZ3MsIDE2NiBsaW5lcyBjaGVja2VkCgpO T1RFOiBGb3Igc29tZSBvZiB0aGUgcmVwb3J0ZWQgZGVmZWN0cywgY2hlY2twYXRjaCBtYXkgYmUg YWJsZSB0bwogICAgICBtZWNoYW5pY2FsbHkgY29udmVydCB0byB0aGUgdHlwaWNhbCBzdHlsZSB1 c2luZyAtLWZpeCBvciAtLWZpeC1pbnBsYWNlLgoKL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy8x MzY3MTU5NS5wYXRjaCBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuCgpOT1RFOiBJ Z25vcmVkIG1lc3NhZ2UgdHlwZXM6IENPTU1JVF9NRVNTQUdFIENPTVBMRVhfTUFDUk8gQ09OU1Rf U1RSVUNUIEZJTEVfUEFUSF9DSEFOR0VTIE1JU1NJTkdfU0lHTl9PRkYgUFJFRkVSX1BBQ0tFRCBT UERYX0xJQ0VOU0VfVEFHIFNQTElUX1NUUklORyBTU0NBTkZfVE9fS1NUUlRPCgpOT1RFOiBJZiBh bnkgb2YgdGhlIGVycm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgcmVwb3J0CiAgICAg IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZSBDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoK CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2UgLSBGQUlMCkRl c2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9u IOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI3MjU6NTogbm90ZTogdmFyaWFibGUg dHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2ln bm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyNzI1IHwgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZkdHAuYzogSW4gZnVuY3Rp b24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6IG5vdGU6IHZhcmlhYmxlIHRy YWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25t ZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDc2NiB8IGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2cmNwLmM6IEluIGZ1bmN0aW9u IOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdnJjcC5jOjk4OTo1OiBub3RlOiB2YXJpYWJsZSB0cmFj a2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVu dHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA5ODkgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQogICAgICB8ICAgICBefn5+CnByb2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOiBJbiBm dW5jdGlvbiDigJh0cmFuc3BvcnRfYXNoYV9yZXN1bWXigJk6CnByb2ZpbGVzL2F1ZGlvL3RyYW5z cG9ydC5jOjE4MjQ6MTA6IGVycm9yOiBjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24g PCAwIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDE4MjQgfCAgaWYgKHJl dCA8IDApCiAgICAgIHwgICAgICAgICAgXgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzogSW4g ZnVuY3Rpb24g4oCYdHJhbnNwb3J0X2FzaGFfY2FuY2Vs4oCZOgpwcm9maWxlcy9hdWRpby90cmFu c3BvcnQuYzoxODU2Ojk6IGVycm9yOiBjb21wYXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMg b2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKAmGd1aW504oCZIHtha2Eg4oCYdW5zaWduZWQgaW50 4oCZfSBhbmQg4oCYaW504oCZIFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDE4NTYgfCAgaWYgKGlk ICE9IGFzaGEtPnJlc3VtZV9pZCkgewogICAgICB8ICAgICAgICAgXn4KY2MxOiBhbGwgd2Fybmlu Z3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMDIxMDog cHJvZmlsZXMvYXVkaW8vYmx1ZXRvb3RoZC10cmFuc3BvcnQub10gRXJyb3IgMQptYWtlWzFdOiAq KiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2 NjM6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogTWFr ZUNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVjawpPdXRwdXQ6Cgpwcm9maWxl cy9hdWRpby90cmFuc3BvcnQuYzogSW4gZnVuY3Rpb24g4oCYdHJhbnNwb3J0X2FzaGFfcmVzdW1l 4oCZOgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzoxODI0OjEwOiBlcnJvcjogY29tcGFyaXNv biBvZiB1bnNpZ25lZCBleHByZXNzaW9uIDwgMCBpcyBhbHdheXMgZmFsc2UgWy1XZXJyb3I9dHlw ZS1saW1pdHNdCiAxODI0IHwgIGlmIChyZXQgPCAwKQogICAgICB8ICAgICAgICAgIF4KcHJvZmls ZXMvYXVkaW8vdHJhbnNwb3J0LmM6IEluIGZ1bmN0aW9uIOKAmHRyYW5zcG9ydF9hc2hhX2NhbmNl bOKAmToKcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0LmM6MTg1Njo5OiBlcnJvcjogY29tcGFyaXNv biBvZiBpbnRlZ2VyIGV4cHJlc3Npb25zIG9mIGRpZmZlcmVudCBzaWduZWRuZXNzOiDigJhndWlu dOKAmSB7YWthIOKAmHVuc2lnbmVkIGludOKAmX0gYW5kIOKAmGludOKAmSBbLVdlcnJvcj1zaWdu LWNvbXBhcmVdCiAxODU2IHwgIGlmIChpZCAhPSBhc2hhLT5yZXN1bWVfaWQpIHsKICAgICAgfCAg ICAgICAgIF5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb MV06ICoqKiBbTWFrZWZpbGU6MTAyMTA6IHByb2ZpbGVzL2F1ZGlvL2JsdWV0b290aGQtdHJhbnNw b3J0Lm9dIEVycm9yIDEKbWFrZTogKioqIFtNYWtlZmlsZToxMjI0NjogY2hlY2tdIEVycm9yIDIK IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrVmFsZ3JpbmQgLSBGQUlM CkRlc2M6IFJ1biBCbHVleiBNYWtlIENoZWNrIHdpdGggVmFsZ3JpbmQKT3V0cHV0OgoKdG9vbHMv bWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIu YzoxMjcyNTo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdp dGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTI3 MjUgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnBy b2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOiBJbiBmdW5jdGlvbiDigJh0cmFuc3BvcnRfYXNoYV9y ZXN1bWXigJk6CnByb2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOjE4MjQ6MTA6IGVycm9yOiBjb21w YXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPCAwIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJv cj10eXBlLWxpbWl0c10KIDE4MjQgfCAgaWYgKHJldCA8IDApCiAgICAgIHwgICAgICAgICAgXgpw cm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzogSW4gZnVuY3Rpb24g4oCYdHJhbnNwb3J0X2FzaGFf Y2FuY2Vs4oCZOgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzoxODU2Ojk6IGVycm9yOiBjb21w YXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMgb2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKA mGd1aW504oCZIHtha2Eg4oCYdW5zaWduZWQgaW504oCZfSBhbmQg4oCYaW504oCZIFstV2Vycm9y PXNpZ24tY29tcGFyZV0KIDE4NTYgfCAgaWYgKGlkICE9IGFzaGEtPnJlc3VtZV9pZCkgewogICAg ICB8ICAgICAgICAgXn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMK bWFrZVsxXTogKioqIFtNYWtlZmlsZToxMDIxMDogcHJvZmlsZXMvYXVkaW8vYmx1ZXRvb3RoZC10 cmFuc3BvcnQub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBq b2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjEyMjQ2OiBjaGVja10gRXJyb3IgMgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQ2hlY2tTbWF0Y2ggLSBGQUlMCkRlc2M6IFJ1 biBzbWF0Y2ggdG9vbCB3aXRoIHNvdXJjZQpPdXRwdXQ6CgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3 MToyMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Y3J5cHRvLmM6MjcyOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo3Njg6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjgzMDozMTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJz LmM6MTMyMzozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9z aGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTM1NDoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzoyNzg6MjU6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjIx OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LXNlcnZlci5jOjcyMDoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCnNyYy9zaGFyZWQvYmFwLmM6Mjg2OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBz dHJ1Y3R1cmVzCnNyYy9zaGFyZWQvYmFwLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3Jj L3NoYXJlZC9hc2NzLmg6ODg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVy ZXMKc3JjL3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91 c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Js dHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5j dGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpz cmMvc2hhcmVkL2NyeXB0by5jOjI3MToyMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcyOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo3Njg6MzE6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVs cGVycy5jOjgzMDozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNy Yy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTMyMzozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTM1NDoyMzogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIu YzoyNzg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtc2VydmVyLmM6NjIxOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjcyMDoyNTogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvYmFwLmM6Mjg2OjI1OiB3YXJuaW5n OiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQvYmFwLmM6IG5vdGU6IGlu IGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9hc2NzLmg6ODg6MjU6IHdhcm5pbmc6IGFycmF5 IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNs dWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUv cmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRl ZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ0NQUEZ1bmN0aW9uJwp0b29scy9tZXNoLWNmZ3Rlc3QuYzoxNDUzOjE3OiB3YXJuaW5n OiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0b29scy9zY28tdGVzdGVyLmM6IG5vdGU6 IGluIGluY2x1ZGVkIGZpbGU6Ci4vbGliL2JsdWV0b290aC5oOjIxOToxNTogd2FybmluZzogYXJy YXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL2xpYi9ibHVldG9vdGguaDoyMjQ6MzE6IHdhcm5p bmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKdG9vbHMvYm5lcHRlc3QuYzo2MzQ6Mzk6 IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVlbmNlOiAnXCUnCnRvb2xzL3NlcTJic2VxLmM6 NTc6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp0b29scy9vYmV4 LWNsaWVudC10b29sLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVm cy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5j dGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmFuZHJvaWQv YXZjdHAuYzo1MDU6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgph bmRyb2lkL2F2Y3RwLmM6NTU2OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6MzczOjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6Mzk4OjI2OiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6NDE0OjI0OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxMDg1 OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJj cC1saWIuYzoxNTgzOjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K YW5kcm9pZC9hdnJjcC1saWIuYzoxNjEyOjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxNjM4OjM0OiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbWVzaC9tZXNoLWlvLW1nbXQuYzo1MjM6Njc6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpjbGllbnQvZGlzcGxheS5jOiBub3Rl OiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGlu ZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNy L2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBm dW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MToyMTog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5cHRv LmM6MjcyOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LWhlbHBlcnMuYzo3Njg6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjgzMDozMTogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTMy MzozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Z2F0dC1oZWxwZXJzLmM6MTM1NDoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzoyNzg6MjU6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjIxOjI1OiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNl cnZlci5jOjcyMDoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNy Yy9zaGFyZWQvYmFwLmM6Mjg2OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1 cmVzCnNyYy9zaGFyZWQvYmFwLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJl ZC9hc2NzLmg6ODg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3Jj L3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5j bHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRl ZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwptb25pdG9y L3BhY2tldC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL2Rpc3BsYXkuaDo4Mjoy Njogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCm1vbml0b3IvcGFja2V0 LmM6MTg2NzoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCm1vbml0 b3IvcGFja2V0LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Cm1vbml0b3IvYnQuaDozNjA2OjUy OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCm1vbml0b3IvYnQuaDozNTk0 OjQwOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCm1vbml0b3IvbDJjYXAu Yzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9kaXNwbGF5Lmg6ODI6MjY6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgptb25pdG9yL21zZnQuYzogbm90ZTog aW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9tc2Z0Lmg6ODg6NDQ6IHdhcm5pbmc6IGFycmF5IG9m IGZsZXhpYmxlIHN0cnVjdHVyZXMKbW9uaXRvci9hdHQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmls ZToKbW9uaXRvci9kaXNwbGF5Lmg6ODI6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgp0b29scy9yY3Rlc3QuYzo2MjQ6MzM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdhdXRvbWF0ZWRfc2VuZF9yZWN2Jwp0b29scy9o ZXgyaGNkLmM6MTM1OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K dG9vbHMvbWVzaGN0bC5jOjMyNDozMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ2ZvcmdldF9tZXNoX2RldmljZXMnCnRvb2xzL21lc2gtZ2F0dC9u b2RlLmM6NDU2OjM5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnbm9kZV9nZXRfbG9jYWxfbm9kZScKdG9vbHMvbWVzaC1nYXR0L25ldC5jOjEyMzk6 MzA6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdn ZXRfbmV4dF9zZXEnCnRvb2xzL21lc2gtZ2F0dC9uZXQuYzoyMTkzOjI5OiB3YXJuaW5nOiBub24t QU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbmV0X2dldF9kZWZhdWx0X3R0 bCcKdG9vbHMvbWVzaC1nYXR0L25ldC5jOjIyMDc6MjY6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICduZXRfZ2V0X3NlcV9udW0nCnRvb2xzL21lc2gt Z2F0dC9wcm92LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNy L2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBm dW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnRvb2xzL21lc2gt Z2F0dC9vbm9mZi1tb2RlbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3Iv aW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlw ZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2 OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn VkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlv bicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9u LUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwplbGwv bG9nLmM6NDMxOjY1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAncmVnaXN0ZXJfZGVidWdfc2VjdGlvbicKZWxsL2xvZy5jOjQzOTo2ODogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZyZWVfZGVidWdf c2VjdGlvbnMnCmVsbC9yYW5kb20uYzo2MDo0Mjogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2xfZ2V0cmFuZG9tX2lzX3N1cHBvcnRlZCcKZWxsL2Np cGhlci5jOjY2MDoyODogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ2luaXRfc3VwcG9ydGVkJwplbGwvY2hlY2tzdW0uYzozNzI6Mjg6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpbml0X3N1cHBvcnRl ZCcKZWxsL2NoZWNrc3VtLmM6NDM0OjQ3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnbF9jaGVja3N1bV9jbWFjX2Flc19zdXBwb3J0ZWQnCmVsbC9j aXBoZXIuYzo1MTk6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpl bGwvY2VydC1jcnlwdG8uYzozNjozMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCmVsbC9jZXJ0LWNyeXB0by5jOjEzMjozNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC9jZXJ0LWNyeXB0by5jOjE4ODozNjogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9jZXJ0LWNyeXB0by5jOjI0MTozMTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9rZXkuYzo1Mzg6MjU6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvZGJ1cy1zZXJ2aWNlLmM6NTQ4 OjQ5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn X2RidXNfb2JqZWN0X3RyZWVfbmV3JwplbGwvZGJ1cy1maWx0ZXIuYzoyMzI6NDY6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLmM6NDU6MjU6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLmM6ODY6MjI6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLmM6ODY6NDY6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLmM6MTgxOToyNjogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA3ODoy NTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVz LmM6MTA4MDozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90 bHMtc3VpdGVzLmM6MTA4Mzo0MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCmVsbC90bHMtc3VpdGVzLmM6MTEzMjo0MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVtdWxhdG9yL2J0ZGV2LmM6NDM2OjI5OiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6NjEwOjI4OiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6Nzg0OjI4OiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYXR0cmliL2dhdHR0b29sLmM6 MjM1OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYXR0cmliL2lu dGVyYWN0aXZlLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNy L2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBm dW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmF0dHJpYi9pbnRl cmFjdGl2ZS5jOjE3NDoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ2Rpc2Nvbm5lY3RfaW8nCmF0dHJpYi9pbnRlcmFjdGl2ZS5jOjI5OToyMzog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnByb2ZpbGVzL3NhcC9zZXJ2 ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKcHJvZmlsZXMvc2FwL3NhcC5oOjc3OjM1OiB3 YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnByb2ZpbGVzL2F1ZGlvL3RyYW5z cG9ydC5jOiBJbiBmdW5jdGlvbiDigJh0cmFuc3BvcnRfYXNoYV9yZXN1bWXigJk6CnByb2ZpbGVz L2F1ZGlvL3RyYW5zcG9ydC5jOjE4MjQ6MTA6IGVycm9yOiBjb21wYXJpc29uIG9mIHVuc2lnbmVk IGV4cHJlc3Npb24gPCAwIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDE4 MjQgfCAgaWYgKHJldCA8IDApCiAgICAgIHwgICAgICAgICAgXgpwcm9maWxlcy9hdWRpby90cmFu c3BvcnQuYzogSW4gZnVuY3Rpb24g4oCYdHJhbnNwb3J0X2FzaGFfY2FuY2Vs4oCZOgpwcm9maWxl cy9hdWRpby90cmFuc3BvcnQuYzoxODU2Ojk6IGVycm9yOiBjb21wYXJpc29uIG9mIGludGVnZXIg ZXhwcmVzc2lvbnMgb2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKAmGd1aW504oCZIHtha2Eg4oCY dW5zaWduZWQgaW504oCZfSBhbmQg4oCYaW504oCZIFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDE4 NTYgfCAgaWYgKGlkICE9IGFzaGEtPnJlc3VtZV9pZCkgewogICAgICB8ICAgICAgICAgXn4KY2Mx OiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtl ZmlsZToxMDIxMDogcHJvZmlsZXMvYXVkaW8vYmx1ZXRvb3RoZC10cmFuc3BvcnQub10gRXJyb3Ig MQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiog W01ha2VmaWxlOjQ2NjM6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKVGVzdDogYmx1ZXptYWtlZXh0ZWxsIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVleiB3aXRoIEV4 dGVybmFsIEVMTApPdXRwdXQ6Cgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzogSW4gZnVuY3Rp b24g4oCYdHJhbnNwb3J0X2FzaGFfcmVzdW1l4oCZOgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQu YzoxODI0OjEwOiBlcnJvcjogY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBleHByZXNzaW9uIDwgMCBp cyBhbHdheXMgZmFsc2UgWy1XZXJyb3I9dHlwZS1saW1pdHNdCiAxODI0IHwgIGlmIChyZXQgPCAw KQogICAgICB8ICAgICAgICAgIF4KcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0LmM6IEluIGZ1bmN0 aW9uIOKAmHRyYW5zcG9ydF9hc2hhX2NhbmNlbOKAmToKcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0 LmM6MTg1Njo5OiBlcnJvcjogY29tcGFyaXNvbiBvZiBpbnRlZ2VyIGV4cHJlc3Npb25zIG9mIGRp ZmZlcmVudCBzaWduZWRuZXNzOiDigJhndWludOKAmSB7YWthIOKAmHVuc2lnbmVkIGludOKAmX0g YW5kIOKAmGludOKAmSBbLVdlcnJvcj1zaWduLWNvbXBhcmVdCiAxODU2IHwgIGlmIChpZCAhPSBh c2hhLT5yZXN1bWVfaWQpIHsKICAgICAgfCAgICAgICAgIF5+CmNjMTogYWxsIHdhcm5pbmdzIGJl aW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTAyMTA6IHByb2Zp bGVzL2F1ZGlvL2JsdWV0b290aGQtdHJhbnNwb3J0Lm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdh aXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjYzOiBh bGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEluY3JlbWVu dGFsQnVpbGQgLSBGQUlMCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdpdGggdGhlIHBhdGNoZXMg aW4gdGhlIHNlcmllcwpPdXRwdXQ6CltCbHVlWix2NywyLzZdIHByb2ZpbGVzL2F1ZGlvOiBBZGQg YW4gQVNIQSBwbHVnaW4KCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7i gJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI3MjU6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcg c2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZ LCByZXRyeWluZyB3aXRob3V0CjEyNzI1IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZkdHAuYzogSW4gZnVuY3Rpb24g4oCYbWFp buKAmToKdW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNp emUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwg cmV0cnlpbmcgd2l0aG91dAogIDc2NiB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2cmNwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7i gJk6CnVuaXQvdGVzdC1hdnJjcC5jOjk4OTo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXpl IGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJl dHJ5aW5nIHdpdGhvdXQKICA5ODkgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog ICAgICB8ICAgICBefn5+CnByb2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOiBJbiBmdW5jdGlvbiDi gJh0cmFuc3BvcnRfYXNoYV9yZXN1bWXigJk6CnByb2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOjE4 MTg6MTA6IGVycm9yOiBjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPCAwIGlzIGFs d2F5cyBmYWxzZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDE4MTggfCAgaWYgKHJldCA8IDApCiAg ICAgIHwgICAgICAgICAgXgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzogSW4gZnVuY3Rpb24g 4oCYdHJhbnNwb3J0X2FzaGFfY2FuY2Vs4oCZOgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzox ODUwOjk6IGVycm9yOiBjb21wYXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMgb2YgZGlmZmVy ZW50IHNpZ25lZG5lc3M6IOKAmGd1aW504oCZIHtha2Eg4oCYdW5zaWduZWQgaW504oCZfSBhbmQg 4oCYaW504oCZIFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDE4NTAgfCAgaWYgKGlkICE9IGFzaGEt PnJlc3VtZV9pZCkgewogICAgICB8ICAgICAgICAgXn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcg dHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMDIxMDogcHJvZmlsZXMv YXVkaW8vYmx1ZXRvb3RoZC10cmFuc3BvcnQub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGlu ZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2NjM6IGFsbF0g RXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogU2NhbkJ1aWxkIC0g RkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6NDUxOjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2 OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRp c2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6OTk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxMTAyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9l Y29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjk0OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1 Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzU5OjI6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29t cGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM0 OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAo cmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxNjM5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNDM6Njogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNTE6ODog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYo b3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjQwOjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb21wbGV0 ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFsc2UpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNs aWVudC5jOjMyNjI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAog ICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMTIg d2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL3NoZWxsLmM6MTMzMToxMzogd2FybmluZzog QWNjZXNzIHRvIGZpZWxkICdvcHRpb25zJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBu dWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdvcHQnKQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoYyAhPSBvcHQtPm9wdGlvbnNbaW5kZXggLSBvZmZzZXRdLnZhbCkgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVy YXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xp ZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNl LCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5NjoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9w LCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTEwMjoyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29w X2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MTI5NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTM1OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNDo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzOToyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxs KG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoy MTQzOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBp ZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzoyMTUxOjg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MzI0MDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3Ms IDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjYyOjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJl ZC9zaGVsbC5jOjEzMzE6MTM6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVz dWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJp YWJsZSAnb3B0JykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25z W2luZGV4IC0gb2Zmc2V0XS52YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2hjaWF0dGFjaC5jOjgxNjo3 OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRo ZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQg ZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTApKSA8 IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2hjaWF0dGFjaC5jOjg2NDo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRv ICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5l dmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVu dChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4ODY6ODogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgICAgICAg ICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTApKSA8IDApIHsKICAgICAgICAg ICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0 YWNoLmM6OTA4Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlz IHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0 dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCBy ZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkyOTo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUg c3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZh bHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFk X2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5NzM6Nzogd2FybmluZzogQWx0 aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4 cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAg ICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDYpKSA8IDApIHsKICAgICAgICAg ICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNiB3YXJuaW5ncyBnZW5lcmF0ZWQu CnNyYy9vdWkuYzo1MDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVy IHJlYWQKICAgICAgICBod2RiID0gdWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAg ICB+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL291aS5jOjUzOjI6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVk ZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVk Lgp0b29scy9oY2lkdW1wLmM6MTgwOjk6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9y eSBwb2ludGVkIHRvIGJ5ICdkcCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo ZmRzW2ldLmZkID09IHNvY2spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fgp0b29scy9oY2lkdW1wLmM6MjQ4OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRoLT50c19z ZWMgID0gaHRvYmwoZnJtLnRzLnR2X3NlYyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6MzI2 Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6 ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmUzMnRvaChkcC5m bGFncykgJiAweDAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQg ZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkK ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM0MToy MDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXpl ZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZybS5kYXRhX2xlbiA9IGJl MzJ0b2goZHAubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBl eHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2Fw XzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1w LmM6MzQ2OjE0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmlu aXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID0g YmUzMnRvaChkcC5mbGFncykgJiAweGZmZmY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIy OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4 KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29s cy9oY2lkdW1wLmM6Mzg0OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9y IHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBmcm0uZGF0YV9sZW4gPSBidG9ocyhk aC5sZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+ fn5+CnRvb2xzL2hjaWR1bXAuYzozOTQ6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh cmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBmcm0ubGVuID0gZnJtLmRhdGFfbGVu OwogICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6 Mzk4Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgdHMgPSBiZTY0dG9oKHBoLnRzKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUv ZW5kaWFuLmg6NTE6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlNjR0b2gnCiMgIGRl ZmluZSBiZTY0dG9oKHgpIF9fYnN3YXBfNjQgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0MDM6MTM6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBj YWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAg ICAgICAgZnJtLmluID0gYmUzMnRvaChkcC5mbGFncykgJiAweDAxOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6 NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMy dG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ CnRvb2xzL2hjaWR1bXAuYzo0MDg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJh Z2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGRoLmluOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fgp0b29scy9oY2lkdW1wLmM6NDM3 Ojc6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3Rp bmcgJ25vbm51bGwnCiAgICAgICAgZmQgPSBvcGVuKGZpbGUsIG9wZW5fZmxhZ3MsIDA2NDQpOwog ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxMSB3YXJuaW5ncyBnZW5l cmF0ZWQuCnRvb2xzL3JmY29tbS5jOjIzNDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2kn IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJndlswXSwgY21k YXJndik7CiAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL3JmY29tbS5jOjIzNDo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBw YXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgaSA9IGV4ZWN2cChj bWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MzU0Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2 YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwg dGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAg ICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAg ICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9yZmNvbW0uYzo0OTc6MTQ6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJh Z2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgcmVxLmNoYW5uZWwgPSByYWRkci5yY19jaGFubmVsOwog ICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo1MTU6 ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4g dGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVh ZCBmcm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRP TkxZIHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjUgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2Rw LXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRl ZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAg ICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDA6MTE6IHdhcm5pbmc6IEFz c2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAg ICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMzODoxMTogd2FybmluZzogQXNzaWduZWQgdmFs dWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFd ID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+ fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jaXB0b29sLmM6MzUwOjc6IHdhcm5pbmc6 IDV0aCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAg ICAgICBzayA9IGRvX2Nvbm5lY3QoY3RsLCBkZXZfaWQsICZzcmMsICZkc3QsIHBzbSwgKDEgPDwg Q01UUF9MT09QQkFDSykpOwogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4K dG9vbHMvc2RwdG9vbC5jOjk0MToyNjogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNv bnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAndWludDMyX3QnLCB3aGljaCBpcyBpbmNvbXBh dGlibGUgd2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICdpbnQnCiAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90ICp2YWx1ZV9pbnQgPSBtYWxsb2Moc2l6ZW9mKGludCkpOwogICAgICAgICAg ICAgICAgICAgICAgICB+fn5+fn5+fn5+ICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+CnRv b2xzL3NkcHRvb2wuYzo5ODA6NDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQg aXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGFs bG9jQXJyYXlbaV0pOwogICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL3NkcHRvb2wuYzozNzc3OjI6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9y eSBwb2ludGVkIHRvIGJ5ICdzaS5uYW1lJwogICAgICAgIHJldHVybiBhZGRfc2VydmljZSgwLCAm c2kpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzo0 MTEyOjQ6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdj b250ZXh0LnN2YycKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2F2dGVz dC5jOjIyNTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjIzNTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI0NDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI1ODo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjY1OjU6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNzI6NTogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI3OTo1OiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjkxOjU6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjk1OjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6 MzA0OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv YXZ0ZXN0LmM6MzA4OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1Ziwg Mik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6MzE3OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzI0OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzQ2OjU6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzUwOjU6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzU5 OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6MzYzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6Mzc2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzgwOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzg3OjQ6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTc6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjU2MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1NzA6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIGludmFsaWQgPyAyIDogMyk7CiAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjU4NDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCArIHNpemVvZihtZWRpYV90cmFuc3Bv cnQpKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTk3OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2 dGVzdC5jOjYwNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVh ZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MTk6Mzogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6NjM0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY0Njoz OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NTU6Mzogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6NjYyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY5ODoyOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIEFWQ1RQX0hFQURFUl9MRU5HVEggKyBzaXplb2YocGxheV9wcmVzc2VkKSk7CiAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgozMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2J0cHJveHkuYzo4MzY6MTU6 IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3Rpbmcg J25vbm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIHRjcF9wb3J0ID0gYXRvaShvcHRhcmcp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9i dHByb3h5LmM6ODM5Ojg6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFt ZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJs ZW4ob3B0YXJnKSA+IDMgJiYgIXN0cm5jbXAob3B0YXJnLCAiaGNpIiwgMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9v bHMvY3JlYXRlLWltYWdlLmM6NzY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAgICAgICAgICAgIF4gICAg fn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6ODQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdm ZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAgICAgICAgICAg IF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6OTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAgICAg ICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6MTA1OjI6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICBmZCA9IC0xOwogICAgICAgIF4g ICAgfn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1jbGllbnQuYzoxODI0OjI6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFy Z3YgKz0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu CnRvb2xzL2J0Z2F0dC1zZXJ2ZXIuYzoxMjEyOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn YXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3YgLT0gb3B0aW5kOwogICAgICAgIF4gICAg ICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2NoZWNrLXNlbGZ0ZXN0LmM6NDI6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIHB0ciA9IGZnZXRzKHJlc3VsdCwgc2l6ZW9mKHJlc3VsdCksIGZwKTsKICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgp0b29scy9nYXR0LXNlcnZpY2UuYzoyOTQ6Mjogd2FybmluZzogMm5kIGZ1bmN0 aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGNocl93 cml0ZShjaHIsIHZhbHVlLCBsZW4pOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL29iZXgtc2VydmVyLXRvb2wuYzoxMzM6MTM6IHdh cm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25v bm51bGwnCiAgICAgICAgZGF0YS0+ZmQgPSBvcGVuKG5hbWUsIE9fV1JPTkxZIHwgT19DUkVBVCB8 IE9fTk9DVFRZLCAwNjAwKTsKICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL29iZXgtc2VydmVyLXRvb2wuYzoxOTI6 MTM6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3Rp bmcgJ25vbm51bGwnCiAgICAgICAgZGF0YS0+ZmQgPSBvcGVuKG5hbWUsIE9fUkRPTkxZIHwgT19O T0NUVFksIDApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRwY2xpZW50Y3RsLmM6NDAyOjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICBiaXQgPSAwOwogICAgICAgICAgICAgICAgXiAgICAgfgp0b29scy9idHBjbGllbnRjdGwu YzoxNjU1OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMm5kIHBhcmFtZXRlciBl eHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgbWVtY3B5KGNwLT5kYXRhLCBhZF9kYXRhLCBhZF9s ZW4pOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdz IGdlbmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIxMToxMzogd2FybmluZzogUmVzdWx0IG9m ICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNo IGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZf dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+ fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIzOToxMzogd2FybmluZzogUmVzdWx0IG9m ICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNo IGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJf dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+ fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmFuZHJvaWQvYXZyY3AtbGliLmM6MTk2 ODozOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxp emVkIHZhbHVlCiAgICAgICAgICAgICAgICBnX2ZyZWUodGV4dFtpXSk7CiAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KcHJvZmlsZXMvaGVhbHRoL2hk cC5jOjY0NDozOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgICAgICAgICBoZHBfdG1wX2RjX2RhdGFfdW5yZWYoZGNfZGF0YSk7CiAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjgw MDoxOTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAg ICAgICAgcGF0aCA9IGdfc3RyZHVwKGNoYW4tPnBhdGgpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjE3Nzk6Njogd2Fybmlu ZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGRwX3RtcF9kY19kYXRhX3JlZihoZHBfY29ubiksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6MTgzNjozMDogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcGx5ID0gZ19kYnVzX2NyZWF0ZV9lcnJvcihk YXRhLT5tc2csIEVSUk9SX0lOVEVSRkFDRSAiLkhlYWx0aEVycm9yIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9m aWxlcy9oZWFsdGgvaGRwX3V0aWwuYzoxMDUyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb25uX2RhdGEtPmZ1bmMoY29ubl9kYXRhLT5kYXRhLCBn ZXJyKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KYXR0cmli L2dhdHQuYzo5NzA6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQg dG8gYnkgJ2xvbmdfd3JpdGUnCiAgICAgICAgcmV0dXJuIHByZXBhcmVfd3JpdGUobG9uZ193cml0 ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIxMToxMzogd2FybmluZzogUmVzdWx0IG9mICdt YWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlz IGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZfdCkp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIzOToxMzogd2FybmluZzogUmVzdWx0IG9mICdt YWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlz IGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJfdCkp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+ fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAteG1sLmM6MTI2OjEwOiB3YXJu aW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAg ICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+ fn5+fgpzcmMvc2RwLXhtbC5jOjMwMDoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2Fy YmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtp ICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9z ZHAteG1sLmM6MzM4OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVu ZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5l cmF0ZWQuCnNyYy9zZHAtY2xpZW50LmM6MzUzOjE0OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQg J2NiJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIKICAgICAgICAo KmN0eHQpLT5jYiA9IGNiOwogICAgICAgIH5+fn5+fn5+fn5+fl5+fn4KMSB3YXJuaW5nIGdlbmVy YXRlZC4Kc3JjL2dhdHQtZGF0YWJhc2UuYzoxMTU1OjEwOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2JpdHMnIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAg IHVpbnQ4X3QgYml0c1tdID0geyBCVF9HQVRUX0NIUkNfQ0xJX0ZFQVRfUk9CVVNUX0NBQ0hJTkcs CiAgICAgICAgICAgICAgICBefn5+ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtaGVhZGVyLmM6Njc6Mjog d2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAn bm9ubnVsbCcKICAgICAgICBtZW1jcHkodG8sIGZyb20sIGNvdW50KTsKICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC10cmFuc2Zl ci5jOjQyMzo3OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgaWYgKCFnX3NsaXN0X2ZpbmQodHJhbnNmZXJzLCB0cmFuc2ZlcikpCiAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KbWVz aC9tYWluLmM6MTYxOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnb3B0YXJnJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBvcHRhcmcgKz0gc3RybGVuKCJhdXRvIik7CiAgICAgICAg ICAgICAgICBeICAgICAgICAgfn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KbGli L2hjaS5jOjk3OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSBzcHJpbnRmKHB0ciwgIiVzIiwgbS0+c3Ry KTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdkYnVzL3dhdGNoLmM6MjI2OjM6IHdhcm5pbmc6IEF0 dGVtcHQgdG8gZnJlZSByZWxlYXNlZCBtZW1vcnkKICAgICAgICAgICAgICAgIGdfZnJlZShsLT5k YXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVk LgpsaWIvc2RwLmM6NTA5OjE2OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQgcG9p bnRlciB2YWx1ZQogICAgICAgICAgICAgICAgaW50OF90IGR0ZCA9ICoodWludDhfdCAqKSBkdGRz W2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Cmxp Yi9zZHAuYzo1Mzc6MTc6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIHVuZGVmaW5lZCBwb2ludGVy IHZhbHVlCiAgICAgICAgICAgICAgICB1aW50OF90IGR0ZCA9ICoodWludDhfdCAqKSBkdGRzW2ld OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIv c2RwLmM6NTgyOjEyOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2F0dHJJZCcgcmVzdWx0cyBp biBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAn ZCcpCiAgICAgICAgZC0+YXR0cklkID0gYXR0cjsKICAgICAgICB+ICAgICAgICAgXgpsaWIvc2Rw LmM6MTg3MjoyNjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8g YnkgJ2FwJwogICAgICAgIGZvciAoOyBwZGxpc3Q7IHBkbGlzdCA9IHBkbGlzdC0+bmV4dCkgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpsaWIvc2RwLmM6MTg4Njo2OiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncGRzJwogICAg ICAgICAgICAgICAgYXAgPSBzZHBfbGlzdF9hcHBlbmQoYXAsIHBkcyk7CiAgICAgICAgICAgICAg ICB+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvc2RwLmM6MTkzMToxMDogd2Fybmlu ZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3UnCiAgICAgICAgICAg ICAgICAgICAgICAgICpzZXFwID0gc2RwX2xpc3RfYXBwZW5kKCpzZXFwLCB1KTsKICAgICAgICAg ICAgICAgICAgICAgICAgfn5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAu YzoyMDM2OjQ6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5 ICdsYW5nJwogICAgICAgICAgICAgICAgICAgICAgICBzZHBfbGlzdF9mcmVlKCpsYW5nU2VxLCBm cmVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgpsaWIvc2RwLmM6MjEy NTo5OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncHJv ZkRlc2MnCiAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgIF4KbGliL3NkcC5jOjMyNTc6 ODogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3BTdmNS ZWMnCiAgICAgICAgICAgICAgICBwU2VxID0gc2RwX2xpc3RfYXBwZW5kKHBTZXEsIHBTdmNSZWMp OwogICAgICAgICAgICAgICAgfn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgps aWIvc2RwLmM6MzI1ODo5OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRl ZCB0byBieSAncFNlcScKICAgICAgICAgICAgICAgIHBkYXRhICs9IHNpemVvZih1aW50MzJfdCk7 CiAgICAgICAgICAgICAgICB+fn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzo0NTk0 OjEzOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncmVj X2xpc3QnCiAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHNjYW5uZWQgPCBhdHRyX2xp c3RfbGVuICYmIHBkYXRhX2xlbiA+IDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+CmxpYi9zZHAuYzo0ODkwOjQwOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBt ZW1vcnkgcG9pbnRlZCB0byBieSAndHNlcScKICAgICAgICBmb3IgKGQgPSBzZHBkYXRhLT52YWwu ZGF0YXNlcTsgZDsgZCA9IGQtPm5leHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KbGliL3NkcC5jOjQ5MjY6ODogd2FybmluZzogUG90ZW50aWFsIGxl YWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3N1YnNlcScKICAgICAgICAgICAgICAgIHRzZXEg PSBzZHBfbGlzdF9hcHBlbmQodHNlcSwgc3Vic2VxKTsKICAgICAgICAgICAgICAgIH5+fn5+Xn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzo0NTE6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIob3AtPmNsaWVudC0+ZGIsIG9w LT5kYl9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjY5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBmYWxzZSwgYXR0X2Vjb2Rl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo5OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2Vzcywg YXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjExMDI6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShv cCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEyOTQ6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjEzNTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjE2MzQ6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2Mzk6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyX2FsbChvcCk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Mzo2OiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJf aGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MjE1MTo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0 LWNsaWVudC5jOjMyNDA6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI2MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzox MzMxOjEzOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBk ZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcp CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9m ZnNldF0udmFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgptb25pdG9yL2wyY2FwLmM6MTYzODo0OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2RhdGEnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YSArPSBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgfn5+Cm1vbml0 b3IvbDJjYXAuYzoxNjM5OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnc2l6ZScgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIC09IGxlbjsKICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgICB+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCm1vbml0b3IvaHdk Yi5jOjU5OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVhZAog ICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJfdW5yZWYoaHdkYik7CiAgICAgICAgXiAgICAgIH5+fn5+ fn5+fn5+fn5+fn5+fn5+fgptb25pdG9yL2h3ZGIuYzo2NDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2 KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgptb25pdG9yL2h3ZGIuYzoxMDY6Mjog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdk YiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjExMToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3Vk ZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAg ICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYmx1 ZW1vb24uYzoxMTAxOjg6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFt ZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJs ZW4ob3B0YXJnKSA+IDMgJiYgIXN0cm5jbXAob3B0YXJnLCAiaGNpIiwgMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29s cy9tZXNoY3RsLmM6MzI2OjE5OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ21lc2hfZGV2aWNl cycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJv bSB2YXJpYWJsZSAnZGVmYXVsdF9jdHJsJykKICAgICAgICBnX2xpc3RfZnJlZV9mdWxsKGRlZmF1 bHRfY3RybC0+bWVzaF9kZXZpY2VzLCBnX2ZyZWUpOwogICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvbWVzaGN0bC5jOjc2MjoyOiB3YXJuaW5n OiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAg ICAgICAgYnRfc2hlbGxfcHJpbnRmKCJBdHRlbXB0aW5nIHRvIGRpc2Nvbm5lY3QgZnJvbSAlc1xu IiwgYWRkcik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvbWVzaGN0bC5jOjE5NTc6Mjogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICBsZW4gPSBsZW4gKyBleHRy YSArIHN0cmxlbigibG9jYWxfbm9kZS5qc29uIik7CiAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gdG9vbHMvbWVzaC1nYXR0L2NyeXB0by5jOjMyOgouL3NyYy9zaGFyZWQv dXRpbC5oOjIzOTo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmV0dXJuIGJlMzJfdG9fY3B1KGdldF91bmFsaWdu ZWQoKGNvbnN0IHVpbnQzMl90ICopIHB0cikpOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgouL3NyYy9zaGFyZWQvdXRpbC5o OjMzOjI2OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMyX3RvX2NwdScKI2RlZmluZSBi ZTMyX3RvX2NwdSh2YWwpIGJzd2FwXzMyKHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2J5dGVzd2FwLmg6MzQ6MjE6IG5vdGU6IGV4cGFuZGVk IGZyb20gbWFjcm8gJ2Jzd2FwXzMyJwojZGVmaW5lIGJzd2FwXzMyKHgpIF9fYnN3YXBfMzIgKHgp CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IHRvb2xzL21lc2gtZ2F0dC9jcnlwdG8uYzozMjoKLi9zcmMvc2hhcmVkL3V0aWwuaDoyNDk6OTog d2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2 YWx1ZQogICAgICAgIHJldHVybiBiZTY0X3RvX2NwdShnZXRfdW5hbGlnbmVkKChjb25zdCB1aW50 NjRfdCAqKSBwdHIpKTsKICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDozNDoyNjogbm90ZTog ZXhwYW5kZWQgZnJvbSBtYWNybyAnYmU2NF90b19jcHUnCiNkZWZpbmUgYmU2NF90b19jcHUodmFs KSBic3dhcF82NCh2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci91 c3IvaW5jbHVkZS9ieXRlc3dhcC5oOjM3OjIxOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdi c3dhcF82NCcKI2RlZmluZSBic3dhcF82NCh4KSBfX2Jzd2FwXzY0ICh4KQogICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvdXRpbC5jOjc4 MTo4OiB3YXJuaW5nOiBUaGUgbGVmdCBvcGVyYW5kIG9mICc+JyBpcyBhIGdhcmJhZ2UgdmFsdWUK ICAgICAgICBpZiAoeCA+IFVJTlQ4X01BWCkKICAgICAgICAgICAgfiBeCmVsbC91dGlsLmM6Nzk5 Ojg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEgZ2FyYmFnZSB2YWx1ZQog ICAgICAgIGlmICh4ID4gVUlOVDE2X01BWCkKICAgICAgICAgICAgfiBeCjIgd2FybmluZ3MgZ2Vu ZXJhdGVkLgplbGwvcGVtLmM6MTMxOjg6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2VvbCcpCiAgICAgICAgICAgICAgICAgICAgICAg IGlmICgqZW9sID09ICdccicgfHwgKmVvbCA9PSAnXG4nKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fgplbGwvcGVtLmM6MTY2OjE4OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxs IHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdlb2wnKQogICAgICAgICAgICAgICAgaWYg KGJ1Zl9sZW4gJiYgKmVvbCA9PSAnXHInICYmICpidWZfcHRyID09ICdcbicpIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn4KZWxsL3BlbS5jOjE2NjozNDogd2FybmluZzogRGVy ZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnYnVmX3B0cicp CiAgICAgICAgICAgICAgICBpZiAoYnVmX2xlbiAmJiAqZW9sID09ICdccicgJiYgKmJ1Zl9wdHIg PT0gJ1xuJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+CmVsbC9wZW0uYzozMDQ6MTE6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFy Z3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICByZXN1bHQgPSBwZW1fbG9h ZF9idWZmZXIoZmlsZS5kYXRhLCBmaWxlLnN0LnN0X3NpemUsCiAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgplbGwvcGVtLmM6NDY5Ojk6 IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQg dmFsdWUKICAgICAgICBsaXN0ID0gbF9wZW1fbG9hZF9jZXJ0aWZpY2F0ZV9saXN0X2Zyb21fZGF0 YShmaWxlLmRhdGEsCiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL2NlcnQuYzo2NDQ6 NDE6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnYXNuMV9sZW4nIHJlc3VsdHMgaW4gYSBkZXJl ZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2NlcnQnKQog ICAgICAgIGtleSA9IGxfa2V5X25ldyhMX0tFWV9SU0EsIGNlcnQtPmFzbjEsIGNlcnQtPmFzbjFf bGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgplbGwvZ3ZhcmlhbnQtdXRpbC5jOjE0Mzox ODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnPicgaXMgYSBnYXJiYWdlIHZhbHVlCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGlnbm1lbnQgPiBtYXhfYWxpZ25tZW50KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+IF4KZWxsL2d2YXJpYW50LXV0aWwuYzo0 NTY6NTogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyCiAgICAgICAgICAgICAg ICAgICAgICAgICFjaGlsZHJlblswXS5maXhlZF9zaXplKSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvZWNj LWV4dGVybmFsLmM6Njg6MjQ6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEg Z2FyYmFnZSB2YWx1ZQogICAgICAgIHJldHVybiAodmxpW2JpdCAvIDY0XSAmICgodWludDY0X3Qp IDEgPDwgKGJpdCAlIDY0KSkpOwogICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fiBeCmVsbC9l Y2MtZXh0ZXJuYWwuYzoxNjA6MTg6IHdhcm5pbmc6IFRoZSByaWdodCBvcGVyYW5kIG9mICctJyBp cyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgIGRpZmYgPSBsZWZ0W2ldIC0gcmlnaHRb aV0gLSBib3Jyb3c7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+CjIg d2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvcGFyc2VyL2Ft cC5jOjE1Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTIxOjE2OiB3YXJuaW5nOiBEZXJlZmVyZW5j ZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3Qg dCA9IGYtPnRzLnR2X3NlYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTI3OjI3OiB3YXJuaW5nOiBE ZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcmludGYoIiU4bHUuJTA2bHUgIiwgZi0+dHMudHZfc2VjLCBmLT50cy50dl91c2VjKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjk6MTg6IHdhcm5pbmc6IEFjY2VzcyB0byBm aWVsZCAnaW4nIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ2YnKQogICAgICAgICAgICAgICAgcHJpbnRmKCIlYyAiLCAoZi0+ aW4gPyAnPicgOiAnPCcpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CjMg d2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvcGFyc2VyL3Nk cC5jOjI0Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTIxOjE2OiB3YXJuaW5nOiBEZXJlZmVyZW5j ZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3Qg dCA9IGYtPnRzLnR2X3NlYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTI3OjI3OiB3YXJuaW5nOiBE ZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcmludGYoIiU4bHUuJTA2bHUgIiwgZi0+dHMudHZfc2VjLCBmLT50cy50dl91c2VjKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjk6MTg6IHdhcm5pbmc6IEFjY2VzcyB0byBm aWVsZCAnaW4nIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ2YnKQogICAgICAgICAgICAgICAgcHJpbnRmKCIlYyAiLCAoZi0+ aW4gPyAnPicgOiAnPCcpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CjMg d2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvcGFyc2VyL3Bw cC5jOjIyOgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTU2OjI6IHdhcm5pbmc6IFVuZGVmaW5lZCBv ciBnYXJiYWdlIHZhbHVlIHJldHVybmVkIHRvIGNhbGxlcgogICAgICAgIHJldHVybiAqdThfcHRy OwogICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNlci9wcHAuYzoxMDg6MzA6IHdhcm5p bmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIGlm ICgqKCh1aW50OF90ICopIGZybS0+cHRyKSAmIDB4ODApCiAgICAgICAgICAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+IF4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVtdWxhdG9yL3NlcmlhbC5jOjE1 MDoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAg ICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zhcih0eXBlKTsKICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZW11bGF0b3Ivc2VyaWFsLmM6MTUw OjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3R5cGUnIGR1cmluZyBpdHMgaW5pdGlhbGl6 YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVk X3Zhcih0eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fgplbXVsYXRvci9zZXJpYWwuYzozNTozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAndW5p bml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0aWFsaXplZF92YXIoeCkgeCA9IHgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgfgplbXVsYXRvci9zZXJpYWwuYzoyMTM6Mjogd2Fy bmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICBlbnVt IGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5cGUpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZW11bGF0b3Ivc2VyaWFsLmM6MjEz OjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2Rldl90eXBlJyBkdXJpbmcgaXRzIGluaXRp YWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFs aXplZF92YXIoZGV2X3R5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fgplbXVsYXRvci9zZXJpYWwuYzozNTozMDogbm90ZTogZXhwYW5kZWQgZnJv bSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0aWFsaXplZF92YXIoeCkg eCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgfgo0IHdhcm5pbmdzIGdlbmVy YXRlZC4KZW11bGF0b3Ivc2VydmVyLmM6MjAwOjI6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlz IGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6 ZWRfdmFyKHR5cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgplbXVsYXRvci9zZXJ2ZXIuYzoyMDA6MzY6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn dHlwZScgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgZW51 bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVtdWxhdG9yL3NlcnZlci5jOjM2OjMwOiBub3Rl OiBleHBhbmRlZCBmcm9tIG1hY3JvICd1bmluaXRpYWxpemVkX3ZhcicKI2RlZmluZSB1bmluaXRp YWxpemVkX3Zhcih4KSB4ID0geAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICB+CjIg d2FybmluZ3MgZ2VuZXJhdGVkLgplbXVsYXRvci9iMWVlLmM6MjU4OjM6IHdhcm5pbmc6IFBvdGVu dGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzZXJ2ZXJfcG9ydCcKICAgICAgICAg ICAgICAgIGludCBvcHQ7CiAgICAgICAgICAgICAgICBefn5+fn5+CmVtdWxhdG9yL2IxZWUuYzoy NTg6Mzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3Nu aWZmZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7CiAgICAgICAgICAgICAgICBefn5+ fn5+CmVtdWxhdG9yL2IxZWUuYzoyODk6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmdj JyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJnYyA9IGFyZ2MgLSBvcHRpbmQ7CiAgICAgICAgXiAg ICAgIH5+fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVtdWxhdG9yL2J0ZGV2LmM6 MTEwMToxMDogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnY29ubicgaXMg dXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1 YWxseSByZWFkIGZyb20gJ2Nvbm4nCiAgICAgICAgd2hpbGUgKChjb25uID0gcXVldWVfZmluZChk ZXYtPmNvbm5zLCBtYXRjaF9oYW5kbGUsCiAgICAgICAgICAgICAgICBeICAgICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVtdWxhdG9yL2J0ZGV2LmM6MTM4ODoyNDogd2Fy bmluZzogQWNjZXNzIHRvIGZpZWxkICdsaW5rJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2Yg YSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjb25uJykKICAgICAgICBwZW5k aW5nX2Nvbm5fZGVsKGRldiwgY29ubi0+bGluay0+ZGV2KTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fgplbXVsYXRvci9idGRldi5jOjE1MTA6MTM6IHdhcm5pbmc6IEFj Y2VzcyB0byBmaWVsZCAnZGV2JyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBv aW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjb25uJykKICAgICAgICBzZW5kX2V2ZW50KGNv bm4tPmRldiwgQlRfSENJX0VWVF9BVVRIX0NPTVBMRVRFLCAmZXYsIHNpemVvZihldikpOwogICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpnb2JleC9nb2Jl eC1oZWFkZXIuYzo2NzoyOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDJuZCBwYXJh bWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIG1lbWNweSh0bywgZnJvbSwgY291bnQp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdv YmV4L2dvYmV4LXRyYW5zZmVyLmM6NDIzOjc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICBpZiAoIWdfc2xpc3RfZmluZCh0cmFuc2ZlcnMsIHRyYW5zZmVy KSkKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0dC5jOjk3MDoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVh ayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbG9uZ193cml0ZScKICAgICAgICByZXR1cm4gcHJl cGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9idHBjbGllbnQuYzoyNDk0OjM6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncmVwbHknIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgIHJlcGx5ID0gbF9kYnVzX21lc3NhZ2VfbmV3X2Vycm9yKGFnLnBlbmRpbmdfcmVxLAogICAg ICAgICAgICAgICAgXiAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmFuZHJvaWQvYXZkdHAuYzo3NTY6MjU6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIHNlc3Npb24t PnByaW9fcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5wcmlvX3F1ZXVlLCByZXEpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KYW5kcm9pZC9hdmR0cC5jOjc2MzoyNDogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cmVx X3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hdmR0cC5j Ojg5NToyNTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg ICAgICAgICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnBy aW9fcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hdmR0 cC5jOjkwMjoyNDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAg ICAgICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+ cmVxX3F1ZXVlLCByZXEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVk Lgpwcm9maWxlcy9hdWRpby9hMmRwLmM6MzcwOjg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlmICghY2ItPnJlc3VtZV9jYikKICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxl cy9hdWRpby90cmFuc3BvcnQuYzogSW4gZnVuY3Rpb24g4oCYdHJhbnNwb3J0X2FzaGFfcmVzdW1l 4oCZOgpwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzoxODE4OjEwOiBlcnJvcjogY29tcGFyaXNv biBvZiB1bnNpZ25lZCBleHByZXNzaW9uIDwgMCBpcyBhbHdheXMgZmFsc2UgWy1XZXJyb3I9dHlw ZS1saW1pdHNdCiAxODE4IHwgIGlmIChyZXQgPCAwKQogICAgICB8ICAgICAgICAgIF4KcHJvZmls ZXMvYXVkaW8vdHJhbnNwb3J0LmM6IEluIGZ1bmN0aW9uIOKAmHRyYW5zcG9ydF9hc2hhX2NhbmNl bOKAmToKcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0LmM6MTg1MDo5OiBlcnJvcjogY29tcGFyaXNv biBvZiBpbnRlZ2VyIGV4cHJlc3Npb25zIG9mIGRpZmZlcmVudCBzaWduZWRuZXNzOiDigJhndWlu dOKAmSB7YWthIOKAmHVuc2lnbmVkIGludOKAmX0gYW5kIOKAmGludOKAmSBbLVdlcnJvcj1zaWdu LWNvbXBhcmVdCiAxODUwIHwgIGlmIChpZCAhPSBhc2hhLT5yZXN1bWVfaWQpIHsKICAgICAgfCAg ICAgICAgIF5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb MV06ICoqKiBbTWFrZWZpbGU6MTAyMTA6IHByb2ZpbGVzL2F1ZGlvL2JsdWV0b290aGQtdHJhbnNw b3J0Lm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4u Li4KcHJvZmlsZXMvYXVkaW8vbWVkaWEuYzoxMDQ4Ojc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlmIChyZXEtPmNiICE9IHBhY19zZWxl Y3RfY2IpIHsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu Cm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY2MzogYWxsXSBFcnJvciAyCgoKLS0tClJlZ2FyZHMsCkxp bnV4IEJsdWV0b290aAoK --===============7977466212570552521==--