Received: by 2002:ab2:3141:0:b0:1ed:23cc:44d1 with SMTP id i1csp1051174lqg; Sat, 2 Mar 2024 13:06:28 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVXkG86OjF0cmjh87dl2yeW8Xp9mlx3pP1jTp3RjjDMtVKprO0EOgC06Fj27sXVu2sa2JkTv23o2swWmAw/5toLc8rONNS1MG/qwKSSdw== X-Google-Smtp-Source: AGHT+IHb1J6ca1d+goB92Im+1BCcO/YKAM9QmzB7ha18r2/lEv83FI7A5N3Q4Eyo+PhnHluJBh1j X-Received: by 2002:a17:902:e5cb:b0:1dd:138:4e0b with SMTP id u11-20020a170902e5cb00b001dd01384e0bmr1669610plf.40.1709413587752; Sat, 02 Mar 2024 13:06:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709413587; cv=pass; d=google.com; s=arc-20160816; b=l3GjIk/ND2pIsezAGTx8mNdsnrwrgdTs+JVvdUnxGrN0ICoxwLUw9FKDPiQyQ9IKjo FddZPG2bItIDKLEHpjFOsg1cYuG7DQgRSZkZMy1MZ9DmwWuDgyyILQ7CSl/35LBf0hTI nNYhHHIMjtAobgtjtr8GhsbMWnxQSPN24kQxN+TnNOK+Rzs+oHOH9Pa1wQSqlllbnsSX /LGD7keSDYfz1wc05KbE82hUVNzTBsG1KMgdCcbfs/KfmFAMHF0I3ZdOjTaZhbnhqsha WIVPYcZll/ugkuOsP6+P4lmrWZ51VzkhYipCnA0bpEP5tzuRSCFWFFiXSFMg7zt9doD7 gc1g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:subject:to:from:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=A9yVzJ//xBjW0aul5TqqUk3w/cnLGFewEaxpx+3lY0g=; fh=50eA2cUr6JbHRRnTLemQk1nKqLkbGirJqpFNu71PrKI=; b=YJXnj7e9X3BUKgw3sdTa5Xs40j8DXvSZdzRVKA4r5L6CtPyTRbScy8VBodV8dp7u0u r7M7/K4sAbM63LvJxCQViy4fnYigT7k+ggUQvrLPSwQdNj12ubn93cJXoI28ILEuHkQd Lg0+DJHnDoFoNUhwVaYLnhYyPT5/dtR2rcrS+v5yI8U+8pVO/h29x2Yl96hw+Aps5dws sueCRE3+3nDQAKJ1eernSe0OntMgT3WZp0j6iqlT6p1RwAhaConyPv5XqA5tL4sdSKVA wsg1DA96SbbPL35C2dDjIqsfnaIqS9obpTZQwm9HLBidCiVFUWS2Q29e4iWtZyRQp/qb DRBA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RV6rP344; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-2262-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-2262-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id m17-20020a170902db1100b001dd0034d236si855854plx.249.2024.03.02.13.06.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Mar 2024 13:06:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-2262-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RV6rP344; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-2262-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-2262-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 4D53A28302B for ; Sat, 2 Mar 2024 21:06:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D0F5A40C09; Sat, 2 Mar 2024 21:06:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RV6rP344" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) (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 2E90E17C69 for ; Sat, 2 Mar 2024 21:06:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709413582; cv=none; b=E9NpNbC8xB4rw5jQ5uwypt1OB1C8NPkljKyyCQ3i1G3JVDxYXnnkYV15ABjYPmCAfJQ38myit/uVfux5C10dh9ReFCV0UY2Rzl2F3SmbsE5nmQHGOMxzaPldmhAyz5z2hWOyOkLyWxqepEEeeyfK2Skjk7PwmCMn/p9ypSD0dTE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709413582; c=relaxed/simple; bh=A9yVzJ//xBjW0aul5TqqUk3w/cnLGFewEaxpx+3lY0g=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=IwUN9ggabHXo1eaooY2jQPJy9hQupHzXFaMweZL/frQHzZTY2erYuwpWkC+ukJggdJJoeYZF9kLXYiYBCBm7m5i5X3CwjynZ925YWDewRQyZBPQrGQ2huzBAZESwGXW5nGJvY0KiS1lFXU2I47tExsysdd+MdRbfXw1miFfOr+4= 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=RV6rP344; arc=none smtp.client-ip=209.85.167.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-3c1af1e8b7eso1737290b6e.2 for ; Sat, 02 Mar 2024 13:06:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709413579; x=1710018379; 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=A9yVzJ//xBjW0aul5TqqUk3w/cnLGFewEaxpx+3lY0g=; b=RV6rP344OA/nbR8LvvvCN0oIss4GBoEu/vwO5dXvQfYyi5EL2PB8EV836ydBgdG3AJ 7T6S5H+VcZ+79PCqjKs92fG7W8lyihlgSzsbB5er7YSEYhF+qsli9P+wh7C8U9rh/XTG beWpYXjbv4QfWkF/NzB4eV6M3djBXA8FP3S29bmTzNttDE0pIkAYwSDjO0MP0IBrH02O XheyYSy3aMkiQkRS9VBbzlVR/Kt9rnE1ziTJ6DgoWyU1YcneBXx0zHtXz0sOKlI34Mhf +84j6G44X+ZKE9WtG0fA7OBTLQhdmrCxCHkOv1mstKREMiBdC4mkHkGGq5c/2rlD0vc3 NmAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709413579; x=1710018379; 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=A9yVzJ//xBjW0aul5TqqUk3w/cnLGFewEaxpx+3lY0g=; b=QP4+8XmBukLsocLHe1HJZtRjw9Qq4OJfrwMspRuXJAshxbucNnXrfgbYVVXz5qJoap 4FyMImGPoTqrQJio9R9Kpxko8y9+Vqd9iuNJVqBDa4G/L3ly2QcK1fXNNPLacTKH20pR Pq1sps54mGzCy6iU74oJ/lfSbUqRFG3WjpjFPy1P8LvSk83ylgCAcXsEiZRUYgZWEC5V doobhzT9oIlgdKopnSHhbVxtgg/hIYPJGaAJzY7gariXidaXF0dcpEEy5hcrzx3qCPYh OeyptLXN3Uuh9jJVJQmRNj2o7CDiR5Uk/OQo0aAoj9SiRg6zD4/KsS/hPLZqGHTveu+v rVAg== X-Gm-Message-State: AOJu0YzPkIoaixHken9z6kp/WgQGX3XWgoZlg0Raf9xX3usfG5Be5Evb I86wJ9dGqO0EOt261Bj3vEgGVQNaS8soMIPqZWRC9b+zbOxOJfKZLq97BAel X-Received: by 2002:a05:6870:538f:b0:21e:e606:9217 with SMTP id h15-20020a056870538f00b0021ee6069217mr5005117oan.20.1709413578862; Sat, 02 Mar 2024 13:06:18 -0800 (PST) Received: from [172.17.0.2] ([20.88.15.123]) by smtp.gmail.com with ESMTPSA id l14-20020a056214028e00b0068fecdef142sm3323259qvv.130.2024.03.02.13.06.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Mar 2024 13:06:18 -0800 (PST) Message-ID: <65e394ca.050a0220.1a25a.eb56@mx.google.com> Date: Sat, 02 Mar 2024 13:06:18 -0800 (PST) Content-Type: multipart/mixed; boundary="===============7643899091824943973==" 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, pav@iki.fi Subject: RE: tests: add TX timestamping tests In-Reply-To: References: Reply-To: linux-bluetooth@vger.kernel.org --===============7643899091824943973== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODMxODIwCgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMS40NyBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAwLjgzIHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDI1LjczIHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDQ4LjUzIHNlY29uZHMKTWFrZUNoZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE0 MS45OSBzZWNvbmRzCk1ha2VEaXN0Y2hlY2sgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxNTku Njcgc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDAuNTgg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgOTAuNzkgc2Vj b25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgMjMuNDUgc2Vjb25k cwpJbmNyZW1lbnRhbEJ1aWxkICAgICAgICAgICAgICBGQUlMICAgICAgNjkwLjk5IHNlY29uZHMK U2NhbkJ1aWxkICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDU0My4yNCBzZWNvbmRzCgpE ZXRhaWxzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2UgLSBG QUlMCkRlc2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL2wyY2FwLXRlc3Rlci5jOiBJbiBm dW5jdGlvbiDigJhsMmNhcF90eF90aW1lc3RhbXBpbmfigJk6CnRvb2xzL2wyY2FwLXRlc3Rlci5j OjEyNjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHNv4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5j b21wbGV0ZSB0eXBlCiAxMjY0IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAg IHwgICAgICAgICBefn5+fn5+fn5+fn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NTo0OiBl cnJvcjog4oCYc3RydWN0IHNvX3RpbWVzdGFtcGluZ+KAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKA mGZsYWdz4oCZCiAxMjY1IHwgICAuZmxhZ3MgPSBsMmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAg ICAgfCAgICBefn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY1OjEyOiBlcnJvcjogZXhjZXNz IGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KIDEyNjUgfCAgIC5mbGFn cyA9IGwyZGF0YS0+c29fdGltZXN0YW1waW5nLAogICAgICB8ICAgICAgICAgICAgXn5+fn5+CnRv b2xzL2wyY2FwLXRlc3Rlci5jOjEyNjU6MTI6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZv ciDigJhzb+KAmSkKdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NDoyNTogZXJyb3I6IHN0b3JhZ2Ug c2l6ZSBvZiDigJhzb+KAmSBpc27igJl0IGtub3duCiAxMjY0IHwgIHN0cnVjdCBzb190aW1lc3Rh bXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn4KdG9vbHMvbDJj YXAtdGVzdGVyLmM6MTI2NDoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdl cnJvcj11bnVzZWQtdmFyaWFibGVdCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMg ZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwMzogdG9vbHMvbDJjYXAtdGVzdGVyLm9d IEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KdG9v bHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0 ZXIuYzoxMjcyMzo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVk IHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQK MTI3MjMgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+ Cm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY0NTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwpUZXN0OiBNYWtlQ2hlY2sgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtl IENoZWNrCk91dHB1dDoKCnRvb2xzL2wyY2FwLXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhsMmNh cF90eF90aW1lc3RhbXBpbmfigJk6CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyNjQ6OTogZXJyb3I6 IHZhcmlhYmxlIOKAmHNv4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAx MjY0IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAgICBefn5+ fn5+fn5+fn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NTo0OiBlcnJvcjog4oCYc3RydWN0 IHNvX3RpbWVzdGFtcGluZ+KAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGZsYWdz4oCZCiAxMjY1 IHwgICAuZmxhZ3MgPSBsMmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICBefn5+fgp0 b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY1OjEyOiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0 cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KIDEyNjUgfCAgIC5mbGFncyA9IGwyZGF0YS0+c29f dGltZXN0YW1waW5nLAogICAgICB8ICAgICAgICAgICAgXn5+fn5+CnRvb2xzL2wyY2FwLXRlc3Rl ci5jOjEyNjU6MTI6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhzb+KAmSkKdG9v bHMvbDJjYXAtdGVzdGVyLmM6MTI2NDoyNTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhzb+KA mSBpc27igJl0IGtub3duCiAxMjY0IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2 NDoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVzZWQtdmFy aWFibGVdCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06 ICoqKiBbTWFrZWZpbGU6NzgwMzogdG9vbHMvbDJjYXAtdGVzdGVyLm9dIEVycm9yIDEKbWFrZTog KioqIFtNYWtlZmlsZToxMjE4MDogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjClRlc3Q6IENoZWNrVmFsZ3JpbmQgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtl IENoZWNrIHdpdGggVmFsZ3JpbmQKT3V0cHV0OgoKdG9vbHMvbDJjYXAtdGVzdGVyLmM6IEluIGZ1 bmN0aW9uIOKAmGwyY2FwX3R4X3RpbWVzdGFtcGluZ+KAmToKdG9vbHMvbDJjYXAtdGVzdGVyLmM6 MTI2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYc2/igJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNv bXBsZXRlIHR5cGUKIDEyNjQgfCAgc3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAg fCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY1OjQ6IGVy cm9yOiDigJhzdHJ1Y3Qgc29fdGltZXN0YW1waW5n4oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg4oCY ZmxhZ3PigJkKIDEyNjUgfCAgIC5mbGFncyA9IGwyZGF0YS0+c29fdGltZXN0YW1waW5nLAogICAg ICB8ICAgIF5+fn5+CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyNjU6MTI6IGVycm9yOiBleGNlc3Mg ZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogMTI2NSB8ICAgLmZsYWdz ID0gbDJkYXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwgICAgICAgICAgICBefn5+fn4KdG9v bHMvbDJjYXAtdGVzdGVyLmM6MTI2NToxMjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9y IOKAmHNv4oCZKQp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY0OjI1OiBlcnJvcjogc3RvcmFnZSBz aXplIG9mIOKAmHNv4oCZIGlzbuKAmXQga25vd24KIDEyNjQgfCAgc3RydWN0IHNvX3RpbWVzdGFt cGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefgp0b29scy9sMmNh cC10ZXN0ZXIuYzoxMjY0OjI1OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHNv4oCZIFstV2Vy cm9yPXVudXNlZC12YXJpYWJsZV0KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3ODAzOiB0b29scy9sMmNhcC10ZXN0ZXIub10g RXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgp0b29s cy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rl ci5jOjEyNzIzOjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQg d2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAox MjcyMyB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4K bWFrZTogKioqIFtNYWtlZmlsZToxMjE4MDogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrU21hdGNoIC0gRkFJTApEZXNjOiBSdW4gc21hdGNo IHRvb2wgd2l0aCBzb3VyY2UKT3V0cHV0OgoKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5j OjI3MjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFy ZWQvZ2F0dC1oZWxwZXJzLmM6NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6 MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtaGVscGVycy5jOjEzNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6Mjc2OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYxOToyNTogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2 ZXIuYzo3MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMv c2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVm cy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5j dGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFy ZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6 ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3Njoy NTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0 dC1zZXJ2ZXIuYzo2MTk6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE4OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBm aWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxp bmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBl ZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDoz ODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g J0NQUEZ1bmN0aW9uJwp0b29scy9tZXNoLWNmZ3Rlc3QuYzoxNDUzOjE3OiB3YXJuaW5nOiB1bmtu b3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0b29scy9sMmNhcC10ZXN0ZXIuYzogSW4gZnVuY3Rp b24g4oCYbDJjYXBfdHhfdGltZXN0YW1waW5n4oCZOgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY0 Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhzb+KAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxl dGUgdHlwZQogMTI2NCB8ICBzdHJ1Y3Qgc29fdGltZXN0YW1waW5nIHNvID0gewogICAgICB8ICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyNjU6NDogZXJyb3I6 IOKAmHN0cnVjdCBzb190aW1lc3RhbXBpbmfigJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhmbGFn c+KAmQogMTI2NSB8ICAgLmZsYWdzID0gbDJkYXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwg ICAgXn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NToxMjogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAxMjY1IHwgICAuZmxhZ3MgPSBs MmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICAgICAgICAgIF5+fn5+fgp0b29scy9s MmNhcC10ZXN0ZXIuYzoxMjY1OjEyOiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCY c2/igJkpCnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyNjQ6MjU6IGVycm9yOiBzdG9yYWdlIHNpemUg b2Yg4oCYc2/igJkgaXNu4oCZdCBrbm93bgogMTI2NCB8ICBzdHJ1Y3Qgc29fdGltZXN0YW1waW5n IHNvID0gewogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIF5+CnRvb2xzL2wyY2FwLXRl c3Rlci5jOjEyNjQ6MjU6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYc2/igJkgWy1XZXJyb3I9 dW51c2VkLXZhcmlhYmxlXQpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9y cwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc4MDM6IHRvb2xzL2wyY2FwLXRlc3Rlci5vXSBFcnJv ciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoq KiBbTWFrZWZpbGU6NDY0NTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBibHVlem1ha2VleHRlbGwgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWV6IHdpdGgg RXh0ZXJuYWwgRUxMCk91dHB1dDoKCnRvb2xzL2wyY2FwLXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDi gJhsMmNhcF90eF90aW1lc3RhbXBpbmfigJk6CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyNjQ6OTog ZXJyb3I6IHZhcmlhYmxlIOKAmHNv4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0 eXBlCiAxMjY0IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAg ICBefn5+fn5+fn5+fn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NTo0OiBlcnJvcjog4oCY c3RydWN0IHNvX3RpbWVzdGFtcGluZ+KAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGZsYWdz4oCZ CiAxMjY1IHwgICAuZmxhZ3MgPSBsMmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICBe fn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjY1OjEyOiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KIDEyNjUgfCAgIC5mbGFncyA9IGwyZGF0 YS0+c29fdGltZXN0YW1waW5nLAogICAgICB8ICAgICAgICAgICAgXn5+fn5+CnRvb2xzL2wyY2Fw LXRlc3Rlci5jOjEyNjU6MTI6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhzb+KA mSkKdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI2NDoyNTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDi gJhzb+KAmSBpc27igJl0IGtub3duCiAxMjY0IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28g PSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn4KdG9vbHMvbDJjYXAtdGVzdGVy LmM6MTI2NDoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVz ZWQtdmFyaWFibGVdCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1h a2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwMzogdG9vbHMvbDJjYXAtdGVzdGVyLm9dIEVycm9yIDEK bWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtN YWtlZmlsZTo0NjQ1OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj ClRlc3Q6IEluY3JlbWVudGFsQnVpbGQgLSBGQUlMCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdp dGggdGhlIHBhdGNoZXMgaW4gdGhlIHNlcmllcwpPdXRwdXQ6CltCbHVlWiwyLzNdIGlzby10ZXN0 ZXI6IEFkZCB0ZXN0cyBmb3IgVFggdGltZXN0YW1waW5nCgp0b29scy9pc28tdGVzdGVyLmM6IElu IGZ1bmN0aW9uIOKAmGlzb190eF90aW1lc3RhbXBpbmfigJk6CnRvb2xzL2lzby10ZXN0ZXIuYzoy MTI4Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhzb+KAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29t cGxldGUgdHlwZQogMjEyOCB8ICBzdHJ1Y3Qgc29fdGltZXN0YW1waW5nIHNvID0gewogICAgICB8 ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI5OjQ6IGVycm9y OiDigJhzdHJ1Y3Qgc29fdGltZXN0YW1waW5n4oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZmxh Z3PigJkKIDIxMjkgfCAgIC5mbGFncyA9IGlzb2RhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAg fCAgICBefn5+fgp0b29scy9pc28tdGVzdGVyLmM6MjEyOToxMjogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAyMTI5IHwgICAuZmxhZ3MgPSBp c29kYXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwgICAgICAgICAgICBefn5+fn5+CnRvb2xz L2lzby10ZXN0ZXIuYzoyMTI5OjEyOiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCY c2/igJkpCnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI4OjI1OiBlcnJvcjogc3RvcmFnZSBzaXplIG9m IOKAmHNv4oCZIGlzbuKAmXQga25vd24KIDIxMjggfCAgc3RydWN0IHNvX3RpbWVzdGFtcGluZyBz byA9IHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefgp0b29scy9pc28tdGVzdGVy LmM6MjEyODoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVz ZWQtdmFyaWFibGVdCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1h a2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwMzogdG9vbHMvaXNvLXRlc3Rlci5vXSBFcnJvciAxCm1h a2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnRvb2xzL21nbXQtdGVz dGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI3MjM6 NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1m dmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyNzIzIHwgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgptYWtlOiAqKiog W01ha2VmaWxlOjQ2NDU6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKVGVzdDogU2NhbkJ1aWxkIC0gRkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6Cgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDUxOjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRi LCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzo2OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9l Y29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTkzOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nl c3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMDk5OjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxl dGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjkxOjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zl cnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoxMzU2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxNjMxOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM2OjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNDA6Njog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFk X2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjIxNDg6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzozMjM3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFs c2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyNTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5j OjExNTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IERCRyhzdHJlYW0tPmJhcCwgInN0cmVhbSAlcCIsIHN0cmVhbSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjQwOjI6IG5vdGU6 IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0RCRycKICAgICAgICBiYXBfZGVidWcoX2JhcCwgIiVzOiVz KCkgIiBmbXQsIF9fRklMRV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMjI4OjEzOiB3YXJuaW5nOiBBY2Nlc3Mg dG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNldF0udmFsKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDUxOjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRi LCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzo2OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9l Y29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTkzOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nl c3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMDk5OjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxl dGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjkxOjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zl cnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoxMzU2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxNjMxOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM2OjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNDA6Njog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFk X2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjIxNDg6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzozMjM3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFs c2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyNTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5j OjExNTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IERCRyhzdHJlYW0tPmJhcCwgInN0cmVhbSAlcCIsIHN0cmVhbSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjQwOjI6IG5vdGU6 IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0RCRycKICAgICAgICBiYXBfZGVidWcoX2JhcCwgIiVzOiVz KCkgIiBmbXQsIF9fRklMRV9fLCBfX2Z1bmNfXywgIyMgYXJnKQogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMjI4OjEzOiB3YXJuaW5nOiBBY2Nlc3Mg dG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNldF0udmFsKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0 b29scy9oY2lhdHRhY2guYzo4MTY6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3Jl ZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBp cyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lf ZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjQ6Nzogd2FybmluZzogQWx0aG91 Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJl c3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAg aWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAg IF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODg2Ojg6 IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhl IGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBm cm9tICduJwogICAgICAgICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3As IDEwKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkwODo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUg dmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwg dGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4g PSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5Mjk6Nzogd2Fybmlu ZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9z aW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24n CiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAg ICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNo LmM6OTczOjc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVz ZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFs bHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNw LCA2KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJl Zihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9vdWkuYzo1 MzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAg ICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+ fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpZHVtcC5jOjE4MDo5OiB3YXJuaW5nOiBQ b3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnZHAnCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGZkc1tpXS5mZCA9PSBzb2NrKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn4KdG9vbHMvaGNpZHVtcC5jOjI0ODoxNzogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkaC0+dHNfc2VjICA9IGh0b2JsKGZybS50cy50dl9zZWMpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvaGNpZHVtcC5jOjMyNjo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1 bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGJlMzJ0b2goZHAuZmxhZ3MpICYgMHgwMikgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6 NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMy dG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ CnRvb2xzL2hjaWR1bXAuYzozNDE6MjA6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3Vt ZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcm0uZGF0YV9sZW4gPSBiZTMydG9oKGRwLmxlbik7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9l bmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVm aW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM0NjoxNDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNh bGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9wY29kZSA9IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHhmZmZmOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3Iv aW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRv aCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM4NDoxNzogd2FybmluZzogQXNzaWdu ZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAg ZnJtLmRhdGFfbGVuID0gYnRvaHMoZGgubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk0OjExOiB3YXJuaW5n OiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAg ZnJtLmxlbiA9IGZybS5kYXRhX2xlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+ fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM5ODo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBh cmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAg IHRzID0gYmU2NHRvaChwaC50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjUxOjIyOiBub3RlOiBleHBhbmRlZCBmcm9t IG1hY3JvICdiZTY0dG9oJwojICBkZWZpbmUgYmU2NHRvaCh4KSBfX2Jzd2FwXzY0ICh4KQogICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDAzOjEzOiB3 YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZh bHVlCiAgICAgICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGJlMzJ0b2goZHAuZmxhZ3MpICYg MHgwMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4K L3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdi ZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDA4OjExOiB3YXJuaW5nOiBB c3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAg ICAgICBmcm0uaW4gPSBkaC5pbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+ fn4KdG9vbHMvaGNpZHVtcC5jOjQzNzo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRv IDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGZkID0gb3BlbihmaWxl LCBvcGVuX2ZsYWdzLCAwNjQ0KTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMTEgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9yZmNvbW0uYzoyMzQ6Mzogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdpJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBpID0g ZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzoyMzQ6Nzogd2FybmluZzogTnVsbCBw b2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAg ICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjM1NDo4OiB3 YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUg ZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZy b20gJ2ZkJwogICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkg fCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NDk3OjE0OiB3YXJuaW5nOiBB c3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgIHJlcS5jaGFubmVs ID0gcmFkZHIucmNfY2hhbm5lbDsKICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvcmZjb21tLmM6NTE1Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9y ZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVl IGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZk ID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAg ICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5p bmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRh W2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1s LmM6MzAwOjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5l ZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMzg6MTE6 IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2lw dG9vbC5jOjM1MDo3OiB3YXJuaW5nOiA1dGggZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgc2sgPSBkb19jb25uZWN0KGN0bCwgZGV2X2lkLCAm c3JjLCAmZHN0LCBwc20sICgxIDw8IENNVFBfTE9PUEJBQ0spKTsKICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5pbmc6IFJl c3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ3VpbnQz Ml90Jywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAnaW50 JwogICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsdWVfaW50ID0gbWFsbG9jKHNp emVvZihpbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fiAgICAgICAgICAg IF5+fn5+fiB+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6OTgwOjQ6IHdhcm5pbmc6IDFzdCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAg ICAgICAgICAgICAgICAgZnJlZShhbGxvY0FycmF5W2ldKTsKICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJuaW5nOiBQ b3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2kubmFtZScKICAgICAgICBy ZXR1cm4gYWRkX3NlcnZpY2UoMCwgJnNpKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9zZHB0b29sLmM6NDExMjo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBt ZW1vcnkgcG9pbnRlZCB0byBieSAnY29udGV4dC5zdmMnCiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3Mg Z2VuZXJhdGVkLgp0b29scy9pc28tdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmGlzb190eF90aW1l c3RhbXBpbmfigJk6CnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI4Ojk6IGVycm9yOiB2YXJpYWJsZSDi gJhzb+KAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogMjEyOCB8ICBzdHJ1 Y3Qgc29fdGltZXN0YW1waW5nIHNvID0gewogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI5OjQ6IGVycm9yOiDigJhzdHJ1Y3Qgc29fdGltZXN0YW1w aW5n4oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZmxhZ3PigJkKIDIxMjkgfCAgIC5mbGFncyA9 IGlzb2RhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICBefn5+fgp0b29scy9pc28tdGVz dGVyLmM6MjEyOToxMjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6 ZXIgWy1XZXJyb3JdCiAyMTI5IHwgICAuZmxhZ3MgPSBpc29kYXRhLT5zb190aW1lc3RhbXBpbmcs CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+CnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI5OjEyOiBu b3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYc2/igJkpCnRvb2xzL2lzby10ZXN0ZXIu YzoyMTI4OjI1OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHNv4oCZIGlzbuKAmXQga25vd24K IDIxMjggfCAgc3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICBefgp0b29scy9pc28tdGVzdGVyLmM6MjEyODoyNTogZXJyb3I6IHVudXNl ZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCmNjMTogYWxsIHdh cm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6Nzgw MzogdG9vbHMvaXNvLXRlc3Rlci5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1 bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY0NTogYWxsXSBFcnJvciAy CgoKLS0tClJlZ2FyZHMsCkxpbnV4IEJsdWV0b290aAoK --===============7643899091824943973==--