From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f49.google.com (mail-dl1-f49.google.com [74.125.82.49]) (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 9855F40BCC8 for ; Tue, 9 Jun 2026 12:29:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781008155; cv=none; b=U+uShEUwXleL/jdylt3K+1tkd02irK/owb99kl4GWkmwwj0DE9GV2vPHjPSmupPpnjtvlMc0+xwBr+lwgMnRwdsKd9T0n3BtwUENbndE4hkzvb4kNX+klsSUoL5dnf8wxFan8rIZVgD5GGFFnBAwtmtGZDsSuqEb4roT36Pk+WE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781008155; c=relaxed/simple; bh=/Rt1LSYHjJf1vHppEmYGJudRf4aL/p0WU39AW2AXxH4=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=QdZSM339JZGl2QlMr4KAFSPl4Sw9faU9EtudedVFhxN44pxqza1mHx0Yi4b6EPQaHKiwN0VZsMI/B9Y4BetTr9BZTQdw1cjkInoY4akVFDvZuleDS6qGUy3Nq7t0wGoW+8/5a14VmXjEgTcm8XZakZHOmLZ/shUQuT/L4bteKcY= 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=j3Np4+8L; arc=none smtp.client-ip=74.125.82.49 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j3Np4+8L" Received: by mail-dl1-f49.google.com with SMTP id a92af1059eb24-137dd3af345so4949364c88.0 for ; Tue, 09 Jun 2026 05:29:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781008152; x=1781612952; 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=/Rt1LSYHjJf1vHppEmYGJudRf4aL/p0WU39AW2AXxH4=; b=j3Np4+8LXSC7E5e/Mt8ckFsGEtvkx5FpdRnnHLMB96vAsDykyXg5UGWpK+GE0Wnq3L zncNgQRXsuyVbb58GklFhyfub6x6QylfkCa8m4nBgWSLPfBT6z4X1+0ZPaJKMINl6/AY okwZ9AjL+2D9VFs4XWeL7nHL4ZNUg6o/bcAj0DJgqtf5D6k/UPZdFu2xAMPTsdJ+Ntkf j+8INaH1I7wXfON5/8deFwRMBWBdfou7Nlgh8EoNn+TsbWqwrDXC8QYpV4OpQv08k9LY xEGeqEfh1Cx5GMqM0UIDKhUrvkdkoP8+NUkCv+B/E7fRiCYxnbQlhUpHgqI9+j15zktN 4RKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781008152; x=1781612952; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/Rt1LSYHjJf1vHppEmYGJudRf4aL/p0WU39AW2AXxH4=; b=Wm0+peCWVSVEqOwYWNESn6qlXb9f/UKhiQzhqGsJqrB+GO0jPw1/Yeth2PXhBvOaQ7 LpvIVZo3mnO0BUTguW5yfDtuWyoyGnuFG48sAxxTDOuahftZGmE0Tpw/xA1b8YfQhwlD KQn4JcndXk0nBeBpM6Kh5OA+z8vOEuZGBDZRffVFiT24UTdJE8CnkzQdMBmbIECefCSQ hlGjyESpfCgKR2WztOWWaquK5LQxE5KrduaIGF0jzBWHo15qWcCxqPvQJfdzdC9kOdUv 1NFfPS/ey5ft92uft4h72hRsnNeHyy7p+bn4LcT9LUZbx/SWYJjQXH0p1ye2kyPj/ZrV iKsg== X-Gm-Message-State: AOJu0Yy/MvhW8RWcyMPDn+MXkfVr8HHW5QyOMaFCK1Z9YCRNSjn0Av+K 5mr3fWGz49RrXk3yReIa0ipR7wMTqkvN4mJRm+tIKXiipyflme9dyop2AaEhDA== X-Gm-Gg: Acq92OHCcpfS95BA17nuL9bME3/P/EaD6U+oGSPfgXAOOgezslzek6xg3mMvE2NBGhV 1zIvVQ6C6tbuC+zrghlSC4N8Yvfw8n37JU7dViJwTanR1CwQyES1WwGi3xb0nYvn6EuwuszxMwl 8AnDGr3u7SmuEs5q1WzzYc/OGd51jTDzUMaVwk1KhRsbsivV4KjdsCNrbY+K8A48v7nLSKT77J2 uqU93gcKROlScqOeiLut10dgzgl5xfdkyKXOTxk0LxkC8ltUU6vK6hJV7zxRS8WB91xuEZkTto9 AHqdS2PqCHlYMD53Ic9VzF/GFdy8te3p1XJzvXr+4TXYRN2AYHCVGZyiMnCQnchmuRlAkA5haoe VXRB43cqIgDa4BuRJK6zfWh7tm7TOy++RjbPXnSAuk0uMv40LX7C+ezXcsGaZ8rQIoHIsWFS5Uf nQiCb3oZPw2dvAkIPTZCqT7QwrdpkjobUaAwLw25GJ5g4= X-Received: by 2002:a05:7022:204:b0:137:fdd8:c7f7 with SMTP id a92af1059eb24-138067331b8mr11297852c88.34.1781008150584; Tue, 09 Jun 2026 05:29:10 -0700 (PDT) Received: from [172.17.0.2] ([172.184.220.144]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-138173e5b47sm8124090c88.8.2026.06.09.05.29.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 05:29:09 -0700 (PDT) Message-ID: <6a280715.74553e17.cd14a.b753@mx.google.com> Date: Tue, 09 Jun 2026 05:29:09 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============1336548188858408427==" 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, naga.akella@oss.qualcomm.com Subject: RE: Initial Channel Sounding Support for In-Reply-To: <20260609104953.3122718-2-naga.akella@oss.qualcomm.com> References: <20260609104953.3122718-2-naga.akella@oss.qualcomm.com> Reply-To: linux-bluetooth@vger.kernel.org --===============1336548188858408427== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9MTEwODUwNwoKLS0t VGVzdCByZXN1bHQtLS0KClRlc3QgU3VtbWFyeToKQ2hlY2tQYXRjaCAgICAgICAgICAgICAgICAg ICAgRkFJTCAgICAgIDEuMTEgc2Vjb25kcwpHaXRMaW50ICAgICAgICAgICAgICAgICAgICAgICBG QUlMICAgICAgMC40MiBzZWNvbmRzCkJ1aWxkRWxsICAgICAgICAgICAgICAgICAgICAgIFBBU1Mg ICAgICAyMC4xMiBzZWNvbmRzCkJsdWV6TWFrZSAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAg ICA2NDYuNjkgc2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MzQ0LjkxIHNlY29uZHMKYmx1ZXptYWtlZXh0ZWxsICAgICAgICAgICAgICAgRkFJTCAgICAgIDE3 Ni43MyBzZWNvbmRzCkluY3JlbWVudGFsQnVpbGQgICAgICAgICAgICAgIEZBSUwgICAgICA2Mzcu MTggc2Vjb25kcwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDkzLjcw IHNlY29uZHMKCkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENo ZWNrUGF0Y2ggLSBGQUlMCkRlc2M6IFJ1biBjaGVja3BhdGNoLnBsIHNjcmlwdApPdXRwdXQ6CltC bHVlWix2MSwyLzJdIHByb2ZpbGVzOiByYW5naW5nOiBBZGQgY29tbWFuZCBmbG93IGFuZCBldmVu dCBzdXBwb3J0IGZvciBDUyBJbml0aWF0b3IKV0FSTklORzpQUkVGRVJfREVGSU5FRF9BVFRSSUJV VEVfTUFDUk86IF9fYWx3YXlzX3VudXNlZCBvciBfX21heWJlX3VudXNlZCBpcyBwcmVmZXJyZWQg b3ZlciBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkKIzIxNjogRklMRTogcHJvZmlsZXMvcmFu Z2luZy9yYXBfaGNpLmM6MzA6CisjZGVmaW5lIF9fbWF5YmVfdW51c2VkIF9fYXR0cmlidXRlX18o KHVudXNlZCkpCgpXQVJOSU5HOkJMT0NLX0NPTU1FTlRfU1RZTEU6IEJsb2NrIGNvbW1lbnRzIHVz ZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMTA4OTogRklMRTogcHJvZmlsZXMv cmFuZ2luZy9yYXBfaGNpLmM6MTQ4NToKKyAqIGtlZXBpbmcgaXQgdW51c2VkIHRpbGwgREJVUyBB UEkgaXMgYWRkZWQgKi8KCldBUk5JTkc6QlJBQ0VTOiBicmFjZXMge30gYXJlIG5vdCBuZWNlc3Nh cnkgZm9yIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzCiMxMTEzOiBGSUxFOiBwcm9maWxlcy9yYW5n aW5nL3JhcF9oY2kuYzoxNTA5OgorCQlmb3IgKGkgPSAyOyBpIDw9IDIyOyBpKyspIHsKKwkJCWRl ZmF1bHRfbWFwW2kgLyA4XSB8PSAoMSA8PCAoaSAlIDgpKTsKKwkJfQoKV0FSTklORzpCUkFDRVM6 IGJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xlIHN0YXRlbWVudCBibG9ja3MK IzExMTY6IEZJTEU6IHByb2ZpbGVzL3JhbmdpbmcvcmFwX2hjaS5jOjE1MTI6CisJCWZvciAoaSA9 IDI2OyBpIDw9IDc2OyBpKyspIHsKKwkJCWRlZmF1bHRfbWFwW2kgLyA4XSB8PSAoMSA8PCAoaSAl IDgpKTsKKwkJfQoKV0FSTklORzpCTE9DS19DT01NRU5UX1NUWUxFOiBCbG9jayBjb21tZW50cyB1 c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzEyMzI6IEZJTEU6IHByb2ZpbGVz L3JhbmdpbmcvcmFwX2hjaS5jOjE2Mjg6CisgKiBrZWVwaW5nIGl0IHVudXNlZCB0aWxsIERCVVMg QVBJIGlzIGFkZGVkICovCgovZ2l0aHViL3dvcmtzcGFjZS9zcmMvcGF0Y2gvMTQ2MTkyMTQucGF0 Y2ggdG90YWw6IDAgZXJyb3JzLCA1IHdhcm5pbmdzLCAxMTMxIGxpbmVzIGNoZWNrZWQKCk5PVEU6 IEZvciBzb21lIG9mIHRoZSByZXBvcnRlZCBkZWZlY3RzLCBjaGVja3BhdGNoIG1heSBiZSBhYmxl IHRvCiAgICAgIG1lY2hhbmljYWxseSBjb252ZXJ0IHRvIHRoZSB0eXBpY2FsIHN0eWxlIHVzaW5n IC0tZml4IG9yIC0tZml4LWlucGxhY2UuCgovZ2l0aHViL3dvcmtzcGFjZS9zcmMvcGF0Y2gvMTQ2 MTkyMTQucGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LgoKTk9URTogSWdu b3JlZCBtZXNzYWdlIHR5cGVzOiBDT01NSVRfTUVTU0FHRSBDT01QTEVYX01BQ1JPIENPTlNUX1NU UlVDVCBGSUxFX1BBVEhfQ0hBTkdFUyBNSVNTSU5HX1NJR05fT0ZGIFBSRUZFUl9QQUNLRUQgU1BE WF9MSUNFTlNFX1RBRyBTUExJVF9TVFJJTkcgU1NDQU5GX1RPX0tTVFJUTwoKTk9URTogSWYgYW55 IG9mIHRoZSBlcnJvcnMgYXJlIGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIHJlcG9ydAogICAgICB0 aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUgQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCgoj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogR2l0TGludCAtIEZBSUwKRGVzYzog UnVuIGdpdGxpbnQKT3V0cHV0OgpbQmx1ZVosdjEsMS8yXSBzaGFyZWQ6IHJhcDogQWRkIHRoZSBp c19jZW50cmFsIHBhcmFtZXRlciB0byB2ZXJpZnkgd2hldGhlciB0aGUgbG9jYWwgcm9sZSBpcyBj ZW50cmFsIGJlZm9yZSBzZW5kaW5nIHRoZSBIQ0kgQ1MgU2VjdXJpdHkgRW5hYmxlIGNvbW1hbmQu CgoxOiBUMSBUaXRsZSBleGNlZWRzIG1heCBsZW5ndGggKDE1MT44MCk6ICJbQmx1ZVosdjEsMS8y XSBzaGFyZWQ6IHJhcDogQWRkIHRoZSBpc19jZW50cmFsIHBhcmFtZXRlciB0byB2ZXJpZnkgd2hl dGhlciB0aGUgbG9jYWwgcm9sZSBpcyBjZW50cmFsIGJlZm9yZSBzZW5kaW5nIHRoZSBIQ0kgQ1Mg U2VjdXJpdHkgRW5hYmxlIGNvbW1hbmQuIgoxOiBUMyBUaXRsZSBoYXMgdHJhaWxpbmcgcHVuY3R1 YXRpb24gKC4pOiAiW0JsdWVaLHYxLDEvMl0gc2hhcmVkOiByYXA6IEFkZCB0aGUgaXNfY2VudHJh bCBwYXJhbWV0ZXIgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGxvY2FsIHJvbGUgaXMgY2VudHJhbCBi ZWZvcmUgc2VuZGluZyB0aGUgSENJIENTIFNlY3VyaXR5IEVuYWJsZSBjb21tYW5kLiIKW0JsdWVa LHYxLDIvMl0gcHJvZmlsZXM6IHJhbmdpbmc6IEFkZCBjb21tYW5kIGZsb3cgYW5kIGV2ZW50IHN1 cHBvcnQgZm9yIENTIEluaXRpYXRvcgoKMTogVDEgVGl0bGUgZXhjZWVkcyBtYXggbGVuZ3RoICg4 NT44MCk6ICJbQmx1ZVosdjEsMi8yXSBwcm9maWxlczogcmFuZ2luZzogQWRkIGNvbW1hbmQgZmxv dyBhbmQgZXZlbnQgc3VwcG9ydCBmb3IgQ1MgSW5pdGlhdG9yIgojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKVGVzdDogQmx1ZXpNYWtlIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpPdXRw dXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9t Z210LXRlc3Rlci5jOjEyOTkwOjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQg ZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcg d2l0aG91dAoxMjk5MCB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwg ICAgIF5+fn4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQv dGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4 Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdp dGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAg ICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rl c3QtYXZyY3AuYzo5ODk6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNl ZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRo b3V0CiAgOTg5IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAg Xn5+fgpwcm9maWxlcy9yYW5naW5nL3JhcF9oY2kuYzoxNDg2OjIxOiBlcnJvcjogbm8gcHJldmlv dXMgZGVjbGFyYXRpb24gZm9yIOKAmGJ0X3JhcF9zZXRfY2hhbm5lbF9jbGFzc2lmaWNhdGlvbuKA mSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KIDE0ODYgfCBib29sIF9fbWF5YmVfdW51 c2VkIGJ0X3JhcF9zZXRfY2hhbm5lbF9jbGFzc2lmaWNhdGlvbih2b2lkICpoY2lfc20sCiAgICAg IHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Y2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtN YWtlZmlsZTo5MDA3OiBwcm9maWxlcy9yYW5naW5nL2JsdWV0b290aGQtcmFwX2hjaS5vXSBFcnJv ciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoq KiBbTWFrZWZpbGU6NDE3MjogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0b29sIHdpdGgg c291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVs cGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNy Yy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzM1OjMxOiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMu YzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LXNlcnZlci5jOjI3MToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTQ6MjU6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzEyOjI1 OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAu YzozMTI6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJl ZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoy NTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxs LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6 MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBl cnMuYzoxMzM1OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3MToyNTogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2 MTQ6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2dhdHQtc2VydmVyLmM6NzEyOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTI6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxl IHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9z cmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0 dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2gg L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUv cmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz Lmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24n CnRvb2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNl cXVlbmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToK Li9saWIvYmx1ZXRvb3RoL2JsdWV0b290aC5oOjIzMjoxNTogd2FybmluZzogYXJyYXkgb2YgZmxl eGlibGUgc3RydWN0dXJlcwouL2xpYi9ibHVldG9vdGgvYmx1ZXRvb3RoLmg6MjM3OjMxOiB3YXJu aW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnRvb2xzL2JuZXB0ZXN0LmM6NjM0OjM5 OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0b29scy9zZXEyYnNlcS5j OjU3OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdG9vbHMvb2Jl eC1jbGllbnQtdG9vbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5j bHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRl ZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpjbGllbnQv YnRwY2xpZW50L2dhdHQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2J0 cC5oOjMzNTo0MTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL3NyYy9z aGFyZWQvYnRwLmg6MzQwOjU1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVz Ci4vc3JjL3NoYXJlZC9idHAuaDozNjM6NDc6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0 cnVjdHVyZXMKLi9zcmMvc2hhcmVkL2J0cC5oOjM5Mjo0Mjogd2FybmluZzogYXJyYXkgb2YgZmxl eGlibGUgc3RydWN0dXJlcwpzcmMvYWR2ZXJ0aXNpbmcuYzogbm90ZTogaW4gaW5jbHVkZWQgZmls ZToKLi9zcmMvc2hhcmVkL21nbXQuaDo5NToyNTogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNp Z25lZCBpbnQgZW51bSBtZ210X2lvX2NhcGFiaWxpdHkKc3JjL2FnZW50LmM6IG5vdGU6IGluIGlu Y2x1ZGVkIGZpbGU6CnNyYy9zaGFyZWQvcXVldWUuaDoxOToyMDogZXJyb3I6IHJlZGVmaW5pdGlv biBvZiBzdHJ1Y3QgcXVldWVfZW50cnkKc3JjL2Fkdl9tb25pdG9yLmM6IG5vdGU6IGluIGluY2x1 ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9tZ210Lmg6OTU6MjU6IGVycm9yOiByZWRlZmluaXRpb24g b2YgdW5zaWduZWQgaW50IGVudW0gbWdtdF9pb19jYXBhYmlsaXR5CnVuaXQvYXZjdHAuYzo1MDU6 MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2Y3RwLmM6 NTU2OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0 LWF2cmNwLmM6MzczOjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K dW5pdC90ZXN0LWF2cmNwLmM6Mzk4OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6NDE0OjI0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxMDg1OjM0OiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxNTgzOjM0OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxNjEy OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1s aWIuYzoxNjM4OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L2FkdmVydGlzaW5nLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9tZ210 Lmg6OTU6MjU6IGVycm9yOiByZWRlZmluaXRpb24gb2YgdW5zaWduZWQgaW50IGVudW0gbWdtdF9p b19jYXBhYmlsaXR5CnNyYy9hZ2VudC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgpzcmMvc2hh cmVkL3F1ZXVlLmg6MTk6MjA6IGVycm9yOiByZWRlZmluaXRpb24gb2Ygc3RydWN0IHF1ZXVlX2Vu dHJ5CnNyYy9hZHZfbW9uaXRvci5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFy ZWQvbWdtdC5oOjk1OjI1OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2lnbmVkIGludCBlbnVt IG1nbXRfaW9fY2FwYWJpbGl0eQpzcmMvbWFpbi5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0 aHJvdWdoIHNyYy9kZXZpY2UuaCk6Ci4vc3JjL3NoYXJlZC9xdWV1ZS5oOjE5OjIwOiBlcnJvcjog cmVkZWZpbml0aW9uIG9mIHN0cnVjdCBxdWV1ZV9lbnRyeQptZXNoL21lc2gtaW8tbWdtdC5jOjUy NTo2Nzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmNsaWVudC9kaXNw bGF5LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIz OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91 c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJ IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRv LmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhl bHBlcnMuYzoxMzM1OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3MToyNTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIu Yzo2MTQ6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtc2VydmVyLmM6NzEyOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTI6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhp YmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToK Li9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3Ry dWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91 Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxp bmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVk ZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6 Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdD UEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rp b24nCm1vbml0b3IvcGFja2V0LmM6MjAwMjoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCm1vbml0b3IvcGFja2V0LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Cm1v bml0b3IvYnQuaDozOTI0OjUyOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVz Cm1vbml0b3IvYnQuaDozOTEyOjQwOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1 cmVzCm1vbml0b3IvbXNmdC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL21zZnQu aDo4ODo0NDogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9yY3Rl c3QuYzo2MzE6MzM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uICdhdXRvbWF0ZWRfc2VuZF9yZWN2Jwp0b29scy9oZXgyaGNkLmM6MTM2OjI2OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdG9vbHMvbWVzaGN0bC5jOjMyNDoz Mzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2Zv cmdldF9tZXNoX2RldmljZXMnCnRvb2xzL21lc2gtZ2F0dC9ub2RlLmM6NDU2OjM5OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbm9kZV9nZXRfbG9j YWxfbm9kZScKdG9vbHMvbWVzaC1nYXR0L25ldC5jOjEyMzk6MzA6IHdhcm5pbmc6IG5vbi1BTlNJ IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdnZXRfbmV4dF9zZXEnCnRvb2xzL21l c2gtZ2F0dC9uZXQuYzoyMTkzOjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnbmV0X2dldF9kZWZhdWx0X3R0bCcKdG9vbHMvbWVzaC1nYXR0L25l dC5jOjIyMDc6MjY6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uICduZXRfZ2V0X3NlcV9udW0nCnRvb2xzL21lc2gtZ2F0dC9wcm92LmM6IG5vdGU6IGlu IGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgp OgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24t QU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFk bGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0 eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnRvb2xzL21lc2gtZ2F0dC9vbm9mZi1tb2RlbC5jOiBu b3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFk bGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwplbGwvbG9nLmM6NDMxOjY1OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAncmVnaXN0ZXJfZGVi dWdfc2VjdGlvbicKZWxsL2xvZy5jOjQzOTo2ODogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZyZWVfZGVidWdfc2VjdGlvbnMnCmVsbC9yYW5kb20u Yzo2MDo0Mjogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ2xfZ2V0cmFuZG9tX2lzX3N1cHBvcnRlZCcKZWxsL2NpcGhlci5jOjY2MDoyODogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2luaXRfc3VwcG9y dGVkJwplbGwvY2hlY2tzdW0uYzozODI6Mjg6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpbml0X3N1cHBvcnRlZCcKZWxsL2NoZWNrc3VtLmM6NDQ0 OjQ3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn bF9jaGVja3N1bV9jbWFjX2Flc19zdXBwb3J0ZWQnCmVsbC9jaXBoZXIuYzo1MTk6MjQ6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvY2VydC1jcnlwdG8uYzozNjoz Mzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9jZXJ0LWNyeXB0 by5jOjE0MjozNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9j ZXJ0LWNyeXB0by5jOjE5ODozNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCmVsbC9jZXJ0LWNyeXB0by5jOjI1MTozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVsbC9rZXkuYzo1NTA6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgplbGwvZGJ1cy1zZXJ2aWNlLmM6NTQ4OjQ5OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnX2RidXNfb2JqZWN0X3RyZWVfbmV3 JwplbGwvZGJ1cy1maWx0ZXIuYzoyMzM6NDY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgplbGwvdGxzLmM6NDU6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgplbGwvdGxzLmM6ODY6MjI6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgplbGwvdGxzLmM6ODY6NDY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwNzk6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwODE6MzQ6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwODQ6NDE6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEx MzM6NDE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLmM6 MTgxOToyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVtdWxhdG9y L2J0ZGV2LmM6NDc4OjI5OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K ZW11bGF0b3IvYnRob3N0LmM6NzAzOjI4OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6NzA0OjMyOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6OTQ0OjI4OiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6OTc4OjI4OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11bGF0b3IvYnRob3N0LmM6OTc5 OjMyOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYXR0cmliL2dhdHR0 b29sLmM6MjM2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYXR0 cmliL2ludGVyYWN0aXZlLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBl ZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6 MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdW RnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9u JwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24t QU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmF0dHJp Yi9pbnRlcmFjdGl2ZS5jOjE3NToyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ2Rpc2Nvbm5lY3RfaW8nCmF0dHJpYi9pbnRlcmFjdGl2ZS5jOjMw MDoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnByb2ZpbGVzL3Jh bmdpbmcvcmFwX2hjaS5jOjE0ODY6MjE6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBm b3Ig4oCYYnRfcmFwX3NldF9jaGFubmVsX2NsYXNzaWZpY2F0aW9u4oCZIFstV2Vycm9yPW1pc3Np bmctZGVjbGFyYXRpb25zXQogMTQ4NiB8IGJvb2wgX19tYXliZV91bnVzZWQgYnRfcmFwX3NldF9j aGFubmVsX2NsYXNzaWZpY2F0aW9uKHZvaWQgKmhjaV9zbSwKICAgICAgfCAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5n cyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjkwMDc6IHBy b2ZpbGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXBfaGNpLm9dIEVycm9yIDEKbWFrZVsxXTogKioq IFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0MTcy OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IGJsdWV6 bWFrZWV4dGVsbCAtIEZBSUwKRGVzYzogQnVpbGQgQmx1ZXogd2l0aCBFeHRlcm5hbCBFTEwKT3V0 cHV0OgoKcHJvZmlsZXMvcmFuZ2luZy9yYXBfaGNpLmM6MTQ4NjoyMTogZXJyb3I6IG5vIHByZXZp b3VzIGRlY2xhcmF0aW9uIGZvciDigJhidF9yYXBfc2V0X2NoYW5uZWxfY2xhc3NpZmljYXRpb27i gJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAxNDg2IHwgYm9vbCBfX21heWJlX3Vu dXNlZCBidF9yYXBfc2V0X2NoYW5uZWxfY2xhc3NpZmljYXRpb24odm9pZCAqaGNpX3NtLAogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBb TWFrZWZpbGU6OTAwNzogcHJvZmlsZXMvcmFuZ2luZy9ibHVldG9vdGhkLXJhcF9oY2kub10gRXJy b3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAq KiogW01ha2VmaWxlOjQxNzI6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKVGVzdDogSW5jcmVtZW50YWxCdWlsZCAtIEZBSUwKRGVzYzogSW5jcmVtZW50YWwgYnVp bGQgd2l0aCB0aGUgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzCk91dHB1dDoKCnRvb2xzL21nbXQtdGVz dGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI5OTA6 NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1m dmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyOTkwIHwgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3Qt YXZkdHAuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6 IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZh ci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDc2NiB8IGludCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2 cmNwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdnJjcC5jOjk4OTo1OiBu b3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXIt dHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA5ODkgfCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnByb2ZpbGVzL3Jhbmdp bmcvcmFwLmM6IEluIGZ1bmN0aW9uIOKAmHJhcF9hY2NlcHTigJk6CnByb2ZpbGVzL3Jhbmdpbmcv cmFwLmM6NDIxOjQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhidF9y YXBfc2V0X2Nvbm5faGFuZGxl4oCZCiAgNDIxIHwgICAgYnRfcmFwX3NldF9jb25uX2hhbmRsZShk YXRhLT5oY2lfc20sCiAgICAgIHwgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gcHJvZmlsZXMvcmFuZ2luZy9yYXAuYzozNToKLi9zcmMvc2hhcmVkL3JhcC5o OjIxNTo2OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgMjE1IHwgYm9vbCBidF9yYXBfc2V0X2Nvbm5f aGFuZGxlKHZvaWQgKmhjaV9zbSwgc3RydWN0IGJ0X3JhcCAqcmFwLCB1aW50MTZfdCBoYW5kbGUs CiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm1ha2VbMV06ICoqKiBbTWFrZWZp bGU6ODk5MzogcHJvZmlsZXMvcmFuZ2luZy9ibHVldG9vdGhkLXJhcC5vXSBFcnJvciAxCm1ha2Vb MV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnByb2ZpbGVzL3Jhbmdpbmcv cmFwX2hjaS5jOjExMDc6NjogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciDigJhidF9yYXBf c2V0X2Nvbm5faGFuZGxl4oCZCiAxMTA3IHwgYm9vbCBidF9yYXBfc2V0X2Nvbm5faGFuZGxlKHZv aWQgKmhjaV9zbSwgc3RydWN0IGJ0X3JhcCAqcmFwLCB1aW50MTZfdCBoYW5kbGUsCiAgICAgIHwg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBwcm9maWxl cy9yYW5naW5nL3JhcF9oY2kuYzoyMzoKLi9zcmMvc2hhcmVkL3JhcC5oOjIxNTo2OiBub3RlOiBw cmV2aW91cyBkZWNsYXJhdGlvbiBvZiDigJhidF9yYXBfc2V0X2Nvbm5faGFuZGxl4oCZIHdhcyBo ZXJlCiAgMjE1IHwgYm9vbCBidF9yYXBfc2V0X2Nvbm5faGFuZGxlKHZvaWQgKmhjaV9zbSwgc3Ry dWN0IGJ0X3JhcCAqcmFwLCB1aW50MTZfdCBoYW5kbGUsCiAgICAgIHwgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+Cm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6OTAwNzogcHJvZmlsZXMvcmFuZ2lu Zy9ibHVldG9vdGhkLXJhcF9oY2kub10gRXJyb3IgMQptYWtlOiAqKiogW01ha2VmaWxlOjQxNzI6 IGFsbF0gRXJyb3IgMgpbQmx1ZVosdjEsMS8yXSBzaGFyZWQ6IHJhcDogQWRkIHRoZSBpc19jZW50 cmFsIHBhcmFtZXRlciB0byB2ZXJpZnkgd2hldGhlciB0aGUgbG9jYWwgcm9sZSBpcyBjZW50cmFs IGJlZm9yZSBzZW5kaW5nIHRoZSBIQ0kgQ1MgU2VjdXJpdHkgRW5hYmxlIGNvbW1hbmQuCgp0b29s cy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rl ci5jOjEyOTkwOjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQg d2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAox Mjk5MCB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4K dW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdmR0 cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdp dGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA3 NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVu aXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3Au Yzo5ODk6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRo IOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTg5 IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpwcm9m aWxlcy9yYW5naW5nL3JhcC5jOiBJbiBmdW5jdGlvbiDigJhyYXBfYWNjZXB04oCZOgpwcm9maWxl cy9yYW5naW5nL3JhcC5jOjQyMTo0OiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rp b24g4oCYYnRfcmFwX3NldF9jb25uX2hhbmRsZeKAmQogIDQyMSB8ICAgIGJ0X3JhcF9zZXRfY29u bl9oYW5kbGUoZGF0YS0+aGNpX3NtLAogICAgICB8ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIHByb2ZpbGVzL3JhbmdpbmcvcmFwLmM6MzU6Ci4vc3JjL3No YXJlZC9yYXAuaDoyMTU6Njogbm90ZTogZGVjbGFyZWQgaGVyZQogIDIxNSB8IGJvb2wgYnRfcmFw X3NldF9jb25uX2hhbmRsZSh2b2lkICpoY2lfc20sIHN0cnVjdCBidF9yYXAgKnJhcCwgdWludDE2 X3QgaGFuZGxlLAogICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgptYWtlWzFdOiAq KiogW01ha2VmaWxlOjg5OTM6IHByb2ZpbGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXAub10gRXJy b3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgpwcm9maWxl cy9yYW5naW5nL3JhcF9oY2kuYzoxMTA3OjY6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3Ig 4oCYYnRfcmFwX3NldF9jb25uX2hhbmRsZeKAmQogMTEwNyB8IGJvb2wgYnRfcmFwX3NldF9jb25u X2hhbmRsZSh2b2lkICpoY2lfc20sIHN0cnVjdCBidF9yYXAgKnJhcCwgdWludDE2X3QgaGFuZGxl LAogICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gcHJvZmlsZXMvcmFuZ2luZy9yYXBfaGNpLmM6MjM6Ci4vc3JjL3NoYXJlZC9yYXAuaDoyMTU6 Njogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2Yg4oCYYnRfcmFwX3NldF9jb25uX2hhbmRs ZeKAmSB3YXMgaGVyZQogIDIxNSB8IGJvb2wgYnRfcmFwX3NldF9jb25uX2hhbmRsZSh2b2lkICpo Y2lfc20sIHN0cnVjdCBidF9yYXAgKnJhcCwgdWludDE2X3QgaGFuZGxlLAogICAgICB8ICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fgptYWtlWzFdOiAqKiogW01ha2VmaWxlOjkwMDc6IHByb2Zp bGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXBfaGNpLm9dIEVycm9yIDEKbWFrZTogKioqIFtNYWtl ZmlsZTo0MTcyOiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRl c3Q6IFNjYW5CdWlsZCAtIEZBSUwKRGVzYzogUnVuIFNjYW4gQnVpbGQKT3V0cHV0OgoKc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjQ0NzoyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3At PmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6NjkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBh dHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTA5ODoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9w LCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MjoyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29w X2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MTM1NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTYzMjo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNzoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAg ICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjkzOjU2OiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgbm90aWZ5X2RhdGEt PmNocmMtPmNjY193cml0ZV9pZCA9IG5vdGlmeV9kYXRhLT5hdHRfaWQgPSBhdHRfaWQ7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn4g XgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Njo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE1NDo4OiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29wX3JlZihv cCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMzMzI6Mjog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNvbXBsZXRl X3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MzM1NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgoxMyB3 YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYmFwLmM6MTUyOTo4OiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgYmFwID0gYnRfYmFwX3JlZl9zYWZl KGJhcCk7CiAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9iYXAu YzoyMzQwOjIwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgcmV0dXJuIHF1ZXVlX2ZpbmQoc3RyZWFtLT5iYXAtPnN0cmVhbXMsIE5VTEwsIHN0cmVhbSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5n cyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo0NDc6MjE6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIo b3AtPmNsaWVudC0+ZGIsIG9wLT5kYl9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjY5MjoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9w LCBmYWxzZSwgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo5OTI6Mjogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21w bGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEwOTg6 Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2Nv dmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNs aWVudC5jOjEyOTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAog ICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjEzNTc6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0 X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2MzI6Njogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2Mzc6 Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2Nv dmVyX2FsbChvcCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MTY5Mzo1Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAog ICAgICAgIG5vdGlmeV9kYXRhLT5jaHJjLT5jY2Nfd3JpdGVfaWQgPSBub3RpZnlfZGF0YS0+YXR0 X2lkID0gYXR0X2lkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ fn5+fn5+fn5+fn5+fn5+fn5+IF4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNDY6Njogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2Ri X2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0 LWNsaWVudC5jOjIxNTQ6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzozMzMyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFsc2Up OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K c3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMzNTQ6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn4KMTMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2guYzo4 MTc6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBp biB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSBy ZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEw KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9oY2lhdHRhY2guYzo4NjU6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3Jl ZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBp cyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lf ZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODg3Ojg6IHdhcm5pbmc6IEFsdGhvdWdo IHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNz aW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgICAg ICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAg ICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hj aWF0dGFjaC5jOjkwOTo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdu JyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVy IGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChm ZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MzA6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZh bHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRo ZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0g cmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTc0Ojc6IHdhcm5pbmc6 IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2lu ZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwog ICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA2KSkgPCAwKSB7CiAgICAg ICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJh dGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE1Mjk6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGJhcCA9IGJ0X2JhcF9yZWZfc2FmZShiYXApOwogICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvYmFwLmM6MjM0MDoyMDogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJldHVybiBxdWV1 ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJlYW1zLCBOVUxMLCBzdHJlYW0pOwogICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpz cmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9vdWkuYzo1MzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2 KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4K dG9vbHMvcmZjb21tLmM6MjM0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnaScgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgaSA9IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2KTsK ICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZj b21tLmM6MjM0Ojc6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRl ciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3Zb MF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9yZmNvbW0uYzozNTQ6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0 b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFs dWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgo ZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAg ICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L3JmY29tbS5jOjQ5NzoxNDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1 bmRlZmluZWQKICAgICAgICByZXEuY2hhbm5lbCA9IHJhZGRyLnJjX2NoYW5uZWw7CiAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjUxNTo4OiB3YXJu aW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5j bG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20g J2ZkJwogICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBP X05PQ1RUWSkpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRvb2wu YzozNTE6Nzogd2FybmluZzogNXRoIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0 aWFsaXplZCB2YWx1ZQogICAgICAgIHNrID0gZG9fY29ubmVjdChjdGwsIGRldl9pZCwgJnNyYywg JmRzdCwgcHNtLCAoMSA8PCBDTVRQX0xPT1BCQUNLKSk7CiAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdh cm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQg dmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRh dGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14 bWwuYzozMDY6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZp bmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjM0NDox MTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAg ICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9z ZHB0b29sLmM6OTQxOjI2OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVk IHRvIGEgcG9pbnRlciBvZiB0eXBlICd1aW50MzJfdCcsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3 aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ2ludCcKICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgKnZhbHVlX2ludCA9IG1hbGxvYyhzaXplb2YoaW50KSk7CiAgICAgICAgICAgICAgICAg ICAgICAgIH5+fn5+fn5+fn4gICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn4KdG9vbHMvc2Rw dG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoYWxsb2NBcnJh eVtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv c2RwdG9vbC5jOjM3Nzc6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50 ZWQgdG8gYnkgJ3NpLm5hbWUnCiAgICAgICAgcmV0dXJuIGFkZF9zZXJ2aWNlKDAsICZzaSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjQxMTI6NDog d2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2NvbnRleHQu c3ZjJwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYXZ0ZXN0LmM6MjQz OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6MjUzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6MjYyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjc2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyODM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI5MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjk3OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMDk6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMTM6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjI6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzozMjY6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzozMzU6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzozNDI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0 ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNjQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNjg6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNzc6NTogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoz ODE6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzozOTQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0 KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzozOTg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo0MDU6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjQxNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvYXZ0ZXN0LmM6NTgwOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU4ODozOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgaW52YWxpZCA/IDIgOiAzKTsKICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjAyOjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0ICsgbWVkaWFfdHJhbnNwb3J0X3NpemUpOwogICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzo2MTU6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjI1OjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYzNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1 ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzo2NTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjY0OjM6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjY3MzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2ODA6Mzog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NzE2OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgQVZDVFBf SEVBREVSX0xFTkdUSCArIHNpemVvZihwbGF5X3ByZXNzZWQpKTsKICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMy IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRwcm94eS5jOjgzNjoxNTogd2FybmluZzogTnVs bCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAg ICAgICAgICAgICAgICAgICAgICAgdGNwX3BvcnQgPSBhdG9pKG9wdGFyZyk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnRvb2xzL2J0cHJveHkuYzo4Mzk6 ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGlu ZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmxlbihvcHRhcmcpID4g MyAmJiAhc3RybmNtcChvcHRhcmcsICJoY2kiLCAzKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jcmVhdGUtaW1h Z2UuYzo3NjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAg ICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVh dGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29s cy9jcmVhdGUtaW1hZ2UuYzo5MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+ fgp0b29scy9jcmVhdGUtaW1hZ2UuYzoxMDU6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdm ZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgIGZkID0gLTE7CiAgICAgICAgXiAgICB+fgo0IHdhcm5p bmdzIGdlbmVyYXRlZC4KdG9vbHMvY2hlY2stc2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ3B0cicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgcHRyID0gZmdl dHMocmVzdWx0LCBzaXplb2YocmVzdWx0KSwgZnApOwogICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xz L2J0Z2F0dC1jbGllbnQuYzoxODIyOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicg aXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3YgKz0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1zZXJ2ZXIuYzoxMjA0OjI6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3Yg LT0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRv b2xzL2dhdHQtc2VydmljZS5jOjI5NDoyOiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1 bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgY2hyX3dyaXRlKGNociwgdmFs dWUsIGxlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KdG9vbHMvb2JleC1zZXJ2ZXItdG9vbC5jOjEzMzoxMzogd2FybmluZzogTnVsbCBw b2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAg ICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT0NUVFksIDA2 MDApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvb2JleC1zZXJ2ZXItdG9vbC5jOjE5MjoxMzogd2FybmluZzog TnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcK ICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSwgMCk7CiAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2Fy bmluZ3MgZ2VuZXJhdGVkLgp0b29scy90ZXN0LXJ1bm5lci5jOjEzNzA6Mjogd2FybmluZzogQWRk cmVzcyBvZiBzdGFjayBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIGxvY2FsIHZhcmlhYmxlICdrZXJu ZWxfcGF0aCcgaXMgc3RpbGwgcmVmZXJyZWQgdG8gYnkgdGhlIGdsb2JhbCB2YXJpYWJsZSAna2Vy bmVsX2ltYWdlJyB1cG9uIHJldHVybmluZyB0byB0aGUgY2FsbGVyLiAgVGhpcyB3aWxsIGJlIGEg ZGFuZ2xpbmcgcmVmZXJlbmNlCiAgICAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmNsaWVudC9idHBjbGllbnQv YnRwY2xpZW50Y3RsLmM6NDAyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0JyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBiaXQgPSAwOwogICAgICAgICAgICAgICAgXiAgICAg fgpjbGllbnQvYnRwY2xpZW50L2J0cGNsaWVudGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVsbCBw b2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAg ICBtZW1jcHkoY3AtPmRhdGEsIGFkX2RhdGEsIGFkX2xlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwLWNsaWVu dC5jOjM1MzoxNDogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdjYicgcmVzdWx0cyBpbiBhIGRl cmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyCiAgICAgICAgKCpjdHh0KS0+Y2IgPSBjYjsKICAg ICAgICB+fn5+fn5+fn5+fn5efn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zZHBkLXJlcXVl c3QuYzoyMDk6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8g YSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXpl b2Ygb3BlcmFuZCB0eXBlICd1aW50MTZfdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWludDE2X3QpKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CnNyYy9zZHBkLXJlcXVl c3QuYzoyMzc6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8g YSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXpl b2Ygb3BlcmFuZCB0eXBlICd1aW50MzJfdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWludDMyX3QpKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2Vu ZXJhdGVkLgpzcmMvZ2F0dC1kYXRhYmFzZS5jOjExNzE6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnYml0cycgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAg ICAgdWludDhfdCBiaXRzW10gPSB7IEJUX0dBVFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElO RywKICAgICAgICAgICAgICAgIF5+fn4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvZ2F0dC1jbGllbnQuYzoxNTY5OjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBub3RpZnlf Y2xpZW50X3VucmVmKGNsaWVudCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCnVuaXQvYXZyY3AtbGliLmM6MTk2ODozOiB3YXJuaW5nOiAx c3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAg ICAgICAgICAgICBnX2ZyZWUodGV4dFtpXSk7CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdW5pdC9hdmR0cC5jOjc1NjoyNTogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cHJp b19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnByaW9fcXVldWUsIHJlcSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp1bml0L2F2ZHRwLmM6NzYzOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5yZXFfcXVldWUg PSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5yZXFfcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnVuaXQvdGVzdC11dGlsLmM6MzM6ODogd2Fybmlu ZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3AxJwogICAgICAgIHAy WzBdID0gMTsKICAgICAgICB+fn5+fn5efn4KdW5pdC90ZXN0LXV0aWwuYzozNjozOiB3YXJuaW5n OiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncDInCiAgICAgICAgICAg ICAgICBfY2xlYW51cF9mcmVlXyB1aW50OF90ICpkYXRhID0gTlVMTDsKICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDoxMzQ6MjQ6 IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19jbGVhbnVwX2ZyZWVfJwojZGVmaW5lIF9jbGVh bnVwX2ZyZWVfIF9jbGVhbnVwXyhmcmVlcCkKICAgICAgICAgICAgICAgICAgICAgICBeCi4vc3Jj L3NoYXJlZC91dGlsLmg6MTMyOjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdfY2xlYW51 cF8nCiNkZWZpbmUgX2NsZWFudXBfKGYpIF9fYXR0cmlidXRlX18oKGNsZWFudXAoZikpKQogICAg ICAgICAgICAgICAgICAgICBeCnVuaXQvdGVzdC11dGlsLmM6NDI6Mzogd2FybmluZzogUG90ZW50 aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2RhdGEnCiAgICAgICAgICAgICAgICBh c3NlcnQoaXNfbnVsbF90b28gPT0gTlVMTCk7CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2Fzc2VydC5oOjEwODoxMTogbm90ZTogZXhwYW5k ZWQgZnJvbSBtYWNybyAnYXNzZXJ0JwogICgodm9pZCkgc2l6ZW9mICgoZXhwcikgPyAxIDogMCks IF9fZXh0ZW5zaW9uX18gKHsgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp1bml0L3Rlc3QtdXRpbC5jOjUwOjI6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdkYXRhJwogICAgICAgIGFzc2VydChpc19u dWxsID09IE5VTEwpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVk ZS9hc3NlcnQuaDoxMDg6MTE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Fzc2VydCcKICAo KHZvaWQpIHNpemVvZiAoKGV4cHIpID8gMSA6IDApLCBfX2V4dGVuc2lvbl9fICh7ICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNCB3YXJuaW5n cyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2ZHRwLmM6ODk1OjI1OiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5wcmlv X3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cHJpb19xdWV1ZSwgcmVxKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2F2ZHRwLmM6OTAyOjI0OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5y ZXFfcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5yZXFfcXVldWUsIHJlcSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2EyZHAu Yzo0NDI6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg ICAgICAgICAgaWYgKCFjYi0+cmVzdW1lX2NiKQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2EyZHAuYzozMzU0OjIwOiB3YXJuaW5nOiBBY2Nlc3MgdG8g ZmllbGQgJ3N0YXJ0aW5nJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50 ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdzdHJlYW0nKQogICAgICAgICAgICAgICAgc3RyZWFt LT5zdGFydGluZyA9IFRSVUU7CiAgICAgICAgICAgICAgICB+fn5+fn4gICAgICAgICAgIF4KcHJv ZmlsZXMvYXVkaW8vYTJkcC5jOjMzNTc6ODogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdzdXNw ZW5kaW5nJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRl ZCBmcm9tIHZhcmlhYmxlICdzdHJlYW0nKQogICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0tPnN1 c3BlbmRpbmcgJiYgc3RyZWFtLT5zdXNwZW5kX3RpbWVyKSB7CiAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hMmRwLmM6MzQxNzoyMjogd2Fybmlu ZzogQWNjZXNzIHRvIGZpZWxkICdzdXNwZW5kaW5nJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ug b2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdzdHJlYW0nKQogICAgICAg ICAgICAgICAgc3RyZWFtLT5zdXNwZW5kaW5nID0gVFJVRTsKICAgICAgICAgICAgICAgIH5+fn5+ fiAgICAgICAgICAgICBeCjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hdnJj cC5jOjE5Njg6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdvcGVyYW5kcycgaXMgbmV2ZXIg cmVhZAogICAgICAgIG9wZXJhbmRzICs9IHNpemVvZigqcGR1KTsKICAgICAgICBeICAgICAgICAg ICB+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KYXR0cmliL2dhdHQuYzo5NzA6Mjog d2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2xvbmdfd3Jp dGUnCiAgICAgICAgcmV0dXJuIHByZXBhcmVfd3JpdGUobG9uZ193cml0ZSk7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3Nk cGQtcmVxdWVzdC5jOjIwOToxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZl cnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3 aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZfdCkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3Nk cGQtcmVxdWVzdC5jOjIzNzoxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZl cnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3 aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJfdCkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJu aW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAtY2xpZW50LmM6MzUzOjE0OiB3YXJuaW5nOiBBY2Nlc3Mg dG8gZmllbGQgJ2NiJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIK ICAgICAgICAoKmN0eHQpLT5jYiA9IGNiOwogICAgICAgIH5+fn5+fn5+fn5+fl5+fn4KMSB3YXJu aW5nIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRh W2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1s LmM6MzA2OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5l ZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozNDQ6MTE6 IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL2dhdHQt ZGF0YWJhc2UuYzoxMTcxOjEwOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2JpdHMnIGR1cmlu ZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIHVpbnQ4X3QgYml0c1td ID0geyBCVF9HQVRUX0NIUkNfQ0xJX0ZFQVRfUk9CVVNUX0NBQ0hJTkcsCiAgICAgICAgICAgICAg ICBefn5+ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJu aW5nIGdlbmVyYXRlZC4Kc3JjL2dhdHQtY2xpZW50LmM6MTU2OToyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgbm90aWZ5X2NsaWVudF91bnJlZihjbGll bnQpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo5NToyOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFz c2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIG1lbWNweSh0 bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRyYW5zZmVyLmM6NDIzOjc6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAoIWdfc2xpc3RfZmluZCh0cmFu c2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgptZXNoL21haW4uYzoxNjI6Mzogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdvcHRhcmcnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIG9w dGFyZyArPSBzdHJsZW4oImF1dG8iKTsKICAgICAgICAgICAgICAgIF4gICAgICAgICB+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpsaWIvYmx1ZXRvb3RoL2hjaS5jOjkzOjQ6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgIHB0ciArPSBzcHJpbnRmKHB0ciwgIiVzIiwgbS0+c3RyKTsKICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBn ZW5lcmF0ZWQuCmNsaWVudC9wbGF5ZXIuYzoyMzYzOjg6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBw YXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAg ICBpZiAoIXN0cmNtcChlcC0+cGF0aCwgcGF0dGVybikpCiAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY2xpZW50L3BsYXllci5jOjM2NDA6MTY6IHdhcm5pbmc6 IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwn CiAgICAgICAgY29kZWMtPm5hbWUgPSBzdHJkdXAobmFtZSk7CiAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmdkYnVzL3dhdGNoLmM6MjI2OjM6 IHdhcm5pbmc6IEF0dGVtcHQgdG8gZnJlZSByZWxlYXNlZCBtZW1vcnkKICAgICAgICAgICAgICAg IGdfZnJlZShsLT5kYXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgpsaWIvYmx1ZXRvb3RoL3NkcC5jOjUwOToxNzogd2FybmluZzogRGVyZWZl cmVuY2Ugb2YgdW5kZWZpbmVkIHBvaW50ZXIgdmFsdWUKICAgICAgICAgICAgICAgIHVpbnQ4X3Qg ZHRkID0gKih1aW50OF90ICopIGR0ZHNbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6NTM5OjE3OiB3YXJuaW5n OiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQgcG9pbnRlciB2YWx1ZQogICAgICAgICAgICAgICAg dWludDhfdCBkdGQgPSAqKHVpbnQ4X3QgKikgZHRkc1tpXTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzoxODkxOjI2 OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnYXAnCiAg ICAgICAgZm9yICg7IHBkbGlzdDsgcGRsaXN0ID0gcGRsaXN0LT5uZXh0KSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6MTkwNTo2OiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncGRzJwogICAg ICAgICAgICAgICAgYXAgPSBzZHBfbGlzdF9hcHBlbmQoYXAsIHBkcyk7CiAgICAgICAgICAgICAg ICB+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvYmx1ZXRvb3RoL3NkcC5jOjE5NTA6 MTA6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICd1Jwog ICAgICAgICAgICAgICAgICAgICAgICAqc2VxcCA9IHNkcF9saXN0X2FwcGVuZCgqc2VxcCwgdSk7 CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpsaWIvYmx1ZXRvb3RoL3NkcC5jOjIwNTU6NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2Yg bWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2xhbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIHNkcF9s aXN0X2ZyZWUoKmxhbmdTZXEsIGZyZWUpOwogICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6MjE0NDo5OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVh ayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncHJvZkRlc2MnCiAgICAgICAgcmV0dXJuIDA7CiAg ICAgICAgICAgICAgIF4KbGliL2JsdWV0b290aC9zZHAuYzozMjc2Ojg6IHdhcm5pbmc6IFBvdGVu dGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwU3ZjUmVjJwogICAgICAgICAgICAg ICAgcFNlcSA9IHNkcF9saXN0X2FwcGVuZChwU2VxLCBwU3ZjUmVjKTsKICAgICAgICAgICAgICAg IH5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAu YzozMjc3Ojk6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5 ICdwU2VxJwogICAgICAgICAgICAgICAgcGRhdGEgKz0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICAg ICAgICAgICAgIH5+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzo0 NjEzOjEzOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAn cmVjX2xpc3QnCiAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHNjYW5uZWQgPCBhdHRy X2xpc3RfbGVuICYmIHBkYXRhX2xlbiA+IDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6NDkwOTo0MDogd2FybmluZzogUG90ZW50 aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3RzZXEnCiAgICAgICAgZm9yIChkID0g c2RwZGF0YS0+dmFsLmRhdGFzZXE7IGQ7IGQgPSBkLT5uZXh0KSB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmxpYi9ibHVldG9vdGgvc2RwLmM6NDk0NTo4 OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc3Vic2Vx JwogICAgICAgICAgICAgICAgdHNlcSA9IHNkcF9saXN0X2FwcGVuZCh0c2VxLCBzdWJzZXEpOwog ICAgICAgICAgICAgICAgfn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdh cm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ0NzoyMTogd2Fybmlu ZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdp c3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NjkyOjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxl dGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5MjoyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29w X2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MTA5ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTI5MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNz LCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzMjo2OiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkp IHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MTYzNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzoxNjkzOjU2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgbm90aWZ5X2RhdGEtPmNocmMtPmNjY193cml0ZV9pZCA9IG5vdGlmeV9kYXRh LT5hdHRfaWQgPSBhdHRfaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn4gXgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Njo2 OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJl YWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MjE1NDo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjMzMzI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBm YWxzZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzM1NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fgoxMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYmFw LmM6MTUyOTo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgYmFwID0gYnRfYmFwX3JlZl9zYWZlKGJhcCk7CiAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9iYXAuYzoyMzQwOjIwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmV0dXJuIHF1ZXVlX2ZpbmQoc3RyZWFtLT5iYXAt PnN0cmVhbXMsIE5VTEwsIHN0cmVhbSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCm1vbml0b3IvbDJjYXAuYzoxNjc2 OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZGF0YScgaXMgbmV2ZXIgcmVhZAogICAgICAg ICAgICAgICAgICAgICAgICBkYXRhICs9IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgICB+fn4KbW9uaXRvci9sMmNhcC5jOjE2Nzc6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdzaXplJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgLT0gbGVu OwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgIH5+fgoyIHdhcm5pbmdzIGdlbmVyYXRl ZC4KbW9uaXRvci9od2RiLmM6NTk6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBp cyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAg ICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjY0OjI6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1 ZGV2X3VucmVmKHVkZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3Iv aHdkYi5jOjEwNjoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVyIHJl YWQKICAgICAgICBod2RiID0gdWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAgICB+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KbW9uaXRvci9od2RiLmM6MTExOjI6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVm KHVkZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJh dGVkLgp0b29scy9ibHVlbW9vbi5jOjExMDI6ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3Nl ZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHN0cmxlbihvcHRhcmcpID4gMyAmJiAhc3RybmNtcChvcHRhcmcsICJoY2kiLCAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBn ZW5lcmF0ZWQuCnRvb2xzL21lc2hjdGwuYzozMjY6MTk6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVs ZCAnbWVzaF9kZXZpY2VzJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50 ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdkZWZhdWx0X2N0cmwnKQogICAgICAgIGdfbGlzdF9m cmVlX2Z1bGwoZGVmYXVsdF9jdHJsLT5tZXNoX2RldmljZXMsIGdfZnJlZSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9tZXNoY3RsLmM6 NzYyOjI6IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUKICAgICAgICBidF9zaGVsbF9wcmludGYoIkF0dGVtcHRpbmcgdG8gZGlzY29u bmVjdCBmcm9tICVzXG4iLCBhZGRyKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9tZXNoY3RsLmM6MTk1Nzoy OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGxl biA9IGxlbiArIGV4dHJhICsgc3RybGVuKCJsb2NhbF9ub2RlLmpzb24iKTsKICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5l cmF0ZWQuCkluIGZpbGUgaW5jbHVkZWQgZnJvbSB0b29scy9tZXNoLWdhdHQvY3J5cHRvLmM6MzI6 Ci4vc3JjL3NoYXJlZC91dGlsLmg6MjkxOjk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFy Z3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICByZXR1cm4gYmUzMl90b19j cHUoZ2V0X3VuYWxpZ25lZCgoY29uc3QgdWludDMyX3QgKikgcHRyKSk7CiAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vc3Jj L3NoYXJlZC91dGlsLmg6NDE6MjY6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJfdG9f Y3B1JwojZGVmaW5lIGJlMzJfdG9fY3B1KHZhbCkgYnN3YXBfMzIodmFsKQogICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYnl0ZXN3YXAuaDozNDoyMTog bm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYnN3YXBfMzInCiNkZWZpbmUgYnN3YXBfMzIoeCkg X19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gdG9vbHMvbWVzaC1nYXR0L2NyeXB0by5jOjMyOgouL3NyYy9zaGFyZWQv dXRpbC5oOjMwMTo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmV0dXJuIGJlNjRfdG9fY3B1KGdldF91bmFsaWdu ZWQoKGNvbnN0IHVpbnQ2NF90ICopIHB0cikpOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgouL3NyYy9zaGFyZWQvdXRpbC5o OjQyOjI2OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTY0X3RvX2NwdScKI2RlZmluZSBi ZTY0X3RvX2NwdSh2YWwpIGJzd2FwXzY0KHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2J5dGVzd2FwLmg6Mzc6MjE6IG5vdGU6IGV4cGFuZGVk IGZyb20gbWFjcm8gJ2Jzd2FwXzY0JwojZGVmaW5lIGJzd2FwXzY0KHgpIF9fYnN3YXBfNjQgKHgp CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CmVsbC91dGlsLmM6ODUzOjg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEg Z2FyYmFnZSB2YWx1ZQogICAgICAgIGlmICh4ID4gVUlOVDhfTUFYKQogICAgICAgICAgICB+IF4K ZWxsL3V0aWwuYzo4NzE6ODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnPicgaXMgYSBn YXJiYWdlIHZhbHVlCiAgICAgICAgaWYgKHggPiBVSU5UMTZfTUFYKQogICAgICAgICAgICB+IF4K MiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVsbC9wZW0uYzoxMzE6ODogd2FybmluZzogRGVyZWZlcmVu Y2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZW9sJykKICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCplb2wgPT0gJ1xyJyB8fCAqZW9sID09ICdcbicpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+CmVsbC9wZW0uYzoxNjY6MTg6IHdhcm5pbmc6IERlcmVm ZXJlbmNlIG9mIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2VvbCcpCiAgICAg ICAgICAgICAgICBpZiAoYnVmX2xlbiAmJiAqZW9sID09ICdccicgJiYgKmJ1Zl9wdHIgPT0gJ1xu JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fgplbGwvcGVtLmM6MTY2OjM0 OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlh YmxlICdidWZfcHRyJykKICAgICAgICAgICAgICAgIGlmIChidWZfbGVuICYmICplb2wgPT0gJ1xy JyAmJiAqYnVmX3B0ciA9PSAnXG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn4KZWxsL3BlbS5jOjMwNDoxMTogd2FybmluZzogMXN0IGZ1 bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHJl c3VsdCA9IHBlbV9sb2FkX2J1ZmZlcihmaWxlLmRhdGEsIGZpbGUuc3Quc3Rfc2l6ZSwKICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVs bC9wZW0uYzo0Njk6OTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4g dW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGxpc3QgPSBsX3BlbV9sb2FkX2NlcnRpZmljYXRl X2xpc3RfZnJvbV9kYXRhKGZpbGUuZGF0YSwKICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjUgd2FybmluZ3MgZ2VuZXJhdGVkLgpl bGwvY2VydC5jOjY0NTo0MTogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdhc24xX2xlbicgcmVz dWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJp YWJsZSAnY2VydCcpCiAgICAgICAga2V5ID0gbF9rZXlfbmV3KExfS0VZX1JTQSwgY2VydC0+YXNu MSwgY2VydC0+YXNuMV9sZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmVsbC9ndmFyaWFu dC11dGlsLmM6MTQzOjE4OiB3YXJuaW5nOiBUaGUgbGVmdCBvcGVyYW5kIG9mICc+JyBpcyBhIGdh cmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWdubWVudCA+IG1heF9h bGlnbm1lbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn4gXgplbGwvZ3Zh cmlhbnQtdXRpbC5jOjQ1Njo1OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIK ICAgICAgICAgICAgICAgICAgICAgICAgIWNoaWxkcmVuWzBdLmZpeGVkX3NpemUpIHsKICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCmVtdWxhdG9yL3NlcmlhbC5jOjE1MDoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBp cyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxp emVkX3Zhcih0eXBlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KZW11bGF0b3Ivc2VyaWFsLmM6MTUwOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J3R5cGUnIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIGVu dW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zhcih0eXBlKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fgplbXVsYXRvci9zZXJpYWwuYzozNjozMDogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0 aWFsaXplZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgfgpl bXVsYXRvci9zZXJpYWwuYzoyMTM6Mjogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFn ZSBvciB1bmRlZmluZWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIo ZGV2X3R5cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KZW11bGF0b3Ivc2VyaWFsLmM6MjEzOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2Rldl90eXBlJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAgICAg ICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5cGUpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgplbXVsYXRvci9zZXJpYWwu YzozNjozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNk ZWZpbmUgdW5pbml0aWFsaXplZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeICAgfgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL2VjYy1leHRlcm5hbC5jOjc3OjEx OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg ICAgICAgICAgZGVzdFtpXSA9IHNyY1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+ fn4KZWxsL2VjYy1leHRlcm5hbC5jOjE2MDoxODogd2FybmluZzogVGhlIHJpZ2h0IG9wZXJhbmQg b2YgJy0nIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgZGlmZiA9IGxlZnRbaV0g LSByaWdodFtpXSAtIGJvcnJvdzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+ fn5+fn4KZWxsL2VjYy1leHRlcm5hbC5jOjIyNzoxNDogd2FybmluZzogMm5kIGZ1bmN0aW9uIGNh bGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAg ICAgICBwcm9kdWN0ID0gbXVsXzY0XzY0KGxlZnRbaV0sIHJpZ2h0W2sgLSBpXSk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgplbGwvZWNjLWV4dGVybmFsLmM6NDA4Ojk6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh cmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgdG1wWzFdID0gcHJvZHVjdFszXTsKICAgICAgICAg ICAgICAgXiB+fn5+fn5+fn5+CmVsbC9lY2MtZXh0ZXJuYWwuYzo0MzU6MjI6IHdhcm5pbmc6IFRo ZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIHRtcFsxXSA9 IHByb2R1Y3RbM10gJiAweGZmZmZmZmZmMDAwMDAwMDB1bGw7CiAgICAgICAgICAgICAgICAgfn5+ fn5+fn5+fiBeCmVsbC9lY2MtZXh0ZXJuYWwuYzo0ODM6MjI6IHdhcm5pbmc6IFRoZSBsZWZ0IG9w ZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIHRtcFsxXSA9IHByb2R1Y3Rb NV0gJiAweGZmZmZmZmZmMDAwMDAwMDB1bGw7CiAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fiBe CmVsbC9lY2MtZXh0ZXJuYWwuYzo2ODg6Mjg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2Yg Jz4+JyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgIHRtcFtpXSA9IChwcm9kdWN0 WzggKyBpXSA+PiA5KSB8IChwcm9kdWN0WzkgKyBpXSA8PCA1NSk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgfn5+fn5+fn5+fn5+fn4gXgo3IHdhcm5pbmdzIGdlbmVyYXRlZC4KZW11bGF0b3Iv c2VydmVyLmM6MjMwOjI6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5k ZWZpbmVkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgplbXVsYXRvci9z ZXJ2ZXIuYzoyMzA6MzY6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAndHlwZScgZHVyaW5nIGl0 cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVu aW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+CmVtdWxhdG9yL3NlcnZlci5jOjM2OjMwOiBub3RlOiBleHBhbmRlZCBmcm9t IG1hY3JvICd1bmluaXRpYWxpemVkX3ZhcicKI2RlZmluZSB1bmluaXRpYWxpemVkX3Zhcih4KSB4 ID0geAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICB+CjIgd2FybmluZ3MgZ2VuZXJh dGVkLgplbXVsYXRvci9iMWVlLmM6MjU4OjM6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1l bW9yeSBwb2ludGVkIHRvIGJ5ICdzZXJ2ZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7 CiAgICAgICAgICAgICAgICBefn5+fn5+CmVtdWxhdG9yL2IxZWUuYzoyNTg6Mzogd2FybmluZzog UG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3NuaWZmZXJfcG9ydCcKICAg ICAgICAgICAgICAgIGludCBvcHQ7CiAgICAgICAgICAgICAgICBefn5+fn5+CmVtdWxhdG9yL2Ix ZWUuYzoyODk6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmdjJyBpcyBuZXZlciByZWFk CiAgICAgICAgYXJnYyA9IGFyZ2MgLSBvcHRpbmQ7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+ fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LWhlYWRlci5jOjk1OjI6IHdhcm5p bmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51 bGwnCiAgICAgICAgbWVtY3B5KHRvLCBmcm9tLCBjb3VudCk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtdHJhbnNmZXIuYzo0 MjM6Nzogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlm ICghZ19zbGlzdF9maW5kKHRyYW5zZmVycywgdHJhbnNmZXIpKQogICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmF0dHJpYi9n YXR0LmM6OTcwOjI6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRv IGJ5ICdsb25nX3dyaXRlJwogICAgICAgIHJldHVybiBwcmVwYXJlX3dyaXRlKGxvbmdfd3JpdGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5l cmF0ZWQuCmVtdWxhdG9yL2J0ZGV2LmM6NjY2MjoyMDogd2FybmluZzogQWNjZXNzIHRvIGZpZWxk ICdsaW5rJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRl ZCBmcm9tIHZhcmlhYmxlICdhY2wnKQogICAgICAgICAgICAgICAgbGVfcGFzdF9yZWNlaXZlZChh Y2wtPmxpbmssIHBhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ CmVtdWxhdG9yL2J0ZGV2LmM6Njc2MjoyNTogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdsaW5r JyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9t IHZhcmlhYmxlICdhY2wnKQogICAgICAgICAgICAgICAgbGVfcGFzdF9pbmZvX3JlY2VpdmVkKGFj bC0+bGluaywgZWEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KcHJvZmlsZXMvcmFuZ2luZy9yYXAuYzogSW4gZnVu Y3Rpb24g4oCYcmFwX2FjY2VwdOKAmToKcHJvZmlsZXMvcmFuZ2luZy9yYXAuYzo0MjE6NDogZXJy b3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmGJ0X3JhcF9zZXRfY29ubl9oYW5k bGXigJkKICA0MjEgfCAgICBidF9yYXBfc2V0X2Nvbm5faGFuZGxlKGRhdGEtPmhjaV9zbSwKICAg ICAgfCAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBwcm9m aWxlcy9yYW5naW5nL3JhcC5jOjM1OgouL3NyYy9zaGFyZWQvcmFwLmg6MjE1OjY6IG5vdGU6IGRl Y2xhcmVkIGhlcmUKICAyMTUgfCBib29sIGJ0X3JhcF9zZXRfY29ubl9oYW5kbGUodm9pZCAqaGNp X3NtLCBzdHJ1Y3QgYnRfcmFwICpyYXAsIHVpbnQxNl90IGhhbmRsZSwKICAgICAgfCAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KbWFrZVsxXTogKioqIFtNYWtlZmlsZTo4OTkzOiBwcm9maWxl cy9yYW5naW5nL2JsdWV0b290aGQtcmFwLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcg Zm9yIHVuZmluaXNoZWQgam9icy4uLi4KcHJvZmlsZXMvYXVkaW8vbWVkaWEuYzoxMTEyOjc6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlm IChyZXEtPmNiICE9IHBhY19zZWxlY3RfY2IpIHsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDE3MjogYWxsXSBFcnJv ciAyCgoKaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6L2JsdWV6L3B1bGwvMjIwMAoKLS0tClJlZ2Fy ZHMsCkxpbnV4IEJsdWV0b290aAoK --===============1336548188858408427==--