From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (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 F353C279781 for ; Mon, 28 Apr 2025 14:57:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745852268; cv=none; b=R3+swWsqBr+FQCW8C6ccIhKoRLgvTSWYVMAjUq9ehsH+n2eRulGSL6FVamRzKMWSxK0VO5nKN9coOdqRnAsQ8kqLkIuBkhvX5pnRLdCZsrAEaowDi5LUYEk25+FsTSdGg0sdvmTdNhpQkNyXOlHoHZZBVcTLLhPaTlWfUsFpiaE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745852268; c=relaxed/simple; bh=VMHBQ6K59xtk0rClbwl2p+u3ElfC/EDRIpj/sMH3DgA=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=ess3NiYsiEgB76oilXaL5F1fakoejiJeaPDtmk7zLuCQn0qYOfHzF/b5WIGWSws6OoXaMJlUr5Yxu3bvOqc0quzYz0mprriTcS/bdZsztJvMiF05psBCxKIyoMm8bQqpW1AWsyx5ndb/WTMOyPRrUwzoQIe4oy5Inf4ay88tV2M= 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=d/4h5xsM; arc=none smtp.client-ip=209.85.222.175 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="d/4h5xsM" Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-7c5aecec8f3so882165885a.1 for ; Mon, 28 Apr 2025 07:57:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745852263; x=1746457063; 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=VMHBQ6K59xtk0rClbwl2p+u3ElfC/EDRIpj/sMH3DgA=; b=d/4h5xsMgxeMQAKmkoIQy40VvXHuKN0dAdhHfGGCvM8skLX6k1Bi3P8Mp+iNpYK60L 9pvLA59p6ydYKT5oxNNCQ75Q8phX0Jqs/BdgJY57nVs6XOTsMP4l81UyBRPFE9h7M2YX cYqA62zvg3rdulZU7hWYYCgBkQrRIf2kEsWdlZA9L//nCOMwOe82a33q+lxyrOOA2OQY fc2aIuS7BnFqvTzYxOtI0fp0hndxSdaDgGP/EoH35Cj7x1+NqZ7FoUI2H0ETmwOXacg+ Wi8snwneQ4a9SMYSrBkDSFhb3gp3nSydWiFPkYYN23kcHe2Y0DOptDCbVlLnSnl8hZY5 74Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745852263; x=1746457063; 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=VMHBQ6K59xtk0rClbwl2p+u3ElfC/EDRIpj/sMH3DgA=; b=UqRPQDJIiA5lOjeX20Sg/Iae46n00A6frSEqpsbpBVsYJX3SKoy8QuspDciETHrnaL +fnZnuAjUyc+UuucrXf7x57J6Kov1B0qlOCdxYESKVtMeKpDo98Gvo+4ul957ScAZMHQ dzJUg6BPoqS1Nr0g2lenpIy+Q42zXiexP84susRAdYxqe6uwcc+S6zHwmiP4wvXSaXre mzIgNuXNPsZu07s5xlY2RJpEcvKdVqN+hfp2xNaNKE9er10R1rALP+lGyVfQYQ+NLmQV v12UOKOX1HwJP2+e0U/pADNSGef0eez8PBSJVejKqm8KlfSKJen6ebFwQxrTYyom6Jf9 G92g== X-Gm-Message-State: AOJu0YxibJS9jG588hGhruL1xH4bEFi0jbhNUxbo9ivUBvFImgtUITcy 0Az8gudrIzdCGxzgJ3rQvC2DXj0Fh1E0TyyMMeBdYZuIc+oOSws/UcX3Fg== X-Gm-Gg: ASbGncvpEDkh7gnaH/Zh0bmBmHYAQxxOXViHkWfhbvPo8QJzV6WbVizkfomGo/v5M2c KupNCe8d5T6zOBnoA9W2dzFubon4a1baS3JvxNGXEbRAvHxj+iXs5Tr4w40UWC3vY4V35R0f843 +lC8xjZ5SSL9ytooJHLIorM5+9hBKgNtdQmpK8WmRQlZhIwo30HRu8I4D3by05jB7se7iZbbs3k shFL0EanXzUlrVigw7fjeBvUy3suMZ0K24X2F8yg1NkV2KKsD+XmaurkXekVvGlgDRi7nCY63I8 LibcjvH21BTR+kHuCU1rMNy50Ll7Qnuq4bTooqKEtQUYyQ== X-Google-Smtp-Source: AGHT+IEWQd5sq28fuElCCcy08ZX3tRXApk53T5vz6k1VdLZ1/mWzg92xdo5qstkTqYguqYS8YVrauQ== X-Received: by 2002:a05:620a:459f:b0:7c5:4a8e:b6b with SMTP id af79cd13be357-7c9668bfd52mr1343604885a.46.1745852262738; Mon, 28 Apr 2025 07:57:42 -0700 (PDT) Received: from [172.17.0.2] ([20.49.54.163]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c958c91a98sm632964485a.3.2025.04.28.07.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Apr 2025 07:57:42 -0700 (PDT) Message-ID: <680f9766.050a0220.36add6.52e5@mx.google.com> Date: Mon, 28 Apr 2025 07:57:42 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============2799677568581814423==" 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, kernel.org@pileofstuff.org Subject: RE: obexd: unregister profiles when the user is inactive In-Reply-To: <20250428131842.488921-2-kernel.org@pileofstuff.org> References: <20250428131842.488921-2-kernel.org@pileofstuff.org> Reply-To: linux-bluetooth@vger.kernel.org --===============2799677568581814423== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9OTU3NzMwCgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQRU5ESU5HICAgMC4yOCBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBF TkRJTkcgICAwLjI1IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDIwLjg2IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDI3MTYuMjAgc2Vjb25kcwpNYWtlQ2hlY2sgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MjIuMzggc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBQQVNTICAgICAgMjAw Ljg1IHNlY29uZHMKQ2hlY2tWYWxncmluZCAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE5Ni4w NiBzZWNvbmRzCkNoZWNrU21hdGNoICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAyOTkuNTUg c2Vjb25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgMTI1LjQ4IHNl Y29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgUEVORElORyAgIDAuNTUgc2Vjb25k cwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDUwLjUzIHNlY29uZHMK CkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrUGF0Y2gg LSBQRU5ESU5HCkRlc2M6IFJ1biBjaGVja3BhdGNoLnBsIHNjcmlwdApPdXRwdXQ6CgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogR2l0TGludCAtIFBFTkRJTkcKRGVzYzogUnVu IGdpdGxpbnQKT3V0cHV0OgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEJs dWV6TWFrZSAtIEZBSUwKRGVzYzogQnVpbGQgQmx1ZVoKT3V0cHV0OgoKdG9vbHMvbWdtdC10ZXN0 ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMjkwNzo1 OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2 YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTI5MDcgfCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1h dmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3NjY6NTog bm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFy LXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZy Y3AuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2cmNwLmM6OTg5OjU6IG5v dGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10 cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDk4OSB8IGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4Kb2JleGQvc3JjL2xvZ2lu ZC5jOiBJbiBmdW5jdGlvbiDigJh1cGRhdGXigJk6Cm9iZXhkL3NyYy9sb2dpbmQuYzo2NDoyOiBl cnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYZnJlZeKAmSBbLVdlcnJv cj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgNjQgfCAgZnJlZShzdGF0ZSk7CiAg ICAgIHwgIF5+fn4Kb2JleGQvc3JjL2xvZ2luZC5jOjY0OjI6IGVycm9yOiBpbmNvbXBhdGlibGUg aW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24g4oCYZnJlZeKAmSBbLVdl cnJvcl0Kb2JleGQvc3JjL2xvZ2luZC5jOjI2OjE6IG5vdGU6IGluY2x1ZGUg4oCYPHN0ZGxpYi5o PuKAmSBvciBwcm92aWRlIGEgZGVjbGFyYXRpb24gb2Yg4oCYZnJlZeKAmQogICAyNSB8ICNpbmNs dWRlICJvYmV4ZC9zcmMvbG9naW5kLmgiCiAgKysrIHwrI2luY2x1ZGUgPHN0ZGxpYi5oPgogICAy NiB8IApjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAq KiogW01ha2VmaWxlOjk3NzY6IG9iZXhkL3NyYy9vYmV4ZC1sb2dpbmQub10gRXJyb3IgMQptYWtl WzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2Vm aWxlOjQ2OTA6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVz dDogTWFrZUNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVjawpPdXRwdXQ6Cgpv YmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmHVwZGF0ZeKAmToKb2JleGQvc3JjL2xv Z2luZC5jOjY0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhm cmVl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA2NCB8ICBm cmVlKHN0YXRlKTsKICAgICAgfCAgXn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6NjQ6MjogZXJyb3I6 IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiDi gJhmcmVl4oCZIFstV2Vycm9yXQpvYmV4ZC9zcmMvbG9naW5kLmM6MjY6MTogbm90ZTogaW5jbHVk ZSDigJg8c3RkbGliLmg+4oCZIG9yIHByb3ZpZGUgYSBkZWNsYXJhdGlvbiBvZiDigJhmcmVl4oCZ CiAgIDI1IHwgI2luY2x1ZGUgIm9iZXhkL3NyYy9sb2dpbmQuaCIKICArKysgfCsjaW5jbHVkZSA8 c3RkbGliLmg+CiAgIDI2IHwgCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJy b3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5v XSBFcnJvciAxCm1ha2U6ICoqKiBbTWFrZWZpbGU6MTIzNDU6IGNoZWNrXSBFcnJvciAyCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1ZhbGdyaW5kIC0gRkFJTApEZXNj OiBSdW4gQmx1ZXogTWFrZSBDaGVjayB3aXRoIFZhbGdyaW5kCk91dHB1dDoKCnRvb2xzL21nbXQt dGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI5 MDc6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKA mC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyOTA3IHwg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpvYmV4ZC9z cmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmHVwZGF0ZeKAmToKb2JleGQvc3JjL2xvZ2luZC5j OjY0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhmcmVl4oCZ IFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA2NCB8ICBmcmVlKHN0 YXRlKTsKICAgICAgfCAgXn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6NjQ6MjogZXJyb3I6IGluY29t cGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiDigJhmcmVl 4oCZIFstV2Vycm9yXQpvYmV4ZC9zcmMvbG9naW5kLmM6MjY6MTogbm90ZTogaW5jbHVkZSDigJg8 c3RkbGliLmg+4oCZIG9yIHByb3ZpZGUgYSBkZWNsYXJhdGlvbiBvZiDigJhmcmVl4oCZCiAgIDI1 IHwgI2luY2x1ZGUgIm9iZXhkL3NyYy9sb2dpbmQuaCIKICArKysgfCsjaW5jbHVkZSA8c3RkbGli Lmg+CiAgIDI2IHwgCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1h a2VbMV06ICoqKiBbTWFrZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5vXSBFcnJv ciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoq KiBbTWFrZWZpbGU6MTIzNDU6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0b29sIHdp dGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQt aGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBl cnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2 OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9i YXAuYzozMTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3No YXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4 ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3No ZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIz OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91 c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJ IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRv LmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhl bHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIu Yzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhp YmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToK Li9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3Ry dWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91 Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxp bmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVk ZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6 Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdD UEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rp b24nCnRvb2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6IHdhcm5pbmc6IHVua25vd24gZXNjYXBl IHNlcXVlbmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmls ZToKLi9saWIvYmx1ZXRvb3RoLmg6MjMyOjE1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBz dHJ1Y3R1cmVzCi4vbGliL2JsdWV0b290aC5oOjIzNzozMTogd2FybmluZzogYXJyYXkgb2YgZmxl eGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2FybmluZzogdW5rbm93 biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL29iZXgtY2xpZW50LXRvb2wuYzog bm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVh ZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFk bGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKYW5kcm9pZC9hdmN0cC5jOjUwNTozNDog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmFuZHJvaWQvYXZjdHAuYzo1 NTY6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3Qt YXZyY3AuYzozNzM6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1 bml0L3Rlc3QtYXZyY3AuYzozOTg6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzo0MTQ6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE1ODM6MzQ6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxp Yi5jOjE2MTI6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRy b2lkL2F2cmNwLWxpYi5jOjE2Mzg6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgptZXNoL21lc2gtaW8tbWdtdC5jOjUyNDo2Nzogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCmNsaWVudC9kaXNwbGF5LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZp bGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGlu ZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVk ZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4 OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn Q1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVy cy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9z aGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzox MzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzoz MTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9i YXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTog d2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Jl YWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24n Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCm1vbml0b3IvcGFja2V0LmM6IG5vdGU6 IGluIGluY2x1ZGVkIGZpbGU6Cm1vbml0b3IvZGlzcGxheS5oOjgyOjI2OiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbW9uaXRvci9wYWNrZXQuYzoxODc2OjI2OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbW9uaXRvci9wYWNrZXQuYzogbm90 ZTogaW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9idC5oOjM2MDc6NTI6IHdhcm5pbmc6IGFycmF5 IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKbW9uaXRvci9idC5oOjM1OTU6NDA6IHdhcm5pbmc6IGFy cmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKbW9uaXRvci9sMmNhcC5jOiBub3RlOiBpbiBpbmNs dWRlZCBmaWxlOgptb25pdG9yL2Rpc3BsYXkuaDo4MjoyNjogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCm1vbml0b3IvbXNmdC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxl Ogptb25pdG9yL21zZnQuaDo4ODo0NDogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0 dXJlcwptb25pdG9yL2F0dC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL2Rpc3Bs YXkuaDo4MjoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xz L3JjdGVzdC5jOjYyNzozMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ2F1dG9tYXRlZF9zZW5kX3JlY3YnCnRvb2xzL2hleDJoY2QuYzoxMzY6MjY6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp0b29scy9tZXNoY3RsLmM6 MzI0OjMzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnZm9yZ2V0X21lc2hfZGV2aWNlcycKdG9vbHMvbWVzaC1nYXR0L25vZGUuYzo0NTY6Mzk6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdub2RlX2dl dF9sb2NhbF9ub2RlJwp0b29scy9tZXNoLWdhdHQvbmV0LmM6MTIzOTozMDogd2FybmluZzogbm9u LUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldF9uZXh0X3NlcScKdG9v bHMvbWVzaC1nYXR0L25ldC5jOjIxOTM6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICduZXRfZ2V0X2RlZmF1bHRfdHRsJwp0b29scy9tZXNoLWdh dHQvbmV0LmM6MjIwNzoyNjogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ25ldF9nZXRfc2VxX251bScKdG9vbHMvbWVzaC1nYXR0L3Byb3YuYzogbm90 ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxp bmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGlu ZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKdG9vbHMvbWVzaC1nYXR0L29ub2ZmLW1vZGVs LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmVsbC9sb2cuYzo0MzE6NjU6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdyZWdpc3Rl cl9kZWJ1Z19zZWN0aW9uJwplbGwvbG9nLmM6NDM5OjY4OiB3YXJuaW5nOiBub24tQU5TSSBmdW5j dGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZnJlZV9kZWJ1Z19zZWN0aW9ucycKZWxsL3Jh bmRvbS5jOjYwOjQyOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnbF9nZXRyYW5kb21faXNfc3VwcG9ydGVkJwplbGwvY2lwaGVyLmM6NjYwOjI4OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnaW5pdF9z dXBwb3J0ZWQnCmVsbC9jaGVja3N1bS5jOjM4MjoyODogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2luaXRfc3VwcG9ydGVkJwplbGwvY2hlY2tzdW0u Yzo0NDQ6NDc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdsX2NoZWNrc3VtX2NtYWNfYWVzX3N1cHBvcnRlZCcKZWxsL2NpcGhlci5jOjUxOToyNDog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9jZXJ0LWNyeXB0by5j OjM2OjMzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL2NlcnQt Y3J5cHRvLmM6MTQyOjM2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K ZWxsL2NlcnQtY3J5cHRvLmM6MTk4OjM2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4KZWxsL2NlcnQtY3J5cHRvLmM6MjUxOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4KZWxsL2tleS5jOjU1MDoyNTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCmVsbC9kYnVzLXNlcnZpY2UuYzo1NDg6NDk6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdfZGJ1c19vYmplY3RfdHJl ZV9uZXcnCmVsbC9kYnVzLWZpbHRlci5jOjIzMjo0Njogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC90bHMuYzo0NToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC90bHMuYzo4NjoyMjogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC90bHMuYzo4Njo0Njogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA3ODoyNTogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA4MDozNDogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA4Mzo0 MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVz LmM6MTEzMjo0MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90 bHMuYzoxODE5OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11 bGF0b3IvYnRkZXYuYzo0NTM6Mjk6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgplbXVsYXRvci9idGhvc3QuYzo2Mjg6Mjg6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgplbXVsYXRvci9idGhvc3QuYzo4MjY6Mjg6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgphdHRyaWIvZ2F0dHRvb2wuYzoyMzU6MjM6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphdHRyaWIvaW50ZXJhY3RpdmUuYzogbm90 ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxp bmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGlu ZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKYXR0cmliL2ludGVyYWN0aXZlLmM6MTc0OjI3 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZGlz Y29ubmVjdF9pbycKYXR0cmliL2ludGVyYWN0aXZlLmM6Mjk5OjIzOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KcHJvZmlsZXMvc2FwL3NlcnZlci5jOiBub3RlOiBpbiBp bmNsdWRlZCBmaWxlOgpwcm9maWxlcy9zYXAvc2FwLmg6Nzc6MzU6IHdhcm5pbmc6IGFycmF5IG9m IGZsZXhpYmxlIHN0cnVjdHVyZXMKb2JleGQvc3JjL2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJh1 cGRhdGXigJk6Cm9iZXhkL3NyYy9sb2dpbmQuYzo2NDoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24g4oCYZnJlZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1k ZWNsYXJhdGlvbl0KICAgNjQgfCAgZnJlZShzdGF0ZSk7CiAgICAgIHwgIF5+fn4Kb2JleGQvc3Jj L2xvZ2luZC5jOjY0OjI6IGVycm9yOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgYnVpbHQtaW4gZnVuY3Rpb24g4oCYZnJlZeKAmSBbLVdlcnJvcl0Kb2JleGQvc3JjL2xvZ2lu ZC5jOjI2OjE6IG5vdGU6IGluY2x1ZGUg4oCYPHN0ZGxpYi5oPuKAmSBvciBwcm92aWRlIGEgZGVj bGFyYXRpb24gb2Yg4oCYZnJlZeKAmQogICAyNSB8ICNpbmNsdWRlICJvYmV4ZC9zcmMvbG9naW5k LmgiCiAgKysrIHwrI2luY2x1ZGUgPHN0ZGxpYi5oPgogICAyNiB8IApjYzE6IGFsbCB3YXJuaW5n cyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjk3NzY6IG9i ZXhkL3NyYy9vYmV4ZC1sb2dpbmQub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3Ig dW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2OTA6IGFsbF0gRXJyb3Ig MgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogYmx1ZXptYWtlZXh0ZWxsIC0g RkFJTApEZXNjOiBCdWlsZCBCbHVleiB3aXRoIEV4dGVybmFsIEVMTApPdXRwdXQ6CgpvYmV4ZC9z cmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmHVwZGF0ZeKAmToKb2JleGQvc3JjL2xvZ2luZC5j OjY0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhmcmVl4oCZ IFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA2NCB8ICBmcmVlKHN0 YXRlKTsKICAgICAgfCAgXn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6NjQ6MjogZXJyb3I6IGluY29t cGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiDigJhmcmVl 4oCZIFstV2Vycm9yXQpvYmV4ZC9zcmMvbG9naW5kLmM6MjY6MTogbm90ZTogaW5jbHVkZSDigJg8 c3RkbGliLmg+4oCZIG9yIHByb3ZpZGUgYSBkZWNsYXJhdGlvbiBvZiDigJhmcmVl4oCZCiAgIDI1 IHwgI2luY2x1ZGUgIm9iZXhkL3NyYy9sb2dpbmQuaCIKICArKysgfCsjaW5jbHVkZSA8c3RkbGli Lmg+CiAgIDI2IHwgCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1h a2VbMV06ICoqKiBbTWFrZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5vXSBFcnJv ciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoq KiBbTWFrZWZpbGU6NDY5MDogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBJbmNyZW1lbnRhbEJ1aWxkIC0gUEVORElORwpEZXNjOiBJbmNyZW1lbnRhbCBi dWlsZCB3aXRoIHRoZSBwYXRjaGVzIGluIHRoZSBzZXJpZXMKT3V0cHV0OgoKIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFNjYW5CdWlsZCAtIEZBSUwKRGVzYzogUnVuIFNjYW4g QnVpbGQKT3V0cHV0OgoKc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3Rl cihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUo b3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5NjoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTEw MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MTI5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MTM2MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBh dHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNjo2OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsK ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTY0 MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoyMTQ3OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU1Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI0NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEs IHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjY2OjI6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVm KHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4K c3JjL3NoYXJlZC9iYXAuYzoxNDk1Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjIyNDU6MjA6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXR1cm4gcXVldWVfZmlu ZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVMTCwgc3RyZWFtKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3At PmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBh dHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTEwMjoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9w LCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5NjoyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29w X2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MTM2MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTYzNjo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTY0MToyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAg ICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ3OjY6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9o YXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoyMTU1Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk aXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MzI0NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjY2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpYXR0YWNoLmM6ODE3 Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4g dGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVh ZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCAxMCkp IDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvaGNpYXR0YWNoLmM6ODY1Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQg dG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMg bmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2 ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjg4Nzo4OiB3YXJuaW5nOiBBbHRob3VnaCB0 aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lv biwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICAgICAg ICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCAxMCkpIDwgMCkgewogICAgICAg ICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lh dHRhY2guYzo5MDk6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicg aXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBh Y3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQs IHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTMwOjc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1 ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUg dmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJl YWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjk3NDo3OiB3YXJuaW5nOiBB bHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Npbmcg ZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAg ICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNikpIDwgMCkgewogICAgICAg ICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo2IHdhcm5pbmdzIGdlbmVyYXRl ZC4Kc3JjL3NoYXJlZC9iYXAuYzoxNDk1Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjIyNDU6MjA6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXR1cm4gcXVldWVf ZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVMTCwgc3RyZWFtKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3Jj L291aS5jOjUwOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVh ZAogICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJfdW5yZWYoaHdkYik7CiAgICAgICAgXiAgICAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvb3VpLmM6NTM6Mjogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICd1ZGV2JyBpcyBuZXZlciByZWFkCiAgICAgICAgdWRldiA9IHVkZXZfdW5yZWYodWRldik7 CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRv b2xzL3JmY29tbS5jOjIzNDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAg ICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29t bS5jOjIzNDo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIg ZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgaSA9IGV4ZWN2cChjbWRhcmd2WzBd LCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvcmZjb21tLmM6MzU0Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9y ZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVl IGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZk ID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAg ICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9y ZmNvbW0uYzo0OTc6MTQ6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5k ZWZpbmVkCiAgICAgICAgcmVxLmNoYW5uZWwgPSByYWRkci5yY19jaGFubmVsOwogICAgICAgICAg ICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo1MTU6ODogd2Fybmlu ZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xv c2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdm ZCcKICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19O T0NUVFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CjUgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9oY2lkdW1wLmM6 MTgwOjk6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdk cCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmRzW2ldLmZkID09IHNvY2sp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgp0b29scy9oY2lkdW1wLmM6 MjQ4OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRoLT50c19zZWMgID0gaHRvYmwoZnJtLnRz LnR2X3NlYyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6MzI2Ojk6IHdhcm5pbmc6IDFzdCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmUzMnRvaChkcC5mbGFncykgJiAweDAyKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3Iv aW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRv aCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM0MToyMDogd2FybmluZzogMXN0IGZ1 bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZybS5kYXRhX2xlbiA9IGJlMzJ0b2goZHAubGVuKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3Jv ICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6MzQ2OjE0OiB3YXJuaW5n OiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID0gYmUzMnRvaChkcC5mbGFncykg JiAweGZmZmY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQog ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzg0OjE3 OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg ICAgICAgICAgICAgICAgICBmcm0uZGF0YV9sZW4gPSBidG9ocyhkaC5sZW4pOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAu YzozOTQ6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVk CiAgICAgICAgICAgICAgICBmcm0ubGVuID0gZnJtLmRhdGFfbGVuOwogICAgICAgICAgICAgICAg ICAgICAgICBeIH5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk4Ojk6IHdhcm5pbmc6IDFz dCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAg ICAgICAgICAgICAgICAgICAgdHMgPSBiZTY0dG9oKHBoLnRzKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NTE6MjI6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlNjR0b2gnCiMgIGRlZmluZSBiZTY0dG9oKHgpIF9f YnN3YXBfNjQgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hj aWR1bXAuYzo0MDM6MTM6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgZnJtLmluID0gYmUz MnRvaChkcC5mbGFncykgJiAweDAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFu ZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIg KHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0 MDg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAg ICAgICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGRoLmluOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fgp0b29scy9oY2lkdW1wLmM6NDM3Ojc6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAg ICAgZmQgPSBvcGVuKGZpbGUsIG9wZW5fZmxhZ3MsIDA2NDQpOwogICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxMSB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRv b2wuYzozNTA6Nzogd2FybmluZzogNXRoIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p bml0aWFsaXplZCB2YWx1ZQogICAgICAgIHNrID0gZG9fY29ubmVjdChjdGwsIGRldl9pZCwgJnNy YywgJmRzdCwgcHNtLCAoMSA8PCBDTVRQX0xPT1BCQUNLKSk7CiAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgox IHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWdu ZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9 IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3Nk cC14bWwuYzozMDA6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5k ZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMz ODoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAg ICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29s cy9zZHB0b29sLmM6OTQxOjI2OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVy dGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICd1aW50MzJfdCcsIHdoaWNoIGlzIGluY29tcGF0aWJs ZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ2ludCcKICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKnZhbHVlX2ludCA9IG1hbGxvYyhzaXplb2YoaW50KSk7CiAgICAgICAgICAgICAg ICAgICAgICAgIH5+fn5+fn5+fn4gICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn4KdG9vbHMv c2RwdG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBh biB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUoYWxsb2NB cnJheVtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvc2RwdG9vbC5jOjM3Nzc6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBv aW50ZWQgdG8gYnkgJ3NpLm5hbWUnCiAgICAgICAgcmV0dXJuIGFkZF9zZXJ2aWNlKDAsICZzaSk7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjQxMTI6 NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2NvbnRl eHQuc3ZjJwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYXZ0ZXN0LmM6 MjQzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv YXZ0ZXN0LmM6MjUzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1Ziwg NCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6MjYyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjc2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyODM6NTogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI5MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjk3OjU6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMDk6NTogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMTM6NTogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjI6 NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzozMjY6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzozMzU6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNDI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNjQ6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNjg6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNzc6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzozODE6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzozOTQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzozOTg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0 ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo0MDU6NDogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjQxNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6NTgwOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU4ODozOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgaW52YWxpZCA/IDIgOiAzKTsKICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjAy OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0ICsgbWVkaWFfdHJhbnNwb3J0X3NpemUpOwog ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzo2MTU6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwog ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjI1 OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYzNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzo2NTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjY0OjM6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjY3MzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2ODA6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NzE2OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgQVZD VFBfSEVBREVSX0xFTkdUSCArIHNpemVvZihwbGF5X3ByZXNzZWQpKTsKICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjMyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRwcm94eS5jOjgzNjoxNTogd2FybmluZzog TnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcK ICAgICAgICAgICAgICAgICAgICAgICAgdGNwX3BvcnQgPSBhdG9pKG9wdGFyZyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnRvb2xzL2J0cHJveHkuYzo4 Mzk6ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVj dGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmxlbihvcHRhcmcp ID4gMyAmJiAhc3RybmNtcChvcHRhcmcsICJoY2kiLCAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jcmVhdGUt aW1hZ2UuYzo3NjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9j cmVhdGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0 b29scy9jcmVhdGUtaW1hZ2UuYzo5MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAgICAgICAgICAgXiAg ICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzoxMDU6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgIGZkID0gLTE7CiAgICAgICAgXiAgICB+fgo0IHdh cm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2hlY2stc2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ3B0cicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgcHRyID0g ZmdldHMocmVzdWx0LCBzaXplb2YocmVzdWx0KSwgZnApOwogICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRv b2xzL2dhdHQtc2VydmljZS5jOjI5NDoyOiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1 bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgY2hyX3dyaXRlKGNociwgdmFs dWUsIGxlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KdG9vbHMvYnRnYXR0LWNsaWVudC5jOjE4MjQ6Mjogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJndiArPSBvcHRpbmQ7CiAgICAg ICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LXNlcnZl ci5jOjEyMTI6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFk CiAgICAgICAgYXJndiAtPSBvcHRpbmQ7CiAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KdG9vbHMvb2JleC1zZXJ2ZXItdG9vbC5jOjEzMzoxMzogd2FybmluZzogTnVs bCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAg ICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT0NUVFks IDA2MDApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvb2JleC1zZXJ2ZXItdG9vbC5jOjE5MjoxMzogd2Fybmlu ZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVs bCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSwgMCk7 CiAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIg d2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idHBjbGllbnRjdGwuYzo0MDI6Mzogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdiaXQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGJpdCA9 IDA7CiAgICAgICAgICAgICAgICBeICAgICB+CnRvb2xzL2J0cGNsaWVudGN0bC5jOjE2NTU6Mjog d2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAn bm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEsIGFkX2RhdGEsIGFkX2xlbik7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVk LgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycg aXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21w YXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycg aXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21w YXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+ fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxOTY4OjM6IHdhcm5p bmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUK ICAgICAgICAgICAgICAgIGdfZnJlZSh0ZXh0W2ldKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hdmR0cC5jOjg5Njoy NTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAg ICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnByaW9fcXVl dWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9hdWRpby9hdmR0cC5jOjkw MzoyNDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAg ICAgICAgc2Vzc2lvbi0+cmVxX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1 ZXVlLCByZXEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9m aWxlcy9hdWRpby9hMmRwLmM6MzcxOjg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICAgICAgICAgIGlmICghY2ItPnJlc3VtZV9jYikKICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRp by9hdnJjcC5jOjE5NjE6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdvcGVyYW5kcycgaXMg bmV2ZXIgcmVhZAogICAgICAgIG9wZXJhbmRzICs9IHNpemVvZigqcGR1KTsKICAgICAgICBeICAg ICAgICAgICB+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KcHJvZmlsZXMvaGVhbHRo L2hkcC5jOjY0NDozOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgICAgICAgICBoZHBfdG1wX2RjX2RhdGFfdW5yZWYoZGNfZGF0YSk7CiAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5j OjgwMDoxOTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg ICAgICAgICAgcGF0aCA9IGdfc3RyZHVwKGNoYW4tPnBhdGgpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn4KcHJvZmlsZXMvaGVhbHRoL2hkcC5jOjE3Nzk6Njogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaGRwX3RtcF9kY19kYXRhX3JlZihoZHBfY29ubiksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6MTgzNjozMDogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcGx5ID0gZ19kYnVzX2NyZWF0ZV9lcnJv cihkYXRhLT5tc2csIEVSUk9SX0lOVEVSRkFDRSAiLkhlYWx0aEVycm9yIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpw cm9maWxlcy9oZWFsdGgvaGRwX3V0aWwuYzoxMDUyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb25uX2RhdGEtPmZ1bmMoY29ubl9kYXRhLT5kYXRh LCBnZXJyKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KYXR0 cmliL2dhdHQuYzo5NzA6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50 ZWQgdG8gYnkgJ2xvbmdfd3JpdGUnCiAgICAgICAgcmV0dXJuIHByZXBhcmVfd3JpdGUobG9uZ193 cml0ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIxMToxMzogd2FybmluZzogUmVzdWx0IG9m ICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNo IGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZf dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+ fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIzOToxMzogd2FybmluZzogUmVzdWx0IG9m ICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNo IGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJf dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+ fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAtY2xpZW50LmM6MzUzOjE0 OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2NiJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ug b2YgYSBudWxsIHBvaW50ZXIKICAgICAgICAoKmN0eHQpLT5jYiA9IGNiOwogICAgICAgIH5+fn5+ fn5+fn5+fl5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdh cm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAg ICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+ fn5+fn5+CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBn YXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRh W2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3Jj L3NkcC14bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3Ig dW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdl bmVyYXRlZC4Kc3JjL2dhdHQtZGF0YWJhc2UuYzoxMTczOjEwOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2JpdHMnIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAg ICAgIHVpbnQ4X3QgYml0c1tdID0geyBCVF9HQVRUX0NIUkNfQ0xJX0ZFQVRfUk9CVVNUX0NBQ0hJ TkcsCiAgICAgICAgICAgICAgICBefn5+ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtdHJhbnNmZXIuYzo0 MjM6Nzogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlm ICghZ19zbGlzdF9maW5kKHRyYW5zZmVycywgdHJhbnNmZXIpKQogICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dv YmV4LWhlYWRlci5jOjk1OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMm5kIHBh cmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgbWVtY3B5KHRvLCBmcm9tLCBjb3Vu dCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4K bWVzaC9tYWluLmM6MTYyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnb3B0YXJnJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBvcHRhcmcgKz0gc3RybGVuKCJhdXRvIik7CiAgICAg ICAgICAgICAgICBeICAgICAgICAgfn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4K bGliL2hjaS5jOjk3OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSBzcHJpbnRmKHB0ciwgIiVzIiwgbS0+ c3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmNsaWVudC9wbGF5ZXIuYzoyMjE5Ojg6IHdhcm5p bmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51 bGwnCiAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChlcC0+cGF0aCwgcGF0dGVybikpCiAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY2xpZW50L3BsYXllci5j OjM0ODk6MTY6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBl eHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgY29kZWMtPm5hbWUgPSBzdHJkdXAobmFtZSk7CiAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmdk YnVzL3dhdGNoLmM6MjI2OjM6IHdhcm5pbmc6IEF0dGVtcHQgdG8gZnJlZSByZWxlYXNlZCBtZW1v cnkKICAgICAgICAgICAgICAgIGdfZnJlZShsLT5kYXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpsaWIvc2RwLmM6NTA5OjE3OiB3YXJuaW5n OiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQgcG9pbnRlciB2YWx1ZQogICAgICAgICAgICAgICAg dWludDhfdCBkdGQgPSAqKHVpbnQ4X3QgKikgZHRkc1tpXTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjUzOToxNzogd2FybmluZzog RGVyZWZlcmVuY2Ugb2YgdW5kZWZpbmVkIHBvaW50ZXIgdmFsdWUKICAgICAgICAgICAgICAgIHVp bnQ4X3QgZHRkID0gKih1aW50OF90ICopIGR0ZHNbaV07CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzoxODg1OjI2OiB3YXJuaW5nOiBQ b3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnYXAnCiAgICAgICAgZm9yICg7 IHBkbGlzdDsgcGRsaXN0ID0gcGRsaXN0LT5uZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+CmxpYi9zZHAuYzoxODk5OjY6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFr IG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwZHMnCiAgICAgICAgICAgICAgICBhcCA9IHNkcF9s aXN0X2FwcGVuZChhcCwgcGRzKTsKICAgICAgICAgICAgICAgIH5+fl5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CmxpYi9zZHAuYzoxOTQ0OjEwOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBt ZW1vcnkgcG9pbnRlZCB0byBieSAndScKICAgICAgICAgICAgICAgICAgICAgICAgKnNlcXAgPSBz ZHBfbGlzdF9hcHBlbmQoKnNlcXAsIHUpOwogICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5e fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjIwNDk6NDogd2FybmluZzogUG90 ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2xhbmcnCiAgICAgICAgICAgICAg ICAgICAgICAgIHNkcF9saXN0X2ZyZWUoKmxhbmdTZXEsIGZyZWUpOwogICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+CmxpYi9zZHAuYzoyMTM4Ojk6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwcm9mRGVzYycKICAgICAgICByZXR1cm4g MDsKICAgICAgICAgICAgICAgXgpsaWIvc2RwLmM6MzI3MDo4OiB3YXJuaW5nOiBQb3RlbnRpYWwg bGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncFN2Y1JlYycKICAgICAgICAgICAgICAgIHBT ZXEgPSBzZHBfbGlzdF9hcHBlbmQocFNlcSwgcFN2Y1JlYyk7CiAgICAgICAgICAgICAgICB+fn5+ fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzozMjcxOjk6IHdhcm5p bmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwU2VxJwogICAgICAg ICAgICAgICAgcGRhdGEgKz0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICAgICAgICAgICAgIH5+fn5+ fl5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjQ2MDc6MTM6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdyZWNfbGlzdCcKICAgICAgICAgICAgICAg ICAgICAgICAgfSB3aGlsZSAoc2Nhbm5lZCA8IGF0dHJfbGlzdF9sZW4gJiYgcGRhdGFfbGVuID4g MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KbGliL3NkcC5jOjQ5 MDM6NDA6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICd0 c2VxJwogICAgICAgIGZvciAoZCA9IHNkcGRhdGEtPnZhbC5kYXRhc2VxOyBkOyBkID0gZC0+bmV4 dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpsaWIv c2RwLmM6NDkzOTo4OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0 byBieSAnc3Vic2VxJwogICAgICAgICAgICAgICAgdHNlcSA9IHNkcF9saXN0X2FwcGVuZCh0c2Vx LCBzdWJzZXEpOwogICAgICAgICAgICAgICAgfn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ1 MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdh dHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Njk2OjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zl cnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j Ojk5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTEwMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNz LCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM2MToyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRl KG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNjo2OiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRf ZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MTY0MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ3OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU1Ojg6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI0NDoyOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3Jp dGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzozMjY2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5p bmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzoxNDk1Ojg6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFw KTsKICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjIy NDU6MjA6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBy ZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVMTCwgc3RyZWFtKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4KbW9uaXRvci9sMmNhcC5jOjE2Mzg6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdkYXRhJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgKz0gbGVu OwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgIH5+fgptb25pdG9yL2wyY2FwLmM6MTYz OTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3NpemUnIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZSAtPSBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgICAgfn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgptb25pdG9yL2h3ZGIuYzo1OToyOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVyIHJlYWQKICAgICAgICBod2RiID0g dWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KbW9uaXRvci9od2RiLmM6NjQ6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICd1ZGV2JyBp cyBuZXZlciByZWFkCiAgICAgICAgdWRldiA9IHVkZXZfdW5yZWYodWRldik7CiAgICAgICAgXiAg ICAgIH5+fn5+fn5+fn5+fn5+fn4KbW9uaXRvci9od2RiLmM6MTA2OjI6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJf dW5yZWYoaHdkYik7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgptb25pdG9y L2h3ZGIuYzoxMTE6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICd1ZGV2JyBpcyBuZXZlciBy ZWFkCiAgICAgICAgdWRldiA9IHVkZXZfdW5yZWYodWRldik7CiAgICAgICAgXiAgICAgIH5+fn5+ fn5+fn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2JsdWVtb29uLmM6MTEwMjo4 OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5n ICdub25udWxsJwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykgPiAz ICYmICFzdHJuY21wKG9wdGFyZywgImhjaSIsIDMpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvbWVzaGN0bC5jOjMy NjoxOTogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdtZXNoX2RldmljZXMnIHJlc3VsdHMgaW4g YSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2Rl ZmF1bHRfY3RybCcpCiAgICAgICAgZ19saXN0X2ZyZWVfZnVsbChkZWZhdWx0X2N0cmwtPm1lc2hf ZGV2aWNlcywgZ19mcmVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL21lc2hjdGwuYzo3NjI6Mjogd2FybmluZzogMm5kIGZ1bmN0aW9u IGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGJ0X3NoZWxs X3ByaW50ZigiQXR0ZW1wdGluZyB0byBkaXNjb25uZWN0IGZyb20gJXNcbiIsIGFkZHIpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL21lc2hjdGwuYzoxOTU3OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgbGVuID0gbGVuICsgZXh0cmEgKyBzdHJsZW4oImxv Y2FsX25vZGUuanNvbiIpOwogICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IHRvb2xzL21lc2gtZ2F0dC9jcnlwdG8uYzozMjoKLi9zcmMvc2hhcmVkL3V0aWwuaDoyNDE6OTog d2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2 YWx1ZQogICAgICAgIHJldHVybiBiZTMyX3RvX2NwdShnZXRfdW5hbGlnbmVkKChjb25zdCB1aW50 MzJfdCAqKSBwdHIpKTsKICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDozMzoyNjogbm90ZTog ZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMl90b19jcHUnCiNkZWZpbmUgYmUzMl90b19jcHUodmFs KSBic3dhcF8zMih2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci91 c3IvaW5jbHVkZS9ieXRlc3dhcC5oOjM0OjIxOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdi c3dhcF8zMicKI2RlZmluZSBic3dhcF8zMih4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSB0b29scy9tZXNoLWdh dHQvY3J5cHRvLmM6MzI6Ci4vc3JjL3NoYXJlZC91dGlsLmg6MjUxOjk6IHdhcm5pbmc6IDFzdCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBy ZXR1cm4gYmU2NF90b19jcHUoZ2V0X3VuYWxpZ25lZCgoY29uc3QgdWludDY0X3QgKikgcHRyKSk7 CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Ci4vc3JjL3NoYXJlZC91dGlsLmg6MzQ6MjY6IG5vdGU6IGV4cGFuZGVkIGZyb20g bWFjcm8gJ2JlNjRfdG9fY3B1JwojZGVmaW5lIGJlNjRfdG9fY3B1KHZhbCkgYnN3YXBfNjQodmFs KQogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYnl0 ZXN3YXAuaDozNzoyMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYnN3YXBfNjQnCiNkZWZp bmUgYnN3YXBfNjQoeCkgX19ic3dhcF82NCAoeCkKICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL3V0aWwuYzo4NTM6ODogd2FybmluZzog VGhlIGxlZnQgb3BlcmFuZCBvZiAnPicgaXMgYSBnYXJiYWdlIHZhbHVlCiAgICAgICAgaWYgKHgg PiBVSU5UOF9NQVgpCiAgICAgICAgICAgIH4gXgplbGwvdXRpbC5jOjg3MTo4OiB3YXJuaW5nOiBU aGUgbGVmdCBvcGVyYW5kIG9mICc+JyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoeCA+ IFVJTlQxNl9NQVgpCiAgICAgICAgICAgIH4gXgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL3Bl bS5jOjEzMTo4OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIgKGxvYWRlZCBm cm9tIHZhcmlhYmxlICdlb2wnKQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmVvbCA9PSAn XHInIHx8ICplb2wgPT0gJ1xuJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4KZWxs L3BlbS5jOjE2NjoxODogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2Fk ZWQgZnJvbSB2YXJpYWJsZSAnZW9sJykKICAgICAgICAgICAgICAgIGlmIChidWZfbGVuICYmICpl b2wgPT0gJ1xyJyAmJiAqYnVmX3B0ciA9PSAnXG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+CmVsbC9wZW0uYzoxNjY6MzQ6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51 bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2J1Zl9wdHInKQogICAgICAgICAgICAg ICAgaWYgKGJ1Zl9sZW4gJiYgKmVvbCA9PSAnXHInICYmICpidWZfcHRyID09ICdcbicpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgplbGwv cGVtLmM6MzA0OjExOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmVzdWx0ID0gcGVtX2xvYWRfYnVmZmVyKGZpbGUu ZGF0YSwgZmlsZS5zdC5zdF9zaXplLAogICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZWxsL3BlbS5jOjQ2OTo5OiB3YXJuaW5nOiAxc3Qg ZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAg bGlzdCA9IGxfcGVtX2xvYWRfY2VydGlmaWNhdGVfbGlzdF9mcm9tX2RhdGEoZmlsZS5kYXRhLAog ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KNSB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVsbC9jZXJ0LmM6NjQ0OjQxOiB3YXJuaW5nOiBB Y2Nlc3MgdG8gZmllbGQgJ2FzbjFfbGVuJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBu dWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjZXJ0JykKICAgICAgICBrZXkgPSBs X2tleV9uZXcoTF9LRVlfUlNBLCBjZXJ0LT5hc24xLCBjZXJ0LT5hc24xX2xlbik7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMSB3 YXJuaW5nIGdlbmVyYXRlZC4KZWxsL2d2YXJpYW50LXV0aWwuYzoxNDM6MTg6IHdhcm5pbmc6IFRo ZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoYWxpZ25tZW50ID4gbWF4X2FsaWdubWVudCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH5+fn5+fn5+fiBeCmVsbC9ndmFyaWFudC11dGlsLmM6NDU2OjU6IHdhcm5pbmc6 IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlcgogICAgICAgICAgICAgICAgICAgICAgICAhY2hp bGRyZW5bMF0uZml4ZWRfc2l6ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL2VjYy1leHRlcm5hbC5jOjc3 OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAg ICAgICAgICAgICAgZGVzdFtpXSA9IHNyY1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgXiB+ fn5+fn4KZWxsL2VjYy1leHRlcm5hbC5jOjE2MDoxODogd2FybmluZzogVGhlIHJpZ2h0IG9wZXJh bmQgb2YgJy0nIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgZGlmZiA9IGxlZnRb aV0gLSByaWdodFtpXSAtIGJvcnJvdzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g fn5+fn5+fn4KZWxsL2VjYy1leHRlcm5hbC5jOjIyNzoxNDogd2FybmluZzogMm5kIGZ1bmN0aW9u IGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAg ICAgICAgICBwcm9kdWN0ID0gbXVsXzY0XzY0KGxlZnRbaV0sIHJpZ2h0W2sgLSBpXSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgplbGwvZWNjLWV4dGVybmFsLmM6NDA4Ojk6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlz IGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgdG1wWzFdID0gcHJvZHVjdFszXTsKICAgICAg ICAgICAgICAgXiB+fn5+fn5+fn5+CmVsbC9lY2MtZXh0ZXJuYWwuYzo0MzU6MjI6IHdhcm5pbmc6 IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIHRtcFsx XSA9IHByb2R1Y3RbM10gJiAweGZmZmZmZmZmMDAwMDAwMDB1bGw7CiAgICAgICAgICAgICAgICAg fn5+fn5+fn5+fiBeCmVsbC9lY2MtZXh0ZXJuYWwuYzo0ODM6MjI6IHdhcm5pbmc6IFRoZSBsZWZ0 IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIHRtcFsxXSA9IHByb2R1 Y3RbNV0gJiAweGZmZmZmZmZmMDAwMDAwMDB1bGw7CiAgICAgICAgICAgICAgICAgfn5+fn5+fn5+ fiBeCmVsbC9lY2MtZXh0ZXJuYWwuYzo2ODg6Mjg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQg b2YgJz4+JyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgIHRtcFtpXSA9IChwcm9k dWN0WzggKyBpXSA+PiA5KSB8IChwcm9kdWN0WzkgKyBpXSA8PCA1NSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn4gXgo3IHdhcm5pbmdzIGdlbmVyYXRlZC4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIHRvb2xzL3BhcnNlci9sMmNhcC5jOjI0Ogp0b29scy9wYXJzZXIvcGFy c2VyLmg6MTIxOjE2OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3QgdCA9IGYtPnRzLnR2X3NlYzsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9w YXJzZXIvcGFyc2VyLmg6MTI3OjI3OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50 ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiU4bHUuJTA2bHUgIiwg Zi0+dHMudHZfc2VjLCBmLT50cy50dl91c2VjKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS94ODZf NjQtbGludXgtZ251L2JpdHMvc3RkaW8yLmg6MTExOjQyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1h Y3JvICdwcmludGYnCiAgX19wcmludGZfY2hrIChfX1VTRV9GT1JUSUZZX0xFVkVMIC0gMSwgX19W QV9BUkdTX18pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL3BhcnNlci9sMmNhcC5jOjI0Ogp0b29s cy9wYXJzZXIvcGFyc2VyLmg6MTI5OjE4OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2luJyBy ZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZh cmlhYmxlICdmJykKICAgICAgICAgICAgICAgIHByaW50ZigiJWMgIiwgKGYtPmluID8gJz4nIDog JzwnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgovdXNyL2luY2x1ZGUv eDg2XzY0LWxpbnV4LWdudS9iaXRzL3N0ZGlvMi5oOjExMTo0Mjogbm90ZTogZXhwYW5kZWQgZnJv bSBtYWNybyAncHJpbnRmJwogIF9fcHJpbnRmX2NoayAoX19VU0VfRk9SVElGWV9MRVZFTCAtIDEs IF9fVkFfQVJHU19fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9v bHMvcGFyc2VyL3NkcC5jOjI0Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTIxOjE2OiB3YXJuaW5n OiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aW1lX3QgdCA9IGYtPnRzLnR2X3NlYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTI3OjI3 OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcmludGYoIiU4bHUuJTA2bHUgIiwgZi0+dHMudHZfc2VjLCBmLT50cy50 dl91c2VjKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251L2JpdHMvc3Rk aW8yLmg6MTExOjQyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdwcmludGYnCiAgX19wcmlu dGZfY2hrIChfX1VTRV9GT1JUSUZZX0xFVkVMIC0gMSwgX19WQV9BUkdTX18pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIHRvb2xzL3BhcnNlci9zZHAuYzoyNDoKdG9vbHMvcGFyc2VyL3BhcnNlci5oOjEyOTox ODogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdpbicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNl IG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZicpCiAgICAgICAgICAg ICAgICBwcmludGYoIiVjICIsIChmLT5pbiA/ICc+JyA6ICc8JykpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn4KL3Vzci9pbmNsdWRlL3g4Nl82NC1saW51eC1nbnUvYml0cy9z dGRpbzIuaDoxMTE6NDI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3ByaW50ZicKICBfX3By aW50Zl9jaGsgKF9fVVNFX0ZPUlRJRllfTEVWRUwgLSAxLCBfX1ZBX0FSR1NfXykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fgozIHdhcm5pbmdzIGdl bmVyYXRlZC4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL3BhcnNlci9wcHAuYzoyMjoKdG9v bHMvcGFyc2VyL3BhcnNlci5oOjE1NjoyOiB3YXJuaW5nOiBVbmRlZmluZWQgb3IgZ2FyYmFnZSB2 YWx1ZSByZXR1cm5lZCB0byBjYWxsZXIKICAgICAgICByZXR1cm4gKnU4X3B0cjsKICAgICAgICBe fn5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcHBwLmM6MTA4OjMwOiB3YXJuaW5nOiBUaGUgbGVm dCBvcGVyYW5kIG9mICcmJyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoKigodWludDhf dCAqKSBmcm0tPnB0cikgJiAweDgwKQogICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fiBeCjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbXVsYXRvci9zZXJpYWwuYzoxNTA6Mjogd2Fybmlu ZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICBlbnVtIGJ0 ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIodHlwZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVtdWxhdG9yL3NlcmlhbC5jOjE1MDozNjogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICd0eXBlJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5l dmVyIHJlYWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIodHlwZSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4KZW11bGF0b3Iv c2VyaWFsLmM6MzY6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3VuaW5pdGlhbGl6ZWRf dmFyJwojZGVmaW5lIHVuaW5pdGlhbGl6ZWRfdmFyKHgpIHggPSB4CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiAgIH4KZW11bGF0b3Ivc2VyaWFsLmM6MjEzOjI6IHdhcm5pbmc6IEFzc2ln bmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgZW51bSBidGRldl90eXBl IHVuaW5pdGlhbGl6ZWRfdmFyKGRldl90eXBlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVtdWxhdG9yL3NlcmlhbC5jOjIxMzozNjogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdkZXZfdHlwZScgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBp cyBuZXZlciByZWFkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKGRl dl90eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn4KZW11bGF0b3Ivc2VyaWFsLmM6MzY6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3Vu aW5pdGlhbGl6ZWRfdmFyJwojZGVmaW5lIHVuaW5pdGlhbGl6ZWRfdmFyKHgpIHggPSB4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgIH4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVtdWxh dG9yL3NlcnZlci5jOjIwMDoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9y IHVuZGVmaW5lZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zhcih0eXBl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZW11bGF0 b3Ivc2VydmVyLmM6MjAwOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3R5cGUnIGR1cmlu ZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIGVudW0gYnRkZXZfdHlw ZSB1bmluaXRpYWxpemVkX3Zhcih0eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fgplbXVsYXRvci9zZXJ2ZXIuYzozNjozMDogbm90ZTogZXhwYW5kZWQg ZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0aWFsaXplZF92YXIo eCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgfgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4KZW11bGF0b3IvYjFlZS5jOjI1ODozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2VydmVyX3BvcnQnCiAgICAgICAgICAgICAgICBpbnQg b3B0OwogICAgICAgICAgICAgICAgXn5+fn5+fgplbXVsYXRvci9iMWVlLmM6MjU4OjM6IHdhcm5p bmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzbmlmZmVyX3BvcnQn CiAgICAgICAgICAgICAgICBpbnQgb3B0OwogICAgICAgICAgICAgICAgXn5+fn5+fgplbXVsYXRv ci9iMWVlLmM6Mjg5OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJnYycgaXMgbmV2ZXIg cmVhZAogICAgICAgIGFyZ2MgPSBhcmdjIC0gb3B0aW5kOwogICAgICAgIF4gICAgICB+fn5+fn5+ fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo5NToyOiB3 YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdu b25udWxsJwogICAgICAgIG1lbWNweSh0bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRyYW5zZmVy LmM6NDIzOjc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBpZiAoIWdfc2xpc3RfZmluZCh0cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphdHRy aWIvZ2F0dC5jOjk3MDoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRl ZCB0byBieSAnbG9uZ193cml0ZScKICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dy aXRlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgplbXVsYXRvci9idGRldi5jOjU0NDg6MjM6IHdhcm5pbmc6IEFjY2VzcyB0byBm aWVsZCAnbGVfZXh0X2FkdicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2lu dGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAncmVtb3RlJykKICAgICAgICBleHRfYWR2ID0gcXVl dWVfZmluZChyZW1vdGUtPmxlX2V4dF9hZHYsIG1hdGNoX3NpZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMv YnRwY2xpZW50LmM6MjQ5NTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3JlcGx5JyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICByZXBseSA9IGxfZGJ1c19tZXNzYWdlX25ld19lcnJv cihhZy5wZW5kaW5nX3JlcSwKICAgICAgICAgICAgICAgIF4gICAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphbmRyb2lkL2F2 ZHRwLmM6NzU2OjI1OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgICAgICAgICBzZXNzaW9uLT5wcmlvX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lv bi0+cHJpb19xdWV1ZSwgcmVxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmFuZHJvaWQvYXZkdHAu Yzo3NjM6MjQ6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICAgICAgICAgIHNlc3Npb24tPnJlcV9xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnJl cV9xdWV1ZSwgcmVxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4K cHJvZmlsZXMvYXVkaW8vbWVkaWEuYzoxMDU3Ojc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlmIChyZXEtPmNiICE9IHBhY19zZWxlY3Rf Y2IpIHsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCm9i ZXhkL3NyYy9tYWluLmM6MzE2OjY6IHdhcm5pbmc6IEFycmF5IGFjY2VzcyAoZnJvbSB2YXJpYWJs ZSAnb3B0aW9uX3Jvb3QnKSByZXN1bHRzIGluIGEgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlCiAg ICAgICAgaWYgKG9wdGlvbl9yb290WzBdICE9ICcvJykgewogICAgICAgICAgICBefn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpvYmV4ZC9wbHVnaW5zL3ZjYXJkLmM6NzAxOjY6IHdh cm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFs dWUKICAgICAgICBpZiAoc2VsZWN0X3FwX2VuY29kaW5nKGZvcm1hdCwgYWRkcmVzc19maWVsZHNb MF0sIGFkZHJlc3NfZmllbGRzWzFdLAogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm9iZXhkL3BsdWdpbnMv dmNhcmQuYzo3MDE6Njogd2FybmluZzogM3JkIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4g dW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGlmIChzZWxlY3RfcXBfZW5jb2RpbmcoZm9ybWF0 LCBhZGRyZXNzX2ZpZWxkc1swXSwgYWRkcmVzc19maWVsZHNbMV0sCiAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4Kb2JleGQvcGx1Z2lucy92Y2FyZC5jOjcwMTo2OiB3YXJuaW5nOiA0dGggZnVuY3Rpb24gY2Fs bCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgaWYgKHNlbGVjdF9x cF9lbmNvZGluZyhmb3JtYXQsIGFkZHJlc3NfZmllbGRzWzBdLCBhZGRyZXNzX2ZpZWxkc1sxXSwK ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpvYmV4ZC9wbHVnaW5zL3ZjYXJkLmM6NzAxOjY6IHdhcm5pbmc6 IDV0aCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAg ICAgICBpZiAoc2VsZWN0X3FwX2VuY29kaW5nKGZvcm1hdCwgYWRkcmVzc19maWVsZHNbMF0sIGFk ZHJlc3NfZmllbGRzWzFdLAogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVk LgpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmHVwZGF0ZeKAmToKb2JleGQvc3Jj L2xvZ2luZC5jOjY0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDi gJhmcmVl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA2NCB8 ICBmcmVlKHN0YXRlKTsKICAgICAgfCAgXn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6NjQ6MjogZXJy b3I6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlv biDigJhmcmVl4oCZIFstV2Vycm9yXQpvYmV4ZC9zcmMvbG9naW5kLmM6MjY6MTogbm90ZTogaW5j bHVkZSDigJg8c3RkbGliLmg+4oCZIG9yIHByb3ZpZGUgYSBkZWNsYXJhdGlvbiBvZiDigJhmcmVl 4oCZCiAgIDI1IHwgI2luY2x1ZGUgIm9iZXhkL3NyYy9sb2dpbmQuaCIKICArKysgfCsjaW5jbHVk ZSA8c3RkbGliLmg+CiAgIDI2IHwgCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMg ZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2lu ZC5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4u Cm9iZXhkL3BsdWdpbnMvbWVzc2FnZXMtZHVtbXkuYzoxNjU6OTogd2FybmluZzogQWNjZXNzIHRv IGZpZWxkICduZXh0JyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIg KGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjdXInKQogICAgICAgICAgICAgICAgY3VyID0gY3VyLT5u ZXh0OwogICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu Cm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY5MDogYWxsXSBFcnJvciAyCgoKLS0tClJlZ2FyZHMsCkxp bnV4IEJsdWV0b290aAoK --===============2799677568581814423==--