From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk2-f20.google.com (mail-qk2-f20.google.com [74.125.230.212]) (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 CBE4B3E3DA4 for ; Thu, 24 Sep 2026 19:06:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.230.212 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790276785; cv=none; b=RYlrl7CbllVMBYjby/uh81PfErEKRBD68sgYr87NVgyLJYfJNWHsjWUEKCJGeiMq5HPPXRtfnTF59CfggdYnAN+TJE1m9K6CS6QvGFcqhFX8MvMKcn8A2V1hwuFP6LuxtzeQiGV5tw52rHCvlSjGRy++XqNQ0/wzWTea3ZUPTAY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790276785; c=relaxed/simple; bh=uVCMrYDzYM8FBHmarhbomiOMqgIwZayLgX5BrhRbft0=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=p9fXYd5k+nMHVluiooNk2sWG+zmNlYIek7SuwiIC8Gmi6hY7UJXR9x6Dzu5DVBWKBHUrChCtF5fF/YEil46b3k4K5P4fJOPaOjKbP9J8O9cI0K3nIHRv2MvIhHdZS0GZLAEYNnpvm8bhmfvTnNHtRciVzTTY3rKBtuvm1SXUfuE= 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=MbiC+fa7; arc=none smtp.client-ip=74.125.230.212 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="MbiC+fa7" Received: by mail-qk2-f20.google.com with SMTP id af79cd13be357-939656ff6d9so13049285a.1 for ; Thu, 24 Sep 2026 12:06:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790276781; x=1790881581; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=uVCMrYDzYM8FBHmarhbomiOMqgIwZayLgX5BrhRbft0=; b=MbiC+fa7Hg2stpog7qCMP1ueRugGWP5ZppNUVzUoQOLnJ4398J/AEBMhi3gWqPwbT/ bYoPOl5XujoHnvrih8ZM5xo9auW5KF+SWcFJtEQ7yTTfXKeYN6EBzXEkanadxADs6XCO Q5uxt2ZkrI0qByVNjdWcqB2Px6OHJpEfAcy4aUikQ278Va1YDqjCl6v19OBnlxsIxb+j hOfI7ev9lsVzgflLbT1jMyzThRzKH9QannODCNyGr1G9Ly544TUOYAdphrK0mLqPev81 xkq8apgQTsfawPbdTLEbmiGGUbZrqke5+T6HJiNhikazZlBlSBKZju4D2a+OtfQEUPg9 afnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790276781; x=1790881581; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=uVCMrYDzYM8FBHmarhbomiOMqgIwZayLgX5BrhRbft0=; b=rfyCukmKJ75ikDxaQg4Q8B0vcnN1Bz38NqmdFb103czFsgVGz7uXvhig91eUknizh3 BYSRMXUy9eezatKGwDJqs3cnhPgH+HMoywxiW1aIR/PtdQKhZtsq5ZDXT3UdRXmSDNnd Yi2wwBYhei5KvvcmBWzqGZPq4EPTJ8yz8qSvawfWmNmxLMgRPD3auUf8h56Z5b50pPSs 31XX8TV/ikB5CdUZpcQS9oIxOUhMvD/I8hOxp1sIHWn65vkkMnAkgTEW5Ssn/uZ6BUT8 iNB/pOHUeDG5/vMPnMLF+TpqZmO2QStQ/BFeYitXx1f6IHi04eKHHNtj3Mzrr1ghMN50 ziXw== X-Gm-Message-State: AFuF++nvMasSsuwO4RYcP/z6BeIIxamv7P8RryWp4EKaNJ7cUdFFuS6G c8S76EM4KgUtSaUeJPi5/4OAs1Io/L0iiUI7iH3sptKQqmFgEPfTOqlNVwKvIg== X-Gm-Gg: AYBFou33MlAnixXoEeISKc/b4LKbmImB0WZMXesNbYNWdYrg4Thb3r8Mu8muhZCwsQG HlGhxOasmWMZyqR3PdSysgFBWxbFdsdRwCIr7cFAVB88WVGc7Gmc9InxYn+nK/3ZX7llpAKaXcN rivgAvqADdR7tf5I7+rB/9nF0d3Er3YSTTS4uOkEYDkslUBGlovv4ufnyVh99G1XmCLnyLbzbpD M71l5eOYitd3G5u9EGGF8uWRWmKTeS8WflrPt/x9OWO+H4/7sl0dDwLOAu2F1kkuwOw3zd/m9nw AuXXjNvTCGA6tsFy3nph0x4flTbymo0UOWzgERKbwBP5GF0DmNugRfCsdqsj61Ht4n8Du6bqPf5 qO+3XH836uodvavm9MB7oWoe3pYB0fWxoto3R2If6A/byKMBDc2BQMf1JxgI4uvTYzfgHGdkY0T Xdb8r/PKe8MVljLlitWKPW2PM78kEWf+sV9LNe4BOCcaILwZQ/EhdmHcV2Cfeweg9BEIZQw/Zjn EkDdEw= X-Received: by 2002:a05:620a:4002:b0:939:c9e9:81a1 with SMTP id af79cd13be357-93c43e0e380mr32467785a.42.1790276780934; Thu, 24 Sep 2026 12:06:20 -0700 (PDT) Received: from [172.17.0.2] ([20.119.102.94]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93c4493926esm3164985a.27.2026.09.24.12.06.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Sep 2026 12:06:20 -0700 (PDT) Message-ID: <6ab574ac.3f7fdbfa.377555.6bde@mx.google.com> Date: Thu, 24 Sep 2026 12:06:20 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============8618463454254093714==" 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, as@discnull.de Subject: RE: org.bluez.LEAdvertisement: Add broadcast name support In-Reply-To: <20260924151720.1769259-2-as@discnull.de> References: <20260924151720.1769259-2-as@discnull.de> Reply-To: linux-bluetooth@vger.kernel.org --===============8618463454254093714== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9zZXJpZXMvMTE3MzIzNy8KCi0tLVRlc3QgcmVzdWx0LS0tCgpUZXN0IFN1 bW1hcnk6CkNoZWNrUGF0Y2ggICAgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxLjA1IHNlY29u ZHMKR2l0TGludCAgICAgICAgICAgICAgICAgICAgICAgUEFTUyAgICAgIDAuNzIgc2Vjb25kcwpC dWlsZEVsbCAgICAgICAgICAgICAgICAgICAgICBQQVNTICAgICAgMjAuMDIgc2Vjb25kcwpCbHVl ek1ha2UgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMzY4LjY5IHNlY29uZHMKTWFrZUNo ZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE3Ni43NiBzZWNvbmRzCk1ha2VEaXN0 Y2hlY2sgICAgICAgICAgICAgICAgIEZBSUwgICAgICAxMC45NCBzZWNvbmRzCkNoZWNrVmFsZ3Jp bmQgICAgICAgICAgICAgICAgIEZBSUwgICAgICA5MS44MiBzZWNvbmRzCkNoZWNrU21hdGNoICAg ICAgICAgICAgICAgICAgIEZBSUwgICAgICAxODEuNDcgc2Vjb25kcwpibHVlem1ha2VleHRlbGwg ICAgICAgICAgICAgICBGQUlMICAgICAgNjMuNTggc2Vjb25kcwpUZXN0RnVuY3Rpb25hbCAgICAg ICAgICAgICAgICBFUlJPUiAgICAgMzYwLjA2IHNlY29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAg ICAgICAgICAgRkFJTCAgICAgIDM2My40NyBzZWNvbmRzClNjYW5CdWlsZCAgICAgICAgICAgICAg ICAgICAgIEZBSUwgICAgICAzMjYuODggc2Vjb25kcwoKRGV0YWlscwojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKVGVzdDogQmx1ZXpNYWtlIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpP dXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29s cy9tZ210LXRlc3Rlci5jOjEzMjE4OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGlt aXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlp bmcgd2l0aG91dAoxMzIxOCB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg IHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVu aXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0 IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5n IHdpdGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8 ICAgICBefn5+CmRvYy9vcmcuYmx1ZXouTEVBZHZlcnRpc2VtZW50LnJzdDoxNzY6IChXQVJOSU5H LzIpIFRpdGxlIHVuZGVybGluZSB0b28gc2hvcnQuCgpzdHJpbmcgQnJvYWRjYXN0TmFtZSBbcmVh ZG9ubHksIG9wdGlvbmFsXQpgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCkV4 aXRpbmcgZHVlIHRvIGxldmVsLTIgKFdBUk5JTkcpIHN5c3RlbSBtZXNzYWdlLgptYWtlWzFdOiAq KiogW01ha2VmaWxlOjEyNzAwOiBkb2Mvb3JnLmJsdWV6LkxFQWR2ZXJ0aXNlbWVudC41XSBFcnJv ciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnVuaXQvdGVz dC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzoxMzgy OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgt ZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogMTM4MiB8IGlu dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0 LXJhcC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtcmFwLmM6OTk3OjU6IG5v dGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10 cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDk5NyB8IGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KbWFrZTogKioqIFtNYWtl ZmlsZTo0MzIyOiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRl c3Q6IE1ha2VDaGVjayAtIEZBSUwKRGVzYzogUnVuIEJsdWV6IE1ha2UgQ2hlY2sKT3V0cHV0OgoK ZG9jL29yZy5ibHVlei5MRUFkdmVydGlzZW1lbnQucnN0OjE3NjogKFdBUk5JTkcvMikgVGl0bGUg dW5kZXJsaW5lIHRvbyBzaG9ydC4KCnN0cmluZyBCcm9hZGNhc3ROYW1lIFtyZWFkb25seSwgb3B0 aW9uYWxdCmBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAKRXhpdGluZyBkdWUg dG8gbGV2ZWwtMiAoV0FSTklORykgc3lzdGVtIG1lc3NhZ2UuCm1ha2VbMV06ICoqKiBbTWFrZWZp bGU6MTI3MDA6IGRvYy9vcmcuYmx1ZXouTEVBZHZlcnRpc2VtZW50LjVdIEVycm9yIDEKbWFrZTog KioqIFtNYWtlZmlsZToxMTE5NjogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjClRlc3Q6IE1ha2VEaXN0Y2hlY2sgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtl IERpc3RjaGVjawpPdXRwdXQ6Cgpkb2Mvb3JnLmJsdWV6LkxFQWR2ZXJ0aXNlbWVudC5yc3Q6MTc2 OiAoV0FSTklORy8yKSBUaXRsZSB1bmRlcmxpbmUgdG9vIHNob3J0LgoKc3RyaW5nIEJyb2FkY2Fz dE5hbWUgW3JlYWRvbmx5LCBvcHRpb25hbF0KYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg YGBgYGBgYApFeGl0aW5nIGR1ZSB0byBsZXZlbC0yIChXQVJOSU5HKSBzeXN0ZW0gbWVzc2FnZS4K bWFrZVsyXTogKioqIFtNYWtlZmlsZToxMjcwMDogZG9jL29yZy5ibHVlei5MRUFkdmVydGlzZW1l bnQuNV0gRXJyb3IgMQptYWtlWzJdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4u LgptYWtlWzFdOiAqKiogW01ha2VmaWxlOjExMDE3OiBkaXN0ZGlyXSBFcnJvciAyCm1ha2U6ICoq KiBbTWFrZWZpbGU6MTExMDE6IGRpc3RdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjClRlc3Q6IENoZWNrVmFsZ3JpbmQgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtlIENo ZWNrIHdpdGggVmFsZ3JpbmQKT3V0cHV0OgoKdG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rp b24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMzIxODo1OiBub3RlOiB2YXJpYWJs ZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNz aWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTMyMTggfCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CmRvYy9vcmcuYmx1ZXouTEVBZHZlcnRpc2Vt ZW50LnJzdDoxNzY6IChXQVJOSU5HLzIpIFRpdGxlIHVuZGVybGluZSB0b28gc2hvcnQuCgpzdHJp bmcgQnJvYWRjYXN0TmFtZSBbcmVhZG9ubHksIG9wdGlvbmFsXQpgYGBgYGBgYGBgYGBgYGBgYGBg YGBgYGBgYGBgYGBgYGBgYGBgCkV4aXRpbmcgZHVlIHRvIGxldmVsLTIgKFdBUk5JTkcpIHN5c3Rl bSBtZXNzYWdlLgptYWtlWzFdOiAqKiogW01ha2VmaWxlOjEyNzAwOiBkb2Mvb3JnLmJsdWV6LkxF QWR2ZXJ0aXNlbWVudC41XSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlz aGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6MTExOTY6IGNoZWNrXSBFcnJvciAyCiMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVz YzogUnVuIHNtYXRjaCB0b29sIHdpdGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRv LmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhl bHBlcnMuYzoxMzM1OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTg6MjU6IHdhcm5pbmc6IGFycmF5 IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVk ZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxl eGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZp bGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3g4Nl82NC1saW51eC1nbnUvL3N5cy9pb2N0bC5oLCAv dXNyL2luY2x1ZGUveDg2XzY0LWxpbnV4LWdudS8vc3lzL2Vwb2xsLmgsIHNyYy9zaGFyZWQvbWFp bmxvb3AuaCk6Ci91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251Ly9zeXMvdHR5ZGVmYXVsdHMu aDo1NTo5OiB3YXJuaW5nOiBwcmVwcm9jZXNzb3IgdG9rZW4gQ1RSTCByZWRlZmluZWQKc3JjL3No YXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVk ZS9yZWFkbGluZS9rZXltYXBzLmgsIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL2NoYXJkZWZzLmg6NTE6OTogdGhpcyB3YXMgdGhlIG9yaWdp bmFsIGRlZmluaXRpb24Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxw ZXJzLmM6NzY0OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4NDI6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMzU6MzE6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5j OjEzNjY6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2JhcC5jOjMxODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpz cmMvc2hhcmVkL2JhcC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYXNj cy5oOjg4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFy ZWQvc2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUv eDg2XzY0LWxpbnV4LWdudS8vc3lzL2lvY3RsLmgsIC91c3IvaW5jbHVkZS94ODZfNjQtbGludXgt Z251Ly9zeXMvZXBvbGwuaCwgc3JjL3NoYXJlZC9tYWlubG9vcC5oKToKL3Vzci9pbmNsdWRlL3g4 Nl82NC1saW51eC1nbnUvL3N5cy90dHlkZWZhdWx0cy5oOjU1Ojk6IHdhcm5pbmc6IHByZXByb2Nl c3NvciB0b2tlbiBDVFJMIHJlZGVmaW5lZApzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGlu Y2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL2tleW1hcHMuaCwgL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvY2hh cmRlZnMuaDo1MTo5OiB0aGlzIHdhcyB0aGUgb3JpZ2luYWwgZGVmaW5pdGlvbgp0b29scy9tZXNo LWNmZ3Rlc3QuYzoxNDUzOjE3OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wl Jwp0b29scy9zY28tdGVzdGVyLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vbGliL2JsdWV0 b290aC9ibHVldG9vdGguaDoyMzI6MTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVj dHVyZXMKLi9saWIvYmx1ZXRvb3RoL2JsdWV0b290aC5oOjIzNzozMTogd2FybmluZzogYXJyYXkg b2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2FybmluZzog dW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmNsaWVudC9idHBjbGllbnQvZ2F0 dC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYnRwLmg6MzM4OjQxOiB3 YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCi4vc3JjL3NoYXJlZC9idHAuaDoz NDM6NTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKLi9zcmMvc2hhcmVk L2J0cC5oOjM2Njo0Nzogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL3Ny Yy9zaGFyZWQvYnRwLmg6Mzk1OjQyOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1 cmVzCnNyYy9hZ2VudC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgpzcmMvc2hhcmVkL3F1ZXVl Lmg6MTk6MjA6IGVycm9yOiByZWRlZmluaXRpb24gb2Ygc3RydWN0IHF1ZXVlX2VudHJ5CnNyYy9h ZHZlcnRpc2luZy5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvbWdtdC5o Ojk1OjI1OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2lnbmVkIGludCBlbnVtIG1nbXRfaW9f Y2FwYWJpbGl0eQpzcmMvYWR2X21vbml0b3IuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9z cmMvc2hhcmVkL21nbXQuaDo5NToyNTogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNpZ25lZCBp bnQgZW51bSBtZ210X2lvX2NhcGFiaWxpdHkKdW5pdC9hdmN0cC5jOjUwNTozNDogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvYXZjdHAuYzo1NTY6MzQ6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozNzQ6 MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZy Y3AuYzozOTk6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0 L3Rlc3QtYXZyY3AuYzo0MTU6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgp1bml0L2F2cmNwLWxpYi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE1ODM6MzQ6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE2MTI6MzQ6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE2Mzg6MzQ6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvYWR2ZXJ0aXNpbmcu Yzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL21nbXQuaDo5NToyNTogZXJy b3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNpZ25lZCBpbnQgZW51bSBtZ210X2lvX2NhcGFiaWxpdHkK c3JjL2FnZW50LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6CnNyYy9zaGFyZWQvcXVldWUuaDox OToyMDogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiBzdHJ1Y3QgcXVldWVfZW50cnkKc3JjL2Fkdl9t b25pdG9yLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9tZ210Lmg6OTU6 MjU6IGVycm9yOiByZWRlZmluaXRpb24gb2YgdW5zaWduZWQgaW50IGVudW0gbWdtdF9pb19jYXBh YmlsaXR5CnNyYy9tYWluLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggc3JjL2Rl dmljZS5oKToKLi9zcmMvc2hhcmVkL3F1ZXVlLmg6MTk6MjA6IGVycm9yOiByZWRlZmluaXRpb24g b2Ygc3RydWN0IHF1ZXVlX2VudHJ5Cm1lc2gvbWVzaC1pby1tZ210LmM6NTI1OjY3OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZG9jL29yZy5ibHVlei5MRUFkdmVydGlz ZW1lbnQucnN0OjE3NjogKFdBUk5JTkcvMikgVGl0bGUgdW5kZXJsaW5lIHRvbyBzaG9ydC4KCnN0 cmluZyBCcm9hZGNhc3ROYW1lIFtyZWFkb25seSwgb3B0aW9uYWxdCmBgYGBgYGBgYGBgYGBgYGBg YGBgYGBgYGBgYGBgYGBgYGBgYGAKRXhpdGluZyBkdWUgdG8gbGV2ZWwtMiAoV0FSTklORykgc3lz dGVtIG1lc3NhZ2UuCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTI3MDA6IGRvYy9vcmcuYmx1ZXou TEVBZHZlcnRpc2VtZW50LjVdIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmlu aXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0MzIyOiBhbGxdIEVycm9yIDIKIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IGJsdWV6bWFrZWV4dGVsbCAtIEZBSUwK RGVzYzogQnVpbGQgQmx1ZXogd2l0aCBFeHRlcm5hbCBFTEwKT3V0cHV0OgoKZG9jL29yZy5ibHVl ei5MRUFkdmVydGlzZW1lbnQucnN0OjE3NjogKFdBUk5JTkcvMikgVGl0bGUgdW5kZXJsaW5lIHRv byBzaG9ydC4KCnN0cmluZyBCcm9hZGNhc3ROYW1lIFtyZWFkb25seSwgb3B0aW9uYWxdCmBgYGBg YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAKRXhpdGluZyBkdWUgdG8gbGV2ZWwtMiAo V0FSTklORykgc3lzdGVtIG1lc3NhZ2UuCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTI3MDA6IGRv Yy9vcmcuYmx1ZXouTEVBZHZlcnRpc2VtZW50LjVdIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRp bmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0MzIyOiBhbGxd IEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFRlc3RGdW5jdGlv bmFsIC0gRVJST1IKRGVzYzogUnVuIHRlc3QtZnVuY3Rpb25hbApPdXRwdXQ6CkZhaWxlZCB0byBi dWlsZCBCbHVlWjoKRmFpbGVkIHRvIGJ1aWxkIEJsdWVaCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwpUZXN0OiBJbmNyZW1lbnRhbEJ1aWxkIC0gRkFJTApEZXNjOiBJbmNyZW1lbnRhbCBi dWlsZCB3aXRoIHRoZSBwYXRjaGVzIGluIHRoZSBzZXJpZXMKT3V0cHV0OgoKdG9vbHMvbWdtdC10 ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMzIx ODo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCY LWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTMyMTggfCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVz dC1hdmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3NjY6 NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1m dmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpkb2Mvb3JnLmJs dWV6LkxFQWR2ZXJ0aXNlbWVudC5yc3Q6MTc2OiAoV0FSTklORy8yKSBUaXRsZSB1bmRlcmxpbmUg dG9vIHNob3J0LgoKc3RyaW5nIEJyb2FkY2FzdE5hbWUgW3JlYWRvbmx5LCBvcHRpb25hbF0KYGBg YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYApFeGl0aW5nIGR1ZSB0byBsZXZlbC0y IChXQVJOSU5HKSBzeXN0ZW0gbWVzc2FnZS4KbWFrZVsxXTogKioqIFtNYWtlZmlsZToxMjcwMDog ZG9jL29yZy5ibHVlei5MRUFkdmVydGlzZW1lbnQuNV0gRXJyb3IgMQptYWtlWzFdOiAqKiogV2Fp dGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgp1bml0L3Rlc3QtYXZyY3AuYzogSW4gZnVuY3Rp b24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2cmNwLmM6MTM4Mjo1OiBub3RlOiB2YXJpYWJsZSB0 cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdu bWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKIDEzODIgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1yYXAuYzogSW4gZnVuY3Rpb24g 4oCYbWFpbuKAmToKdW5pdC90ZXN0LXJhcC5jOjk5Nzo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2lu ZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPi gJksIHJldHJ5aW5nIHdpdGhvdXQKICA5OTcgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogICAgICB8ICAgICBefn5+Cm1ha2U6ICoqKiBbTWFrZWZpbGU6NDMyMjogYWxsXSBFcnJv ciAyCltCbHVlWiwxLzJdIGRvYy9vcmcuYmx1ZXouTEVBZHZlcnRpc2VtZW50OiBBZGQgYnJvYWRj YXN0IG5hbWUKCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRv b2xzL21nbXQtdGVzdGVyLmM6MTMyMTg6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBs aW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRy eWluZyB3aXRob3V0CjEzMjE4IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAg ICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZkdHAuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToK dW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGlt aXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlp bmcgd2l0aG91dAogIDc2NiB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg IHwgICAgIF5+fn4KZG9jL29yZy5ibHVlei5MRUFkdmVydGlzZW1lbnQucnN0OjE3NjogKFdBUk5J TkcvMikgVGl0bGUgdW5kZXJsaW5lIHRvbyBzaG9ydC4KCnN0cmluZyBCcm9hZGNhc3ROYW1lIFty ZWFkb25seSwgb3B0aW9uYWxdCmBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAK RXhpdGluZyBkdWUgdG8gbGV2ZWwtMiAoV0FSTklORykgc3lzdGVtIG1lc3NhZ2UuCm1ha2VbMV06 ICoqKiBbTWFrZWZpbGU6MTI3MDA6IGRvYy9vcmcuYmx1ZXouTEVBZHZlcnRpc2VtZW50LjVdIEVy cm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KdW5pdC90 ZXN0LWF2cmNwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdnJjcC5jOjEz ODI6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKA mC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAxMzgyIHwg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rl c3QtcmFwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1yYXAuYzo5OTc6NTog bm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFy LXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTk3IHwgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgptYWtlOiAqKiogW01h a2VmaWxlOjQzMjI6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK VGVzdDogU2NhbkJ1aWxkIC0gRkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6NDQ3OjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KICA0NDcgfCAgICAgICAgIGdhdHRfZGJfdW5yZWdp c3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTI6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAgNjky IHwgICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwog ICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTA5ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDEwOTggfCAgICAgICAgIGRpc2NvdmVy eV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgfCAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTI5MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkIFt1bml4Lk1hbGxvY10KIDEyOTIgfCAgICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShv cCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1 NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxv Y10KIDEzNTcgfCAgICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0 X2Vjb2RlKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzMjo2OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDE2MzIgfCAgICAg ICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNzoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDE2MzcgfCAgICAgICAgIGRp c2NvdmVyX2FsbChvcCk7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxNjkzOjU2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDE2OTMgfCAgICAgICAgIG5vdGlmeV9kYXRhLT5jaHJj LT5jY2Nfd3JpdGVfaWQgPSBub3RpZnlfZGF0YS0+YXR0X2lkID0gYXR0X2lkOwogICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+ fn4gXgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Njo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDIxNDYgfCAgICAgICAgIGlmIChy ZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE1NDo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDIxNTQgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3Ap LAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMz MzI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxs b2NdCiAzMzMyIHwgICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2Vzcywg MCwgZmFsc2UpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzM1NDoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDMzNTQgfCAg ICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvcmFwLmM6MzMyMjozMDogd2Fy bmluZzogQXNzaWduZWQgdmFsdWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVk LkFzc2lnbl0KIDMzMjIgfCAgICAgICAgICAgICAgICAgICAgICAgICBvdXQtPnRvbmVfcGN0W2td Lmlfc2FtcGxlID0gdG9uZV9wY3RfaVtrXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL3Jh cC5jOjQyNjk6MTM6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3Vu aXguTWFsbG9jXQogNDI2OSB8ICAgICAgICAgYXR0YWNoZWQgPSBxdWV1ZV9maW5kKHNlc3Npb25z LCBOVUxMLCByYXApOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE1 NDM6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxs b2NdCiAxNTQzIHwgICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgfCAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvYmFwLmM6MjM1OToy MDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2Nd CiAyMzU5IHwgICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywg TlVMTCwgc3RyZWFtKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6NDQ3OjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4 Lk1hbGxvY10KICA0NDcgfCAgICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5k Yiwgb3AtPmRiX2lkKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAgNjkyIHwgICAgICAgICBkaXNjb3Zl cnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICB8ICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MTA5ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk IFt1bml4Lk1hbGxvY10KIDEwOTggfCAgICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwg c3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5Mjoy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10K IDEyOTIgfCAgICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vj b2RlKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1NzoyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDEzNTcgfCAgICAgICAg IGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgfCAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzMjo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDE2MzIgfCAgICAgICAgIGlmIChyZWFkX2RiX2hh c2gob3ApKSB7CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MTYzNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkIFt1bml4Lk1hbGxvY10KIDE2MzcgfCAgICAgICAgIGRpc2NvdmVyX2FsbChvcCk7CiAg ICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzox NjkzOjU2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1h bGxvY10KIDE2OTMgfCAgICAgICAgIG5vdGlmeV9kYXRhLT5jaHJjLT5jY2Nfd3JpdGVfaWQgPSBu b3RpZnlfZGF0YS0+YXR0X2lkID0gYXR0X2lkOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn4gXgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MjE0Njo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkIFt1bml4Lk1hbGxvY10KIDIxNDYgfCAgICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7 CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MjE1NDo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1 bml4Lk1hbGxvY10KIDIxNTQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMzMzI6Mjogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAzMzMyIHwgICAgICAg ICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFsc2UpOwogICAgICB8 ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzM1NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDMzNTQgfCAgICAgICAgIHJlcXVlc3RfdW5y ZWYocmVxKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgoxMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnNyYy9zaGFyZWQvcmFwLmM6MzMyMjozMDogd2FybmluZzogQXNzaWduZWQgdmFs dWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVkLkFzc2lnbl0KIDMzMjIgfCAg ICAgICAgICAgICAgICAgICAgICAgICBvdXQtPnRvbmVfcGN0W2tdLmlfc2FtcGxlID0gdG9uZV9w Y3RfaVtrXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL3JhcC5jOjQyNjk6MTM6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogNDI2OSB8 ICAgICAgICAgYXR0YWNoZWQgPSBxdWV1ZV9maW5kKHNlc3Npb25zLCBOVUxMLCByYXApOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIg d2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2hfYXRoM2suYzo1MzA6OTogd2Fybmlu ZzogRmlsZSBwb3NpdGlvbiBvZiB0aGUgc3RyZWFtIG1pZ2h0IGJlICdpbmRldGVybWluYXRlJyBh ZnRlciBhIGZhaWxlZCBvcGVyYXRpb24uIENhbiBjYXVzZSB1bmRlZmluZWQgYmVoYXZpb3IgW3Vu aXguU3RyZWFtXQogIDUzMCB8ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmdldHMoYnl0 ZSwgMywgc3RyZWFtKSkKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoX2F0aDNrLmM6NTMwOjk6IHdhcm5pbmc6 IFJlYWQgZnVuY3Rpb24gY2FsbGVkIHdoZW4gc3RyZWFtIGlzIGluIEVPRiBzdGF0ZS4gRnVuY3Rp b24gaGFzIG5vIGVmZmVjdCBbdW5peC5TdHJlYW1dCiAgNTMwIHwgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFmZ2V0cyhieXRlLCAzLCBzdHJlYW0pKQogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRl ZC4KdG9vbHMvaGNpYXR0YWNoLmM6ODE3Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBz dG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFs dWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJyBbZGVhZGNvZGUuRGVhZFN0b3Jlc10K ICA4MTcgfCAgICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCAxMCkpIDwg MCkgewogICAgICB8ICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9oY2lhdHRhY2guYzo4NjU6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0 b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1 ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5EZWFkU3RvcmVzXQog IDg2NSB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDAp IHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9oY2lhdHRhY2guYzo4ODc6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3Jl ZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBp cyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDg4 NyB8ICAgICAgICAgICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTAp KSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MDk6Nzogd2FybmluZzogQWx0aG91Z2gg dGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Np b24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5E ZWFkU3RvcmVzXQogIDkwOSB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJl c3AsIDQpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MzA6Nzogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5EZWFk U3RvcmVzXQogIDkzMCB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3As IDQpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5NzQ6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZh bHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRo ZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5EZWFkU3Rv cmVzXQogIDk3NCB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDYp KSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgo2IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL291aS5jOjUwOjI6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAg NTAgfCAgICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJfdW5yZWYoaHdkYik7CiAgICAgIHwgICAgICAg ICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9vdWkuYzo1MzoyOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNd CiAgIDUzIHwgICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgfCAgICAgICAg IF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVk L2JhcC5jOjE1NDM6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBb dW5peC5NYWxsb2NdCiAxNTQzIHwgICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsK ICAgICAgfCAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvYmFw LmM6MjM1OToyMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5p eC5NYWxsb2NdCiAyMzU5IHwgICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+ c3RyZWFtcywgTlVMTCwgc3RyZWFtKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9yZmNvbW0u YzoyMzQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdpJyBpcyBuZXZlciByZWFkIFtkZWFk Y29kZS5EZWFkU3RvcmVzXQogIDIzNCB8ICAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFy Z3ZbMF0sIGNtZGFyZ3YpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjIzNDo3OiB3YXJuaW5nOiBOdWxsIHBvaW50 ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJyBbY29yZS5Ob25O dWxsUGFyYW1DaGVja2VyXQogIDIzNCB8ICAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFy Z3ZbMF0sIGNtZGFyZ3YpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjM1NDo4OiB3YXJuaW5nOiBBbHRob3VnaCB0 aGUgdmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Np b24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJyBbZGVhZGNvZGUu RGVhZFN0b3Jlc10KICAzNTQgfCAgICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4oZGV2bmFt ZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0u Yzo0NzM6Njogd2FybmluZzogVGhlIDFzdCBhcmd1bWVudCB0byAnZ2V0c29ja25hbWUnIGlzIC0x IGJ1dCBzaG91bGQgYmUgPj0gMCBbdW5peC5TdGRDTGlicmFyeUZ1bmN0aW9uc10KICA0NzMgfCAg ICAgICAgIGlmIChnZXRzb2NrbmFtZShuc2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikmbGFkZHIsICZh bGVuKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo0OTc6MTQ6IHdhcm5pbmc6 IEFzc2lnbmVkIHZhbHVlIGlzIHVuaW5pdGlhbGl6ZWQgW2NvcmUudW5pbml0aWFsaXplZC5Bc3Np Z25dCiAgNDk3IHwgICAgICAgICByZXEuY2hhbm5lbCA9IHJhZGRyLnJjX2NoYW5uZWw7CiAgICAg IHwgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6 NTE1Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2Vk IGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5 IHJlYWQgZnJvbSAnZmQnIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDUxNSB8ICAgICAgICAgICAg ICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jaXB0b29sLmM6MzUxOjc6 IHdhcm5pbmc6IDV0aCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQg dmFsdWUgW2NvcmUuQ2FsbEFuZE1lc3NhZ2VdCiAgMzUxIHwgICAgICAgICBzayA9IGRvX2Nvbm5l Y3QoY3RsLCBkZXZfaWQsICZzcmMsICZkc3QsIHBzbSwgKDEgPDwgQ01UUF9MT09QQkFDSykpOwog ICAgICB8ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9zZHB0 b29sLmM6OTQxOjI2OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRv IGEgcG9pbnRlciBvZiB0eXBlICd1aW50MzJfdCcsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRo IHNpemVvZiBvcGVyYW5kIHR5cGUgJ2ludCcgW3VuaXguTWFsbG9jU2l6ZW9mXQogIDk0MSB8ICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2YWx1ZV9pbnQgPSBtYWxsb2Moc2l6ZW9m KGludCkpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn4gICAgICAg ICAgICBefn5+fn4gfn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAx c3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlIFtjb3Jl LkNhbGxBbmRNZXNzYWdlXQogIDk4MCB8ICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoYWxs b2NBcnJheVtpXSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2kubmFtZScgW3VuaXguTWFsbG9jXQogMzc3NyB8ICAg ICAgICAgcmV0dXJuIGFkZF9zZXJ2aWNlKDAsICZzaSk7CiAgICAgIHwgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6NDExMjo0OiB3YXJuaW5nOiBQb3Rl bnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnY29udGV4dC5zdmMnIFt1bml4Lk1h bGxvY10KIDQxMTIgfCAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpz cmMvc2RwLXhtbC5jOjEyOToxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgdW5pbml0aWFs aXplZCBbY29yZS51bmluaXRpYWxpemVkLkFzc2lnbl0KICAxMjkgfCAgICAgICAgICAgICAgICAg YnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBeIH5+ fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzA5OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBp cyB1bmluaXRpYWxpemVkIFtjb3JlLnVuaW5pdGlhbGl6ZWQuQXNzaWduXQogIDMwOSB8ICAgICAg ICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzQ3OjEx OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyB1bmluaXRpYWxpemVkIFtjb3JlLnVuaW5pdGlh bGl6ZWQuQXNzaWduXQogIDM0NyB8ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRh dGFbaSArIDFdOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+ fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9yZmNvbW0tdGVzdGVyLmM6NDEwOjY6 IHdhcm5pbmc6IFRoZSAxc3QgYXJndW1lbnQgdG8gJ2JpbmQnIGlzIC0xIGJ1dCBzaG91bGQgYmUg Pj0gMCBbdW5peC5TdGRDTGlicmFyeUZ1bmN0aW9uc10KICA0MTAgfCAgICAgICAgIGlmIChiaW5k KHNrLCAoc3RydWN0IHNvY2thZGRyICopICZhZGRyLCBzaXplb2YoYWRkcikpIDwgMCkgewogICAg ICB8ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvcmZjb21tLXRlc3Rlci5jOjQyODo4OiB3YXJuaW5nOiBUaGUgMXN0IGFy Z3VtZW50IHRvICdjb25uZWN0JyBpcyAtMSBidXQgc2hvdWxkIGJlID49IDAgW3VuaXguU3RkQ0xp YnJhcnlGdW5jdGlvbnNdCiAgNDI4IHwgICAgICAgICBlcnIgPSBjb25uZWN0KHNrLCAoc3RydWN0 IHNvY2thZGRyICopICZhZGRyLCBzaXplb2YoYWRkcikpOwogICAgICB8ICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdh cm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYXZ0ZXN0LmM6MjQzOjU6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDI0MyB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNTM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMjUzIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjI2Mjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAyNjIgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6Mjc2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtk ZWFkY29kZS5EZWFkU3RvcmVzXQogIDI3NiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CiAgMjc3IHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMyArIHNpemVvZihtZWRpYV90cmFuc3BvcnQpKTsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI4Mzo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jl c10KICAyODMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fgogIDI4NCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDEgKyBtZWRpYV90cmFuc3BvcnRfc2l6ZSk7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzoyOTA6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMjkwIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KICAyOTEgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgbWVkaWFfdHJh bnNwb3J0X3NpemUpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjk3 OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29k ZS5EZWFkU3RvcmVzXQogIDI5NyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+CiAgMjk4IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMiArIG1lZGlhX3RyYW5zcG9ydF9zaXplKTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMwOTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAzMDkgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwog ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzEzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDMxMyB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzozMjI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMzIyIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjMyNjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVh ZGNvZGUuRGVhZFN0b3Jlc10KICAzMjYgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzM1OjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFk U3RvcmVzXQogIDMzNSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwgMyk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNDI6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAg MzQyIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAyKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM2NDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAzNjQgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6MzY4OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDM2OCB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzozNzc6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMzc3IHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM4 MTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNv ZGUuRGVhZFN0b3Jlc10KICAzODEgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzk0OjU6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3Rv cmVzXQogIDM5NCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgNCk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTg6NTogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMzk4 IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAy KTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjQwNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA0MDUgfCAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo0 MTU6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRj b2RlLkRlYWRTdG9yZXNdCiAgNDE1IHwgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTgwOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDU4MCB8ICAg ICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgfCAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTg4OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3Rv cmVzXQogIDU4OCB8ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBpbnZhbGlk ID8gMiA6IDMpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYwMjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA2MDIgfCAg ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCArIG1lZGlhX3RyYW5zcG9ydF9z aXplKTsKICAgICAgfCAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MTU6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNjE1 IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MjU6Mzog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRl YWRTdG9yZXNdCiAgNjI1IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMp OwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzo2Mzc6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNjM3IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNjUyIHwgICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NjQ6Mzogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAg NjY0IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NzM6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2Rl LkRlYWRTdG9yZXNdCiAgNjczIHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs IDMpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzo2ODA6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNjgwIHwgICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo3MTY6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNzE2IHwgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCBBVkNUUF9IRUFERVJfTEVOR1RIICsgc2l6ZW9mKHBsYXlf cHJlc3NlZCkpOwogICAgICB8ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgozMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjc2OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQn IGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgIDc2IHwgICAgICAgICAgICAg ICAgIGZkID0gLTE7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRl LWltYWdlLmM6ODQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVh ZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAgODQgfCAgICAgICAgICAgICAgICAgZmQgPSAtMTsK ICAgICAgfCAgICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo5Mjoz OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5E ZWFkU3RvcmVzXQogICA5MiB8ICAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICB8ICAgICAg ICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjEwNToyOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQog IDEwNSB8ICAgICAgICAgZmQgPSAtMTsKICAgICAgfCAgICAgICAgIF4gICAgfn4KdG9vbHMvY3Jl YXRlLWltYWdlLmM6MTA4OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBh cmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnIFtjb3JlLk5vbk51bGxQYXJhbUNoZWNrZXJdCiAg MTA4IHwgICAgICAgICBmcHJpbnRmKGZwLCBIRFJfRk1ULCBIRFJfTUFHSUMsIGlubywgbW9kZSwg MCwgMCwgMSwgMCwKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogIDEwOSB8ICAgICAgICAgICAgICAgICAodWludG1h eF90KSBzdC5zdF9zaXplLCAwLCAwLCAwLCAwLCBuYW1lbGVuICsgMSwgMCwgbmFtZSk7CiAgICAg IHwgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzoxODg6Mjogd2FybmluZzog TnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcg W2NvcmUuTm9uTnVsbFBhcmFtQ2hlY2tlcl0KICAxODggfCAgICAgICAgIGZjbG9zZShmcCk7CiAg ICAgIHwgICAgICAgICBefn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idGdh dHQtY2xpZW50LmM6MTgyMjoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5l dmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAxODIyIHwgICAgICAgICBhcmd2ICs9IG9w dGluZDsKICAgICAgfCAgICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu CnRvb2xzL2J0Z2F0dC1zZXJ2ZXIuYzoxMjA0OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn YXJndicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KIDEyMDQgfCAgICAgICAg IGFyZ3YgLT0gb3B0aW5kOwogICAgICB8ICAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KdG9vbHMvY2hlY2stc2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ3B0cicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAgNDIg fCAgICAgICAgICAgICAgICAgcHRyID0gZmdldHMocmVzdWx0LCBzaXplb2YocmVzdWx0KSwgZnAp OwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvZ2F0dC1zZXJ2aWNlLmM6Mjk0OjI6 IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQg dmFsdWUgW2NvcmUuQ2FsbEFuZE1lc3NhZ2VdCiAgMjk0IHwgICAgICAgICBjaHJfd3JpdGUoY2hy LCB2YWx1ZSwgbGVuKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCkluIGZpbGUgaW5jbHVkZWQgZnJvbSB0b29scy9vYmV4LXNl cnZlci10b29sLmM6MTc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvZmNudGwu aDozNDI6Ci91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251L2JpdHMvZmNudGwyLmg6NzY6MTA6 IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3Rpbmcg J25vbm51bGwnIFtjb3JlLk5vbk51bGxQYXJhbUNoZWNrZXJdCiAgIDc2IHwgICByZXR1cm4gX19v cGVuX2FsaWFzIChfX3BhdGgsIF9fb2ZsYWcsIF9fbW9kZSk7CiAgICAgIHwgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4K Y2xpZW50L2J0cGNsaWVudC9idHBjbGllbnRjdGwuYzo0MDI6Mzogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdiaXQnIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNDAyIHwg ICAgICAgICAgICAgICAgIGJpdCA9IDA7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH4K Y2xpZW50L2J0cGNsaWVudC9idHBjbGllbnRjdGwuYzoxNjU1OjI6IHdhcm5pbmc6IE51bGwgcG9p bnRlciBwYXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnIFtjb3JlLk5v bk51bGxQYXJhbUNoZWNrZXJdCiAxNjU1IHwgICAgICAgICBtZW1jcHkoY3AtPmRhdGEsIGFkX2Rh dGEsIGFkX2xlbik7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAtY2xpZW50LmM6MzUzOjE0OiB3YXJu aW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2NiJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBu dWxsIHBvaW50ZXIgW2NvcmUuTnVsbERlcmVmZXJlbmNlXQogIDM1MyB8ICAgICAgICAgKCpjdHh0 KS0+Y2IgPSBjYjsKICAgICAgfCAgICAgICAgIH5+fn5+fn5+fn5+fl5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIwOToxMzogd2FybmluZzogUmVzdWx0IG9mICdt YWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlz IGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JyBbdW5peC5N YWxsb2NTaXplb2ZdCiAgMjA5IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxl bSA9IG1hbGxvYyhzaXplb2YodWludDE2X3QpKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVx dWVzdC5jOjIzNzoxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0 byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNp emVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JyBbdW5peC5NYWxsb2NTaXplb2ZdCiAgMjM3IHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWlu dDMyX3QpKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9nYXR0LWNs aWVudC5jOjE1Njk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBb dW5peC5NYWxsb2NdCiAxNTY5IHwgICAgICAgICBub3RpZnlfY2xpZW50X3VucmVmKGNsaWVudCk7 CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjk6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlz IHVuaW5pdGlhbGl6ZWQgW2NvcmUudW5pbml0aWFsaXplZC5Bc3NpZ25dCiAgMTI5IHwgICAgICAg ICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMwOToxMTogd2FybmluZzogQXNzaWdu ZWQgdmFsdWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVkLkFzc2lnbl0KICAz MDkgfCAgICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXht bC5jOjM0NzoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgdW5pbml0aWFsaXplZCBbY29y ZS51bmluaXRpYWxpemVkLkFzc2lnbl0KICAzNDcgfCAgICAgICAgICAgICAgICAgICAgICAgICBi dWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KdW5pdC9hdmR0cC5jOjc1Njoy NTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2Nd CiAgNzU2IHwgICAgICAgICAgICAgICAgIHNlc3Npb24tPnByaW9fcXVldWUgPSBnX3NsaXN0X3Jl bW92ZShzZXNzaW9uLT5wcmlvX3F1ZXVlLCByZXEpOwogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp1bml0L2F2ZHRwLmM6NzYzOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KICA3NjMgfCAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ cmVxX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnVuaXQvYXZyY3At bGliLmM6MTk2ODozOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlIFtjb3JlLkNhbGxBbmRNZXNzYWdlXQogMTk2OCB8ICAgICAgICAg ICAgICAgICBnX2ZyZWUodGV4dFtpXSk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fgp1bml0L2F2cmNwLWxpYi5jOjM1MTA6NDogd2FybmluZzogQWRkcmVzcyBvZiBzdGFj ayBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIGxvY2FsIHZhcmlhYmxlICd2YWwnIGlzIHN0aWxsIHJl ZmVycmVkIHRvIGJ5IHRoZSBjYWxsZXIgdmFyaWFibGUgJ2lvdicgdXBvbiByZXR1cm5pbmcgdG8g dGhlIGNhbGxlci4gIFRoaXMgd2lsbCBiZSBhIGRhbmdsaW5nIHJlZmVyZW5jZSBbY29yZS5TdGFj a0FkZHJlc3NFc2NhcGVdCiAzNTAzIHwgICAgICAgICBzdHJ1Y3QgbWVkaWFfaXRlbSB2YWxbQVZS Q1BfTUVESUFfQVRUUklCVVRFX0xBU1RdOwogICAgICB8ICAgICAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogMzUwNCB8IAogMzUwNSB8ICAgICAg ICAgZm9yIChpID0gMDsgaSA8IG51bWJlcjsgaSsrKSB7CiAzNTA2IHwgICAgICAgICAgICAgICAg IHVpbnQxNl90IGxlbiA9IDA7CiAzNTA3IHwgCiAzNTA4IHwgICAgICAgICAgICAgICAgIGlmIChh dHRyc1tpXSA+IEFWUkNQX01FRElBX0FUVFJJQlVURV9MQVNUIHx8CiAzNTA5IHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdHRyc1tpXSA9PSBBVlJDUF9NRURJQV9BVFRSSUJVVEVf SUxMRUdBTCkKIDM1MTAgfCAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnVuaXQvYXZyY3AtbGli LmM6MzUyNjoyOiB3YXJuaW5nOiBBZGRyZXNzIG9mIHN0YWNrIG1lbW9yeSBhc3NvY2lhdGVkIHdp dGggbG9jYWwgdmFyaWFibGUgJ3ZhbCcgaXMgc3RpbGwgcmVmZXJyZWQgdG8gYnkgdGhlIGNhbGxl ciB2YXJpYWJsZSAnaW92JyB1cG9uIHJldHVybmluZyB0byB0aGUgY2FsbGVyLiAgVGhpcyB3aWxs IGJlIGEgZGFuZ2xpbmcgcmVmZXJlbmNlIFtjb3JlLlN0YWNrQWRkcmVzc0VzY2FwZV0KIDM1MDMg fCAgICAgICAgIHJldHVybiB0cnVlOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn4KMyB3YXJu aW5ncyBnZW5lcmF0ZWQuCnVuaXQvdGVzdC11dGlsLmM6MzM6ODogd2FybmluZzogUG90ZW50aWFs IGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3AxJyBbdW5peC5NYWxsb2NdCiAgIDMzIHwg ICAgICAgICBwMlswXSA9IDE7CiAgICAgIHwgICAgICAgICB+fn5+fn5efn4KdW5pdC90ZXN0LXV0 aWwuYzozNjozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBi eSAncDInIFt1bml4Lk1hbGxvY10KICAgMzYgfCAgICAgICAgICAgICAgICAgX2NsZWFudXBfZnJl ZV8gdWludDhfdCAqZGF0YSA9IE5VTEw7CiAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDoxMzQ6MjQ6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ19jbGVhbnVwX2ZyZWVfJwogIDEzNCB8ICNkZWZpbmUgX2NsZWFu dXBfZnJlZV8gX2NsZWFudXBfKGZyZWVwKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg XgouL3NyYy9zaGFyZWQvdXRpbC5oOjEzMjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAn X2NsZWFudXBfJwogIDEzMiB8ICNkZWZpbmUgX2NsZWFudXBfKGYpIF9fYXR0cmlidXRlX18oKGNs ZWFudXAoZikpKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF4KdW5pdC90ZXN0LXV0aWwu Yzo0MjozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAn ZGF0YScgW3VuaXguTWFsbG9jXQogICA0MiB8ICAgICAgICAgICAgICAgICBhc3NlcnQoaXNfbnVs bF90b28gPT0gTlVMTCk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYXNzZXJ0Lmg6MTcwOjExOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdhc3NlcnQnCiAgMTcwIHwgICAoKHZvaWQpIHNpemVvZiAoKGV4cHIpID8gMSA6 IDApLCBfX2V4dGVuc2lvbl9fICh7ICAgICAgICAgICAgICAgICAgICAgXAogICAgICB8ICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KcHJvZmls ZXMvYXVkaW8vbWVkaWEuYzoxMTI1Ojc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTEyNSB8ICAgICAgICAgICAgICAgICBpZiAocmVxLT5j YiAhPSBwYWNfc2VsZWN0X2NiKSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2Y3RwLmM6MTU4OTozOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDE1ODkg fCAgICAgICAgICAgICAgICAgYXZjdHBfZGlzY29ubmVjdGVkKHNlcnZlci0+c2Vzc2lvbnMtPmRh dGEpOwogICAgICB8ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KcHJvZmlsZXMvYXVkaW8vYTJkcC5j OjQ0Mjo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1h bGxvY10KICA0NDIgfCAgICAgICAgICAgICAgICAgaWYgKCFjYi0+cmVzdW1lX2NiKQogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYTJkcC5j OjMzOTA6MjA6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnc3RhcnRpbmcnIHJlc3VsdHMgaW4g YSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ3N0 cmVhbScpIFtjb3JlLk51bGxEZXJlZmVyZW5jZV0KIDMzOTAgfCAgICAgICAgICAgICAgICAgc3Ry ZWFtLT5zdGFydGluZyA9IFRSVUU7CiAgICAgIHwgICAgICAgICAgICAgICAgIH5+fn5+fiAgICAg ICAgICAgXgpwcm9maWxlcy9hdWRpby9hMmRwLmM6MzM5Mzo4OiB3YXJuaW5nOiBBY2Nlc3MgdG8g ZmllbGQgJ3N1c3BlbmRpbmcnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ3N0cmVhbScpIFtjb3JlLk51bGxEZXJlZmVyZW5j ZV0KIDMzOTMgfCAgICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0tPnN1c3BlbmRpbmcgJiYgc3Ry ZWFtLT5zdXNwZW5kX3RpbWVyKSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2EyZHAuYzozNDUzOjIyOiB3YXJuaW5nOiBBY2Nl c3MgdG8gZmllbGQgJ3N1c3BlbmRpbmcnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51 bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ3N0cmVhbScpIFtjb3JlLk51bGxEZXJl ZmVyZW5jZV0KIDM0NTMgfCAgICAgICAgICAgICAgICAgc3RyZWFtLT5zdXNwZW5kaW5nID0gVFJV RTsKICAgICAgfCAgICAgICAgICAgICAgICAgfn5+fn5+ICAgICAgICAgICAgIF4KNCB3YXJuaW5n cyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2ZHRwLmM6ODk1OjI1OiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KICA4OTUgfCAgICAgICAg ICAgICAgICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnBy aW9fcXVldWUsIHJlcSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1 ZGlvL2F2ZHRwLmM6OTAyOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkIFt1bml4Lk1hbGxvY10KICA5MDIgfCAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1 ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2 cmNwLmM6MTkzNDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ29wZXJhbmRzJyBpcyBuZXZl ciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogMTkzNCB8ICAgICAgICAgb3BlcmFuZHMgKz0g c2l6ZW9mKCpwZHUpOwogICAgICB8ICAgICAgICAgXiAgICAgICAgICAgfn5+fn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCmF0dHJpYi9nYXR0LmM6OTcwOjI6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdsb25nX3dyaXRlJyBbdW5peC5NYWxsb2Nd CiAgOTcwIHwgICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAg fCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5l cmF0ZWQuCnNyYy9zZHBkLXJlcXVlc3QuYzoyMDk6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFs bG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBp bmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICd1aW50MTZfdCcgW3VuaXguTWFs bG9jU2l6ZW9mXQogIDIwOSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0g PSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CnNyYy9zZHBkLXJlcXVl c3QuYzoyMzc6MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8g YSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXpl b2Ygb3BlcmFuZCB0eXBlICd1aW50MzJfdCcgW3VuaXguTWFsbG9jU2l6ZW9mXQogIDIzNyB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQz Ml90KSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fiB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwLWNsaWVu dC5jOjM1MzoxNDogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdjYicgcmVzdWx0cyBpbiBhIGRl cmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIFtjb3JlLk51bGxEZXJlZmVyZW5jZV0KICAzNTMg fCAgICAgICAgICgqY3R4dCktPmNiID0gY2I7CiAgICAgIHwgICAgICAgICB+fn5+fn5+fn5+fn5e fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zZHAteG1sLmM6MTI5OjEwOiB3YXJuaW5nOiBB c3NpZ25lZCB2YWx1ZSBpcyB1bmluaXRpYWxpemVkIFtjb3JlLnVuaW5pdGlhbGl6ZWQuQXNzaWdu XQogIDEyOSB8ICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDk6MTE6 IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIHVuaW5pdGlhbGl6ZWQgW2NvcmUudW5pbml0aWFs aXplZC5Bc3NpZ25dCiAgMzA5IHwgICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0 YVtpICsgMV07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+ fn5+fn4Kc3JjL3NkcC14bWwuYzozNDc6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIHVu aW5pdGlhbGl6ZWQgW2NvcmUudW5pbml0aWFsaXplZC5Bc3NpZ25dCiAgMzQ3IHwgICAgICAgICAg ICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNy Yy9nYXR0LWNsaWVudC5jOjE1Njk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZCBbdW5peC5NYWxsb2NdCiAxNTY5IHwgICAgICAgICBub3RpZnlfY2xpZW50X3VucmVm KGNsaWVudCk7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3 YXJuaW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtaGVhZGVyLmM6OTU6Mjogd2FybmluZzogTnVs bCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcgW2Nv cmUuTm9uTnVsbFBhcmFtQ2hlY2tlcl0KICAgOTUgfCAgICAgICAgIG1lbWNweSh0bywgZnJvbSwg Y291bnQpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtdHJhbnNmZXIuYzo0MjQ6Nzogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAgNDI0IHwgICAgICAgICBp ZiAoIWdfc2xpc3RfZmluZCh0cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgfCAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu Cm1lc2gvbWFpbi5jOjE2MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ29wdGFyZycgaXMg bmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAxNjIgfCAgICAgICAgICAgICAgICAg b3B0YXJnICs9IHN0cmxlbigiYXV0byIpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICAg ICAgfn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZG9jL29yZy5ibHVlei5MRUFk dmVydGlzZW1lbnQucnN0OjE3NjogKFdBUk5JTkcvMikgVGl0bGUgdW5kZXJsaW5lIHRvbyBzaG9y dC4KCnN0cmluZyBCcm9hZGNhc3ROYW1lIFtyZWFkb25seSwgb3B0aW9uYWxdCmBgYGBgYGBgYGBg YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAKRXhpdGluZyBkdWUgdG8gbGV2ZWwtMiAoV0FSTklO Rykgc3lzdGVtIG1lc3NhZ2UuCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6MTI3MDA6IGRvYy9vcmcu Ymx1ZXouTEVBZHZlcnRpc2VtZW50LjVdIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9y IHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0MzIyOiBhbGxdIEVycm9y IDIKCgpodHRwczovL2dpdGh1Yi5jb20vYmx1ZXovYmx1ZXovcHVsbC8yNTc5CgotLS0KUmVnYXJk cywKTGludXggQmx1ZXRvb3RoCgo= --===============8618463454254093714==--