From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f52.google.com (mail-ot1-f52.google.com [209.85.210.52]) (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 279A441227D for ; Fri, 10 Jul 2026 11:57:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783684667; cv=none; b=skTIrxfXRHh9Tg7M8xu1Pmn6UCMEkR07QwIPeIvq6daoOm5/OXBTTMkprfH3yLIO8OSQrL1UADFZt9IMKAv3AH9+9Eu2Nofr2GOZcempy3ELcMS16D6XXwNYhyzT5bEahbkg7aBQX6Sg2MXfYuR6USr8PKTOy+9DB+LsgaK1h+o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783684667; c=relaxed/simple; bh=esgXJM0ByX6L4KdsW99h7MZ6vtGd99gIjQi3ZkWvB10=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=JiXE4zCh7dBmqr6DMlC/n/VILiHa+RkRI8lBZyuq5xdRg/Qbhaio0iCqKqmYulFNHOOKHGdpb3YtOcokmtHkDg7tSifpN/aOC8Rab61gN0yUxVsPq4YqkHABeiB+KfioLCx7/XHuK6M0Gy33CLVfdktNIC18VxM1TRJOA8zPv7E= 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=I8qw4Bra; arc=none smtp.client-ip=209.85.210.52 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="I8qw4Bra" Received: by mail-ot1-f52.google.com with SMTP id 46e09a7af769-7e9eaf04bfaso365490a34.1 for ; Fri, 10 Jul 2026 04:57:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783684653; x=1784289453; 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=esgXJM0ByX6L4KdsW99h7MZ6vtGd99gIjQi3ZkWvB10=; b=I8qw4BralQcidFAIhUROQGsACwoiUXsblCwkG5OW8VLVLV3rbSWx5Rf2auIUwl9LsS SE2ATNsIr/YFtHXfKb1GkXJmwtNpY0+b8+26y8BO5MT/x2piabOa8slifccPokVEbxmu 6PNYkrIG1Kt++wRlE3rGI25g0O8pbp5eLo6+fDfmXYyeVeJmwA7JYyGbYN7dH+ojVulb I1My89WRg7vi/n5GQ4PfnEE3GoDjC36F8/+VYzOnPx53Mn4jt9PPuWGi1Vs60q9Danni syAp5fi84+oWtkHgFOMro9Sq94CWwVbKzxm+AtB3ajRSX78+BybZaH0aPMcGPoN617Yv aexg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783684653; x=1784289453; 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=esgXJM0ByX6L4KdsW99h7MZ6vtGd99gIjQi3ZkWvB10=; b=frKeVUFGH4xhe9BfL1vsA6fs3HxNcxARhICZwRdbxbWCeGLW6BDBvlT+i0fYnkuFdF nx5VDk792+KyYF04WHaQMNWHC8Wz1DgfqWxzcX39XI0engwKnSqT+Whxp78uaFZ6GLYf vrqbyv3WUQnJ/VOTZbicu9Ce6VUjob4ulCOXIz/g1mim1bp1mASD0t+WYh+65tMtgjzI Un09vLeeVyKvZEIBuXuX1e/rpcbukiQoZyL9L0KTPaNPJifXElPUhUJrAKhtbu8dy/0+ YMHfOqiAvGeVVF8aamvxp2+uQosFr59LCblTP9RKndfDhj9WP5Gw9SuNeBF8KSd1TacQ 1WhQ== X-Gm-Message-State: AOJu0YxTEkNH6o+MGi2YwflxK9gN5+bp6wbFU8ulgX9tXGKSGFuih0qK Eb2C7iTWXJoIJXFC2unRGJ4l5JVOCKbeOvWLZIf06UemYR+1NikOvYfOZDIf5oK4 X-Gm-Gg: AfdE7clV9aZDxMFHqtNVOfpPrg0SbMQyuW0CUmCOMm29qqt7cPCmvG/EdufRH2toLXp KjRd/cTHYAFxP5WJGdQ2dL1Lx51/Az6uCWXKXCyGj7CLhiZCnocMMhzkzAudzuNGK99zGNJfOrl jpTD8G5dAEaDKXI5ESyNr2vRbmwH8TFYJnekGIpSks22ikrz9XwvP4bglRO8vsFFMMTF6iQcFJQ Ye5knUqLqzEKYCaMzmPGS6W26RZKvv86nxZEhvtJmyKmXxqasVNYITzX48N0IspGcNSbqftkLYy Tbs/Mcruwlwy20ubuMer4FD4pqQhd9Hn+NiUUKUHexhN1cA/RyT4Os3f2aN4uWNP59JkVgjbiB8 pdiK6+Zr6PIUOKNfXsZAcsIAOAfKk1iZRBSAvAp+7yx4weonmjFpeAGMvyxu8hHdS2CHD+B8+VA xqkS3AvJ7xnhqGzsLkpuYdpA== X-Received: by 2002:a05:6830:8385:b0:7e9:e1ec:c818 with SMTP id 46e09a7af769-7ebcffdd10amr6958640a34.25.1783684652610; Fri, 10 Jul 2026 04:57:32 -0700 (PDT) Received: from [172.17.0.2] ([172.202.101.249]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7ebcb3f27besm6155430a34.25.2026.07.10.04.57.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 04:57:31 -0700 (PDT) Message-ID: <6a50de2b.ec9c0add.3c56e3.2261@mx.google.com> Date: Fri, 10 Jul 2026 04:57:31 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============8070496073322788685==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, naga.akella@oss.qualcomm.com Subject: RE: Add Channel Sounding Dbus support and In-Reply-To: <20260710094919.4047204-2-naga.akella@oss.qualcomm.com> References: <20260710094919.4047204-2-naga.akella@oss.qualcomm.com> Reply-To: linux-bluetooth@vger.kernel.org --===============8070496073322788685== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9MTEyNTI5MQoKLS0t VGVzdCByZXN1bHQtLS0KClRlc3QgU3VtbWFyeToKQ2hlY2tQYXRjaCAgICAgICAgICAgICAgICAg ICAgUEFTUyAgICAgIDIuNjMgc2Vjb25kcwpHaXRMaW50ICAgICAgICAgICAgICAgICAgICAgICBQ QVNTICAgICAgMS4wNSBzZWNvbmRzCkJ1aWxkRWxsICAgICAgICAgICAgICAgICAgICAgIFBBU1Mg ICAgICAxNS41NyBzZWNvbmRzCkJsdWV6TWFrZSAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAg ICAzODQuMzAgc2Vjb25kcwpNYWtlQ2hlY2sgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MTcuNTMgc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBQQVNTICAgICAgMTI2 LjE1IHNlY29uZHMKQ2hlY2tWYWxncmluZCAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDEwOC4w NyBzZWNvbmRzCkNoZWNrU21hdGNoICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAyMDQuMzQg c2Vjb25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgNzIuNzEgc2Vj b25kcwpJbmNyZW1lbnRhbEJ1aWxkICAgICAgICAgICAgICBGQUlMICAgICAgNDAyLjg4IHNlY29u ZHMKU2NhbkJ1aWxkICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDMyOS4zMCBzZWNvbmRz CgpEZXRhaWxzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2Ug LSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IElu IGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI5OTA6NTogbm90ZTog dmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNr aW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyOTkwIHwgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZkdHAuYzog SW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6IG5vdGU6IHZh cmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2lu Zy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDc2NiB8IGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2cmNwLmM6IElu IGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdnJjcC5jOjk4OTo1OiBub3RlOiB2YXJp YWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmct YXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA5ODkgfCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnByb2ZpbGVzL3JhbmdpbmcvcmFwLmM6 IEluIGZ1bmN0aW9uIOKAmHN0YXJ0X21lYXN1cmVtZW504oCZOgpwcm9maWxlcy9yYW5naW5nL3Jh cC5jOjQ3Mjo0OiBlcnJvcjogZW51bWVyYXRpb24gdmFsdWUg4oCYQ1NfVEFSR0VUX1NFVFRJTkdT 4oCZIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdlcnJvcj1zd2l0Y2gtZW51bV0KICA0NzIgfCAg ICBzd2l0Y2ggKGRlc2MtPnRhcmdldCkgewogICAgICB8ICAgIF5+fn5+fgpjYzE6IGFsbCB3YXJu aW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjg5OTk6 IHByb2ZpbGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXAub10gRXJyb3IgMQptYWtlWzFdOiAqKiog V2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQxNzU6 IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogTWFrZUNo ZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVjawpPdXRwdXQ6Cgpwcm9maWxlcy9y YW5naW5nL3JhcC5jOiBJbiBmdW5jdGlvbiDigJhzdGFydF9tZWFzdXJlbWVudOKAmToKcHJvZmls ZXMvcmFuZ2luZy9yYXAuYzo0NzI6NDogZXJyb3I6IGVudW1lcmF0aW9uIHZhbHVlIOKAmENTX1RB UkdFVF9TRVRUSU5HU+KAmSBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1XZXJyb3I9c3dpdGNoLWVu dW1dCiAgNDcyIHwgICAgc3dpdGNoIChkZXNjLT50YXJnZXQpIHsKICAgICAgfCAgICBefn5+fn4K Y2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtN YWtlZmlsZTo4OTk5OiBwcm9maWxlcy9yYW5naW5nL2JsdWV0b290aGQtcmFwLm9dIEVycm9yIDEK bWFrZTogKioqIFtNYWtlZmlsZToxMDgyNjogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrVmFsZ3JpbmQgLSBGQUlMCkRlc2M6IFJ1biBCbHVl eiBNYWtlIENoZWNrIHdpdGggVmFsZ3JpbmQKT3V0cHV0OgoKdG9vbHMvbWdtdC10ZXN0ZXIuYzog SW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMjk5MDo1OiBub3Rl OiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJh Y2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTI5OTAgfCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnByb2ZpbGVzL3Jhbmdpbmcv cmFwLmM6IEluIGZ1bmN0aW9uIOKAmHN0YXJ0X21lYXN1cmVtZW504oCZOgpwcm9maWxlcy9yYW5n aW5nL3JhcC5jOjQ3Mjo0OiBlcnJvcjogZW51bWVyYXRpb24gdmFsdWUg4oCYQ1NfVEFSR0VUX1NF VFRJTkdT4oCZIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdlcnJvcj1zd2l0Y2gtZW51bV0KICA0 NzIgfCAgICBzd2l0Y2ggKGRlc2MtPnRhcmdldCkgewogICAgICB8ICAgIF5+fn5+fgpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxl Ojg5OTk6IHByb2ZpbGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXAub10gRXJyb3IgMQptYWtlWzFd OiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxl OjEwODI2OiBjaGVja10gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVz dDogQ2hlY2tTbWF0Y2ggLSBGQUlMCkRlc2M6IFJ1biBzbWF0Y2ggdG9vbCB3aXRoIHNvdXJjZQpP dXRwdXQ6CgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MToyMTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcyOjIzOiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo3 NjQ6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2dhdHQtaGVscGVycy5jOjg0MjozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTMzNTozMTogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTM2Njoy Mzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0 dC1zZXJ2ZXIuYzoyNzE6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjE0OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjcxMjoyNTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvYmFwLmM6MzE4OjI1 OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQvYmFwLmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9hc2NzLmg6ODg6MjU6IHdhcm5p bmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9zaGVsbC5jOiBub3Rl OiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGlu ZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNy L2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBm dW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MToyMTog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5cHRv LmM6MjcyOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LWhlbHBlcnMuYzo3NjQ6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjg0MjozMTogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTMz NTozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Z2F0dC1oZWxwZXJzLmM6MTM2NjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzoyNzE6MjU6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjE0OjI1OiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNl cnZlci5jOjcxMjoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNy Yy9zaGFyZWQvYmFwLmM6MzE4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1 cmVzCnNyYy9zaGFyZWQvYmFwLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJl ZC9hc2NzLmg6ODg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3Jj L3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5j bHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRl ZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwp0b29scy9t ZXNoLWNmZ3Rlc3QuYzoxNDUzOjE3OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTog J1wlJwp0b29scy9zY28tdGVzdGVyLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vbGliL2Js dWV0b290aC9ibHVldG9vdGguaDoyMzI6MTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0 cnVjdHVyZXMKLi9saWIvYmx1ZXRvb3RoL2JsdWV0b290aC5oOjIzNzozMTogd2FybmluZzogYXJy YXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2Fybmlu ZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL29iZXgtY2xpZW50 LXRvb2wuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6 MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdG dW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKY2xpZW50L2J0cGNsaWVu dC9nYXR0LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9idHAuaDozMzU6 NDE6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKLi9zcmMvc2hhcmVkL2J0 cC5oOjM0MDo1NTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL3NyYy9z aGFyZWQvYnRwLmg6MzYzOjQ3OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVz Ci4vc3JjL3NoYXJlZC9idHAuaDozOTI6NDI6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0 cnVjdHVyZXMKc3JjL2FkdmVydGlzaW5nLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3Jj L3NoYXJlZC9tZ210Lmg6OTU6MjU6IGVycm9yOiByZWRlZmluaXRpb24gb2YgdW5zaWduZWQgaW50 IGVudW0gbWdtdF9pb19jYXBhYmlsaXR5CnNyYy9hZ2VudC5jOiBub3RlOiBpbiBpbmNsdWRlZCBm aWxlOgpzcmMvc2hhcmVkL3F1ZXVlLmg6MTk6MjA6IGVycm9yOiByZWRlZmluaXRpb24gb2Ygc3Ry dWN0IHF1ZXVlX2VudHJ5CnNyYy9hZHZfbW9uaXRvci5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxl OgouL3NyYy9zaGFyZWQvbWdtdC5oOjk1OjI1OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2ln bmVkIGludCBlbnVtIG1nbXRfaW9fY2FwYWJpbGl0eQp1bml0L2F2Y3RwLmM6NTA1OjM0OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdmN0cC5jOjU1NjozNDog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvdGVzdC1hdnJjcC5j OjM3MzoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvdGVz dC1hdnJjcC5jOjM5ODoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnVuaXQvdGVzdC1hdnJjcC5jOjQxNDoyNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCnVuaXQvYXZyY3AtbGliLmM6MTA4NTozNDogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvYXZyY3AtbGliLmM6MTU4MzozNDogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvYXZyY3AtbGliLmM6MTYxMjozNDogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvYXZyY3AtbGliLmM6MTYz ODozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9hZHZlcnRp c2luZy5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvbWdtdC5oOjk1OjI1 OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2lnbmVkIGludCBlbnVtIG1nbXRfaW9fY2FwYWJp bGl0eQpzcmMvYWdlbnQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKc3JjL3NoYXJlZC9xdWV1 ZS5oOjE5OjIwOiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHN0cnVjdCBxdWV1ZV9lbnRyeQpzcmMv YWR2X21vbml0b3IuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL21nbXQu aDo5NToyNTogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNpZ25lZCBpbnQgZW51bSBtZ210X2lv X2NhcGFiaWxpdHkKc3JjL21haW4uYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCBz cmMvZGV2aWNlLmgpOgouL3NyYy9zaGFyZWQvcXVldWUuaDoxOToyMDogZXJyb3I6IHJlZGVmaW5p dGlvbiBvZiBzdHJ1Y3QgcXVldWVfZW50cnkKbWVzaC9tZXNoLWlvLW1nbXQuYzo1MjU6Njc6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpjbGllbnQvZGlzcGxheS5jOiBu b3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFk bGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MToy MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5 cHRvLmM6MjcyOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo3NjQ6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjg0MjozMTogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzoy NzE6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2dhdHQtaGVscGVycy5jOjEzMzU6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzNjY6MjM6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjE0OjI1 OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0 LXNlcnZlci5jOjcxMjoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnNyYy9zaGFyZWQvYmFwLmM6MzE4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1 Y3R1cmVzCnNyYy9zaGFyZWQvYmFwLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3No YXJlZC9hc2NzLmg6ODg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMK c3JjL3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3Iv aW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlw ZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2 OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn VkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlv bicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9u LUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwptb25p dG9yL3BhY2tldC5jOjIwMDI6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgptb25pdG9yL3BhY2tldC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL2J0 Lmg6MzkyNDo1Mjogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwptb25pdG9y L2J0Lmg6MzkxMjo0MDogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwptb25p dG9yL21zZnQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9tc2Z0Lmg6ODg6NDQ6 IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKdG9vbHMvcmN0ZXN0LmM6NjMx OjMzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn YXV0b21hdGVkX3NlbmRfcmVjdicKdG9vbHMvaGV4MmhjZC5jOjEzNjoyNjogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL21lc2hjdGwuYzozMjQ6MzM6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmb3JnZXRfbWVz aF9kZXZpY2VzJwp0b29scy9tZXNoLWdhdHQvbm9kZS5jOjQ1NjozOTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ25vZGVfZ2V0X2xvY2FsX25vZGUn CnRvb2xzL21lc2gtZ2F0dC9uZXQuYzoxMjM5OjMwOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZ2V0X25leHRfc2VxJwp0b29scy9tZXNoLWdhdHQv bmV0LmM6MjE5MzoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ25ldF9nZXRfZGVmYXVsdF90dGwnCnRvb2xzL21lc2gtZ2F0dC9uZXQuYzoyMjA3 OjI2OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn bmV0X2dldF9zZXFfbnVtJwp0b29scy9tZXNoLWdhdHQvcHJvdi5jOiBub3RlOiBpbiBpbmNsdWRl ZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0 eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMu aDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ0NQUEZ1bmN0aW9uJwp0b29scy9tZXNoLWdhdHQvb25vZmYtbW9kZWwuYzogbm90ZTogaW4g aW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6 Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5 cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9m IGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKZWxsL2xvZy5jOjQzMTo2NTogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ3JlZ2lzdGVyX2RlYnVnX3NlY3Rp b24nCmVsbC9sb2cuYzo0Mzk6Njg6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdmcmVlX2RlYnVnX3NlY3Rpb25zJwplbGwvcmFuZG9tLmM6NjA6NDI6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdsX2dl dHJhbmRvbV9pc19zdXBwb3J0ZWQnCmVsbC9jaXBoZXIuYzo2NjA6Mjg6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpbml0X3N1cHBvcnRlZCcKZWxs L2NoZWNrc3VtLmM6MzgyOjI4OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnaW5pdF9zdXBwb3J0ZWQnCmVsbC9jaGVja3N1bS5jOjQ0NDo0Nzogd2Fy bmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2xfY2hlY2tz dW1fY21hY19hZXNfc3VwcG9ydGVkJwplbGwvY2lwaGVyLmM6NTE5OjI0OiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL2NlcnQtY3J5cHRvLmM6MzY6MzM6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvY2VydC1jcnlwdG8uYzoxNDI6 MzY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvY2VydC1jcnlw dG8uYzoxOTg6MzY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwv Y2VydC1jcnlwdG8uYzoyNTE6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgplbGwva2V5LmM6NTUwOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL2RidXMtc2VydmljZS5jOjU0ODo0OTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ19kYnVzX29iamVjdF90cmVlX25ldycKZWxsL2Ri dXMtZmlsdGVyLmM6MjMzOjQ2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4KZWxsL3Rscy5jOjQ1OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4KZWxsL3Rscy5jOjg2OjIyOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4KZWxsL3Rscy5jOjg2OjQ2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4KZWxsL3Rscy1zdWl0ZXMuYzoxMDc5OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4KZWxsL3Rscy1zdWl0ZXMuYzoxMDgxOjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL3Rscy1zdWl0ZXMuYzoxMDg0OjQxOiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL3Rscy1zdWl0ZXMuYzoxMTMzOjQxOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL3Rscy5jOjE4MTk6MjY6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbXVsYXRvci9idGRldi5j OjQ3ODoyOTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVtdWxhdG9y L2J0aG9zdC5jOjcwMzoyODogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CmVtdWxhdG9yL2J0aG9zdC5jOjcwNDozMjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCmVtdWxhdG9yL2J0aG9zdC5jOjk0NDoyODogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCmVtdWxhdG9yL2J0aG9zdC5jOjk3ODoyODogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVtdWxhdG9yL2J0aG9zdC5jOjk3OTozMjogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmF0dHJpYi9nYXR0dG9vbC5jOjIz NjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmF0dHJpYi9pbnRl cmFjdGl2ZS5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9y ZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDoz NToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g J0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9u JwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24t QU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwphdHRyaWIvaW50ZXJh Y3RpdmUuYzoxNzU6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9m IGZ1bmN0aW9uICdkaXNjb25uZWN0X2lvJwphdHRyaWIvaW50ZXJhY3RpdmUuYzozMDA6MjM6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpwcm9maWxlcy9yYW5naW5nL3Jh cC5jOiBJbiBmdW5jdGlvbiDigJhzdGFydF9tZWFzdXJlbWVudOKAmToKcHJvZmlsZXMvcmFuZ2lu Zy9yYXAuYzo0NzI6NDogZXJyb3I6IGVudW1lcmF0aW9uIHZhbHVlIOKAmENTX1RBUkdFVF9TRVRU SU5HU+KAmSBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1XZXJyb3I9c3dpdGNoLWVudW1dCiAgNDcy IHwgICAgc3dpdGNoIChkZXNjLT50YXJnZXQpIHsKICAgICAgfCAgICBefn5+fn4KY2MxOiBhbGwg d2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo4 OTk5OiBwcm9maWxlcy9yYW5naW5nL2JsdWV0b290aGQtcmFwLm9dIEVycm9yIDEKbWFrZVsxXTog KioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0 MTc1OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IGJs dWV6bWFrZWV4dGVsbCAtIEZBSUwKRGVzYzogQnVpbGQgQmx1ZXogd2l0aCBFeHRlcm5hbCBFTEwK T3V0cHV0OgoKcHJvZmlsZXMvcmFuZ2luZy9yYXAuYzogSW4gZnVuY3Rpb24g4oCYc3RhcnRfbWVh c3VyZW1lbnTigJk6CnByb2ZpbGVzL3JhbmdpbmcvcmFwLmM6NDcyOjQ6IGVycm9yOiBlbnVtZXJh dGlvbiB2YWx1ZSDigJhDU19UQVJHRVRfU0VUVElOR1PigJkgbm90IGhhbmRsZWQgaW4gc3dpdGNo IFstV2Vycm9yPXN3aXRjaC1lbnVtXQogIDQ3MiB8ICAgIHN3aXRjaCAoZGVzYy0+dGFyZ2V0KSB7 CiAgICAgIHwgICAgXn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJy b3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6ODk5OTogcHJvZmlsZXMvcmFuZ2luZy9ibHVldG9v dGhkLXJhcC5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpv YnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDE3NTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBJbmNyZW1lbnRhbEJ1aWxkIC0gRkFJTApEZXNjOiBJ bmNyZW1lbnRhbCBidWlsZCB3aXRoIHRoZSBwYXRjaGVzIGluIHRoZSBzZXJpZXMKT3V0cHV0OgoK cHJvZmlsZXMvcmFuZ2luZy9yYXAuYzogSW4gZnVuY3Rpb24g4oCYc3RhcnRfbWVhc3VyZW1lbnTi gJk6CnByb2ZpbGVzL3JhbmdpbmcvcmFwLmM6NDcyOjQ6IGVycm9yOiBlbnVtZXJhdGlvbiB2YWx1 ZSDigJhDU19UQVJHRVRfU0VUVElOR1PigJkgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV2Vycm9y PXN3aXRjaC1lbnVtXQogIDQ3MiB8ICAgIHN3aXRjaCAoZGVzYy0+dGFyZ2V0KSB7CiAgICAgIHwg ICAgXn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb MV06ICoqKiBbTWFrZWZpbGU6ODk5NDogcHJvZmlsZXMvcmFuZ2luZy9ibHVldG9vdGhkLXJhcC5v XSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1h a2U6ICoqKiBbTWFrZWZpbGU6NDE3MzogYWxsXSBFcnJvciAyCltCbHVlWix2MiwzLzRdIHByb2Zp bGVzOiBBZGQgRC1CdXMgQ2hhbm5lbCBTb3VuZGluZyBjb250cm9sIEFQSXMKCnByb2ZpbGVzL3Jh bmdpbmcvcmFwLmM6IEluIGZ1bmN0aW9uIOKAmHN0YXJ0X21lYXN1cmVtZW504oCZOgpwcm9maWxl cy9yYW5naW5nL3JhcC5jOjQ3Mjo0OiBlcnJvcjogZW51bWVyYXRpb24gdmFsdWUg4oCYQ1NfVEFS R0VUX1NFVFRJTkdT4oCZIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdlcnJvcj1zd2l0Y2gtZW51 bV0KICA0NzIgfCAgICBzd2l0Y2ggKGRlc2MtPnRhcmdldCkgewogICAgICB8ICAgIF5+fn5+fgpj YzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01h a2VmaWxlOjg5OTQ6IHByb2ZpbGVzL3JhbmdpbmcvYmx1ZXRvb3RoZC1yYXAub10gRXJyb3IgMQpt YWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01h a2VmaWxlOjQxNzM6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK VGVzdDogU2NhbkJ1aWxkIC0gRkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6NDQ3OjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBv cC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzo2OTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29k ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3Ms IGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMDk4OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUo b3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjkyOjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlf b3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxMzU3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoxNjMyOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM3OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2OTM6NTY6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBub3RpZnlfZGF0 YS0+Y2hyYy0+Y2NjX3dyaXRlX2lkID0gbm90aWZ5X2RhdGEtPmF0dF9pZCA9IGF0dF9pZDsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+ fiBeCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ2OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU0Ojg6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVm KG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzMzMjoy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxl dGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzozMzU0OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEz IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzoxNTQzOjg6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3Nh ZmUoYmFwKTsKICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2Jh cC5jOjIzNTQ6MjA6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVMTCwgc3RyZWFt KTsKICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5p bmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ0NzoyMTogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3Rl cihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NjkyOjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUo b3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5MjoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTA5 ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MTI5MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBh dHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzMjo2OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsK ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYz NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoxNjkzOjU2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgbm90aWZ5X2RhdGEtPmNocmMtPmNjY193cml0ZV9pZCA9IG5vdGlmeV9kYXRhLT5h dHRfaWQgPSBhdHRfaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH5+fn5+fn5+fn5+fn5+fn5+fn4gXgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Njo2OiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRf ZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MjE1NDo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjMzMzI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxz ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzM1NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fgoxMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2hjaWF0dGFjaC5j OjgxNzo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2Vk IGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5 IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwg MTApKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2hjaWF0dGFjaC5jOjg2NTo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3Rv cmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVl IGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hj aV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4ODc6ODogd2FybmluZzogQWx0aG91 Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJl c3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAg ICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTApKSA8IDApIHsKICAg ICAgICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv aGNpYXR0YWNoLmM6OTA5Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8g J24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2 ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50 KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkzMDo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUg dmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwg dGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4g PSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5NzQ6Nzogd2Fybmlu ZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9z aW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24n CiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDYpKSA8IDApIHsKICAg ICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNiB3YXJuaW5ncyBnZW5l cmF0ZWQuCnNyYy9zaGFyZWQvYmFwLmM6MTU0Mzo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgYmFwID0gYnRfYmFwX3JlZl9zYWZlKGJhcCk7CiAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9iYXAuYzoyMzU0OjIwOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmV0dXJuIHF1 ZXVlX2ZpbmQoc3RyZWFtLT5iYXAtPnN0cmVhbXMsIE5VTEwsIHN0cmVhbSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CnNyYy9vdWkuYzo1MDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVy IHJlYWQKICAgICAgICBod2RiID0gdWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAg ICB+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL291aS5jOjUzOjI6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVk ZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVk Lgp0b29scy9yZmNvbW0uYzoyMzQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdpJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3Yp OwogICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9y ZmNvbW0uYzoyMzQ6Nzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1l dGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJn dlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL3JmY29tbS5jOjM1NDo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUg c3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2 YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAgICAgaWYg KChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAg ICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvcmZjb21tLmM6NDk3OjE0OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9y IHVuZGVmaW5lZAogICAgICAgIHJlcS5jaGFubmVsID0gcmFkZHIucmNfY2hhbm5lbDsKICAgICAg ICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NTE1Ojg6IHdh cm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBl bmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJv bSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8 IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2lwdG9v bC5jOjM1MTo3OiB3YXJuaW5nOiA1dGggZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmlu aXRpYWxpemVkIHZhbHVlCiAgICAgICAgc2sgPSBkb19jb25uZWN0KGN0bCwgZGV2X2lkLCAmc3Jj LCAmZHN0LCBwc20sICgxIDw8IENNVFBfTE9PUEJBQ0spKTsKICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zZHAteG1sLmM6MTI2OjEwOiB3YXJuaW5nOiBBc3NpZ25l ZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgYnVmWzFdID0g ZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2Rw LXhtbC5jOjMwNjoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRl ZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzQ0 OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAg ICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xz L3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0 ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ3VpbnQzMl90Jywgd2hpY2ggaXMgaW5jb21wYXRpYmxl IHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAnaW50JwogICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCAqdmFsdWVfaW50ID0gbWFsbG9jKHNpemVvZihpbnQpKTsKICAgICAgICAgICAgICAg ICAgICAgICAgfn5+fn5+fn5+fiAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fgp0b29scy9z ZHB0b29sLmM6OTgwOjQ6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShhbGxvY0Fy cmF5W2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9p bnRlZCB0byBieSAnc2kubmFtZScKICAgICAgICByZXR1cm4gYWRkX3NlcnZpY2UoMCwgJnNpKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6NDExMjo0 OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnY29udGV4 dC5zdmMnCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9hdnRlc3QuYzoy NDM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzoyNTM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0 KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzoyNjI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNzY6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI4Mzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjkwOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyOTc6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMwOTo1OiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMxMzo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMyMjo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjMyNjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjMzNTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM0Mjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM2NDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM2ODo1OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM3Nzo1OiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjM4MTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjM5NDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs IDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjM5ODo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjQwNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0 ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NDE1OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzo1ODA6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTg4OjM6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCBpbnZhbGlkID8gMiA6IDMpOwogICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MDI6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQgKyBtZWRpYV90cmFuc3BvcnRfc2l6ZSk7CiAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjYxNTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MjU6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjM3OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2 dGVzdC5jOjY1MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVh ZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NjQ6Mzogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6NjczOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY4MDoz OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo3MTY6Mjogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBBVkNU UF9IRUFERVJfTEVOR1RIICsgc2l6ZW9mKHBsYXlfcHJlc3NlZCkpOwogICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K MzIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idHByb3h5LmM6ODM2OjE1OiB3YXJuaW5nOiBO dWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwog ICAgICAgICAgICAgICAgICAgICAgICB0Y3BfcG9ydCA9IGF0b2kob3B0YXJnKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KdG9vbHMvYnRwcm94eS5jOjgz OTo4OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0 aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykg PiAzICYmICFzdHJuY21wKG9wdGFyZywgImhjaSIsIDMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NyZWF0ZS1p bWFnZS5jOjc2OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2Ny ZWF0ZS1pbWFnZS5jOjg0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRv b2xzL2NyZWF0ZS1pbWFnZS5jOjkyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAg IH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjEwNToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgZmQgPSAtMTsKICAgICAgICBeICAgIH5+CjQgd2Fy bmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtc2VydmVyLmM6MTIwNDoyOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJlYWQKICAgICAgICBhcmd2IC09IG9wdGlu ZDsKICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9jaGVj ay1zZWxmdGVzdC5jOjQyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBwdHIgPSBmZ2V0cyhyZXN1bHQsIHNpemVvZihyZXN1bHQp LCBmcCk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LWNsaWVudC5jOjE4MjI6Mjog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJn diArPSBvcHRpbmQ7CiAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4K dG9vbHMvZ2F0dC1zZXJ2aWNlLmM6Mjk0OjI6IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFy Z3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBjaHJfd3JpdGUoY2hyLCB2 YWx1ZSwgbGVuKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgp0b29scy9vYmV4LXNlcnZlci10b29sLmM6MTMzOjEzOiB3YXJuaW5nOiBOdWxs IHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAg ICAgIGRhdGEtPmZkID0gb3BlbihuYW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX05PQ1RUWSwg MDYwMCk7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9vYmV4LXNlcnZlci10b29sLmM6MTkyOjEzOiB3YXJuaW5n OiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxs JwogICAgICAgIGRhdGEtPmZkID0gb3BlbihuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZLCAwKTsK ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3 YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3Rlc3QtcnVubmVyLmM6MTM3MDoyOiB3YXJuaW5nOiBB ZGRyZXNzIG9mIHN0YWNrIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggbG9jYWwgdmFyaWFibGUgJ2tl cm5lbF9wYXRoJyBpcyBzdGlsbCByZWZlcnJlZCB0byBieSB0aGUgZ2xvYmFsIHZhcmlhYmxlICdr ZXJuZWxfaW1hZ2UnIHVwb24gcmV0dXJuaW5nIHRvIHRoZSBjYWxsZXIuICBUaGlzIHdpbGwgYmUg YSBkYW5nbGluZyByZWZlcmVuY2UKICAgICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KY2xpZW50L2J0cGNsaWVu dC9idHBjbGllbnRjdGwuYzo0MDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdiaXQnIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGJpdCA9IDA7CiAgICAgICAgICAgICAgICBeICAg ICB+CmNsaWVudC9idHBjbGllbnQvYnRwY2xpZW50Y3RsLmM6MTY1NToyOiB3YXJuaW5nOiBOdWxs IHBvaW50ZXIgcGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAg ICAgIG1lbWNweShjcC0+ZGF0YSwgYWRfZGF0YSwgYWRfbGVuKTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAtY2xp ZW50LmM6MzUzOjE0OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2NiJyByZXN1bHRzIGluIGEg ZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIKICAgICAgICAoKmN0eHQpLT5jYiA9IGNiOwog ICAgICAgIH5+fn5+fn5+fn5+fl5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NkcGQtcmVx dWVzdC5jOjIwOToxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0 byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNp emVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZfdCkpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVx dWVzdC5jOjIzNzoxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0 byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNp emVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJfdCkpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnNyYy9nYXR0LWRhdGFiYXNlLmM6MTE3MToxMDogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdiaXRzJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAg ICAgICB1aW50OF90IGJpdHNbXSA9IHsgQlRfR0FUVF9DSFJDX0NMSV9GRUFUX1JPQlVTVF9DQUNI SU5HLAogICAgICAgICAgICAgICAgXn5+fiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9nYXR0LWNsaWVudC5jOjE1Njk6 Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIG5vdGlm eV9jbGllbnRfdW5yZWYoY2xpZW50KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdW5pdC9hdnJjcC1saWIuYzoxOTY4OjM6IHdhcm5pbmc6 IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAg ICAgICAgICAgICAgIGdfZnJlZSh0ZXh0W2ldKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp1bml0L2F2ZHRwLmM6NzU2OjI1OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5w cmlvX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cHJpb19xdWV1ZSwgcmVxKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnVuaXQvYXZkdHAuYzo3NjM6MjQ6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIHNlc3Npb24tPnJlcV9xdWV1 ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnJlcV9xdWV1ZSwgcmVxKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdW5pdC90ZXN0LXV0aWwuYzozMzo4OiB3YXJu aW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncDEnCiAgICAgICAg cDJbMF0gPSAxOwogICAgICAgIH5+fn5+fl5+fgp1bml0L3Rlc3QtdXRpbC5jOjM2OjM6IHdhcm5p bmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwMicKICAgICAgICAg ICAgICAgIF9jbGVhbnVwX2ZyZWVfIHVpbnQ4X3QgKmRhdGEgPSBOVUxMOwogICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgouL3NyYy9zaGFyZWQvdXRpbC5oOjEzNDoy NDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX2NsZWFudXBfZnJlZV8nCiNkZWZpbmUgX2Ns ZWFudXBfZnJlZV8gX2NsZWFudXBfKGZyZWVwKQogICAgICAgICAgICAgICAgICAgICAgIF4KLi9z cmMvc2hhcmVkL3V0aWwuaDoxMzI6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19jbGVh bnVwXycKI2RlZmluZSBfY2xlYW51cF8oZikgX19hdHRyaWJ1dGVfXygoY2xlYW51cChmKSkpCiAg ICAgICAgICAgICAgICAgICAgIF4KdW5pdC90ZXN0LXV0aWwuYzo0MjozOiB3YXJuaW5nOiBQb3Rl bnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnZGF0YScKICAgICAgICAgICAgICAg IGFzc2VydChpc19udWxsX3RvbyA9PSBOVUxMKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYXNzZXJ0Lmg6MTA4OjExOiBub3RlOiBleHBh bmRlZCBmcm9tIG1hY3JvICdhc3NlcnQnCiAgKCh2b2lkKSBzaXplb2YgKChleHByKSA/IDEgOiAw KSwgX19leHRlbnNpb25fXyAoeyAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnVuaXQvdGVzdC11dGlsLmM6NTA6Mjogd2FybmluZzogUG90ZW50 aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2RhdGEnCiAgICAgICAgYXNzZXJ0KGlz X251bGwgPT0gTlVMTCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNs dWRlL2Fzc2VydC5oOjEwODoxMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXNzZXJ0Jwog ICgodm9pZCkgc2l6ZW9mICgoZXhwcikgPyAxIDogMCksIF9fZXh0ZW5zaW9uX18gKHsgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo0IHdhcm5p bmdzIGdlbmVyYXRlZC4KcHJvZmlsZXMvYXVkaW8vYXZkdHAuYzo4OTU6MjU6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIHNlc3Npb24tPnBy aW9fcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5wcmlvX3F1ZXVlLCByZXEpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYXZkdHAuYzo5MDI6MjQ6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIHNlc3Npb24t PnJlcV9xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnJlcV9xdWV1ZSwgcmVxKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KcHJvZmlsZXMvYXVkaW8vYTJk cC5jOjQ0Mjo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgICAgICAgICBpZiAoIWNiLT5yZXN1bWVfY2IpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn4KcHJvZmlsZXMvYXVkaW8vYTJkcC5jOjMzNTQ6MjA6IHdhcm5pbmc6IEFjY2VzcyB0 byBmaWVsZCAnc3RhcnRpbmcnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ3N0cmVhbScpCiAgICAgICAgICAgICAgICBzdHJl YW0tPnN0YXJ0aW5nID0gVFJVRTsKICAgICAgICAgICAgICAgIH5+fn5+fiAgICAgICAgICAgXgpw cm9maWxlcy9hdWRpby9hMmRwLmM6MzM1Nzo4OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ3N1 c3BlbmRpbmcnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ3N0cmVhbScpCiAgICAgICAgICAgICAgICBpZiAoIXN0cmVhbS0+ c3VzcGVuZGluZyAmJiBzdHJlYW0tPnN1c3BlbmRfdGltZXIpIHsKICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2EyZHAuYzozNDE3OjIyOiB3YXJu aW5nOiBBY2Nlc3MgdG8gZmllbGQgJ3N1c3BlbmRpbmcnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5j ZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ3N0cmVhbScpCiAgICAg ICAgICAgICAgICBzdHJlYW0tPnN1c3BlbmRpbmcgPSBUUlVFOwogICAgICAgICAgICAgICAgfn5+ fn5+ICAgICAgICAgICAgIF4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2 cmNwLmM6MTk2ODoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ29wZXJhbmRzJyBpcyBuZXZl ciByZWFkCiAgICAgICAgb3BlcmFuZHMgKz0gc2l6ZW9mKCpwZHUpOwogICAgICAgIF4gICAgICAg ICAgIH5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0dC5jOjk3MDoy OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbG9uZ193 cml0ZScKICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMv c2RwZC1yZXF1ZXN0LmM6MjA5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29u dmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxl IHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMv c2RwZC1yZXF1ZXN0LmM6MjM3OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29u dmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxl IHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdh cm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6IHdhcm5pbmc6IEFjY2Vz cyB0byBmaWVsZCAnY2InIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRl cgogICAgICAgICgqY3R4dCktPmNiID0gY2I7CiAgICAgICAgfn5+fn5+fn5+fn5+Xn5+fgoxIHdh cm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQg dmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRh dGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14 bWwuYzozMDY6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZp bmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjM0NDox MTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAg ICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvZ2F0 dC1kYXRhYmFzZS5jOjExNzE6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0cycgZHVy aW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgdWludDhfdCBiaXRz W10gPSB7IEJUX0dBVFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElORywKICAgICAgICAgICAg ICAgIF5+fn4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdh cm5pbmcgZ2VuZXJhdGVkLgpzcmMvZ2F0dC1jbGllbnQuYzoxNTY5OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBub3RpZnlfY2xpZW50X3VucmVmKGNs aWVudCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5l cmF0ZWQuCmdvYmV4L2dvYmV4LWhlYWRlci5jOjk1OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBw YXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgbWVtY3B5 KHRvLCBmcm9tLCBjb3VudCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJu aW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtdHJhbnNmZXIuYzo0MjM6Nzogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmICghZ19zbGlzdF9maW5kKHRy YW5zZmVycywgdHJhbnNmZXIpKQogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCm1lc2gvbWFpbi5jOjE2MjozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ29wdGFyZycgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg b3B0YXJnICs9IHN0cmxlbigiYXV0byIpOwogICAgICAgICAgICAgICAgXiAgICAgICAgIH5+fn5+ fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmxpYi9ibHVldG9vdGgvaGNpLmM6OTM6NDog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgcHRyICs9IHNwcmludGYocHRyLCAiJXMiLCBtLT5zdHIpOwogICAgICAgICAg ICAgICAgICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KY2xpZW50L3BsYXllci5jOjIzNjM6ODogd2FybmluZzogTnVsbCBwb2ludGVy IHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAg ICAgIGlmICghc3RyY21wKGVwLT5wYXRoLCBwYXR0ZXJuKSkKICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjbGllbnQvcGxheWVyLmM6MzY0MDoxNjogd2Fybmlu ZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVs bCcKICAgICAgICBjb2RlYy0+bmFtZSA9IHN0cmR1cChuYW1lKTsKICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZ2RidXMvd2F0Y2guYzoyMjY6 Mzogd2FybmluZzogQXR0ZW1wdCB0byBmcmVlIHJlbGVhc2VkIG1lbW9yeQogICAgICAgICAgICAg ICAgZ19mcmVlKGwtPmRhdGEpOwogICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCmxpYi9ibHVldG9vdGgvc2RwLmM6NTA5OjE3OiB3YXJuaW5nOiBEZXJl ZmVyZW5jZSBvZiB1bmRlZmluZWQgcG9pbnRlciB2YWx1ZQogICAgICAgICAgICAgICAgdWludDhf dCBkdGQgPSAqKHVpbnQ4X3QgKikgZHRkc1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzo1Mzk6MTc6IHdhcm5p bmc6IERlcmVmZXJlbmNlIG9mIHVuZGVmaW5lZCBwb2ludGVyIHZhbHVlCiAgICAgICAgICAgICAg ICB1aW50OF90IGR0ZCA9ICoodWludDhfdCAqKSBkdGRzW2ldOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvYmx1ZXRvb3RoL3NkcC5jOjE4OTE6 MjY6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdhcCcK ICAgICAgICBmb3IgKDsgcGRsaXN0OyBwZGxpc3QgPSBwZGxpc3QtPm5leHQpIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzoxOTA1OjY6 IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwZHMnCiAg ICAgICAgICAgICAgICBhcCA9IHNkcF9saXN0X2FwcGVuZChhcCwgcGRzKTsKICAgICAgICAgICAg ICAgIH5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6MTk1 MDoxMDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3Un CiAgICAgICAgICAgICAgICAgICAgICAgICpzZXFwID0gc2RwX2xpc3RfYXBwZW5kKCpzZXFwLCB1 KTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmxpYi9ibHVldG9vdGgvc2RwLmM6MjA1NTo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbGFuZycKICAgICAgICAgICAgICAgICAgICAgICAgc2Rw X2xpc3RfZnJlZSgqbGFuZ1NlcSwgZnJlZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzoyMTQ0Ojk6IHdhcm5pbmc6IFBvdGVudGlhbCBs ZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwcm9mRGVzYycKICAgICAgICByZXR1cm4gMDsK ICAgICAgICAgICAgICAgXgpsaWIvYmx1ZXRvb3RoL3NkcC5jOjMyNzY6ODogd2FybmluZzogUG90 ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3BTdmNSZWMnCiAgICAgICAgICAg ICAgICBwU2VxID0gc2RwX2xpc3RfYXBwZW5kKHBTZXEsIHBTdmNSZWMpOwogICAgICAgICAgICAg ICAgfn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvYmx1ZXRvb3RoL3Nk cC5jOjMyNzc6OTogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8g YnkgJ3BTZXEnCiAgICAgICAgICAgICAgICBwZGF0YSArPSBzaXplb2YodWludDMyX3QpOwogICAg ICAgICAgICAgICAgfn5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvYmx1ZXRvb3RoL3NkcC5j OjQ2MTM6MTM6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5 ICdyZWNfbGlzdCcKICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoc2Nhbm5lZCA8IGF0 dHJfbGlzdF9sZW4gJiYgcGRhdGFfbGVuID4gMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn4KbGliL2JsdWV0b290aC9zZHAuYzo0OTA5OjQwOiB3YXJuaW5nOiBQb3Rl bnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAndHNlcScKICAgICAgICBmb3IgKGQg PSBzZHBkYXRhLT52YWwuZGF0YXNlcTsgZDsgZCA9IGQtPm5leHQpIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KbGliL2JsdWV0b290aC9zZHAuYzo0OTQ1 Ojg6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzdWJz ZXEnCiAgICAgICAgICAgICAgICB0c2VxID0gc2RwX2xpc3RfYXBwZW5kKHRzZXEsIHN1YnNlcSk7 CiAgICAgICAgICAgICAgICB+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMTIg d2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDQ3OjIxOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJl Z2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTI6Mjogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21w bGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTkyOjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlf b3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxMDk4OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoxMjkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29k ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzU3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nl c3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjMyOjY6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9w KSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxNjM3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjE2OTM6NTY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBub3RpZnlfZGF0YS0+Y2hyYy0+Y2NjX3dyaXRlX2lkID0gbm90aWZ5X2Rh dGEtPmF0dF9pZCA9IGF0dF9pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fiBeCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ2 OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAo cmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyMTU0Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6MzMzMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAs IGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMzU0OjI6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEzIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9i YXAuYzoxNTQzOjg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2JhcC5jOjIzNTQ6MjA6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJh cC0+c3RyZWFtcywgTlVMTCwgc3RyZWFtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KbW9uaXRvci9od2RiLmM6NTk6 Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAg aHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjY0OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn dWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVkZXYpOwogICAg ICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjEwNjoyOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVyIHJlYWQKICAgICAgICBod2RiID0gdWRl dl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn4K bW9uaXRvci9od2RiLmM6MTExOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAndWRldicgaXMg bmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVkZXYpOwogICAgICAgIF4gICAg ICB+fn5+fn5+fn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgptb25pdG9yL2wyY2FwLmM6 MTY3Njo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2RhdGEnIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YSArPSBsZW47CiAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgICAgfn5+Cm1vbml0b3IvbDJjYXAuYzoxNjc3OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnc2l6ZScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIC09 IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICB+fn4KMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCnRvb2xzL2JsdWVtb29uLmM6MTEwMjo4OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFz c2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykgPiAzICYmICFzdHJuY21wKG9wdGFyZywgImhjaSIs IDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KdG9vbHMvbWVzaGN0bC5jOjMyNjoxOTogd2FybmluZzogQWNjZXNzIHRvIGZp ZWxkICdtZXNoX2RldmljZXMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9p bnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2RlZmF1bHRfY3RybCcpCiAgICAgICAgZ19saXN0 X2ZyZWVfZnVsbChkZWZhdWx0X2N0cmwtPm1lc2hfZGV2aWNlcywgZ19mcmVlKTsKICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL21lc2hjdGwu Yzo3NjI6Mjogd2FybmluZzogMm5kIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0 aWFsaXplZCB2YWx1ZQogICAgICAgIGJ0X3NoZWxsX3ByaW50ZigiQXR0ZW1wdGluZyB0byBkaXNj b25uZWN0IGZyb20gJXNcbiIsIGFkZHIpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL21lc2hjdGwuYzoxOTU3 OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg bGVuID0gbGVuICsgZXh0cmEgKyBzdHJsZW4oImxvY2FsX25vZGUuanNvbiIpOwogICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdl bmVyYXRlZC4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL21lc2gtZ2F0dC9jcnlwdG8uYzoz MjoKLi9zcmMvc2hhcmVkL3V0aWwuaDoyOTE6OTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwg YXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHJldHVybiBiZTMyX3Rv X2NwdShnZXRfdW5hbGlnbmVkKChjb25zdCB1aW50MzJfdCAqKSBwdHIpKTsKICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9z cmMvc2hhcmVkL3V0aWwuaDo0MToyNjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMl90 b19jcHUnCiNkZWZpbmUgYmUzMl90b19jcHUodmFsKSBic3dhcF8zMih2YWwpCiAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9ieXRlc3dhcC5oOjM0OjIx OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdic3dhcF8zMicKI2RlZmluZSBic3dhcF8zMih4 KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CkluIGZp bGUgaW5jbHVkZWQgZnJvbSB0b29scy9tZXNoLWdhdHQvY3J5cHRvLmM6MzI6Ci4vc3JjL3NoYXJl ZC91dGlsLmg6MzAxOjk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICByZXR1cm4gYmU2NF90b19jcHUoZ2V0X3VuYWxp Z25lZCgoY29uc3QgdWludDY0X3QgKikgcHRyKSk7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vc3JjL3NoYXJlZC91dGls Lmg6NDI6MjY6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlNjRfdG9fY3B1JwojZGVmaW5l IGJlNjRfdG9fY3B1KHZhbCkgYnN3YXBfNjQodmFsKQogICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYnl0ZXN3YXAuaDozNzoyMTogbm90ZTogZXhwYW5k ZWQgZnJvbSBtYWNybyAnYnN3YXBfNjQnCiNkZWZpbmUgYnN3YXBfNjQoeCkgX19ic3dhcF82NCAo eCkKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRl ZC4KZWxsL3V0aWwuYzo4NTM6ODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnPicgaXMg YSBnYXJiYWdlIHZhbHVlCiAgICAgICAgaWYgKHggPiBVSU5UOF9NQVgpCiAgICAgICAgICAgIH4g XgplbGwvdXRpbC5jOjg3MTo4OiB3YXJuaW5nOiBUaGUgbGVmdCBvcGVyYW5kIG9mICc+JyBpcyBh IGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoeCA+IFVJTlQxNl9NQVgpCiAgICAgICAgICAgIH4g XgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZWxsL3BlbS5jOjEzMTo4OiB3YXJuaW5nOiBEZXJlZmVy ZW5jZSBvZiBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdlb2wnKQogICAgICAg ICAgICAgICAgICAgICAgICBpZiAoKmVvbCA9PSAnXHInIHx8ICplb2wgPT0gJ1xuJykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn4KZWxsL3BlbS5jOjE2NjoxODogd2FybmluZzogRGVy ZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZW9sJykKICAg ICAgICAgICAgICAgIGlmIChidWZfbGVuICYmICplb2wgPT0gJ1xyJyAmJiAqYnVmX3B0ciA9PSAn XG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVsbC9wZW0uYzoxNjY6 MzQ6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFy aWFibGUgJ2J1Zl9wdHInKQogICAgICAgICAgICAgICAgaWYgKGJ1Zl9sZW4gJiYgKmVvbCA9PSAn XHInICYmICpidWZfcHRyID09ICdcbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fgplbGwvcGVtLmM6MzA0OjExOiB3YXJuaW5nOiAxc3Qg ZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAg cmVzdWx0ID0gcGVtX2xvYWRfYnVmZmVyKGZpbGUuZGF0YSwgZmlsZS5zdC5zdF9zaXplLAogICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZWxsL3BlbS5jOjQ2OTo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBh biB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgbGlzdCA9IGxfcGVtX2xvYWRfY2VydGlmaWNh dGVfbGlzdF9mcm9tX2RhdGEoZmlsZS5kYXRhLAogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJuaW5ncyBnZW5lcmF0ZWQu CmVsbC9jZXJ0LmM6NjQ1OjQxOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2FzbjFfbGVuJyBy ZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZh cmlhYmxlICdjZXJ0JykKICAgICAgICBrZXkgPSBsX2tleV9uZXcoTF9LRVlfUlNBLCBjZXJ0LT5h c24xLCBjZXJ0LT5hc24xX2xlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZWxsL2d2YXJp YW50LXV0aWwuYzoxNDM6MTg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEg Z2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpZ25tZW50ID4gbWF4 X2FsaWdubWVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fiBeCmVsbC9n dmFyaWFudC11dGlsLmM6NDU2OjU6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRl cgogICAgICAgICAgICAgICAgICAgICAgICAhY2hpbGRyZW5bMF0uZml4ZWRfc2l6ZSkgewogICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4KZW11bGF0b3Ivc2VyaWFsLmM6MTUwOjI6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVl IGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlh bGl6ZWRfdmFyKHR5cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgplbXVsYXRvci9zZXJpYWwuYzoxNTA6MzY6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAndHlwZScgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAg ZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVtdWxhdG9yL3NlcmlhbC5jOjM2OjMwOiBu b3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICd1bmluaXRpYWxpemVkX3ZhcicKI2RlZmluZSB1bmlu aXRpYWxpemVkX3Zhcih4KSB4ID0geAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICB+ CmVtdWxhdG9yL3NlcmlhbC5jOjIxMzoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zh cihkZXZfdHlwZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgplbXVsYXRvci9zZXJpYWwuYzoyMTM6MzY6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnZGV2X3R5cGUnIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAg ICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3ZhcihkZXZfdHlwZSk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+CmVtdWxhdG9yL3Nlcmlh bC5jOjM2OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICd1bmluaXRpYWxpemVkX3ZhcicK I2RlZmluZSB1bmluaXRpYWxpemVkX3Zhcih4KSB4ID0geAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gICB+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvZWNjLWV4dGVybmFsLmM6Nzc6 MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAg ICAgICAgICAgICBkZXN0W2ldID0gc3JjW2ldOwogICAgICAgICAgICAgICAgICAgICAgICBeIH5+ fn5+fgplbGwvZWNjLWV4dGVybmFsLmM6MTYwOjE4OiB3YXJuaW5nOiBUaGUgcmlnaHQgb3BlcmFu ZCBvZiAnLScgaXMgYSBnYXJiYWdlIHZhbHVlCiAgICAgICAgICAgICAgICBkaWZmID0gbGVmdFtp XSAtIHJpZ2h0W2ldIC0gYm9ycm93OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+ fn5+fn5+fgplbGwvZWNjLWV4dGVybmFsLmM6MjI3OjE0OiB3YXJuaW5nOiAybmQgZnVuY3Rpb24g Y2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAg ICAgICAgIHByb2R1Y3QgPSBtdWxfNjRfNjQobGVmdFtpXSwgcmlnaHRbayAtIGldKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmVsbC9lY2MtZXh0ZXJuYWwuYzo0MDg6OTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMg Z2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICB0bXBbMV0gPSBwcm9kdWN0WzNdOwogICAgICAg ICAgICAgICBeIH5+fn5+fn5+fn4KZWxsL2VjYy1leHRlcm5hbC5jOjQzNToyMjogd2FybmluZzog VGhlIGxlZnQgb3BlcmFuZCBvZiAnJicgaXMgYSBnYXJiYWdlIHZhbHVlCiAgICAgICAgdG1wWzFd ID0gcHJvZHVjdFszXSAmIDB4ZmZmZmZmZmYwMDAwMDAwMHVsbDsKICAgICAgICAgICAgICAgICB+ fn5+fn5+fn5+IF4KZWxsL2VjYy1leHRlcm5hbC5jOjQ4MzoyMjogd2FybmluZzogVGhlIGxlZnQg b3BlcmFuZCBvZiAnJicgaXMgYSBnYXJiYWdlIHZhbHVlCiAgICAgICAgdG1wWzFdID0gcHJvZHVj dFs1XSAmIDB4ZmZmZmZmZmYwMDAwMDAwMHVsbDsKICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+ IF4KZWxsL2VjYy1leHRlcm5hbC5jOjY4ODoyODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBv ZiAnPj4nIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgdG1wW2ldID0gKHByb2R1 Y3RbOCArIGldID4+IDkpIHwgKHByb2R1Y3RbOSArIGldIDw8IDU1KTsKICAgICAgICAgICAgICAg ICAgICAgICAgICB+fn5+fn5+fn5+fn5+fiBeCjcgd2FybmluZ3MgZ2VuZXJhdGVkLgplbXVsYXRv ci9zZXJ2ZXIuYzoyMzA6Mjogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1 bmRlZmluZWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIodHlwZSk7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVtdWxhdG9y L3NlcnZlci5jOjIzMDozNjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICd0eXBlJyBkdXJpbmcg aXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUg dW5pbml0aWFsaXplZF92YXIodHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn4KZW11bGF0b3Ivc2VydmVyLmM6MzY6MzA6IG5vdGU6IGV4cGFuZGVkIGZy b20gbWFjcm8gJ3VuaW5pdGlhbGl6ZWRfdmFyJwojZGVmaW5lIHVuaW5pdGlhbGl6ZWRfdmFyKHgp IHggPSB4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgIH4KMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCmVtdWxhdG9yL2IxZWUuYzoyNTg6Mzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2Yg bWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3NlcnZlcl9wb3J0JwogICAgICAgICAgICAgICAgaW50IG9w dDsKICAgICAgICAgICAgICAgIF5+fn5+fn4KZW11bGF0b3IvYjFlZS5jOjI1ODozOiB3YXJuaW5n OiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc25pZmZlcl9wb3J0Jwog ICAgICAgICAgICAgICAgaW50IG9wdDsKICAgICAgICAgICAgICAgIF5+fn5+fn4KZW11bGF0b3Iv YjFlZS5jOjI4OToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2FyZ2MnIGlzIG5ldmVyIHJl YWQKICAgICAgICBhcmdjID0gYXJnYyAtIG9wdGluZDsKICAgICAgICBeICAgICAgfn5+fn5+fn5+ fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtaGVhZGVyLmM6OTU6Mjogd2Fy bmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9u bnVsbCcKICAgICAgICBtZW1jcHkodG8sIGZyb20sIGNvdW50KTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC10cmFuc2Zlci5j OjQyMzo3OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg aWYgKCFnX3NsaXN0X2ZpbmQodHJhbnNmZXJzLCB0cmFuc2ZlcikpCiAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KYXR0cmli L2dhdHQuYzo5NzA6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQg dG8gYnkgJ2xvbmdfd3JpdGUnCiAgICAgICAgcmV0dXJuIHByZXBhcmVfd3JpdGUobG9uZ193cml0 ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KZW11bGF0b3IvYnRkZXYuYzo2NjYyOjIwOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmll bGQgJ2xpbmsnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ2FjbCcpCiAgICAgICAgICAgICAgICBsZV9wYXN0X3JlY2VpdmVk KGFjbC0+bGluaywgcGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn4KZW11bGF0b3IvYnRkZXYuYzo2NzYyOjI1OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2xp bmsnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZy b20gdmFyaWFibGUgJ2FjbCcpCiAgICAgICAgICAgICAgICBsZV9wYXN0X2luZm9fcmVjZWl2ZWQo YWNsLT5saW5rLCBlYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9yYW5naW5nL3JhcC5jOiBJbiBm dW5jdGlvbiDigJhzdGFydF9tZWFzdXJlbWVudOKAmToKcHJvZmlsZXMvcmFuZ2luZy9yYXAuYzo0 NzI6NDogZXJyb3I6IGVudW1lcmF0aW9uIHZhbHVlIOKAmENTX1RBUkdFVF9TRVRUSU5HU+KAmSBu b3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1XZXJyb3I9c3dpdGNoLWVudW1dCiAgNDcyIHwgICAgc3dp dGNoIChkZXNjLT50YXJnZXQpIHsKICAgICAgfCAgICBefn5+fn4KY2MxOiBhbGwgd2FybmluZ3Mg YmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo4OTk0OiBwcm9m aWxlcy9yYW5naW5nL2JsdWV0b290aGQtcmFwLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRp bmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KcHJvZmlsZXMvYXVkaW8vbWVkaWEuYzoxMTE3Ojc6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAg IGlmIChyZXEtPmNiICE9IHBhY19zZWxlY3RfY2IpIHsKICAgICAgICAgICAgICAgICAgICBefn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDE3MzogYWxsXSBF cnJvciAyCgoKaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6L2JsdWV6L3B1bGwvMjI5MQoKLS0tClJl Z2FyZHMsCkxpbnV4IEJsdWV0b290aAoK --===============8070496073322788685==--