Received: by 2002:ab2:6991:0:b0:1f7:f6c3:9cb1 with SMTP id v17csp656558lqo; Wed, 8 May 2024 10:36:24 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXobsKZF5eAq+c92+bkYPp4Obm9Wvov1N6JytdfX35DNpv3w6L84UOnc3RAUh6FNS67lU0xdTe6p+sFzlO2Tsw39y608cAld195jd5dKg== X-Google-Smtp-Source: AGHT+IFuTqQng48cUcJb+Kf40+i5rZPsgjh3vmeeFMG0xlIit4FOFSZAh1Ajgw9/8exoS0Z/UMr7 X-Received: by 2002:a05:6808:3a97:b0:3c5:fed9:ea36 with SMTP id 5614622812f47-3c985292843mr3335794b6e.3.1715189783966; Wed, 08 May 2024 10:36:23 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715189783; cv=pass; d=google.com; s=arc-20160816; b=D6E11+JDd6lKKpmlj1D3FBDr4Gl1yhMs1hCWUXJAm+0AxWru6ND+niS1e5hApPxlCS o10GfWZDtAcgIJZVoPe+Oa/d/2qDiEiLxIvTvGoJq643Xt0X31+FiOEdhaeGP/3m0kx6 x7VRpKUawbdoDT7Gt8I/QyLwbUFIW6nVH0CtTkCEYsf36qifGtkkziVNvpC5/0rg8XUR RRWfO/dmBnNfK4jPLMhSNRxU+67i6s6fei5dEC+SROmN7KWOToNv5ixQnbqEU3NhAEg6 7hmMK/Tyfl+u0W5vZbExBsxiD9aDmjb3TkBq/pIJ5xm+dZ1Br0/+m5Kx9rbeKRooSQ4L Vo4w== 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=Oys9XmBGcAtbnTD3Urg2lOYK77h1qT01JM97nyO9yGg=; fh=ypwVjMCKlfYnA09HBDxHyYkY4S68+VTbwrkLKuV7zjk=; b=ObqkjRABc145QhwKuEDe1llUF0Eoycu2W/fiYssVBXKnn7YjbxhxYsEff/OvgT1odT ZIYmZA8pFFiN0NnrBQoAvWpIvVCf9pj93C1qS/SDkMllTld/mtib1GOK6lUYwkG2ZA5j uXhANgDsLqUr0nrz/Kmr9J/TXF8ddx45Z9bta/URwjDHX0kbAQlOG08ihTMfYCB/qaK1 Kfi4tJdwc1NoPvc+OeAf/9M4tUXsrPkM1DFHUKiooQ5tke+opeA5cxVTVPoKhzSg4/kD yCPatQBIhBgtJnx9p48h6zZWYS2a51a4C8nQjaTr+KSSVh4nPTimZ90QoRAeTTz2AuSs Npxw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=iIrC+HEN; 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-4404-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4404-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id c2-20020ac87dc2000000b0043ddfb3e4aasi925467qte.774.2024.05.08.10.36.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 May 2024 10:36:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-4404-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=iIrC+HEN; 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-4404-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4404-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 1F8691C21406 for ; Wed, 8 May 2024 17:36:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 24021128806; Wed, 8 May 2024 17:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iIrC+HEN" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) (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 57DDB10A25 for ; Wed, 8 May 2024 17:36:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715189778; cv=none; b=NZNGWRVs0PmzyE3O5JmjzVg7OgORIj05tot3nYL/bmzvR8Adr6sbqQjVLGnS0aKocVf4GFpmDMg0eIDw0H6SnZMSlezU7iwVnhAEAANoR1jlCFF8e8SgUngRNrIOuaL27Zl1dj1OIMkUx2w8o5G5irAAaxEYoaljyB6Bp9FuFAo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715189778; c=relaxed/simple; bh=Oys9XmBGcAtbnTD3Urg2lOYK77h1qT01JM97nyO9yGg=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=S37nt1cgqvPe4eGvnOge/jfntEGfFwbWkN0t906epaUTZE7svlOWP8aupYXvB9ex/ISV+ywS3eHF3Cssf6jGOy5sMZNLeXZnXIkZA4GHAuoezWKNASfAPlBhYmeRm4a/0+FQ/PFghFMvIW+bAfFX/eMszXlwedBwcRoSGQWPT4Q= 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=iIrC+HEN; arc=none smtp.client-ip=209.85.222.171 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-qk1-f171.google.com with SMTP id af79cd13be357-792b8d989e4so62038185a.2 for ; Wed, 08 May 2024 10:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715189774; x=1715794574; 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=Oys9XmBGcAtbnTD3Urg2lOYK77h1qT01JM97nyO9yGg=; b=iIrC+HENUYt5ccEbdlU9BlEdWjrXJT1xWVcby45ALSJDxWJOuo4c/Apbt+574fu6hD +qI2zZZsp3GOjnum6jvAE3vNmQKsjrUHagJdAMB/jVou00fQuJ6Wr7b7XbBOTOs8+bFZ JUlOFmInyfhLemV5EOGCmMNKDHkTI0FZRxlb+zpXKEV2Tz/X9vE+jnDZA3/HPnobyWoe +Wr/42MehcnkACLs8OJle+zZPGKfKMayEVn7Zx9DfyI7jhYPMrQszGVGbWWRyMzO0RN2 GZy3056pnuG+RU3fEjRef2gfvF6mzCCABAcf9nas0zNFVL1hvALcKxZg0puc98ZGAmcr 490A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715189774; x=1715794574; 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=Oys9XmBGcAtbnTD3Urg2lOYK77h1qT01JM97nyO9yGg=; b=RYpy29qfV7+mkJBQSUGhvVU2JgCMo4DIL3TV8Nknlk3HphfJOC/oeFC8CQhCruvjN7 FRmIeaRx6RBkxbe620W6PHWRlO+PjlVYASzEFpOsePM1vIXmcN+RC3znCtX33CvTU0Ap wqOwfizt+LlruMRX01kEgkp7F56desO8Gd2uZZtQ832OjphYRAqT6Rexmn9kI+AizRVh E2X+bSle2Aw8c64FrXwi96l+XBousXhddEX//vpb5EyMmQmU/66moo3OAJs8OLG8ajvy hafSY5Vb+IVQ+ryEcykBCPojuYGCjdzKvWbeIRAZ/pesBziRvsapYBrP8YclLB9+Xo5y bHYA== X-Gm-Message-State: AOJu0YxzWfnJodtJSOm4xLwJV5QqrJ0kyJcn6VITjgWXNTdYS+JUif73 TtBT6xnxsL0c34/YghGYM+Wd/MQWHl/YZ+N51tfndjCvDoRzlW8AtZhvMw== X-Received: by 2002:a05:620a:40d2:b0:790:c7f9:43df with SMTP id af79cd13be357-792b2868e4bmr399376485a.53.1715189773180; Wed, 08 May 2024 10:36:13 -0700 (PDT) Received: from [172.17.0.2] ([74.249.14.189]) by smtp.gmail.com with ESMTPSA id de27-20020a05620a371b00b0078ed5316f96sm6094934qkb.6.2024.05.08.10.36.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 May 2024 10:36:12 -0700 (PDT) Message-ID: <663bb80c.050a0220.a5e2.65e1@mx.google.com> Date: Wed, 08 May 2024 10:36:12 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============3605618274029777173==" 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: <20240508154604.276763-2-arun@asymptotic.io> References: <20240508154604.276763-2-arun@asymptotic.io> Reply-To: linux-bluetooth@vger.kernel.org --===============3605618274029777173== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODUxNjMzCgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBGQUlMICAgICAgMy4xMiBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAxLjYzIHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDI0LjI5IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDg1LjA3IHNlY29uZHMKTWFrZUNoZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE5 NjUuMzYgc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBGQUlMICAgICAgNTcu NzUgc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgNjQuNjIg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMTY1LjQ1IHNl Y29uZHMKYmx1ZXptYWtlZXh0ZWxsICAgICAgICAgICAgICAgRkFJTCAgICAgIDY1LjM1IHNlY29u ZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgRkFJTCAgICAgIDE1NTMuNzUgc2Vjb25k cwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgNjk1LjI2IHNlY29uZHMK CkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrUGF0Y2gg LSBGQUlMCkRlc2M6IFJ1biBjaGVja3BhdGNoLnBsIHNjcmlwdApPdXRwdXQ6CltCbHVlWiwxLzVd IHByb2ZpbGVzOiBBZGQgaW5pdGlhbCBjb2RlIGZvciBhbiBBU0hBIHBsdWdpbgpXQVJOSU5HOkxP TkdfTElORTogbGluZSBsZW5ndGggb2YgODYgZXhjZWVkcyA4MCBjb2x1bW5zCiMzNTI6IEZJTEU6 IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxODc6CisJZXJyID0gc2V0c29ja29wdChmZCwgU09MX0JM VUVUT09USCwgQlRfUkNWTVRVLCAmb3B0cy5pbXR1LCBzaXplb2Yob3B0cy5pbXR1KSk7CgpXQVJO SU5HOkxPTkdfTElORTogbGluZSBsZW5ndGggb2YgODEgZXhjZWVkcyA4MCBjb2x1bW5zCiMzNjE6 IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxOTY6CisJCWVycm9yKCJDb3VsZCBub3QgY29u bmVjdCBMMkNBUCBDb0Mgc29ja2V0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CgpXQVJOSU5HOlRZ UE9fU1BFTExJTkc6ICdlcnJyb3InIG1heSBiZSBtaXNzcGVsbGVkIC0gcGVyaGFwcyAnZXJyb3In PwojNDkyOiBGSUxFOiBwcm9maWxlcy9hdWRpby9hc2hhLmM6MzI3OgorCQlEQkcoIlJlYWRpbmcg UFNNIGZhaWxlZCB3aXRoIEFUVCBlcnJyb3I6ICV1IiwgYXR0X2Vjb2RlKTsKIAkJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCgpXQVJOSU5HOlRZUE9fU1BFTExJTkc6ICdl cnJyb3InIG1heSBiZSBtaXNzcGVsbGVkIC0gcGVyaGFwcyAnZXJyb3InPwojNTE1OiBGSUxFOiBw cm9maWxlcy9hdWRpby9hc2hhLmM6MzUwOgorCQlEQkcoIlJlYWRpbmcgUk9QcyBmYWlsZWQgd2l0 aCBBVFQgZXJycm9yOiAldSIsIGF0dF9lY29kZSk7CiAJCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeXl5eXl4KCkVSUk9SOlRSQUlMSU5HX1NUQVRFTUVOVFM6IHRyYWlsaW5nIHN0 YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQgbGluZSAob3IgZGlkIHlvdSBtZWFuICdlbHNlIGlm Jz8pCiM1OTU6IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0MzA6CisJfSBpZiAodXVpZF9j bXAoQVNIQV9DSFJDX1JFQURfT05MWV9QUk9QRVJUSUVTX1VVSUQsICZ1dWlkKSkgewoKRVJST1I6 VFJBSUxJTkdfU1RBVEVNRU5UUzogdHJhaWxpbmcgc3RhdGVtZW50cyBzaG91bGQgYmUgb24gbmV4 dCBsaW5lIChvciBkaWQgeW91IG1lYW4gJ2Vsc2UgaWYnPykKIzU5OTogRklMRTogcHJvZmlsZXMv YXVkaW8vYXNoYS5jOjQzNDoKKwl9IGlmICh1dWlkX2NtcChBU0hBX0NIUkNfQVVESU9fQ09OVFJP TF9QT0lOVF9VVUlELCAmdXVpZCkpIHsKCkVSUk9SOlRSQUlMSU5HX1NUQVRFTUVOVFM6IHRyYWls aW5nIHN0YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQgbGluZSAob3IgZGlkIHlvdSBtZWFuICdl bHNlIGlmJz8pCiM2MDI6IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0Mzc6CisJfSBpZiAo dXVpZF9jbXAoQVNIQV9DSFJDX0FVRElPX1NUQVRVU19VVUlELCAmdXVpZCkpIHsKCldBUk5JTkc6 TE9OR19MSU5FOiBsaW5lIGxlbmd0aCBvZiA4MSBleGNlZWRzIDgwIGNvbHVtbnMKIzYxNjogRklM RTogcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjQ1MToKK3N0YXRpYyB2b2lkIGZvcmVhY2hfYXNoYV9z ZXJ2aWNlKHN0cnVjdCBnYXR0X2RiX2F0dHJpYnV0ZSAqYXR0ciwgdm9pZCAqdXNlcl9kYXRhKQoK V0FSTklORzpSRVRVUk5fVk9JRDogdm9pZCBmdW5jdGlvbiByZXR1cm4gc3RhdGVtZW50cyBhcmUg bm90IGdlbmVyYWxseSB1c2VmdWwKIzgwOTogRklMRTogcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjY0 NDoKKwlyZXR1cm47Cit9CgpXQVJOSU5HOk5FV19UWVBFREVGUzogZG8gbm90IGFkZCBuZXcgdHlw ZWRlZnMKIzk0OTogRklMRTogcHJvZmlsZXMvYXVkaW8vYXNoYS5oOjE3OgordHlwZWRlZiBlbnVt IHsKCkVSUk9SOkZVTkNUSU9OX1dJVEhPVVRfQVJHUzogQmFkIGZ1bmN0aW9uIGRlZmluaXRpb24g LSBjb25zdCBzdHJ1Y3QgbWVkaWFfZW5kcG9pbnQgKm1lZGlhX2VuZHBvaW50X2dldF9hc2hhKCkg c2hvdWxkIHByb2JhYmx5IGJlIGNvbnN0IHN0cnVjdCBtZWRpYV9lbmRwb2ludCAqbWVkaWFfZW5k cG9pbnRfZ2V0X2FzaGEodm9pZCkKIzEwMjY6IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL21lZGlhLmM6 MzQxMToKK2NvbnN0IHN0cnVjdCBtZWRpYV9lbmRwb2ludCAqbWVkaWFfZW5kcG9pbnRfZ2V0X2Fz aGEoKQoKRVJST1I6RlVOQ1RJT05fV0lUSE9VVF9BUkdTOiBCYWQgZnVuY3Rpb24gZGVmaW5pdGlv biAtIGNvbnN0IHN0cnVjdCBtZWRpYV9lbmRwb2ludCAqbWVkaWFfZW5kcG9pbnRfZ2V0X2FzaGEo KSBzaG91bGQgcHJvYmFibHkgYmUgY29uc3Qgc3RydWN0IG1lZGlhX2VuZHBvaW50ICptZWRpYV9l bmRwb2ludF9nZXRfYXNoYSh2b2lkKQojMTA0NzogRklMRTogcHJvZmlsZXMvYXVkaW8vbWVkaWEu aDoyODoKK2NvbnN0IHN0cnVjdCBtZWRpYV9lbmRwb2ludCAqbWVkaWFfZW5kcG9pbnRfZ2V0X2Fz aGEoKTsKCkVSUk9SOlNXSVRDSF9DQVNFX0lOREVOVF9MRVZFTDogc3dpdGNoIGFuZCBjYXNlIHNo b3VsZCBiZSBhdCB0aGUgc2FtZSBpbmRlbnQKIzExMzA6IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL3Ry YW5zcG9ydC5jOjE3NTM6CisJc3dpdGNoIChhc2hhX2RldmljZV9nZXRfc3RhdGUoYXNoYSkpIHsK KwkJY2FzZSBBU0hBX1NUT1BQRUQ6ClsuLi5dCisJCWNhc2UgQVNIQV9TVEFSVElORzoKWy4uLl0K KwkJY2FzZSBBU0hBX1NUQVJURUQ6ClsuLi5dCisJCWNhc2UgQVNIQV9TVE9QUElORzoKCldBUk5J Tkc6TE9OR19MSU5FOiBsaW5lIGxlbmd0aCBvZiA4MyBleGNlZWRzIDgwIGNvbHVtbnMKIzExMzU6 IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL3RyYW5zcG9ydC5jOjE3NTg6CisJCQl0cmFuc3BvcnRfc2V0 X3N0YXRlKHRyYW5zcG9ydCwgVFJBTlNQT1JUX1NUQVRFX1JFUVVFU1RJTkcpOwoKV0FSTklORzpM T05HX0xJTkU6IGxpbmUgbGVuZ3RoIG9mIDgzIGV4Y2VlZHMgODAgY29sdW1ucwojMTE0MTogRklM RTogcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0LmM6MTc2NDoKKwkJCXRyYW5zcG9ydF9zZXRfc3Rh dGUodHJhbnNwb3J0LCBUUkFOU1BPUlRfU1RBVEVfU1VTUEVORElORyk7CgovZ2l0aHViL3dvcmtz cGFjZS9zcmMvc3JjLzEzNjU4ODgzLnBhdGNoIHRvdGFsOiA2IGVycm9ycywgOSB3YXJuaW5ncywg MTA4OSBsaW5lcyBjaGVja2VkCgpOT1RFOiBGb3Igc29tZSBvZiB0aGUgcmVwb3J0ZWQgZGVmZWN0 cywgY2hlY2twYXRjaCBtYXkgYmUgYWJsZSB0bwogICAgICBtZWNoYW5pY2FsbHkgY29udmVydCB0 byB0aGUgdHlwaWNhbCBzdHlsZSB1c2luZyAtLWZpeCBvciAtLWZpeC1pbnBsYWNlLgoKL2dpdGh1 Yi93b3Jrc3BhY2Uvc3JjL3NyYy8xMzY1ODg4My5wYXRjaCBoYXMgc3R5bGUgcHJvYmxlbXMsIHBs ZWFzZSByZXZpZXcuCgpOT1RFOiBJZ25vcmVkIG1lc3NhZ2UgdHlwZXM6IENPTU1JVF9NRVNTQUdF IENPTVBMRVhfTUFDUk8gQ09OU1RfU1RSVUNUIEZJTEVfUEFUSF9DSEFOR0VTIE1JU1NJTkdfU0lH Tl9PRkYgUFJFRkVSX1BBQ0tFRCBTUERYX0xJQ0VOU0VfVEFHIFNQTElUX1NUUklORyBTU0NBTkZf VE9fS1NUUlRPCgpOT1RFOiBJZiBhbnkgb2YgdGhlIGVycm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVz LCBwbGVhc2UgcmVwb3J0CiAgICAgIHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZSBDSEVDS1BB VENIIGluIE1BSU5UQUlORVJTLgoKCltCbHVlWiwyLzVdIGFzaGE6IEltcGxlbWVudCB2b2x1bWUg b24gdHJhbnNwb3J0CldBUk5JTkc6VFlQT19TUEVMTElORzogJ2VycnJvcicgbWF5IGJlIG1pc3Nw ZWxsZWQgLSBwZXJoYXBzICdlcnJvcic/CiMxOTE6IEZJTEU6IHByb2ZpbGVzL2F1ZGlvL2FzaGEu Yzo0NTA6CisJCURCRygiUmVhZGluZyB2b2x1bWUgZmFpbGVkIHdpdGggQVRUIGVycnJvcjogJXUi LCBhdHRfZWNvZGUpOwogCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5e Xl4KCkVSUk9SOlRSQUlMSU5HX1NUQVRFTUVOVFM6IHRyYWlsaW5nIHN0YXRlbWVudHMgc2hvdWxk IGJlIG9uIG5leHQgbGluZSAob3IgZGlkIHlvdSBtZWFuICdlbHNlIGlmJz8pCiMyMjc6IEZJTEU6 IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0OTg6CisJfSBpZiAodXVpZF9jbXAoQVNIQV9DSFJDX1ZP TFVNRV9VVUlELCAmdXVpZCkpIHsKCi9naXRodWIvd29ya3NwYWNlL3NyYy9zcmMvMTM2NTg4Nzku cGF0Y2ggdG90YWw6IDEgZXJyb3JzLCAxIHdhcm5pbmdzLCAxOTAgbGluZXMgY2hlY2tlZAoKTk9U RTogRm9yIHNvbWUgb2YgdGhlIHJlcG9ydGVkIGRlZmVjdHMsIGNoZWNrcGF0Y2ggbWF5IGJlIGFi bGUgdG8KICAgICAgbWVjaGFuaWNhbGx5IGNvbnZlcnQgdG8gdGhlIHR5cGljYWwgc3R5bGUgdXNp bmcgLS1maXggb3IgLS1maXgtaW5wbGFjZS4KCi9naXRodWIvd29ya3NwYWNlL3NyYy9zcmMvMTM2 NTg4NzkucGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LgoKTk9URTogSWdu b3JlZCBtZXNzYWdlIHR5cGVzOiBDT01NSVRfTUVTU0FHRSBDT01QTEVYX01BQ1JPIENPTlNUX1NU UlVDVCBGSUxFX1BBVEhfQ0hBTkdFUyBNSVNTSU5HX1NJR05fT0ZGIFBSRUZFUl9QQUNLRUQgU1BE WF9MSUNFTlNFX1RBRyBTUExJVF9TVFJJTkcgU1NDQU5GX1RPX0tTVFJUTwoKTk9URTogSWYgYW55 IG9mIHRoZSBlcnJvcnMgYXJlIGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIHJlcG9ydAogICAgICB0 aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUgQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCgpb Qmx1ZVosMy81XSB0ZXN0OiBBZGQgYSBzY3JpcHQgdG8gdGVzdCBBU0hBCkVSUk9SOkVYRUNVVEVf UEVSTUlTU0lPTlM6IGRvIG5vdCBzZXQgZXhlY3V0ZSBwZXJtaXNzaW9ucyBmb3Igc291cmNlIGZp bGVzCiMxMDQ6IEZJTEU6IHRlc3Qvc2ltcGxlLWFzaGEKCi9naXRodWIvd29ya3NwYWNlL3NyYy9z cmMvMTM2NTg4ODAucGF0Y2ggdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5pbmdzLCAxNTggbGluZXMg Y2hlY2tlZAoKTk9URTogRm9yIHNvbWUgb2YgdGhlIHJlcG9ydGVkIGRlZmVjdHMsIGNoZWNrcGF0 Y2ggbWF5IGJlIGFibGUgdG8KICAgICAgbWVjaGFuaWNhbGx5IGNvbnZlcnQgdG8gdGhlIHR5cGlj YWwgc3R5bGUgdXNpbmcgLS1maXggb3IgLS1maXgtaW5wbGFjZS4KCi9naXRodWIvd29ya3NwYWNl L3NyYy9zcmMvMTM2NTg4ODAucGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3 LgoKTk9URTogSWdub3JlZCBtZXNzYWdlIHR5cGVzOiBDT01NSVRfTUVTU0FHRSBDT01QTEVYX01B Q1JPIENPTlNUX1NUUlVDVCBGSUxFX1BBVEhfQ0hBTkdFUyBNSVNTSU5HX1NJR05fT0ZGIFBSRUZF Ul9QQUNLRUQgU1BEWF9MSUNFTlNFX1RBRyBTUExJVF9TVFJJTkcgU1NDQU5GX1RPX0tTVFJUTwoK Tk9URTogSWYgYW55IG9mIHRoZSBlcnJvcnMgYXJlIGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIHJl cG9ydAogICAgICB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUgQ0hFQ0tQQVRDSCBpbiBNQUlO VEFJTkVSUy4KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQmx1ZXpNYWtl IC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJ biBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzI1OjU6IG5vdGU6 IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFj a2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjcyNSB8IGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KcHJvZmlsZXMvYXVkaW8vYXNo YS5jOiBJbiBmdW5jdGlvbiDigJhhc2hhX3N0YXRlX3Jlc2V04oCZOgpwcm9maWxlcy9hdWRpby9h c2hhLmM6MTIyOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhj bG9zZeKAmTsgZGlkIHlvdSBtZWFuIOKAmHBjbG9zZeKAmT8gWy1XZXJyb3I9aW1wbGljaXQtZnVu Y3Rpb24tZGVjbGFyYXRpb25dCiAgMTIyIHwgIGNsb3NlKGFzaGEtPmZkKTsKICAgICAgfCAgXn5+ fn4KICAgICAgfCAgcGNsb3NlCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBwcm9maWxlcy9hdWRpby9h c2hhLmM6MzU6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzogSW4gZnVuY3Rpb24g4oCYYXNoYV9jb25u ZWN0X3NvY2tldOKAmToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjE2Nzo1NzogZXJyb3I6IOKAmGVy cm5v4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDE2NyB8ICAg ZXJyb3IoIkNvdWxkIG5vdCBvcGVuIEwyQ0FQIENvQyBzb2NrZXQ6ICVzIiwgc3RyZXJyb3IoZXJy bm8pKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+Ci4vc3JjL2xvZy5oOjYyOjU5OiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmGVycm9y4oCZCiAgIDYyIHwgIGJ0ZF9lcnJvcigweGZmZmYsICIlczolcygp ICIgZm10LCBfX0ZJTEVfXywgX19mdW5jX18sICMjIGFyZykKICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+CnByb2ZpbGVz L2F1ZGlvL2FzaGEuYzo0OToxOiBub3RlOiDigJhlcnJub+KAmSBpcyBkZWZpbmVkIGluIGhlYWRl ciDigJg8ZXJybm8uaD7igJk7IGRpZCB5b3UgZm9yZ2V0IHRvIOKAmCNpbmNsdWRlIDxlcnJuby5o PuKAmT8KICAgNDggfCAjaW5jbHVkZSAibDJjYXAuaCIKICArKysgfCsjaW5jbHVkZSA8ZXJybm8u aD4KICAgNDkgfCAKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoz NToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjE2Nzo1Nzogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlk ZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVh cnMgaW4KICAxNjcgfCAgIGVycm9yKCJDb3VsZCBub3Qgb3BlbiBMMkNBUCBDb0Mgc29ja2V0OiAl cyIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgouL3NyYy9sb2cuaDo2Mjo1OTogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhlcnJvcuKAmQogICA2MiB8ICBidGRfZXJyb3Io MHhmZmZmLCAiJXM6JXMoKSAiIGZtdCwgX19GSUxFX18sIF9fZnVuY19fLCAjIyBhcmcpCiAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTYxOjE5OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlIOKAmHJldOKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgMTYxIHwgIGludCBmZCA9 IDAsIGVyciwgcmV0ID0gMDsKICAgICAgfCAgICAgICAgICAgICAgICAgICBefn4KcHJvZmlsZXMv YXVkaW8vYXNoYS5jOiBBdCB0b3AgbGV2ZWw6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0MTE6Njog ZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhhdWRpb19zdGF0dXNfbm90aWZ5 4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogIDQxMSB8IHZvaWQgYXVkaW9fc3Rh dHVzX25vdGlmeSh1aW50MTZfdCB2YWx1ZV9oYW5kbGUsIGNvbnN0IHVpbnQ4X3QgKnZhbHVlLAog ICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NDY0 OjY6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYdm9sdW1lX25vdGlmeeKA mSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICA0NjQgfCB2b2lkIHZvbHVtZV9ub3Rp ZnkodWludDE2X3QgdmFsdWVfaGFuZGxlLCBjb25zdCB1aW50OF90ICp2YWx1ZSwKICAgICAgfCAg ICAgIF5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhh c2hhX3NvdXJjZV9kaXNjb25uZWN04oCZOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6Nzg0OjEyOiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmGFzaGFfdXVpZOKAmSBbLVdlcnJvcj11bnVzZWQtdmFy aWFibGVdCiAgNzg0IHwgIGJ0X3V1aWRfdCBhc2hhX3V1aWQ7CiAgICAgIHwgICAgICAgICAgICBe fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjc4MjoyNTogZXJyb3I6IHVudXNlZCB2YXJp YWJsZSDigJhjbGllbnTigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIDc4MiB8ICBzdHJ1 Y3QgYnRfZ2F0dF9jbGllbnQgKmNsaWVudCA9IGJ0ZF9kZXZpY2VfZ2V0X2dhdHRfY2xpZW50KGRl dmljZSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+CnByb2ZpbGVzL2F1 ZGlvL2FzaGEuYzo3ODE6MTg6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYZGLigJkgWy1XZXJy b3I9dW51c2VkLXZhcmlhYmxlXQogIDc4MSB8ICBzdHJ1Y3QgZ2F0dF9kYiAqZGIgPSBidGRfZGV2 aWNlX2dldF9nYXR0X2RiKGRldmljZSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICBefgpBdCB0 b3AgbGV2ZWw6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo1MzU6MjE6IGVycm9yOiDigJhhc2hhX3Nl dF9jb25maWd1cmF0aW9u4oCZIGRlZmluZWQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNlZC1m dW5jdGlvbl0KICA1MzUgfCBzdGF0aWMgREJ1c01lc3NhZ2UgKmFzaGFfc2V0X2NvbmZpZ3VyYXRp b24oREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJy b3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTA2OTE6IHByb2ZpbGVzL2F1ZGlvL2JsdWV0b290 aGQtYXNoYS5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpv YnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY1NjogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBNYWtlQ2hlY2sgLSBGQUlMCkRlc2M6IFJ1biBCbHVl eiBNYWtlIENoZWNrCk91dHB1dDoKCnVuaXQvdGVzdC1hdmR0cC5jOiBJbiBmdW5jdGlvbiDigJht YWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3NjY6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcg c2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZ LCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZyY3AuYzogSW4gZnVuY3Rpb24g4oCYbWFp buKAmToKdW5pdC90ZXN0LWF2cmNwLmM6OTg5OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNp emUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwg cmV0cnlpbmcgd2l0aG91dAogIDk4OSB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAgICAgIHwgICAgIF5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhh c2hhX3N0YXRlX3Jlc2V04oCZOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTIyOjI6IGVycm9yOiBp bXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhjbG9zZeKAmTsgZGlkIHlvdSBtZWFu IOKAmHBjbG9zZeKAmT8gWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAg MTIyIHwgIGNsb3NlKGFzaGEtPmZkKTsKICAgICAgfCAgXn5+fn4KICAgICAgfCAgcGNsb3NlCklu IGZpbGUgaW5jbHVkZWQgZnJvbSBwcm9maWxlcy9hdWRpby9hc2hhLmM6MzU6CnByb2ZpbGVzL2F1 ZGlvL2FzaGEuYzogSW4gZnVuY3Rpb24g4oCYYXNoYV9jb25uZWN0X3NvY2tldOKAmToKcHJvZmls ZXMvYXVkaW8vYXNoYS5jOjE2Nzo1NzogZXJyb3I6IOKAmGVycm5v4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDE2NyB8ICAgZXJyb3IoIkNvdWxkIG5vdCBvcGVu IEwyQ0FQIENvQyBzb2NrZXQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+Ci4v c3JjL2xvZy5oOjYyOjU5OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmGVycm9y4oCZ CiAgIDYyIHwgIGJ0ZF9lcnJvcigweGZmZmYsICIlczolcygpICIgZm10LCBfX0ZJTEVfXywgX19m dW5jX18sICMjIGFyZykKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0OToxOiBu b3RlOiDigJhlcnJub+KAmSBpcyBkZWZpbmVkIGluIGhlYWRlciDigJg8ZXJybm8uaD7igJk7IGRp ZCB5b3UgZm9yZ2V0IHRvIOKAmCNpbmNsdWRlIDxlcnJuby5oPuKAmT8KICAgNDggfCAjaW5jbHVk ZSAibDJjYXAuaCIKICArKysgfCsjaW5jbHVkZSA8ZXJybm8uaD4KICAgNDkgfCAKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzozNToKcHJvZmlsZXMvYXVkaW8vYXNo YS5jOjE2Nzo1Nzogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQg b25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KICAxNjcgfCAgIGVycm9y KCJDb3VsZCBub3Qgb3BlbiBMMkNBUCBDb0Mgc29ja2V0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fgouL3NyYy9sb2cuaDo2Mjo1OTogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhlcnJvcuKAmQogICA2MiB8ICBidGRfZXJyb3IoMHhmZmZmLCAiJXM6JXMoKSAiIGZt dCwgX19GSUxFX18sIF9fZnVuY19fLCAjIyBhcmcpCiAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpwcm9maWxlcy9hdWRp by9hc2hhLmM6MTYxOjE5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJldOKAmSBbLVdlcnJv cj11bnVzZWQtdmFyaWFibGVdCiAgMTYxIHwgIGludCBmZCA9IDAsIGVyciwgcmV0ID0gMDsKICAg ICAgfCAgICAgICAgICAgICAgICAgICBefn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBBdCB0b3Ag bGV2ZWw6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0MTE6NjogZXJyb3I6IG5vIHByZXZpb3VzIGRl Y2xhcmF0aW9uIGZvciDigJhhdWRpb19zdGF0dXNfbm90aWZ54oCZIFstV2Vycm9yPW1pc3Npbmct ZGVjbGFyYXRpb25zXQogIDQxMSB8IHZvaWQgYXVkaW9fc3RhdHVzX25vdGlmeSh1aW50MTZfdCB2 YWx1ZV9oYW5kbGUsIGNvbnN0IHVpbnQ4X3QgKnZhbHVlLAogICAgICB8ICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NDY0OjY6IGVycm9yOiBubyBwcmV2aW91 cyBkZWNsYXJhdGlvbiBmb3Ig4oCYdm9sdW1lX25vdGlmeeKAmSBbLVdlcnJvcj1taXNzaW5nLWRl Y2xhcmF0aW9uc10KICA0NjQgfCB2b2lkIHZvbHVtZV9ub3RpZnkodWludDE2X3QgdmFsdWVfaGFu ZGxlLCBjb25zdCB1aW50OF90ICp2YWx1ZSwKICAgICAgfCAgICAgIF5+fn5+fn5+fn5+fn4KcHJv ZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhhc2hhX3NvdXJjZV9kaXNjb25uZWN0 4oCZOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6Nzg0OjEyOiBlcnJvcjogdW51c2VkIHZhcmlhYmxl IOKAmGFzaGFfdXVpZOKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgNzg0IHwgIGJ0X3V1 aWRfdCBhc2hhX3V1aWQ7CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+fn4KcHJvZmlsZXMvYXVk aW8vYXNoYS5jOjc4MjoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhjbGllbnTigJkgWy1X ZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIDc4MiB8ICBzdHJ1Y3QgYnRfZ2F0dF9jbGllbnQgKmNs aWVudCA9IGJ0ZF9kZXZpY2VfZ2V0X2dhdHRfY2xpZW50KGRldmljZSk7CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo3ODE6MTg6IGVy cm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYZGLigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQog IDc4MSB8ICBzdHJ1Y3QgZ2F0dF9kYiAqZGIgPSBidGRfZGV2aWNlX2dldF9nYXR0X2RiKGRldmlj ZSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICBefgpBdCB0b3AgbGV2ZWw6CnByb2ZpbGVzL2F1 ZGlvL2FzaGEuYzo1MzU6MjE6IGVycm9yOiDigJhhc2hhX3NldF9jb25maWd1cmF0aW9u4oCZIGRl ZmluZWQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNlZC1mdW5jdGlvbl0KICA1MzUgfCBzdGF0 aWMgREJ1c01lc3NhZ2UgKmFzaGFfc2V0X2NvbmZpZ3VyYXRpb24oREJ1c0Nvbm5lY3Rpb24gKmNv bm4sCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFr ZWZpbGU6MTA2OTE6IHByb2ZpbGVzL2F1ZGlvL2JsdWV0b290aGQtYXNoYS5vXSBFcnJvciAxCm1h a2U6ICoqKiBbTWFrZWZpbGU6MTIyMDk6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwpUZXN0OiBNYWtlRGlzdGNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXog TWFrZSBEaXN0Y2hlY2sKT3V0cHV0OgoKUGFja2FnZSBjdXBzIHdhcyBub3QgZm91bmQgaW4gdGhl IHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVj dG9yeSBjb250YWluaW5nIGBjdXBzLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25t ZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2N1cHMnIGZvdW5kCi4uLy4uL3Byb2ZpbGVzL2F1ZGlv L2FzaGEuYzo0NzoxMDogZmF0YWwgZXJyb3I6IGFzaGEuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQogICA0NyB8ICNpbmNsdWRlICJhc2hhLmgiCiAgICAgIHwgICAgICAgICAgXn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KbWFrZVsyXTogKioqIFtNYWtlZmlsZToxMDY5MTogcHJv ZmlsZXMvYXVkaW8vYmx1ZXRvb3RoZC1hc2hhLm9dIEVycm9yIDEKbWFrZVsyXTogKioqIFdhaXRp bmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZVsxXTogKioqIFtNYWtlZmlsZTo0NjU2OiBh bGxdIEVycm9yIDIKbWFrZTogKioqIFtNYWtlZmlsZToxMjEzMDogZGlzdGNoZWNrXSBFcnJvciAx CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1ZhbGdyaW5kIC0gRkFJ TApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVjayB3aXRoIFZhbGdyaW5kCk91dHB1dDoKCnRvb2xz L21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVy LmM6MTI3MjU6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3 aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEy NzI1IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpw cm9maWxlcy9hdWRpby9hc2hhLmM6IEluIGZ1bmN0aW9uIOKAmGFzaGFfc3RhdGVfcmVzZXTigJk6 CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxMjI6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uIOKAmGNsb3Nl4oCZOyBkaWQgeW91IG1lYW4g4oCYcGNsb3Nl4oCZPyBbLVdl cnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAxMjIgfCAgY2xvc2UoYXNoYS0+ ZmQpOwogICAgICB8ICBefn5+fgogICAgICB8ICBwY2xvc2UKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzozNToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5j dGlvbiDigJhhc2hhX2Nvbm5lY3Rfc29ja2V04oCZOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTY3 OjU3OiBlcnJvcjog4oCYZXJybm/igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgMTY3IHwgICBlcnJvcigiQ291bGQgbm90IG9wZW4gTDJDQVAgQ29DIHNvY2tldDog JXMiLCBzdHJlcnJvcihlcnJubykpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KLi9zcmMvbG9nLmg6NjI6NTk6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYZXJyb3LigJkKICAgNjIgfCAgYnRkX2Vycm9y KDB4ZmZmZiwgIiVzOiVzKCkgIiBmbXQsIF9fRklMRV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjQ5OjE6IG5vdGU6IOKAmGVycm5v4oCZIGlz IGRlZmluZWQgaW4gaGVhZGVyIOKAmDxlcnJuby5oPuKAmTsgZGlkIHlvdSBmb3JnZXQgdG8g4oCY I2luY2x1ZGUgPGVycm5vLmg+4oCZPwogICA0OCB8ICNpbmNsdWRlICJsMmNhcC5oIgogICsrKyB8 KyNpbmNsdWRlIDxlcnJuby5oPgogICA0OSB8IApJbiBmaWxlIGluY2x1ZGVkIGZyb20gcHJvZmls ZXMvYXVkaW8vYXNoYS5jOjM1Ogpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTY3OjU3OiBub3RlOiBl YWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2gg ZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogIDE2NyB8ICAgZXJyb3IoIkNvdWxkIG5vdCBvcGVuIEwy Q0FQIENvQyBzb2NrZXQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+Ci4vc3Jj L2xvZy5oOjYyOjU5OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmGVycm9y4oCZCiAg IDYyIHwgIGJ0ZF9lcnJvcigweGZmZmYsICIlczolcygpICIgZm10LCBfX0ZJTEVfXywgX19mdW5j X18sICMjIGFyZykKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxNjE6MTk6IGVy cm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmV04oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0K ICAxNjEgfCAgaW50IGZkID0gMCwgZXJyLCByZXQgPSAwOwogICAgICB8ICAgICAgICAgICAgICAg ICAgIF5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6IEF0IHRvcCBsZXZlbDoKcHJvZmlsZXMvYXVk aW8vYXNoYS5jOjQxMTo2OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmGF1 ZGlvX3N0YXR1c19ub3RpZnnigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgNDEx IHwgdm9pZCBhdWRpb19zdGF0dXNfbm90aWZ5KHVpbnQxNl90IHZhbHVlX2hhbmRsZSwgY29uc3Qg dWludDhfdCAqdmFsdWUsCiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVz L2F1ZGlvL2FzaGEuYzo0NjQ6NjogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDi gJh2b2x1bWVfbm90aWZ54oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogIDQ2NCB8 IHZvaWQgdm9sdW1lX25vdGlmeSh1aW50MTZfdCB2YWx1ZV9oYW5kbGUsIGNvbnN0IHVpbnQ4X3Qg KnZhbHVlLAogICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6 IEluIGZ1bmN0aW9uIOKAmGFzaGFfc291cmNlX2Rpc2Nvbm5lY3TigJk6CnByb2ZpbGVzL2F1ZGlv L2FzaGEuYzo3ODQ6MTI6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYYXNoYV91dWlk4oCZIFst V2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICA3ODQgfCAgYnRfdXVpZF90IGFzaGFfdXVpZDsKICAg ICAgfCAgICAgICAgICAgIF5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NzgyOjI1OiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmGNsaWVudOKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFi bGVdCiAgNzgyIHwgIHN0cnVjdCBidF9nYXR0X2NsaWVudCAqY2xpZW50ID0gYnRkX2RldmljZV9n ZXRfZ2F0dF9jbGllbnQoZGV2aWNlKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjc4MToxODogZXJyb3I6IHVudXNlZCB2YXJpYWJs ZSDigJhkYuKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgNzgxIHwgIHN0cnVjdCBnYXR0 X2RiICpkYiA9IGJ0ZF9kZXZpY2VfZ2V0X2dhdHRfZGIoZGV2aWNlKTsKICAgICAgfCAgICAgICAg ICAgICAgICAgIF5+CkF0IHRvcCBsZXZlbDoKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjUzNToyMTog ZXJyb3I6IOKAmGFzaGFfc2V0X2NvbmZpZ3VyYXRpb27igJkgZGVmaW5lZCBidXQgbm90IHVzZWQg Wy1XZXJyb3I9dW51c2VkLWZ1bmN0aW9uXQogIDUzNSB8IHN0YXRpYyBEQnVzTWVzc2FnZSAqYXNo YV9zZXRfY29uZmlndXJhdGlvbihEQnVzQ29ubmVjdGlvbiAqY29ubiwKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVp bmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMDY5MTogcHJvZmls ZXMvYXVkaW8vYmx1ZXRvb3RoZC1hc2hhLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcg Zm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZToxMjIwOTogY2hlY2td IEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrU21hdGNo IC0gRkFJTApEZXNjOiBSdW4gc21hdGNoIHRvb2wgd2l0aCBzb3VyY2UKT3V0cHV0OgoKc3JjL3No YXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6NzY4OjMxOiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMu Yzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtaGVscGVycy5jOjEzMjM6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzNTQ6MjM6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6Mjc4 OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LXNlcnZlci5jOjYyMToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo3MjA6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2JhcC5jOjI4MjoyNTogd2FybmluZzogYXJy YXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL2JhcC5jOiBub3RlOiBpbiBpbmNs dWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYXNjcy5oOjg4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBm bGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQvc2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQg ZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlw ZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6 Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdDUFBGdW5jdGlvbicKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxw ZXJzLmM6NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6MzE6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5j OjEzNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtc2VydmVyLmM6Mjc4OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYyMToyNTogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo3MjA6MjU6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2JhcC5j OjI4MjoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVk L2JhcC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYXNjcy5oOjg4OjI1 OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQvc2hlbGwu Yzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUv cmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlv bicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9u LUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9y ZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKdG9vbHMvbWVzaC1jZmd0ZXN0LmM6 MTQ1MzoxNzogd2FybmluZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2Nv LXRlc3Rlci5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL2xpYi9ibHVldG9vdGguaDoyMTk6 MTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKLi9saWIvYmx1ZXRvb3Ro Lmg6MjI0OjMxOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnRvb2xzL2Ju ZXB0ZXN0LmM6NjM0OjM5OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0 b29scy9zZXEyYnNlcS5jOjU3OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KdG9vbHMvb2JleC1jbGllbnQtdG9vbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0 aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3Jl YWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0 eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTog d2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1 bmN0aW9uJwphbmRyb2lkL2F2Y3RwLmM6NTA1OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdmN0cC5jOjU1NjozNDogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvdGVzdC1hdnJjcC5jOjM3MzoyNjogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvdGVzdC1hdnJjcC5jOjM5ODoyNjog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvdGVzdC1hdnJjcC5j OjQxNDoyNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmFuZHJvaWQv YXZyY3AtbGliLmM6MTA4NTozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCmFuZHJvaWQvYXZyY3AtbGliLmM6MTU4MzozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmFuZHJvaWQvYXZyY3AtbGliLmM6MTYxMjozNDogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmFuZHJvaWQvYXZyY3AtbGliLmM6MTYzODozNDog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnByb2ZpbGVzL2F1ZGlvL2Fz aGEuYzogSW4gZnVuY3Rpb24g4oCYYXNoYV9zdGF0ZV9yZXNldOKAmToKcHJvZmlsZXMvYXVkaW8v YXNoYS5jOjEyMjoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCY Y2xvc2XigJk7IGRpZCB5b3UgbWVhbiDigJhwY2xvc2XigJk/IFstV2Vycm9yPWltcGxpY2l0LWZ1 bmN0aW9uLWRlY2xhcmF0aW9uXQogIDEyMiB8ICBjbG9zZShhc2hhLT5mZCk7CiAgICAgIHwgIF5+ fn5+CiAgICAgIHwgIHBjbG9zZQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gcHJvZmlsZXMvYXVkaW8v YXNoYS5jOjM1Ogpwcm9maWxlcy9hdWRpby9hc2hhLmM6IEluIGZ1bmN0aW9uIOKAmGFzaGFfY29u bmVjdF9zb2NrZXTigJk6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxNjc6NTc6IGVycm9yOiDigJhl cnJub+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAxNjcgfCAg IGVycm9yKCJDb3VsZCBub3Qgb3BlbiBMMkNBUCBDb0Mgc29ja2V0OiAlcyIsIHN0cmVycm9yKGVy cm5vKSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fgouL3NyYy9sb2cuaDo2Mjo1OTogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhlcnJvcuKAmQogICA2MiB8ICBidGRfZXJyb3IoMHhmZmZmLCAiJXM6JXMo KSAiIGZtdCwgX19GSUxFX18sIF9fZnVuY19fLCAjIyBhcmcpCiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpwcm9maWxl cy9hdWRpby9hc2hhLmM6NDk6MTogbm90ZTog4oCYZXJybm/igJkgaXMgZGVmaW5lZCBpbiBoZWFk ZXIg4oCYPGVycm5vLmg+4oCZOyBkaWQgeW91IGZvcmdldCB0byDigJgjaW5jbHVkZSA8ZXJybm8u aD7igJk/CiAgIDQ4IHwgI2luY2x1ZGUgImwyY2FwLmgiCiAgKysrIHwrI2luY2x1ZGUgPGVycm5v Lmg+CiAgIDQ5IHwgCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBwcm9maWxlcy9hdWRpby9hc2hhLmM6 MzU6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxNjc6NTc6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBp ZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBl YXJzIGluCiAgMTY3IHwgICBlcnJvcigiQ291bGQgbm90IG9wZW4gTDJDQVAgQ29DIHNvY2tldDog JXMiLCBzdHJlcnJvcihlcnJubykpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KLi9zcmMvbG9nLmg6NjI6NTk6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYZXJyb3LigJkKICAgNjIgfCAgYnRkX2Vycm9y KDB4ZmZmZiwgIiVzOiVzKCkgIiBmbXQsIF9fRklMRV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjE2MToxOTogZXJyb3I6IHVudXNlZCB2YXJp YWJsZSDigJhyZXTigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIDE2MSB8ICBpbnQgZmQg PSAwLCBlcnIsIHJldCA9IDA7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+CnByb2ZpbGVz L2F1ZGlvL2FzaGEuYzogQXQgdG9wIGxldmVsOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NDExOjY6 IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYYXVkaW9fc3RhdHVzX25vdGlm eeKAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICA0MTEgfCB2b2lkIGF1ZGlvX3N0 YXR1c19ub3RpZnkodWludDE2X3QgdmFsdWVfaGFuZGxlLCBjb25zdCB1aW50OF90ICp2YWx1ZSwK ICAgICAgfCAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjQ2 NDo2OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmHZvbHVtZV9ub3RpZnni gJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgNDY0IHwgdm9pZCB2b2x1bWVfbm90 aWZ5KHVpbnQxNl90IHZhbHVlX2hhbmRsZSwgY29uc3QgdWludDhfdCAqdmFsdWUsCiAgICAgIHwg ICAgICBefn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzogSW4gZnVuY3Rpb24g4oCY YXNoYV9zb3VyY2VfZGlzY29ubmVjdOKAmToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjc4NDoxMjog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhhc2hhX3V1aWTigJkgWy1XZXJyb3I9dW51c2VkLXZh cmlhYmxlXQogIDc4NCB8ICBidF91dWlkX3QgYXNoYV91dWlkOwogICAgICB8ICAgICAgICAgICAg Xn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo3ODI6MjU6IGVycm9yOiB1bnVzZWQgdmFy aWFibGUg4oCYY2xpZW504oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICA3ODIgfCAgc3Ry dWN0IGJ0X2dhdHRfY2xpZW50ICpjbGllbnQgPSBidGRfZGV2aWNlX2dldF9nYXR0X2NsaWVudChk ZXZpY2UpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpwcm9maWxlcy9h dWRpby9hc2hhLmM6NzgxOjE4OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmGRi4oCZIFstV2Vy cm9yPXVudXNlZC12YXJpYWJsZV0KICA3ODEgfCAgc3RydWN0IGdhdHRfZGIgKmRiID0gYnRkX2Rl dmljZV9nZXRfZ2F0dF9kYihkZXZpY2UpOwogICAgICB8ICAgICAgICAgICAgICAgICAgXn4KQXQg dG9wIGxldmVsOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NTM1OjIxOiBlcnJvcjog4oCYYXNoYV9z ZXRfY29uZmlndXJhdGlvbuKAmSBkZWZpbmVkIGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQt ZnVuY3Rpb25dCiAgNTM1IHwgc3RhdGljIERCdXNNZXNzYWdlICphc2hhX3NldF9jb25maWd1cmF0 aW9uKERCdXNDb25uZWN0aW9uICpjb25uLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjEwNjkxOiBwcm9maWxlcy9hdWRpby9ibHVldG9v dGhkLWFzaGEub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBq b2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2NTY6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogYmx1ZXptYWtlZXh0ZWxsIC0gRkFJTApEZXNjOiBC dWlsZCBCbHVleiB3aXRoIEV4dGVybmFsIEVMTApPdXRwdXQ6Cgpwcm9maWxlcy9hdWRpby9hc2hh LmM6IEluIGZ1bmN0aW9uIOKAmGFzaGFfc3RhdGVfcmVzZXTigJk6CnByb2ZpbGVzL2F1ZGlvL2Fz aGEuYzoxMjI6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGNs b3Nl4oCZOyBkaWQgeW91IG1lYW4g4oCYcGNsb3Nl4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5j dGlvbi1kZWNsYXJhdGlvbl0KICAxMjIgfCAgY2xvc2UoYXNoYS0+ZmQpOwogICAgICB8ICBefn5+ fgogICAgICB8ICBwY2xvc2UKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHByb2ZpbGVzL2F1ZGlvL2Fz aGEuYzozNToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhhc2hhX2Nvbm5l Y3Rfc29ja2V04oCZOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTY3OjU3OiBlcnJvcjog4oCYZXJy bm/igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMTY3IHwgICBl cnJvcigiQ291bGQgbm90IG9wZW4gTDJDQVAgQ29DIHNvY2tldDogJXMiLCBzdHJlcnJvcihlcnJu bykpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn4KLi9zcmMvbG9nLmg6NjI6NTk6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYZXJyb3LigJkKICAgNjIgfCAgYnRkX2Vycm9yKDB4ZmZmZiwgIiVzOiVzKCkg IiBmbXQsIF9fRklMRV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KcHJvZmlsZXMv YXVkaW8vYXNoYS5jOjQ5OjE6IG5vdGU6IOKAmGVycm5v4oCZIGlzIGRlZmluZWQgaW4gaGVhZGVy IOKAmDxlcnJuby5oPuKAmTsgZGlkIHlvdSBmb3JnZXQgdG8g4oCYI2luY2x1ZGUgPGVycm5vLmg+ 4oCZPwogICA0OCB8ICNpbmNsdWRlICJsMmNhcC5oIgogICsrKyB8KyNpbmNsdWRlIDxlcnJuby5o PgogICA0OSB8IApJbiBmaWxlIGluY2x1ZGVkIGZyb20gcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjM1 Ogpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTY3OjU3OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRl bnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFy cyBpbgogIDE2NyB8ICAgZXJyb3IoIkNvdWxkIG5vdCBvcGVuIEwyQ0FQIENvQyBzb2NrZXQ6ICVz Iiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+Ci4vc3JjL2xvZy5oOjYyOjU5OiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmGVycm9y4oCZCiAgIDYyIHwgIGJ0ZF9lcnJvcigw eGZmZmYsICIlczolcygpICIgZm10LCBfX0ZJTEVfXywgX19mdW5jX18sICMjIGFyZykKICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxNjE6MTk6IGVycm9yOiB1bnVzZWQgdmFyaWFi bGUg4oCYcmV04oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICAxNjEgfCAgaW50IGZkID0g MCwgZXJyLCByZXQgPSAwOwogICAgICB8ICAgICAgICAgICAgICAgICAgIF5+fgpwcm9maWxlcy9h dWRpby9hc2hhLmM6IEF0IHRvcCBsZXZlbDoKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjQxMTo2OiBl cnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmGF1ZGlvX3N0YXR1c19ub3RpZnni gJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgNDExIHwgdm9pZCBhdWRpb19zdGF0 dXNfbm90aWZ5KHVpbnQxNl90IHZhbHVlX2hhbmRsZSwgY29uc3QgdWludDhfdCAqdmFsdWUsCiAg ICAgIHwgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0NjQ6 NjogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJh2b2x1bWVfbm90aWZ54oCZ IFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogIDQ2NCB8IHZvaWQgdm9sdW1lX25vdGlm eSh1aW50MTZfdCB2YWx1ZV9oYW5kbGUsIGNvbnN0IHVpbnQ4X3QgKnZhbHVlLAogICAgICB8ICAg ICAgXn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6IEluIGZ1bmN0aW9uIOKAmGFz aGFfc291cmNlX2Rpc2Nvbm5lY3TigJk6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo3ODQ6MTI6IGVy cm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYYXNoYV91dWlk4oCZIFstV2Vycm9yPXVudXNlZC12YXJp YWJsZV0KICA3ODQgfCAgYnRfdXVpZF90IGFzaGFfdXVpZDsKICAgICAgfCAgICAgICAgICAgIF5+ fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NzgyOjI1OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlIOKAmGNsaWVudOKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgNzgyIHwgIHN0cnVj dCBidF9nYXR0X2NsaWVudCAqY2xpZW50ID0gYnRkX2RldmljZV9nZXRfZ2F0dF9jbGllbnQoZGV2 aWNlKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KcHJvZmlsZXMvYXVk aW8vYXNoYS5jOjc4MToxODogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhkYuKAmSBbLVdlcnJv cj11bnVzZWQtdmFyaWFibGVdCiAgNzgxIHwgIHN0cnVjdCBnYXR0X2RiICpkYiA9IGJ0ZF9kZXZp Y2VfZ2V0X2dhdHRfZGIoZGV2aWNlKTsKICAgICAgfCAgICAgICAgICAgICAgICAgIF5+CkF0IHRv cCBsZXZlbDoKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjUzNToyMTogZXJyb3I6IOKAmGFzaGFfc2V0 X2NvbmZpZ3VyYXRpb27igJkgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWZ1 bmN0aW9uXQogIDUzNSB8IHN0YXRpYyBEQnVzTWVzc2FnZSAqYXNoYV9zZXRfY29uZmlndXJhdGlv bihEQnVzQ29ubmVjdGlvbiAqY29ubiwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJv cnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMDY5MTogcHJvZmlsZXMvYXVkaW8vYmx1ZXRvb3Ro ZC1hc2hhLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9i cy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjU2OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEluY3JlbWVudGFsQnVpbGQgLSBGQUlMCkRlc2M6IElu Y3JlbWVudGFsIGJ1aWxkIHdpdGggdGhlIHBhdGNoZXMgaW4gdGhlIHNlcmllcwpPdXRwdXQ6CltC bHVlWiwxLzVdIHByb2ZpbGVzOiBBZGQgaW5pdGlhbCBjb2RlIGZvciBhbiBBU0hBIHBsdWdpbgoK dG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10 ZXN0ZXIuYzoxMjcyNTo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2Vl ZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhv dXQKMTI3MjUgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBe fn5+CnVuaXQvdGVzdC1hdmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3Qt YXZkdHAuYzo3NjY6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRl ZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0 CiAgNzY2IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+ fgp1bml0L3Rlc3QtYXZyY3AuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2 cmNwLmM6OTg5OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQg d2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAog IDk4OSB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4K cHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhhc2hhX3N0YXRlX3Jlc2V04oCZ Ogpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTEzOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiDigJhjbG9zZeKAmTsgZGlkIHlvdSBtZWFuIOKAmHBjbG9zZeKAmT8gWy1X ZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMTEzIHwgIGNsb3NlKGFzaGEt PmZkKTsKICAgICAgfCAgXn5+fn4KICAgICAgfCAgcGNsb3NlCkluIGZpbGUgaW5jbHVkZWQgZnJv bSBwcm9maWxlcy9hdWRpby9hc2hhLmM6MzU6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzogSW4gZnVu Y3Rpb24g4oCYYXNoYV9jb25uZWN0X3NvY2tldOKAmToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjE1 ODo1NzogZXJyb3I6IOKAmGVycm5v4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIDE1OCB8ICAgZXJyb3IoIkNvdWxkIG5vdCBvcGVuIEwyQ0FQIENvQyBzb2NrZXQ6 ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+Ci4vc3JjL2xvZy5oOjYyOjU5OiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmGVycm9y4oCZCiAgIDYyIHwgIGJ0ZF9lcnJv cigweGZmZmYsICIlczolcygpICIgZm10LCBfX0ZJTEVfXywgX19mdW5jX18sICMjIGFyZykKICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo0OToxOiBub3RlOiDigJhlcnJub+KAmSBp cyBkZWZpbmVkIGluIGhlYWRlciDigJg8ZXJybm8uaD7igJk7IGRpZCB5b3UgZm9yZ2V0IHRvIOKA mCNpbmNsdWRlIDxlcnJuby5oPuKAmT8KICAgNDggfCAjaW5jbHVkZSAibDJjYXAuaCIKICArKysg fCsjaW5jbHVkZSA8ZXJybm8uaD4KICAgNDkgfCAKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHByb2Zp bGVzL2F1ZGlvL2FzaGEuYzozNToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjE1ODo1Nzogbm90ZTog ZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNo IGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KICAxNTggfCAgIGVycm9yKCJDb3VsZCBub3Qgb3BlbiBM MkNBUCBDb0Mgc29ja2V0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgouL3Ny Yy9sb2cuaDo2Mjo1OTogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhlcnJvcuKAmQog ICA2MiB8ICBidGRfZXJyb3IoMHhmZmZmLCAiJXM6JXMoKSAiIGZtdCwgX19GSUxFX18sIF9fZnVu Y19fLCAjIyBhcmcpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTUyOjE5OiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJldOKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVd CiAgMTUyIHwgIGludCBmZCA9IDAsIGVyciwgcmV0ID0gMDsKICAgICAgfCAgICAgICAgICAgICAg ICAgICBefn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOiBBdCB0b3AgbGV2ZWw6CnByb2ZpbGVzL2F1 ZGlvL2FzaGEuYzozODM6NjogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhh dWRpb19zdGF0dXNfbm90aWZ54oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogIDM4 MyB8IHZvaWQgYXVkaW9fc3RhdHVzX25vdGlmeSh1aW50MTZfdCB2YWx1ZV9oYW5kbGUsIGNvbnN0 IHVpbnQ4X3QgKnZhbHVlLAogICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxl cy9hdWRpby9hc2hhLmM6IEluIGZ1bmN0aW9uIOKAmGFzaGFfc291cmNlX2Rpc2Nvbm5lY3TigJk6 CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo3MTA6MTI6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCY YXNoYV91dWlk4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICA3MTAgfCAgYnRfdXVpZF90 IGFzaGFfdXVpZDsKICAgICAgfCAgICAgICAgICAgIF5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9h c2hhLmM6NzA4OjI1OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmGNsaWVudOKAmSBbLVdlcnJv cj11bnVzZWQtdmFyaWFibGVdCiAgNzA4IHwgIHN0cnVjdCBidF9nYXR0X2NsaWVudCAqY2xpZW50 ID0gYnRkX2RldmljZV9nZXRfZ2F0dF9jbGllbnQoZGV2aWNlKTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjcwNzoxODogZXJyb3I6 IHVudXNlZCB2YXJpYWJsZSDigJhkYuKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgNzA3 IHwgIHN0cnVjdCBnYXR0X2RiICpkYiA9IGJ0ZF9kZXZpY2VfZ2V0X2dhdHRfZGIoZGV2aWNlKTsK ICAgICAgfCAgICAgICAgICAgICAgICAgIF5+CkF0IHRvcCBsZXZlbDoKcHJvZmlsZXMvYXVkaW8v YXNoYS5jOjQ2MToyMTogZXJyb3I6IOKAmGFzaGFfc2V0X2NvbmZpZ3VyYXRpb27igJkgZGVmaW5l ZCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWZ1bmN0aW9uXQogIDQ2MSB8IHN0YXRpYyBE QnVzTWVzc2FnZSAqYXNoYV9zZXRfY29uZmlndXJhdGlvbihEQnVzQ29ubmVjdGlvbiAqY29ubiwK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBh bGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmls ZToxMDY5MTogcHJvZmlsZXMvYXVkaW8vYmx1ZXRvb3RoZC1hc2hhLm9dIEVycm9yIDEKbWFrZVsx XTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmls ZTo0NjU2OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6 IFNjYW5CdWlsZCAtIEZBSUwKRGVzYzogUnVuIFNjYW4gQnVpbGQKT3V0cHV0OgoKc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRi X2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjk5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRf ZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTEwMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBz dWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5NDoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1 OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MTYzNDo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzOToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQzOjY6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNo KG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoyMTUxOjg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNj b3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MzI0MDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzozMjYyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOjEzMzE6 MTM6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVzdWx0cyBpbiBhIGRlcmVm ZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnb3B0JykKICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25zW2luZGV4IC0gb2Zmc2V0 XS52YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo0NTE6MjE6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBnYXR0X2RiX3VucmVn aXN0ZXIob3AtPmNsaWVudC0+ZGIsIG9wLT5kYl9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjY5NjoyOiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBs ZXRlKG9wLCBmYWxzZSwgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo5OTY6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjExMDI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjEyOTQ6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2Rl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K c3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEzNTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2Vz cywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2MzQ6Njogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3Ap KSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjE2Mzk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGRpc2NvdmVyX2FsbChvcCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MjE0Mzo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE1MTo4OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyNDA6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3Ao cmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI2MjoyOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91 bnJlZihyZXEpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgoxMiB3YXJuaW5ncyBnZW5lcmF0 ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMzMxOjEzOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQg J29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9 IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNldF0udmFsKSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9oY2lh dHRhY2guYzo4MTY6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicg aXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBh Y3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQs IHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjQ6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZh bHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRo ZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0g cmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODg2Ojg6IHdhcm5pbmc6 IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2lu ZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwog ICAgICAgICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAw KSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2hjaWF0dGFjaC5jOjkwODo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3Rv cmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVl IGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hj aV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5Mjk6Nzogd2FybmluZzogQWx0aG91 Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJl c3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAg aWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAg IF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTczOjc6 IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhl IGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBm cm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA2KSkgPCAw KSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjYgd2Fybmlu Z3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdo d2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsK ICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9vdWkuYzo1MzoyOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0g dWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5p bmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpZHVtcC5jOjE4MDo5OiB3YXJuaW5nOiBQb3RlbnRpYWwg bGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnZHAnCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGZkc1tpXS5mZCA9PSBzb2NrKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn4KdG9vbHMvaGNpZHVtcC5jOjI0ODoxNzogd2FybmluZzogQXNzaWduZWQg dmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkaC0+dHNfc2VjICA9IGh0b2JsKGZybS50cy50dl9zZWMpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv aGNpZHVtcC5jOjMyNjo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBh biB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGJlMzJ0b2goZHAuZmxhZ3MpICYgMHgwMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NDY6MjI6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMydG9oKHgpIF9f YnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hj aWR1bXAuYzozNDE6MjA6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm0u ZGF0YV9sZW4gPSBiZTMydG9oKGRwLmxlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0 NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0 b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4K dG9vbHMvaGNpZHVtcC5jOjM0NjoxNDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1l bnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wY29kZSA9IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHhmZmZmOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9l bmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVm aW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM4NDoxNzogd2FybmluZzogQXNzaWduZWQgdmFsdWUg aXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgZnJtLmRhdGFf bGVuID0gYnRvaHMoZGgubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gfn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk0OjExOiB3YXJuaW5nOiBBc3NpZ25l ZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgZnJtLmxlbiA9 IGZybS5kYXRhX2xlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn4KdG9v bHMvaGNpZHVtcC5jOjM5ODo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBp cyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIHRzID0gYmU2 NHRvaChwaC50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4K L3Vzci9pbmNsdWRlL2VuZGlhbi5oOjUxOjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdi ZTY0dG9oJwojICBkZWZpbmUgYmU2NHRvaCh4KSBfX2Jzd2FwXzY0ICh4KQogICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDAzOjEzOiB3YXJuaW5nOiAx c3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAg ICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHgwMTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNs dWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwoj ICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDA4OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2 YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBmcm0u aW4gPSBkaC5pbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn4KdG9vbHMv aGNpZHVtcC5jOjQzNzo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJh bWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGZkID0gb3BlbihmaWxlLCBvcGVuX2Zs YWdzLCAwNjQ0KTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMTEg d2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9yZmNvbW0uYzoyMzQ6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdpJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNt ZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzoyMzQ6Nzogd2FybmluZzogTnVsbCBwb2ludGVyIHBh c3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAg IGkgPSBleGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjM1NDo4OiB3YXJuaW5nOiBB bHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5n IGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwog ICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RU WSkpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NDk3OjE0OiB3YXJuaW5nOiBBc3NpZ25lZCB2 YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgIHJlcS5jaGFubmVsID0gcmFkZHIu cmNfY2hhbm5lbDsKICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv cmZjb21tLmM6NTE1Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2Zk JyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVy IGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3Blbihk ZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAg IF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5pbmdzIGdlbmVy YXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh cmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsK ICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzAwOjEx OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg ICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMzg6MTE6IHdhcm5pbmc6 IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAg ICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2lwdG9vbC5jOjM1 MDo3OiB3YXJuaW5nOiA1dGggZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxp emVkIHZhbHVlCiAgICAgICAgc2sgPSBkb19jb25uZWN0KGN0bCwgZGV2X2lkLCAmc3JjLCAmZHN0 LCBwc20sICgxIDw8IENNVFBfTE9PUEJBQ0spKTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCnRvb2xzL3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5pbmc6IFJlc3VsdCBvZiAn bWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ3VpbnQzMl90Jywgd2hp Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAnaW50JwogICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsdWVfaW50ID0gbWFsbG9jKHNpemVvZihpbnQp KTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fiAgICAgICAgICAgIF5+fn5+fiB+ fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6OTgwOjQ6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBj YWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAg ICAgICAgZnJlZShhbGxvY0FycmF5W2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJuaW5nOiBQb3RlbnRpYWwg bGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2kubmFtZScKICAgICAgICByZXR1cm4gYWRk X3NlcnZpY2UoMCwgJnNpKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9zZHB0b29sLmM6NDExMjo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9p bnRlZCB0byBieSAnY29udGV4dC5zdmMnCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt MTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVk Lgp0b29scy9hdnRlc3QuYzoyMjU6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyMzU6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNDQ6NTogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNTg6NTogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI2NTo1OiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjcyOjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNzk6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI5MTo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjI5NTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjMwNDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMwODo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMxNzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMyNDo1OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM0Njo1OiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjM1MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjM1OTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs IDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjM2Mzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM3Njo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM4MDo1OiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM4Nzo0OiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzk3OjQ6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1NjI6Mzogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv YXZ0ZXN0LmM6NTcwOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBpbnZhbGlkID8gMiA6IDMp OwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzo1ODQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQgKyBzaXplb2Yo bWVkaWFfdHJhbnNwb3J0KSk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU5NzozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzo2MDc6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwog ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjE5 OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYzNDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzo2NDY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjU1OjM6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjY2MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2OTg6 Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCBBVkNUUF9IRUFERVJfTEVOR1RIICsgc2l6ZW9mKHBsYXlfcHJl c3NlZCkpOwogICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMzIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idHBy b3h5LmM6ODM2OjE1OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0 ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgICAgICAgICB0Y3BfcG9ydCA9 IGF0b2kob3B0YXJnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn4KdG9vbHMvYnRwcm94eS5jOjgzOTo4OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2Vk IHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgICAg ICAgICBpZiAoc3RybGVuKG9wdGFyZykgPiAzICYmICFzdHJuY21wKG9wdGFyZywgImhjaSIsIDMp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjc2OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgICAg ICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjg0OjM6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZkID0gLTE7CiAg ICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjkyOjM6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZkID0g LTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjEwNToyOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgZmQgPSAt MTsKICAgICAgICBeICAgIH5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtY2xp ZW50LmM6MTgyNDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJl YWQKICAgICAgICBhcmd2ICs9IG9wdGluZDsKICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtc2VydmVyLmM6MTIxMjoyOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJlYWQKICAgICAgICBhcmd2IC09IG9wdGluZDsK ICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9jaGVjay1z ZWxmdGVzdC5jOjQyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICBwdHIgPSBmZ2V0cyhyZXN1bHQsIHNpemVvZihyZXN1bHQpLCBm cCk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvZ2F0dC1zZXJ2aWNlLmM6Mjk0OjI6IHdhcm5p bmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUK ICAgICAgICBjaHJfd3JpdGUoY2hyLCB2YWx1ZSwgbGVuKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9vYmV4LXNlcnZlci10b29s LmM6MTMzOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIg ZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRhdGEtPmZkID0gb3BlbihuYW1lLCBPX1dST05M WSB8IE9fQ1JFQVQgfCBPX05PQ1RUWSwgMDYwMCk7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9vYmV4LXNlcnZl ci10b29sLmM6MTkyOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJh bWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRhdGEtPmZkID0gb3BlbihuYW1lLCBP X1JET05MWSB8IE9fTk9DVFRZLCAwKTsKICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3Rlc3QtcnVu bmVyLmM6OTQ1OjI6IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVu aW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBwcmludGYoIlJ1bm5pbmcgY29tbWFuZCAlc1xuIiwg Y21kbmFtZSA/IGNtZG5hbWUgOiBhcmd2WzBdKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgp0b29scy9idHBjbGllbnRjdGwuYzo0MDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdiaXQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGJpdCA9IDA7CiAgICAgICAgICAg ICAgICBeICAgICB+CnRvb2xzL2J0cGNsaWVudGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVsbCBw b2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAg ICBtZW1jcHkoY3AtPmRhdGEsIGFkX2RhdGEsIGFkX2xlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwZC1yZXF1 ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRv IGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6 ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMvc2RwZC1yZXF1 ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRv IGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6 ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxOTY4OjM6IHdhcm5pbmc6IDFzdCBmdW5jdGlv biBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAg IGdfZnJlZSh0ZXh0W2ldKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6NjQ0OjM6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGhkcF90bXBfZGNfZGF0 YV91bnJlZihkY19kYXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6ODAwOjE5OiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBwYXRoID0gZ19zdHJkdXAoY2hh bi0+cGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpwcm9m aWxlcy9oZWFsdGgvaGRwLmM6MTc3OTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZHBfdG1w X2RjX2RhdGFfcmVmKGhkcF9jb25uKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2hlYWx0aC9oZHAu YzoxODM2OjMwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgcmVwbHkgPSBnX2RidXNfY3JlYXRlX2Vycm9yKGRhdGEtPm1zZywgRVJST1JfSU5URVJGQUNF ICIuSGVhbHRoRXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2hlYWx0aC9oZHBfdXRpbC5jOjEw NTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNv bm5fZGF0YS0+ZnVuYyhjb25uX2RhdGEtPmRhdGEsIGdlcnIpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hc2hhLmM6IEluIGZ1bmN0 aW9uIOKAmGFzaGFfc3RhdGVfcmVzZXTigJk6CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzoxMTM6Mjog ZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGNsb3Nl4oCZOyBkaWQg eW91IG1lYW4g4oCYcGNsb3Nl4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJh dGlvbl0KICAxMTMgfCAgY2xvc2UoYXNoYS0+ZmQpOwogICAgICB8ICBefn5+fgogICAgICB8ICBw Y2xvc2UKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHByb2ZpbGVzL2F1ZGlvL2FzaGEuYzozNToKcHJv ZmlsZXMvYXVkaW8vYXNoYS5jOiBJbiBmdW5jdGlvbiDigJhhc2hhX2Nvbm5lY3Rfc29ja2V04oCZ Ogpwcm9maWxlcy9hdWRpby9hc2hhLmM6MTU4OjU3OiBlcnJvcjog4oCYZXJybm/igJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMTU4IHwgICBlcnJvcigiQ291bGQg bm90IG9wZW4gTDJDQVAgQ29DIHNvY2tldDogJXMiLCBzdHJlcnJvcihlcnJubykpOwogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4KLi9zcmMvbG9nLmg6NjI6NTk6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY ZXJyb3LigJkKICAgNjIgfCAgYnRkX2Vycm9yKDB4ZmZmZiwgIiVzOiVzKCkgIiBmbXQsIF9fRklM RV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KcHJvZmlsZXMvYXVkaW8vYXNoYS5j OjQ5OjE6IG5vdGU6IOKAmGVycm5v4oCZIGlzIGRlZmluZWQgaW4gaGVhZGVyIOKAmDxlcnJuby5o PuKAmTsgZGlkIHlvdSBmb3JnZXQgdG8g4oCYI2luY2x1ZGUgPGVycm5vLmg+4oCZPwogICA0OCB8 ICNpbmNsdWRlICJsMmNhcC5oIgogICsrKyB8KyNpbmNsdWRlIDxlcnJuby5oPgogICA0OSB8IApJ biBmaWxlIGluY2x1ZGVkIGZyb20gcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjM1Ogpwcm9maWxlcy9h dWRpby9hc2hhLmM6MTU4OjU3OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyBy ZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogIDE1OCB8 ICAgZXJyb3IoIkNvdWxkIG5vdCBvcGVuIEwyQ0FQIENvQyBzb2NrZXQ6ICVzIiwgc3RyZXJyb3Io ZXJybm8pKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+Ci4vc3JjL2xvZy5oOjYyOjU5OiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmGVycm9y4oCZCiAgIDYyIHwgIGJ0ZF9lcnJvcigweGZmZmYsICIlczol cygpICIgZm10LCBfX0ZJTEVfXywgX19mdW5jX18sICMjIGFyZykKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+CnByb2Zp bGVzL2F1ZGlvL2FzaGEuYzoxNTI6MTk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmV04oCZ IFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICAxNTIgfCAgaW50IGZkID0gMCwgZXJyLCByZXQg PSAwOwogICAgICB8ICAgICAgICAgICAgICAgICAgIF5+fgpwcm9maWxlcy9hdWRpby9hc2hhLmM6 IEF0IHRvcCBsZXZlbDoKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjM4Mzo2OiBlcnJvcjogbm8gcHJl dmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmGF1ZGlvX3N0YXR1c19ub3RpZnnigJkgWy1XZXJyb3I9 bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgMzgzIHwgdm9pZCBhdWRpb19zdGF0dXNfbm90aWZ5KHVp bnQxNl90IHZhbHVlX2hhbmRsZSwgY29uc3QgdWludDhfdCAqdmFsdWUsCiAgICAgIHwgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzogSW4gZnVuY3Rpb24g4oCY YXNoYV9zb3VyY2VfZGlzY29ubmVjdOKAmToKcHJvZmlsZXMvYXVkaW8vYXNoYS5jOjcxMDoxMjog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhhc2hhX3V1aWTigJkgWy1XZXJyb3I9dW51c2VkLXZh cmlhYmxlXQogIDcxMCB8ICBidF91dWlkX3QgYXNoYV91dWlkOwogICAgICB8ICAgICAgICAgICAg Xn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2FzaGEuYzo3MDg6MjU6IGVycm9yOiB1bnVzZWQgdmFy aWFibGUg4oCYY2xpZW504oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICA3MDggfCAgc3Ry dWN0IGJ0X2dhdHRfY2xpZW50ICpjbGllbnQgPSBidGRfZGV2aWNlX2dldF9nYXR0X2NsaWVudChk ZXZpY2UpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpwcm9maWxlcy9h dWRpby9hc2hhLmM6NzA3OjE4OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmGRi4oCZIFstV2Vy cm9yPXVudXNlZC12YXJpYWJsZV0KICA3MDcgfCAgc3RydWN0IGdhdHRfZGIgKmRiID0gYnRkX2Rl dmljZV9nZXRfZ2F0dF9kYihkZXZpY2UpOwogICAgICB8ICAgICAgICAgICAgICAgICAgXn4KQXQg dG9wIGxldmVsOgpwcm9maWxlcy9hdWRpby9hc2hhLmM6NDYxOjIxOiBlcnJvcjog4oCYYXNoYV9z ZXRfY29uZmlndXJhdGlvbuKAmSBkZWZpbmVkIGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQt ZnVuY3Rpb25dCiAgNDYxIHwgc3RhdGljIERCdXNNZXNzYWdlICphc2hhX3NldF9jb25maWd1cmF0 aW9uKERCdXNDb25uZWN0aW9uICpjb25uLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjEwNjkxOiBwcm9maWxlcy9hdWRpby9ibHVldG9v dGhkLWFzaGEub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBq b2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2NTY6IGFsbF0gRXJyb3IgMgoKCi0tLQpSZWdh cmRzLApMaW51eCBCbHVldG9vdGgKCg== --===============3605618274029777173==--