From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.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 D054515A85A for ; Thu, 22 May 2025 17:01:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747933266; cv=none; b=TkxqYUZTr3QpRAwbhRPideHJz+ReWzjxjtNISbUdVMHc7mgpusvqeQfp5XkeU8e96rFcZyRqQlat+6Ey634873rodq4l9Tu4U/pKMboOS04/z7S6PeUTrh7/+4Ha8I/gTPVltEs2od2n1hkn5ct0DvgvbfaZMjeiRRfT2PihyIo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747933266; c=relaxed/simple; bh=14HxvtcgdtL6FNel4bVnRZwd4XlwXZJ/wvzl5a3sihI=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=hyboQIIZlCm2AIXv7a72qy22LXP/70G/D2VG7cPpu5PKHAYoftnaWex+o8HBaIoAmmNzTcWvRZ/NAxJDs+XROPI9ucpXB5zTzuCsH96VLoRnvBh2y8sxatilUVGbVTsA3XBMBYHbbVWKyjAJmPpM6d82c9fulBquUQGVA1WK0FE= 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=GdIYywuN; arc=none smtp.client-ip=209.85.160.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GdIYywuN" Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-4769aef457bso95110251cf.2 for ; Thu, 22 May 2025 10:01:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747933262; x=1748538062; 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=14HxvtcgdtL6FNel4bVnRZwd4XlwXZJ/wvzl5a3sihI=; b=GdIYywuN/RwhYxvsZB9ZMUq71Xa7Fn4nhCBL/IQt2/6quDLseNeyX8CZHUaMA3LWfv pk91MoIaopng5ueYkgnn5l5Jxq7g0kXHE1PO7Y+KNTdY/xQRjkvgpzMfhDkMgZr4BT31 sHGJpbV9T0CQEtMvlDb5X2Exq6FMPMuYNMucVOq0P5ySkVHHzjNuyuIDTT2x1JV5tVIM 2G9jeuXqSu2I7ixR34C/xlcqQLFPe8XIfFurZ+xerblKvgz1PybXlypm/IQE9Xm16ToN XucKIRFHfAuC2GWQGsAkDmZonxDSC6lwaJ05/Qmfm20r+eithM+mxYjq9iQGQRkQM/Zz pL5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747933262; x=1748538062; 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=14HxvtcgdtL6FNel4bVnRZwd4XlwXZJ/wvzl5a3sihI=; b=DhzL/bOf7ymy/U4fqmaZjdivaBPdhZDCpuIvDLL7u4wgO8Yl+i9WSsNUFM7zITh7xV XAknW35+B335ob/cTRtT4ZWGM86LkP0SyXlDfHN56Se66vsqSa7y7T/XJpiDTh8yxzg7 uOnlJQX1aIsLgrqRejCr5gabWlHJxByU1ijL2T4MLHA9F4A5vevw3HbNu8/LzBpyBZ3y zuUIQxtxSvmPETCkz5nvOc+t+QMbiTw5amJu5m6L/GbNLGIzcZ5iZLhdL03JUmtWW4EX lKoSfB+MEVrENVf6CTPp2iLEp2aWiqKOcbTn0mWy4brFp3mF4xRc7C6+wTe5YStSpEwe ALtg== X-Gm-Message-State: AOJu0YxfBStLiHYqgli5zqiP8gj1ZAA0ZnKn2qxY0ItMj9DSotvagmzn KmM1wPz+eo2zAs59k2+heNho/Tc5lEjsxJ4OM/2YOUaxVW9PTmyGN01jkaWKbL4e X-Gm-Gg: ASbGncubYq7VxQm3CXlb3EA/p/Rr/UjUQI6rBzJ+HCaGnqn9n2PMHEQE8COdJaXExR9 harFHysQAN1JiV7StJRXRsLE/JI/cGFuW1YXwVSHyop2V2ty2zS3Ygg/jMFikwrriJd1u16SRJO GsR82ZaSBJ5sttqHymlQqSoCpjTeCinTCjRXubczjQz6NKXx3TXFGpIrKzfn3BTgRZS6fcKeT7o CmCNPfOFehYI1HiXbk3Wj7HP++bntdIJwp0Yk8n+dcjZfCKtFAP6h4M9AjGMubPSZsNzoNlQDJy LJeo/NdNnHrHLdH/tMSorYEw5i4r2R/ghM64ExHHn2QIR3kqEN2aWDPPFVFkQfSfKg== X-Google-Smtp-Source: AGHT+IEIKNSyeckQ8jccPnW4CnrrYuKg38KoXlYyA+UztBaZZkyEJ7JYQu6ssxpnEKbeWHzsHdUX2g== X-Received: by 2002:ac8:6f1b:0:b0:48b:5656:bb01 with SMTP id d75a77b69052e-494ae352f98mr338380731cf.10.1747933261547; Thu, 22 May 2025 10:01:01 -0700 (PDT) Received: from [172.17.0.2] ([20.12.17.17]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-494ae4fd816sm100526601cf.50.2025.05.22.10.01.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 10:01:01 -0700 (PDT) Message-ID: <682f584d.c80a0220.300ea4.7a66@mx.google.com> Date: Thu, 22 May 2025 10:01:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============2266569999826153331==" 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, frederic.danis@collabora.com Subject: RE: Propagate disconnection reason In-Reply-To: <20250522154944.665655-2-frederic.danis@collabora.com> References: <20250522154944.665655-2-frederic.danis@collabora.com> Reply-To: linux-bluetooth@vger.kernel.org --===============2266569999826153331== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9OTY1NDYwCgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQRU5ESU5HICAgMC4yOCBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBF TkRJTkcgICAwLjg2IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDIwLjA1IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDgzLjA3IHNlY29uZHMKTWFrZUNoZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDMw MzEuNDIgc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBGQUlMICAgICAgNTMu OTcgc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgNjAuODMg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMTg5Ljg4IHNl Y29uZHMKYmx1ZXptYWtlZXh0ZWxsICAgICAgICAgICAgICAgRkFJTCAgICAgIDEwMC4xOSBzZWNv bmRzCkluY3JlbWVudGFsQnVpbGQgICAgICAgICAgICAgIFBFTkRJTkcgICAwLjIyIHNlY29uZHMK U2NhbkJ1aWxkICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDIyMC44MyBzZWNvbmRzCgpE ZXRhaWxzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1BhdGNoIC0g UEVORElORwpEZXNjOiBSdW4gY2hlY2twYXRjaC5wbCBzY3JpcHQKT3V0cHV0OgoKIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEdpdExpbnQgLSBQRU5ESU5HCkRlc2M6IFJ1biBn aXRsaW50Ck91dHB1dDoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVl ek1ha2UgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVy LmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI5MDc6NTog bm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFy LXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyOTA3IHwgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpzcmMvZGV2aWNlLmM6 IEluIGZ1bmN0aW9uIOKAmGVtaXRfZGlzY29ubmVjdF9yZWFzb27igJk6CnNyYy9kZXZpY2UuYzoz NzY0Ojc6IGVycm9yOiDigJhNR01UX0RFVl9ESVNDT05OX0FVVEhfRkFJTFVSReKAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhNR01UX0RF Vl9ESVNDT05OX1RJTUVPVVTigJk/CiAzNzY0IHwgIGNhc2UgTUdNVF9ERVZfRElTQ09OTl9BVVRI X0ZBSUxVUkU6CiAgICAgIHwgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAg ICAgfCAgICAgICBNR01UX0RFVl9ESVNDT05OX1RJTUVPVVQKc3JjL2RldmljZS5jOjM3NjQ6Nzog bm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZv ciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMTE2 Mzogc3JjL2JsdWV0b290aGQtZGV2aWNlLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcg Zm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjkxOiBhbGxdIEVy cm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IE1ha2VDaGVjayAtIEZB SUwKRGVzYzogUnVuIEJsdWV6IE1ha2UgQ2hlY2sKT3V0cHV0OgoKdW5pdC90ZXN0LWF2ZHRwLmM6 IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2 YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tp bmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJ biBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzo5ODk6NTogbm90ZTogdmFy aWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5n LWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTg5IHwgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpzcmMvZGV2aWNlLmM6IEluIGZ1bmN0 aW9uIOKAmGVtaXRfZGlzY29ubmVjdF9yZWFzb27igJk6CnNyYy9kZXZpY2UuYzozNzY0Ojc6IGVy cm9yOiDigJhNR01UX0RFVl9ESVNDT05OX0FVVEhfRkFJTFVSReKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhNR01UX0RFVl9ESVNDT05O X1RJTUVPVVTigJk/CiAzNzY0IHwgIGNhc2UgTUdNVF9ERVZfRElTQ09OTl9BVVRIX0ZBSUxVUkU6 CiAgICAgIHwgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAg ICBNR01UX0RFVl9ESVNDT05OX1RJTUVPVVQKc3JjL2RldmljZS5jOjM3NjQ6Nzogbm90ZTogZWFj aCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1 bmN0aW9uIGl0IGFwcGVhcnMgaW4KbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMTE2Mzogc3JjL2Js dWV0b290aGQtZGV2aWNlLm9dIEVycm9yIDEKbWFrZTogKioqIFtNYWtlZmlsZToxMjM0NjogY2hl Y2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IE1ha2VEaXN0 Y2hlY2sgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtlIERpc3RjaGVjawpPdXRwdXQ6CgpQYWNr YWdlIGN1cHMgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVy aGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGN1cHMucGMnCnRv IHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKTm8gcGFja2FnZSAnY3Vw cycgZm91bmQKLi4vLi4vc3JjL2RldmljZS5jOiBJbiBmdW5jdGlvbiDigJhlbWl0X2Rpc2Nvbm5l Y3RfcmVhc29u4oCZOgouLi8uLi9zcmMvZGV2aWNlLmM6Mzc2NDo3OiBlcnJvcjog4oCYTUdNVF9E RVZfRElTQ09OTl9BVVRIX0ZBSUxVUkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYTUdNVF9ERVZfRElTQ09OTl9USU1FT1VU4oCZPwog Mzc2NCB8ICBjYXNlIE1HTVRfREVWX0RJU0NPTk5fQVVUSF9GQUlMVVJFOgogICAgICB8ICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgTUdNVF9ERVZfRElT Q09OTl9USU1FT1VUCi4uLy4uL3NyYy9kZXZpY2UuYzozNzY0Ojc6IG5vdGU6IGVhY2ggdW5kZWNs YXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBp dCBhcHBlYXJzIGluCm1ha2VbMl06ICoqKiBbTWFrZWZpbGU6MTExNjM6IHNyYy9ibHVldG9vdGhk LWRldmljZS5vXSBFcnJvciAxCm1ha2VbMl06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpv YnMuLi4uCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NDY5MTogYWxsXSBFcnJvciAyCm1ha2U6ICoq KiBbTWFrZWZpbGU6MTIyNjc6IGRpc3RjaGVja10gRXJyb3IgMQojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKVGVzdDogQ2hlY2tWYWxncmluZCAtIEZBSUwKRGVzYzogUnVuIEJsdWV6IE1h a2UgQ2hlY2sgd2l0aCBWYWxncmluZApPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBm dW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyOTA3OjU6IG5vdGU6IHZh cmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2lu Zy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjkwNyB8IGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4Kc3JjL2RldmljZS5jOiBJbiBmdW5j dGlvbiDigJhlbWl0X2Rpc2Nvbm5lY3RfcmVhc29u4oCZOgpzcmMvZGV2aWNlLmM6Mzc2NDo3OiBl cnJvcjog4oCYTUdNVF9ERVZfRElTQ09OTl9BVVRIX0ZBSUxVUkXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYTUdNVF9ERVZfRElTQ09O Tl9USU1FT1VU4oCZPwogMzc2NCB8ICBjYXNlIE1HTVRfREVWX0RJU0NPTk5fQVVUSF9GQUlMVVJF OgogICAgICB8ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAg ICAgTUdNVF9ERVZfRElTQ09OTl9USU1FT1VUCnNyYy9kZXZpY2UuYzozNzY0Ojc6IG5vdGU6IGVh Y2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBm dW5jdGlvbiBpdCBhcHBlYXJzIGluCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTExNjM6IHNyYy9i bHVldG9vdGhkLWRldmljZS5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZp bmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6MTIzNDY6IGNoZWNrXSBFcnJvciAy CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwK RGVzYzogUnVuIHNtYXRjaCB0b29sIHdpdGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5 cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMx OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0 LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2 ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMv c2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZs ZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmls ZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUg c3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRo cm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5 cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9m IGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6 Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVu Y3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2 ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Z2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIz OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0 LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTU6MjU6 IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzog bm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2Fybmlu ZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6 IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5l LmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBu b24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9y ZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUv cmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnRvb2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6 IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVlbmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIu Yzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9saWIvYmx1ZXRvb3RoLmg6MjMyOjE1OiB3YXJu aW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCi4vbGliL2JsdWV0b290aC5oOjIzNzoz MTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5j OjYzNDozOTogd2FybmluZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2Vx MmJzZXEuYzo1NzoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRv b2xzL29iZXgtY2xpZW50LXRvb2wuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAv dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMu aDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzog d2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicK YW5kcm9pZC9hdmN0cC5jOjUwNTozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCmFuZHJvaWQvYXZjdHAuYzo1NTY6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozNzM6MjY6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozOTg6MjY6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzo0MTQ6MjQ6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxp Yi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRy b2lkL2F2cmNwLWxpYi5jOjE1ODM6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE2MTI6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE2Mzg6MzQ6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvZGV2aWNlLmM6IEluIGZ1bmN0aW9u IOKAmGVtaXRfZGlzY29ubmVjdF9yZWFzb27igJk6CnNyYy9kZXZpY2UuYzozNzY0Ojc6IGVycm9y OiDigJhNR01UX0RFVl9ESVNDT05OX0FVVEhfRkFJTFVSReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhNR01UX0RFVl9ESVNDT05OX1RJ TUVPVVTigJk/CiAzNzY0IHwgIGNhc2UgTUdNVF9ERVZfRElTQ09OTl9BVVRIX0ZBSUxVUkU6CiAg ICAgIHwgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAgICBN R01UX0RFVl9ESVNDT05OX1RJTUVPVVQKc3JjL2RldmljZS5jOjM3NjQ6Nzogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMTE2Mzogc3JjL2JsdWV0 b290aGQtZGV2aWNlLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNo ZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjkxOiBhbGxdIEVycm9yIDIKIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IGJsdWV6bWFrZWV4dGVsbCAtIEZBSUwKRGVz YzogQnVpbGQgQmx1ZXogd2l0aCBFeHRlcm5hbCBFTEwKT3V0cHV0OgoKc3JjL2RldmljZS5jOiBJ biBmdW5jdGlvbiDigJhlbWl0X2Rpc2Nvbm5lY3RfcmVhc29u4oCZOgpzcmMvZGV2aWNlLmM6Mzc2 NDo3OiBlcnJvcjog4oCYTUdNVF9ERVZfRElTQ09OTl9BVVRIX0ZBSUxVUkXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYTUdNVF9ERVZf RElTQ09OTl9USU1FT1VU4oCZPwogMzc2NCB8ICBjYXNlIE1HTVRfREVWX0RJU0NPTk5fQVVUSF9G QUlMVVJFOgogICAgICB8ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAg IHwgICAgICAgTUdNVF9ERVZfRElTQ09OTl9USU1FT1VUCnNyYy9kZXZpY2UuYzozNzY0Ojc6IG5v dGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3Ig ZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTExNjM6 IHNyYy9ibHVldG9vdGhkLWRldmljZS5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZv ciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY5MTogYWxsXSBFcnJv ciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBJbmNyZW1lbnRhbEJ1aWxk IC0gUEVORElORwpEZXNjOiBJbmNyZW1lbnRhbCBidWlsZCB3aXRoIHRoZSBwYXRjaGVzIGluIHRo ZSBzZXJpZXMKT3V0cHV0OgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFNj YW5CdWlsZCAtIEZBSUwKRGVzYzogUnVuIFNjYW4gQnVpbGQKT3V0cHV0OgoKc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lk KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjk5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNv ZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTEwMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNj ZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5NjoyOiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBs ZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM2MToy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292 ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MTYzNjo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTY0MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ3OjY6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9w KSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoyMTU1Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zl cnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6MzI0NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzozMjY2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzoxNTAyOjg6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBiYXAgPSBidF9i YXBfcmVmX3NhZmUoYmFwKTsKICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2JhcC5jOjIyNTM6MjA6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVM TCwgc3RyZWFtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ1MToyMTog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJf dW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Njk2OjI6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3Bf Y29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5Njoy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292 ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MTEwMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6MTI5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRf ZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM2MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBz dWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNjo2OiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFz aChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MTY0MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyMTQ3OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU1Ojg6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI0NDoyOiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9u Z19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjY2 OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1 ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdl bmVyYXRlZC4KdG9vbHMvaGNpYXR0YWNoLmM6ODE3Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2 YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0 aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9 IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCAxMCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODY1Ojc6IHdhcm5p bmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xv c2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdu JwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAg ICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFj aC5jOjg4Nzo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1 c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVh bGx5IHJlYWQgZnJvbSAnbicKICAgICAgICAgICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50 KGZkLCByZXNwLCAxMCkpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MDk6Nzogd2FybmluZzogQWx0 aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4 cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAg ICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAg ICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTMw Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4g dGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVh ZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkg PCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2hjaWF0dGFjaC5jOjk3NDo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRv ICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5l dmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVu dChmZCwgcmVzcCwgNikpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgo2IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzoxNTAyOjg6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBiYXAgPSBi dF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2JhcC5jOjIyNTM6MjA6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywg TlVMTCwgc3RyZWFtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL291aS5jOjUwOjI6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJf dW5yZWYoaHdkYik7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvb3Vp LmM6NTM6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICd1ZGV2JyBpcyBuZXZlciByZWFkCiAg ICAgICAgdWRldiA9IHVkZXZfdW5yZWYodWRldik7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+ fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3JmY29tbS5jOjIzNDozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGkgPSBl eGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjIzNDo3OiB3YXJuaW5nOiBOdWxsIHBv aW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAg ICAgICAgICAgaSA9IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MzU0Ojg6IHdh cm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBl bmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJv bSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8 IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo0OTc6MTQ6IHdhcm5pbmc6IEFz c2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgcmVxLmNoYW5uZWwg PSByYWRkci5yY19jaGFubmVsOwogICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+ fgp0b29scy9yZmNvbW0uYzo1MTU6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3Jl ZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUg aXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgoZmQg PSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAgICAg ICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjUgd2Fybmlu Z3MgZ2VuZXJhdGVkLgp0b29scy9oY2lkdW1wLmM6MTgwOjk6IHdhcm5pbmc6IFBvdGVudGlhbCBs ZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdkcCcKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoZmRzW2ldLmZkID09IHNvY2spCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fgp0b29scy9oY2lkdW1wLmM6MjQ4OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2 YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRoLT50c19zZWMgID0gaHRvYmwoZnJtLnRzLnR2X3NlYyk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9o Y2lkdW1wLmM6MzI2Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo YmUzMnRvaChkcC5mbGFncykgJiAweDAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19i c3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNp ZHVtcC5jOjM0MToyMDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4g dW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZybS5k YXRhX2xlbiA9IGJlMzJ0b2goZHAubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2 OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRv aCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0 b29scy9oY2lkdW1wLmM6MzQ2OjE0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVu dCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3Bjb2RlID0gYmUzMnRvaChkcC5mbGFncykgJiAweGZmZmY7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2Vu ZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZp bmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzg0OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBp cyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBmcm0uZGF0YV9s ZW4gPSBidG9ocyhkaC5sZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiB+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzozOTQ6MTE6IHdhcm5pbmc6IEFzc2lnbmVk IHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBmcm0ubGVuID0g ZnJtLmRhdGFfbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fgp0b29s cy9oY2lkdW1wLmM6Mzk4Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlz IGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgdHMgPSBiZTY0 dG9oKHBoLnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgov dXNyL2luY2x1ZGUvZW5kaWFuLmg6NTE6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Jl NjR0b2gnCiMgIGRlZmluZSBiZTY0dG9oKHgpIF9fYnN3YXBfNjQgKHgpCiAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0MDM6MTM6IHdhcm5pbmc6IDFz dCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAg ICAgICAgICAgICAgICAgICAgZnJtLmluID0gYmUzMnRvaChkcC5mbGFncykgJiAweDAxOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1 ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMg IGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0MDg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGZybS5p biA9IGRoLmluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fgp0b29scy9o Y2lkdW1wLmM6NDM3Ojc6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFt ZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgZmQgPSBvcGVuKGZpbGUsIG9wZW5fZmxh Z3MsIDA2NDQpOwogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxMSB3 YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRvb2wuYzozNTA6Nzogd2FybmluZzogNXRoIGZ1 bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHNr ID0gZG9fY29ubmVjdChjdGwsIGRldl9pZCwgJnNyYywgJmRzdCwgcHNtLCAoMSA8PCBDTVRQX0xP T1BCQUNLKSk7CiAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2Rw LXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRl ZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAg ICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDA6MTE6IHdhcm5pbmc6IEFz c2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAg ICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMzODoxMTogd2FybmluZzogQXNzaWduZWQgdmFs dWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFd ID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+ fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9zZHB0b29sLmM6OTQxOjI2OiB3YXJuaW5n OiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICd1 aW50MzJfdCcsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUg J2ludCcKICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbHVlX2ludCA9IG1hbGxv YyhzaXplb2YoaW50KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn4gICAgICAg ICAgICBefn5+fn4gfn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAx c3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAg ICAgICAgICAgICAgICAgICAgIGZyZWUoYWxsb2NBcnJheVtpXSk7CiAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjM3Nzc6Mjogd2Fybmlu ZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3NpLm5hbWUnCiAgICAg ICAgcmV0dXJuIGFkZF9zZXJ2aWNlKDAsICZzaSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjQxMTI6NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsg b2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2NvbnRleHQuc3ZjJwogICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgo0IHdhcm5p bmdzIGdlbmVyYXRlZC4KdG9vbHMvYXZ0ZXN0LmM6MjQzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjUzOjU6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjYyOjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6 Mjc2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzoyODM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjI5MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6Mjk3OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzozMDk6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0 KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzozMTM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjY6NTogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMzU6NTogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNDI6 NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzozNjQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzozNjg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNzc6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozODE6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTQ6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTg6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu Yzo0MDU6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjQxNTo0 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTgwOjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU4ODozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgaW52 YWxpZCA/IDIgOiAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjAyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCA0ICsgbWVkaWFfdHJhbnNwb3J0X3NpemUpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MTU6Mzog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjI1OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjYzNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NTI6Mzogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6NjY0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY3MzozOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2ODA6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs IDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6NzE2OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgQVZDVFBfSEVBREVSX0xFTkdUSCArIHNpemVvZihw bGF5X3ByZXNzZWQpKTsKICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9v bHMvYnRwcm94eS5jOjgzNjoxNTogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3Qg cGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAgICAgICAgdGNw X3BvcnQgPSBhdG9pKG9wdGFyZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+CnRvb2xzL2J0cHJveHkuYzo4Mzk6ODogd2FybmluZzogTnVsbCBwb2ludGVy IHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKHN0cmxlbihvcHRhcmcpID4gMyAmJiAhc3RybmNtcChvcHRhcmcsICJo Y2kiLCAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2Fy bmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jcmVhdGUtaW1hZ2UuYzo3NjozOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwog ICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9 IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo5MjozOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzox MDU6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAg IGZkID0gLTE7CiAgICAgICAgXiAgICB+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2hl Y2stc2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3B0cicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgcHRyID0gZmdldHMocmVzdWx0LCBzaXplb2YocmVzdWx0 KSwgZnApOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2dhdHQtc2VydmljZS5jOjI5NDoyOiB3 YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZh bHVlCiAgICAgICAgY2hyX3dyaXRlKGNociwgdmFsdWUsIGxlbik7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LWNsaWVu dC5jOjE4MjQ6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFk CiAgICAgICAgYXJndiArPSBvcHRpbmQ7CiAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LXNlcnZlci5jOjEyMTI6Mjogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJndiAtPSBvcHRpbmQ7CiAg ICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvb2JleC1zZXJ2 ZXItdG9vbC5jOjEzMzoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFy YW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwg T19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT0NUVFksIDA2MDApOwogICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvb2Jl eC1zZXJ2ZXItdG9vbC5jOjE5MjoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAx c3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4o bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSwgMCk7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9i dHBjbGllbnRjdGwuYzo0MDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdiaXQnIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgIGJpdCA9IDA7CiAgICAgICAgICAgICAgICBeICAgICB+ CnRvb2xzL2J0cGNsaWVudGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3Nl ZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3At PmRhdGEsIGFkX2RhdGEsIGFkX2xlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEz OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBv ZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQg dHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBt YWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEz OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBv ZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQg dHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBt YWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KYW5k cm9pZC9hdnJjcC1saWIuYzoxOTY4OjM6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3Vt ZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgIGdfZnJlZSh0ZXh0 W2ldKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVk Lgpwcm9maWxlcy9hdWRpby9hdmR0cC5jOjg5MzoyNTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdf c2xpc3RfcmVtb3ZlKHNlc3Npb24tPnByaW9fcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpwcm9maWxlcy9hdWRpby9hdmR0cC5jOjkwMDoyNDogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1ZXVlID0g Z19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hMmRwLmM6Mzc1Ojg6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlm ICghY2ItPnJlc3VtZV9jYikKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgpwcm9m aWxlcy9hdWRpby9hMmRwLmM6MzI2OToyMDogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdzdGFy dGluZycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQg ZnJvbSB2YXJpYWJsZSAnc3RyZWFtJykKICAgICAgICAgICAgICAgIHN0cmVhbS0+c3RhcnRpbmcg PSBUUlVFOwogICAgICAgICAgICAgICAgfn5+fn5+ICAgICAgICAgICBeCnByb2ZpbGVzL2F1ZGlv L2EyZHAuYzozMjcyOjg6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnc3VzcGVuZGluZycgcmVz dWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJp YWJsZSAnc3RyZWFtJykKICAgICAgICAgICAgICAgIGlmICghc3RyZWFtLT5zdXNwZW5kaW5nICYm IHN0cmVhbS0+c3VzcGVuZF90aW1lcikgewogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYTJkcC5jOjMzMzI6MjI6IHdhcm5pbmc6IEFjY2VzcyB0 byBmaWVsZCAnc3VzcGVuZGluZycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBw b2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnc3RyZWFtJykKICAgICAgICAgICAgICAgIHN0 cmVhbS0+c3VzcGVuZGluZyA9IFRSVUU7CiAgICAgICAgICAgICAgICB+fn5+fn4gICAgICAgICAg ICAgXgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjY0NDozOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBo ZHBfdG1wX2RjX2RhdGFfdW5yZWYoZGNfZGF0YSk7CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjgwMDoxOTogd2Fybmlu ZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgcGF0aCA9 IGdfc3RyZHVwKGNoYW4tPnBhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjE3Nzk6Njogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGRwX3RtcF9kY19kYXRhX3JlZihoZHBfY29ubiksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxl cy9oZWFsdGgvaGRwLmM6MTgzNjozMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIHJlcGx5ID0gZ19kYnVzX2NyZWF0ZV9lcnJvcihkYXRhLT5tc2csIEVS Uk9SX0lOVEVSRkFDRSAiLkhlYWx0aEVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9oZWFsdGgv aGRwX3V0aWwuYzoxMDUyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBjb25uX2RhdGEtPmZ1bmMoY29ubl9kYXRhLT5kYXRhLCBnZXJyKTsKICAgICAg ICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KcHJvZmlsZXMvYXVkaW8vYXZy Y3AuYzoxOTYxOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnb3BlcmFuZHMnIGlzIG5ldmVy IHJlYWQKICAgICAgICBvcGVyYW5kcyArPSBzaXplb2YoKnBkdSk7CiAgICAgICAgXiAgICAgICAg ICAgfn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmF0dHJpYi9nYXR0LmM6OTcwOjI6 IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdsb25nX3dy aXRlJwogICAgICAgIHJldHVybiBwcmVwYXJlX3dyaXRlKGxvbmdfd3JpdGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9z ZHBkLXJlcXVlc3QuYzoyMTE6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252 ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUg d2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICd1aW50MTZfdCcKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWludDE2X3QpKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CnNyYy9z ZHBkLXJlcXVlc3QuYzoyMzk6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252 ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUg d2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICd1aW50MzJfdCcKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWludDMyX3QpKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CjIgd2Fy bmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwLWNsaWVudC5jOjM1MzoxNDogd2FybmluZzogQWNjZXNz IHRvIGZpZWxkICdjYicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVy CiAgICAgICAgKCpjdHh0KS0+Y2IgPSBjYjsKICAgICAgICB+fn5+fn5+fn5+fn5efn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCnNyYy9nYXR0LWRhdGFiYXNlLmM6MTE3MzoxMDogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdiaXRzJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJl YWQKICAgICAgICB1aW50OF90IGJpdHNbXSA9IHsgQlRfR0FUVF9DSFJDX0NMSV9GRUFUX1JPQlVT VF9DQUNISU5HLAogICAgICAgICAgICAgICAgXn5+fiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zZHAteG1sLmM6MTI2 OjEwOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAg ICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAg XiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMwMDoxMTogd2FybmluZzogQXNzaWduZWQgdmFs dWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFd ID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+ fn5+CnNyYy9zZHAteG1sLmM6MzM4OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kg KyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4KMyB3YXJu aW5ncyBnZW5lcmF0ZWQuCnNyYy9kZXZpY2UuYzogSW4gZnVuY3Rpb24g4oCYZW1pdF9kaXNjb25u ZWN0X3JlYXNvbuKAmToKc3JjL2RldmljZS5jOjM3NjQ6NzogZXJyb3I6IOKAmE1HTVRfREVWX0RJ U0NPTk5fQVVUSF9GQUlMVVJF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKTsgZGlkIHlvdSBtZWFuIOKAmE1HTVRfREVWX0RJU0NPTk5fVElNRU9VVOKAmT8KIDM3NjQg fCAgY2FzZSBNR01UX0RFVl9ESVNDT05OX0FVVEhfRkFJTFVSRToKICAgICAgfCAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICB8ICAgICAgIE1HTVRfREVWX0RJU0NPTk5f VElNRU9VVApzcmMvZGV2aWNlLmM6Mzc2NDo3OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRp ZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBp bgptYWtlWzFdOiAqKiogW01ha2VmaWxlOjExMTYzOiBzcmMvYmx1ZXRvb3RoZC1kZXZpY2Uub10g RXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtl OiAqKiogW01ha2VmaWxlOjQ2OTE6IGFsbF0gRXJyb3IgMgoKCi0tLQpSZWdhcmRzLApMaW51eCBC bHVldG9vdGgKCg== --===============2266569999826153331==--